ADocumentation Index
Fetch the complete documentation index at: https://docs.superserve.ai/llms.txt
Use this file to discover all available pages before exploring further.
BuildSpec is the canonical declaration of how to build a template. The SDK flattens it onto TemplateCreateOptions for convenience: from / steps / startCmd / readyCmd are top-level options.
from: base image
An OCI image reference. Resolved to a digest at build time for reproducibility.
- Must be a linux/amd64 image
- Alpine and distroless bases are rejected at validation time (musl/busybox incompat with build tooling)
steps: ordered build steps
A list of tagged objects executed in order inside the build VM. Exactly one of run / env / workdir / user must be set per step.
run: shell command
/bin/sh -c inside the build VM.
env: environment variable
envVars on sandbox create override on conflict.
workdir: working directory
workingDir overrides at runtime.
user: switch user
sudo: true grants passwordless sudo.
startCmd: process to start after build
readyCmd: readiness probe
startCmd until it exits 0 or 10 minutes elapse. Use this to wait for a server to bind its port before snapshotting.
Resource limits
Templates specify the VM shape; sandboxes inherit these and cannot override them per-sandbox.| Field | Min | Max | Default |
|---|---|---|---|
vcpu | 1 | 4 | 1 |
memoryMib | 256 | 4096 | 1024 |
diskMib | 1024 | 8192 | 4096 |
Build error codes
On failure,BuildError.code is one of these stable identifiers (parsed from errorMessage):
| Code | Meaning |
|---|---|
image_pull_failed | Base image couldn’t be pulled or resolved |
step_failed | A build step exited non-zero |
boot_failed | Build VM failed to boot |
snapshot_failed | Snapshot bundle couldn’t be produced |
start_cmd_failed | startCmd exited non-zero before snapshot |
ready_cmd_failed | readyCmd didn’t exit 0 within 10 minutes |
too_many_builds | Team’s concurrent build limit reached (raised as RateLimitError, not BuildError) |
too_many_templates | Team’s total template count limit reached (raised as RateLimitError) |
build_failed | Catch-all when no specific code applies |