# 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_at` e 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.