Tail Logs
Streams a job's logs. For a running job this follows the pod's output live (stdout/stderr split where the job was supervised); for a terminal job it returns the captured stdout stored on the record, starting at byte from_offset. Returns Unimplemented for a live job when the api has no cluster access.
Access: any role in the namespace (viewer, operator or admin — via Xeonr team membership or a namespace API key), or a platform admin.
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 point; zero (or negative, treated as zero) replays from the start
int640 <= valueResponse Body
application/connect+json
application/connect+json
curl -X POST "https://containers.xeonr.io/containers.api.v1.JobService/TailLogs" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/connect+json" \ -d ''{
"chunk": {
"offset": "string",
"data": "string",
"stderr": true
}
}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Run Job POST
Runs a batch job to completion and streams its progress: an `accepted` event carrying the job id first, then state changes, log chunks and a final `result`. `environment_id` must name an environment in the same namespace. Empty `argv` falls back to the environment's default argv, then the image entrypoint. `timeout_sec` 0 means 300. A `pool_lane` with a configured pool and a pool-compatible shape (argv set; no workspace, inputs, outputs, adapter or secrets) is served from a warm pod; otherwise the job cold-starts. A repeated `idempotency_key` within the namespace re-attaches to the original job instead of starting a new one. `secrets` require an `adapter`; `inputs`/`outputs` require a writable mount (one is synthesised at /work when no mounts are declared); at most 8 `workspaces`; env names in the CP_ prefix or set by the platform are rejected. The job keeps running if the stream is dropped. **Access:** operator or admin role in the namespace (via Xeonr team role or a namespace API key), or a platform admin.
Namespaces
Tenancy control plane — namespaces, OIDC group bindings, quotas, internal egress targets and machine API keys. Admin only.