Backup online application-consistent y restore granular para HCL Domino / IBM Lotus Notes vía Domino C API (NSFBackupStart / NSFBackupStop), con incrementales por transaction-log, PITR vía NSFRecoverDatabases, restore granular por mailbox/UNID/NoteID, y exportación NSF → EML/MBOX. Estado: Phase 0 (bootstrap) — pre-alpha.
Documento técnico complementario a la página del plugin PodHeitor Notes.
1. El problema: Bacula Enterprise no tiene plugin Notes/Domino
Verificado en campo en los manuales Bacula Enterprise 6.2.x → 18.2.x: ningún plugin Notes/Domino. Los operadores de Domino que necesitan integrar con Bacula caen en:
- Backup de filesystem crudo de los archivos
.nsfen/local/notesdata/. No funciona — las bases NSF están abiertas por el servidor Domino y los cambios in-flight producen copias inconsistentes. - Quiesce del servidor (detener Domino, hacer backup, reiniciar). Una ventana de mantenimiento real, email/colaboración no disponibles.
- Soluciones propietarias (NetBackup, Commvault, Spectrum Protect) con agentes Domino — caras, fuera del mundo Bacula.
PodHeitor Notes lo aborda vía Domino C API — online application-consistent, sin quiesce, sin downtime. Esta es la primera capacidad de este tipo en el mundo Bacula.
2. Modelo arquitectónico
┌──────────────────┐ load ┌─────────────────────┐ spawn ┌────────────────────────────┐
│ bacula-fd │ ──────> │ podheitor_notes_fd │ ──────> │ podheitor-notes-backend │
│ (Bacula AGPLv3) │ dlopen │ (cdylib Rust, │ PTCOMM │ (sidecar Rust) │
│ │ │ proprietary) │ │ │
└──────────────────┘ └─────────────────────┘ └────────────┬───────────────┘
│ dlopen
▼
┌──────────────────────────────┐
│ libnotes (HCL/IBM C API) │
│ operator-installed, │
│ NEVER vendored or shipped │
└──────────────────────────────┘
Pure-Rust cdylib + sidecar — sin C/C++ shim, sin Bacula source linkeado estáticamente. AGPL-clean per ADR-001. libnotes es proporcionada por HCL/IBM y nunca se vendoriza ni redistribuye por el plugin — el operador instala el SDK Notes localmente.
3. Capacidades planificadas (roadmap 12 phases)
| Capacidad | Mecanismo |
|---|---|
| Backup Full online de bases NSF | Domino C API NSFBackupStart / NSFBackupStop — sin downtime, sin quiesce |
| Incremental por transaction-log | Verdadero PITR — requiere Domino archive transaction logging habilitado |
| Differential backups | Delta desde el último Full |
| PITR restore | Replay de log vía NSFRecoverDatabases a timestamp arbitrario |
| Restore granular | Mailbox único, documento único por UNID/NoteID/regex de subject, design element único. ACLs preservadas |
| NSF → EML/MBOX export | Para ediscovery, legal hold, migración IMAP. (PST deferred to v1.1) |
| Verify / fixup / compact | Gates de integridad |
| Alta paralelismo | tokio + rayon hybrid; compresión zstd on-the-fly |
4. Layout del repositorio
| Componente | Ubicación | Rol |
|---|---|---|
| cdylib | ../PodHeitor Rust cdylib/crates/plugin-notes/ |
Bacula plugin entry point, registra vía metaplugin-rs |
| sidecar | ./backend-rs/ |
Drives libnotes, streama NSF + .txn sobre PTCOMM |
| docs | ./docs/ |
Operator guide, parameters, troubleshooting (Phase 11) |
| packaging | ./packaging/ |
builds rpm / deb / msi (Phase 11) |
5. Postura de licencia
Propietaria. El HCL/IBM Notes C API SDK es operator-installed; este proyecto no vendoriza ni redistribuye bits HCL/IBM.
¿Quiere acompañar el desarrollo?
Trial gratuito de 30 días planificado para la primera release alpha (workloads Domino calificadas). Garantizamos al menos 50% de descuento vs Bacula Enterprise (que no tiene plugin Notes), Veeam, o Commvault, con más funcionalidades — incluyendo restore granular por documento y export EML/MBOX.
Heitor Faria — Fundador, PodHeitor International
✉ [email protected]
☎ +1 (789) 726-1749 · +55 (61) 98268-4220 (WhatsApp)
🔗 Página del plugin PodHeitor Notes
Disponível em:
Português (Portugués, Brasil)
English (Inglés)
Español