erp-core/docs/02-fase-core-business/MGN-007-audit/especificaciones/INDICE-ET-AUDIT.md

3.9 KiB

Indice de Especificaciones Tecnicas - MGN-007 Audit

Identificacion

Campo Valor
Modulo MGN-007
Epic Audit & Logging
Total ET 3
Story Points 34
Fecha 2025-12-05

Especificaciones Tecnicas

ID Titulo RF Cubiertos Estado
ET-AUDIT-database Schema core_audit RF-001 a RF-004 Documentado
ET-AUDIT-backend Servicios y API REST RF-001 a RF-004 Documentado
ET-AUDIT-frontend Componentes React + Chart.js RF-001 a RF-004 Documentado

Resumen de Componentes

Database (ET-AUDIT-database)

Tabla RF Descripcion
audit_logs RF-001 Registro de cambios en entidades (particionado mensual)
access_logs RF-002 Logs de peticiones HTTP (particionado diario)
security_events RF-003 Eventos de seguridad detectados
security_alerts RF-003 Alertas enviadas por eventos
scheduled_reports RF-004 Reportes programados de auditoria
audit_alerts RF-004 Alertas configurables de auditoria

Total: 6 tablas (2 particionadas + 4 simples)

Funciones:

  • log_entity_change() - Registro de cambios con diff automatico
  • check_brute_force() - Deteccion de intentos de fuerza bruta
  • create_monthly_partitions() - Creacion automatica de particiones
  • archive_old_partitions() - Archivado de particiones antiguas

Backend (ET-AUDIT-backend)

Servicio Endpoints RF
AuditLogsService 5 RF-001
AccessLogsService 4 RF-002
SecurityEventsService 3 RF-003
SecurityAlertsService 2 RF-003
ScheduledReportsService 5 RF-004

Total: 19 endpoints

Interceptores:

  • AuditInterceptor - Logging automatico de cambios via decorador
  • AccessLogInterceptor - Registro de peticiones HTTP

Subscriber:

  • EntityAuditSubscriber - Auditoria automatica via TypeORM events

Matriz de Trazabilidad RF -> ET

RF Database Backend
RF-AUDIT-001 audit_logs AuditLogsService, AuditInterceptor, EntityAuditSubscriber
RF-AUDIT-002 access_logs AccessLogsService, AccessLogInterceptor
RF-AUDIT-003 security_events, security_alerts SecurityEventsService, SecurityAlertsService
RF-AUDIT-004 scheduled_reports, audit_alerts ScheduledReportsService

Estrategia de Particionamiento

Tabla Tipo Particion Retencion Sugerida
audit_logs RANGE Mensual 24 meses
access_logs RANGE Diaria 90 dias

Mantenimiento Automatico

  • Particiones futuras: Job mensual crea particiones 1 mes por adelantado
  • Archivado: Job semanal archiva particiones antiguas segun retencion

Dependencias Tecnicas

Externas

  • PostgreSQL 15+ (Partitioning, JSONB, GIN, INET)
  • TypeORM 0.3+
  • NestJS 10+
  • cls-hooked (Async context)
  • cron-parser (Cron expressions)
  • exceljs/pdfkit (Exportacion)

Internas

  • core_tenants.tenants (RLS)
  • core_users.users (Referencias)
  • core_auth.sessions (Access logs)
  • MGN-001 Auth (Autenticacion)
  • MGN-003 RBAC (Permisos)
  • MGN-008 Notifications (Alertas)

Permisos Requeridos

Permiso Descripcion
audit.logs.read Ver logs de auditoria
audit.logs.export Exportar logs
audit.access.read Ver logs de acceso
audit.security.read Ver eventos de seguridad
audit.security.manage Resolver eventos
audit.reports.read Ver reportes programados
audit.reports.manage Crear/editar reportes
admin.security.manage Acceso global a seguridad

Historial

Version Fecha Autor Cambios
1.0 2025-12-05 Requirements-Analyst Creacion inicial con 2 ET
1.1 2025-12-05 Requirements-Analyst Agregado ET Frontend