Implementação MVP

This commit is contained in:
camilafagundes committed 2026-10-03 00:00:45 -03:00
commit 807b3d72cd
54 files changed
+5241

No files matched your search

@@ -0,0 +1,39 @@
# ADR-004 — Limites e segurança de arquivo
- Status: Proposed
- Data: 2026-10-02
- Pendência: P-006
- Decisão: nenhuma
## Contexto
O upload do modelo aceita PDF, PPTX e DOCX. A especificação deixa abertos tamanho máximo, antivírus, sandbox e o que fazer com extração parcial. P-012 também deixa abertas as metas numéricas de tempo e tamanho. Este ADR não preenche nenhum desses números.
## Alternativas
1. Allowlist de MIME e extensão, com teto de tamanho, sem antivírus no MVP.
2. Antivírus síncrono antes de persistir o arquivo.
3. Abertura do arquivo só em sandbox, com timeout.
4. Rejeitar qualquer extração parcial. A alternativa simétrica, aceitar documento parcial, também fica registrada e não foi escolhida.
Nenhuma combinação foi aprovada. Não há valor padrão de megabytes, timeout ou lista de assinaturas.
## Critérios para sair de Proposed
- Tamanho máximo por arquivo e por workspace, ou a decisão explícita de não ter teto.
- Varredura: obrigatória, adiada ou dispensada no MVP, com o risco aceito.
- Onde o arquivo é aberto e o que acontece se o conversor não terminar.
- Extração parcial: rejeita o upload ou segue com o que foi lido. Isso altera o rascunho de modelo e precisa estar explícito.
- Falha de política não cria rascunho de modelo nem dispara o motor do ADR-002.
## Impacto no código desta fase
`FileSecurityPolicy` só tem `unapproved` ou `approved` com uma referência de decisão. Não há campos `maxBytes` nem `timeoutMs`. A ingestão bloqueia em P-006 enquanto a política estiver `unapproved`.
## Impacto no prompt 02
Pode existir referência de storage privado para o arquivo de origem. Não criar check de tamanho, coluna de status de antivírus com fornecedor escolhido, nem job de varredura. Signed URL e bucket entram quando o fluxo de upload existir, com isolamento por workspace.
## Relação com os outros ADRs
P-010 escolhe como ler o arquivo. P-006 escolhe se ele pode ser aceito. Os dois precisam estar Approved antes do upload real do prompt 06. O checklist humano pede essa revisão antes do Pacote B.