|
| 1 | +--- |
| 2 | +title: Access Control |
| 3 | +description: Restrict which models, blocks, and platform features each group of users can access |
| 4 | +--- |
| 5 | + |
| 6 | +import { Callout } from 'fumadocs-ui/components/callout' |
| 7 | +import { FAQ } from '@/components/ui/faq' |
| 8 | +import { Image } from '@/components/ui/image' |
| 9 | + |
| 10 | +Access Control lets organization admins define permission groups that restrict what each set of users can do — which AI model providers they can use, which workflow blocks they can place, and which platform features are visible to them. Restrictions are enforced both in the workflow executor and in Mothership. |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +## How it works |
| 15 | + |
| 16 | +Access control is built around **permission groups**. Each group has a name, an optional description, and a configuration that defines what its members can and cannot do. A user can belong to at most one permission group at a time. |
| 17 | + |
| 18 | +When a user runs a workflow or uses Mothership, Sim reads their group's configuration and applies it: |
| 19 | + |
| 20 | +- **In the executor:** If a workflow uses a disallowed block type or model provider, execution halts immediately with an error. This applies to both manual runs and scheduled or API-triggered deployments. |
| 21 | +- **In Mothership:** Disallowed blocks are filtered out of the block list so they cannot be added to a workflow. Disallowed tool types (MCP, custom tools, skills) are skipped if Mothership attempts to use them. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## Setup |
| 26 | + |
| 27 | +### 1. Open Access Control settings |
| 28 | + |
| 29 | +Go to **Settings → Enterprise → Access Control** in your workspace. |
| 30 | + |
| 31 | +<Image src="/static/enterprise/access-control-groups.png" alt="Access Control settings showing a list of permission groups: Contractors, Sales, Engineering, and Marketing, each with Details and Delete actions" width={900} height={500} /> |
| 32 | + |
| 33 | +### 2. Create a permission group |
| 34 | + |
| 35 | +Click **+ Create** and enter a name (required) and optional description. You can also enable **Auto-add new members** — when active, any new member who joins the organization is automatically added to this group. Only one group per organization can have this setting enabled at a time. |
| 36 | + |
| 37 | +### 3. Configure permissions |
| 38 | + |
| 39 | +Click **Details** on a group, then open **Configure Permissions**. There are three tabs. |
| 40 | + |
| 41 | +#### Model Providers |
| 42 | + |
| 43 | +Controls which AI model providers members of this group can use. |
| 44 | + |
| 45 | +<Image src="/static/enterprise/access-control-model-providers.png" alt="Model Providers tab showing a grid of AI providers including Ollama, vLLM, OpenAI, Anthropic, Google, Azure OpenAI, and others with checkboxes to allow or restrict access" width={900} height={500} /> The list shows all providers available in Sim. |
| 46 | + |
| 47 | +- **All checked (default):** All providers are allowed. |
| 48 | +- **Subset checked:** Only the selected providers are allowed. Any workflow block or agent using a provider not on the list will fail at execution time. |
| 49 | + |
| 50 | +#### Blocks |
| 51 | + |
| 52 | +Controls which workflow blocks members can place and execute. |
| 53 | + |
| 54 | +<Image src="/static/enterprise/access-control-blocks.png" alt="Blocks tab showing Core Blocks (Agent, API, Condition, Function, Knowledge, etc.) and Tools (integrations like 1Password, A2A, Ahrefs, Airtable, and more) with checkboxes to allow or restrict each" width={900} height={500} /> Blocks are split into two sections: **Core Blocks** (Agent, API, Condition, Function, etc.) and **Tools** (all integration blocks). |
| 55 | + |
| 56 | +- **All checked (default):** All blocks are allowed. |
| 57 | +- **Subset checked:** Only the selected blocks are allowed. Workflows that already contain a disallowed block will fail when run — they are not automatically modified. |
| 58 | + |
| 59 | +<Callout type="info"> |
| 60 | + The `start_trigger` block (the entry point of every workflow) is always allowed and cannot be restricted. |
| 61 | +</Callout> |
| 62 | + |
| 63 | +#### Platform |
| 64 | + |
| 65 | +Controls visibility of platform features and modules. |
| 66 | + |
| 67 | +<Image src="/static/enterprise/access-control-platform.png" alt="Platform tab showing feature toggles grouped by category: Sidebar (Knowledge Base, Tables, Templates), Workflow Panel (Copilot), Settings Tabs, Tools, Deploy Tabs, Features, Logs, and Collaboration" width={900} height={500} /> Each checkbox maps to a specific feature; checking it hides or disables that feature for group members. |
| 68 | + |
| 69 | +**Sidebar** |
| 70 | + |
| 71 | +| Feature | Effect when checked | |
| 72 | +|---------|-------------------| |
| 73 | +| Knowledge Base | Hides the Knowledge Base section from the sidebar | |
| 74 | +| Tables | Hides the Tables section from the sidebar | |
| 75 | +| Templates | Hides the Templates section from the sidebar | |
| 76 | + |
| 77 | +**Workflow Panel** |
| 78 | + |
| 79 | +| Feature | Effect when checked | |
| 80 | +|---------|-------------------| |
| 81 | +| Copilot | Hides the Copilot panel inside the workflow editor | |
| 82 | + |
| 83 | +**Settings Tabs** |
| 84 | + |
| 85 | +| Feature | Effect when checked | |
| 86 | +|---------|-------------------| |
| 87 | +| Integrations | Hides the Integrations tab in Settings | |
| 88 | +| Secrets | Hides the Secrets tab in Settings | |
| 89 | +| API Keys | Hides the Sim Keys tab in Settings | |
| 90 | +| Files | Hides the Files tab in Settings | |
| 91 | + |
| 92 | +**Tools** |
| 93 | + |
| 94 | +| Feature | Effect when checked | |
| 95 | +|---------|-------------------| |
| 96 | +| MCP Tools | Disables the use of MCP tools in workflows and agents | |
| 97 | +| Custom Tools | Disables the use of custom tools in workflows and agents | |
| 98 | +| Skills | Disables the use of Sim Skills in workflows and agents | |
| 99 | + |
| 100 | +**Deploy Tabs** |
| 101 | + |
| 102 | +| Feature | Effect when checked | |
| 103 | +|---------|-------------------| |
| 104 | +| API | Hides the API deployment tab | |
| 105 | +| MCP | Hides the MCP deployment tab | |
| 106 | +| A2A | Hides the A2A deployment tab | |
| 107 | +| Chat | Hides the Chat deployment tab | |
| 108 | +| Template | Hides the Template deployment tab | |
| 109 | + |
| 110 | +**Features** |
| 111 | + |
| 112 | +| Feature | Effect when checked | |
| 113 | +|---------|-------------------| |
| 114 | +| Sim Mailer | Hides the Sim Mailer (Inbox) feature | |
| 115 | +| Public API | Disables public API access for deployed workflows | |
| 116 | + |
| 117 | +**Logs** |
| 118 | + |
| 119 | +| Feature | Effect when checked | |
| 120 | +|---------|-------------------| |
| 121 | +| Trace Spans | Hides trace span details in execution logs | |
| 122 | + |
| 123 | +**Collaboration** |
| 124 | + |
| 125 | +| Feature | Effect when checked | |
| 126 | +|---------|-------------------| |
| 127 | +| Invitations | Disables the ability to invite new members to the workspace | |
| 128 | + |
| 129 | +### 4. Add members |
| 130 | + |
| 131 | +Open the group's **Details** view and add members by searching for users by name or email. Users can only belong to one group at a time — adding a user to a new group removes them from their current one. |
| 132 | + |
| 133 | +--- |
| 134 | + |
| 135 | +## Enforcement |
| 136 | + |
| 137 | +### Workflow execution |
| 138 | + |
| 139 | +Restrictions are enforced at the point of execution, not at save time. If a group's configuration changes after a workflow is built: |
| 140 | + |
| 141 | +- **Block restrictions:** Any workflow run that reaches a disallowed block halts immediately with an error. The workflow is not modified — only execution is blocked. |
| 142 | +- **Model provider restrictions:** Any block or agent that uses a disallowed provider halts immediately with an error. |
| 143 | +- **Tool restrictions (MCP, custom tools, skills):** Agents that use a disallowed tool type halt immediately with an error. |
| 144 | + |
| 145 | +This applies regardless of how the workflow is triggered — manually, via API, via schedule, or via webhook. |
| 146 | + |
| 147 | +### Mothership |
| 148 | + |
| 149 | +When a user opens Mothership, their permission group is read before any block or tool suggestions are made: |
| 150 | + |
| 151 | +- Blocks not in the allowed list are filtered out of the block picker entirely — they do not appear as options. |
| 152 | +- If Mothership generates a workflow step that would use a disallowed tool (MCP, custom, or skills), that step is skipped and the reason is noted. |
| 153 | + |
| 154 | +--- |
| 155 | + |
| 156 | +## User membership rules |
| 157 | + |
| 158 | +- A user can belong to **at most one** permission group at a time. |
| 159 | +- Moving a user to a new group automatically removes them from their current group. |
| 160 | +- Users not assigned to any group have no restrictions applied (all blocks, providers, and features are available to them). |
| 161 | +- If **Auto-add new members** is enabled on a group, new organization members are automatically placed in that group. Only one group per organization can have this setting active. |
| 162 | + |
| 163 | +--- |
| 164 | + |
| 165 | +<FAQ items={[ |
| 166 | + { |
| 167 | + question: "Who can create and manage permission groups?", |
| 168 | + answer: "Organization owners and admins can create, edit, and delete permission groups. On Sim Cloud, you must be on the Enterprise plan." |
| 169 | + }, |
| 170 | + { |
| 171 | + question: "What happens to a workflow that was built before a block was restricted?", |
| 172 | + answer: "The workflow is not modified — it still exists and can be edited. However, any run that reaches a disallowed block will halt immediately with an error. The block must be removed or the user's group configuration must be updated before the workflow can run successfully." |
| 173 | + }, |
| 174 | + { |
| 175 | + question: "Can a user be in multiple permission groups?", |
| 176 | + answer: "No. Each user can belong to at most one permission group at a time. Adding a user to a new group automatically removes them from their current one." |
| 177 | + }, |
| 178 | + { |
| 179 | + question: "What does a user see if they have no permission group assigned?", |
| 180 | + answer: "Users with no group assignment have no restrictions. All blocks, model providers, and platform features are fully available to them." |
| 181 | + }, |
| 182 | + { |
| 183 | + question: "Does Mothership respect the same restrictions as the executor?", |
| 184 | + answer: "Yes. Mothership reads the user's permission group before suggesting blocks or tools. Disallowed blocks are filtered out of the block picker, and disallowed tool types are skipped during workflow generation." |
| 185 | + }, |
| 186 | + { |
| 187 | + question: "Can I restrict access to specific workflows or workspaces?", |
| 188 | + answer: "Access Control operates at the feature and block level, not at the individual workflow or workspace level. To restrict workspace access, use the organization membership and invitation settings." |
| 189 | + }, |
| 190 | + { |
| 191 | + question: "What is Auto-add new members?", |
| 192 | + answer: "When a group has Auto-add new members enabled, any new member who joins the organization is automatically added to that group. Only one group per organization can have this setting enabled at a time." |
| 193 | + } |
| 194 | +]} /> |
| 195 | + |
| 196 | +--- |
| 197 | + |
| 198 | +## Self-hosted setup |
| 199 | + |
| 200 | +Self-hosted deployments use environment variables instead of the billing/plan check. |
| 201 | + |
| 202 | +### Environment variables |
| 203 | + |
| 204 | +```bash |
| 205 | +ACCESS_CONTROL_ENABLED=true |
| 206 | +NEXT_PUBLIC_ACCESS_CONTROL_ENABLED=true |
| 207 | +``` |
| 208 | + |
| 209 | +You can also set a server-level block allowlist using the `ALLOWED_INTEGRATIONS` environment variable. This is applied as an additional constraint on top of any permission group configuration — a block must be allowed by both the environment allowlist and the user's group to be usable. |
| 210 | + |
| 211 | +```bash |
| 212 | +# Only these block types are available across the entire instance |
| 213 | +ALLOWED_INTEGRATIONS=slack,gmail,agent,function,condition |
| 214 | +``` |
| 215 | + |
| 216 | +Once enabled, permission groups are managed through **Settings → Enterprise → Access Control** the same way as Sim Cloud. |
0 commit comments