Bir bağlantının revizyonlarını listele

GET /v1/connections/{connection_id}/revisions · izin connections:read

Kurumsal (SAML veya OIDC) bir bağlantının revizyonlarını en yeniden en eskiye doğru listeler: bekleyen taslak (en fazla bir tane) ile son 90 gün içinde yayımlanan veya iptal edilen revizyonlar.

Etkin bir bağlantıda, güvenlik açısından kritik bir değişiklik doğrudan uygulanmaz. Bu değişiklik bir taslak revizyona dönüşür ve taslağı test edip yayımlayana kadar canlı yapılandırma olduğu gibi kalır:

Bir taslağı Bağlantıyı test et işlemiyle ve revision_id değeriyle test edin, ardından yayımlayın. Yeni bir taslak, önceki taslağı iptal eder (discard_reason: superseded).

Bir revizyon yalnızca yeni, gizli olmayan değerleri (changes) gösterir. Yeni bir OIDC istemci sırrı yalnızca client_secret_change (keep, replace veya clear) olarak görünür; sır ve son karakterleri hiçbir zaman döndürülmez. Bir revizyonu kimin oluşturduğu veya karara bağladığı burada değil, yönetim denetim günlüğünde (connection.revision_created, connection.revision_published) kayıtlıdır.

İstek

Alan Tür Zorunlu Açıklama
connection_id yol evet Kurumsal bağlantı kimliği (conn_…).
limit sorgu hayır Sayfa boyutu, 1–100 (varsayılan 20).
after sorgu hayır list_metadata.after değerinden alınan imleç. İmleç yalnızca onu üreten bağlantı için çalışır.

Liste yalnızca ileriye doğru sayfalanır: before ve order desteklenmez (422).

Yanıt

200 OK:

{
  "data": [
    {
      "id": "connrev_01j9xr8c2d4e6f8g0h2j4k6m8n",
      "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
      "protocol": "saml",
      "kind": "sp_host",
      "status": "draft",
      "discard_reason": null,
      "created_at": "2026-10-28T10:00:00Z",
      "decided_at": null,
      "purge_after": null,
      "superseded_revision_id": null,
      "changes": {
        "sp_host": "login.example.com",
        "idp_entity_id": null,
        "idp_sso_url": null,
        "idp_slo_url": null,
        "certificate_fingerprints": [],
        "mfa_authn_context_values": null,
        "issuer": null,
        "client_id": null,
        "client_auth_method": null,
        "provider_profile": null,
        "client_secret_change": null
      },
      "latest_test": {
        "test_id": "conntest_01j9xr4a6b8c0d2e4f6g8h0j2k",
        "status": "passed",
        "failure_reason": null,
        "started_at": "2026-10-28T10:05:00Z",
        "completed_at": "2026-10-28T10:06:00Z"
      }
    }
  ],
  "list_metadata": { "before": null, "after": null }
}
Alan Açıklama
kind configuration (kimlik sağlayıcı veya OIDC istemci değişikliği) veya sp_host (SP host taşıma).
status draft (test ve yayımlama bekliyor), published veya discarded.
decided_at / purge_after Revizyonun yayımlandığı veya iptal edildiği zaman ile silineceği zaman (90 gün sonra); taslak için null.
changes Yeni değerler. Revizyonun değiştirmediği alanlar null olur.
latest_test Bu revizyonun son 24 saat içindeki en son test girişi veya null. Yayımlama için passed durumunda bir test gerekir.

Hatalar

HTTP code Ne zaman
400 invalid_cursor İmleç bozuk veya başka bir bağlantıya ya da sorguya ait.
401 unauthenticated Kimlik bilgisi eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde connections:read izni yok.
404 not_found Bağlantı bu ortamda yok veya kurumsal bir bağlantı değil.
422 validation_failed Bir sorgu parametresi geçersiz (örneğin limit 100'ü aşıyor veya before).
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/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/revisions?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth connections revisions list conn_01j9xp6q0r1s5t7v9w1x3y5z7b --limit 20