erp-core/docs/08-epicas/EPIC-MGN-003-roles.md

6.1 KiB

EPICA: EPIC-MGN-003 - Roles y Permisos (RBAC)

Metadata

Campo Valor
ID EPIC-MGN-003
Nombre Roles y Permisos (RBAC)
Modulo roles
Fase Fase 1 - Foundation
Prioridad P0 (Critico)
Estado Ready
Story Points 26
Sprint(s) Sprint 3 (RBAC completo)
Plan Detalle SPRINT-PLAN-FASE-1.md

Descripcion

Sistema de control de acceso basado en roles (RBAC) que permite definir roles jerarquicos, permisos granulares por recurso/accion, asignacion de roles a usuarios, roles especificos por tenant y herencia de permisos.

Es fundamental para garantizar que cada usuario solo pueda acceder a las funcionalidades que le corresponden segun su rol en la organizacion.


Objetivo de Negocio

Implementar un sistema de permisos que:

  • Garantice segregacion de funciones
  • Permita administracion granular de accesos
  • Soporte multiples niveles de roles
  • Sea auditable y trazable
  • Se adapte a diferentes estructuras organizacionales

Stakeholders

Rol Nombre/Equipo Responsabilidad
Product Owner Equipo Producto Definicion de roles base
Tech Lead Equipo Backend Implementacion de guards
Seguridad Equipo Infra Validacion de modelo RBAC
Administradores Clientes Feedback de usabilidad

Historias de Usuario

ID Historia Prioridad SP Estado
US-MGN003-001 Como superadmin, quiero crear roles personalizados para adaptar permisos a mi organizacion P0 5 Ready
US-MGN003-002 Como admin, quiero asignar roles a usuarios para definir sus permisos P0 3 Ready
US-MGN003-003 Como superadmin, quiero definir permisos granulares por recurso/accion para control fino P0 8 Ready
US-MGN003-004 Como admin, quiero ver que permisos tiene un usuario para verificar accesos P0 3 Ready
US-MGN003-005 Como sistema, quiero validar permisos en cada request para proteger recursos P0 5 Ready
US-MGN003-006 Como admin, quiero duplicar roles existentes para crear variaciones rapidamente P2 2 Backlog

Total Story Points: 26 SP


Criterios de Aceptacion de la Epica

Funcionales:

  • CRUD de roles con nombre, descripcion y jerarquia
  • Catalogo de permisos por modulo/recurso/accion
  • Asignacion multiple de roles a usuarios
  • Roles predefinidos: SuperAdmin, Admin, User, Viewer
  • Herencia de permisos entre roles
  • Visualizacion de permisos efectivos por usuario

No Funcionales:

  • Performance: Validacion de permisos < 5ms (con cache)
  • Seguridad: Principio de minimo privilegio
  • Usabilidad: Interfaz intuitiva para asignar permisos

Tecnicos:

  • Cobertura de tests > 85%
  • Guards implementados en backend
  • Directivas de permisos en frontend
  • Cache de permisos por usuario

Dependencias

Esta epica depende de:

Epica/Modulo Estado Bloqueante
EPIC-MGN-001 Auth Ready Si
EPIC-MGN-002 Users Ready Si

Esta epica bloquea:

Epica/Modulo Razon
EPIC-MGN-004 Tenants Roles por tenant
Todos los modulos Proteccion de endpoints

Desglose Tecnico

Database:

  • Schema: core_auth (extension)
  • Tablas: 4 (roles, permissions, role_permissions, user_roles)
  • Funciones: 2 (obtener_permisos_usuario, verificar_permiso)
  • RLS Policies: Si (roles por tenant)

Backend:

  • Modulo: roles
  • Entities: 4 (Role, Permission, RolePermission, UserRole)
  • Endpoints: 10 (CRUD roles + permisos + asignacion)
  • Guards: PermissionsGuard, RolesGuard
  • Decorators: @RequirePermission, @RequireRole
  • Tests: 30+

Frontend:

  • Paginas: 3 (RolesList, RoleDetail, UserPermissions)
  • Componentes: 8 (RoleForm, PermissionTree, RoleAssigner, etc.)
  • Stores: 1 (rolesStore)
  • Directivas: v-permission, v-role

Modelo de Permisos

Estructura de Permiso:
{modulo}:{recurso}:{accion}

Ejemplos:
- users:user:read
- users:user:create
- users:user:update
- users:user:delete
- roles:role:manage
- tenants:tenant:admin

Roles Predefinidos:

Rol Descripcion Permisos
SuperAdmin Acceso total al sistema .
TenantAdmin Admin de un tenant {tenant}:.
Manager Gestion operativa Lectura + escritura modulos operativos
User Usuario estandar Lectura + escritura limitada
Viewer Solo lectura ::read

Riesgos

Riesgo Probabilidad Impacto Mitigacion
Complejidad del modelo Media Alto POC previo, documentacion clara
Performance sin cache Alta Alto Redis cache de permisos
Escalabilidad de permisos Media Medio Wildcards, herencia

Definition of Ready (DoR)

  • Historias de usuario definidas
  • Criterios de aceptacion claros
  • Dependencias identificadas
  • Estimacion completada
  • Modelo de permisos aprobado
  • Sin bloqueadores activos

Definition of Done (DoD)

  • Codigo implementado y revisado
  • Tests pasando (unit, integration, e2e)
  • Guards funcionando en todos los endpoints
  • Cache implementado
  • Documentacion actualizada
  • Demo realizada
  • Product Owner aprobo

Documentacion Relacionada

  • Requerimientos: docs/03-requerimientos/RF-rbac/
  • Especificaciones: docs/04-modelado/especificaciones-tecnicas/ET-rbac-*.md
  • User Stories: docs/05-user-stories/MGN-003/
  • ADR: docs/97-adr/ADR-006-rbac-sistema-permisos.md

Historial

Fecha Cambio Autor
2025-12-05 Creacion de epica Requirements-Analyst

Creada por: Requirements-Analyst Fecha: 2025-12-05 Ultima actualizacion: 2025-12-05