Roles & Permissions
Overview
Section titled “Overview”RunnerHub uses a role-based access control (RBAC) system for managing team members and their permissions. Four roles define what team members can do within a workspace, from full administrative control down to read-only access.
Role Matrix
Section titled “Role Matrix”| Permission | OWNER | ADMIN | MEMBER | VIEWER |
|---|---|---|---|---|
| View workspaces | ✓ | ✓ | ✓ | ✓ |
| View apps & jobs | ✓ | ✓ | ✓ | ✓ |
| View logs & artifacts | ✓ | ✓ | ✓ | ✓ |
| Download artifacts | ✓ | ✓ | ✓ | ✓ |
| Trigger builds (cancel/rerun) | ✓ | ✓ | ✓ | — |
| Manage app settings | ✓ | ✓ | ✓ | — |
| Delete apps | ✓ | ✓ | — | — |
| Edit Cloud YAML | ✓ | ✓ | — | — |
| Manage environment variables | ✓ | ✓ | — | — |
| Manage schedules | ✓ | ✓ | — | — |
| Connect repositories | ✓ | ✓ | — | — |
| Configure signing | ✓ | ✓ | — | — |
| Manage secrets | ✓ | ✓ | — | — |
| Manage team members | ✓ | ✓ | — | — |
| Delete workspace | ✓ | — | — | — |
| Manage billing | ✓ | — | — | — |
The workspace owner has full administrative control over the workspace and all its resources.
Responsibilities
Section titled “Responsibilities”- Create and delete apps
- Configure build pipelines (Cloud YAML)
- Manage environment variables
- Set up Apple code signing credentials
- Create and manage team members
- Share workspaces with team members
- Manage billing and subscription
- Access all job logs and artifacts
Billing Responsibility
Section titled “Billing Responsibility”The workspace OWNER is responsible for the subscription plan and billing. All minutes used by team members (including reruns) are charged to the OWNER’s account.
The ADMIN role provides management capabilities for team configuration and app lifecycle, while maintaining developer execution permissions.
Responsibilities
Section titled “Responsibilities”- Manage team members (invite, remove, change roles)
- Configure app settings (environment variables, signing, schedules, repositories)
- Create and delete apps
- Trigger builds (cancel, rerun)
- View all team resources
Use Cases
Section titled “Use Cases”- Team leads who need to configure settings and manage team access
- Senior developers who manage app configurations
- DevOps engineers responsible for CI/CD setup
MEMBER
Section titled “MEMBER”The MEMBER role provides build execution and monitoring without configuration management.
Permissions
Section titled “Permissions”- View: Workspaces, apps, build history, logs
- Execute: Trigger builds (cancel, rerun)
- Download: Build artifacts
- Cannot: Edit configuration, manage team, manage apps, manage signing
Use Cases
Section titled “Use Cases”- Developers who need to monitor builds and rerun jobs
- QA engineers who need to download artifacts
- Team members who should not modify CI configuration
- Contractors or freelancers with limited scope
Member Visibility
Section titled “Member Visibility”The UI adapts to member permissions:
- Configuration tabs (Cloud YAML, Variables, Settings, Schedule, Repositories) are hidden for MEMBER users
- Direct URL navigation to restricted pages redirects to the Jobs tab
- Only executable actions appear in the interface
VIEWER
Section titled “VIEWER”The VIEWER role provides read-only access to a workspace. Viewers can see all builds and artifacts but cannot execute any actions.
Permissions
Section titled “Permissions”- View: Workspaces, apps, build history, logs, and artifacts
- Download: Build artifacts
- Cannot: Cancel jobs, rerun jobs, trigger builds, edit any configuration
Use Cases
Section titled “Use Cases”- Stakeholders or managers who need to monitor progress
- Clients who need visibility into builds without execution rights
- Team members from non-technical departments
- Archival/read-only team access during project transitions
- Compliance officers or auditors who need visibility
Viewer Visibility
Section titled “Viewer Visibility”The UI adapts to viewer permissions:
- All build and artifact viewing features are available
- Configuration tabs (Cloud YAML, Variables, Settings, Schedule, Repositories) are hidden
- Action buttons (Cancel, Rerun, Trigger Build) are disabled or hidden
- Direct URL navigation to restricted pages redirects to the Jobs tab
Billing & Free Users
Section titled “Billing & Free Users”Charging Model
Section titled “Charging Model”- Minutes are charged to the workspace OWNER, regardless of who triggered the job
- If a MEMBER reruns a job, the cost is charged to the OWNER
- Teams do not require PAYG or higher plans for each individual member
Free Users as Team Members
Section titled “Free Users as Team Members”- A user on the Free plan can be invited as a MEMBER to teams owned by paid users (PAYG, Pro, Business)
- Free members consume minutes from the team owner’s plan
- Free users themselves cannot create teams (only PAYG+ users can create teams)
Adding Team Members
Section titled “Adding Team Members”Only OWNER can invite new team members.
- Open your workspace
- Navigate to Teams → [team card]
- Click the Add icon button (person_add)
- Enter the email and select role (ADMIN, MEMBER, or VIEWER)
- Click Send Invite
The invited user will receive an email invitation. They can accept the invitation to gain access to the team.
Role Selection Tips:
- Choose ADMIN for team leads and those who need to manage app settings and team members
- Choose MEMBER for developers and build operators
- Choose VIEWER for stakeholders, managers, and read-only access
Removing Team Members
Section titled “Removing Team Members”- Open your workspace
- Navigate to Teams → [team card]
- Find the member in the list
- Click the Remove button or icon
- Confirm removal
The member immediately loses access to the team and shared workspaces.
Permission Scenarios
Section titled “Permission Scenarios”Scenario 1: Indie Developer with Contractors
Section titled “Scenario 1: Indie Developer with Contractors”- OWNER: Indie developer
- MEMBERS: Contractors who need to monitor builds and download releases
Scenario 2: Small Team
Section titled “Scenario 2: Small Team”- OWNER: Engineering lead (manages billing, configuration)
- MEMBERS: 2-3 developers (run jobs, view logs)
Scenario 3: Enterprise Team
Section titled “Scenario 3: Enterprise Team”- OWNER: Tech lead (overall responsibility)
- ADMIN (future): DevOps engineer (expanded permissions)
- MEMBERS: Developers (daily CI usage)
- VIEWER: Product managers, stakeholders (monitoring only)
Scenario 4: Multi-Department Access
Section titled “Scenario 4: Multi-Department Access”- OWNER: Engineering lead
- MEMBERS: Backend and iOS developers
- VIEWER: QA team, product managers, client stakeholders
- Result: Everyone can see builds, only developers can execute
Best Practices
Section titled “Best Practices”Permission Assignment
Role Transitions
When a team member’s responsibilities change:
| From | To | Notes |
|---|---|---|
| VIEWER → MEMBER | Person now needs to rerun/cancel builds | Increase privileges |
| MEMBER → VIEWER | Person moving to non-technical role | Decrease privileges |
| MEMBER → OWNER | Rare; consider creating separate workspace instead | High responsibility |
External Access
- Contractors: Usually MEMBER; use VIEWER if they only need to monitor
- Clients/Stakeholders: Use VIEWER for maximum safety
- Vendors: VIEWER only, never OWNER
- Auditors: VIEWER to maintain read-only compliance