docs: update CHANGELOG_SESSION.md with server scripts scheduling, UNC mapping, folder tags, global exclusions and recycle bin ctypes
This commit is contained in:
@@ -77,3 +77,35 @@ Implementación del almacenamiento redundante local o de red:
|
|||||||
- **Corrupción de Módulo `jwt`**: Se resolvió una colisión de dependencias en Python donde instalar el paquete genérico `jwt` en lugar de `PyJWT` rompía el método `jwt.encode`. Se forzó la reinstalación limpia de `pyjwt` en el entorno virtual.
|
- **Corrupción de Módulo `jwt`**: Se resolvió una colisión de dependencias en Python donde instalar el paquete genérico `jwt` en lugar de `PyJWT` rompía el método `jwt.encode`. Se forzó la reinstalación limpia de `pyjwt` en el entorno virtual.
|
||||||
- **Reset de Admin por Defecto**: Añadida lógica de restablecimiento forzado de contraseña en el inicio del backend (`main.py`) para asegurar que el usuario administrador (`admin@oneverdrive.local`) y su contraseña (`Admin1234!`) se impongan y validen automáticamente en entornos de desarrollo/pruebas.
|
- **Reset de Admin por Defecto**: Añadida lógica de restablecimiento forzado de contraseña en el inicio del backend (`main.py`) para asegurar que el usuario administrador (`admin@oneverdrive.local`) y su contraseña (`Admin1234!`) se impongan y validen automáticamente en entornos de desarrollo/pruebas.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📂 9. Explorador Local del Servidor y Conectores de Red UNC (NAS)
|
||||||
|
|
||||||
|
Se han añadido controles y APIs de red para flexibilizar la ubicación del almacenamiento centralizado:
|
||||||
|
- **Explorador Interactivo**: En la configuración global del panel web, se añadió el botón **Explorar** al almacenamiento local. Permite navegar interactivamente por las carpetas del servidor y seleccionar el directorio ideal sin escribirlo manualmente. En Windows, expone al inicio las letras de unidad disponibles (`C:\`, `D:\`, etc.).
|
||||||
|
- **Montaje UNC en Caliente**: Implementación de `connect_network_share` en [`settings_service.py`](file:///c:/Workspace/onever_drive/backend/app/services/settings_service.py) que realiza llamadas controladas al comando `net use` de Windows con credenciales de red. El backend valida el recurso y monta la unidad de almacenamiento central antes de guardar la configuración de destino.
|
||||||
|
- **Botón "Probar Conexión"**: Permite testear en caliente permisos de lectura y escritura en la unidad compartida.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚡ 10. Motor Programable de Scripts del Servidor (Automatización Externa)
|
||||||
|
|
||||||
|
Se ha creado un motor asíncrono y planificador en el servidor para disparar backups en plataformas web externas:
|
||||||
|
- **Base de Datos y Modelos**: Creación de las tablas `script_jobs` y `script_job_runs` para persistir tareas automatizadas e historiales completos.
|
||||||
|
- **Programador (Scheduler Daemon)**: El daemon `script_scheduler_daemon` en `main.py` corre minuto a minuto. Valida las expresiones cron de tareas activas de manera asíncrona mediante un pool de hilos (`run_in_executor`) para evitar bloqueos del loop principal de FastAPI.
|
||||||
|
- **Plantillas Pre-configuradas**: Sembrado de tareas listas para producción destinadas a:
|
||||||
|
- **FortiGate**: Copias de seguridad a través de la API REST de configuración de FortiOS.
|
||||||
|
- **UniFi Controller**: Descargas automatizadas usando cookies de autenticación de red.
|
||||||
|
- **Grandstream UCM/GWN**: Script completo en Python para automatizar el volcado del sistema.
|
||||||
|
- **Terminal Oscura e Historial**: Nueva pestaña en la web con capacidad de ejecutar scripts manualmente y abrir una modal del historial con terminal oscura (`monospace` font, terminal negra) para auditar la salida estándar (`stdout`/`stderr`) de los intérpretes Python/Bash con codificación UTF-8 robusta.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤖 11. Paridad de Características de Karen's Replicator en el Agente de Windows
|
||||||
|
|
||||||
|
Hemos añadido paridad absoluta en el cliente nativo de Windows (PyQt6) con respecto a la interfaz original de Karen's Replicator, implementando tres características clave:
|
||||||
|
- **Tags de Carpeta Destino (Destination Folder Tags)**: El motor resuelve expresiones de fecha en la ruta local (ej. `D:\Backup\<yyyy>-<mm>-<dd>`) reemplazando etiquetas en tiempo real al ejecutar el backup. La GUI del agente PyQt6 incorpora un botón interactivo **Tags...** que despliega un menú flotante con las variables utilizables.
|
||||||
|
- **Papelera de Reciclaje (Move to Recycle Bin)**: Implementación de la API ctypes `SHFileOperationW` mapeada de la librería nativa de Windows `shell32.dll`. Al replicar eliminaciones locales, los archivos huérfanos se mueven de forma segura a la Papelera de Reciclaje permitiendo su restauración manual, con fallback transparente a la remoción física permanente si el sistema no es compatible.
|
||||||
|
- **Exclusiones Globales del Sistema (Global Exclusions)**: Inclusión automática en el escáner del agente de exclusiones de archivos del sistema bloqueados (`pagefile.sys`, `hiberfil.sys`, `Thumbs.db`, `Desktop.ini`, `*.tmp`) y carpetas temporales o de papelera (`Temp`, `Recycler`, `$Recycle.Bin`). El agente PyQt incluye una casilla en la sección de configuraciones para activar/desactivar el filtrado global de forma persistente.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user