Kommandozeilenschnittstelle
Die keenauth-Kommandozeilenschnittstelle (CLI) ruft die Verwaltungs-API aus einem Terminal oder einem Skript auf. Jeder Befehl umhüllt genau eine typisierte Methode des Go-SDK, daher verhalten sich CLI und API gleich. Es gibt noch kein Installationspaket.
Authentifizierung und Ziel
Die CLI liest ihre Zugangsdaten ausschließlich aus der Umgebung. Der API-Schlüssel wird nie als Flag akzeptiert, damit er nicht in Ihrem Shell-Verlauf landet.
| Variable | Erforderlich | Beschreibung |
|---|---|---|
KEENAUTH_API_KEY |
ja | Schlüssel der Verwaltungs-API. Fehlt er, beendet sich der Befehl mit Code 3. |
KEENAUTH_BASE_URL |
ja, sofern --base-url nicht angegeben ist |
Basis-URL der Verwaltungs-API Ihrer Umgebung. |
Statt eines API-Schlüssels können Sie sich mit Ihrem Dashboard-Konto anmelden: keenauth login, danach keenauth env use <environment_id>. Die Sitzung wird nur verwendet, wenn KEENAUTH_API_KEY nicht gesetzt ist; die Adresse der Umgebung stammt dann aus der Control Plane (siehe Anmelden mit keenauth login).
Das Flag --base-url überschreibt KEENAUTH_BASE_URL für einen einzelnen Befehl. Die CLI gibt den API-Schlüssel niemals aus; taucht er in einer Serverantwort auf, wird er durch [redacted] ersetzt.
Befehle
Befehle folgen dem Muster keenauth <group> <action> [arguments] [flags]. Führen Sie keenauth --help oder keenauth <group> --help aus, um die vollständige Liste zu sehen.
| Gruppe | Aktionen |
|---|---|
users |
list, search, get, create, update, delete, block, unblock, cancel-deletion, authenticators list, authenticators delete, authenticators reset, authenticators reactivate, send-password-reset, send-verification-email, emails send-verification, start-recovery, logs list |
applications |
list, create, get, update, delete, get-api-grant, put-api-grant, delete-api-grant, credentials list, credentials create, credentials delete |
apis |
list, create, get, update, delete |
connections |
list, create, get, update, delete, activate, deactivate |
identity-settings |
get, update |
environment-settings |
get, update |
config |
export (ohne -o gibt sie YAML aus), plan -f <file> (zeigt im Terminal einen lesbaren Diff), plans get, apply <plan_id> (fragt nach einer Bestätigung; --secrets-from-env liest Geheimnisse aus Umgebungsvariablen, --confirm-deletion <kind>/<key>), promote --from <env> --to <env> (exportiert, plant, zeigt den Diff und wendet nach Bestätigung an; siehe Konfiguration mit keenauth config promote übernehmen) |
api-keys |
list, get, create, rotate, revoke |
logs |
list, get, tail (folgt neuen Datensätzen; --type, --user, --org; siehe Logs mit keenauth logs tail verfolgen) |
support-access-grants |
list, get, create, delete (siehe Support-Zugriff gewähren mit keenauth support-access-grants) |
directories |
simulate <directory_id> --scenario <name> (führt ein SCIM-Simulator-Szenario in Entwicklung und Staging aus; siehe SCIM-Provisioning testen mit keenauth directories simulate) |
audit |
verify (prüft einen heruntergeladenen Audit-Export offline; siehe Audit-Exporte prüfen mit keenauth audit verify) |
branding |
get, update, applications get, applications put, organizations get, organizations put, css put, page-template put, publish, rollback, versions list, texts get, texts put, texts delete |
signing-keys |
list, rotate, policy get, policy update |
events |
tail (folgt Kundenereignissen über die Event-API; siehe Ereignisse verfolgen mit keenauth events tail), get <event ID> (ein Ereignis, genau so wie vom Server gesendet) |
mock |
serve startet einen lokalen OIDC-Mock-Server für Offline-Tests; er benötigt keinen API-Schlüssel (siehe Lokaler Mock-Server) |
test |
login --user <+test address> meldet einen Testbenutzer mit dem festen Code in einer development-Umgebung an und gibt die Tokens aus; er benötigt keinen API-Schlüssel (siehe Testbenutzer anmelden mit keenauth test login) |
webhooks |
listen --forward-to <local URL> leitet die Ereignisse einer development- oder staging-Umgebung an Ihren Rechner weiter, signiert mit einem temporären Geheimnis (siehe Webhooks lokal testen mit keenauth webhooks listen) |
login, logout, whoami, env |
login (--web, --insecure-storage), logout, whoami, env use <environment_id>, env list: melden Sie sich mit Ihrem Dashboard-Konto statt mit einem API-Schlüssel an (siehe Anmelden mit keenauth login) |
Listenbefehle akzeptieren --limit, --after, --before und --order. Gibt es weitere Ergebnisse, wird der nächste Cursor als more results: --after <cursor> auf stderr ausgegeben.
Ausgabeformat
--output (-o) wählt table, json oder yaml. Ohne das Flag gibt die CLI im Terminal eine Tabelle aus, sonst JSON. JSON und YAML enthalten die API-Antwort unverändert und werden nie übersetzt, sodass Skripte sich darauf verlassen können. Ergebnisse gehen an stdout; Fehler, Hinweise und die Zeile etag gehen an stderr.
Anfragekörper
Befehle, die einen Körper senden, akzeptieren für jedes flache Feld ein Flag, benannt nach dem JSON-Schlüssel mit Bindestrichen (phone_number wird zu --phone-number). Verschachtelte Objekte werden mit --data angegeben:
--data @file.jsonliest den Körper aus einer Datei.--data -liest den Körper von der Standardeingabe.
Flags überschreiben die Felder der Datei. Ein Körper ist auf 4 MiB begrenzt.
keenauth users create --email ada@example.com
keenauth apis create --data @api.json
echo '{"name":"Orders"}' | keenauth apis update api_123 --data - --if-match '"v3"'
Optimistische Parallelität: --if-match und das etag
Aktualisierungs- und Löschbefehle für Anwendungen, APIs und Verbindungen erfordern --if-match; users update akzeptiert es. Der Wert ist das ETag der Version, die Sie ändern möchten. Der Server lehnt die Anfrage ab, wenn sich die Ressource inzwischen geändert hat. identity-settings update erfordert es ebenfalls. environment-settings update erfordert es ebenfalls. Schreibvorgänge am Branding-Entwurf (branding update, branding applications put, branding organizations put, branding css put, branding page-template put) erfordern es ebenfalls.
Jeder get-Befehl (users, applications, apis, connections, identity-settings, environment-settings) gibt die Antwort-ETag auf stderr aus, damit stdout sauber bleibt:
$ keenauth apis get api_123
{ ... }
etag: "v3"
$ keenauth apis update api_123 --name Orders --if-match '"v3"'
Die Zeile etag wird nicht zur JSON- oder YAML-Ausgabe hinzugefügt.
Destruktive Befehle und --yes
Befehle, die löschen oder sperren, fragen im Terminal nach einer Bestätigung ([y/N]). Lehnen Sie ab, endet der Befehl mit Code 1 und gibt aborted aus. Wenn die Standardeingabe kein Terminal ist, wird der Befehl nur ausgeführt, wenn Sie --yes (-y) übergeben; andernfalls endet er mit Code 2, bevor eine Anfrage gesendet wird.
Exit-Codes
| Code | Bedeutung |
|---|---|
0 |
Erfolg. |
1 |
Server- oder Betriebsfehler, eine abgelehnte Bestätigung oder ein Netzwerkfehler. |
2 |
Nutzungsfehler: unbekannter Befehl oder Flag, ein fehlendes Argument, ein ungültiger Körper oder --yes fehlt in einem nicht interaktiven Terminal. |
3 |
Authentifizierungsfehler: der Schlüssel fehlt, oder der Server antwortete mit 401 oder 403. |
4 |
Der Tarif umfasst die Funktion nicht (403 mit plan_feature_unavailable). |
Bei Serverfehlern gibt die CLI error, code, status, detail, request_id sowie eine Zeile field je Validierungsfehler auf stderr aus. Geben Sie beim Kontakt mit dem Support den request_id an.
Sprache
Für menschenlesbaren Text (Hilfe, Eingabeaufforderungen, Fehler, Tabellenüberschriften) stehen Türkisch (tr), Englisch (en), Französisch (fr), Deutsch (de), Koreanisch (ko), Japanisch (ja), Italienisch (it) und Spanisch (es) zur Verfügung. Die Sprache wird aus der ersten gesetzten dieser Variablen entnommen: KEENAUTH_LANG, LC_ALL, LC_MESSAGES, LANG (zum Beispiel wählt tr_TR.UTF-8 tr). Ein leerer oder nicht unterstützter Wert wählt Englisch, und fehlt eine Meldung in einer Sprache, wird auf Englisch zurückgegriffen.
Maschinenlesbare Ausgabe wird nie übersetzt: JSON- und YAML-Feldnamen und -Werte, das Problem code und die Bezeichnungen code, status und request_id bleiben in jeder Sprache gleich. Meldungen, die vom Server stammen, werden so angezeigt, wie der Server sie gesendet hat.
KEENAUTH_LANG=de keenauth users list --help
Anwendungsanmeldedaten
keenauth applications credentials list|create|delete verwaltet Client-Geheimnisse und registrierte öffentliche Schlüssel einer Anwendung. Diese Befehle verwenden --if-match nicht.
keenauth applications credentials create app_123 --type client-secret --expires-at 2027-01-01T00:00:00Z
keenauth applications credentials create app_123 --type public-key --jwk-file key.pub.jwk
keenauth applications credentials delete app_123 cred_456 --yes
Ein Client-Geheimnis wird einmal auf stdout ausgegeben, zusammen mit einer einmaligen Warnung auf stderr. --jwk-file nimmt genau einen öffentlichen JWK (höchstens 16 KiB) entgegen; eine Datei mit privaten Bestandteilen wird abgelehnt, bevor eine Anfrage gesendet wird.
API-Schlüssel
keenauth api-keys list|get|create|rotate|revoke verwaltet die Verwaltungs-API-Schlüssel der Umgebung. Diese Befehle verwenden --if-match nicht.
keenauth api-keys create --name ci --type restricted --permissions users:read,users:write --expires-at 2027-10-01T00:00:00Z
keenauth api-keys rotate key_123 --overlap-hours 24
keenauth api-keys revoke key_123 --reason leaked --yes
Der Rohschlüssel von create und rotate wird einmal auf stdout ausgegeben, zusammen mit einer einmaligen Warnung auf stderr; er kann nicht erneut abgerufen werden. list und get geben nur Metadaten aus.