Remplacer les connexions d'une application
PUT /v1/applications/{application_id}/connections · autorisations applications:write et connections:write
Remplace en une seule étape la liste complète des connexions activées sur l'application. L'ordre de connection_ids est l'ordre des boutons sur la page de connexion hébergée ; une liste vide désactive toutes les connexions. Chaque connexion doit exister dans le même environnement : une connexion d'un autre environnement est traitée comme une connexion inexistante (422 sur /connection_ids) et rien n'est écrit. Envoyer la liste que l'application possède déjà ne change rien et conserve la version. La modification est écrite dans le journal d'audit de gestion sous application.updated et publiée sous forme d'événement application_changed ; la suppression d'une connexion prend effet à la prochaine connexion.
Requête
En-têtes : If-Match: "<version>" (facultatif). Avec If-Match, la liste n'est écrite que si l'application est toujours à cette version (412 sinon) ; sans lui, la liste est écrite quelle que soit la version. Envoyez un en-tête Idempotency-Key pour rendre les nouvelles tentatives sûres.
| Paramètre | Dans | Obligatoire | Description |
|---|---|---|---|
application_id |
path | oui | Identifiant de l'application, préfixé app_. |
Corps
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
connection_ids |
tableau de chaînes | oui | Identifiants de connexion (conn_…), uniques, au maximum 100, dans l'ordre des boutons. |
Réponse
200 OK avec l'application et son nouvel ETag.
Erreurs
Chaque erreur est un corps application/problem+json avec un code stable.
| HTTP | code |
Quand |
|---|---|---|
| 400 | malformed_request, unknown_field |
Le corps n'est pas du JSON valide ou contient un champ inconnu. |
| 401 | unauthenticated |
La clé d'API est absente, invalide ou révoquée. |
| 403 | insufficient_permissions |
La clé ne dispose pas de applications:write ou de connections:write. |
| 404 | not_found |
L'application n'existe pas dans cet environnement (ou l'identifiant est mal formé). |
| 412 | precondition_failed |
La version dans If-Match est périmée. |
| 422 | validation_failed |
connection_ids est absent, contient plus de 100 éléments, un identifiant mal formé ou répété, ou une connexion qui n'est pas dans cet environnement. |
| 429 | rate_limited |
La limite de débit a été dépassée ; respectez Retry-After. |
| 503 | service_unavailable |
Une dépendance est temporairement indisponible ; réessayez plus tard. |
Exemple
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 (pour désactiver toutes les connexions, envoyez {"connection_ids":[]} avec --data -)