rpId-Migration einer Verbindung abschließen

POST /v1/connections/{connection_id}:complete-rp-id-migration · Berechtigung connections:write

Beendet die laufende rpId-Migration einer Passkey-Verbindung vor Ende ihres Fensters. Der Status wird zu completed_early (oder completed, falls das Fenster bereits abgelaufen war), die Passkeys, die noch auf der bisherigen rpId liegen, werden widerrufen (Grund rp_id_changed), der Ursprung der bisherigen rpId wird nicht mehr akzeptiert und das Ereignis passkey_rp_id.migration_completed wird veröffentlicht. Dies kann nicht rückgängig gemacht werden: Nutzer, die noch keinen Passkey auf der neuen rpId registriert haben, müssen sich auf andere Weise anmelden.

Anfrage

Feld Typ Pflicht Beschreibung
connection_id path ja Passkey-Verbindungs-ID (conn_…).
Idempotency-Key header nein Optionaler Schlüssel, der einen wiederholten Aufruf sicher macht (16-64 Zeichen).

Der Body ist optional; falls vorhanden, muss er {} sein.

Antwort

200 OK; die abgeschlossene Migration (siehe rpId-Migration abrufen).

{
  "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
}

Fehler

HTTP Code Wann
400 unknown_field Der Body enthält ein Feld.
404 not_found Die Verbindung existiert nicht oder gehört zu einer anderen Umgebung.
409 no_active_rp_id_migration Für die Verbindung läuft keine rpId-Migration (zum Beispiel, weil sie bereits abgeschlossen wurde).
401 unauthenticated Die Anmeldedaten fehlen, sind ungültig oder widerrufen.
403 insufficient_permissions Die Anmeldedaten haben nicht die erforderliche Berechtigung.
429 rate_limited Das Rate-Limit wurde überschritten; wiederholen Sie den Aufruf nach dem Zeitraum Retry-After.
503 service_unavailable Die Anzahl der Passkeys konnte nicht gelesen werden oder eine andere Abhängigkeit ist nicht verfügbar; die Migration bleibt geöffnet. Wiederholen Sie den Aufruf nach dem Zeitraum Retry-After.

Beispiel

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