From 359adb68168811d0285b6a09fbe9ab8396eec7fb Mon Sep 17 00:00:00 2001 From: Nicolas Cantu Date: Thu, 16 Apr 2026 15:24:11 +0200 Subject: [PATCH] docs(deploy): reference nested-secrets-tool.mjs for local secrets templates [skip ci] --- projects/kogus/docs/Deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/kogus/docs/Deployment.md b/projects/kogus/docs/Deployment.md index 437b51b..de7242f 100644 --- a/projects/kogus/docs/Deployment.md +++ b/projects/kogus/docs/Deployment.md @@ -102,7 +102,7 @@ Liste des fichiers contenant les textes affichés à l’utilisateur (libellés, - **Admin local (exports / imports secrets par site, sans déploiement)** : **`docs/features/secrets-devai-kogus-sites-and-imports.md`** — couches dev_ai / kogus / site, API `back-admin`, UI `front-admin`, fichiers matrice et catalogues actes. - **Orchestration ia_dev** : depuis la racine du dépôt ia_dev, `./deploy/deploy.sh [options]` exporte `IA_PROJECT_ID` puis exécute `orchestrator.sh`. Celui-ci enchaîne les scripts listés dans `deploy.hooks.phases` du `conf.json` du projet (chemins relatifs à `repository_root`), ou exécute `deploy.deploy_script_path` si `phases` est vide. `run-project-hooks.sh` délègue à `orchestrator.sh` (compatibilité). Cadrage : `deploy/DEPLOY_ORCHESTRATION_IA_DEV.md` (fichier dans le dépôt **ia_dev**). - **Scripts** : `deploy/scripts_v2/` ; chemin projet dans ia_dev `projects/kogus/conf.json` (project_path, build_dirs, deploy.deploy_script_path, deploy.secrets_path). -- **Clé SSH déploiement (`DEPLOY_SSH_KEY`)** : définie dans `.secrets///.env.` (layout imbriqué obligatoire pour le multisite ; migration depuis l’ancien plat : `SITE_CODE=lecoffreio bash deploy/scripts_v2/sites/lecoffreio/migrate-secrets-legacy-to-nested-lecoffreio.sh …>` depuis la racine du monorepo LeCoffre ; gabarits locaux optionnels : `node deploy/scripts_v2/materialize-nested-secrets-mandatory.mjs`). Utiliser un chemin **portable** : par ex. `DEPLOY_SSH_KEY='$HOME/.ssh/id_ed25519_4nk'` (l’expansion de `$HOME`, `${HOME}` et un préfixe `~/` est appliquée par `lecoffre_deploy_resolve_deploy_ssh_key` après `load_dotenv_file_strict`, qui ne fait pas d’`eval`). Ne pas figer un autre compte système (`/home/desk/...`). Ordre de repli si la clé indiquée est absente : `$HOME/.ssh/id_ed25519_4nk`, puis `$HOME/.ssh/id_ed25519`. Avant toute connexion SSH, la clé retenue est validée avec `ssh-keygen -y`. Vérification réseau : `bash deploy/scripts_v2/run-verify-ssh.sh ` ou les trois d’un coup : `bash deploy/scripts_v2/run-verify-ssh-all-envs.sh`. +- **Clé SSH déploiement (`DEPLOY_SSH_KEY`)** : définie dans `.secrets///.env.` (layout imbriqué obligatoire pour le multisite ; migration depuis l’ancien plat : `SITE_CODE=lecoffreio bash deploy/scripts_v2/sites/lecoffreio/migrate-secrets-legacy-to-nested-lecoffreio.sh …>` depuis la racine du monorepo LeCoffre ; gabarits locaux optionnels : `node deploy/scripts_v2/nested-secrets-tool.mjs materialize` — alias : `materialize-nested-secrets-mandatory.mjs`). Utiliser un chemin **portable** : par ex. `DEPLOY_SSH_KEY='$HOME/.ssh/id_ed25519_4nk'` (l’expansion de `$HOME`, `${HOME}` et un préfixe `~/` est appliquée par `lecoffre_deploy_resolve_deploy_ssh_key` après `load_dotenv_file_strict`, qui ne fait pas d’`eval`). Ne pas figer un autre compte système (`/home/desk/...`). Ordre de repli si la clé indiquée est absente : `$HOME/.ssh/id_ed25519_4nk`, puis `$HOME/.ssh/id_ed25519`. Avant toute connexion SSH, la clé retenue est validée avec `ssh-keygen -y`. Vérification réseau : `bash deploy/scripts_v2/run-verify-ssh.sh ` ou les trois d’un coup : `bash deploy/scripts_v2/run-verify-ssh-all-envs.sh`. - **Modifications locales** : **`deploy.sh`** (LeCoffre) ne modifie pas la branche locale **`test`** (pas de **`git pull`** ni **`git stash`** sur **`test`** avec **`--sync-origin`**). Les fichiers déployés depuis l’orchestrateur (scripts, **`import-v1`**) proviennent d’un **worktree** détaché au ref **`kogus/`** ; le working tree du clone principal peut donc contenir du WIP non poussé sans être écrasé — seul le tip **`kogus/test`** (ou branche alignée pour **pprod**/**prod**) part sur la cible après **`git push`**. Pour **pprod**/**prod**, l’index du clone principal doit rester propre (**`local_git_require_clean_index_strict`**). - **Versions** : version.package_json_paths (backend, frontend) ; splash_app_name pour la notice. - **Dépendances npm (fiabilité avant phases distantes)** : `deploy.sh` exécute `hooks/verify-npm-lockfiles.sh` sur la racine du **worktree** de déploiement (ref **`kogus/`**), après préparation de ce worktree et après le hook de concurrence. Pour chaque `build_dir` (ressources-common, back-common, front-common) : présence de `package-lock.json`, JSON valide, `npm install --package-lock-only --dry-run` (cohérence `package.json` ↔ lockfile), puis `npm audit --audit-level=high`. Sur la cible, `deploy/scripts_v2/remote/deploy-app.sh` exécute `npm_ci_strict` (suppression de `node_modules` puis `npm ci` sans repli `npm install`) pour les trois mêmes répertoires. Contournements documentés : `DEPLOY_SKIP_NPM_LOCKFILE_VERIFY=1`, `DEPLOY_SKIP_NPM_AUDIT=1`.