docs: agregar hoja de ruta hacia Karen's Replicator centralizado

This commit is contained in:
Carlos Tello
2026-08-13 23:13:31 -03:00
parent 4a591ba00f
commit a72cf1480e
2 changed files with 66 additions and 2 deletions
+3 -2
View File
@@ -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.
+63
View File
@@ -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.