smart_ide/projects/README.md
Nicolas Cantu 1265be0d11 Align enso remote paths with enso-deploy conventions
**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.
2026-04-03 18:06:37 +02:00

5.1 KiB
Raw Blame History

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 nest 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) → 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 docs/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 (voir ia_dev/lib/conf_path_resolve.sh).

smart_ide

enso

  • Fichier : 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 déclarés sous smart_ide.remote_data_access (clone, dossiers permanents docv) sont alignés sur ENSO_REMOTE_ROOT, ENSO_SSH_HOST et le sous-chemin data/dossiers-permanents tels que documentés dans le dépôt enso (deploy/enso-deploy.env.example, sync docv). Les valeurs réelles par ferme restent dans les enso-deploy.env non versionnés.
  • Cron fragment : cron/fragments/enso.cron.
  • Pour que ia_dev résolve projects/enso/conf.json, créer sous ia_dev/projects/ un lien symbolique enso../../projects/enso (même principe que smart_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 le conf.json concerné.
  • Désactiver tout le mécanisme: PULL_SYNC_ENABLED=0 dans config.env ou cron/config.local.env.

Détail : cron/README.md. project_path est résolu en chemin absolu à partir de la racine smart_ide lorsquil 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 .gitignore sur chaque clone applicatif). docv, AnythingLLM et les services smart_ide qui lisent ces données sappuient 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 lexemple sous enso/conf.json.

Projet actif pour léditeur / Cursor

  1. Copier active-project.json.example vers projects/active-project.json (fichier non versionné) et renseigner id (smart_ide, enso, …).
  2. Dans un fichier .code-workspace, renseigner smartIde.activeProjectId dans settings (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 lignorer sil 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 lignorer.