Backup online application-consistent e restore granular para HCL Domino / IBM Lotus Notes via Domino C API (NSFBackupStart / NSFBackupStop), com transaction-log incrementals, PITR via NSFRecoverDatabases, restore granular por mailbox/UNID/NoteID, e exportação NSF → EML/MBOX. Status: Phase 0 (bootstrap) — pre-alpha.
Documento técnico complementar à página do plugin PodHeitor Notes.
1. Problema: Bacula Enterprise não tem plugin Notes/Domino
Verificado em campo nos manuais Bacula Enterprise 6.2.x → 18.2.x: nenhum plugin Notes/Domino. Operadores de Domino que precisam integrar com Bacula caem em duas alternativas:
- Backup de filesystem cru dos arquivos
.nsfem/local/notesdata/. Não funciona — NSF databases são abertos pelo servidor Domino e mudanças in-flight produzem cópias inconsistentes. - Quiesce do servidor (parar o Domino, fazer backup, religar). Janela de manutenção real, indisponibilidade de email/colaboração.
- Soluções proprietárias (NetBackup, Commvault, Spectrum Protect) com agentes Domino — caras, fora do mundo Bacula.
O PodHeitor Notes endereça isso via Domino C API — online application-consistent, sem quiesce, sem downtime. Esta é a primeira solução do mundo Bacula com essa capacidade.
2. Modelo arquitetural
┌──────────────────┐ 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 — sem C/C++ shim, sem Bacula source linkado estaticamente. AGPL-clean per ADR-001. libnotes é fornecida pelo HCL/IBM e nunca é vendorizada ou redistribuída pelo plugin — operador instala o SDK Notes localmente.
3. Capabilities planejadas (roadmap 12 phases)
| Capability | Mecanismo |
|---|---|
| Backup Full online de databases NSF | Domino C API NSFBackupStart / NSFBackupStop — sem downtime, sem quiesce |
| Incremental por transaction-log | Verdadeiro PITR — requer Domino archive transaction logging habilitado |
| Differential backups | Delta from last Full |
| PITR restore | Replay de log via NSFRecoverDatabases para timestamp arbitrário |
| 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, migração IMAP. (PST deferred to v1.1) |
| Verify / fixup / compact | Gates de integridade |
| Alta paralelismo | tokio + rayon hybrid; compressão zstd on-the-fly |
4. Repositório layout
| Componente | Local | Papel |
|---|---|---|
| cdylib | ../PodHeitor Rust cdylib/crates/plugin-notes/ |
Bacula plugin entry point, registra via 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. License posture
Proprietary. O HCL/IBM Notes C API SDK é operator-installed; este projeto não vendoriza nem redistribui bits HCL/IBM.
Pronto para acompanhar o desenvolvimento?
Trial gratuito de 30 dias planejado para a primeira release alpha (workloads Domino qualificadas). Garantimos no mínimo 50% de desconto vs Bacula Enterprise (que não tem plugin Notes), Veeam, ou Commvault, com mais funcionalidades — incluindo restore granular por documento e export EML/MBOX.
Heitor Faria — Fundador, PodHeitor International
✉ [email protected]
☎ +1 (789) 726-1749 · +55 (61) 98268-4220 (WhatsApp)
🔗 Página do plugin PodHeitor Notes
Disponível em:
Português
English (Inglês)
Español (Espanhol)