Description
Lors du provisionnement d'un projet par le nouveau serveur server-nestjs, le secret Vault NEXUS (NEXUS_USERNAME, NEXUS_PASSWORD) n'apparaît pas à l'emplacement attendu dans l'espace de secrets du projet.
Avec l'ancien plugin plugins/nexus, ce secret était écrit via l'API Vault portée par le projet (plugins/nexus/src/project.ts:188 → vaultApi.write({...}, 'NEXUS')), qui résout le chemin à <PROJECTS_ROOT_DIR>/<slug>/NEXUS (plugins/vault/src/vault-project-api.ts:102-105). Le secret se trouvait donc directement dans le dossier du projet, sous la clé NEXUS.
Dans le nouveau serveur, le secret est écrit sous <PROJECTS_ROOT_DIR>/<slug>/tech/NEXUS — avec un segment tech/ supplémentaire qui n'existait pas auparavant.
Conséquence observée :
- le secret
NEXUS est absent de l'emplacement historique (.../NEXUS) et se trouve désormais sous .../tech/NEXUS ; les consommateurs qui le lisent à l'ancien emplacement ne le trouvent plus.
Etapes de reproduction
1. Provisionner (ou re-synchroniser) un projet via le serveur server-nestjs
2. Ouvrir Vault → espace forge-dso → <PROJECTS_ROOT_DIR>/<slug>/
3. Constater l'absence du secret NEXUS directement dans le dossier du projet
4. Constater que le secret se trouve sous <PROJECTS_ROOT_DIR>/<slug>/tech/NEXUS
Piste technique (où se trouve l'erreur)
Dans apps/server-nestjs/src/modules/nexus/nexus.service.ts, la méthode ensureUser construit le chemin avec getProjectVaultPath(this.baseConfig.projectsRootDir, project.slug, 'tech/NEXUS') (ligne 435, écriture ligne 466-469), ce qui donne <PROJECTS_ROOT_DIR>/<slug>/tech/NEXUS. L'ancien plugin écrivait à <PROJECTS_ROOT_DIR>/<slug>/NEXUS. Il faut retirer le segment tech/ (chemin relatif 'NEXUS') pour retrouver l'emplacement historique. La lecture (ligne 438) et la suppression (ligne 580) utilisent le même chemin et sont à corriger de la même façon. Le contenu du secret, lui, est correct.
Version de la console impactée
v9.23.0
Description
Lors du provisionnement d'un projet par le nouveau serveur
server-nestjs, le secret VaultNEXUS(NEXUS_USERNAME,NEXUS_PASSWORD) n'apparaît pas à l'emplacement attendu dans l'espace de secrets du projet.Avec l'ancien plugin
plugins/nexus, ce secret était écrit via l'API Vault portée par le projet (plugins/nexus/src/project.ts:188→vaultApi.write({...}, 'NEXUS')), qui résout le chemin à<PROJECTS_ROOT_DIR>/<slug>/NEXUS(plugins/vault/src/vault-project-api.ts:102-105). Le secret se trouvait donc directement dans le dossier du projet, sous la cléNEXUS.Dans le nouveau serveur, le secret est écrit sous
<PROJECTS_ROOT_DIR>/<slug>/tech/NEXUS— avec un segmenttech/supplémentaire qui n'existait pas auparavant.Conséquence observée :
NEXUSest absent de l'emplacement historique (.../NEXUS) et se trouve désormais sous.../tech/NEXUS; les consommateurs qui le lisent à l'ancien emplacement ne le trouvent plus.Etapes de reproduction
Piste technique (où se trouve l'erreur)
Dans
apps/server-nestjs/src/modules/nexus/nexus.service.ts, la méthodeensureUserconstruit le chemin avecgetProjectVaultPath(this.baseConfig.projectsRootDir, project.slug, 'tech/NEXUS')(ligne 435, écriture ligne 466-469), ce qui donne<PROJECTS_ROOT_DIR>/<slug>/tech/NEXUS. L'ancien plugin écrivait à<PROJECTS_ROOT_DIR>/<slug>/NEXUS. Il faut retirer le segmenttech/(chemin relatif'NEXUS') pour retrouver l'emplacement historique. La lecture (ligne 438) et la suppression (ligne 580) utilisent le même chemin et sont à corriger de la même façon. Le contenu du secret, lui, est correct.Version de la console impactée
v9.23.0