接続のリビジョンを一覧表示
GET /v1/connections/{connection_id}/revisions · 権限 connections:read
エンタープライズ接続(SAML または OIDC)のリビジョンを、新しいものから順に一覧表示します。保留中のドラフト(最大 1 件)と、過去 90 日以内に公開または破棄されたリビジョンが含まれます。
有効な接続では、セキュリティ上重要な変更はすぐには適用されません。代わりにドラフトリビジョンになり、ドラフトをテストして公開するまで、有効な構成はそのまま維持されます。
- ID プロバイダのエンティティ ID や SSO URL を変更する、または署名のピン留めを削除する SAML メタデータのインポート(メタデータをインポート)
- OIDC の
issuerまたはclient_idの変更(OIDC 構成を設定) - 接続のステータスに関係なく行われるすべての SP ホストの移行(SP ホストを移行)
ドラフトは、接続をテストし、その revision_id を使ってテストしてから、公開してください。新しいドラフトを作成すると、以前のドラフトは破棄されます(discard_reason: superseded)。
リビジョンに表示されるのは、新しい機密ではない値(changes)のみです。新しい OIDC クライアントシークレットは client_secret_change(keep、replace、clear)としてのみ表示されます。シークレットとその末尾の文字は返されません。リビジョンを作成または決定したユーザーは、ここではなく管理の監査ログ(connection.revision_created、connection.revision_published)に記録されます。
リクエスト
| フィールド | 種類 | 必須 | 説明 |
|---|---|---|---|
connection_id |
パス | はい | エンタープライズ接続 ID(conn_…)。 |
limit |
クエリ | いいえ | ページサイズ(1〜100、既定値 20)。 |
after |
クエリ | いいえ | list_metadata.after のカーソル。カーソルは、それを生成した接続に対してのみ有効です。 |
リストは前方向にのみページングされます。before と order はサポートされていません(422)。
レスポンス
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 }
}
| フィールド | 説明 |
|---|---|
kind |
configuration(ID プロバイダまたは OIDC クライアントの変更)または sp_host(SP ホストの移行)。 |
status |
draft(テストと公開を待機中)、published(公開済み)、または discarded(破棄済み)。 |
decided_at / purge_after |
リビジョンが公開または破棄された日時、および削除される日時(90 日後)。ドラフトの場合は null。 |
changes |
新しい値。リビジョンで変更されないフィールドは null。 |
latest_test |
このリビジョンの直近 24 時間以内の最新のテストサインイン、または null。公開には passed のテストが必要です。 |
エラー
| HTTP | code | 発生条件 |
|---|---|---|
| 400 | invalid_cursor |
カーソルの形式が不正であるか、別の接続またはクエリに属しています。 |
| 401 | unauthenticated |
認証情報が存在しないか、無効または取り消されています。 |
| 403 | insufficient_permissions |
認証情報に connections:read 権限がありません。 |
| 404 | not_found |
接続がこの環境に存在しないか、エンタープライズ接続ではありません。 |
| 422 | validation_failed |
クエリパラメータが無効です(例: limit が 100 を超えている、または before を指定している)。 |
| 429 | rate_limited |
レート制限を超えました。Retry-After の期間を待ってから再試行してください。 |
| 503 | service_unavailable |
依存先が一時的に利用できません。Retry-After の期間を待ってから再試行してください。 |
例
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