# Backlog del Modulo MGN-003: Roles/RBAC

## Resumen

| Campo | Valor |
|-------|-------|
| **Modulo** | MGN-003 |
| **Nombre** | Roles/RBAC - Control de Acceso |
| **Total User Stories** | 4 |
| **Total Story Points** | 29 |
| **Estado** | En documentacion |
| **Fecha** | 2025-12-05 |

---

## User Stories

### Sprint 2 - Core RBAC (29 SP)

| ID | Nombre | SP | Prioridad | Estado |
|----|--------|-----|-----------|--------|
| [US-MGN003-001](./US-MGN003-001.md) | CRUD de Roles | 8 | P0 | Ready |
| [US-MGN003-002](./US-MGN003-002.md) | Gestion de Permisos | 5 | P0 | Ready |
| [US-MGN003-003](./US-MGN003-003.md) | Asignacion Roles-Usuarios | 8 | P0 | Ready |
| [US-MGN003-004](./US-MGN003-004.md) | Control de Acceso RBAC | 8 | P0 | Ready |

---

## Stories Adicionales (No incluidas en scope inicial)

| ID | Nombre | SP | Prioridad | Estado |
|----|--------|-----|-----------|--------|
| US-MGN003-005 | Roles Temporales | 3 | P2 | Backlog |
| US-MGN003-006 | Herencia de Roles | 5 | P2 | Backlog |
| US-MGN003-007 | Auditoria de Cambios RBAC | 3 | P1 | Backlog |
| US-MGN003-008 | Permisos Contextuales | 5 | P2 | Backlog |

---

## Roadmap Visual

```
Sprint 2
├─────────────────────────────────────────────────────────────────┤
│ US-001: CRUD de Roles                                   [8 SP]  │
│ US-002: Gestion de Permisos                             [5 SP]  │
│ US-003: Asignacion Roles-Usuarios                       [8 SP]  │
│ US-004: Control de Acceso RBAC                          [8 SP]  │
├─────────────────────────────────────────────────────────────────┤
│ Total: 29 SP                                                     │
└─────────────────────────────────────────────────────────────────┘
```

---

## Dependencias entre Stories

```
                    ┌─────────────────┐
                    │  MGN-001 Auth   │
                    │  (JWT/Login)    │
                    └────────┬────────┘
                             │
                             ▼
              ┌──────────────────────────┐
              │    US-MGN003-002         │
              │  Gestion de Permisos     │
              │  (Catalogo de permisos)  │
              └────────────┬─────────────┘
                           │
                           ▼
              ┌──────────────────────────┐
              │    US-MGN003-001         │
              │    CRUD de Roles         │
              │  (Roles con permisos)    │
              └────────────┬─────────────┘
                           │
                           ▼
              ┌──────────────────────────┐
              │    US-MGN003-003         │
              │  Asignacion Roles        │
              │  (Usuarios con roles)    │
              └────────────┬─────────────┘
                           │
                           ▼
              ┌──────────────────────────┐
              │    US-MGN003-004         │
              │  Control de Acceso       │
              │  (Guards y decoradores)  │
              └────────────┬─────────────┘
                           │
                           ▼
              ┌──────────────────────────┐
              │   Todos los endpoints    │
              │   del sistema usan RBAC  │
              └──────────────────────────┘
```

---

## Criterios de Aceptacion del Modulo

### Funcionalidad

- [ ] Admins pueden crear, listar, editar y eliminar roles personalizados
- [ ] Roles built-in no pueden eliminarse ni modificarse (solo extender)
- [ ] Permisos se muestran agrupados por modulo
- [ ] Usuarios pueden tener multiples roles
- [ ] Permisos efectivos son la union de todos los roles
- [ ] Wildcards funcionan correctamente (users:* -> users:read, etc.)
- [ ] Control de acceso en TODOS los endpoints protegidos

### Seguridad

- [ ] Solo super_admin puede asignar rol super_admin
- [ ] Al menos un super_admin debe existir siempre
- [ ] Errores 403 no revelan que permiso falta
- [ ] Logs de acceso denegado para auditoria
- [ ] Cache de permisos se invalida al cambiar roles

### Performance

- [ ] Permisos cacheados por 5 minutos
- [ ] Validacion de permisos < 10ms (desde cache)
- [ ] Invalidacion de cache inmediata

---

## Estimacion Total

| Capa | Story Points |
|------|--------------|
| Backend: Endpoints | 10 |
| Backend: Guards/Decorators | 8 |
| Backend: Cache | 4 |
| Backend: Tests | 7 |
| Frontend: Pages | 8 |
| Frontend: Components | 6 |
| Frontend: Tests | 5 |
| **Total** | **48** |

> Nota: Las 4 US principales suman 29 SP. La estimacion detallada de 48 SP incluye integracion y overhead.

---

## Definition of Done del Modulo

- [ ] Todas las User Stories completadas
- [ ] Permisos seeded en base de datos
- [ ] Roles built-in creados para cada tenant
- [ ] Guards aplicados a todos los endpoints existentes
- [ ] Tests unitarios > 80% coverage
- [ ] Tests e2e de flujos RBAC
- [ ] Documentacion Swagger completa
- [ ] Code review aprobado
- [ ] Security review aprobado
- [ ] Despliegue en staging exitoso
- [ ] UAT aprobado

---

## Riesgos y Mitigaciones

| Riesgo | Impacto | Probabilidad | Mitigacion |
|--------|---------|--------------|------------|
| Performance de validacion | Alto | Media | Cache de permisos |
| Cache desincronizado | Alto | Baja | Invalidacion inmediata |
| Configuracion incorrecta | Medio | Media | Tests exhaustivos |
| Bloqueo de usuarios | Alto | Baja | Super Admin bypass |

---

## Historial

| Version | Fecha | Autor | Cambios |
|---------|-------|-------|---------|
| 1.0 | 2025-12-05 | System | Creacion inicial con 4 US |
