- Copy enso/docs tree to services/docv/enso-docs (refresh via cp -a from enso repo) - Document mirror and refresh command in services/docv/README.md - Ignore services/docv/target for local Rust workspace - Track docv-service-integration, API docv.md, and related doc index updates
5.4 KiB
ai_dev — intégration déploiement et secrets (Enso)
Référence unique pour brancher enso sur l’outillage partagé (dev_ai / ai_dev) : variables d’environnement, secrets, scripts bash et agents Cursor. La section 7 résume les artefacts sous deploy/ et renvoie aux fichiers versionnés dans le dépôt.
1. Racine outillage (ai_dev / dev_ai)
Ordre de résolution (identique dans deploy-env.sh, ssh.sh, sync-secrets-to-ai_dev.sh, deploy/deploy.sh) :
AI_DEV_ROOTDEV_AI_ROOT(clone dev_ai côte à côte du monorepo, ex.~/code/dev_ai)IA_DEV_ROOT(compatibilité)~/code/dev_ai~/code/ai_dev~/code/ia_dev
Fichiers attendus : ${ROOT}/deploy/lib/ssh.sh, et côté secrets : ${ROOT}/.secrets/enso/<env>/enso-deploy.env.
2. Secrets canoniques
Arborescence cible dans ai_dev (versionnée ou non selon politique du dépôt ai_dev) :
$TOOLING_ROOT/.secrets/enso/<test|pprod|prod>/enso-deploy.env
($TOOLING_ROOT = première racine résolue selon la liste §1.)
Les scripts enso doivent préférer ce fichier s’il existe, sinon :
<monorepo-enso>/.secrets/<env>/enso-deploy.env
3. Script de synchronisation
Fichier à ajouter : deploy/scripts_v2/sync-secrets-to-ai_dev.sh
(merge depuis .secrets/<env>/enso-deploy.env du monorepo vers .secrets/enso/<env>/enso-deploy.env dans ai_dev.)
4. Bibliothèque _lib/deploy-env.sh
Fonction enso_resolve_deploy_env_file repo_root env — à sourcer depuis deploy.sh, bootstrap-from-local.sh, install-rust-on-local.sh, install-systemd-on-local.sh.
5. Wrapper deploy/deploy.sh
Exécute $TOOLING_ROOT/deploy/deploy.sh enso "$@" avec la résolution §1 ($TOOLING_ROOT = première racine trouvée).
6. Agents Cursor
Ajoutés sous .cursor/agents/ :
ai-dev-secrets-merge.md(/ai-dev-secrets-merge) — exécute le script de fusion des secrets vers ai_dev.ai-dev-deploy.md(/ai-dev-deploy) — vérifie ai_dev, rappelle ai-dev-secrets-merge si besoin, puis applique intégralementdeploy-by-script.md.fix.mdetevol.md— après un/push-by-scriptréussi (code de sortie 0), enchaînent/ai-dev-deploypour publier sur test la révision distante correspondant à la branche, sauf demande explicite de ne pas déployer.
L’agent deploy-by-script.md référence ai_dev et la résolution des secrets (section ai_dev).
Après déploiement réussi (branche test, pprod ou prod, log avec [enso-health] all checks passed) : deploy-by-script.md §6 impose un appel call_mcp_tool : serveur cursor-ide-browser, outil browser_navigate, arguments url = ENSO_PUBLIC_ORIGIN (lue dans le enso-deploy.env résolu) ou repli https://{env}.enso.4nkweb.com, et newTab: true. Option : second browser_navigate pour https://{env}.docv.4nkweb.com (docv). Même consigne depuis le monorepo enso ou dev_ai (deploy/deploy.sh enso).
7. Fichiers à créer / remplacer dans le dépôt (contenu de référence)
7.1 deploy/scripts_v2/_lib/deploy-env.sh
Voir le fichier dans le dépôt (boucle AI_DEV_ROOT, DEV_AI_ROOT, IA_DEV_ROOT, ~/code/dev_ai, ~/code/ai_dev, ~/code/ia_dev).
7.2 deploy/scripts_v2/_lib/ssh.sh
Même ordre de candidats que §7.1 ; source ${cand}/deploy/lib/ssh.sh au premier trouvé.
7.3 deploy/scripts_v2/sync-secrets-to-ai_dev.sh
Copie .secrets/<env>/enso-deploy.env du monorepo vers <outil>/.secrets/enso/<env>/enso-deploy.env, avec la même découverte de racine que §7.1. Voir le fichier versionné dans le dépôt.
Puis : chmod +x deploy/scripts_v2/sync-secrets-to-ai_dev.sh.
7.4 Modifier deploy/scripts_v2/deploy.sh
Après SCRIPT_DIR / REPO_ROOT et le parsing ENV, remplacer l’affectation directe de DEPLOY_ENV_FILE par :
# shellcheck source=deploy-env.sh
source "$SCRIPT_DIR/_lib/deploy-env.sh"
enso_resolve_deploy_env_file "$REPO_ROOT" "$ENV"
echo "[enso-deploy] enso-deploy.env source=${ENSO_DEPLOY_ENV_SOURCE} file=${DEPLOY_ENV_FILE}"
Conserver source "$SCRIPT_DIR/_lib/ssh.sh" après la résolution du fichier env (comme aujourd’hui), ou avant si l’ordre actuel est conservé — l’important est d’avoir DEPLOY_ENV_FILE défini avant source "$DEPLOY_ENV_FILE".
7.5 Idem pour bootstrap-from-local.sh, install-rust-on-local.sh, install-systemd-on-local.sh
Même bloc source deploy-env.sh + enso_resolve_deploy_env_file "$REPO_ROOT" "$ENV" à la place de DEPLOY_ENV_FILE="${REPO_ROOT}/.secrets/...".
7.6 deploy/deploy.sh (racine du dossier deploy/ dans enso)
exec le premier ${C}/deploy/deploy.sh enso "$@" trouvé avec la même liste de candidats que §1. Voir le fichier versionné ; chmod +x appliqué dans le dépôt.
7.7 deploy/enso-deploy.env.example
En-tête : copie canonique sous l’outil partagé, repli monorepo, commande sync-secrets-to-ai_dev.sh (déjà présent dans le dépôt).
7.8 deploy/README.md et docs/INSTALLATION_ENVIRONNEMENT.md §7.15
dev_ai / ai_dev en premier, variables DEV_AI_ROOT, repli ia_dev et ~/code/ia_dev ; secrets .secrets/enso/<env>/ et script sync-secrets-to-ai_dev.sh (voir fichiers à jour dans le dépôt).