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