AUR-570: o gate do Dependency-Track le as metricas so depois que assentaram
Defeito
bom/token responde processing: false quando o SBOM foi ingerido. A avaliacao
de politica e o recalculo das metricas terminam depois (medido no Dependency-Track
5.1.1: COMPLETED a ~1,47 s do envio, metricas atualizadas ~0,1 s depois). O
gate lia metrics/project/{id}/current na primeira resposta e aprovava
policy_violations=0 (achado 1 de docs/specs/AUR-563.md). Falha aberta.
Comportamento (internal/dtrack/settle.go)
Depois do polling do token, Run chama SettledMetrics:
GET /api/v1/metrics/project/{id}/refresh; qualquer status nao 2xx (403: a chave nao tem PORTFOLIO_MANAGEMENT, confirmado no servidor real) e tolerado e vira a notadtrack_refresh_unavailableno parecer.- Releitura de
.../currenta cadapoll_interval_seconds. Uma leitura e fresca selastOccurrencee posterior ao instante do upload (relogio do cliente) ou, quando nao, selastVulnerabilityAnalysisdeGET /api/v1/project/{id}e posterior ao upload. A segunda prova existe porque, medido no 5.1.1,lastOccurrenceNAO se move quando as metricas recalculadas sao iguais as guardadas (reenviar o mesmo SBOM). Duas leituras frescas consecutivas com mesmoscritical,high,policyViolationsTotalassentam; qualquer mudanca zera a contagem. 404 nas metricas espera. - Sem assentar em
timeout_seconds(janela propria, apos o token):ErrMetricsUnsettled, motivodtrack_metrics_unsettled, inconclusivo pelo modo da politica (block reprova, warn nao aprova).
Sem campo de configuracao novo. Leituras = 2, fixo.
Limites conhecidos
- A prova de frescor usa o relogio do cliente contra o do servidor; um servidor
adiantado em relacao ao cliente enfraquece a prova por
lastOccurrence(a estabilidade em duas leituras continua valendo). - Na prova por
lastVulnerabilityAnalysis(SBOM inalterado), a politica ja avaliada e a anterior; uma politica alterada entre dois envios do mesmo SBOM so e vista se o servidor recalcular dentro da janela. - O tutorial roda contra o servidor real; os testes Go usam servidor falso.
Testes
internal/dtrack/settle_test.go e cmd/aurumcode/aur570_test.go; aceite em tests/acceptance/AUR-570.sh (AC-001..AC-004 e AC-001-MUT-001).