StateSet Sandbox is a Kubernetes-based sandbox infrastructure for running code execution workloads inside isolated pods. It exposes REST and WebSocket APIs for creating sandboxes, streaming command output, and reading or writing files inside each sandbox workspace.Documentation Index
Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
Use this file to discover all available pages before exploring further.
Key capabilities
- Isolated execution per sandbox pod with resource limits
- REST and WebSocket APIs for command execution and streaming output
- File read and write APIs for workspace workflows
- Prebuilt runtime with Node.js, Python, Go, Rust, and common CLI tooling
- Automatic cleanup with per-sandbox timeouts
- Optional warm pool support for faster startup
Architecture overview
Hosted API quickstart
- Register and receive an API key.
- Create a sandbox with a timeout.
- Execute commands inside the sandbox.
TypeScript SDK example
Self-hosted deployment
At a high level, deployment includes:- Build and push the sandbox and controller images.
- Apply the Kubernetes manifests in
k8s/. - Configure secrets for JWT signing and provider keys.
- Deploy the controller and verify pod creation.
API summary
| Method | Path | Description |
|---|---|---|
| POST | /api/v1/sandbox/create | Create a new sandbox |
| GET | /api/v1/sandbox/:id | Get sandbox details |
| GET | /api/v1/sandbox/:id/status | Get sandbox status |
| GET | /api/v1/sandboxes | List sandboxes |
| POST | /api/v1/sandbox/:id/files | Write files to a sandbox |
| GET | /api/v1/sandbox/:id/files?path=... | Read a file from a sandbox |
| POST | /api/v1/sandbox/:id/execute | Execute a command |
| POST | /api/v1/sandbox/:id/stop | Stop and delete a sandbox |
| DELETE | /api/v1/sandbox/:id | Delete a sandbox |
Configuration highlights
| Variable | Default | Description |
|---|---|---|
SANDBOX_IMAGE | - | Base image for sandbox pods |
DEFAULT_CPUS | 2 | Default CPU limit |
DEFAULT_MEMORY | 2Gi | Default memory limit |
DEFAULT_TIMEOUT | 600 | Default timeout in seconds |
MAX_SANDBOXES_PER_ORG | 5 | Max concurrent sandboxes per org |
SANDBOX_EXEC_BACKEND | kubectl | Command exec backend |
WARM_POOL_ENABLED | false | Enable warm pool pods |
Security and isolation
- Sandboxes run as non-root with dropped Linux capabilities.
- Seccomp profiles and resource limits are enforced at the pod level.
- Network policies restrict egress to HTTPS and DNS.