Secrets
Kazzle dispose d’un coffre-fort chiffré intégré pour stocker les clés API, identifiants de base de données, tokens et autres valeurs sensibles dont votre application a besoin. Les secrets sont chiffrés au repos avec AES-256-GCM en utilisant des clés de chiffrement de données enveloppées par KMS — les valeurs en clair ne touchent jamais la base de données.Concepts
Les Collections regroupent les secrets connexes (par ex.stripe-keys, database-credentials). Chaque collection a un slug (minuscules, tirets) que vous référencez dans les fichiers de configuration et les commandes CLI.
Les Environnements sont des portées optionnelles au sein d’une collection (par ex. production, staging). Les secrets peuvent être limités à un environnement spécifique ou rester au niveau de la collection en tant que valeurs par défaut.
Ordre de résolution : lors de la résolution des secrets pour une collection + environnement donnés, les secrets spécifiques à l’environnement remplacent les secrets au niveau de la collection portant le même nom. Cela vous permet de partager la plupart des secrets entre les environnements tout en remplaçant des valeurs spécifiques par environnement.
Gestion des secrets
Dans l’application
Ouvrez Paramètres > Vault pour créer des collections, des environnements et des secrets via l’interface utilisateur.Avec l’IA
L’IA peut créer des collections, créer des environnements, stocker des secrets, les déplacer entre les portées et les supprimer pour vous. L’IA voit les noms et métadonnées des secrets, mais pas les valeurs chiffrées.Avec la CLI
Référencer les secrets depuis votre application
Pointez l’env d’un composant vers une collection de secrets et un environnement dans kazzle.config.ts. Chaque secret dans cette portée est injecté en tant que variable d’environnement de processus dont le nom correspond au nom du secret :
env.collection et env.environment sont des slugs, pas des noms d’affichage. Utilisez env.include pour injecter uniquement un sous-ensemble des secrets de la collection :
Comment les secrets deviennent des variables d’environnement
Lorsque les secrets sont résolus pour un composant :- La collection est trouvée par slug dans votre espace
- Les secrets limités à l’environnement spécifié sont chargés
- Les secrets au niveau de la collection (sans environnement) sont inclus en tant que valeurs par défaut
- Les secrets spécifiques à l’environnement remplacent les secrets au niveau de la collection portant le même nom
- Les références de secrets à l’intérieur des valeurs sont résolues
- Les noms de secrets sont convertis au format de variable d’environnement : en majuscules, les caractères non alphanumériques deviennent des traits de soulignement
Stripe Secret Key devient STRIPE_SECRET_KEY.
Chaque secret a un mode de corps qui détermine comment il est injecté :
- Les secrets
string(clés API, tokens, URI) sont injectés en tant que chaînes scalaires simples - Les secrets
json(configuration structurée) sont injectés en tant que chaînes JSON - Les secrets
fields(identifiants de connexion, sacs de champs typés) sont injectés en tant que chaînes JSON
Quand les secrets sont injectés
Références de modèle
Les valeurs de secrets peuvent référencer d’autres champs de secrets avec la même syntaxe que Kazzle utilise ailleurs :${secret.<uuid>.<field>}— champ spécifique ou chemin JSON à l’intérieur des valeurs de secrets ou des paramètres d’outils où les références de coffre-fort sont activées.${secret.<uuid>}— corps entier du secret. À utiliser uniquement lorsqu’un outil demande explicitement le secret brut entier ; ne l’utilisez pas dans la configuration/env de l’application.