
# Bir bağlantının rpId geçişini tamamlayın

`POST /v1/connections/{connection_id}:complete-rp-id-migration` · İzin `connections:write`

Bir passkey bağlantısının çalışan rpId geçişini, pencere sona ermeden önce sonlandırır. Durum `completed_early` olur (pencere zaten sona ermişse `completed`), önceki rpId üzerinde hâlâ bulunan Passkey'ler iptal edilir (neden `rp_id_changed`), önceki rpId'nin origin'i kabul edilmeyi bırakır ve `passkey_rp_id.migration_completed` olayı yayımlanır. Bu işlem geri alınamaz: yeni rpId üzerinde Passkey kaydetmemiş kullanıcılar başka bir yöntemle giriş yapmak zorundadır.

## İstek

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `connection_id` | path | evet | Passkey bağlantı kimliği (`conn_…`). |
| `Idempotency-Key` | header | hayır | Yeniden denenen isteği güvenli hale getiren isteğe bağlı anahtar (16-64 karakter). |

İstek gövdesi isteğe bağlıdır; varsa `{}` olmalıdır.

## Yanıt

`200 OK`; kapatılmış geçiş (bkz. [rpId geçişini alın](rp-id-migration.md)).

```json
{
  "id": "rpm_01j9xr4a6b8c0d2e4f6g8h0j2k",
  "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
  "previous_rp_id": null,
  "new_rp_id": "login.example.com",
  "status": "completed_early",
  "started_at": "2026-10-27T10:00:00Z",
  "ends_at": "2027-01-25T10:00:00Z",
  "completed_at": "2026-12-01T09:00:00Z",
  "revoked_count": 12,
  "new_registration_count": 340,
  "fallback_enabled_by_migration": false
}
```

## Hatalar

| HTTP | kod | Ne zaman |
|---|---|---|
| 400 | `unknown_field` | İstek gövdesi bir alan içeriyor. |
| 404 | `not_found` | Bağlantı yok veya başka bir ortama ait. |
| 409 | `no_active_rp_id_migration` | Bağlantının çalışan bir rpId geçişi yok (örneğin zaten tamamlanmış). |
| 401 | `unauthenticated` | Kimlik bilgisi eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisi gerekli izne sahip değil. |
| 429 | `rate_limited` | Hız sınırı aşıldı; `Retry-After` süresinden sonra yeniden deneyin. |
| 503 | `service_unavailable` | Passkey sayıları okunamadı veya başka bir bağımlılık kullanılamıyor; geçiş açık kalır. `Retry-After` süresinden sonra yeniden deneyin. |

## Örnek

```bash
curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b:complete-rp-id-migration" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections complete-rp-id-migration conn_01j9xp6q0r1s5t7v9w1x3y5z7b --yes
```
