Reemplazar las conexiones de una aplicación
PUT /v1/applications/{application_id}/connections · permisos applications:write y connections:write
Reemplaza en un solo paso la lista completa de conexiones habilitadas en la aplicación. El orden de connection_ids es el orden de los botones en la página de inicio de sesión alojada; una lista vacía deshabilita todas las conexiones. Cada conexión debe existir en el mismo entorno: una conexión de otro entorno se trata como una que no existe (422 en /connection_ids) y no se escribe nada. Enviar la lista que la aplicación ya tiene no cambia nada y conserva la versión. El cambio se registra en el log de auditoría de gestión como application.updated y se publica como el evento application_changed; eliminar una conexión surte efecto en el siguiente inicio de sesión.
Solicitud
Cabeceras: If-Match: "<version>" (opcional). Con If-Match, la lista solo se escribe si la aplicación sigue en esa versión (412 en caso contrario); sin él, la lista se escribe sea cual sea la versión. Envíe una cabecera Idempotency-Key para que los reintentos sean seguros.
| Parámetro | En | Obligatorio | Descripción |
|---|---|---|---|
application_id |
path | sí | ID de la aplicación, con prefijo app_. |
Cuerpo
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
connection_ids |
array de string | sí | IDs de conexión (conn_…), únicos, como máximo 100, en orden de botones. |
Respuesta
200 OK con la aplicación y su nuevo ETag.
Errores
Cada error es un cuerpo application/problem+json con un code estable.
| HTTP | code |
Cuándo |
|---|---|---|
| 400 | malformed_request, unknown_field |
El cuerpo no es JSON válido o tiene un campo desconocido. |
| 401 | unauthenticated |
La clave de API falta, no es válida o fue revocada. |
| 403 | insufficient_permissions |
La clave no tiene applications:write o connections:write. |
| 404 | not_found |
La aplicación no existe en este entorno (o el ID está mal formado). |
| 412 | precondition_failed |
La versión en If-Match está desactualizada. |
| 422 | validation_failed |
connection_ids falta, tiene más de 100 elementos, un ID mal formado o repetido, o una conexión que no está en este entorno. |
| 429 | rate_limited |
Se superó el límite de frecuencia; respete Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente más tarde. |
Ejemplo
curl -X PUT https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg/connections \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"connection_ids":["conn_01h455vb4pex5vsknk084sn02q"]}'
CLI: keenauth applications put-connections app_6f8d0cjgbmf0gtn2rg6pscp3cg --connection-ids conn_01h455vb4pex5vsknk084sn02q (para deshabilitar todas las conexiones, envíe {"connection_ids":[]} con --data -)