Skip to content

Role System

Saros Industries edited this page Jun 28, 2025 · 1 revision

πŸ‘₯ Role System

The BMAD Enterprise role system is built on top of the framework's core authentication and authorization modules, providing granular access control for business model development workflows.

Role Hierarchy

1. BMAD Administrator

{
  role: 'bmad.administrator',
  permissions: [
    'bmad.*.create',
    'bmad.*.read',
    'bmad.*.update',
    'bmad.*.delete',
    'bmad.users.manage',
    'bmad.config.modify',
    'bmad.audit.access'
  ],
  framework_level: 'system_admin',
  inherits: ['framework.admin']
}

Capabilities:

  • Full BMAD system configuration
  • User role assignment and management
  • System-wide analytics and reporting
  • Compliance and audit oversight
  • Integration management

2. Business Strategist

{
  role: 'bmad.strategist',
  permissions: [
    'bmad.models.create',
    'bmad.models.read',
    'bmad.models.update',
    'bmad.analysis.advanced',
    'bmad.reports.generate',
    'bmad.teams.manage'
  ],
  framework_level: 'advanced_user',
  inherits: ['framework.user']
}

Capabilities:

  • Business model creation and modification
  • Advanced analysis and modeling
  • Team coordination and management
  • Strategic planning and forecasting
  • Cross-project insights

3. Business Analyst

{
  role: 'bmad.analyst',
  permissions: [
    'bmad.models.read',
    'bmad.models.update',
    'bmad.analysis.standard',
    'bmad.data.export',
    'bmad.reports.create'
  ],
  framework_level: 'standard_user',
  inherits: ['framework.user']
}

Capabilities:

  • Business model analysis and documentation
  • Data collection and validation
  • Report generation and presentation
  • Market research integration
  • Performance tracking

4. Project Manager

{
  role: 'bmad.project_manager',
  permissions: [
    'bmad.projects.create',
    'bmad.projects.manage',
    'bmad.teams.coordinate',
    'bmad.deadlines.set',
    'bmad.progress.track'
  ],
  framework_level: 'manager',
  inherits: ['framework.user']
}

Capabilities:

  • Project lifecycle management
  • Resource allocation and scheduling
  • Progress monitoring and reporting
  • Team coordination
  • Stakeholder communication

5. Stakeholder

{
  role: 'bmad.stakeholder',
  permissions: [
    'bmad.models.read',
    'bmad.feedback.provide',
    'bmad.comments.create',
    'bmad.notifications.receive'
  ],
  framework_level: 'viewer',
  inherits: ['framework.guest']
}

Capabilities:

  • View assigned business models
  • Provide feedback and comments
  • Receive project notifications
  • Participate in review processes

Role Implementation

// Framework integration for BMAD roles
class BMADRoleManager {
  constructor(frameworkAuth) {
    this.authService = frameworkAuth;
    this.roleDefinitions = new Map();
    this.initialize();
  }

  initialize() {
    // Register BMAD-specific roles with framework
    this.authService.registerRoles([
      'bmad.administrator',
      'bmad.strategist',
      'bmad.analyst',
      'bmad.project_manager',
      'bmad.stakeholder'
    ]);

    // Set up permission inheritance
    this.authService.setRoleHierarchy({
      'bmad.administrator': ['bmad.strategist', 'bmad.project_manager'],
      'bmad.strategist': ['bmad.analyst'],
      'bmad.project_manager': ['bmad.stakeholder'],
      'bmad.analyst': ['bmad.stakeholder']
    });
  }

  async assignRole(userId, role, context = {}) {
    // Validate role assignment
    if (!this.roleDefinitions.has(role)) {
      throw new Error(`Invalid BMAD role: ${role}`);
    }

    // Use framework's role assignment with BMAD context
    return await this.authService.assignRole(userId, role, {
      module: 'bmad',
      ...context
    });
  }

  async checkPermission(userId, permission, resource = null) {
    // Check both framework and BMAD-specific permissions
    const hasFrameworkPermission = await this.authService.hasPermission(
      userId, 
      permission
    );

    if (hasFrameworkPermission) return true;

    // Check BMAD-specific permission logic
    return await this.checkBMADPermission(userId, permission, resource);
  }

  async getUserContext(userId) {
    const user = await this.authService.getUser(userId);
    const roles = await this.authService.getUserRoles(userId, 'bmad');
    
    return {
      user,
      roles,
      permissions: await this.getUserPermissions(userId),
      accessible_projects: await this.getAccessibleProjects(userId),
      team_memberships: await this.getTeamMemberships(userId)
    };
  }
}

πŸš€ Getting Started


🧠 Core Concepts


⚑ Features


πŸ“– Guides


πŸ“‹ Reference


πŸ”Œ Advanced

MCP Integration

BMAD Enterprise


πŸ”§ Troubleshooting

Quick Navigation

🚨 Emergency Procedures

πŸ“‹ Common Issues

Installation & Setup

  • Installation Issues
    • Node.js Version Compatibility
    • Package Installation Failures
    • Framework Dependencies Missing
    • Database Connection Issues
    • Port Conflicts
    • Environment Setup Issues
    • Build and Development Issues
    • Framework CLI Issues

Configuration & Runtime

  • Configuration & Runtime Issues
    • Framework Configuration Problems
    • Runtime Performance Issues
    • Module Loading and Plugin Issues
    • Database and Storage Issues
    • Memory Leaks and High Memory Usage
    • High CPU Usage

BMAD Module

  • BMAD Module Issues
    • BMAD Module Initialization Problems
    • Business Model Canvas Issues
    • Stakeholder Management Issues
    • Analytics and Reporting Issues
    • Performance Optimization

Database & API

  • Database & API Issues
    • Database Connection Problems
    • Database Migration Issues
    • API Performance and Reliability Issues
    • Data Consistency Issues
    • Transaction Problems

Performance & Memory

Security & Authentication

  • Security & Authentication Issues
    • Authentication Failures
    • Authorization Problems
    • JWT Token Issues
    • Session Management
    • CORS and Security Headers
    • SSL/TLS Configuration

Deployment & Production

  • Deployment & Production Issues
    • Production Deployment Failures
    • Environment Configuration
    • Load Balancing Issues
    • Monitoring and Logging
    • Backup and Recovery

Information to Gather

When reporting issues, please include:

  • Framework version (npm list @cursoriper/core)
  • Node.js version (node --version)
  • Operating system and version
  • Error messages and stack traces
  • Steps to reproduce the issue
  • Configuration files (sanitized)
  • Recent changes or deployments

Tech Docs & Suport


πŸ“ž Support & Community


πŸ“‹ Release Notes

Last Updated: June 28, 2025
Framework Version: CursorRIPER.sigma v1.0+

For the original verbose framework, see CursorRIPER

← Back to Home

Clone this wiki locally