Managoat.Sandbox.Daytona.Api (managoat_sandbox v0.2.1)

Copy Markdown View Source

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

api_key!()

base_url()

create_sandbox(name)

delete_sandbox(name)

get_sandbox(name)

list_all_names(max_pages \\ 40)

Every fountain-labeled sandbox name, cursor-paginated. Refuses a partial view.

req()

set_network(name, allow_domains)

Replace the sandbox's egress policy on the runner. Block-all plus a domain allowlist — genuinely default-deny, so allow: [] needs no translation.

snapshot()

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).

start(name)

stop(name)

toolbox_url(name)

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).