feat(radar): validação de conformidade por CNPJ (Radar de Conformidade) — 1.2.0 #2
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/compliance-radar"
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 é
Módulo
radarno microserviçodocuments: backend da nova página Validar conformidade do frontend (PR clubpetro-frontend#44).Endpoints
GET /radar/company/:cnpj— identidade na Receita Federal em cadeia de fallback (BrasilAPI → minhareceita.org → CNPJá Open). 404 na primeira fonte é resposta definitiva; erro de rede cai para a próxima. LGPD: o QSA é reduzido à contagem — nome de sócio não sai do serviço.GET /radar/anp/:cnpj— repasse da API de revendedores da ANP (sem CORS na origem) com decode ISO-8859-1 → UTF-8. Falha degrada paraavailable: false, nunca derruba o diagnóstico.GET/PUT /radar/assessments/:cnpj— autoavaliação dos 17 itens por (programa, loja, CNPJ), respostas em jsonb. O diagnóstico nunca é persistido: é recalculado a cada leitura, então regra nova de score vale imediatamente para avaliações antigas.Motor de score
RadarScoreService— espelho do frontend (mesma decisão do painel de conformidade): 17 itens em 7 esferas com pesos somando 100 (probabilidade × severidade), três números (declarado, verificado, confiança), e as regras R1–R7 da metodologia — decaimento temporal, teto por gargalo (impeditivo faltante trava em 39; protocolado em 59; não informado em 79), "não sei" = 0,25, evidência não altera o declarado, declaração envelhece após 180 dias, "não se aplica" sai do denominador com renormalização.Gates
radar_assessmentcomup()/down()simétricos,IF NOT EXISTS, índice único por (programId, storeId, cnpj)..env, sem dependência nova —fetchnativo do Node 20.JwtAuthGuard+FiltersInterceptorcomo nos demais módulos.Validação
yarn buildok;yarn test: 83 testes verdes (21 novos: 12 do motor + 9 do lookup, incluindo decode latin-1 da ANP e não-vazamento do QSA).🤖 Generated with Claude Code