Roles & Permissions
OpenFactory uses role-based access control (RBAC) at every organizational level.
Role Hierarchy
Organization Level
├── owner
├── admin
└── member
Unit Level
├── unit_admin
├── base_creator
├── base_approver
└── member
Team Level
├── team_lead
├── variant_creator
├── variant_deployer
└── variant_viewerOrganization Roles
Owner
Full control over the organization.
| Permission | Access |
|---|---|
| Delete organization | ✓ |
| Transfer ownership | ✓ |
| Manage all members | ✓ |
| Manage all settings | ✓ |
| Create/delete units | ✓ |
| All admin permissions | ✓ |
Note: There is exactly one owner per organization. Ownership can be transferred but not shared.
Admin
Administrative access without full ownership.
| Permission | Access |
|---|---|
| Invite/remove members | ✓ |
| Change member roles | ✓ |
| Create/delete units | ✓ |
| Create/delete groups | ✓ |
| View organization stats | ✓ |
| Manage sharing settings | ✓ |
Member
Standard organization membership.
| Permission | Access |
|---|---|
| View organization | ✓ |
| Participate in units/teams | ✓ |
| Create builds | ✓ |
| Share within org | ✓ |
Unit Roles
Unit Admin
Full control over a unit.
| Permission | Access |
|---|---|
| Manage unit members | ✓ |
| Create/delete teams | ✓ |
| Approve base images | ✓ |
| Create base images | ✓ |
| All base operations | ✓ |
Base Creator
Create and manage base images (golden images).
| Permission | Access |
|---|---|
| Create base variants | ✓ |
| Edit base variants | ✓ |
| Submit for approval | ✓ |
| View unit resources | ✓ |
Base Approver
Approve base images for deployment.
| Permission | Access |
|---|---|
| Approve base variants | ✓ |
| Reject submissions | ✓ |
| View pending approvals | ✓ |
| View unit resources | ✓ |
Member
Basic unit membership.
| Permission | Access |
|---|---|
| View unit resources | ✓ |
| Participate in teams | ✓ |
| Use approved bases | ✓ |
Team Roles
Team Lead
Full control over a team.
| Permission | Access |
|---|---|
| Manage team members | ✓ |
| Share outside team | ✓ |
| Approve deployments | ✓ |
| All variant permissions | ✓ |
Variant Creator
Create and modify variant configurations.
| Permission | Access |
|---|---|
| Create variants | ✓ |
| Edit own variants | ✓ |
| Edit shared variants | ✓ |
| Submit for deployment | ✓ |
Variant Deployer
Deploy variants to builds.
| Permission | Access |
|---|---|
| Deploy approved variants | ✓ |
| Trigger builds | ✓ |
| View deployment history | ✓ |
Variant Viewer
Read-only access to team variants.
| Permission | Access |
|---|---|
| View team variants | ✓ |
| View build results | ✓ |
| Download ISOs | ✓ |
Permission Matrix
Organization Operations
| Operation | Owner | Admin | Member |
|---|---|---|---|
| Delete org | ✓ | - | - |
| Transfer ownership | ✓ | - | - |
| Manage admins | ✓ | - | - |
| Manage members | ✓ | ✓ | - |
| Create units | ✓ | ✓ | - |
| Create groups | ✓ | ✓ | - |
| View stats | ✓ | ✓ | - |
| Create builds | ✓ | ✓ | ✓ |
Unit Operations
| Operation | Unit Admin | Base Creator | Base Approver | Member |
|---|---|---|---|---|
| Manage members | ✓ | - | - | - |
| Create teams | ✓ | - | - | - |
| Create base | ✓ | ✓ | - | - |
| Approve base | ✓ | - | ✓ | - |
| Use base | ✓ | ✓ | ✓ | ✓ |
Team Operations
| Operation | Team Lead | Creator | Deployer | Viewer |
|---|---|---|---|---|
| Manage members | ✓ | - | - | - |
| Share externally | ✓ | - | - | - |
| Create variant | ✓ | ✓ | - | - |
| Deploy variant | ✓ | - | ✓ | - |
| View variant | ✓ | ✓ | ✓ | ✓ |
Role Badges
Roles are displayed with color-coded badges in the UI:
| Role | Color |
|---|---|
| owner | Red |
| admin | Orange |
| unit_admin | Purple |
| base_creator | Blue |
| base_approver | Green |
| team_lead | Indigo |
| variant_creator | Cyan |
| variant_deployer | Teal |
| viewer/member | Gray |
Changing Roles
At Organization Level
- Go to organization settings
- Open Members tab
- Click member’s current role
- Select new role
- Save changes
At Unit/Team Level
Same process within unit or team settings.
Role Inheritance
Higher roles inherit lower role permissions:
- owner has all admin permissions
- admin has all member permissions
- unit_admin has all unit member permissions
- team_lead has all team member permissions
Best Practices
- Least privilege - Assign minimum necessary permissions
- Regular audits - Review role assignments periodically
- Document decisions - Track why roles were assigned
- Use groups - Simplify management with groups
- Separate concerns - Use units to isolate responsibilities