接続のリビジョンを公開する

POST /v1/connections/{connection_id}/revisions/{revision_id}:publish · 権限 connections:write

下書きのリビジョンを、エンタープライズ接続の有効な設定にします。1 回の操作で、リビジョンの内容が現在の有効な設定を置き換えます。

リビジョンには、過去 24 時間以内にそのリビジョンでサインインテストに成功していることが必要です。接続をテストする で revision_id を指定してテストを開始し、ブラウザでテストを完了してください。現在有効な設定をテストしても、この条件は満たされません。

すでに公開済みのリビジョンを公開しようとした場合は、何も書き込まれず、already_published: true を含む 200 が返されます。同時に 2 件の公開要求が行われた場合、書き込まれるのはそのうち 1 件だけです。この公開は connection.revision_published として監査されます。

リクエストボディは不要です (送らないか {} を送ります)。If-Match も不要です。リビジョンにはバージョンがないためです。下書きを作成したあとに有効な設定が変更されていた場合、公開は拒否されるので、新しい下書きを作成してください。

リクエスト

フィールド 型 必須 説明
connection_id path はい エンタープライズ接続の ID (conn_…)。
revision_id path はい リビジョンを一覧表示する で取得できるリビジョン ID (connrev_…)。
Idempotency-Key header いいえ リクエストを再送しても安全にするための任意のキー (16〜64 文字)。

レスポンス

200 OK:

{
  "revision": {
    "id": "connrev_01j9xr8c2d4e6f8g0h2j4k6m8n",
    "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
    "protocol": "saml",
    "kind": "sp_host",
    "status": "published",
    "discard_reason": null,
    "created_at": "2026-10-28T10:00:00Z",
    "decided_at": "2026-10-28T11:00:00Z",
    "purge_after": "2027-01-26T11:00:00Z",
    "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"
    }
  },
  "already_published": false
}

エラー

HTTP code 発生条件
400 unknown_field ボディが空でも {} でもない場合。
401 unauthenticated 認証情報が指定されていない、無効、または取り消されている場合。
403 insufficient_permissions 認証情報に connections:write がない場合。
404 not_found 接続またはリビジョンがこの環境に存在しない場合、またはリビジョンが別の接続に属している場合。
409 conflict 前提条件を満たしていません。detail に理由が示されます。リビジョンが破棄された場合、過去 24 時間以内に成功したテストがない場合、下書き作成後に接続が変更された場合 (新しい下書きを作成してください)、前回の SP ホスト移行の 30 日間の期間がまだ残っている場合、新しい SP ホストがこの環境のホストではなくなった場合、接続で有効な署名証明書が 3 件を超える場合。
429 rate_limited レート制限を超えた場合。Retry-After の期間が経過してから再試行してください。
503 service_unavailable 依存先が一時的に利用できない場合。Retry-After の期間が経過してから再試行してください。

例

curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/revisions/connrev_01j9xr8c2d4e6f8g0h2j4k6m8n:publish" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"
keenauth connections revisions publish conn_01j9xp6q0r1s5t7v9w1x3y5z7b connrev_01j9xr8c2d4e6f8g0h2j4k6m8n --yes