Skip to main content

Secretos

Kazzle tiene una bóveda cifrada integrada para almacenar claves API, credenciales de base de datos, tokens y otros valores sensibles que tu aplicación necesita. Los secretos se cifran en reposo con AES-256-GCM usando claves de cifrado de datos envueltas en KMS — los valores en texto plano nunca tocan la base de datos.

Conceptos

Colecciones agrupan secretos relacionados (p. ej. stripe-keys, database-credentials). Cada colección tiene un slug (minúsculas, con guiones) que referencias en archivos de configuración y comandos CLI. Entornos son ámbitos opcionales dentro de una colección (p. ej. production, staging). Los secretos pueden estar limitados a un entorno específico o dejarse a nivel de colección como valores por defecto. Orden de resolución: al resolver secretos para una colección + entorno dados, los secretos específicos del entorno anulan los secretos a nivel de colección con el mismo nombre. Esto te permite compartir la mayoría de secretos entre entornos mientras anuelas valores específicos por entorno.

Gestionar secretos

En la aplicación

Abre Configuración > Bóveda para crear colecciones, entornos y secretos a través de la interfaz.

Con la IA

La IA puede crear colecciones, crear entornos, almacenar secretos, moverlos entre ámbitos y eliminarlos por ti. La IA ve los nombres y metadatos de los secretos pero no los valores cifrados.

Con la CLI

Referenciar secretos desde tu aplicación

Apunta la propiedad env de un componente a una colección de secretos y entorno en kazzle.config.ts. Cada secreto en ese ámbito se inyecta como una variable de entorno de proceso cuyo nombre coincide con el nombre del secreto:
env.collection y env.environment son slugs, no nombres para mostrar. Usa env.include para inyectar solo un subconjunto de los secretos de la colección:

Cómo los secretos se convierten en variables de entorno

Cuando se resuelven secretos para un componente:
  1. La colección se encuentra por slug dentro de tu espacio
  2. Se cargan los secretos limitados al entorno especificado
  3. Los secretos a nivel de colección (sin entorno) se incluyen como valores por defecto
  4. Los secretos específicos del entorno anulan los de nivel de colección con el mismo nombre
  5. Las referencias de secretos dentro de valores se resuelven
  6. Los nombres de secretos se convierten al formato de variable de entorno: mayúsculas, los caracteres no alfanuméricos se convierten en guiones bajos
Un secreto llamado Stripe Secret Key se convierte en STRIPE_SECRET_KEY. Cada secreto tiene un modo de cuerpo que determina cómo se inyecta:
  • Los secretos string (claves API, tokens, URIs) se inyectan como cadenas escalares simples
  • Los secretos json (configuración estructurada) se inyectan como cadenas JSON
  • Los secretos fields (credenciales de inicio de sesión, bolsas de campos tipados) se inyectan como cadenas JSON

Cuándo se inyectan los secretos

Referencias de plantilla

Los valores de secretos pueden referenciar otros campos de secretos con la misma sintaxis que Kazzle usa en otros lugares:
Formatos soportados:
  • ${secret.<uuid>.<field>} — campo específico o ruta JSON dentro de valores de secretos o parámetros de herramientas donde las referencias de bóveda están habilitadas.
  • ${secret.<uuid>} — cuerpo de secreto completo. Úsalo solo cuando una herramienta te pida explícitamente el secreto completo sin procesar; no lo uses en configuración/entorno de aplicación.
Las referencias se resuelven después de que se cargan los secretos. Las referencias circulares o rotas fallan en lugar de retroceder silenciosamente.