Skip to main content

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 umgebungsspezifische 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 Settings > 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 der env-Eigenschaft 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:
  1. Die Collection wird nach Slug in deinem Space gefunden
  2. Secrets, die auf das angegebene Environment beschränkt sind, werden geladen
  3. Collection-Secrets (ohne Environment) werden als Standardwerte einbezogen
  4. Umgebungsspezifische Secrets überschreiben Collection-Secrets mit demselben Namen
  5. Secret-Referenzen innerhalb von Werten werden aufgelöst
  6. Secret-Namen werden in das Format der Umgebungsvariablen konvertiert: Großbuchstaben, nicht-alphanumerische Zeichen werden zu Unterstrichen
Ein Secret namens Stripe Secret Key wird zu STRIPE_SECRET_KEY. Jedes Secret hat einen Body-Modus, der bestimmt, wie es eingefügt wird:
  • string Secrets (API-Schlüssel, Token, URIs) werden als einfache Skalarzeichenfolgen eingefügt
  • json Secrets (strukturierte Konfiguration) werden als JSON-Zeichenfolgen eingefügt
  • fields Secrets (Anmeldedaten, typisierte Feldgruppen) werden als JSON-Zeichenfolgen eingefügt

Wann Secrets eingefügt werden

Template-Referenzen

Secret-Werte können andere Secret-Felder mit der gleichen Syntax referenzieren, die Kazzle anderswo verwendet:
Unterstützte Formate:
  • ${secret.<uuid>.<field>} — spezifisches Feld oder JSON-Pfad innerhalb von Secret-Werten oder Tool-Parametern, wo Vault-Referenzen aktiviert sind.
  • ${secret.<uuid>} — gesamter Secret-Body. Verwende dies nur, wenn ein Tool explizit das gesamte rohe Secret anfordert; verwende dies nicht in App-Umgebung/Konfiguration.
Referenzen werden aufgelöst, nachdem Secrets geladen wurden. Zirkuläre oder unterbrochene Referenzen schlagen fehl, anstatt stillschweigend zurückzufallen.