PodHeitor Microsoft 365 Backup — v1.0 GA: backup nativo en Rust para Exchange, OneDrive, SharePoint y Teams

PodHeitor Microsoft 365 Backup — v1.0 GA: backup nativo en Rust para Exchange, OneDrive, SharePoint y Teams

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 = warn y clippy pedantic + restriction como gates de CI. No hay JVM ni runtime administrado consumiendo RAM en paralelo al job.
  • Cliente HTTP simple. ureq síncrono con rustls + 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 /metrics embebido en el binario. No requiere sidecar.

Quality gates de la v1.0.0 GA

  • cargo fmt --check limpio
  • cargo clippy --all-targets -- -D warnings (pedantic + restriction) limpio
  • cargo 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: pt-brPortuguês (Portugués, Brasil)enEnglish (Inglés)esEspañol

Deja una respuesta