Yapılandırmayı dışa aktarma

GET /v1/config-export · İzin config:read ve dışa aktarılan her türün okuma izni

Ortamın yapılandırmasını ortamdan bağımsız tek bir belge olarak döndürür; böylece belgeyi inceleyebilir, sürüm kontrolünde saklayabilir veya daha sonra başka bir ortama uygulayabilirsiniz. Belgede ortama özgü kimlikler, sürümler, zaman damgaları veya gizli bilgiler yer almaz: kaynaklar birbirine key ile başvurur. Aynı yapılandırma her zaman bayt bayt aynı belgeyi üretir (türler aşağıdaki sırayla, sonra key alanına göre; küme benzeri listeler sıralanır). Yanıt JSON biçimindedir ve aynı zamanda geçerli bir YAML'dır; keenauth config export varsayılan olarak YAML yazdırır.

İstek

Ortam kimlik bilgisinden gelir. Tek sorgu parametresi isteğe bağlıdır.

Parametre Açıklama
kinds Dışa aktarılacak, virgülle ayrılmış türler, örneğin kinds=connection,api. Bu parametre olmadan tüm türler dışa aktarılır.
Tür key config:read dışındaki izinler
environment_settings default environment-settings:read
identity_settings default identity-settings:read
attack_protection default attack-protection:read
branding default branding:read
connection bağlantı key connections:read
api API key apis:read, applications:read
role rol key roles:read, apis:read
application uygulama key applications:read, apis:read, connections:read
application_branding uygulama key branding:read, applications:read

api, role ve application ayrıca başvurdukları türlerin izinlerine de ihtiyaç duyar, çünkü başvurular key kimliklerine çözümlenir. Tek başına config:read hiçbir kaynak okuma izni vermez.

Yanıt

200 OK ile 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"}
  ]
}

application içindeki spec yukarıda kısaltılmıştır; tam alan listesi API başvurusundadır.

Hatalar

HTTP kod Ne zaman
401 unauthenticated Kimlik bilgisi eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde gerekli izin yok; required_permissions hepsini listeler.
413 config_document_too_large Belge 5.000 kaynağı veya 10 MiB'ı aşardı; kinds ile daha az tür dışa aktarın.
422 validation_failed kinds tekrarlanmış, 256 karakterden uzun veya bilinmeyen bir türü içeriyor.
429 rate_limited Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin.
503 service_unavailable Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin.

Örnek

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