Skip to content

Roles and Permissions (RBAC)

Oore CI uses role-based access control with four roles. Each user has exactly one role.

Roles

RoleDescription
ownerInstance creator. Full access to everything. Exactly one per instance.
adminFull management access. Can manage users, settings, and all project operations.
developerCan create and manage projects, configure pipelines, trigger builds, and download artifacts.
qa_viewerRead-only access. Can view builds and download artifacts but cannot modify anything.

Permission matrix

PermissionOwnerAdminDeveloperQA Viewer
Users
View user listYesYesNoNo
Invite usersYesYesNoNo
Change user rolesYesYesNoNo
Disable/enable usersYesYesNoNo
Settings
View instance settingsYesYesNoNo
Modify artifact storageYesYesNoNo
Modify instance preferencesYesYesNoNo
Manage integrationsYesYesNoNo
Projects
List projectsYesYesYesYes
Create projectsYesYesYesNo
Edit projectsYesYesYesNo
Delete projectsYesYesNoNo
Pipelines
List pipelinesYesYesYesYes
Create/edit pipelinesYesYesYesNo
Delete pipelinesYesYesNoNo
Configure signingYesYesYesNo
Builds
View buildsYesYesYesYes
Trigger buildsYesYesYesNo
Cancel buildsYesYesYesNo
View build logsYesYesYesYes
Artifacts
List artifactsYesYesYesYes
Download artifactsYesYesYesYes
Runners
View runnersYesYesYesNo
Register runnersYesYesNoNo

User statuses

StatusDescription
activeUser has signed in at least once and can access the system
invitedUser has been invited but hasn't signed in yet
disabledUser account has been deactivated by an admin/owner

Role assignment rules

  • The owner role is assigned during setup and cannot be changed via the API
  • Admins can change roles for developers and QA viewers
  • Owners can change any user's role (except their own)
  • There is exactly one owner per instance
  • New users are assigned a role at invitation time

Enforcement

RBAC is enforced at the API level. Every authenticated request is checked against the user's role before processing. Insufficient permissions return 403 Forbidden with code forbidden.

Audit events

Role and user changes are logged:

EventTriggered when
user_invitedA new user is invited
role_changedA user's role is modified
user_disabledA user is disabled
user_enabledA disabled user is re-enabled
user_activatedAn invited user signs in for the first time
owner_createdThe owner account is created during setup

Self-hosted mobile CI, built for Flutter.