Appearance
Organization Hierarchy
SchemaStack uses a three-tier hierarchy: Organisation → Workspace → View.
Tiers
Organisation
The top-level container. Holds members, billing, and settings.
- Each user can belong to multiple organisations
- Members have an organisation role: Owner, Admin, or Member
- Organisation settings include name, description, website, contact info, VAT, registration number
Workspace
A workspace connects to one external database and contains views.
- Belongs to one organisation
- Members have a workspace role: Admin, Editor, Viewer, or Member
- Stores database connection configuration
- Has an access mode (Active, Schema Locked, Read Only, Design, Maintenance)
- API keys are scoped per workspace
View
A view maps to a table or entity in the workspace's connected database.
- Belongs to one workspace
- Members can have a view role: Admin, Editor, Viewer
- Controls which columns are visible, their order, display names, and widths
- Can be private (explicit access only) or shared
- Has its own column-level permission settings
Role Inheritance
Permissions flow downward with the option to override at each level:
Organisation Owner → Full access to everything
Organisation Admin → Admin on all workspaces (unless overridden)
Organisation Member → No inherited workspace access
Workspace Admin → Admin on all views in workspace
Workspace Editor → Editor on all views
Workspace Viewer → Viewer on all views
Workspace Member → No inherited view access (explicit ViewMembership only)
View Admin → Full design + data access on that view
View Editor → Read + write data
View Viewer → Read onlyA view-level role overrides the inherited workspace role. For example, a Workspace Editor can be given View Admin on a specific view, or restricted to View Viewer.
The Workspace Member role is a special case — it grants workspace membership without any inherited view access. The user can only access views where they have an explicit ViewMembership.
URL Patterns
Admin Console
/orgs/:orgSlug/workspaces— workspace list/:workspaceSlug/workspace/*— workspace detail views
Data Platform (Spread)
/:orgSlug/:workspaceSlug/:viewSlug— view with data/:orgSlug/:workspaceSlug— workspace without view selected
INFO
The URL structure in the Data Platform is simplified — no /orgs/ or /views/ segments. The three slugs are positional.
API Endpoints
Workspaces
GET /api/workspaces/:orgSlug— list workspaces in orgPOST /api/workspaces/:orgSlug— create workspaceGET /api/workspaces/:orgSlug/:uuid— get workspacePATCH /api/workspaces/:orgSlug/:uuid— update workspaceDELETE /api/workspaces/:orgSlug/:uuid— delete workspace
Views
GET /api/views/list/workspace/:orgSlug/:workspaceSlug— list viewsGET /api/views/item/:orgSlug/:workspaceSlug/:viewSlug— get viewPATCH /api/views/item/:viewUuid— update viewDELETE /api/views/item/:viewUuid— delete view
Columns
POST /api/columns— create columnPATCH /api/columns/item/:columnUuid— update columnDELETE /api/columns/item/:columnUuid— delete column