Bir bağlantıyı güncelleme
PATCH /v1/connections/{connection_id} · izin connections:write
Bir bağlantıyı JSON birleştirme yaması (application/merge-patch+json, RFC 7396) ile günceller. If-Match zorunludur. key, type, strategy ve org_id değiştirilemez. Hiçbir şeyi değiştirmeyen bir yama hiçbir şey yazmaz ve sürümü korur. Ayarlar gizli bilgi içermemelidir.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
connection_id |
string | evet | Bağlantı tanımlayıcısı (conn_…). |
If-Match |
header | evet | Bağlantının son okunduğundaki ETag değeri. Yoksa: 428; eskiyse: 412. |
key |
string | hayır | Değiştirilemez; aynı değer kabul edilir. |
type |
string | hayır | Değiştirilemez. |
strategy |
string | hayır | Değiştirilemez. |
name |
string | hayır | 1-128 karakter. |
display_name |
string | null | hayır | null değeri bunu temizler. |
status |
string | hayır | active veya inactive. |
org_id |
string | null | hayır | Değiştirilemez; aynı değer kabul edilir. |
allowed_email_domains |
array of strings | null | hayır | Listeyi değiştirir; null veya [] listeyi temizler. Oluşturmadaki kurallarla aynıdır; kuruluş bağlantısında yalnızca yeni eklenen alan adları, kuruluşun doğrulanmış alan adlarına karşı denetlenir. |
allow_external_domains |
boolean | hayır | Yalnızca enterprise. |
jit_mode |
string | hayır | create, create_and_update veya off. Yalnızca enterprise. |
email_trust |
boolean | hayır | Yalnızca enterprise. Kuruluş bağlantısında etkinleştirmek için, boş olmayan bir allowed_email_domains gerekir ve her alan adı kuruluşun doğrulanmış bir alan adı olmalıdır. |
default_role_ids |
array of strings | null | hayır | Listeyi değiştirir; null veya [] listeyi temizler. Oluşturmadaki kurallarla aynıdır; yalnızca yeni eklenen roller denetlenir, bu nedenle listede zaten bulunan ve daha sonra silinmiş bir rol güncellemeyi engellemez (oturum açarken atlanır). |
trust_idp_mfa |
boolean | hayır | Yalnızca enterprise. |
settings |
object | null | hayır | Özyinelemeli olarak birleştirilir (RFC 7396); null değerindeki bir üye o anahtarı siler; null tüm ayarları temizler. Gizli bilgi yok. |
Yanıt
200 OK ile güncellenmiş bağlantı ve yeni ETag döner.
{
"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"
}
Passkey ayarları
type: "passkey" için settings nesnesi yalnızca aşağıdaki anahtarları kabul eder. Diğer herhangi bir anahtar, yanlış bir tür veya aralık dışı bir değer 422 validation_failed ile ve /settings/max_credentials_per_user gibi bir errors[].pointer değeri ile reddedilir. null değeri varsayılanı ifade eder. Şekil hataları plan hatalarından önce bildirilir.
| Anahtar | Tür | Notlar |
|---|---|---|
rp_id |
string | Yoksa, null veya boşsa: her giriş ana makinesi kendi rpId değerine sahiptir. Aksi halde ortamın active durumundaki özel bir alan adının ana makine adı (küçük harf, IDNA A-label); diğer tüm değerler 422 validation_failed (/settings/rp_id) ile sonuçlanır. Ortamda passkey'ler varsa, Passkey rpId değerini değiştirme bağlantısını kullanarak değiştirin. |
rp_name |
string | En fazla 128 karakter. |
passkey_first_factor_enabled, security_key_second_factor_enabled |
boolean | Varsayılan true. |
user_verification |
string | preferred (varsayılan) veya required. |
max_credentials_per_user |
integer | 1-20, varsayılan 20; kesirli değerler reddedilir. |
require_device_bound_passkeys |
boolean | Plana bağlı: true için Startup gerekir. |
attestation_required |
boolean | Plana bağlı: true için Enterprise gerekir. |
aaguid_allowlist, aaguid_blocklist |
array of UUID strings | Her biri en fazla 500 benzersiz girişe sahip olabilir (hatalar /settings/<key>/<index> konumuna işaret eder). Plana bağlı: boş olmayan bir liste için Enterprise gerekir. |
related_origins |
array of strings | https://host[:port] kaynakları. Plana bağlı: boş olmayan bir liste için Enterprise gerekir. |
passkey_enrollment_prompt |
string | off veya after_login (varsayılan). |
Plana bağlı bir anahtara varsayılan olmayan bir değer yazmak 403 plan_feature_unavailable ile sonuçlanır ve feature ile required_plan üyeleri döner. Plan yetkilendirmeleri kullanılabilir olana kadar bu anahtarlar hiçbir ortamda ayarlanamaz; varsayılan bir değer yazmak (false, [], null) veya anahtarı kaldırmak her zaman mümkündür. Özellik kullanılabilir olduğunda, her related_origins girişi ortamın etkin ve doğrulanmış bir özel alan adı olmalıdır; aksi halde istek 422 related_origin_not_verified ile başarısız olur. Ayarlar, yalnızca yama settings içeriyorsa ve birleştirme yamasının uygulanmasından sonra doğrulanır.
Hatalar
| HTTP | code | Ne zaman |
|---|---|---|
| 400 | unknown_field |
Yama bilinmeyen veya salt okunur bir alan içeriyor. |
| 404 | not_found |
Bağlantı yok veya başka bir ortama ait. |
| 409 | connection_test_required |
Yama bir enterprise bağlantısını active yapıyor ya da active bir bağlantının allowed_email_domains listesine alan adı ekliyor; sonucun son 24 saat içinde başarılı bir testi yoksa (bkz. Bir bağlantıyı etkinleştirme). Hiçbir şey yazılmaz. Alan adlarını kaldırma denetlenmez. |
| 409 | rp_id_change_requires_migration |
Yama, ortamda çalışmayı durduracak passkey'ler varken bir passkey bağlantısının settings.rp_id değerini değiştiriyor; Passkey rpId değerini değiştirme bağlantısını kullanın. Hiçbir şey yazılmaz. |
| 412 | precondition_failed |
If-Match mevcut sürümle eşleşmiyor. |
| 415 | unsupported_media_type |
İçerik türü application/merge-patch+json değil. |
| 422 | validation_failed |
Bir değer geçersiz veya değiştirilemez bir alan değişti (code: immutable). |
| 422 | related_origin_not_verified |
İlgili bir kaynak, ortamın doğrulanmış bir özel alan adı değil. |
| 403 | plan_feature_unavailable |
Plan, ayarladığınız bir ayarı içermiyor (feature, required_plan üyeleri), örneğin attestation_required. |
| 428 | precondition_required |
If-Match başlığı eksik. |
| 401 | unauthenticated |
Kimlik bilgisi eksik, geçersiz veya iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisinin gerekli izni yok. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor (örneğin, bir rp_id değişikliğinin passkey denetimi çalıştırılamadı, bu nedenle hiçbir şey yazılmadı); Retry-After süresinden sonra yeniden deneyin. |
Örnek
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"}'