3.9 KiB
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 automaticocheck_brute_force()- Deteccion de intentos de fuerza brutacreate_monthly_partitions()- Creacion automatica de particionesarchive_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 |