Exportar la configuración

GET /v1/config-export · permiso config:read y el permiso de lectura de cada tipo exportado

Devuelve la configuración del entorno como un único documento independiente del entorno, para que pueda revisarla, conservarla en control de versiones o aplicarla más adelante a otro entorno. El documento no contiene ids, versiones, marcas de tiempo ni secretos específicos del entorno: los recursos se referencian entre sí mediante key. La misma configuración siempre produce un documento idéntico byte a byte (tipos en el orden indicado abajo y, dentro de cada tipo, por key; las listas de tipo conjunto se ordenan). La respuesta es JSON, que también es YAML válido; keenauth config export imprime YAML por defecto.

Solicitud

El entorno se obtiene de la credencial. El único parámetro de consulta es opcional.

Parámetro Descripción
kinds Tipos separados por comas que se exportarán, por ejemplo kinds=connection,api. Si se omite, se exportan todos los tipos.
Tipo key Permisos además 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 conexión key connections:read
api API key apis:read, applications:read
role rol key roles:read, apis:read
application aplicación key applications:read, apis:read, connections:read
application_branding aplicación key branding:read, applications:read

api, role y application también necesitan los permisos de los tipos a los que referencian, porque las referencias se resuelven a keys. config:read por sí solo no concede lectura de ningún recurso.

Respuesta

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"}
  ]
}

El spec application anterior está abreviado; la lista completa de campos está en la referencia de la API.

Errores

HTTP código Cuándo
401 unauthenticated Falta la credencial, no es válida o fue revocada.
403 insufficient_permissions La credencial no tiene un permiso requerido; required_permissions enumera todos ellos.
413 config_document_too_large El documento superaría 5.000 recursos o 10 MiB; exporte menos tipos con kinds.
422 validation_failed kinds está repetido, tiene más de 256 caracteres o nombra un tipo desconocido.
429 rate_limited Se superó el límite de solicitudes; reintente después del período Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintente después del período Retry-After.

Ejemplo

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