Permissions Reference
What each module's access level allows, and how project API keys inherit permissions.
Each module is a permission scope. Its level, No Access, Viewer, or Editor, sets what you can do in that module. Levels come either from a built-in project role or from a custom role.
Access levels
| Level | For most modules |
|---|---|
| No Access | Cannot open the module. |
| Viewer | View and comment. |
| Editor | Everything a Viewer can do, plus create, edit, and manage content. |
What Editor adds, module by module
| Module | Viewer | Editor adds |
|---|---|---|
| Requirements | View and comment | Create, edit, and delete requirements; apply tracked edits; manage links to related items. |
| Blueprints | View and comment | Create, edit, and delete blueprints; manage blueprint code links; manage links to requirements; manage categories. |
| Work Orders | View and comment | Create, update, delete, and assign work orders; manage labels; link themes, requirements, blueprints, and Knowledge Base items. |
| Feedback | View and comment | Create, update, and triage feedback; organize it; create and edit themes; link themes to work orders. |
| Knowledge Base | View, comment, and upload files | Create and edit documents; rename, organize, and delete files and folders; manage relationships. |
| Skills | View and comment | Create and edit agent skills. |
| Automations | View and run automations | Create automations, and edit, enable, disable, and delete their own automations. |
Automations are the one place Editor access does not extend across other people's work. An Editor manages only the automations they created. Editing or deleting someone else's automation is an Owner action, which organization Admins hold through their implicit Owner access.
Codebase Connection
Codebase Connection uses the same labels with a different meaning:
| Level | Codebase Connection |
|---|---|
| No Access | No access to indexed code, connection settings, or reindexing. |
| Viewer | Search and read indexed code, including Agent code queries. |
| Editor | Everything a Viewer can do, plus manage the connection. |
Reindexing sits above connection management. The built-in Editor project role can manage the connection but cannot trigger a reindex; reindexing is an Owner action. The exception is a custom role that sets Codebase Connection to Editor, which also grants the reindex capability to its holders.
See Codebase Connection for setup.
Project API keys
Project API keys let external tools call a project through the API.
- Creating and listing keys are Viewer-tier. Any project member who can view the project can create a project API key and see the project's masked key list.
- Keys are project-scoped. Each key belongs to one project and its value starts with the prefix
sofa-ext-. - A key acts as its creator. Requests made with a key authenticate as the person who created it and inherit exactly that person's permissions, never more.
- A key stops working if its creator loses access. If the creator loses access to the project, the key stops working, and the product returns "API key owner no longer has access to this project".
- Deleting a key requires the key's creator or a project Owner. Organization Admins qualify through their implicit Owner access.
Next, learn about View seats.