RBAC & Permissions
Role-Based Access Control (RBAC) in ChainLaunch Pro allows you to manage who can access what resources and perform which actions. This guide covers user roles, permissions, and how to configure access control for your blockchain networks.
Overview
ChainLaunch Pro includes a comprehensive permission system with:
- 4 built-in roles (Admin, Operator, Viewer, MCP)
- 44 granular permissions across all features
- Custom roles for enterprise organizations
- Hierarchical access control for multi-tenant scenarios
Built-In Roles
Admin Role
Full system access and user management
Admins have unrestricted access to all features including:
- Create, read, update, delete all resources (networks, nodes, keys)
- Manage users and roles
- Configure system settings
- Access audit logs
- Manage backup and restore
- Control monitoring and notifications
Permissions: All 44 permissions granted
Operator Role
Network and node management without user administration
Operators can:
- Create and manage networks (Fabric and Besu)
- Create and manage nodes
- Execute node operations (start, stop, restart)
- Manage keys and certificates
- Deploy chaincodes
- Create and manage proposals
- View all resources
- Cannot manage users or modify system settings
Permissions: All permissions except user and system management
Viewer Role
Read-only access to all resources
Viewers can:
- View all networks and nodes
- View metrics and monitoring data
- View audit logs (read-only)
- View keys and certificates (metadata only)
- Cannot perform any modifications or operations
Permissions: All READ permissions only
MCP Role
Limited permissions for AI agent operations
The MCP (Model Context Protocol) role is designed for AI agents and automated tools:
- Execute MCP tools with restrictions
- Read resources via MCP
- Access MCP streams
- Cannot modify core infrastructure
Permissions:
MCP_TOOL_EXECUTEMCP_PROMPT_EXECUTEMCP_RESOURCE_READMCP_STREAM_ACCESS
Permission Categories
ChainLaunch Pro organizes 44 permissions into the following categories:
Network Permissions
NETWORK_CREATE- Create new blockchain networksNETWORK_READ- View network detailsNETWORK_UPDATE- Modify network configurationNETWORK_DELETE- Remove networks
Node Permissions
NODE_CREATE- Create new blockchain nodesNODE_READ- View node detailsNODE_UPDATE- Modify node configurationNODE_DELETE- Remove nodesNODE_EXECUTE- Start, stop, restart nodes
Key Permissions
KEY_CREATE- Generate cryptographic keysKEY_READ- View key metadataKEY_UPDATE- Modify key propertiesKEY_DELETE- Remove keysKEY_SIGN- Sign data with keys
Provider Permissions
PROVIDER_CREATE- Create key providersPROVIDER_READ- View provider settingsPROVIDER_UPDATE- Modify provider configurationPROVIDER_DELETE- Remove providers
Organization Permissions (Fabric)
ORGANIZATION_CREATE- Create new organizationsORGANIZATION_READ- View organization detailsORGANIZATION_UPDATE- Modify organization settingsORGANIZATION_DELETE- Remove organizations
Chaincode Permissions (Fabric)
CHAINCODE_CREATE- Package and install chaincodeCHAINCODE_READ- View chaincode detailsCHAINCODE_UPDATE- Approve chaincode for organizationsCHAINCODE_DELETE- Remove chaincodeCHAINCODE_EXECUTE- Invoke chaincode functions
Proposal Permissions (Fabric)
PROPOSAL_CREATE- Create governance proposalsPROPOSAL_READ- View proposal detailsPROPOSAL_SIGN- Sign proposalsPROPOSAL_SUBMIT- Submit proposals to network
User Permissions
USER_CREATE- Invite new usersUSER_READ- View user informationUSER_UPDATE- Modify user settingsUSER_DELETE- Remove users
API Key Permissions
API_KEY_CREATE- Generate API keysAPI_KEY_READ- View API key informationAPI_KEY_REVOKE- Revoke API keys
System Permissions
SYSTEM_CONFIG- Modify system configurationSYSTEM_BACKUP- Create backupsSYSTEM_RESTORE- Restore from backupsSYSTEM_MONITOR- Access monitoring and health
Metrics Permissions
METRICS_DEPLOY- Deploy monitoring systemsMETRICS_MANAGE- Manage metrics collectionMETRICS_JOB_EDIT- Configure metrics jobs
MCP Permissions
MCP_TOOL_EXECUTE- Execute MCP toolsMCP_PROMPT_EXECUTE- Execute MCP promptsMCP_RESOURCE_READ- Read MCP resourcesMCP_STREAM_ACCESS- Access MCP streams
Creating Custom Roles
Custom roles allow you to define specific permission sets for your organization.
Via UI
- Navigate to Settings → Roles
- Click "Create Role"
- Enter role name and description
- Select permissions from the available list
- Click "Create"
Via API
curl -X POST http://localhost:8080/api/v1/roles \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Network Engineer",
"description": "Can manage Fabric networks and nodes",
"permissions": [
"NETWORK_CREATE",
"NETWORK_READ",
"NETWORK_UPDATE",
"NODE_CREATE",
"NODE_READ",
"NODE_UPDATE",
"NODE_EXECUTE"
]
}'
Managing User Roles
Assign Role to User
Via UI:
- Go to Settings → Users
- Click the user to edit
- Select one or more roles
- Click Save
Via API:
curl -X POST http://localhost:8080/api/v1/users/{userId}/roles \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"roleIds": ["admin-role-id", "custom-role-id"]
}'
Remove Role from User
Via UI:
- Go to Settings → Users
- Click the user to edit
- Deselect the role
- Click Save
Via API:
curl -X DELETE http://localhost:8080/api/v1/users/{userId}/roles/{roleId} \
-H "Authorization: Bearer YOUR_API_KEY"
Permission Precedence
When a user is assigned multiple roles, permissions are additive — if any role grants a permission, the user has it.
Example:
- User assigned to both "Viewer" and "Operator" roles
- User can perform all Operator actions + Viewer read-only access
- Most permissive role wins
API Keys & Permissions
API keys can be created with a subset of permissions for automated systems and integrations.
Creating an API Key with Limited Permissions
Via UI:
- Go to Settings → API Keys
- Click Generate New Key
- Enter key name and expiration
- Select specific permissions (optional)
- Click Generate
Via API:
curl -X POST http://localhost:8080/api/v1/api-keys \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "CI/CD Pipeline",
"expiresAt": "2025-12-31T23:59:59Z",
"permissions": [
"NODE_READ",
"NETWORK_READ",
"SYSTEM_MONITOR"
]
}'
Permission Checking Flow
When you perform an action in ChainLaunch Pro:
- Authentication - System verifies your identity (user session, API key, or OIDC token)
- Role Resolution - System retrieves all roles assigned to your user
- Permission Aggregation - System combines permissions from all roles
- Permission Check - System verifies if required permission is in your set
- Action Execution - If authorized, action proceeds; otherwise, 403 Forbidden is returned
Audit Log Integration
All permission-related actions are logged:
- Role assignments
- Role modifications
- Permission changes
- Permission denials
- API key generation and revocation
Access audit logs in Settings → Audit Logs to review who has what permissions and when they changed.
Best Practices
1. Principle of Least Privilege
Assign only the minimum permissions users need to perform their job.
✅ GOOD: Operator assigned only NETWORK_READ, NODE_READ, NODE_EXECUTE
❌ BAD: Everyone gets Admin role
2. Use Custom Roles
Create roles matching your organizational structure rather than adding everyone as Admin.
Examples:
- "Network Manager" - Network + Node management
- "Developer" - Chaincode development + testing
- "DevOps" - Infrastructure + monitoring
- "Auditor" - Read-only + audit log access
3. Rotate API Keys Regularly
Set expiration dates for API keys and rotate them periodically.
✅ GOOD: 90-day expiration with quarterly rotation
❌ BAD: No expiration, never rotated
4. Monitor Permission Changes
Regularly review audit logs for unexpected permission changes.
# Query permission changes from last 30 days
GET /api/v1/audit-logs?action=permission_changed&days=30
5. Use Different Keys for Different Services
Don't reuse API keys across multiple services.
✅ GOOD:
- monitoring-api-key (metrics access only)
- ci-cd-api-key (deployment access only)
❌ BAD:
- shared-api-key (used everywhere)
Troubleshooting
User Can't Access a Resource
- Check role assignment - Verify user has appropriate role
- Check permissions - Verify role includes required permission
- Check audit logs - Look for permission denial entries
- Verify inheritance - Confirm role changes have propagated
API Key Returns 403 Forbidden
- Check key expiration - Verify key hasn't expired
- Check key permissions - Verify key has required permission
- Check API key revocation - Verify key hasn't been revoked
- Check authentication - Verify correct format:
Authorization: Bearer YOUR_API_KEY
Permission Changes Not Taking Effect
- Clear browser cache - Permission cache may be stale
- Log out and back in - Force session refresh
- Check propagation delay - Changes may take up to 1 minute to propagate
- Verify role assignment - Confirm changes were saved in database
Migration from Previous Versions
If upgrading from ChainLaunch Pro without RBAC:
- All existing users are assigned to Admin role by default
- Review and reassign roles to match your security policy
- Create custom roles matching your organizational structure
- Gradually transition users to appropriate roles
- Audit all permission assignments in Activity Logs