Skip to content

Roles

Rack Gateway defines five roles organized in a hierarchy. Each role includes specific permissions and may inherit permissions from other roles.

The hierarchy uses inheritance: each role automatically includes all permissions from roles below it.

Human Users

Purpose: Read-only access for monitoring and observability.

AttributeValue
LabelViewer
Inherits FromNone
DescriptionRead-only access to apps, builds, processes, and rack status
PermissionDescription
convox:app:listList all applications
convox:app:readView application details
convox:process:listList running processes
convox:process:readView process details
convox:instance:listList EC2/container instances
convox:instance:readView instance details
convox:log:readStream application logs
convox:build:listList builds
convox:build:readView build details
convox:rack:readView rack configuration
gateway:user:listView the team directory
gateway:api_token:readSee API tokens an admin has issued to them
  • Stakeholders: Product managers, executives viewing deployment status
  • Support Teams: Customer support checking application health
  • Auditors: External auditors reviewing system state
  • Developers (Limited): Engineers who only need to observe, not modify
  • Restart applications
  • Execute commands in containers
  • View environment variables (contain secrets)
  • Create builds or deployments
  • Modify any resources

Human Users

Purpose: Operational access for incident response and debugging.

AttributeValue
LabelOperations
Inherits FromViewer
DescriptionRestart apps, manage processes, and view environments

Beyond all Viewer permissions:

PermissionDescription
convox:app:restartRestart application processes
convox:process:startStart a process
convox:process:execExecute commands in containers
convox:process:terminateTerminate a process
convox:release:listList releases
convox:env:readView environment variables
  • On-Call Engineers: Incident response and debugging
  • SRE Teams: Operational troubleshooting
  • DevOps Engineers: Day-to-day operations without deployment access

Key Capability: Running Commands in Containers

Section titled “Key Capability: Running Commands in Containers”

convox:process:exec runs a command in a running process, and convox:process:start starts a one-off process:

Terminal window
rack-gateway exec <process-id> "cat /etc/hosts" -a myapp # convox:process:exec
rack-gateway run web "rails console" -a myapp # convox:process:start
  • Create builds
  • Promote releases to production
  • Modify environment variables
  • Create or delete applications
  • Manage users or settings

Human Users

Purpose: Full deployment access for engineers who ship code.

AttributeValue
LabelDeployer
Inherits FromOps
DescriptionFull deployment permissions including env updates

Beyond all Ops permissions:

PermissionDescription
convox:build:createCreate new builds
convox:object:createUpload build artifacts
convox:release:createCreate releases
convox:release:readView release details
convox:release:promotePromote releases to production
convox:env:setSet environment variables
convox:app:updateUpdate application settings
gateway:deploy_approval_request:createRequest deploy approval
gateway:deploy_approval_request:readView approval requests
gateway:api_token:createCreate API tokens for themselves
gateway:api_token:updateEdit their own API tokens
gateway:api_token:deleteDelete their own API tokens
convox:deploy:deploy_with_approvalLets their CI tokens deploy with approval

Deployers can issue CI/CD tokens for their own pipelines. A token can’t hold more than the deployer’s role, and stops working if the deployer is demoted or locked.

  • Software Engineers: Deploy code to production
  • DevOps Engineers: Full deployment workflow
  • Release Managers: Coordinate releases

Deployers can execute the complete deployment workflow:

Terminal window
# Build from source
rack-gateway build -a myapp
# Or deploy directly (build + promote)
rack-gateway deploy -a myapp
# Update environment variables
rack-gateway env set API_KEY=secret -a myapp
# Promote a specific release
rack-gateway releases promote RABCDEF -a myapp
  • Delete applications
  • Manage users and roles
  • Configure gateway settings
  • Access other users’ audit logs
  • Create or manage API tokens for other users

API Tokens Only

Purpose: Minimal permissions for automated deployment pipelines.

AttributeValue
LabelCI/CD
Inherits FromNone (standalone)
DescriptionRecommended scope for automation tokens (not assignable to human users)
PermissionDescription
convox:app:listList applications
convox:app:readView application details
convox:process:listList processes
convox:process:readView process details
convox:instance:listList instances
convox:instance:readView instance details
convox:rack:readView rack info
gateway:deploy_approval_request:createRequest deploy approval
gateway:deploy_approval_request:readView approval status
convox:deploy:deploy_with_approvalDeploy when approved
  • CI/CD Pipelines: CircleCI, GitHub Actions, Jenkins
  • Automated Testing: Integration test runners
  • Deployment Automation: Infrastructure-as-code tools

The CI/CD role is designed to work with Deploy Approvals:

  1. CI/CD pipeline creates a deploy approval request
  2. An admin reviews and approves it in the web UI or with rack-gateway deploy-approval approve (Slack posts the request with a link)
  3. The CI/CD pipeline deploys with deploy_with_approval
Terminal window
# In CI/CD pipeline
rack-gateway deploy-approval request --app myapp --git-commit "$GIT_SHA" \
--message "Deploy $GIT_SHA" --wait
rack-gateway deploy -a myapp

The Deployer role includes permissions CI/CD pipelines don’t need:

  • Container exec (convox:process:exec) - Security risk in automation
  • Environment variable access - Pipelines shouldn’t read production secrets
  • Direct deployment - Bypasses approval workflow

Human Users

Purpose: Complete administrative access for platform administrators.

AttributeValue
LabelAdmin
Inherits FromAll (wildcard)
DescriptionComplete access to all gateway operations
PermissionDescription
convox:*:*All Convox operations
gateway:*:*All Gateway operations
security:*:*Security operations (rack TLS certificate refresh)

The wildcard permissions grant access to everything, including:

  • All Convox operations (apps, builds, releases, etc.)
  • User management (create, update, delete users)
  • Role assignments
  • Gateway settings and configuration
  • Audit log access
  • API token management for all users
  • Destructive operations (delete apps, users)
  • Platform Administrators: Full system management
  • Security Team: Access reviews and incident investigation
  • Initial Setup: Configuring the gateway for first use
OperationPermission
Create usersgateway:user:create
Delete usersgateway:user:delete
Change user rolesgateway:user:update
View, edit or delete any user’s API tokensgateway:api_token:manage
View other users’ details and sessionsgateway:user:read
View and export everyone’s audit logsgateway:audit_log:read
List deploy approval requests and approve themgateway:deploy_approval_request:list, :approve
Run processes with privileged optionsconvox:process:run_privileged
Change or remove protected env vars (--allow-protected, MFA on every change)convox:env:set_protected
Delete applicationsconvox:app:delete
Configure gateway settingsgateway:setting_group:*

CapabilityViewerOpsDeployerCI/CDAdmin
View apps and processesYesYesYesYesYes
View logs and buildsYesYesYesNoYes
View releasesNoYesYesNoYes
View environment variablesNoYesYesNoYes
Restart applicationsNoYesYesNoYes
Exec into containersNoYesYesNoYes
Create buildsNoNoYesNoYes
Promote releasesNoNoYesNoYes
Set environment variablesNoNoYesNoYes
Request deploy approvalNoNoYesYesYes
Deploy with approval (API tokens)NoNoOwn tokensYesYes
View team directoryYesYesYesNoYes
View own profile, sessions and activityYesYesYesNoYes
Create API tokens for themselvesNoNoYesNoYes
Manage usersNoNoNoNoYes
View everyone’s audit logsNoNoNoNoYes
Delete applicationsNoNoNoNoYes
Configure settingsNoNoNoNoYes