Delete Sandbox
Deletes a sandbox: hard-kills its pod, revokes its agent key, drops its egress binding, console sessions and preview exposures, removes the record, then deletes any ephemeral workspaces it owned. No flush and no snapshot: snapshot first to keep content.
Access: namespace OPERATOR or above (write)
Authorization
BearerAuth A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC
token for humans. The key's namespace and role are pinned server-side.
In: header
Header Parameters
Define the version of the Connect protocol
Define the timeout, in ms
Request Body
application/json
1 <= length <= 64workspace persists independently unless set; validate:skip a bool has no bounds
Response Body
application/json
application/json
curl -X POST "https://containers.xeonr.io/containers.api.v1.SandboxService/DeleteSandbox" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/json" \ -d '{}'{}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Create Sandbox POST
Creates a sandbox from an environment in the same namespace and starts its pod. Resolves the workload command (request argv, then the environment's default_argv, then the image ENTRYPOINT/CMD; exec_only runs nothing), creates any ephemeral workspace mounts, and applies the base egress policy (deny-all when none is given; the egress bootstrap defaults to 24h when max_lifetime_sec is 0). Rejects an environment in another namespace (PermissionDenied), platform-owned env names (InvalidArgument), both workspace_id and workspaces set, more than 8 mounts, a non-absolute or unclean working_dir, and a durable workspace already attached to another live sandbox (FailedPrecondition). Unimplemented without cluster access. **Access:** namespace OPERATOR or above (write)
Exec In Sandbox POST
Bidirectional stream running an argv (never shell-joined) in a RUNNING sandbox. The first client message must be the ExecSpec; later messages are stdin chunks or stdin_close. The server streams stdout/stderr frames then a final exit whose code/termination is status-derived; a timeout_sec deadline yields TERMINATION_TIMEOUT with code -1. Keeps the idle-suspend clock fresh for the session. Rejects an empty argv and wait=EXEC_WAIT_PROCESS combined with tty (InvalidArgument), and a sandbox that is not running (FailedPrecondition). **Access:** namespace OPERATOR or above (write)