/home/daytona/project/workspace. You do not need to create or configure a
volume to use file, shell, browser, or code tools.
Local workspace data follows the sandbox lifecycle.
Create a persistent volume only when files must survive independently of one
sandbox or be shared with the Files API.
Persistent volumes
Volumes are project resources backed by project-scoped object storage. A volume has one canonical strategy:
Both strategies support
read-only and read-write access. A read-write
hydrated volume also requires a writeback policy:
autosynchronizes changed files before the outer run releases its sandbox.manualrequires the agent to callsandbox_volume_checkpointafter a consistent set of changes. A dirty manual volume fails finalization instead of silently dropping changes.
Agent grants
Creating a volume does not expose it to every agent. Grant each agent only the volumes it needs in Agent > Security. A grant can narrow the volume to read-only or manual writeback, but cannot widen the project volume policy. At runtime, callers may narrow the granted set again:sandbox.volumes field only selects or narrows existing
grants; it does not create a volume or grant access during polpo deploy.
Volume CLI
Manage the project catalog from any linked project directory:--json to every command for machine-readable output. Destructive commands
require interactive confirmation or --yes in automation. The CLI resolves a
volume name to its immutable id before modifying a grant and fails if the name
is absent.
Volume API
List and create project volumes:PATCH or DELETE on
/v1/files/volumes/{name}. Volume names are stable and cannot be renamed.
They must start with a lowercase letter, contain only lowercase letters,
digits, dashes, or underscores, and contain 2 to 63 characters.
Mount paths must stay below /home/daytona/project, cannot overlap, and cannot
cover the reserved .polpo tree. The runtime also rejects paths that resolve
through symlinks before mounting or hydrating storage.
Grant and revoke agent access with:
Files SDK
The SDK exposes project file methods directly onPolpoClient:
File or Blob to a persistent volume path:
Concurrency and failure behavior
Hydrated writeback uses revision compare-and-swap. If two runs hydrate the same revision, only the first valid writeback can commit. The other run fails with a conflict rather than overwriting newer data. Sandbox pooling also includes the resolved volume-plan fingerprint. A pooled sandbox is reused only when its mounted paths, policies, and storage selection match the new run.Self-hosted providers
The volume contract is provider-neutral in Polpo OSS. A self-hosted sandbox provider decides how to implementmounted, hydration, checkpoint, writeback,
and finalization. Polpo Cloud supplies the managed object-storage adapter.
See Sandboxes for isolation and lifecycle policy.