smart_ide/docs/repo/ia-dev-project-conf-schema.md
Nicolas Cantu b21ac2cf64 feat: anythingllm-devtools service, builazoo project, ssh-config example, docs
- Add services/anythingllm-devtools HTTP API (repos + AnythingLLM + RAG)
- Rename gitea-issues to git-issues across smart_ide agents and docs
- Add projects/builazoo, builazoo README, cron fragment, ssh-config.example
- Add ensure-ia-dev-project-link.sh; wrapper delegates smart_ide id
- Bump ia_dev submodule (git-issues rename, project symlinks)
- Align 4nkaiignore templates; update API index and project docs
2026-04-03 19:06:19 +02:00

66 lines
3.6 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.

# Schéma `projects/<id>/conf.json` (ia_dev)
Ce document est la **copie canonique** dans **smart_ide** du schéma de configuration ia_dev. Le fichier amont peut exister sous **`ia_dev/projects/README.md`** dans un checkout qui suit le dépôt ia_dev seul.
Le dépôt **ia_dev** est un **dépôt autonome**. Les paramètres par projet sont dans `projects/<id>/conf.json`. Le **`<id>`** est le nom du répertoire sous `projects/`.
**Chemins dans conf.json**
Les scripts dans `deploy/` déploient les **projets configurés** dans leurs répertoires ; ils ne déploient pas ia_dev.
- **Chemins projet / deploy** (`project_path`, `deploy.repository_root`, etc.) : **absolus** ou **relatifs à la racine du monorepo smart_ide**. Résolution : `ia_dev/lib/conf_path_resolve.sh` lorsque la conf vit sous `…/projects/<id>/conf.json` ou `…/ia_dev/projects/<id>/conf.json`.
- **`build_dirs`** : **absolu** ; **relatif au monorepo** si la valeur commence par `../` ; sinon **relatif à la racine Git du projet** (`repository_root`).
- **`version.package_json_paths`** : **relatif à la racine du dépôt projet** sauf absolu.
- **Relatif à la racine ia_dev** : `mail.imap_bridge_env`, `git.token_file` → fichiers sous `.secrets/` de ia_dev.
## Résolution du projet courant
L**id** est déterminé par (premier match) :
1. **Paramètre explicite** : premier argument ou `--project <id>` (`pousse.sh`, etc.) ; variable **`IA_PROJECT_ID`** lorsque les scripts lexportent.
2. **MAIL_TO** : adresse « To » du mail comparée à `tickets.authorized_emails.to` dans chaque `conf.json`.
3. **AI_AGENT_TOKEN** : comparaison avec `projects/<id>/.secrets/<env>/ia_token`.
Pas dautres sources (`IA_PROJECT`, `.ia_project`, etc.).
## Règle : `conf.json` en lecture seule pour les agents
Les agents ne modifient pas `projects/<id>/conf.json` sans validation humaine explicite (décrire la modification, demander accord).
## Table des champs (extrait)
| Field | Required | Description |
|-------|----------|-------------|
| `id` | no | Identifiant (défaut : nom du répertoire). |
| `name` | no | Nom lisible. |
| `project_path` | no | Racine Git du clone pour cron / outillage. |
| `build_dirs` | no | Répertoires `npm run build` (règles de relatif / absolu ci-dessus). |
| `deploy.*` | no | Chemins scripts, secrets, orchestrateur — voir tableau complet dans lhistorique Git de ce fichier ou `ia_dev/projects/README.md` amont. |
| `deploy.host_stays_on_test` | no | Comportement `deploy-by-script-to.sh` (branche test vs pprod/prod). |
| `tickets` | no | URL issues, `authorized_emails` ; le **to** sert à résoudre le projet. |
| `cron` | no | Extension **smart_ide** : `{ "git_pull": false }` pour désactiver le pull planifié. |
| `smart_ide` | no | Extension **smart_ide** : `remote_data_access`, `anythingllm_workspace_slug`, etc. |
Détail ticketing : `ia_dev/projects/ia_dev/docs/TICKETS_SPOOL_FORMAT.md`.
**.secrets à la racine ia_dev** : `token`, `git-issues/agent-loop.env`, `git-issues/imap-bridge.env`.
## Exemple minimal
```json
{
"name": "My App",
"project_path": "/path/to/project/deploy",
"build_dirs": ["/path/to/project/deploy/backend", "/path/to/project/deploy/frontend"]
}
```
## Exemple complet
Référence dans un dépôt qui versionne ce projet : `projects/lecoffreio/conf.json` (checkout ia_dev avec projet lecoffreio).
## Voir aussi
- [projects-directory.md](./projects-directory.md) — rôle de `./projects/` dans **smart_ide**
- [ia-dev-repository-overview.md](./ia-dev-repository-overview.md) — vue densemble ia_dev
- [ia-dev-shared-lib.md](./ia-dev-shared-lib.md) — `project_config.sh`