Skip to content

RBAC (Role-Based Access Control)

FaultRay supports role-based access control for multi-team environments, controlling who can view models, run simulations, and modify configurations.

Overview

RBAC in FaultRay follows a role-permission model where users are assigned roles that grant specific permissions across resources.

Roles

Built-in Roles

Role Description Permissions
admin Full system access All operations
engineer Infrastructure team member Create/edit models, run simulations, view reports
viewer Read-only access View models, view reports
ci-bot CI/CD service account Run simulations, read models
auditor Compliance reviewer View reports, export compliance data

Custom Roles

Define custom roles in the configuration:

rbac:
  roles:
    sre-lead:
      permissions:
        - models:read
        - models:write
        - simulations:run
        - reports:read
        - reports:export
        - settings:read

    junior-engineer:
      permissions:
        - models:read
        - simulations:run
        - reports:read

Permissions

Permission Description
models:read View infrastructure models
models:write Create and edit models
models:delete Delete models
simulations:run Execute simulations
simulations:read View simulation results
reports:read View reports
reports:export Export reports (PDF, JSON)
settings:read View system settings
settings:write Modify system settings
users:manage Manage user accounts and roles

Configuration

API Key-based access

# Create an API key with a specific role
faultray auth create-key --role engineer --name "CI Pipeline"

# Output: API key with assigned permissions

OAuth/OIDC integration

auth:
  provider: oidc
  issuer: https://auth.example.com
  client_id: faultray-app
  role_mapping:
    "admin-group": admin
    "sre-team": engineer
    "security-team": auditor

Usage Example

from faultray.auth import RBACManager

rbac = RBACManager()

# Check permissions
if rbac.has_permission(user, "simulations:run"):
    engine.simulate()
else:
    raise PermissionError("Insufficient permissions to run simulations")

Audit Logging

All RBAC-controlled actions are logged with:

  • Timestamp
  • User identity
  • Action performed
  • Resource accessed
  • Result (allowed/denied)
faultray auth audit-log --last 24h