permissions & roles

overview#

overlord uses role-based access control (RBAC) with two layers: system roles that govern global permissions, and project roles that scope access within individual projects. roles are hierarchical — higher roles inherit all permissions from lower ones.

system roles#

system roles are assigned to developer accounts and determine what actions they can perform across the entire overlord instance.

roleinheritsdescription
developerbase role for all users
leaddeveloperteam lead with worker management capabilities
adminallfull system access

permissions matrix#

permissiondeveloperleadadmin
create & view tasksyesyesyes
attach to terminalsyesyesyes
manage own profileyesyesyes
view assigned projectsyesyesyes
view all workersyesyes
drain / undrain workersyesyes
manage developersyes
manage projectsyes
manage botsyes
manage worker tokensyes
view audit logsyes
system settingsyes

project roles#

project roles control what a developer can do within a specific project. these are assigned per project and are independent of system roles.

roledescription
memberread access to project, can create tasks
maintainerfull project management

project permissions#

permissionmembermaintainer
view projectyesyes
create tasks in projectyesyes
update project configyes
manage project membersyes
manage git tokensyes
info

admins can access all projects without explicit membership. the project role check is bypassed entirely for admin system role.

authentication#

overlord supports three authentication methods:

methodlifetimeuse case
jwtaccess: 15 min, refresh: 7 daysweb dashboard, api sessions
personal access token (pat)no expiry (until revoked)cli tools, scripts, integrations
totp 2fa30s codesoptional second factor on login

jwt authentication uses a rotating refresh token — each refresh request issues a new access token and a new refresh token, invalidating the previous refresh token. pats authenticate with the same Authorization: Bearer <token> header format as jwts.

info

totp 2fa is optional per account. once enabled, the totpCode field is required on login. use any standard authenticator app (google authenticator, authy, etc.) to generate codes.

audit logging#

all privileged actions (developer management, project changes, worker operations, system settings) are recorded in the audit log. audit entries include the actor, action, target resource, and timestamp. only admins can view audit logs via the web dashboard or api.