O módulo usa a identidade Supabase, isola cada workspace e registra storage, TTL, runner e biblioteca XLSX como decisões ainda abertas. Co-authored-by: Cursor <cursoragent@cursor.com>
1.9 KiB
1.9 KiB
PROMPT 08 — Upload e validação de planilhas fonte
Use o MASTER CONTEXT.
Objetivo
Implementar carregamento temporário e validação estrutural das fontes sem persistência permanente.
Requisitos
- Até 10 fontes por operação.
- XLSX/CSV apenas.
- Até 10 MB por arquivo.
- Até 50.000 linhas úteis por arquivo.
- Arquivo corrompido/inválido deve falhar individualmente sem destruir as demais fontes válidas.
- XLSX multiaba: listar abas e exigir seleção de exatamente uma antes do mapeamento.
- Permitir definir linha de cabeçalho quando o sistema não puder assumir a primeira linha.
- Detectar cabeçalhos vazios/duplicados/problemáticos e apresentar causa clara.
- Inferir tipos estruturais suficientes para alertar inconsistências relevantes; não transformar dados.
- Retornar metadados para UI: abas, headers, row count, size, amostra segura e warnings.
- Temporários devem receber
expires_ate storage privado conforme política existente. Se TTL não estiver decidido, não invente número final; use configuração central/documentada.
Parsing
Antes de instalar biblioteca XLSX, verifique se o repo já possui uma. Se não houver decisão aprovada, proponha 2–3 alternativas com licença/manutenção/segurança e pare antes de consolidar dependência de produção.
UX
- lista de fontes com status individual;
- progress/validation state;
- erro recuperável por arquivo;
- opção de remover/recarregar;
- critérios acessíveis antes do upload.
Segurança
- MIME spoofing;
- arquivo zip bomb / estruturas anômalas quando aplicável ao XLSX;
- path traversal;
- limite de memória;
- não logar conteúdo bruto.
Testes
Arquivos válidos, 11º arquivo, >10MB, >50k, corrompido, CSV inválido, XLSX multiaba, header row alternativo, colunas sem título, tipos inconsistentes.
Entrega
Documente códigos de erro estáveis para a UI e estratégia de temporários.