Versión 0.9.x
Resumen
Versión 0.9.x es una versión importante que introduce un Sistema integral de Control de Acceso de Usuarios y Seguridad. Esta versión transforma duplistatus de una aplicación de acceso abierto a un sistema seguro y multiusuario con control de acceso basado en roles, registro de auditoría integral y características de seguridad de nivel empresarial. Toda la funcionalidad existente ahora está protegida detrás de autenticación, garantizando que solo los usuarios autorizados puedan acceder y gestionar la supervisión de backups.
Cambios Importantes
Autenticación Requerida
- Todas las páginas ahora requieren autenticación - Los usuarios deben iniciar sesión para acceder a la aplicación
- La cuenta admin por defecto se crea automáticamente:
- Nombre de usuario:
admin - Contraseña:
Duplistatus09(debe cambiarse en el primer inicio de sesión)
- Nombre de usuario:
- Las sesiones existentes se invalidan - Todos los usuarios deben iniciar sesión después de la actualización
- Los puntos finales de API ahora requieren autenticación - Las integraciones externas deben incluir cookies de sesión o utilizar solicitudes autenticadas
Todos los usuarios deben iniciar sesión después de actualizar a la versión 0.9.x. Las credenciales de admin por defecto son admin/Duplistatus09. Cambie la contraseña inmediatamente después del primer inicio de sesión.
Migración del Esquema de Base de Datos
- Migración automática de v3.1 a v4.0 para instalaciones existentes
- Nuevas tablas agregadas:
users,sessions,audit_log - Backup de base de datos creado automáticamente antes de la migración
- Nuevas instalaciones inician directamente con esquema v4.0 (no se requiere migración)
Nuevas Características
Control de Acceso de Usuarios y Sistema de Seguridad
Sistema de Autenticación
- Funcionalidad de iniciar sesión/cerrar sesión de usuario con gestión segura de sesiones
- Autenticación basada en contraseña con hash bcrypt (factor de costo 12)
- Mecanismo de bloqueo de cuenta (5 intentos fallidos, bloqueo de 15 minutos)
- Cambio de contraseña forzado en el primer inicio de sesión
- Aplicación de política de contraseña:
- Mínimo 8 caracteres
- Al menos una letra mayúscula
- Al menos una letra minúscula
- Al menos un número
- Caracteres especiales opcional
- Funcionalidad "Recordarme" con persistencia de nombre de usuario en localStorage
- Autenticación basada en sesiones con sesiones respaldadas por base de datos (reemplaza en memoria)
- Protección CSRF integrada con autenticación
- Cookies solo HTTP para seguridad de sesiones
- Seguimiento de dirección IP y agente de usuario para monitoreo de seguridad
Gestión de usuarios (Solo Admin)
- Creación de usuarios con generación automática de contraseña temporal
- Lista de usuarios con búsqueda, paginación y filtrado
- Edición de usuarios (nombre de usuario, estado de admin, requisito de cambio de contraseña)
- Funcionalidad de restablecimiento de contraseña con visualización de contraseña temporal
- Eliminación de usuarios con salvaguardas (previene la eliminación del último admin)
- Control de acceso basado en roles (roles Admin/Usuario)
- Indicadores de estado (Activo, Bloqueado, Debe cambiar la contraseña)
- Seguimiento de último inicio de sesión y visualización
Sistema de Registro de Auditoría
- Pista de auditoría integral para todos los cambios del sistema y acciones del usuario
- Visor de log de auditoría con filtrado avanzado:
- Filtrado por rango de fechas
- Filtrado por usuario
- Filtrado por acción
- Filtrado por categoría
- Filtrado por estado
- Funcionalidad de exportación (formatos CSV y JSON)
- Estadísticas y análisis del log de auditoría
- Período de retención configurable (30-365 días, por defecto: 90 días)
- Trabajo cron de limpieza automática (se ejecuta diariamente a las 2 AM UTC)
- API de limpieza manual con soporte de ejecución en seco
- Registro de auditoría para:
- Eventos de autenticación (iniciar sesión, cerrar sesión, cambios de contraseña, bloqueos de cuenta)
- Operaciones de gestión de usuarios (crear, actualizar, eliminar, restablecimiento de contraseña)
- Cambios de configuración (correo electrónico, NTFY, plantillas, tolerancia de retraso, configuración de backup)
- Operaciones de backup (recopilación, eliminación, limpieza)
- Gestión de servidores (añadir, actualizar, eliminar)
- Operaciones del sistema (migraciones, limpieza, notificaciones)
Rediseño de la Página de Configuración
- Navegación moderna de barra lateral con barra lateral plegable
- Persistencia del estado de la barra lateral específica del usuario (preferencia de contraído/expandido guardada por usuario)
- Secciones de configuración agrupadas:
- Notificaciones: Notificaciones de backup, Monitoreo de backup, Plantillas
- Integraciones: NTFY, Correo electrónico
- Sistema: Servidores, Usuarios (solo admin), Log de Auditoría
- Barra lateral fija que permanece visible al desplazarse
- Diseño responsivo con espaciado optimizado
- Icono de configuración y título "Configuración del Sistema" en el encabezado de la barra lateral
- Botón Atrás integrado en el encabezado de la aplicación
Mejoras de la Interfaz de Usuario
- Página de inicio de sesión independiente con diseño moderno
- Casilla de verificación "Recordarme" en el formulario de inicio de sesión para la persistencia del nombre de usuario
- Botones mostrar/ocultar contraseña en formularios de inicio de sesión y cambio de contraseña
- Modal de cambiar contraseña con lista de validación en tiempo real
- Indicador de usuario y botón de cerrar sesión en el encabezado de la aplicación
- Visibilidad de interfaz basada en roles (características solo para admin ocultas de usuarios normales)
- Insignias e indicadores de estado en toda la interfaz de usuario
- Preferencias específicas del usuario almacenadas en localStorage (por ejemplo, estado de la barra lateral contraída)
Características de Seguridad
- Hashing de contraseña con bcrypt (estándar de la industria)
- Sanitización de datos sensibles en logs de auditoría (contraseñas, tokens, secretos nunca registrados)
- Limitación de velocidad para intentos de iniciar sesión
- Expiración de sesión (24 horas)
- Validación de token CSRF para todas las operaciones que cambian estado
- Herramienta CLI de recuperación de Admin para restablecimiento de contraseña si está bloqueado
Herramientas para Desarrolladores
- Script CLI de recuperación de Admin (
admin-recovery) para fácil ejecución en contenedores Docker - Funciona tanto localmente como en Docker con detección automática de rutas
- Interfaces TypeScript completas (sin tipos
any) - Middleware de autenticación para protección de rutas
- Clase de utilidad de registro de auditoría con métodos de conveniencia
🚀 Notas de Migración
Desde la Versión 0.8.x
Esta versión introduce autenticación y requiere que todos los usuarios inicien sesión. Cuándo actualiza desde la versión 0.8.x:
- Migración automática de base de datos: La aplicación migrará automáticamente el esquema de su base de datos de v3.1 a v4.0
- Backup de base de datos: Se crea un backup automático antes de la migración
- Cuenta Admin por defecto: Se crea una cuenta Admin por defecto:
- Nombre de usuario:
admin - Contraseña:
Duplistatus09 - Debe cambiar esta contraseña en el primer inicio de sesión
- Nombre de usuario:
- Invalidación de sesiones: Todas las sesiones existentes se invalidan
- Inicio de sesión de usuario requerido: Todos los usuarios deben iniciar sesión después de la actualización
- Autenticación de API: Las integraciones externas deben actualizarse para incluir autenticación
Consideraciones de Seguridad
- Cambiar contraseña por defecto: Cambiar la contraseña de admin por defecto inmediatamente después del primer inicio de sesión
- Crear cuentas de usuario: Crear cuentas de usuario individuales para cada persona que necesite acceso
- Verificar logs de auditoría: Verificar los logs de auditoría regularmente para monitoreo de seguridad
- Configurar retención: Establecer el período de retención del log de auditoría apropiado según sus requisitos de cumplimiento
- Backup de clave maestra: Si actualiza desde 0.8.x, asegúrese de que el archivo
.duplistatus.keyesté respaldado
Pasos del Primer Inicio de Sesión
- Iniciar sesión con credenciales por defecto (
admin/Duplistatus09) - Cambiar contraseña cuando se le solicite (obligatorio en el primer inicio de sesión)
- Crear usuarios para otros usuarios (Configuración → Usuarios)
- Configurar retención del log de auditoría si es necesario (Configuración → Log de Auditoría)
- Revisar logs de auditoría para verificar que el sistema funciona correctamente
🐛 Correcciones de Errores
- Se corrigieron problemas de persistencia de sesión en reinicios de servidor
- Se mejoró el manejo de errores para fallos de autenticación
- Se mejoró la retroalimentación de validación de contraseña
- Se corrigieron inconsistencias de interfaz de usuario en la página de Configuración
- Se mejoró el rendimiento del filtrado del Log de Auditoría
Puntos finales de API
Puntos finales de autenticación
POST /api/auth/login- Autenticación de usuarioPOST /api/auth/logout- Terminación de sesiónGET /api/auth/me- Información del usuario actualPOST /api/auth/change-password- Cambio de contraseña
Puntos finales de Gestión de usuarios (Solo Admin)
GET /api/users- Listar usuariosPOST /api/users- Crear usuarioPATCH /api/users/{id}- Actualizar usuarioDELETE /api/users/{id}- Eliminar usuario
Puntos finales del Log de Auditoría
GET /api/audit-log- Consultar logs de auditoríaGET /api/audit-log/download- Exportar logs de auditoríaGET /api/audit-log/stats- Estadísticas de auditoríaPOST /api/audit-log/cleanup- Limpieza manual (solo admin)GET /api/audit-log/retention- Obtener configuración de retenciónPATCH /api/audit-log/retention- Actualizar retención (solo admin)
Todos los puntos finales de API ahora requieren autenticación. Consulte la Referencia de API para obtener detalles sobre autenticación.
Soporte
Obtener Ayuda
- Documentación: Guía del Usuario
- Referencia de API: Documentación de API
- Guía de Migración: Migración de Actualización de Versión
- Recuperación de Admin: Recuperación de Cuenta Admin
- Comunidad: GitHub Discussions
- Problemas: GitHub Issues
Informar de Errores
Cuándo reportar errores, incluya:
- Versión: 0.9.x
- Sistema operativo y versión
- Versión de Docker
- Mensajes de Error y Logs
- Pasos para reproducir
- Rol de Usuario (admin/usuario) si es relevante
Registro de cambios
Cambios Detallados
- Added: Sistema completo de autenticación y autorización
- Added: Gestión de usuarios con control de acceso basado en roles
- Added: Sistema integral de registro de auditoría
- Added: Rediseño de página de Configuración con barra lateral contraíble
- Added: Herramienta CLI de recuperación de Admin
- Added: Aplicación de política de contraseña
- Added: Mecanismo de bloqueo de cuenta
- Added: Gestión de sesiones con persistencia en base de datos
- Changed: Todos los páginas ahora requieren autenticación
- Changed: Esquema de base de datos de v3.1 a v4.0
- Changed: Almacenamiento de sesiones de en memoria a respaldado por base de datos
- Changed: Diseño y navegación de página de Configuración
- Fixed: Persistencia de sesiones entre reinicios del servidor
- Fixed: Varias inconsistencias de interfaz de usuario
- Improved: Postura de Seguridad con registro de auditoría integral
- Improved: Experiencia de usuario con páginas modernas de Iniciar sesión y Configuración
- Improved: Calidad de código con interfaces TypeScript y principios DRY
Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0.
Copyright © 2025 Waldemar Scudeller Jr.