Skip to content

🐛 [BUG] - Le secret Vault NEXUS n'est pas créé au bon emplacement dans l'espace du projet lors du provisionnement (server-nestjs) #2401

Description

@KepoParis

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:188vaultApi.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/NEXUSavec 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions