smart_ide/docs/repo/README.md
Nicolas Cantu 58cc2493e5 chore: consolidate ia_dev module, sync tooling, and harden gateways (0.0.5)
Initial state:
- ia_dev was historically referenced as ./ia_dev in docs and integrations, while the vendored module lives under services/ia_dev.
- AnythingLLM sync and hook installation had error masking / weak exit signaling.
- Proxy layers did not validate proxy path segments, allowing path normalization tricks.

Motivation:
- Make the IDE-oriented workflow usable (sync -> act -> deploy/preview) with explicit errors.
- Reduce security footguns in proxying and script automation.

Resolution:
- Standardize IA_DEV_ROOT usage and documentation to services/ia_dev.
- Add SSH remote data mirroring + optional AnythingLLM ingestion.
- Extend AnythingLLM pull sync to support upload-all/prefix and fail on upload errors.
- Harden smart-ide-sso-gateway and smart-ide-global-api proxying with safe-path checks and non-leaking error responses.
- Improve ia-dev-gateway runner validation and reduce sensitive path leakage.
- Add site scaffold tool (Vite/React) with OIDC + chat via sso-gateway -> orchestrator.

Root cause:
- Historical layout changes (submodule -> vendored tree) and missing central contracts for path resolution.
- Missing validation for proxy path traversal patterns.
- Overuse of silent fallbacks (|| true, exit 0 on partial failures) in automation scripts.

Impacted features:
- Project sync: git pull + AnythingLLM sync + remote data mirror ingestion.
- Site frontends: SSO gateway proxy and orchestrator intents (rag.query, chat.local).
- Agent execution: ia-dev-gateway script runner and SSE output.

Code modified:
- scripts/remote-data-ssh-sync.sh
- scripts/anythingllm-pull-sync/sync.mjs
- scripts/install-anythingllm-post-merge-hook.sh
- cron/git-pull-project-clones.sh
- services/smart-ide-sso-gateway/src/server.ts
- services/smart-ide-global-api/src/server.ts
- services/smart-ide-orchestrator/src/server.ts
- services/ia-dev-gateway/src/server.ts
- services/ia_dev/tools/site-generate.sh

Documentation modified:
- docs/** (architecture, API docs, ia_dev module + integration, scripts)

Configurations modified:
- config/services.local.env.example
- services/*/.env.example

