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
Description
Lors du provisionnement d'un projet par le nouveau serveur
server-nestjs, le secret VaultGITLAB(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 secretGITLABne le suit pas.ConsĂ©quences observĂ©es :
GITLABest absent de l'espace Vault du projet (il « n'est pas créé » du point de vue de l'équipe) ;Etapes de reproduction
Piste technique (oĂč se trouve l'erreur)
Dans
apps/server-nestjs/src/modules/vault/vault-client.service.ts, la méthodewriteMirrorTriggerToken(ligne 264) écrit dans un chemin fixe'GITLAB'viathis.write(secret, 'GITLAB'), sans le préfixe<PROJECTS_ROOT_DIR>/<slug>/utilisé par toutes les autres méthodes (voirvault.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