_MAP: MGN-007 - Audit
Modulo: MGN-007
Nombre: Auditoria y Logs
Fase: 02 - Core Business
Story Points: 30 SP
Estado: Implementado
Sprint: 7
Ultima actualizacion: 2026-01-07
Resumen
Sistema completo de auditoria con Audit Trail automatico (TypeORM Subscriber), Access Logs, Security Events con deteccion de brute force y anomalias.
Metricas
| Metrica |
Valor |
| Story Points |
30 SP |
| Requerimientos (RF) |
4 |
| Especificaciones (ET) |
3 |
| User Stories (US) |
4 |
| Tablas DB |
3 |
| Endpoints API |
15 |
| Tests |
- |
Requerimientos Funcionales
Indice completo: INDICE-RF-AUDIT.md
Especificaciones Tecnicas
Historias de Usuario
| ID |
Titulo |
Estado |
| US-MGN007-001 |
Audit Trail |
Implementado |
| US-MGN007-002 |
Access Logs |
Implementado |
| US-MGN007-003 |
Security Events |
Implementado |
| US-MGN007-004 |
Consultas y Dashboard |
Implementado |
Implementacion
Database (DDL: 13-audit.sql)
| Objeto |
Tipo |
Schema |
| audit_logs |
Tabla |
audit |
| access_logs |
Tabla |
audit |
| security_events |
Tabla |
audit |
Enums y Types
| Enum |
Valores |
| audit_action |
INSERT, UPDATE, DELETE |
| access_event_type |
LOGIN_SUCCESS, LOGIN_FAILED, LOGOUT, TOKEN_REFRESH, PASSWORD_CHANGE, PASSWORD_RESET, API_ACCESS |
| security_severity |
LOW, MEDIUM, HIGH, CRITICAL |
Backend (src/modules/audit/)
| Objeto |
Tipo |
Path |
| AuditService |
Service |
src/modules/audit/audit.service.ts |
| AccessLogsService |
Service |
src/modules/audit/access-logs.service.ts |
| SecurityEventsService |
Service |
src/modules/audit/security-events.service.ts |
| AuditController |
Controller |
src/modules/audit/audit.controller.ts |
| AccessLogsController |
Controller |
src/modules/audit/access-logs.controller.ts |
| SecurityEventsController |
Controller |
src/modules/audit/security-events.controller.ts |
| AuditSubscriber |
Subscriber |
src/modules/audit/audit.subscriber.ts |
| AuditContext |
Context |
src/modules/audit/audit-context.ts |
Entities
| Entity |
Path |
| AuditLog |
src/modules/audit/entities/audit-log.entity.ts |
| AccessLog |
src/modules/audit/entities/access-log.entity.ts |
| SecurityEvent |
src/modules/audit/entities/security-event.entity.ts |
Utilities
| Utility |
Path |
Proposito |
| BruteForceDetector |
src/modules/audit/utils/brute-force-detector.ts |
Detecta ataques de fuerza bruta |
| AnomalyDetector |
src/modules/audit/utils/anomaly-detector.ts |
Detecta patrones anomalos |
Routes
| Route |
Method |
Endpoint |
| AuditRoutes |
GET |
/api/audit/logs |
| AccessLogsRoutes |
GET |
/api/audit/access-logs |
| SecurityEventsRoutes |
GET/PATCH |
/api/audit/security-events |
Caracteristicas Implementadas
- TypeORM Subscriber: Captura automatica de INSERT/UPDATE/DELETE
- AsyncLocalStorage: Propagacion de contexto (tenant, user, IP)
- Brute Force Detection: Detecta intentos fallidos de login
- Anomaly Detection: Detecta IPs nuevas, cambios de ubicacion
- Cleanup Functions: Limpieza automatica de logs antiguos
- RLS Policies: Aislamiento por tenant
Dependencias
Depende de: MGN-001 (Auth), MGN-002 (Users), MGN-004 (Tenants)
Requerido por: Ninguno (transversal)
Trazabilidad
Ver: TRACEABILITY.yml
Changelog
| Fecha |
Sprint |
Cambios |
| 2026-01-07 |
Sprint 7 |
Implementacion completa: Audit Trail, Access Logs, Security Events |
| 2025-12-05 |
- |
Documentacion RF inicial |
Generado por: Requirements-Analyst
Implementado por: Backend-Agent (Sprint 7)
Fecha: 2026-01-07