ReferenceHTTP APIAdmin

Stop any session of the workspace, with a reason

POST
/v1/admin/sessions/{id}/terminate

Owners and admins, whatever the session's share. The justification is recorded with the decision and becomes the stop reason. Otherwise as POST /v1/sessions/{id}/terminate.

Auth: cookie session only; no scope. Idempotency-Key: required.

Authorization

cookieSession
cookie__Host-werft_session<token>

For the web console: the browser session cookie set by POST /v1/auth/login. It holds the scopes of the user's workspace role (owner: all; admin and member: all but sessions:recover). Requests other than GET must also send X-Requested-With: werft-web.

Path Parameters

id*string

The session's id.

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Header Parameters

Idempotency-Key*string

Required, 1–255 characters; a UUID per user intent works. A retry with the same key and the same body returns the original response and runs the command once; the same key with a different body answers 409 IDEMPOTENCY_CONFLICT. A missing or invalid key answers 400 BAD_REQUEST, after the body is read.

Length1 <= length <= 255
X-Requested-With?"werft-web"

Required with a cookie session: the literal werft-web.

Value in"werft-web"

Request Body

application/json
  1. body
expected_revision*integer
Range0 <= value <= 2147483647
justification*string
Length1 <= length <= 1000

Response Body

Success

application/json
  1. response
receipt_id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
receipt_status*string
Value in"accepted""succeeded""failed""unknown"
external_effects_reverted*boolean
Example Request
curl -X POST 'https://example.com/v1/admin/sessions/497f6eca-6276-4993-bfeb-53cbbbba6f08/terminate' \  -H 'Idempotency-Key: string' \  -H 'Content-Type: application/json' \  -d '{  "expected_revision": 0,  "justification": "string"}'
Example Response
{  "receipt_id": "64d0a161-468e-472a-b00e-a06ee9ab7de7",  "receipt_status": "accepted",  "external_effects_reverted": false}