Suspendre une application
POST /v1/applications/{application_id}:suspend · autorisation applications:write
Définit le status de l'application sur suspended. Dès lors, l'application ne peut plus obtenir de nouveaux jetons : l'autorisation, PAR, l'autorisation par appareil, le point de terminaison de jetons (y compris l'actualisation et client_credentials), l'introspection et la révocation la refusent en tant que client. La suspension met aussi fin à ce que l'application détient déjà : KeenAuth révoque ses familles de jetons d'actualisation actives ouvertes avant la suspension (motif client_revoked) et marque son client_id, de sorte que l'introspection et userinfo rejettent les jetons d'accès émis à cette application avant ce point. Un serveur de ressources qui ne vérifie que la signature JWT continue d'accepter un tel jeton d'accès jusqu'à son expiration. Les identifiants client de l'application sont conservés ; sa reprise ne nécessite donc aucun nouveau secret. La demande n'a pas de corps (vide ou {}). Suspendre une application déjà suspendue ne change rien et renvoie l'application courante avec la même version. La modification est écrite dans le journal d'audit de gestion sous application.updated et publiée sous forme d'événements application_changed et application_status_changed.
Requête
En-têtes : If-Match: "<version>" (facultatif). Avec If-Match, la modification ne s'applique qu'à cette version (412 sinon) ; sans lui, la dernière version est utilisée et la requête est relancée si un autre écrivain modifie l'application en même temps. 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_. |
Réponse
200 OK avec l'application ("status": "suspended") et son ETag.
Erreurs
Chaque erreur est un corps application/problem+json avec un code stable.
| HTTP | code |
Quand |
|---|---|---|
| 400 | malformed_request, unknown_field |
Un corps a été envoyé qui 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 l'autorisation applications: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. |
| 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 POST https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg:suspend \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Idempotency-Key: $(uuidgen)"
CLI : keenauth applications suspend app_6f8d0cjgbmf0gtn2rg6pscp3cg --yes