feat: Dev Tools ganha Demo/Seed Data, atalho Swagger e garante ENVIRONMENT correto no deploy #39
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/dev-tools-demo-seed-data"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Demo / Seed Data
Nova seção em Dev Tools (só
ENVIRONMENT=development, mesmo gate do test-runner existente): "Gerar dataset de demonstração" cria um conjunto pequeno mas visualmente completo no banco de dev real - 1 suite + 6 cenários, 1 plan + 5 runs cobrindo os 3 status de run e os 7 outcomes de step, 5 achados (severidades/status variados + 2 descrições parecidas pra demonstrar a sugestão de achado parecido), 3 requisitos com cobertura completa/parcial/nenhuma, 4 reports em status diferentes, 3 validações técnicas em níveis de progresso diferentes, e um cenário reexecutado com outcomes diferentes gerando sinal real de flakiness.Todo registro fica marcado com
"[DEMO] "no título/nome (+ tag reservadademo-seednos taggáveis) - sem tabela nova, sem migration. "Limpar dados de demonstração" localiza e apaga exatamente isso. Gerar é idempotente (no-op se já existe um dataset); Limpar é seguro de chamar mesmo sem nada gerado, e nunca toca dado criado manualmente (coberto em teste: cria manualmente 1 report/achado/requisito, gera+limpa o dataset de demo, confirma que só o[DEMO]some).Reaproveita as mesmas funções de serviço que os routers reais usam (
add_scenario_to_run,add_item_to_validation,get_or_create_tags/get_or_create_manufacturers) em vez de inserir estados que os endpoints de verdade nunca produziriam.Swagger/OpenAPI
/docse/openapi.jsonjá vinham habilitados por padrão no FastAPI (confirmado - nenhuma mudança de backend necessária). Adicionado um link "↗ Abrir Swagger / OpenAPI" em Dev Tools, reaproveitando a mesmaBASE_URLque o resto do frontend já resolve deVITE_API_URL(funciona igual em dev local e em deploy real). Exposição em produção mantida como está (mesmo basic auth do resto da API via Traefik) - decisão confirmada explicitamente antes de implementar.Deploy DEV garante ENVIRONMENT=development de verdade
compose.yamlé o mesmo arquivo pros dois ambientes - a diferença entre dev/produção é só qual--env-fileo CI passa por branch. O scriptdeploy-remote.shsó validava que o arquivo existia, nunca que oENVIRONMENTdentro dele batia com o esperado - se o.env.devremoto (mantido manualmente no servidor) estivesse desatualizado ou sem essa variável, o Compose caía silenciosamente no defaultproduction, sem erro nenhum.Fix:
export ENVIRONMENTlogo após validar o rótulo (já vindo do argumento que o CI passa por branch) - a variável de processo tem precedência sobre o--env-filena resolução do Compose, então toda invocação dedocker composeno script passa a receber o valor certo de forma determinística, sem depender de nenhum arquivo mantido manualmente. Mesmo fix fecha o risco simétrico (um.envde produção comdevelopmentescrito errado).scripts/test-deploy-remote.shganha asserções travando essa garantia.Verificação
bash scripts/test-deploy-remote.shpassando com as novas asserções deENVIRONMENT.🤖 Gerado com Claude Code