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 -)