# Backlog del Modulo MGN-001: Auth ## Resumen | Campo | Valor | |-------|-------| | **Modulo** | MGN-001 | | **Nombre** | Auth - Autenticacion | | **Total User Stories** | 4 | | **Total Story Points** | 29 | | **Estado** | En documentacion | | **Fecha** | 2025-12-05 | --- ## User Stories ### Sprint 1 - Foundation (21 SP) | ID | Nombre | SP | Prioridad | Estado | Asignado | |----|--------|-----|-----------|--------|----------| | [US-MGN001-001](./US-MGN001-001.md) | Login con Email y Password | 8 | P0 | Ready | - | | [US-MGN001-002](./US-MGN001-002.md) | Logout y Cierre de Sesion | 5 | P0 | Ready | - | | [US-MGN001-003](./US-MGN001-003.md) | Renovacion Automatica de Tokens | 8 | P0 | Ready | - | ### Sprint 2 - Enhancement (8 SP) | ID | Nombre | SP | Prioridad | Estado | Asignado | |----|--------|-----|-----------|--------|----------| | [US-MGN001-004](./US-MGN001-004.md) | Recuperacion de Password | 8 | P1 | Ready | - | --- ## Roadmap Visual ``` Sprint 1 Sprint 2 ├─────────────────────────────────┼─────────────────────────────────┤ │ US-001: Login [8 SP] │ US-004: Password Recovery [8 SP]│ │ US-002: Logout [5 SP] │ │ │ US-003: Token Refresh [8 SP] │ │ ├─────────────────────────────────┼─────────────────────────────────┤ │ Total: 21 SP │ Total: 8 SP │ └─────────────────────────────────┴─────────────────────────────────┘ ``` --- ## Dependencias entre Stories ``` US-MGN001-001 (Login) │ ├──────────────────┐ │ │ ▼ ▼ US-MGN001-002 (Logout) US-MGN001-003 (Refresh) │ │ ▼ US-MGN001-004 (Password Recovery) │ └── Usa logout-all ``` --- ## Criterios de Aceptacion del Modulo ### Funcionalidad - [ ] Los usuarios pueden autenticarse con email y password - [ ] Los usuarios pueden cerrar sesion de forma segura - [ ] Las sesiones se renuevan automaticamente - [ ] Los usuarios pueden recuperar su password ### Seguridad - [ ] Passwords hasheados con bcrypt (salt rounds = 12) - [ ] Tokens JWT firmados con RS256 - [ ] Refresh token en cookie httpOnly - [ ] Deteccion de token replay - [ ] Rate limiting implementado - [ ] Bloqueo de cuenta por intentos fallidos - [ ] No se revela existencia de emails ### Performance - [ ] Login < 500ms - [ ] Refresh < 200ms - [ ] Blacklist en Redis ### Auditoria - [ ] Todos los logins registrados - [ ] Todos los logouts registrados - [ ] Intentos fallidos registrados - [ ] Cambios de password registrados --- ## Metricas del Modulo ### Cobertura de Codigo | Capa | Objetivo | Actual | |------|----------|--------| | Backend Services | 80% | - | | Backend Controllers | 70% | - | | Frontend Services | 70% | - | | Frontend Components | 60% | - | ### Performance | Endpoint | Objetivo | P95 | |----------|----------|-----| | POST /auth/login | < 500ms | - | | POST /auth/refresh | < 200ms | - | | POST /auth/logout | < 200ms | - | | POST /password/request-reset | < 1000ms | - | --- ## Riesgos | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|--------------|---------|------------| | Vulnerabilidad en JWT | Media | Alto | Code review, testing seguridad | | Token replay attack | Baja | Alto | Deteccion de familia, rotacion | | Email delivery failure | Media | Medio | Retry queue, monitoring | | Brute force en login | Media | Medio | Rate limiting, CAPTCHA | --- ## Definition of Done del Modulo - [ ] Todas las User Stories completadas - [ ] Tests unitarios > 80% coverage - [ ] Tests e2e pasando - [ ] Documentacion Swagger completa - [ ] Code review aprobado - [ ] Security review aprobado - [ ] Performance review aprobado - [ ] Despliegue en staging exitoso - [ ] UAT aprobado --- ## Notas del Product Owner - El login es bloqueante para todo el proyecto - Password recovery puede esperar a Sprint 2 - Priorizar seguridad sobre features adicionales - Considerar 2FA para fase posterior (no en MVP) --- ## Historial | Version | Fecha | Autor | Cambios | |---------|-------|-------|---------| | 1.0 | 2025-12-05 | System | Creacion inicial con 4 US |