Sospendere un'applicazione

POST /v1/applications/{application_id}:suspend · permesso applications:write

Imposta lo status dell'applicazione su suspended. Da quel momento l'applicazione non può più ottenere nuovi token: autorizzazione, PAR, autorizzazione del dispositivo, l'endpoint dei token (incluso il refresh e client_credentials), introspection e revoca la rifiutano come client. La sospensione interrompe anche ciò che l'applicazione possiede già: KeenAuth revoca le sue famiglie di refresh token attive aperte prima della sospensione (motivo client_revoked) e contrassegna il suo client_id, così introspection e userinfo rifiutano i token di accesso emessi all'applicazione prima di quel punto. Un resource server che verifica solo la firma del JWT continua ad accettare tale token di accesso fino alla sua scadenza. Le credenziali client dell'applicazione vengono conservate, quindi per riattivarla non serve un nuovo secret. La richiesta non ha corpo (vuoto o {}). Sospendere un'applicazione già sospesa non cambia nulla e restituisce l'applicazione attuale con la stessa versione. La modifica viene scritta nel registro di audit di gestione come application.updated e pubblicata come eventi application_changed e application_status_changed.

Richiesta

Intestazioni: If-Match: "<version>" (facoltativa). Con If-Match la modifica si applica solo a quella versione (altrimenti 412); senza, viene usata l'ultima versione e la richiesta viene ripetuta se un altro scrittore modifica l'applicazione nello stesso momento. Invia un'intestazione Idempotency-Key per rendere sicuri i tentativi ripetuti.

Parametro In Obbligatorio Descrizione
application_id path sì ID dell'applicazione, con prefisso app_.

Risposta

200 OK con l'applicazione ("status": "suspended") e il suo ETag.

Errori

Ogni errore è un corpo application/problem+json con un code stabile.

HTTP code Quando
400 malformed_request, unknown_field È stato inviato un corpo non JSON valido oppure con un campo.
401 unauthenticated La chiave API manca, non è valida o è stata revocata.
403 insufficient_permissions La chiave non ha il permesso applications:write.
404 not_found L'applicazione non esiste in questo ambiente (o l'ID non è valido).
412 precondition_failed La versione in If-Match è obsoleta.
429 rate_limited È stato superato il limite di frequenza; rispetta Retry-After.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprova più tardi.

Esempio

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