Secrets
Kazzle hat einen integrierten verschlüsselten Tresor zum Speichern von API-Schlüsseln, Datenbankzugangsdaten, Token und anderen sensiblen Werten, die deine App benötigt. Secrets werden im Ruhezustand mit AES-256-GCM verschlüsselt, wobei KMS-umhüllte Datenverschlüsselungsschlüssel verwendet werden – Klartextwerte gelangen niemals in die Datenbank.Konzepte
Collections gruppieren zusammenhängende Secrets (z. B.stripe-keys, database-credentials). Jede Collection hat einen Slug (Kleinbuchstaben, mit Bindestrichen), auf den du in Konfigurationsdateien und CLI-Befehlen verweist.
Environments sind optionale Bereiche innerhalb einer Collection (z. B. production, staging). Secrets können auf ein bestimmtes Environment beschränkt oder auf Collection-Ebene als Standardwerte belassen werden.
Auflösungsreihenfolge: Bei der Auflösung von Secrets für eine bestimmte Collection + Environment überschreiben Environment-spezifische Secrets Collection-Secrets mit demselben Namen. Dies ermöglicht es dir, die meisten Secrets über Environments hinweg zu teilen und gleichzeitig bestimmte Werte pro Environment zu überschreiben.
Secrets verwalten
In der App
Öffne Einstellungen > Vault, um Collections, Environments und Secrets über die Benutzeroberfläche zu erstellen.Mit der KI
Die KI kann Collections erstellen, Environments erstellen, Secrets speichern, sie zwischen Bereichen verschieben und sie für dich löschen. Die KI sieht Secret-Namen und Metadaten, aber nicht die verschlüsselten Werte.Mit der CLI
Secrets aus deiner App referenzieren
Verweise mit demenv einer Komponente auf eine Secret-Collection und ein Environment in kazzle.config.ts. Jedes Secret in diesem Bereich wird als Prozessumgebungsvariable eingefügt, deren Name dem Secret-Namen entspricht:
env.collection und env.environment sind Slugs, keine Anzeigenamen. Verwende env.include, um nur eine Teilmenge der Secrets der Collection einzufügen:
Wie Secrets zu Umgebungsvariablen werden
Wenn Secrets für eine Komponente aufgelöst werden:- Die Collection wird nach Slug in deinem Space gefunden
- Secrets, die auf das angegebene Environment beschränkt sind, werden geladen
- Collection-Secrets (ohne Environment) werden als Standardwerte einbezogen
- Environment-spezifische Secrets überschreiben Collection-Secrets mit demselben Namen
- Secret-Referenzen innerhalb von Werten werden aufgelöst
- Secret-Namen werden in das Umgebungsvariablenformat konvertiert: Großbuchstaben, nicht-alphanumerische Zeichen werden zu Unterstrichen
Stripe Secret Key wird zu STRIPE_SECRET_KEY.
Jedes Secret hat einen Body-Modus, der bestimmt, wie es eingefügt wird:
stringSecrets (API-Schlüssel, Token, URIs) werden als einfache Skalarzeichenfolgen eingefügtjsonSecrets (strukturierte Konfiguration) werden als JSON-Zeichenfolgen eingefügtfieldsSecrets (Anmeldedaten, typisierte Feldgruppen) werden als JSON-Zeichenfolgen eingefügt
Wann Secrets eingefügt werden
| Kontext | Eingefügt? | Details |
|---|---|---|
| Deploy (Process-Komponente) | Ja | Als Laufzeit-Umgebungsvariablen in der Produktion hinzugefügt |
| Deploy (UI-Komponente) | Teilweise | Nur Secrets mit VITE_*-Präfix werden zur Build-Zeit übergeben |
CLI (kazzle run) | Ja | In die Umgebung des Befehls eingefügt |
CLI (secrets.export) | Ja | Als KEY=value-Zeilen exportiert |
| Dev-Vorschau | Noch nicht | Die Preview-Starter löst Component-env noch nicht auf – verwende vorerst kazzle run |
Template-Referenzen
Secret-Werte können andere Secret-Felder mit der gleichen Syntax referenzieren, die Kazzle anderswo verwendet:${secret.<uuid>.<field>}– spezifisches Feld oder JSON-Pfad. Verwende dieses Format für App-Umgebung/Konfiguration.${secret.<uuid>}– gesamter Secret-Body. Verwende nur, wenn ein Tool explizit das gesamte Raw-Secret anfordert; verwende dies nicht in App-Umgebung/Konfiguration.