**Motivations:** - Project conf remote_data_access should match deploy script variables (absolute paths on target hosts). **Correctifs:** - Replace /var/lib/enso/... placeholders with ENSO_REMOTE_ROOT and default docv dossiers-permanents path. - Use ssh_host_alias values aligned with ENSO_SSH_HOST per env in enso-deploy.env.example. **Evolutions:** - Document optional remote_app_root and script references in remote-deployed-data-ssh.md and projects/README.md.
5.1 KiB
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.
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/(ce dossier) → uniquementconf.json(+ métadonnées légères) pour queia_devrésolveprojects/<id>/conf.jsonvia le lien symbolique décrit dans docs/ia_dev-module.md.../projects/(ou autre racine configurée) → arborescences Git complètes, builds, etc. ; dans chaqueconf.json,project_pathet les cheminsdeploy.*utiles sont relatifs à la racine du monorepo smart_ide (ex.../enso,.) ou absolus ; le scriptcron/git-pull-project-clones.shet ia_dev les résolvent depuis cette racine (voiria_dev/lib/conf_path_resolve.sh).
smart_ide
- Fichier :
smart_ide/conf.json - Après clone ou réorganisation des dossiers, exécuter si besoin
scripts/ensure-ia-dev-smart-ide-project-link.shpour recréer le lienia_dev/projects/smart_ide→../../projects/smart_ide.
enso
- Fichier :
enso/conf.json— clone enso frère du monorepo (project_pathtypique../enso), déploiementdeploy/scripts_v2, forge 4nk/enso (wiki / issues), mails ticketingAI.ENSO.*@4nkweb.com. - Chemins absolus sur les serveurs déclarés sous
smart_ide.remote_data_access(clone, dossiers permanents docv) sont alignés surENSO_REMOTE_ROOT,ENSO_SSH_HOSTet le sous-chemindata/dossiers-permanentstels que documentés dans le dépôt enso (deploy/enso-deploy.env.example, sync docv). Les valeurs réelles par ferme restent dans lesenso-deploy.envnon versionnés. - Cron fragment :
cron/fragments/enso.cron. - Pour que
ia_devrésolveprojects/enso/conf.json, créer sousia_dev/projects/un lien symboliqueenso→../../projects/enso(même principe quesmart_ide).
Synchronisation Git planifiée (cron/)
Pour chaque projects/<id>/conf.json, le tirage automatique utilise la config centralisée cron/config.env (PULL_SYNC_*) et le wrapper cron/git-pull-wrapper.sh, qui appelle cron/git-pull-project-clones.sh (git fetch / merge --ff-only si possible).
- Activer le timer systemd utilisateur (recommandé) :
scripts/install-git-pull-systemd-user.sh - Désactiver pour un id projet :
"cron": { "git_pull": false }dans leconf.jsonconcerné. - Désactiver tout le mécanisme :
PULL_SYNC_ENABLED=0dansconfig.envoucron/config.local.env.
Détail : cron/README.md. 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
- Les données métier vivent sur les serveurs test / pprod / prod ; elles ne doivent pas être versionnées dans les dépôts applicatifs (répertoires du type
data/, dumps, etc. en.gitignoresur chaque clone applicatif). docv, AnythingLLM et les services smart_ide qui lisent ces données s’appuient sur des accès SSH documentés vers ces environnements. Spécification : features/remote-deployed-data-ssh.md.
Bloc optionnel smart_ide dans conf.json
Chaque projects/<id>/conf.json peut contenir une clé smart_ide (hors périmètre strict ia_deploy) avec notamment remote_data_access (alias SSH Host, chemins sur serveur par environnement). Voir l’exemple sous enso/conf.json.
Projet actif pour l’éditeur / Cursor
- Copier
active-project.json.exampleversprojects/active-project.json(fichier non versionné) et renseignerid(smart_ide,enso, …). - Dans un fichier
.code-workspace, renseignersmartIde.activeProjectIddanssettings(ex.enso/smart_ide.code-workspace).
Les agents Cursor lisent cette convention via .cursor/rules/smart-ide-ia-dev-bridge.mdc.
Référence amont
Schéma des champs : ia_dev/projects/README.md (documentation ia_dev). Le bloc optionnel cron est une extension smart_ide pour les scripts locaux ; ia_dev peut l’ignorer s’il ne le lit pas. Le bloc smart_ide est une extension smart_ide pour données distantes et IDE ; les outils ia_dev qui ne le lisent pas peuvent l’ignorer.