Esporta la configurazione

GET /v1/config-export · autorizzazione config:read e l'autorizzazione di lettura di ogni tipo esportato

Restituisce la configurazione dell'ambiente come un unico documento indipendente dall'ambiente, così puoi rivederla, conservarla nel controllo di versione o applicarla in seguito a un altro ambiente. Il documento non contiene id, versioni, timestamp o segreti specifici dell'ambiente: le risorse si riferiscono l'una all'altra tramite key. La stessa configurazione produce sempre un documento identico byte per byte (tipi nell'ordine seguente, poi per key; le liste di tipo insieme vengono ordinate). La risposta è JSON, che è anche YAML valido; keenauth config export stampa YAML per impostazione predefinita.

Richiesta

L'ambiente deriva dalla credenziale. L'unico parametro di query è facoltativo.

Parametro Descrizione
kinds Tipi da esportare separati da virgola, per esempio kinds=connection,api. Senza questo parametro vengono esportati tutti i tipi.
Tipo key Autorizzazioni oltre a config:read
environment_settings default environment-settings:read
identity_settings default identity-settings:read
attack_protection default attack-protection:read
branding default branding:read
connection connessione key connections:read
api API key apis:read, applications:read
role ruolo key roles:read, apis:read
application applicazione key applications:read, apis:read, connections:read
application_branding applicazione key branding:read, applications:read

api, role e application richiedono anche le autorizzazioni dei tipi a cui fanno riferimento, perché i riferimenti vengono risolti in key. config:read da solo non concede la lettura di alcuna risorsa.

Risposta

200 OK con Cache-Control: no-store.

{
  "apiVersion": "config.keenauth.com/v1",
  "kinds": ["connection", "api", "application"],
  "resources": [
    {"kind": "connection", "key": "db", "spec": {"type": "database", "strategy": "password", "name": "db", "display_name": null, "status": "active", "settings": {}, "client_secret": null}},
    {"kind": "api", "key": "orders", "spec": {"identifier": "https://api.example.com/orders", "name": "Orders", "access_token_lifetime_s": 3600, "token_format": "jwt", "rbac_mode": "off", "allow_offline_access": false, "require_resource_indicator": false, "dpop_required": false, "mcp_profile": false, "first_party_access": "all", "introspection_applications": [], "permissions": [{"value": "orders:read", "display_name": null, "description": null, "consent_text_i18n": {}, "sensitivity": "normal"}]}},
    {"kind": "application", "key": "web", "spec": {"name": "Web", "app_type": "spa", "default_api": "orders", "connections": ["db"], "api_grants": [{"api": "orders", "scopes": ["orders:read"], "default_scopes": []}], "redirect_uris": ["https://app.example.com/callback"]}}
  ],
  "warnings": [
    {"code": "resource_skipped", "kind": "application", "key": "partner-bot", "reason": "organization_owned"}
  ]
}

La specifica application sopra è abbreviata; l'elenco completo dei campi è nella documentazione dell'API.

Errori

HTTP code Quando
401 unauthenticated La credenziale manca, non è valida o è stata revocata.
403 insufficient_permissions La credenziale non ha un'autorizzazione richiesta; required_permissions le elenca tutte.
413 config_document_too_large Il documento supererebbe 5.000 risorse o 10 MiB; esporta meno tipi con kinds.
422 validation_failed kinds è ripetuto, supera i 256 caratteri o indica un tipo sconosciuto.
429 rate_limited È stato superato il limite di richieste; riprova dopo il periodo Retry-After.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo Retry-After.

Esempio

curl "https://api.eu.keenauth.com/v1/config-export?kinds=connection,api,application" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"

keenauth config export --kinds connection,api,application > keenauth.yaml