Sandboxes¶
Sandboxes let you run code against your repository data inside isolated containers. Each sandbox gets a mounted volume with your data, executes your script or application, and can commit changes back to the repository — all without touching your production state until you approve.
Combined with triggers, sandboxes enable fully automated data pipelines: when specific files change, a sandbox automatically runs your validation, transformation, or analysis code.
Architecture¶
Tilde sandboxes are isolated along three dimensions:
-
Each sandbox runs in its own isolated container with all Linux capabilities dropped, configurable resource limits, and no access to the host system. You choose the image, command, and environment -- Tilde handles the lifecycle.
-
Your repository data is mounted as a versioned FUSE volume. The sandbox operates on a session — a transactional workspace. Changes are only applied to the repository when the session is committed. If anything goes wrong, it's rolled back.
-
Every sandbox runs on an isolated network with no direct internet access. All outbound HTTP/HTTPS traffic passes through a forward proxy that enforces per-sandbox network policies.
Quick Start¶
import tilde
repo = tilde.repository("my-team/my-data")
# One-shot: run a single command
result = repo.execute("python analyze.py", image="python:3.12")
print(result.stdout.text())
# Interactive: run multiple commands in a single sandbox
with repo.shell(image="python:3.12") as sh:
sh.run("pip install pandas")
result = sh.run("python analyze.py")
print(result.stdout.text())
See the CLI docs and Python SDK for full documentation, or the list of supported images.