관리 클라이언트 수정

PATCH /v1/management-clients/{application_id} · 권한 management-clients:write

JSON 병합 패치(RFC 7396, application/merge-patch+json)로 관리 클라이언트 레코드를 수정합니다. 보낸 필드만 바뀌고 나머지는 그대로 유지됩니다. If-Match는 필수입니다. 없으면 요청은 428로 실패하고, 현재 버전과 일치하지 않으면 412로 실패합니다. API 키만 이 엔드포인트를 호출할 수 있습니다.

요청

매개변수 위치 설명
application_id 경로 애플리케이션 ID(app_…).
If-Match 헤더 마지막 읽기 또는 쓰기에서 받은 ETag.

본문: 아래 필드 중 아무거나.

필드 유형 필수 설명
permissions string[] 아니요 알려진 <resource>:<action> 권한 1~200개. 목록 전체를 대체합니다. null일 수 없습니다.
allowed_cidrs string[] | null 아니요 최대 20개의 CIDR 블록. 목록 전체를 대체합니다. null 또는 []이면 호출 키 자신의 목록을 사용합니다.

아무것도 바꾸지 않는 패치는 레코드, 그 버전, 감사 로그를 그대로 둡니다. 제한된 키는 자신보다 넓은 레코드를 바꿀 수 없습니다(403 permission_escalation).

응답

200 OK, 새 ETag와 함께 반환됩니다.

{
  "application_id": "app_01h455vb4pex5vsknk084sn02q",
  "permissions": ["users:read"],
  "allowed_cidrs": ["203.0.113.0/24"]
}

오류

HTTP code 발생 조건
400 unknown_field 패치에 permissions와 allowed_cidrs 외의 필드가 있습니다.
403 permission_escalation 레코드 또는 패치 적용 후 레코드가 호출 키보다 넓습니다.
404 not_found 이 환경에서 해당 애플리케이션에 레코드가 없습니다.
412 precondition_failed If-Match가 현재 버전과 일치하지 않습니다.
415 unsupported_media_type 콘텐츠 타입이 application/merge-patch+json이 아닙니다.
422 validation_failed permissions가 null이거나 비어 있거나 알 수 없는 권한을 포함하거나, CIDR이 올바르지 않습니다.
428 precondition_required If-Match가 없습니다.

예제

curl -X PATCH https://api.eu.keenauth.com/v1/management-clients/app_01h455vb4pex5vsknk084sn02q \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "3f2a9c0d7b1e4a6f8c5d2e1b0a9f8e7d"' \
  -d '{"permissions":["users:read"]}'

CLI: keenauth management-clients update app_01h455vb4pex5vsknk084sn02q --permissions users:read --if-match '"3f2a9c0d7b1e4a6f8c5d2e1b0a9f8e7d"'