Skip to content

External Storage

Sandboxes are ephemeral by design. If you need durable workspace state across sandbox lifecycles, mount your own cloud or network storage into the sandbox.

The platform handles mounting on the host and bind-mounts the result into your sandbox. Your image needs no special mount tooling, and credentials never enter the sandbox.

  1. Declare mounts in the create request. The platform validates the spec and stores credentials encrypted at rest.
  2. At sandbox start, the platform establishes the mount on the host and makes it available inside the sandbox at the path you specified.
  3. On Stop, the mount is torn down. On Start, it is re-established. After a host reboot, mounts are restored automatically on the next sandbox start.
TypeSource formatHost binary usedCredentials field
s3s3://bucket[/prefix] or bucketmount-s3access_key_id, secret_access_key, session_token
nfshost:/exports/pathmount.nfsnone
sshfsuser@host:/pathsshfsprivate_key_pem
rcloneremote:pathrclone mountrclone_conf

Up to 8 mounts per sandbox are supported, with up to 32 credential keys and 4 KiB total payload.

const sandbox = await client.create({
image: 'ubuntu:22.04',
mounts: [
{
type: 's3',
target: '/workspace',
source: 's3://my-bucket/prefix',
credentials: {
access_key_id: 'AKIA...',
secret_access_key: 'secret...',
},
},
],
})
const sandbox = await client.create({
image: 'ubuntu:22.04',
mounts: [
{ type: 'nfs', target: '/data', source: '10.0.0.1:/exports/data' },
],
})
  • Credentials never enter the sandbox.
  • Credentials are encrypted at rest with AES-256-GCM.
  • Read APIs return has_credentials: true but never the actual values.
  • Mount fields (source, NFS options.opts, S3 options.extra_args, etc.) are passed verbatim to host-side mount tools (mount, mount-s3, sshfs, rclone) running as the daemon user, outside the sandbox isolation boundary. The platform assumes PAT holders are host operators.
  • Mounts are established at Create and re-established at Start.
  • A failed mount is retried once before being disabled.
  • Host requirements include fuse3, sshfs, nfs-common, rclone, and AWS mountpoint-s3.
  • Network egress blocking applies inside the sandbox, not to the host mount process.