Completare la migrazione dell'rpId di una connessione

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

Termina la migrazione dell'rpId in corso di una connessione passkey prima che la sua finestra finisca. Lo stato diventa completed_early (oppure completed se la finestra era già terminata), i passkey che sono ancora sul precedente rpId vengono revocati (motivo rp_id_changed), l'origin del precedente rpId smette di essere accettato e viene pubblicato l'evento passkey_rp_id.migration_completed. L'operazione non può essere annullata: gli utenti che non hanno registrato un passkey sul nuovo rpId devono accedere in un altro modo.

Richiesta

Campo Tipo Obbligatorio Descrizione
connection_id path sì ID della connessione passkey (conn_…).
Idempotency-Key header no Chiave facoltativa che rende sicura una richiesta ritentata (da 16 a 64 caratteri).

Il corpo è facoltativo; se presente deve essere {}.

Risposta

200 OK; la migrazione chiusa (vedi Ottenere la migrazione dell'rpId).

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

Errori

HTTP code Quando
400 unknown_field Il corpo contiene un campo.
404 not_found La connessione non esiste o appartiene a un altro ambiente.
409 no_active_rp_id_migration La connessione non ha una migrazione dell'rpId in corso (per esempio, è già stata completata).
401 unauthenticated La credenziale manca, non è valida o è stata revocata.
403 insufficient_permissions La credenziale non ha l'autorizzazione richiesta.
429 rate_limited È stato superato il limite di richieste; riprova dopo il periodo indicato in Retry-After.
503 service_unavailable Non è stato possibile leggere il conteggio dei passkey, oppure un'altra dipendenza non è disponibile; la migrazione resta aperta. Riprova dopo il periodo indicato in Retry-After.

Esempio

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