애플리케이션 업데이트

PATCH /v1/applications/{application_id} · 권한 applications:write

JSON 병합 패치(application/merge-patch+json, RFC 7396)를 사용하여 애플리케이션을 업데이트합니다: 전송한 필드가 변경되고, null은 nullable 필드를 지우고, 배열은 전체적으로 바뀝니다. If-Match가 필수입니다: 이것이 없으면 요청이 428로 실패하고, 오래된 버전이면 412로 실패합니다. 불변 필드(key, app_type, registration_source 및 owner_org_id)는 다른 값을 전송하면 코드 immutable과 함께 422를 반환합니다. 변경하지 않는 패치는 애플리케이션과 해당 버전을 그대로 유지합니다.

요청

Headers: If-Match: "<version>" (필수), Content-Type: application/merge-patch+json.

Path: application_id (app_…).

Body: 생성 페이지에 나열된 쓰기 가능 필드의 모든 부분집합(key, name, app_type, … connection_ids). null은 nullable인 필드를 지웁니다. 배열은 전체 목록을 바꾸고, jwks는 객체로 바뀝니다. 읽기 전용 필드(id, client_id, version, created_at, updated_at, last_token_issued_at, last_token_asn)는 거부됩니다.

응답

200 OK와 업데이트된 애플리케이션 및 새 ETag.

오류

HTTP code 조건
401 unauthenticated 키가 누락되었거나, 유효하지 않거나, 취소되었습니다.
403 insufficient_permissions 키에 필요한 권한이 없습니다.
404 not_found 이 환경에서 애플리케이션이 존재하지 않습니다.
428 precondition_required If-Match 헤더가 누락되었습니다.
412 precondition_failed If-Match의 버전이 오래되었습니다.
422 validation_failed 필드가 유효하지 않거나 불변 필드가 변경되었습니다.
422 policy_conflict allowed_first_factors에 환경의 첫 번째 인수 집합과 공통된 방법이 없습니다.
400 unknown_field 패치에 스키마에 없는 필드가 있습니다(id 같은 읽기 전용 필드 포함).
415 unsupported_media_type Content-Type이 application/merge-patch+json이 아닙니다.

예제

curl -X PATCH https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -d '{"name":"Portal v2","login_host":null}'