Tail Sandbox Logs
Streams the sandbox's retained run log (workload output plus typed lifecycle markers) across its whole life, including suspends. Starts after from_offset (0 = oldest retained), optionally restricted to one run. limit caps history replayed per read (0 = 2000). With follow, stays open and polls for new output about every 2 seconds. sandbox_id is required (InvalidArgument).
Access: namespace VIEWER or above (read)
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/connect+json
1 <= length <= 64Resume after this cursor. 0 starts at the oldest retained chunk.
int640 <= valueStay open and stream new output as it arrives. False returns the retained history and ends. validate:skip a bool has no bounds
Cap on history chunks replayed before live output begins. 0 = server default. validate:skip 0 = server default (2000); no upper bound is applied server-side
Restrict to a single run. 0 = every run, in order. validate:skip a filter; any run number is accepted (unknown runs return nothing)
Response Body
application/connect+json
application/connect+json
curl -X POST "https://containers.xeonr.io/containers.api.v1.SandboxService/TailSandboxLogs" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/connect+json" \ -d ''{
"chunk": {
"stderr": true,
"atUnix": "string",
"offset": "string",
"run": 0,
"data": "string"
}
}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Sync Sandbox Workspace POST
Forces the sandbox's agent to flush local changes back to the workspace store now rather than on the periodic sync, and reports files/bytes flushed plus conflict paths accumulated since the last call. Empty workspace_id flushes every read-write mount. FailedPrecondition when the sandbox has no writable workspace or is not RUNNING. **Access:** namespace OPERATOR or above (write)
Unexpose Sandbox Port POST
Drops a port from the sandbox's preview exposures. Metadata only: already-issued tokens stop working when they expire. A port that is not exposed is a no-op. Unimplemented when no preview domain is configured. **Access:** namespace OPERATOR or above (write)