Terminer la migration du rpId d'une connexion

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

Termine la migration du rpId en cours d'une connexion par clé d'accès avant la fin de sa fenêtre. Le statut devient completed_early (ou completed si la fenêtre était déjà terminée), les clés d'accès encore liées à l'ancien rpId sont révoquées (motif rp_id_changed), l'origine de l'ancien rpId n'est plus acceptée et l'événement passkey_rp_id.migration_completed est publié. Cette action est irréversible : les utilisateurs qui n'ont pas enregistré de clé d'accès sur le nouveau rpId doivent se connecter autrement.

Requête

Champ Type Obligatoire Description
connection_id path oui ID de la connexion par clé d'accès (conn_…).
Idempotency-Key header non Clé facultative qui rend sûre une requête relancée (16 à 64 caractères).

Le corps est facultatif ; s'il est présent, il doit être {}.

Réponse

200 OK ; la migration close (voir Obtenir la migration du 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
}

Erreurs

HTTP code Quand
400 unknown_field Le corps contient un champ.
404 not_found La connexion n'existe pas ou appartient à un autre environnement.
409 no_active_rp_id_migration La connexion n'a pas de migration du rpId en cours (par exemple, elle a déjà été terminée).
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant ne dispose pas de l'autorisation requise.
429 rate_limited La limite de débit a été dépassée ; réessayez après le délai indiqué par Retry-After.
503 service_unavailable Les nombres de clés d'accès n'ont pas pu être lus, ou une autre dépendance est indisponible ; la migration reste ouverte. Réessayez après le délai indiqué par Retry-After.

Exemple

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