Skip to main content

Geheimen

Kazzle heeft een ingebouwde versleutelde kluis voor het opslaan van API-sleutels, databaseinloggegevens, tokens en andere gevoelige waarden die uw app nodig heeft. Geheimen zijn versleuteld in rust met AES-256-GCM met KMS-verpakte gegevensversleutelingssleutels — onversleutelde waarden raken nooit de database.

Concepten

Collecties groeperen gerelateerde geheimen (bijv. stripe-keys, database-credentials). Elke collectie heeft een slug (kleine letters, met koppeltekens) die u in configuratiebestanden en CLI-opdrachten gebruikt. Omgevingen zijn optionele bereiken binnen een collectie (bijv. production, staging). Geheimen kunnen aan een specifieke omgeving worden gekoppeld of op collectieniveau als standaardwaarden blijven staan. Resolutievolgorde: bij het oplossen van geheimen voor een bepaalde collectie + omgeving overschrijven omgevingsspecifieke geheimen geheimen op collectieniveau met dezelfde naam. Dit stelt u in staat om de meeste geheimen in omgevingen te delen terwijl u specifieke waarden per omgeving overschrijft.

Geheimen beheren

In de app

Open Instellingen > Kluis om collecties, omgevingen en geheimen via de UI te maken.

Met de AI

De AI kan collecties maken, omgevingen maken, geheimen opslaan, ze tussen bereiken verplaatsen en ze voor u verwijderen. De AI ziet geheimennamen en metagegevens, maar niet de versleutelde waarden.

Met de CLI

Geheimen uit uw app refereren

Wijs de env van een component naar een geheimencollectie en omgeving in kazzle.config.ts. Elk geheim in dat bereik wordt geïnjecteerd als een procesomgevingsvariabele waarvan de naam overeenkomt met de geheimennaam:
env.collection en env.environment zijn slugs, geen weergavenamen. Gebruik env.include om alleen een subset van de geheimen van de collectie in te voegen:

Hoe geheimen omgevingsvariabelen worden

Wanneer geheimen voor een component worden opgelost:
  1. De collectie wordt per slug in uw space gevonden
  2. Geheimen die aan de opgegeven omgeving zijn gekoppeld, worden geladen
  3. Geheimen op collectieniveau (geen omgeving) worden als standaardwaarden opgenomen
  4. Omgevingsspecifieke geheimen overschrijven geheimen op collectieniveau met dezelfde naam
  5. Geheimverwijzingen in waarden worden opgelost
  6. Geheimennamen worden omgezet naar omgevingsvariabelindeling: hoofdletters, niet-alfanumerieke tekens worden onderstrepen
Een geheim met de naam Stripe Secret Key wordt STRIPE_SECRET_KEY. Elk geheim heeft een body-modus die bepaalt hoe het wordt geïnjecteerd:
  • string geheimen (API-sleutels, tokens, URI’s) worden geïnjecteerd als gewone scalaire tekenreeksen
  • json geheimen (gestructureerde configuratie) worden geïnjecteerd als JSON-tekenreeksen
  • fields geheimen (inloggegevens, getypte veldenverzamelingen) worden geïnjecteerd als JSON-tekenreeksen

Wanneer geheimen worden geïnjecteerd

Sjabloonverwijzingen

Geheimwaarden kunnen verwijzen naar andere geheimenvelden met dezelfde syntaxis die Kazzle elders gebruikt:
Ondersteunde indelingen:
  • ${secret.<uuid>.<field>} — specifiek veld of JSON-pad in geheimwaarden of hulpmiddelparameters waar kluisverwijzingen zijn ingeschakeld.
  • ${secret.<uuid>} — hele geheimtekst. Gebruik alleen wanneer een hulpmiddel expliciet om het volledige onbewerkte geheim vraagt; gebruik dit niet in app-omgeving/configuratie.
Verwijzingen worden opgelost nadat geheimen zijn geladen. Circulaire of verbroken verwijzingen mislukken in plaats van stilzwijgend terug te vallen.