Overview
Implement comprehensive Roles API module following v2.0 BaseAPI pattern for role and permission management.
Scope
API Endpoints
GET /api/3/roles - List all roles
GET /api/3/roles/{id} - Get role details
GET /api/3/privileges - List all privileges (if available)
Implementation Checklist
Key Features
- Built-in Roles: Global admin, security manager, site owner, user
- Privilege Sets: Detailed permission listings per role
- Custom Roles: Support for organization-specific roles (if available)
- Permission Checking: Validate user capabilities
- Helper Methods:
get_admin_role(), get_by_name(), has_privilege()
Role Types (Common)
- Global Administrator: Full system access
- Security Manager: Vulnerability and security management
- Site Owner: Manage specific sites
- Asset Owner: Manage specific asset groups
- User: Read-only or limited access
Estimated Size
~200-250 lines of code
Definition of Done
- RoleAPI module implemented with all endpoints
- Integrated with InsightVMClient as
client.roles
- Documented with usage examples
- Memory Bank updated
- PR created and ready for review
References
- Context7 API Documentation:
/riza/rapid7-insightvm-api-docs
- BaseAPI Pattern:
src/rapid7/api/base.py
- Related Module:
src/rapid7/api/users.py
Overview
Implement comprehensive Roles API module following v2.0 BaseAPI pattern for role and permission management.
Scope
API Endpoints
GET /api/3/roles- List all rolesGET /api/3/roles/{id}- Get role detailsGET /api/3/privileges- List all privileges (if available)Implementation Checklist
src/rapid7/api/roles.pydocs/ROLES_API.mdfeature/issue-{number}-roles-apiKey Features
get_admin_role(),get_by_name(),has_privilege()Role Types (Common)
Estimated Size
~200-250 lines of code
Definition of Done
client.rolesReferences
/riza/rapid7-insightvm-api-docssrc/rapid7/api/base.pysrc/rapid7/api/users.py