Skip to content

🐛 [BUG] - Le secret Vault GITLAB n'est pas créé dans l'espace du projet lors du provisionnement (server-nestjs) #2400

Description

@KepoParis

Description

Lors du provisionnement d'un projet par le nouveau serveur server-nestjs, le secret Vault GITLAB (celui qui permet de déclencher le pipeline de miroir : PROJECT_SLUG, GIT_MIRROR_PROJECT_ID, GIT_MIRROR_TOKEN) n'apparaßt pas dans l'espace de secrets du projet.

Avec l'ancien plugin plugins/gitlab, ce secret Ă©tait Ă©crit via l'API Vault portĂ©e par le projet (plugins/gitlab/src/functions.ts:134 → vaultApi.write(gitlabSecret, 'GITLAB')), qui prĂ©fixe automatiquement le chemin avec <PROJECTS_ROOT_DIR>/<slug>/ (plugins/vault/src/vault-project-api.ts:102-105). Le secret finissait donc dans le dossier du projet.

Dans le nouveau serveur, tous les autres secrets du projet (.../tech/GITLAB_MIRROR, .../SONAR, .../<repo>-mirror) suivent bien ce prĂ©fixe par projet — seul le secret GITLAB ne le suit pas.

Conséquences observées :

  • le secret GITLAB est absent de l'espace Vault du projet (il « n'est pas créé » du point de vue de l'Ă©quipe) ;
  • comme le chemin ne contient pas le slug du projet, tous les projets Ă©crivent au mĂȘme endroit et s'Ă©crasent mutuellement : seules les valeurs du dernier projet provisionnĂ© subsistent.

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 GITLAB dans le dossier du projet
4. Constater qu'un unique secret existe à la racine forge-dso/GITLAB, partagé par tous les projets

Piste technique (oĂč se trouve l'erreur)

Dans apps/server-nestjs/src/modules/vault/vault-client.service.ts, la méthode writeMirrorTriggerToken (ligne 264) écrit dans un chemin fixe 'GITLAB' via this.write(secret, 'GITLAB'), sans le préfixe <PROJECTS_ROOT_DIR>/<slug>/ utilisé par toutes les autres méthodes (voir vault.utils.ts). Il faut passer le slug du projet et construire le chemin par projet (ex. <PROJECTS_ROOT_DIR>/<slug>/GITLAB), comme le faisait l'ancien plugin. Le contenu du secret, lui, est correct (gitlab.service.ts:474).

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