Ir al contenido principal

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)
  • 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
Advertencia

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:

  1. 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
  2. Backup de base de datos: Se crea un backup automático antes de la migración
  3. 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
  4. Invalidación de sesiones: Todas las sesiones existentes se invalidan
  5. Inicio de sesión de usuario requerido: Todos los usuarios deben iniciar sesión después de la actualización
  6. 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.key esté respaldado

Pasos del Primer Inicio de Sesión

  1. Iniciar sesión con credenciales por defecto (admin / Duplistatus09)
  2. Cambiar contraseña cuando se le solicite (obligatorio en el primer inicio de sesión)
  3. Crear usuarios para otros usuarios (Configuración → Usuarios)
  4. Configurar retención del log de auditoría si es necesario (Configuración → Log de Auditoría)
  5. 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 usuario
  • POST /api/auth/logout - Terminación de sesión
  • GET /api/auth/me - Información del usuario actual
  • POST /api/auth/change-password - Cambio de contraseña

Puntos finales de Gestión de usuarios (Solo Admin)

  • GET /api/users - Listar usuarios
  • POST /api/users - Crear usuario
  • PATCH /api/users/{id} - Actualizar usuario
  • DELETE /api/users/{id} - Eliminar usuario

Puntos finales del Log de Auditoría

  • GET /api/audit-log - Consultar logs de auditoría
  • GET /api/audit-log/download - Exportar logs de auditoría
  • GET /api/audit-log/stats - Estadísticas de auditoría
  • POST /api/audit-log/cleanup - Limpieza manual (solo admin)
  • GET /api/audit-log/retention - Obtener configuración de retención
  • PATCH /api/audit-log/retention - Actualizar retención (solo admin)
nota

Todos los puntos finales de API ahora requieren autenticación. Consulte la Referencia de API para obtener detalles sobre autenticación.


Soporte

Obtener Ayuda

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.