171 lines
5.0 KiB
Markdown
171 lines
5.0 KiB
Markdown
# EPICA: EPIC-MGN-007 - Auditoria
|
|
|
|
## Metadata
|
|
|
|
| Campo | Valor |
|
|
|-------|-------|
|
|
| **ID** | EPIC-MGN-007 |
|
|
| **Nombre** | Auditoria y Trazabilidad |
|
|
| **Modulo** | audit |
|
|
| **Fase** | Fase 3 - Extended |
|
|
| **Prioridad** | P2 |
|
|
| **Estado** | Backlog |
|
|
| **Story Points** | 13 |
|
|
| **Sprint(s)** | Sprint 13 |
|
|
|
|
---
|
|
|
|
## Descripcion
|
|
|
|
Sistema de auditoria que registra automaticamente todos los cambios en entidades del sistema, historial de logins, y permite exportar logs para cumplimiento normativo. Soporta retencion configurable y alertas de actividad sospechosa.
|
|
|
|
---
|
|
|
|
## Objetivo de Negocio
|
|
|
|
Proveer auditoria que:
|
|
- Garantice trazabilidad de cambios para compliance
|
|
- Facilite investigacion de incidentes de seguridad
|
|
- Cumpla requisitos normativos (SOC2, ISO 27001)
|
|
- Detecte patrones de acceso sospechosos
|
|
- Soporte auditorias externas con exportacion de logs
|
|
|
|
---
|
|
|
|
## Stakeholders
|
|
|
|
| Rol | Nombre/Equipo | Responsabilidad |
|
|
|-----|---------------|-----------------|
|
|
| Product Owner | Equipo Producto | Definicion de requisitos compliance |
|
|
| Tech Lead | Equipo Backend | Arquitectura de logging |
|
|
| Security Officer | Seguridad | Validacion de politicas |
|
|
| Auditores | Externos | Consumo de reportes |
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
| ID | Historia | Prioridad | SP | Estado |
|
|
|----|----------|-----------|-----|--------|
|
|
| US-MGN007-001 | Como auditor, quiero ver historial de cambios por entidad para rastrear modificaciones | P0 | 5 | Backlog |
|
|
| US-MGN007-002 | Como auditor, quiero ver historial de logins para detectar accesos sospechosos | P0 | 3 | Backlog |
|
|
| US-MGN007-003 | Como admin, quiero exportar logs de auditoria para auditorias externas | P1 | 3 | Backlog |
|
|
| US-MGN007-004 | Como admin, quiero configurar politicas de retencion para cumplir normativas | P2 | 2 | Backlog |
|
|
|
|
**Total Story Points:** 13 SP
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion de la Epica
|
|
|
|
**Funcionales:**
|
|
- [ ] Log automatico de cambios (create, update, delete) en todas las entidades
|
|
- [ ] Historial de logins con IP, user agent y geolocalizacion
|
|
- [ ] Exportacion a CSV/JSON con filtros de fecha y entidad
|
|
- [ ] Retencion configurable por tipo de log (30, 90, 365 dias)
|
|
- [ ] Dashboard de actividad con graficos temporales
|
|
|
|
**No Funcionales:**
|
|
- [ ] Performance: Logging no debe agregar mas de 50ms por request
|
|
- [ ] Storage: Logs antiguos archivados automaticamente
|
|
- [ ] Seguridad: Logs inmutables (append-only)
|
|
|
|
**Tecnicos:**
|
|
- [ ] Cobertura de tests > 80%
|
|
- [ ] Documentacion de politicas de retencion
|
|
- [ ] Triggers auditados documentados
|
|
|
|
---
|
|
|
|
## Dependencias
|
|
|
|
**Esta epica depende de:**
|
|
| Epica/Modulo | Estado | Bloqueante |
|
|
|--------------|--------|------------|
|
|
| EPIC-MGN-001 Auth | Ready | Si |
|
|
| EPIC-MGN-004 Tenants | Ready | Si |
|
|
|
|
**Esta epica bloquea:**
|
|
| Epica/Modulo | Razon |
|
|
|--------------|-------|
|
|
| Ninguna | Modulo standalone |
|
|
|
|
---
|
|
|
|
## Desglose Tecnico
|
|
|
|
**Database:**
|
|
- [ ] Schema: `audit_logging`
|
|
- [ ] Tablas: 3 (audit_logs, login_history, retention_policies)
|
|
- [ ] Triggers: Trigger generico para todas las tablas auditables
|
|
- [ ] Particionado: Por fecha para performance
|
|
- [ ] RLS Policies: Si (lectura por tenant)
|
|
|
|
**Backend:**
|
|
- [ ] Modulo: `audit`
|
|
- [ ] Interceptor: AuditInterceptor (NestJS)
|
|
- [ ] Entities: 3 (AuditLog, LoginHistory, RetentionPolicy)
|
|
- [ ] Endpoints: 4 (readonly + export)
|
|
- [ ] Jobs: RetentionCleanupJob (diario)
|
|
- [ ] Tests: 12+
|
|
|
|
**Frontend:**
|
|
- [ ] Paginas: 2 (AuditLogs, LoginHistory)
|
|
- [ ] Componentes: 4 (AuditTable, FilterPanel, ExportButton, ActivityChart)
|
|
- [ ] Stores: 1 (auditStore)
|
|
|
|
---
|
|
|
|
## Riesgos
|
|
|
|
| Riesgo | Probabilidad | Impacto | Mitigacion |
|
|
|--------|--------------|---------|------------|
|
|
| Volumen alto de logs | Alta | Medio | Particionado, archivado automatico |
|
|
| Performance degradada | Media | Alto | Async logging, batch inserts |
|
|
| Storage exhaustion | Media | Alto | Retention policies, alertas de storage |
|
|
|
|
---
|
|
|
|
## Definition of Ready (DoR)
|
|
|
|
- [x] Historias de usuario definidas
|
|
- [x] Criterios de aceptacion claros
|
|
- [x] Dependencias identificadas
|
|
- [x] Estimacion completada
|
|
- [ ] Politicas de retencion definidas con legal
|
|
- [x] Sin bloqueadores activos
|
|
|
|
## Definition of Done (DoD)
|
|
|
|
- [ ] Codigo implementado y revisado
|
|
- [ ] Tests pasando (unit, integration)
|
|
- [ ] Triggers instalados en todas las tablas
|
|
- [ ] Documentacion actualizada
|
|
- [ ] Inventarios actualizados
|
|
- [ ] Trazas registradas
|
|
- [ ] Demo realizada
|
|
- [ ] Product Owner aprobo
|
|
|
|
---
|
|
|
|
## Documentacion Relacionada
|
|
|
|
- Requerimientos: `docs/03-requerimientos/RF-audit/`
|
|
- User Stories: `docs/05-user-stories/mgn-007/`
|
|
- DDL Spec: `docs/04-modelado/database-design/DDL-SPEC-audit_logging.md`
|
|
|
|
---
|
|
|
|
## Historial
|
|
|
|
| Fecha | Cambio | Autor |
|
|
|-------|--------|-------|
|
|
| 2025-12-05 | Creacion de epica | Requirements-Analyst |
|
|
| 2025-12-05 | Completado con secciones faltantes | Requirements-Analyst |
|
|
|
|
---
|
|
|
|
**Creada por:** Requirements-Analyst
|
|
**Fecha:** 2025-12-05
|
|
**Ultima actualizacion:** 2025-12-05
|