管理クライアントの更新

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"'