Parte do épico #2048 (contrato comum preview → apply → verify → evidência). Plano: docs/plans/PLAN_REMEDIATION_INTERFACE.md; depende de #865.
Summary (EN): SharePoint/OneDrive remediation writer that accounts for version history, recycle bins and retention holds.
Contexto
Leitura existe (connectors/sharepoint_connector.py, microsoft_identity.py). Falta a escrita, e em SharePoint editar o arquivo não apaga o dado: cada versão guarda os valores antigos.
Escopo
- Estratégia de escrita: nova versão × sobrescrita; expurgo de versões antigas (exige permissão própria) e esvaziar as lixeiras de 1º e 2º estágio.
- Retenção e holds (rótulos de retenção, litigation hold): detectar e recusar em vez de agir (falha fechada), registrando o motivo.
- Co-autoria e clientes de sincronização (a cópia local do usuário).
- Escopo mínimo de permissão: leitura por padrão; escrita só com consentimento explícito e separado.
- Limites de taxa/throttling e reentrada idempotente.
- Reaproveitar o writer de arquivos para o conteúdo do arquivo.
Critérios de aceite
Disciplina de PR
Esta issue não pede PR própria. A fila inteira (épico) produz no máximo 2 PRs (ver o épico); commits por assunto dentro de cada uma.
P: P3 · U: U3 (sem pressão) · G: G2 (altera dado real no lugar) · Sequenciamento e milestone: operador + auditor; backlog até haver decisão.
Aberta por Claude Code (auditor), recomendatório; implementação é do Cursor. Evidência, não conclusão jurídica.
Parte do épico #2048 (contrato comum preview → apply → verify → evidência). Plano:
docs/plans/PLAN_REMEDIATION_INTERFACE.md; depende de #865.Summary (EN): SharePoint/OneDrive remediation writer that accounts for version history, recycle bins and retention holds.
Contexto
Leitura existe (
connectors/sharepoint_connector.py,microsoft_identity.py). Falta a escrita, e em SharePoint editar o arquivo não apaga o dado: cada versão guarda os valores antigos.Escopo
Critérios de aceite
docs/plans/PLAN_REMEDIATION_INTERFACE.md(+.pt_BR.md), com<!-- plans-hub-summary: ... -->atualizado.python scripts/plans_hub_sync.py --writeexecutado; entry emdocs/plans/PLANS_TODO.md.Disciplina de PR
Esta issue não pede PR própria. A fila inteira (épico) produz no máximo 2 PRs (ver o épico); commits por assunto dentro de cada uma.
P: P3 · U: U3 (sem pressão) · G: G2 (altera dado real no lugar) · Sequenciamento e milestone: operador + auditor;
backlogaté haver decisão.Aberta por Claude Code (auditor), recomendatório; implementação é do Cursor. Evidência, não conclusão jurídica.