Files in deploy modified:
- services/ia_dev/deploy/*

Files in logs impacted:
- logs/ia_dev.log (runtime only)
- .logs/* (runtime only)

Databases and other sources modified:
- None

Off-project modifications:
- None

Files in .smartIde modified:
- .smartIde/agents/*.md
- services/ia_dev/.smartIde/**

Files in .secrets modified:
- None

New patch version in VERSION:
- 0.0.5

CHANGELOG.md updated:
- yes
2026-04-04 18:36:43 +02:00

51 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Documentation du dépôt (`docs/repo/`)
Toute la documentation **opérationnelle** qui vivait auparavant sous des `README.md` à la racine ou dans `cron/`, `systemd/`, `projects/`, `logs/`, `services/*/`, etc. est **centralisée ici**. Les fichiers `README.md` restants à ces emplacements ne font que **renvoyer** vers ces pages pour éviter les doublons.
## Convention
- **Canonique** : fichiers sous `docs/` (dont `docs/repo/`, `docs/features/`, `docs/API/`).
- **Arbre de code** : `README.md` courts (souvent une ligne + lien) pour les outils qui ouvrent encore le dossier source.
- **Règles / agents IDE** : répertoires **`.smartIde/`** (voir [smartide-config-directory.md](./smartide-config-directory.md)).
- **Miroir doc Enso (docv)** : larborescence volumineuse **`services/docv/enso-docs/`** reste **sur le disque** sous ce chemin (copie depuis le dépôt enso) ; lexplication du flux de mise à jour est dans [docv-enso-docs-mirror.md](./docv-enso-docs-mirror.md). Les fichiers **enso-docs** peuvent encore mentionner **`.cursor/`** (doc amont enso).
## Index
| Document | Contenu |
|----------|---------|
| [smartide-config-directory.md](./smartide-config-directory.md) | Rôle de `.smartIde/` (agents, règles, gateway) |
| [smart-ide-overview.md](./smart-ide-overview.md) | Vision produit, stack IA, monorepo, liens vers larchitecture |
| [projects-directory.md](./projects-directory.md) | `projects/<id>/conf.json`, clones vs confs, `active-project.json`, cron |
| [cron-git-pull.md](./cron-git-pull.md) | Pull planifié des clones, `config.env`, systemd user, alternative cron |
| [systemd-units.md](./systemd-units.md) | Ollama, AnythingLLM, timer `git-pull-project-clones` |
| [logs-directory.md](./logs-directory.md) | Fichiers journaux locaux, `.gitignore`, origine des logs |
| [docv-services-directory.md](./docv-services-directory.md) | Répertoire `services/docv/` : contrat dintégration, chemins données |
| [docv-enso-docs-mirror.md](./docv-enso-docs-mirror.md) | Miroir `enso-docs/`, commande de resynchronisation |
| [ia-dev-smart-ide-integration.md](./ia-dev-smart-ide-integration.md) | Module `ia_dev` dans smart_ide, journaux, liens architecture |
| [ia-dev-repository-overview.md](./ia-dev-repository-overview.md) | Dépôt ia_dev : agents, scripts deploy, usage standalone |
| [ia-dev-project-conf-schema.md](./ia-dev-project-conf-schema.md) | Schéma `projects/<id>/conf.json`, résolution du projet, règles agents |
| [ia-dev-deploy-lib.md](./ia-dev-deploy-lib.md) | Bibliothèques partagées `IA_DEV_ROOT/deploy/lib/` |
| [ia-dev-shared-lib.md](./ia-dev-shared-lib.md) | `IA_DEV_ROOT/lib/project_config.sh` et résolution projet |
| **Services HTTP (exploitation)** | |
| [service-repos-devtools.md](./service-repos-devtools.md) | Clone / liste / load Git sous racine contrôlée |
| [service-anythingllm-devtools.md](./service-anythingllm-devtools.md) | AnythingLLM + repos-devtools + RAG initial (HTTP) |
| [service-local-office.md](./service-local-office.md) | API Office (docx, …) |
| [service-smart-ide-orchestrator.md](./service-smart-ide-orchestrator.md) | Routeur dintentions HTTP |
| [service-ia-dev-gateway.md](./service-ia-dev-gateway.md) | Gateway ia_dev (agents, runs, SSE) |
| [service-agent-regex-search.md](./service-agent-regex-search.md) | Recherche regex via ripgrep |
| [service-claw-harness.md](./service-claw-harness.md) | claw-code, proxy local |
| [service-langextract.md](./service-langextract.md) | Wrapper LangExtract |
| **Scripts et extensions** | |
| [script-anythingllm-pull-sync.md](./script-anythingllm-pull-sync.md) | Hook post-merge → upload AnythingLLM |
| [script-remote-data-ssh-sync.md](./script-remote-data-ssh-sync.md) | SSH pull deployed data → local mirror → optional AnythingLLM ingest |
| [service-carbonyl.md](./service-carbonyl.md) | Carbonyl (navigateur terminal), sous-module amont |
| [service-pageindex.md](./service-pageindex.md) | PageIndex (index sémantique vectorless), sous-module amont |
| [service-chandra.md](./service-chandra.md) | Chandra OCR, sous-module amont |
| [service-smart-ide-tools-bridge.md](./service-smart-ide-tools-bridge.md) | Pont HTTP IDE + outils sous-modules |
| [service-smart-ide-global-api.md](./service-smart-ide-global-api.md) | API HTTP interne : proxy vers micro-services (Bearer partagé avec SSO) |
| [service-smart-ide-sso-gateway.md](./service-smart-ide-sso-gateway.md) | Passerelle OIDC utilisateur → API globale → micro-services |
| [../packages/smart-ide-upstreams/README.md](../packages/smart-ide-upstreams/README.md) | Paquet `@4nk/smart-ide-upstreams` : liste des clés et résolution des URL / jetons |
| [extension-anythingllm-workspaces.md](./extension-anythingllm-workspaces.md) | Extension AnythingLLM IDE (supprimée ; anythingllm-devtools) |
Les **spécifications** détaillées (contrats HTTP, sécurité, orchestration) restent dans [../API/README.md](../API/README.md) et [../features/](../features/).