Completar la migración del rpId de una conexión

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

Finaliza la migración de rpId en curso de una conexión de clave de acceso antes de que termine su periodo. El estado pasa a completed_early (o a completed si el periodo ya había terminado), las claves de acceso que sigan en el rpId anterior se revocan (motivo rp_id_changed), el origen del rpId anterior deja de aceptarse y se publica el evento passkey_rp_id.migration_completed. Esta acción no se puede deshacer: los usuarios que no hayan registrado una clave de acceso en el nuevo rpId deberán iniciar sesión de otra forma.

Solicitud

Campo Tipo Obligatorio Descripción
connection_id ruta sí ID de la conexión de clave de acceso (conn_…).
Idempotency-Key encabezado no Clave opcional que hace seguro reintentar una solicitud (de 16 a 64 caracteres).

El cuerpo es opcional; si se incluye, debe ser {}.

Respuesta

200 OK; la migración cerrada (consulte Obtener la migración del 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
}

Errores

HTTP código Cuándo
400 unknown_field El cuerpo contiene un campo.
404 not_found La conexión no existe o pertenece a otro entorno.
409 no_active_rp_id_migration La conexión no tiene una migración de rpId en curso (por ejemplo, ya se completó).
401 unauthenticated La credencial falta, no es válida o fue revocada.
403 insufficient_permissions La credencial no tiene el permiso necesario.
429 rate_limited Se superó el límite de solicitudes; reintente después del periodo indicado en Retry-After.
503 service_unavailable No se pudieron leer los recuentos de claves de acceso, o otra dependencia no está disponible; la migración sigue abierta. Reintente después del periodo indicado en Retry-After.

Ejemplo

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