feat: Version 1.11.0 - Mejoras en auditoría, SLA, frontend y correcciones de sincronización

- Refactorización de endpoints de auditoría y helpers
- Mejoras en esquemas de auditoría (audit.py)
- Correcciones en endpoint SLA
- Actualizaciones en múltiples rutas del frontend interno:
  layout, tickets, usuarios, tenants, categorías, sistemas,
  SLA (at-risk, violations), auditoría (main + security), login, perfil
- Actualización de tailwind.config.js
- Eliminación de docs de versiones anteriores (CAMBIOS_v1.10.0, v1.8.0, OPTIMIZACIONES)
- Nuevos scripts de prueba: generate_security_test_data.py, generate_sla_test_data.py
- Script de prueba de sincronización crítica (test_critical_sync.ps1)
- README actualizado en scripts/
This commit is contained in:
2026-02-20 10:53:53 -07:00
parent 517297e89a
commit ceea67eb2b
32 changed files with 5715 additions and 3324 deletions

67
test_critical_sync.ps1 Normal file
View File

@@ -0,0 +1,67 @@
# Test para verificar sincronización de incidentes críticos
# entre módulo Auditoría y módulo Seguridad
Write-Host "`n=== TEST: Sincronización de Incidentes Críticos ===" -ForegroundColor Cyan
# 1. Login
Write-Host "`n1. Autenticando..." -ForegroundColor Yellow
$loginBody = @{
email = "admin@aduanasoft.com"
password = "admin123"
tenant_slug = "aduanasoft"
} | ConvertTo-Json
try {
$loginResponse = Invoke-RestMethod -Uri "http://localhost/api/v1/auth/login" -Method Post -Body $loginBody -ContentType "application/json"
$token = $loginResponse.access_token
$headers = @{
"Authorization" = "Bearer $token"
}
Write-Host "✓ Autenticado correctamente" -ForegroundColor Green
} catch {
Write-Host "✗ Error en login: $_" -ForegroundColor Red
exit 1
}
# 2. Obtener stats del módulo Auditoría
Write-Host "`n2. Consultando módulo Auditoría (/audit/stats)..." -ForegroundColor Yellow
try {
$auditStats = Invoke-RestMethod -Uri "http://localhost/api/v1/audit/stats" -Headers $headers
$auditCritical = $auditStats.critical_today
Write-Host "✓ Incidentes críticos en Auditoría: $auditCritical" -ForegroundColor Green
} catch {
Write-Host "✗ Error consultando Auditoría: $_" -ForegroundColor Red
exit 1
}
# 3. Obtener stats del módulo Seguridad
Write-Host "`n3. Consultando módulo Seguridad (/audit/security/analysis)..." -ForegroundColor Yellow
try {
$securityAnalysis = Invoke-RestMethod -Uri "http://localhost/api/v1/audit/security/analysis?hours=24" -Headers $headers
$securityCritical = $securityAnalysis.critical_actions_count
Write-Host "✓ Acciones críticas en Seguridad: $securityCritical" -ForegroundColor Green
} catch {
Write-Host "✗ Error consultando Seguridad: $_" -ForegroundColor Red
exit 1
}
# 4. Comparar resultados
Write-Host "`n4. Comparación:" -ForegroundColor Yellow
Write-Host " Auditoría: $auditCritical incidentes críticos" -ForegroundColor White
Write-Host " Seguridad: $securityCritical acciones críticas" -ForegroundColor White
if ($auditCritical -eq $securityCritical) {
Write-Host "`n✓ SINCRONIZADOS: Ambos módulos reportan el mismo número" -ForegroundColor Green
Write-Host " Los contadores están alineados correctamente." -ForegroundColor Green
} else {
Write-Host "`n✗ DESINCRONIZADOS: Los números no coinciden" -ForegroundColor Red
Write-Host " Diferencia: $([Math]::Abs($auditCritical - $securityCritical)) registros" -ForegroundColor Red
}
Write-Host "`n=== Detalles adicionales ===" -ForegroundColor Cyan
Write-Host "Amenazas detectadas: $($securityAnalysis.total_threats_detected)" -ForegroundColor White
Write-Host "Nivel de riesgo: $($securityAnalysis.overall_risk_level)" -ForegroundColor White
Write-Host "Login fallidos: $($securityAnalysis.failed_login_attempts)" -ForegroundColor White
Write-Host "IPs sospechosas: $($securityAnalysis.suspicious_ips_count)" -ForegroundColor White
Write-Host "`n=== Test completado ===" -ForegroundColor Cyan