Segredos
Kazzle possui um cofre criptografado integrado para armazenar chaves de API, credenciais de banco de dados, tokens e outros valores sensíveis que seu app precisa. Os segredos são criptografados em repouso com AES-256-GCM usando chaves de criptografia de dados encapsuladas por KMS — valores em texto plano nunca tocam o banco de dados.Conceitos
Coleções agrupam segredos relacionados (ex:stripe-keys, database-credentials). Cada coleção tem um slug (minúsculas, com hífens) que você referencia em arquivos de configuração e comandos CLI.
Ambientes são escopos opcionais dentro de uma coleção (ex: production, staging). Os segredos podem ser limitados a um ambiente específico ou deixados no nível da coleção como padrões.
Ordem de resolução: ao resolver segredos para uma determinada coleção + ambiente, segredos específicos do ambiente substituem segredos no nível da coleção com o mesmo nome. Isso permite compartilhar a maioria dos segredos entre ambientes enquanto substitui valores específicos por ambiente.
Gerenciando segredos
No app
Abra Configurações > Cofre para criar coleções, ambientes e segredos pela interface.Com a IA
A IA pode criar coleções, criar ambientes, armazenar segredos, movê-los entre escopos e deletá-los para você. A IA vê nomes e metadados dos segredos, mas não os valores criptografados.Com a CLI
Referenciando segredos do seu app
Aponte oenv de um componente para uma coleção de segredos e ambiente em kazzle.config.ts. Cada segredo nesse escopo é injetado como uma variável de ambiente de processo cujo nome corresponde ao nome do segredo:
env.collection e env.environment são slugs, não nomes de exibição. Use env.include para injetar apenas um subconjunto dos segredos da coleção:
Como segredos se tornam variáveis de ambiente
Quando segredos são resolvidos para um componente:- A coleção é encontrada pelo slug dentro do seu espaço
- Segredos limitados ao ambiente especificado são carregados
- Segredos no nível da coleção (sem ambiente) são incluídos como padrões
- Segredos específicos do ambiente substituem os no nível da coleção com o mesmo nome
- Referências de segredos dentro de valores são resolvidas
- Nomes de segredos são convertidos para formato de variável de ambiente: maiúsculas, caracteres não alfanuméricos se tornam underscores
Stripe Secret Key se torna STRIPE_SECRET_KEY.
Cada segredo tem um modo de corpo que determina como é injetado:
- Segredos
string(chaves de API, tokens, URIs) são injetados como strings escalares simples - Segredos
json(configuração estruturada) são injetados como strings JSON - Segredos
fields(credenciais de login, bolsas de campos tipados) são injetados como strings JSON
Quando segredos são injetados
Referências de template
Valores de segredos podem referenciar outros campos de segredos com a mesma sintaxe que Kazzle usa em outros lugares:${secret.<uuid>.<field>}— campo específico ou caminho JSON dentro de valores de segredos ou parâmetros de ferramentas onde referências de cofre estão habilitadas.${secret.<uuid>}— corpo inteiro do segredo. Use apenas quando uma ferramenta solicita explicitamente o segredo bruto inteiro; não use isso em env/config do app.