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
  • 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

The convox:process:exec permission allows running commands inside containers:

Terminal window
rack-gateway run web "rails console" -a myapp
rack-gateway run web "cat /etc/hosts" -a myapp
  • 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:app:restartRestart applications
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:readView environment variables
convox:env:setSet environment variables
convox:app:updateUpdate application settings
gateway:deploy_approval_request:createRequest deploy approval
gateway:deploy_approval_request:readView approval requests
  • 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 audit logs
  • Create 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. Human approver reviews and approves in Slack or web UI
  3. CI/CD pipeline promotes the release with deploy_with_approval
Terminal window
# In CI/CD pipeline
rack-gateway deploy-approval request --app myapp --commit <sha>
# ... wait for approval ...
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

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 all API tokensgateway:api_token:list
Delete any API tokengateway:api_token:delete
View audit logsgateway:*:*
Delete applicationsconvox:app:delete
Configure gateway settingsgateway:setting_group:*

CapabilityViewerOpsDeployerCI/CDAdmin
View apps, processes, logsYesYesYesYesYes
View buildsYesYesYesYesYes
View releasesNoYesYesNoYes
View environment variablesNoYesYesNoYes
Restart applicationsNoYesYesNoYes
Exec into containersNoYesYesNoYes
Create buildsNoNoYesNoYes
Promote releasesNoNoYesNoYes
Set environment variablesNoNoYesNoYes
Request deploy approvalNoNoYesYesYes
Deploy with approvalNoNoNoYesYes
Manage usersNoNoNoNoYes
View audit logsNoNoNoNoYes
Delete applicationsNoNoNoNoYes
Configure settingsNoNoNoNoYes