Anuncio de lanzamiento — Versión 1.0.0 GA — 20 de mayo de 2026
Autor: Heitor Faria · Sitio web: https://podheitor.com · Correo: heitor@opentechs.lat · Teléfono / WhatsApp: +1 786 726-1749 | +55 61 98268-4220
Resumen
El PodHeitor Microsoft 365 Backup Plugin entra en disponibilidad general (GA) en la versión 1.0.0. Es un componente 100% Rust nativo del stack PodHeitor Backup Server que realiza respaldo completo de inquilinos Microsoft 365 — Exchange Online, OneDrive for Business, SharePoint y Teams — con una ventana opcional de captura continua (CDC) de hasta 60 segundos de RPO.
El foco de la v1.0 es la captura: consistente, eficiente y auditable, de los datos M365. La interfaz de restauración actual cubre la extracción al sistema de archivos local (PST/EML/JSON/contenido bruto). La restauración directa al inquilino Microsoft 365 vía Graph API (write-back) está documentada en el roadmap de la v1.1 — todavía no se entrega.
Posicionamiento
PodHeitor es un sistema de respaldo independiente escrito en Rust. El M365 Backup Plugin es un componente del PodHeitor Backup Server y también puede consumirse como plugin para Bacula Community 15.0.3 vía la misma API de plugin nativa — pero el producto vendido, soportado y planificado es el stack PodHeitor.
Alcance de la v1.0.0 GA
| Carga de trabajo | Mecanismo | Modo |
|---|---|---|
| Buzones Exchange Online | Delta API + $batch |
mode=mailbox |
| OneDrive for Business | Drive walk + redirecciones 302 | mode=onedrive |
| Sitios y listas de SharePoint | /sites/root + REST |
mode=sharepoint |
| Canales de Teams | Graph app-only | mode=teams |
| Chat de Teams por usuario | /users/{id}/chats |
mode=chat |
| CDC casi en tiempo real | Graph Change Notifications + webhook receiver | mode=cdc |
Números relevantes
| Indicador | Valor medido en v1.0.0 |
|---|---|
| Binario backend (stripped) | 2,2 MB |
| Paquete instalado (RPM/DEB) | ~1,2 MB |
| RAM por job | < 150 MB target |
| RPO CDC configurable | 60 s mínimo |
| Tests automatizados | 220 passing, 0 failing, 1 ignored |
| Sistemas operativos cubiertos | Oracle Linux 9, RHEL 9, AlmaLinux, Rocky, Debian 12, Ubuntu 22.04 |
| Stack runtime | ureq + rustls + ring + crossbeam — sin tokio, sin JVM, sin .NET |
Decisiones arquitectónicas relevantes
- Memory-safe sin GC. El backend es Rust 1.x con
unsafe_op_in_unsafe_fn = warny clippy pedantic + restriction como gates de CI. No hay JVM ni runtime administrado consumiendo RAM en paralelo al job. - Cliente HTTP simple.
ureqsíncrono conrustls+ring. Sin tokio. El throughput contra el Graph API está limitado por el throttling del inquilino, no por el cliente. - Sin responsabilidad duplicada. La deduplicación la maneja el Storage Daemon de PodHeitor (o el backend de almacenamiento — S3 dedup, appliance dedup). La detección de ransomware se cubre con inmutabilidad de almacenamiento (S3 Object Lock, vault inmutable) o IDS/EDR externo. El M365 Plugin no rehace esas funciones.
- Auditoría GDPR. Cada operación de derecho al olvido se firma con HMAC-SHA256 y se graba en un log append-only, para poder demostrar la eliminación a un auditor independiente del estado posterior del catálogo.
- Observabilidad. Endpoint Prometheus
/metricsembebido en el binario. No requiere sidecar.
Quality gates de la v1.0.0 GA
cargo fmt --checklimpiocargo clippy --all-targets -- -D warnings(pedantic + restriction) limpiocargo test --release— 220 passed, 0 failed, 1 ignored- E2E en laboratorio contra un inquilino Microsoft 365 real vía túnel cloudflared
- Chaos suite con torn writes, cursor corrupto, JSON mal formado y recovery
- RUNBOOK operacional y GATE_REPORT publicados junto al paquete
Lo que no está en la v1.0.0 — roadmap v1.1
Para evitar interpretaciones erróneas en la decisión de compra, la v1.0 GA no incluye los siguientes ítems. Están en el roadmap de la v1.1 con prioridad confirmada:
- Restore-to-M365 (write-back al inquilino vía Graph PUT/POST) — F-7.1
- Restore con PST embebido — F-8
- Migración cross-tenant (
mode=migrate) — F-24 - Purga GDPR en el origen (DELETE real en Graph) — actualmente solo marca local
- Herramienta standalone
mode=gdpr_audit_verify
El flujo soportado hoy para restaurar un ítem al buzón de un usuario es: extraer del backup PodHeitor a PST/EML local, importar con Outlook o herramientas Microsoft. Quien necesite write-back directo ahora debe esperar a la v1.1 antes de planificar la adopción.
Compatibilidad
El plugin se distribuye como paquete RPM y DEB para las distribuciones Linux listadas arriba. Corre como componente del PodHeitor Backup Server. Para entornos Bacula Community 15.0.3, hay una capa de adaptación que expone el mismo backend vía la API de plugin nativa de Bacula — útil en migraciones graduales.
Contacto
Heitor Faria · podheitor.com · heitor@opentechs.lat · +1 786 726-1749 · +55 61 98268-4220 (WhatsApp)
Copyright © 2026 Heitor Faria. Todos los derechos reservados.
Disponível em:
Português (Portugués, Brasil)
English (Inglés)
Español