Les secrets, proprement
Vous allez construire : une application dont la config ne contient aucun identifiant — et un deploy qui échoue bruyamment si un secret manque, au lieu d'expédier un pipeline cassé.
Prérequis
- N'importe quelle application avec un sink ou un connecteur à identifiants.
1 · Stockez un secret en local
pulse secret set ALERT_WEBHOOK https://hooks.example.com/T000/B000/xxxx
Stocké dans le magasin local de la CLI (fichier en mode 0600). Listez et supprimez avec pulse secret list · pulse secret rm NAME.
2 · Référencez-le — ne le collez jamais
sink:
kind: webhook
url: ${secret:ALERT_WEBHOOK}
Deux formes de référence existent : ${secret:NAME} (magasin de la CLI) et ${env:VAR} (variable d'environnement). Le générateur émet déjà ces références pour les champs d'identifiants — suivez son exemple.
3 · Voyez le garde-fou en action
pulse secret rm ALERT_WEBHOOK
pulse deploy .
Le deploy s'arrête avec une erreur nommée : la référence ${secret:ALERT_WEBHOOK} ne peut pas être résolue. Une config trouée n'atteint jamais le runtime.
4 · Restaurez et déployez proprement
pulse secret set ALERT_WEBHOOK https://hooks.example.com/T000/B000/xxxx
pulse deploy .
Ce qui vient de se passer
Les secrets sont résolus au moment du deploy, depuis l'extérieur du fichier. Le YAML que vous committez dans git porte des références, jamais des valeurs — le même fichier est donc sûr dans une PR, et la même application se déploie contre des identifiants dev ou prod en changeant ce que les références résolvent, pas le fichier.
Dépannage
Où vit le magasin de secrets ?
pulse secret path vous le montre. C'est un fichier local avec des permissions propriétaire-seul (0600) — par développeur, par machine.