Software Factory
Roles & Access Control

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

LevelFor most modules
No AccessCannot open the module.
ViewerView and comment.
EditorEverything a Viewer can do, plus create, edit, and manage content.

What Editor adds, module by module

ModuleViewerEditor adds
RequirementsView and commentCreate, edit, and delete requirements; apply tracked edits; manage links to related items.
BlueprintsView and commentCreate, edit, and delete blueprints; manage blueprint code links; manage links to requirements; manage categories.
Work OrdersView and commentCreate, update, delete, and assign work orders; manage labels; link themes, requirements, blueprints, and Knowledge Base items.
FeedbackView and commentCreate, update, and triage feedback; organize it; create and edit themes; link themes to work orders.
Knowledge BaseView, comment, and upload filesCreate and edit documents; rename, organize, and delete files and folders; manage relationships.
SkillsView and commentCreate and edit agent skills.
AutomationsView and run automationsCreate 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:

LevelCodebase Connection
No AccessNo access to indexed code, connection settings, or reindexing.
ViewerSearch and read indexed code, including Agent code queries.
EditorEverything 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.

On this page