Secretos
Kazzle tiene una bóveda encriptada integrada para almacenar claves API, credenciales de base de datos, tokens y otros valores sensibles que tu app necesita. Los secretos se encriptan en reposo con AES-256-GCM usando claves de encriptación 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 alcances 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 app
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 alcances y eliminarlos por ti. La IA ve los nombres y metadatos de los secretos pero no los valores encriptados.Con la CLI
Referenciar secretos desde tu app
Apunta elenv de un componente a una colección de secretos y entorno en kazzle.config.ts. Cada secreto en ese alcance 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:- La colección se encuentra por slug dentro de tu espacio
- Se cargan los secretos limitados al entorno especificado
- Los secretos a nivel de colección (sin entorno) se incluyen como valores por defecto
- Los secretos específicos del entorno anulan los de nivel de colección con el mismo nombre
- Las referencias de secretos dentro de valores se resuelven
- Los nombres de secretos se convierten al formato de variable de entorno: mayúsculas, los caracteres no alfanuméricos se convierten en guiones bajos
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
| Contexto | ¿Inyectado? | Detalles |
|---|---|---|
| Deploy (componente de proceso) | Sí | Se añade como variables de entorno en tiempo de ejecución en producción |
| Deploy (componente UI) | Parcial | Solo los secretos con prefijo VITE_* se pasan en tiempo de compilación |
CLI (kazzle run) | Sí | Se inyecta en el entorno del comando |
CLI (secrets.export) | Sí | Se exporta como líneas KEY=value |
| Vista previa de desarrollo | Aún no | El iniciador de vista previa aún no resuelve el env del componente — usa kazzle run por ahora |
Referencias de plantilla
Los valores de secretos pueden referenciar otros campos de secretos con la misma sintaxis que Kazzle usa en otros lugares:${secret.<uuid>.<field>}— campo específico o ruta JSON. Usa este formato para env/config de app.${secret.<uuid>}— cuerpo de secreto completo. Usa solo cuando una herramienta te pida explícitamente el secreto completo sin procesar; no uses esto en env/config de app.