Handbook
Examples — Workspace upload
Tarball handshake (workspace_upload_required) details stay in Workspace upload — includes manifest knobs + PUT sizing caveats.
Updated
For copy-paste curl transcripts and sizing tables, use Examples & recipes (workspace flows) and the jobs + curl pages for auth patterns.
Purpose
Point implementers at the workspace tarball handshake (workspace_upload_required) and manifest rules.
Prerequisites
Job created with workspace metadata; docker / size limits understood per Build 201.
Copy-paste steps
Follow Workspace upload and long-form curl in Examples & recipes.
Expected output
After PUT /v1/jobs/{id}/workspace, JSON includes workspace_state: ready and the job transitions from queued.
Error handling
400 extract_failed, 409 when not queued / already uploaded—see error-handling.md.
Security notes
Tarballs are extracted on the host; keep archives free of path-escape payloads (see manifest schema).
Related
- HTTP API (
uploadJobWorkspace) workspace-manifest.schema.json
Validation status
- Example manifest:
payloads/valid/workspace-manifest.json; invalid path example:payloads/invalid/workspace-manifest.invalid.bad-path.json(check-schema-examples.py). - OpenAPI documents binary
requestBodyforPUT /v1/jobs/{id}/workspace:../schemas/openapi.json.