Saltar a contenido

0.2.1 (2026-04-18)

Mejoras de seguridad, hardening de la plataforma y mejoras en el panel de administración de usuarios.

✨ Features

  • Audit log de eventos de seguridad con retención automática de 90 días (TTL index en MongoDB).
  • Eventos registrados: login exitoso/fallido, bloqueo de cuenta, verificación MFA, cambio de contraseña, reset de contraseña, uso de código de recuperación, reset de MFA por admin.
  • Invalidación de sesiones al cambiar contraseña: todos los tokens JWT emitidos antes del cambio quedan invalidados automáticamente.
  • Panel de administración de usuarios: conteo de diagramas por usuario y nombre del plan de suscripción.
  • Exportación Excel de usuarios incluye columnas de diagramas y plan.

🔧 Internal

  • Security headers middleware: X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, Referrer-Policy, Permissions-Policy, Cache-Control, HSTS (producción).
  • Swagger/OpenAPI deshabilitado en producción (/docs, /redoc, /openapi.json retornan 404).
  • Stack traces ocultos en producción: errores 500 retornan solo {"detail": "Internal server error"}.
  • Rate limiting en login: máximo 10 intentos por IP por minuto.
  • Account lockout: bloqueo temporal de 15 minutos tras 5 intentos fallidos consecutivos.

🐛 Fixes

  • Corregido bug donde el banner MFA seguía apareciendo después de activar MFA (el estado mfaEnabled no se recuperaba al recargar la página).
  • Corregido flujo de "Probar otro método" en verificación MFA: ahora muestra pantalla de selección en lugar de enviar email automáticamente.
  • Códigos de recuperación ya no se regeneran al activar un segundo método MFA si ya existen códigos sin usar.
  • Errores de compilación TypeScript corregidos para deploy en Digital Ocean.