Workspaces

Workspaces are isolated resource boundaries within your account. Use them to separate environments (staging, production), organize by team, or manage client projects independently.

Each workspace has its own functions, secrets, bindings, hooks, schedules, and pipelines. Resources in one workspace are invisible to another.

URL routing

Functions are accessed via your workspace subdomain:

{workspace}.{your-slug}.fold.run/{function-name}

For example, if your account slug is acme and you have a staging workspace:

staging.acme.fold.run/my-function

Your default workspace is accessible at the root:

acme.fold.run/my-function

Creating a workspace

From the dashboard, go to Workspaces and click New workspace. Give it a name and an optional description or environment label.

Via CLI:

fold workspace create "Staging" --description "Pre-production testing"

Via API:

curl -X POST https://api.fold.run/workspaces \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Staging", "description": "Pre-production testing" }'

Switching workspaces

Use the workspace switcher in the sidebar to switch your active workspace. All resource pages (functions, secrets, bindings, etc.) automatically filter to the active workspace.

Via CLI:

fold workspace switch staging
fold workspace current

Workspace members

Workspaces support per-workspace roles. A team member can be an admin in one workspace and a viewer in another.

fold workspace members list staging
fold workspace members add staging user_abc123 --role deployer
fold workspace members remove staging user_abc123

Roles follow the same hierarchy as account-level roles:

Role Deploy View Manage members Billing
admin Yes Yes Yes Yes
deployer Yes Yes No No
viewer No Yes No No
billing-admin No Yes No Yes

Archiving

Archive a workspace to prevent deploys while keeping it queryable for audit purposes. Archived workspaces can be unarchived at any time.

From the workspace settings page, click Archive workspace.

Cloning

Create a new workspace from an existing one. Cloning copies hooks and configuration from the source workspace, but not secrets or function code.

Via API:

curl -X POST https://api.fold.run/workspaces/{source-id}/clone \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Staging Copy" }'

Usage and billing

Billing is at the account level, not per workspace. All workspaces share your plan's limits. View per-workspace usage breakdown from the Workspace Usage page.

fold workspace usage

Plan limits

Plan Workspaces
Free 1 (default only)
Pro Up to 5
Scale Unlimited

Upgrade from Billing to create additional workspaces.

API reference

Method Endpoint Description
GET /workspaces List all workspaces
POST /workspaces Create workspace
GET /workspaces/:id Get workspace details
PUT /workspaces/:id Update workspace
DELETE /workspaces/:id Delete workspace
POST /workspaces/:id/switch Switch active workspace
POST /workspaces/:id/archive Archive workspace
POST /workspaces/:id/unarchive Unarchive workspace
POST /workspaces/:id/clone Clone workspace
GET /workspaces/:id/members List members
POST /workspaces/:id/members Add member
PUT /workspaces/:id/members/:userId Update member role
DELETE /workspaces/:id/members/:userId Remove member
GET /workspaces/usage Usage breakdown
GET /workspaces/:id/notification-preferences Get notification preferences
PUT /workspaces/:id/notification-preferences Update notification preferences
POST /workspaces/:id/shared-secrets Share a secret to another workspace
GET /workspaces/:id/shared-secrets List shared secrets
DELETE /workspaces/:id/shared-secrets/:secretId Revoke shared secret