What you see
The header has a Refresh button that re-fetches the current page from the API, and a pagination control (
Previous / Next) when the workspace has more files than fit in one page.
How files get there
The Files tab lists files and lets you upload them directly with the Import a file button. Files also appear there after being uploaded from an automation, a page, or the API:From the Files tab
Click Import a file at the top of the Files tab and pick a file from your machine. It uploads to the current workspace’s storage and appears in the list immediately — the quickest way to add a runtime asset without writing an automation.From an automation
Use afetch instruction with multipart/form-data against the workspace files endpoint. The platform stores the file and returns its metadata (id, URL, mimetype, size).
multipart/form-data request from a page or external system; see Triggers → URL for the request-body shape exposed to the automation.
From a page
A page can post directly to the workspace files endpoint using the injected SDK.From the API directly
POST /v2/workspaces/{id}/files with a multipart/form-data body. The endpoint is documented in the Platform API reference.
File URLs
Each file is served from a signed URL stored on the file record. The URL is what the Open and Download buttons use; it is also whatuploadedFile.url returns to automations and pages.
URLs are signed for the workspace’s storage provider (S3-compatible by default in self-hosted deployments). They expire; re-fetch the file metadata if you need a fresh URL.
Restore a deleted file
If the workspace storage backend has object versioning enabled (S3/GCS bucket versioning, or Azure blob soft‑delete), a deleted file can be brought back from the API:POST /v2/workspaces/{id}/files/restore
paths— one or more storage object keys to restore. Bulk restore is supported by passing several keys. A singlepathstring is also accepted.expiresAfter(optional) — expiration in seconds, applied to every restored file.metadata(optional) — arbitrary JSON attached to every restored file.
<workspaceId>/<id>.<filename>), so the file record is reconstructed from the key. The endpoint restores the object in the bucket and recreates its database entry. If the database entry still exists but the object was removed from the bucket, the object is restored and the entry’s metadata/expiresAfter are updated in place. Restoring a file that is still present is a no‑op that simply returns its metadata.
Restore requires the storage backend to have versioning turned on — it is an infrastructure setting, not a workspace one. Without it, there is no prior version to recover and the call returns 404.
What’s not in Files
Lifecycle
- Files are not included in workspace exports or pushes to Git; versioning saves the static configuration but not runtime data. See Versioning → What’s Versioned.
- Deleting a file is immediate from the UI. It can be undone with
POST /v2/workspaces/{id}/files/restoreonly when the storage backend has object versioning enabled (see Restore a deleted file); otherwise it is irreversible. If you need guaranteed history, archive the file in your own storage before deleting. - Per-file size limits and total quota are controlled by the platform deployment (see Self-Hosting → Configuration → Upload and request limits).
Troubleshooting
My uploaded file does not appear in the list
My uploaded file does not appear in the list
Click Refresh; the list shows the current page only and does not auto-update on every upload. If the file is still missing, check the workspace Activity for a
workspaces.files.error event, which contains the underlying storage error.The file URL returns 403 or 410
The file URL returns 403 or 410
Signed URLs expire. Re-fetch the file metadata (
GET /v2/workspaces/{id}/files/{fileId}) to obtain a fresh URL, or rebuild the URL from a fresh uploadedFile payload returned by your automation.Uploads fail from a page
Uploads fail from a page
The page must include the platform’s CSRF token in the request headers if the user is authenticated. See the SDK reference for the helper that injects it automatically.
I cannot delete a file
I cannot delete a file
Deletion requires the
ManageWorkspace ability. Check your role in Settings → Sharing or with the workspace owner.Next steps
Automations
Upload, transform, and route files inside workflows.
Pages
Build interfaces that upload to and read from workspace files.