Segreti
Kazzle ha un vault crittografato integrato per archiviare chiavi API, credenziali di database, token e altri valori sensibili di cui la tua app ha bisogno. I segreti sono crittografati a riposo con AES-256-GCM utilizzando chiavi di crittografia dei dati avvolte da KMS — i valori in chiaro non toccano mai il database.Concetti
Collections raggruppano segreti correlati insieme (ad es.stripe-keys, database-credentials). Ogni collection ha uno slug (minuscolo, con trattini) che referenzi nei file di configurazione e nei comandi CLI.
Environments sono ambiti facoltativi all’interno di una collection (ad es. production, staging). I segreti possono essere limitati a un ambiente specifico o lasciati a livello di collection come valori predefiniti.
Ordine di risoluzione: quando si risolvono i segreti per una determinata collection + environment, i segreti specifici dell’ambiente sovrascrivono i segreti a livello di collection con lo stesso nome. Questo ti permette di condividere la maggior parte dei segreti tra gli ambienti mentre sovrascrivi valori specifici per ambiente.
Gestione dei segreti
Nell’app
Apri Settings > Vault per creare collection, environment e segreti tramite l’interfaccia utente.Con l’AI
L’AI può creare collection, creare environment, archiviare segreti, spostarli tra ambiti ed eliminarli per te. L’AI vede i nomi dei segreti e i metadati ma non i valori crittografati.Con la CLI
Referenziare i segreti dalla tua app
Punta l’env di un componente a una collection di segreti e a un environment in kazzle.config.ts. Ogni segreto in quell’ambito viene iniettato come variabile di ambiente di processo il cui nome corrisponde al nome del segreto:
env.collection e env.environment sono slug, non nomi visualizzati. Usa env.include per iniettare solo un sottoinsieme dei segreti della collection:
Come i segreti diventano variabili di ambiente
Quando i segreti vengono risolti per un componente:- La collection viene trovata per slug all’interno del tuo space
- I segreti limitati all’environment specificato vengono caricati
- I segreti a livello di collection (senza environment) vengono inclusi come valori predefiniti
- I segreti specifici dell’environment sovrascrivono quelli a livello di collection con lo stesso nome
- I riferimenti ai segreti all’interno dei valori vengono risolti
- I nomi dei segreti vengono convertiti nel formato di variabile di ambiente: maiuscoli, i caratteri non alfanumerici diventano trattini bassi
Stripe Secret Key diventa STRIPE_SECRET_KEY.
Ogni segreto ha una body mode che determina come viene iniettato:
- I segreti
string(chiavi API, token, URI) vengono iniettati come stringhe scalari semplici - I segreti
json(configurazione strutturata) vengono iniettati come stringhe JSON - I segreti
fields(credenziali di accesso, borse di campi tipizzati) vengono iniettati come stringhe JSON
Quando i segreti vengono iniettati
Riferimenti ai template
I valori dei segreti possono referenziare altri campi di segreti con la stessa sintassi che Kazzle usa altrove:${secret.<uuid>.<field>}— campo specifico o percorso JSON all’interno di valori di segreti o parametri di strumenti dove i riferimenti al vault sono abilitati.${secret.<uuid>}— corpo del segreto intero. Usa solo quando uno strumento chiede esplicitamente il segreto grezzo intero; non usare questo nella configurazione/env dell’app.