**Motivations:** - Single canonical documentation tree under docs/; reduce drift between README copies. **Evolutions:** - Add docs/repo/ with operational guides (cron, systemd, projects, logs, docv, ia_dev, services, scripts, extension). - Replace scattered README.md files with pointers to docs/repo/*.md. - Refresh docs/README.md index and cross-links across docs/, .cursor rules/agents. - Bump ia_dev submodule to matching doc pointer commits.
54 lines
4.1 KiB
Markdown
54 lines
4.1 KiB
Markdown
# Configurations projet (`projects/<id>/`)
|
||
|
||
Ce répertoire, à la **racine du monorepo `smart_ide`**, ne contient que les **fichiers de configuration** attendus par **`ia_dev`** (`conf.json` par identifiant de projet). Ce n’est **pas** le répertoire des **clones Git** des applications.
|
||
|
||
Les **sous-répertoires** `projects/<id>/` non listés dans le **`.gitignore`** à la racine (exceptions pour les ids versionnés) restent **ignorés par Git** : pour versionner un nouvel id, ajouter les lignes `!projects/<id>/` et `!projects/<id>/**` à côté des exceptions existantes.
|
||
|
||
## Clones applicatifs (docv, stacks métier, etc.)
|
||
|
||
Les dépôts sources des produits (ex. backend **docv** sous un chemin du type `…/enso/docv`, autres apps) doivent vivre **ailleurs**, selon la convention du poste — typiquement un répertoire **frère** du monorepo, par ex. **`../projects/<nom>/`** (relatif à la racine `smart_ide`), **distinct** de `./projects/` ici.
|
||
|
||
- **`./projects/`** → uniquement `conf.json` (+ métadonnées légères) pour que `ia_dev` résolve `projects/<id>/conf.json` via le lien symbolique décrit dans [ia_dev-module.md](../ia_dev-module.md).
|
||
- **`../projects/`** (ou autre racine configurée) → arborescences Git complètes, builds, etc. ; dans chaque `conf.json`, **`project_path`** et les chemins **`deploy.*`** utiles sont **relatifs à la racine du monorepo smart_ide** (ex. `../enso`, `.`) ou **absolus** ; le script `cron/git-pull-project-clones.sh` et ia_dev les résolvent depuis cette racine (`ia_dev/lib/conf_path_resolve.sh`).
|
||
|
||
## `smart_ide`
|
||
|
||
- Fichier : `projects/smart_ide/conf.json`
|
||
- Après clone ou réorganisation des dossiers, exécuter si besoin `scripts/ensure-ia-dev-smart-ide-project-link.sh` pour recréer le lien `ia_dev/projects/smart_ide` → `../../projects/smart_ide`.
|
||
|
||
## `enso`
|
||
|
||
- Fichier : `projects/enso/conf.json` — clone **enso** frère du monorepo (`project_path` typique `../enso`), déploiement `deploy/scripts_v2`, forge **4nk/enso** (wiki / issues), mails ticketing `AI.ENSO.*@4nkweb.com`.
|
||
- Chemins **absolus sur les serveurs** sous **`smart_ide.remote_data_access`** : alignés sur **`ENSO_REMOTE_ROOT`**, **`ENSO_SSH_HOST`** et **`data/dossiers-permanents`** (dépôt enso, `enso-deploy.env`). Valeurs réelles : fichiers **`enso-deploy.env`** non versionnés.
|
||
- Cron fragment : `cron/fragments/enso.cron`
|
||
- Pour **`ia_dev`** : lien symbolique `ia_dev/projects/enso` → `../../projects/enso`
|
||
|
||
## Synchronisation Git planifiée
|
||
|
||
Pour **chaque** `projects/<id>/conf.json`, le tirage automatique utilise **`cron/config.env`** (`PULL_SYNC_*`) et **`cron/git-pull-wrapper.sh`** → **`cron/git-pull-project-clones.sh`**.
|
||
|
||
- **Timer systemd utilisateur** (recommandé) : `scripts/install-git-pull-systemd-user.sh` — voir [cron-git-pull.md](./cron-git-pull.md)
|
||
- Désactiver pour un id : `"cron": { "git_pull": false }` dans le `conf.json`
|
||
- Désactiver tout : `PULL_SYNC_ENABLED=0` dans `config.env` ou `config.local.env`
|
||
|
||
`project_path` est résolu en chemin absolu à partir de la racine **smart_ide** lorsqu’il est relatif.
|
||
|
||
## Données déployées, SSH, AnythingLLM et IDE
|
||
|
||
Spécification : [features/remote-deployed-data-ssh.md](../features/remote-deployed-data-ssh.md).
|
||
|
||
### Bloc optionnel `smart_ide` dans `conf.json`
|
||
|
||
Clé **`smart_ide`** avec notamment **`remote_data_access`**, **`anythingllm_workspace_slug`**. Exemple : `projects/enso/conf.json`.
|
||
|
||
### Projet actif pour l’éditeur / Cursor
|
||
|
||
1. Copier `projects/active-project.json.example` vers **`projects/active-project.json`** (non versionné) ; renseigner **`id`**, optionnellement **`default_env`**, **`notes`** (informative).
|
||
2. Dans un **`.code-workspace`** : **`smartIde.activeProjectId`** dans **`settings`** (ex. `projects/enso/smart_ide.code-workspace`).
|
||
|
||
Convention agents : `.cursor/rules/smart-ide-ia-dev-bridge.mdc`.
|
||
|
||
## Référence amont (schéma conf)
|
||
|
||
Schéma détaillé des champs `conf.json` : [ia-dev-project-conf-schema.md](./ia-dev-project-conf-schema.md) (aligné sur `ia_dev/projects/README.md` amont). Extensions **`cron`** et **`smart_ide`** : spécifiques smart_ide ; `ia_dev` peut ignorer les champs non lus.
|