From 1265be0d111a1e8d3d1196a51bdc950826bd67ba Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Fri, 3 Apr 2026 18:06:37 +0200 Subject: [PATCH] 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. --- docs/features/remote-deployed-data-ssh.md | 5 ++-- projects/README.md | 1 + projects/enso/conf.json | 33 ++++++++++++++++------- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/docs/features/remote-deployed-data-ssh.md b/docs/features/remote-deployed-data-ssh.md index 834b794..875ebdb 100644 --- a/docs/features/remote-deployed-data-ssh.md +++ b/docs/features/remote-deployed-data-ssh.md @@ -52,8 +52,9 @@ Les chemins **locaux** vers clones (`project_path`, `deploy.repository_root`, et Bloc optionnel **`smart_ide`** (ignoré par les outils qui ne le lisent pas, ex. parties d’**ia_dev** qui ne sélectionnent que leurs champs) : - **`remote_data_access.environments.`** : pour chaque environnement, - - **`ssh_host_alias`** : nom d’**hôte SSH** tel que défini dans **`~/.ssh/config`** (recommandé : `Host enso-test-app`, `ProxyJump`, `IdentityFile`, etc.). - - **`remote_data_directories`** : liste d’objets `{ "role": "…", "path_on_server": "…" }` décrivant les chemins **sur la machine déployée** (ex. répertoire docv, dossier de pièces jointes, répertoire de dumps). Les chemins sont **indicatifs** : les ajuster sur chaque ferme. + - **`ssh_host_alias`** : nom d’**hôte SSH** tel que défini dans **`~/.ssh/config`** (`Host …`). Pour **enso**, le déploiement lit **`ENSO_SSH_HOST`** dans le fichier **`enso-deploy.env`** de l’environnement (exemples dans **`enso/deploy/enso-deploy.env.example`** : `test`, `pprod`, `prod`). Si votre `Host` local diffère (ex. `enso-test-app`), renseigner **ce** libellé ici pour que les outils SSH du poste ciblent la bonne entrée. + - **`remote_app_root` (optionnel)** : chemin **absolu sur le serveur** de la racine du clone applicatif lorsqu’il est fixé par les scripts de déploiement. Pour **enso**, même sémantique que **`ENSO_REMOTE_ROOT`** (ex. `/home/ncantu/enso` dans l’exemple du dépôt enso ; sous **`$HOME`** sur la cible pour les unités systemd utilisateur, voir commentaire dans **`enso-deploy.env.example`**). + - **`remote_data_directories`** : liste d’objets `{ "role": "…", "path_on_server": "…" }` avec **`path_on_server` en chemin absolu sur la machine déployée**. Pour **enso**, les rôles **`enso_monorepo_clone`** et **`docv_dp_git_data`** reflètent **`ENSO_REMOTE_ROOT`** et le sous-chemin par défaut **`data/dossiers-permanents`** décrit dans **`enso/deploy/enso-deploy.env.example`** et **`enso/docs/features/DOSSIERS_PERMANENTS_DATA_GIT.md`**. Ajuster si **`DOCV_DP_GIT_REPO_ROOT`** / **`DOCV_DP_GIT_DATA_SUBPATH`** sur la cible divergent. - **`database` (optionnel)** : description **non secrète** du besoin (moteur, stratégie dump) ; pas d’URL ni mot de passe dans le JSON versionné. - **`anythingllm_workspace_slug` (optionnel)** : objet ou chaînes par env — slugs de workspace alignés sur [anythingllm-workspaces.md](../anythingllm-workspaces.md). diff --git a/projects/README.md b/projects/README.md index 4342895..6b50982 100644 --- a/projects/README.md +++ b/projects/README.md @@ -17,6 +17,7 @@ Les dépôts sources des produits (ex. backend **docv** sous un chemin du type ` ## `enso` - Fichier : [`enso/conf.json`](./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`](../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`). diff --git a/projects/enso/conf.json b/projects/enso/conf.json index 6f0e485..913fc4b 100644 --- a/projects/enso/conf.json +++ b/projects/enso/conf.json @@ -47,29 +47,44 @@ "remote_data_access": { "environments": { "test": { - "ssh_host_alias": "enso-test-app", + "ssh_host_alias": "test", + "remote_app_root": "/home/ncantu/enso", "remote_data_directories": [ { - "role": "docv_storage", - "path_on_server": "/var/lib/enso/test/data" + "role": "enso_monorepo_clone", + "path_on_server": "/home/ncantu/enso" + }, + { + "role": "docv_dp_git_data", + "path_on_server": "/home/ncantu/enso/data/dossiers-permanents" } ] }, "pprod": { - "ssh_host_alias": "enso-pprod-app", + "ssh_host_alias": "pprod", + "remote_app_root": "/home/ncantu/enso", "remote_data_directories": [ { - "role": "docv_storage", - "path_on_server": "/var/lib/enso/pprod/data" + "role": "enso_monorepo_clone", + "path_on_server": "/home/ncantu/enso" + }, + { + "role": "docv_dp_git_data", + "path_on_server": "/home/ncantu/enso/data/dossiers-permanents" } ] }, "prod": { - "ssh_host_alias": "enso-prod-app", + "ssh_host_alias": "prod", + "remote_app_root": "/home/ncantu/enso", "remote_data_directories": [ { - "role": "docv_storage", - "path_on_server": "/var/lib/enso/prod/data" + "role": "enso_monorepo_clone", + "path_on_server": "/home/ncantu/enso" + }, + { + "role": "docv_dp_git_data", + "path_on_server": "/home/ncantu/enso/data/dossiers-permanents" } ] }