# 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.