接続を更新

PATCH /v1/connections/{connection_id} · 権限 connections:write

JSON マージパッチ(application/merge-patch+json、RFC 7396)で接続を更新します。If-Match は必須です。key、type、strategy、org_id は変更できません。何も変更されないパッチでは書き込みは行われず、バージョンも維持されます。設定にシークレットを含めないでください。

リクエスト

フィールド 型 必須 説明
connection_id string はい 接続の ID(conn_…)。
If-Match header はい 直近に読み取った接続の ETag。欠落時は 428、古い場合は 412。
key string いいえ 変更不可。同じ値は受け付けられます。
type string いいえ 変更不可。
strategy string いいえ 変更不可。
name string いいえ 1〜128 文字。
display_name string | null いいえ null を指定するとクリアされます。
status string いいえ active または inactive。
org_id string | null いいえ 変更不可。同じ値は受け付けられます。
allowed_email_domains array of strings | null いいえ リストを置き換えます。null または [] でクリアされます。作成時と同じルールが適用されます。組織の接続では、新たに追加されたドメインのみが組織の検証済みドメインと照合されます。
allow_external_domains boolean いいえ enterprise のみ。
jit_mode string いいえ create、create_and_update または off。enterprise のみ。
email_trust boolean いいえ enterprise のみ。組織の接続で有効にするには、空でない allowed_email_domains が必要で、そのすべてのドメインが組織の検証済みドメインである必要があります。
default_role_ids array of strings | null いいえ リストを置き換えます。null または [] でクリアされます。作成時と同じルールが適用されます。新たに追加されたロールのみが確認されるため、リスト内に既にあるロールがその後削除されていても、更新はブロックされません(サインイン時にスキップされます)。
trust_idp_mfa boolean いいえ enterprise のみ。
settings object | null いいえ 再帰的にマージされます(RFC 7396)。null のメンバーはそのキーを削除します。null を指定するとすべての設定がクリアされます。シークレットは含めないでください。

レスポンス

更新後の接続と新しい ETag を含む 200 OK。

{
  "id": "conn_0k3v8m1q2x9dz4h7s5t6w0y1ab",
  "key": "google",
  "type": "social",
  "strategy": "google",
  "name": "Google",
  "display_name": "Sign in with Google",
  "status": "active",
  "org_id": null,
  "allowed_email_domains": [],
  "allow_external_domains": false,
  "jit_mode": null,
  "email_trust": null,
  "default_role_ids": [],
  "trust_idp_mfa": null,
  "allow_idp_initiated": null,
  "idp_initiated_default_application_id": null,
  "idp_initiated_allowed_application_ids": [],
  "settings": {},
  "created_at": "2026-10-05T09:30:00.123456Z",
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

パスキーの設定

type: "passkey" の場合、settings オブジェクトは以下のキーのみを受け付けます。それ以外のキー、誤った型、範囲外の値は 422 validation_failed で拒否され、errors[].pointer(例:/settings/max_credentials_per_user)が返されます。null の値はデフォルトを意味します。形式のエラーはプランのエラーより先に報告されます。

キー 型 備考
rp_id string 省略、null または空の場合、各サインインホストがそれぞれ独自の rpId になります。それ以外の場合は、環境の active なカスタムドメインのホスト名(小文字、IDNA A ラベル)である必要があります。それ以外の値は 422 validation_failed(/settings/rp_id)になります。環境にパスキーが存在する場合は、パスキーの rpId を変更で変更してください。
rp_name string 最大 128 文字。
passkey_first_factor_enabled、security_key_second_factor_enabled boolean デフォルトは true。
user_verification string preferred(デフォルト)または required。
max_credentials_per_user integer 1〜20、デフォルトは 20。小数は拒否されます。
require_device_bound_passkeys boolean プランで制限: true には Startup が必要です。
attestation_required boolean プランで制限: true には Enterprise が必要です。
aaguid_allowlist、aaguid_blocklist array of UUID strings それぞれ重複のない最大 500 件(エラーは /settings/<key>/<index> を指します)。プランで制限: 空でないリストには Enterprise が必要です。
related_origins array of strings https://host[:port] 形式のオリジン。プランで制限: 空でないリストには Enterprise が必要です。
passkey_enrollment_prompt string off または after_login(デフォルト)。

プランで制限されているキーにデフォルト以外の値を書き込むと、403 plan_feature_unavailable と、メンバー feature および required_plan を伴って失敗します。プランの権限が利用可能になるまで、これらのキーはどの環境でも設定できません。デフォルト値(false、[]、null)の書き込みやキーの削除は常に許可されます。この機能が利用可能になったら、related_origins のすべてのエントリは環境の有効かつ検証済みのカスタムドメインである必要があります。そうでない場合、リクエストは 422 related_origin_not_verified で失敗します。設定の検証は、マージパッチが適用された後に、パッチに settings が含まれている場合にのみ行われます。

エラー

HTTP code 発生条件
400 unknown_field パッチに未知のフィールドまたは読み取り専用のフィールドが含まれています。
404 not_found 接続が存在しないか、別の環境に属しています。
409 connection_test_required パッチによって enterprise の接続が active に設定される、または active の接続の allowed_email_domains にドメインが追加されるが、過去 24 時間以内に結果の構成のテストが成功していない場合(接続を有効化するを参照)。何も書き込まれません。ドメインの削除は確認されません。
409 rp_id_change_requires_migration パッチによってパスキー接続の settings.rp_id が変更され、その環境に動作しなくなるパスキーがある場合。パスキーの rpId を変更を使用してください。何も書き込まれません。
412 precondition_failed If-Match が現在のバージョンと一致しません。
415 unsupported_media_type コンテンツタイプが application/merge-patch+json ではありません。
422 validation_failed 値が無効か、変更不可のフィールドが変更されました(code: immutable)。
422 related_origin_not_verified 関連オリジンが環境の検証済みカスタムドメインではありません。
403 plan_feature_unavailable プランに設定した機能が含まれていません(feature、required_plan メンバー)。例:attestation_required。
428 precondition_required If-Match ヘッダーがありません。
401 unauthenticated 認証情報がないか、無効または取り消されています。
403 insufficient_permissions 認証情報に必要な権限がありません。
429 rate_limited レート制限を超えました。Retry-After の期間を過ぎてから再試行してください。
503 service_unavailable 依存先が一時的に利用できません(例:rp_id 変更のパスキーチェックを実行できなかったため、何も書き込まれません)。Retry-After の期間を過ぎてから再試行してください。

例

curl -X PATCH https://api.eu.keenauth.com/v1/connections/conn_0k3v8m1q2x9dz4h7s5t6w0y1ab \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -H 'If-Match: "1"' \
  -d '{"display_name":"Sign in with Google"}'