API-Keys, simpel.
Stripe-Style-Format. Bearer-Header. Rotation überlappend, kein Down-Time.
Key-Format
Wir nutzen das Stripe-Convention-Pattern. Zwei Modi:
mg_live_*— Production-Key. Echte Aufrufe, echte Rate-Limits, echte Logs.mg_test_*— Test-Key. Sandbox-Endpoints, idempotente Mock-Responses, kein Volumen-Counter.
Bearer-Auth
Standard für REST-Endpoints: Header Authorization: Bearer mg_live_xxx. Schreibtisch hat zusätzlich JWT (Login-flow), aber Bearer-Pattern bleibt gleich.
# Standard-Authentication: Bearer im Authorization-Header
curl -sS https://genome.mithgard.ai/api/search \
-H "Authorization: Bearer mg_live_a3f9c2b1..." \
-H "Content-Type: application/json" \
-d '{"q":"low-power neural nets"}'
Rotation
API-Keys haben kein hartes Ablaufdatum, aber wir empfehlen Rotation alle 90 Tage oder spätestens nach Personalwechsel. Soft-Rotation: alter und neuer Key sind 7 Tage parallel gültig.
# Schritt 1: neuen Key beantragen (überlappend gültig)
# /developers → "API-Key beantragen" → Use-Case "rotation"
#
# Schritt 2: alten Key in Production durch neuen ersetzen
# Schritt 3: alten Key revoken (per Mail an nico@mithgard.ai)
#
# Soft-Rotation: Beide Keys 7 Tage parallel gültig.
Sicherheits-Best-Practices
Niemals im Client-Bundle
Kein NEXT_PUBLIC_MITHGARD_API_KEY. Ever. Server-only — Route-Handler, Server-Action oder Edge-Function. Wenn Frontend-Code die API ruft: über euren eigenen BFF-Endpoint.
Scope per Key
Ein Key pro Service. Logge die User-Agent-Header — wenn ein Key in unerwartetem Kontext auftaucht, weißt du sofort welcher betroffen ist.
Kompromittierung melden
Verdacht auf Leak? security@mithgard.ai — wir revoken innerhalb von 1h und stellen einen Ersatz aus.