Skip to main content

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 :
  1. La collection est trouvée par slug dans votre espace
  2. Les secrets limités à l’environnement spécifié sont chargés
  3. Les secrets au niveau de la collection (sans environnement) sont inclus en tant que valeurs par défaut
  4. Les secrets spécifiques à l’environnement remplacent les secrets au niveau de la collection portant le même nom
  5. Les références de secrets à l’intérieur des valeurs sont résolues
  6. 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
Un secret nommé 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 :
Formats supportés :
  • ${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.
Les références sont résolues après le chargement des secrets. Les références circulaires ou cassées échouent au lieu de revenir silencieusement.