Exporter la configuration

GET /v1/config-export · autorisation config:read et autorisation de lecture de chaque type exporté

Renvoie la configuration de l'environnement sous la forme d'un document indépendant de l'environnement, afin que vous puissiez le relire, le conserver dans un système de gestion de versions ou l'appliquer ultérieurement à un autre environnement. Le document ne contient ni identifiants, ni versions, ni horodatages, ni secrets propres à l'environnement : les ressources se réfèrent les unes aux autres par key. Une même configuration produit toujours un document identique octet pour octet (types dans l'ordre ci-dessous, puis par key ; listes d'ensembles triées). La réponse est au format JSON, qui est aussi un YAML valide ; keenauth config export affiche le YAML par défaut.

Requête

L'environnement provient de l'identifiant d'accès. Le seul paramètre de requête est facultatif.

Paramètre Description
kinds Types à exporter séparés par des virgules, par exemple kinds=connection,api. Sans ce paramètre, tous les types sont exportés.
Type key Autorisations en plus de 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 connexion key connections:read
api API key apis:read, applications:read
role rôle key roles:read, apis:read
application application key applications:read, apis:read, connections:read
application_branding application key branding:read, applications:read

api, role et application nécessitent également les autorisations des types auxquels ils renvoient, car les références sont résolues vers leurs key. config:read seul n'accorde aucune lecture de ressource.

Réponse

Réponse 200 OK avec 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 spécification application ci-dessus est abrégée ; la liste complète des champs figure dans la référence de l'API.

Erreurs

HTTP code Quand
401 unauthenticated L'identifiant d'accès est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant d'accès ne dispose pas d'une autorisation requise ; required_permissions les liste toutes.
413 config_document_too_large Le document dépasserait 5 000 ressources ou 10 MiB ; exportez moins de types avec kinds.
422 validation_failed kinds est répété, dépasse 256 caractères ou nomme un type inconnu.
429 rate_limited La limite de débit a été dépassée ; réessayez après la période Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez après la période Retry-After.

Exemple

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