Skip to main content
Filesystems give your app durable mounted storage inside the sandboxed runtime. Each app user runs in an isolated runtime, and your code can work with normal container-local paths plus any filesystems declared on the app. Use mounted filesystems for uploaded documents, generated reports, exports, cached model artifacts, and large intermediate outputs that should outlive one request.

Create a filesystem

Mount it

Inside the runtime, /data behaves like a normal directory. Your handlers, tasks, schedules, and workflows can all read and write through that path. The mount is an app/workspace resource, not a private directory automatically created per end user. If files are user-specific, namespace paths yourself, for example /data/users/{session.user.id}/summary.md, or keep private/queryable state in user-scoped collections and store only generated artifacts in the filesystem.

Write files

Accept uploads

Manage files with the CLI

Filesystems versus collections

Use collections for queryable records. Use filesystems for files and artifacts. Many apps use both: a collection row stores metadata and points at a file in a mounted filesystem.