release: promove develop pra produção (Quality Intelligence, Analytics Builder, Painel Executivo, identidade via Authentik, datasets, Storybook, CI e docs) #69
Loading…
Reference in a new issue
No description provided.
Delete branch "develop"
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?
O que é
Promove pra produção tudo que já está validado em
develop— o dev estava adiantado em ~9 PRs de features/CI/docs em relação aomain, desde que a PR #67 (Authentik forward-auth + rede do Ollama) foi mergeada direto emmain, pulando o fluxo normal. A PR #68 já reconciliou essa divergência de infra; esta PR traz o restante.Principais mudanças
X-authentik-username,X-authentik-email, etc.) pra identificar o usuário autenticado e registrar log de auditoria das ações. Complementa a infra da PR #67/#68 (que já habilita o forward-auth no Traefik)./storybookno ambiente de dev (#61).Last-Modified(#59).USER_GUIDE(#63).Pendências conhecidas (não bloqueiam esta PR)
AI_BASE_URL/AI_MODELcontinuam vazios em produção (já eram antes) — a conectividade com o Ollama viaollama_netestá pronta desde a PR #67, falta só popular essas variáveis quando o modelo a usar for decidido.Verificação
git merge-treeentredevelopemain: sem conflitos.develop..mainestá vazio — ou seja, este merge é estritamente aditivo, nada de produção é perdido ou sobrescrito de forma inesperada.Cada cenario da biblioteca ganha linhas de dado opcionais (rotulo + pares chave/valor de metadado, sem templating no texto dos passos -- decisao explicita do usuario). Ao adicionar um cenario com dataset a um Run, um checklist deixa escolher quais linhas viram execucoes separadas (POST /api/runs/{id}/scenarios/from-dataset), cada uma rastreavel por dataset_row_id e com o rotulo no nome -- sem alterar o endpoint/comportamento existente de adicionar cenario avulso.Reaproveita quase tudo do item 10 (build_groups/scenario_health_rows/ regressions ja existentes), sem tabela nova. Decisoes de escopo confirmadas com o usuario: - "Area degradando" (item 12) = tendencia de aprovacao por build quebrada por tag (area = tag, mesma decisao do item 10), comparando os 2 ultimos builds com dado. - "Regressao recorrente" (item 12) = cenario que regrediu (PASS -> FAIL) em 2+ transicoes de build diferentes ao longo de todo o historico, nao so a comparacao build atual vs. anterior que regressions() ja faz. - "Critico" (item 12) = falha persistente (2+ execucoes seguidas) E vinculado a pelo menos um Requirement ativo -- cruza "ta quebrado" com "importa pro negocio". - "Hotspot por area" = soma de falhas por tag, serve tanto o item 12 ("onde esta o risco") quanto o item 13 ("onde estao os hotspots"). Audit confirmou que o item 13 (analise de impacto/grafo conceitual) praticamente nao precisa de backend novo: a matriz de rastreabilidade (/api/traceability/matrix) e a listagem de achados (/api/issues, que ja expoe tags) ja tem tudo que "requisitos com cenario falhando" e "achados cruzando multiplas areas" precisam -- so filtro/agrupamento no frontend, sem endpoint novo. 5 funcoes novas em services/quality_intelligence.py + 5 endpoints em modules/quality_intelligence/. Nova pagina /painel-executivo com 2 abas (Visao executiva / Analise de impacto). Nome/rota deliberadamente longe de "Resumo executivo (PDF)" ja existente em Metrics.tsx -- esse e sobre Reports/Issues (documentacao manual de QA), dominio completamente diferente do painel novo (saude de execucao de testes).Backend le identidade via headers X-authentik-* (forward-auth no Traefik, services/identity.py), com fallback de dev (DEV_FAKE_USER) que se recusa a funcionar se ENVIRONMENT=production por engano. Report.reviewer/approved_by e TestRun.executed_by deixam de aceitar texto livre e passam a ser auto-preenchidos a partir da identidade capturada. Novo modules/audit_log/ registra historico de mudanca de Report.status, Issue.status/severity e TestRun.status (GET /api/audit-log). Infra do lado do Authentik/Traefik ainda depende de um passo fora deste repo -- ver ADR-0014. Corrige tambem uma imprecisao de nomenclatura que já existia em varios docs ("Authelia" em vez de "Authentik" como mecanismo de auth planejado). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>