4.8 KiB
4.8 KiB
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:
- Modificar el modelo de
BackupJoben la base de datos para añadirexclude_patterns(cadena de exclusiones separadas por comas). - Actualizar el motor de escaneo del cliente
DirectoryScannerenagent/scanner.pypara ignorar los archivos que coincidan con las exclusiones. - 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.
- Omitir archivos ocultos (
- Modificar el modelo de
Fase 2: Modo Réplica Exacta (Mirror / Purge)
- Objetivo: Mantener el destino idéntico al origen (eliminación de huérfanos).
- Acciones:
- Añadir el flag
sync_deletions(Booleano) a los trabajos de backup. - Implementar en el cliente la detección de archivos eliminados localmente.
- 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.
- Añadir el flag
Fase 3: Planificación Calendarizada Avanzada (Calendar Events)
- Objetivo: Permitir configurar ventanas de mantenimiento específicas como lo hace Proxmox/Systemd/Karen's.
- Acciones:
- Expandir el soporte de strings de planificación para comprender formato de eventos calendario (ej.
mon..fri 22:00,sat 18:00). - 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.
- Mejorar la interfaz web con un constructor visual de planificaciones semanales/diarias.
- Expandir el soporte de strings de planificación para comprender formato de eventos calendario (ej.
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:
- Crear la tabla
job_runsen la base de datos para registrar cada sesión de ejecución. - 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).
- Crear una vista en la web de "Historial de Ejecuciones" interactiva para cada cliente y trabajo.
- Crear la tabla
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:
- Añadir el campo opcional
local_destination_pathen la configuración de los trabajos. - 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.
- Añadir el campo opcional