연결 리비전 게시

POST /v1/connections/{connection_id}/revisions/{revision_id}:publish · 권한 connections:write

초안 리비전을 엔터프라이즈 연결의 라이브 설정으로 만듭니다. 한 번의 단계에서 리비전의 내용이 현재 라이브 설정을 대체합니다:

리비전에는 최근 24시간 이내의 해당 리비전에 대한 통과한 테스트 로그인이 있어야 합니다. 연결 테스트에서 revision_id와 함께 테스트를 시작하고 브라우저에서 완료하십시오. 라이브 설정에 대한 테스트는 인정되지 않습니다.

이미 게시된 리비전을 다시 게시하면 아무것도 기록되지 않으며 already_published: true와 함께 200을 반환합니다. 동시에 들어온 두 게시 요청 중 하나만 기록됩니다. 이 게시는 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