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 = warne clippy pedantic + restriction como gates de CI. Não há JVM nem runtime gerenciado consumindo RAM em paralelo ao job. - HTTP cliente simples.
ureqsíncrono comrustls+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
/metricsembedado no próprio binário. Não é necessário sidecar.
Quality gates da v1.0.0 GA
cargo fmt --checklimpocargo clippy --all-targets -- -D warnings(pedantic + restriction) limpocargo 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:
Português
English (Inglês)
Español (Espanhol)