diff --git a/README.md b/README.md index 480edca..5529a0d 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ python windows-agent/build_exe.py --- -## 馃摑 Cambios Recientes +## 馃摑 Documentos y Cambios Recientes -Para ver la lista completa de mejoras implementadas en la 煤ltima sesi贸n de desarrollo (sincronizaci贸n bidireccional, planificaci贸n tipo Proxmox Backup Server y re-vinculaci贸n de agentes), consulta el [Changelog de la Sesi贸n](CHANGELOG_SESSION.md). +- **Changelog**: Consulta el [Changelog de la Sesi贸n](CHANGELOG_SESSION.md) para ver la lista completa de mejoras implementadas en la 煤ltima sesi贸n de desarrollo (sincronizaci贸n bidireccional, planificaci贸n tipo Proxmox Backup Server y re-vinculaci贸n de agentes). +- **Visi贸n T茅cnica / Roadmap**: Consulta la [Hoja de Ruta hacia Karen's Replicator](docs/roadmap_karens_replicator.md) para revisar el mapa de caracter铆sticas y las fases de desarrollo propuestas. diff --git a/docs/roadmap_karens_replicator.md b/docs/roadmap_karens_replicator.md new file mode 100644 index 0000000..219af2c --- /dev/null +++ b/docs/roadmap_karens_replicator.md @@ -0,0 +1,63 @@ +# Hoja de Ruta: Hacia un "Karen's Replicator" Centralizado y Web + +Este documento establece la visi贸n t茅cnica y el plan de desarrollo para evolucionar **OnEver Drive** desde su arquitectura actual hasta convertirse en un clon moderno, centralizado y gestionado v铆a web del cl谩sico **Karen's Replicator**, conservando su robustez y simplicidad de copia pero con las ventajas del almacenamiento en la nube y el monitoreo multi-inquilino. + +--- + +## 馃幆 Tabla de Equivalencia de Caracter铆sticas + +| Caracter铆stica de Karen's Replicator | Estado Actual en OnEver Drive | Meta de Desarrollo / Brecha a Cubrir | +| :--- | :--- | :--- | +| **Copia de Archivos y Carpetas** | Soportado (Monitoreo de directorios) | Soportado. | +| **Filtros por Patr贸n de Archivo** | Soportado (Solo inclusiones, ej: `*.bak`) | A帽adir **Patrones de Exclusi贸n** (ej: ignorar `*.tmp`, `thumbs.db`, carpetas `node_modules`). | +| **Copia de Archivos Especiales** | Copia todo lo legible | Opci贸n de omitir archivos de Sistema, Ocultos o de Solo Lectura. | +| **Modo R茅plica (Mirroring)** | Solo incremental (No elimina en destino) | Agregar la opci贸n **"Eliminar archivos en destino si ya no existen en origen"** (Sincronizaci贸n exacta). | +| **Detecci贸n de Cambios Inteligente** | Basada en SHA-256 (Chunks) | Soportado y superior a Karen's (evita transferencias duplicadas de bloques de 4MB). | +| **Planificaci贸n Detallada** | Simplificada (`hourly`, `daily`, etc.) | Planificaciones calendarizadas complejas (ej. "Lunes a Viernes a las 22:00", "S谩bados a las 14:00"). | +| **Historial y Reportes** | logs generales de eventos | **Reporte de Ejecuci贸n por Job** (Web): Lista detallada de archivos copiados, omitidos por no tener cambios y errores de lectura. | +| **Destino de Red / NAS / Local** | Solo al servidor centralizado | Configurar en el Servidor almacenamiento en NAS montado, y en el cliente opci贸n de duplicar la copia a un disco local USB o ruta UNC de red (Copia local adicional). | + +--- + +## 馃搮 Plan de Desarrollo por Fases + +### Fase 1: Filtros de Exclusi贸n y Atributos de Archivo (Corto Plazo) +* **Objetivo**: Aumentar la granularidad sobre qu茅 archivos se respaldan. +* **Acciones**: + 1. Modificar el modelo de `BackupJob` en la base de datos para a帽adir `exclude_patterns` (cadena de exclusiones separadas por comas). + 2. Actualizar el motor de escaneo del cliente `DirectoryScanner` en `agent/scanner.py` para ignorar los archivos que coincidan con las exclusiones. + 3. Agregar checkboxes en el cliente y en la Web para: + - Omitir archivos ocultos (`Hidden`). + - Omitir archivos de sistema (`System`). + - Conservar/Ignorar permisos de solo lectura. + +### Fase 2: Modo R茅plica Exacta (Mirror / Purge) +* **Objetivo**: Mantener el destino id茅ntico al origen (eliminaci贸n de hu茅rfanos). +* **Acciones**: + 1. A帽adir el flag `sync_deletions` (Booleano) a los trabajos de backup. + 2. Implementar en el cliente la detecci贸n de archivos eliminados localmente. + 3. Enviar una llamada de purga al backend (`POST /api/backups/purge-orphans`) para que marque como inactivos o elimine f铆sicamente del almacenamiento del servidor los archivos que ya no existen en el cliente f铆sico. + +### Fase 3: Planificaci贸n Calendarizada Avanzada (Calendar Events) +* **Objetivo**: Permitir configurar ventanas de mantenimiento espec铆ficas como lo hace Proxmox/Systemd/Karen's. +* **Acciones**: + 1. Expandir el soporte de strings de planificaci贸n para comprender formato de eventos calendario (ej. `mon..fri 22:00`, `sat 18:00`). + 2. Implementar un parseador de eventos en el Agente de Windows que eval煤e si la hora actual est谩 dentro de la ventana de ejecuci贸n programada. + 3. Mejorar la interfaz web con un constructor visual de planificaciones semanales/diarias. + +### Fase 4: Reportes de Ejecuci贸n y Auditor铆a Visual (Dashboard) +* **Objetivo**: Ver en un clic qu茅 se copi贸, qu茅 fall贸 y qu茅 se omiti贸 en cada corrida de backup. +* **Acciones**: + 1. Crear la tabla `job_runs` en la base de datos para registrar cada sesi贸n de ejecuci贸n. + 2. Almacenar m茅tricas detalladas por ejecuci贸n: + - Archivos totales escaneados. + - Archivos copiados (nuevos/modificados). + - Archivos omitidos (sin cambios). + - Errores de lectura (archivos bloqueados sin acceso). + 3. Crear una vista en la web de "Historial de Ejecuciones" interactiva para cada cliente y trabajo. + +### Fase 5: Copia Local Duplicada (Paridad Completa) +* **Objetivo**: Permitir que el agente realice copias locales (ej. a un disco externo USB o carpeta compartida de red de la oficina) de forma simult谩nea a la subida al servidor central. +* **Acciones**: + 1. A帽adir el campo opcional `local_destination_path` en la configuraci贸n de los trabajos. + 2. Al ejecutar un backup, el Agente realiza un mirroring local (estilo Karen's cl谩sico directo de disco a disco) adem谩s de la subida segmentada de chunks al servidor cloud.