Skip to main content
Validates and uploads the experiment, then displays a server-resolved preview for confirmation. Only confirmation creates a queued job. Use --yes for an unattended submission. The walkthrough is submitting a job. This page is the flag reference, and the table below comes from the CLI, so it cannot be out of date.

Worked examples

Review, save and retry

A preview expires after one hour. Confirmation sends its ID, digest and a stable retry key. If the response is lost, repeat --commit with the same file; the server returns the original receipt, even after that preview expires. A new preview is a new submission and can create another job. --intent intent.json accepts three input forms. Every form contains form, project, and a complete spec (the tuneplane/v1 JobSpec): Image form requires the custom/custom recipe. Arguments are literal: use an explicit shell executable if a shell program is intended. OCI runtime images must be pinned with @sha256: in the spec or deployment runtime registry. The deployment must provide its standalone runner artifact before previewing. Keep credentials in platform-managed bindings; do not put tokens into command arguments or configuration files. The Jobs page offers the same three forms, displays the resolved document, and requires a separate confirmation. It can save the preview and download the resolved source package. Browser source uploads are limited to 256 MiB; the CLI uses the deployment upload limit. Downloading or previewing does not start work. The public API is POST /api/submissions/uploads, authenticated streaming PUT /api/submissions/uploads/{id} with X-Upload-Token, POST /api/submissions/previews, and POST /api/submissions/commits. GET /api/submissions/previews/{id}/package exports an owned, unexpired package. After confirmation, the owner can also export through GET /api/jobs/{run_id}/submission/package, independently of preview expiry. The archive/header POST /api/jobs protocol is retired and returns 410.

Notes the flag table cannot carry

  • The project comes from name in tuneplane.yaml. There is no --project.
  • --framework-version only does something together with --upgrade-recipe.
  • --observability-url is required for a recipe declaring external observability and refused for one declaring platform.
  • --volume and --environment take no version suffix for a volume, and require one for an environment.
  • --train-data is a path inside the dataset once --train-dataset is given.

tp submit

Submit a training job