Isolate an app (kill switch)
const url = 'https://opfield.example.com/api/apps/550e8400-e29b-41d4-a716-446655440000/isolation';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"environmentIds":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"],"confirmName":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://opfield.example.com/api/apps/550e8400-e29b-41d4-a716-446655440000/isolation \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "environmentIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "confirmName": "example" }'For a security incident; confirmName must be the app name. Routes of the environment and routes whose upstream is a member show the maintenance page without team access (other routes are withdrawn), container links and database/storage bindings touching a member are suspended, Secure Links to members close, direct database/storage publications are suspended (ports kept), and every member container loses all its networks (a host-network container is stopped). Members are frozen until the kill switch is turned off: every change answers 409 APP_ISOLATED (recreate, update, rename, deploy, Compose apply/down, migration, Availability, route edits and deletes, deleting the member itself or its links, bindings and Secure Links, settings, new resources in the environment, membership). Reads, logs, console, stop, restart and start still work. Every change is recorded with its prior state and restored exactly. environmentIds limits it to those environments (apps:operate on each); null or omitted means every environment (apps:operate on the app).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
550e8400-e29b-41d4-a716-446655440000Request Bodyrequired
Section titled “Request Bodyrequired”JSON request body
object
Examplegenerated
{ "environmentIds": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "confirmName": "example"}Responses
Section titled “Responses”Successful response
object
Resource object. Exact fields depend on the endpoint.
object
Example
{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Example resource", "createdAt": "2024-01-01T12:00:00.000Z", "updatedAt": "2024-01-01T12:30:00.000Z" }}Bad request
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": [ { "path": [ "name" ], "message": "Required" } ]}Authentication required
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNAUTHORIZED", "message": "Authentication required"}Forbidden
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "FORBIDDEN", "message": "Insufficient permissions"}Not found
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "NOT_FOUND", "message": "Resource not found"}Conflict
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "CONFLICT", "message": "Resource already exists"}Unprocessable entity
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "UNPROCESSABLE_ENTITY", "message": "Request could not be processed"}Internal server error
object
Error code
Human-readable error message
Additional error details
Example
{ "code": "INTERNAL_ERROR", "message": "Internal server error"}