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

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

Anúncio de lançamento — Versão 1.0.0 GA — 20 de maio de 2026

Autor: Heitor Faria · Website: https://podheitor.com · E-mail: heitor@opentechs.lat · Telefone / WhatsApp: +1 786 726-1749 | +55 61 98268-4220

Resumo

O PodHeitor Microsoft 365 Backup Plugin entra em disponibilidade geral (GA) na versão 1.0.0. É um componente 100% Rust nativo do stack PodHeitor Backup Server que realiza backup completo de tenants Microsoft 365 — Exchange Online, OneDrive for Business, SharePoint e Teams — com janela de captura contínua opcional (CDC) de até 60 segundos de RPO.

O foco da v1.0 é captura consistente, eficiente e auditável dos dados M365. A interface de restore atual cobre extração para sistema de arquivos local (PST/EML/JSON/conteúdo bruto). Restore direto para o tenant Microsoft 365 via Graph API (write-back) está documentado no roadmap da v1.1 — não é entregue ainda.

Posicionamento

O PodHeitor é um sistema de backup independente escrito em Rust. O M365 Backup Plugin é um componente do PodHeitor Backup Server e também pode ser consumido como plugin para Bacula Community 15.0.3 via a mesma API de plugin nativa — mas o produto vendido, suportado e roteirizado é o stack PodHeitor.

Escopo da v1.0.0 GA

Workload Mecanismo Modo
Caixas Exchange Online Delta API + $batch mode=mailbox
OneDrive for Business Drive walk + redirects 302 mode=onedrive
Sites e listas do SharePoint /sites/root + REST mode=sharepoint
Canais do Teams Graph app-only mode=teams
Chat do Teams por usuário /users/{id}/chats mode=chat
CDC near-real-time Graph Change Notifications + receiver webhook mode=cdc

Números relevantes

Indicador Valor medido na v1.0.0
Binário backend (stripped) 2,2 MB
Pacote instalado (RPM/DEB) ~1,2 MB
RAM por job < 150 MB target
RPO CDC configurável 60 s mínimo
Testes automatizados 220 passing, 0 failing, 1 ignored
Sistemas operacionais cobertos Oracle Linux 9, RHEL 9, AlmaLinux, Rocky, Debian 12, Ubuntu 22.04
Stack runtime ureq + rustls + ring + crossbeam — sem tokio, sem JVM, sem .NET

Decisões arquitetônicas relevantes

  • Memory-safe sem GC. O backend é Rust 1.x com unsafe_op_in_unsafe_fn = warn e clippy pedantic + restriction como gates de CI. Não há JVM nem runtime gerenciado consumindo RAM em paralelo ao job.
  • HTTP cliente simples. ureq síncrono com rustls + ring. Sem tokio. Throughput contra o Graph API é limitado pelo throttling do tenant, não pelo cliente.
  • Sem responsabilidade duplicada. Deduplicação é tratada pelo Storage Daemon do PodHeitor (ou pelo backend de storage — S3 dedup, dedup appliance). Detecção de ransomware é coberta por imutabilidade do storage (S3 Object Lock, vault imutável) ou por IDS/EDR externo. O M365 Plugin não tenta refazer essas funções.
  • Auditoria GDPR. Toda operação de right-to-be-forgotten é assinada com HMAC-SHA256 e gravada em log append-only, para que a remoção possa ser comprovada a um auditor — independente do estado posterior do catálogo.
  • Observabilidade. Endpoint Prometheus /metrics embedado no próprio binário. Não é necessário sidecar.

Quality gates da v1.0.0 GA

  • cargo fmt --check limpo
  • cargo clippy --all-targets -- -D warnings (pedantic + restriction) limpo
  • cargo test --release — 220 passed, 0 failed, 1 ignored
  • E2E em laboratório contra tenant Microsoft 365 real via cloudflared tunnel
  • Chaos suite cobrindo torn writes, cursor corrompido, JSON malformado e recovery
  • RUNBOOK operacional e GATE_REPORT publicados junto com o pacote

O que não está na v1.0.0 — roadmap v1.1

Para evitar interpretação errada na decisão de compra, a v1.0 GA não inclui os itens abaixo. Eles estão no roadmap da v1.1 com priorização confirmada:

  • Restore-to-M365 (write-back para o tenant via Graph PUT/POST) — F-7.1
  • Restore com PST embedado — F-8
  • Migração cross-tenant (mode=migrate) — F-24
  • GDPR purge na origem (DELETE real no Graph) — atualmente apenas marca local
  • Ferramenta standalone mode=gdpr_audit_verify

O fluxo suportado hoje para restaurar um item para a caixa de um usuário é: extrair do backup PodHeitor para PST/EML local, importar com Outlook ou ferramentas Microsoft. Quem precisa de write-back direto agora deve aguardar a v1.1 antes de planejar a adoção.

Compatibilidade

O plugin é distribuído como pacote RPM e DEB para as distros Linux listadas acima. Roda como componente do PodHeitor Backup Server. Para ambientes Bacula Community 15.0.3, há uma camada de adaptação que expõe o mesmo backend via a API de plugin nativa do Bacula — útil em migrações graduais.

Contato

Heitor Faria · podheitor.com · heitor@opentechs.lat · +1 786 726-1749 · +55 61 98268-4220 (WhatsApp)

Copyright © 2026 Heitor Faria. Todos os direitos reservados.

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe um comentário