Suspender una aplicación

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

Establece el status de la aplicación en suspended. A partir de ese momento, la aplicación no puede obtener nuevos tokens: la autorización, PAR, la autorización de dispositivo, el endpoint de tokens (incluidos el refresh y client_credentials), la introspección y la revocación la rechazan como cliente. La suspensión también pone fin a lo que la aplicación ya posee: KeenAuth revoca sus familias de refresh tokens activas abiertas antes de la suspensión (motivo client_revoked) y marca su client_id, de modo que la introspección y userinfo rechazan los access tokens emitidos a la aplicación antes de ese punto. Un resource server que solo verifica la firma del JWT sigue aceptando ese access token hasta que expira. Las credenciales de cliente de la aplicación se conservan, así que reanudarla no requiere un secreto nuevo. La solicitud no tiene cuerpo (vacío o {}). Suspender una aplicación que ya está suspendida no cambia nada y devuelve la aplicación actual con la misma versión. El cambio se escribe en el registro de auditoría de gestión como application.updated y se publica como los eventos application_changed y application_status_changed.

Solicitud

Cabeceras: If-Match: "<version>" (opcional). Con If-Match, el cambio solo se aplica a esa versión (412 en caso contrario); sin ella, se usa la última versión y la solicitud se reintenta si otro escritor modifica la aplicación al mismo tiempo. Envía una cabecera Idempotency-Key para que los reintentos sean seguros.

Parámetro En Obligatorio Descripción
application_id path sí Identificador de la aplicación, con prefijo app_.

Respuesta

200 OK con la aplicación ("status": "suspended") y su ETag.

Errores

Todo error es un cuerpo application/problem+json con un code estable.

HTTP code Cuándo
400 malformed_request, unknown_field Se envió un cuerpo que no es JSON válido o tiene un campo.
401 unauthenticated La clave de API falta, no es válida o ha sido revocada.
403 insufficient_permissions La clave no tiene el permiso applications:write.
404 not_found La aplicación no existe en este entorno (o el identificador está mal formado).
412 precondition_failed La versión en If-Match está desactualizada.
429 rate_limited Se superó el límite de frecuencia; respeta Retry-After.
503 service_unavailable Una dependencia no está disponible temporalmente; reintenta más tarde.

Ejemplo

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