Daytona control-plane client (app.daytona.io/api, or a self-hosted
instance via DAYTONA_API_URL).
Daytona sandboxes are genuinely name-addressable — API paths accept the
name Fountain mints — so no metadata emulation is needed; a fountain
label is stamped anyway so listings can filter to our sandboxes.
Sandboxes are created with autoStopInterval: 0 and ttlMinutes: 0:
Fountain's own lifecycle owns suspension (an agent turn must be
unbounded, and a platform auto-stop mid-turn would look like a crash),
and autoArchiveInterval moves long-parked filesystems to object
storage so a suspended sandbox stops consuming disk quota.
Summary
Functions
Every fountain-labeled sandbox name, cursor-paginated. Refuses a partial view.
Replace the sandbox's egress policy on the runner. Block-all plus a
domain allowlist — genuinely default-deny, so allow: [] needs no
translation.
The snapshot (image) new sandboxes are created from, or nil for the organization's default. A named snapshot must be registered with the org (the API rejects unknown ones with a 400).
The per-sandbox toolbox base URL: the account's proxy URL with the
sandbox's server-assigned id appended ({proxy}/{id} — the DTO's
toolboxProxyUrl alone carries no sandbox identity; the official SDK
builds exactly this base).
Functions
Every fountain-labeled sandbox name, cursor-paginated. Refuses a partial view.
Replace the sandbox's egress policy on the runner. Block-all plus a
domain allowlist — genuinely default-deny, so allow: [] needs no
translation.
The snapshot (image) new sandboxes are created from, or nil for the organization's default. A named snapshot must be registered with the org (the API rejects unknown ones with a 400).
The per-sandbox toolbox base URL: the account's proxy URL with the
sandbox's server-assigned id appended ({proxy}/{id} — the DTO's
toolboxProxyUrl alone carries no sandbox identity; the official SDK
builds exactly this base).