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:
- Kimlik sağlayıcının varlık kimliğini (entity ID) veya SSO URL'sini değiştiren ya da bir imzalama sabitlemesini (signing pin) kaldıran SAML metadata içe aktarımı (Metadata içe aktar);
- OIDC
issuerveyaclient_iddeğişikliği (OIDC yapılandırmasını kaydet); - Bağlantının durumu ne olursa olsun her SP host taşıma işlemi (SP host'unu taşı).
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