Skip to content

fix: desabilitar 6 agências Volto/SPA e corrigir URL CTIR#25

Merged
miguellsfilho merged 2 commits intomainfrom
fix/issue-23-disable-volto-spa-agencies
Mar 23, 2026
Merged

fix: desabilitar 6 agências Volto/SPA e corrigir URL CTIR#25
miguellsfilho merged 2 commits intomainfrom
fix/issue-23-disable-volto-spa-agencies

Conversation

@miguellsfilho
Copy link
Copy Markdown
Contributor

Descrição

Resolução da issue #23: desabilita 6 agências gov.br que usam Volto/SPA (React-based CMS) e corrige URL do CTIR.

Mudanças

Agências Desabilitadas (Volto/SPA)

As seguintes agências foram marcadas como active: false pois utilizam Volto/SPA, que requer JavaScript para renderizar o conteúdo. BeautifulSoup não consegue extrair notícias dessas páginas:

Todas incluem:

  • disabled_reason: "Volto/SPA - requer JavaScript"
  • disabled_date: "2026-03-18"

URL Corrigida

  • ctir - URL atualizada de /assuntos/noticias (índice de anos) para /assuntos/noticias/2025 (notícias diretas)
  • Mantém active: true

Impacto

  • ✅ Redução esperada de ~700-1.050 erros/dia
  • ✅ Taxa de sucesso: 88% → ~99%
  • ✅ Agências ativas: 148 de 161 (92% de cobertura)
  • ✅ Total de agências desabilitadas agora: 13

Arquivos Modificados

  • src/govbr_scraper/scrapers/config/site_urls.yaml
  • dags/config/site_urls.yaml

Ambos os arquivos foram sincronizados com as mesmas alterações.

Deploy

Deploy será automático via GitHub Actions ao fazer merge para main:

  • Workflow composer-deploy-dags.yaml atualizará as DAGs no Cloud Composer
  • As DAGs das 6 agências desabilitadas serão removidas automaticamente
  • DAG do CTIR continuará ativa com a nova URL

Relacionado

Checklist

  • 6 agências Volto/SPA desabilitadas com disabled_reason e disabled_date
  • URL do CTIR corrigida
  • Ambos site_urls.yaml sincronizados
  • Commit message segue padrão do projeto

Desabilita 6 agências gov.br que usam Volto/SPA (React CMS) e portanto
não podem ser coletadas com BeautifulSoup:
- ctav, esg, esporte, hfa, memp, reconstrucaors

Corrige URL do CTIR para apontar diretamente para /noticias/2025
ao invés do índice de anos.

Impacto esperado:
- Redução de ~700-1.050 erros/dia
- Taxa de sucesso: 88% → ~99%
- Agências ativas: 148 de 161 (92% cobertura)

Closes #23
Copy link
Copy Markdown
Contributor

@nitaibezerra nitaibezerra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excelente PR! 👏

Descrição muito bem feita — o impacto quantificado (redução de ~700-1.050 erros/dia, taxa de sucesso de 88% → ~99%) facilita demais a decisão de aprovar. Os dois YAMLs estão sincronizados e o código já trata todos os campos adicionados.

Parabéns pela organização e pela rastreabilidade com as issues relacionadas.

Análise técnica confirmou que povosindigenas é uma 7ª agência Volto/SPA:
- Plone 6 Volto framework detectado
- 269 arrays JSON-LD (3.2x mais que outras agências Volto)
- 11 marcadores data-react-helmet
- Razzle build system
- Conteúdo renderizado via React/JavaScript

A agência já estava desabilitada desde 2025-01-15, mas sem
disabled_reason documentado. Este commit apenas adiciona a
documentação correta do motivo.

Total de agências Volto/SPA: 7
(ctav, esg, esporte, hfa, memp, povosindigenas, reconstrucaors)
@miguellsfilho
Copy link
Copy Markdown
Contributor Author

🔍 Descoberta: 7ª Agência Volto/SPA Identificada

Durante validação das agências desabilitadas, identifiquei que povosindigenas também é um site Volto/SPA mas não estava documentada corretamente.

Evidências Técnicas (Confidence: 95%+)

Indicador Encontrado Detalhes
Meta Generator Plone 6 - https://plone.org
React Helmet 11 ocorrências de data-react-helmet="true"
Razzle Build System RAZZLE_APP_BARRA_GOV_BR_AMBIENTE (específico do Volto)
React Bundles /static/js/client.*.js, /static/js/runtime~client.*.js
JSON-LD Data 269 arrays "items":[] (3.2x mais que outras Volto!)
Empty Containers <div id="main">, <div id="view">

Comparação com Agências Confirmadas

Métrica ctav (confirmada) povosindigenas Match?
data-react-helmet 11 11
"items":[] arrays 83 269 ✅ (3.2x mais complexo!)
RAZZLE config
Plone 6 generator

Conclusão: povosindigenas tem MAIS indicadores Volto/SPA do que as agências já confirmadas, tornando a classificação ainda mais definitiva.

Status

Impacto

  • Total de agências Volto/SPA: 6 → 7 (+1)
  • Lista completa: ctav, esg, esporte, hfa, memp, povosindigenas, reconstrucaors
  • Nenhuma mudança operacional (já estava desabilitada)
  • Apenas melhora na documentação e rastreabilidade

Commit: 34bf7de

@mauriciomendonca
Copy link
Copy Markdown
Contributor

Revisão do PR #25fix: desabilitar 6 agências Volto/SPA e corrigir URL CTIR

FASE 0 — ENTENDIMENTO DO PR

PR de configuração que modifica apenas arquivos YAML (site_urls.yaml) em dois locais sincronizados. Desabilita 6 agências gov.br que usam Volto/SPA (impossíveis de coletar com BeautifulSoup), corrige a URL do CTIR, e documenta o disabled_reason de povosindigenas. Não altera código Python, DAGs, queries SQL nem lógica de pipeline. Risco de breaking change: nulo — apenas reduz o escopo de scraping.


FASE 1 — CORREÇÃO E INTEGRIDADE

Agências desabilitadas: As 6 agências (ctav, esg, esporte, hfa, memp, reconstrucaors) estão corretamente marcadas com active: false, disabled_reason e disabled_date. Consistente com a validação técnica descrita na issue #23.

URL CTIR: Corrigida de /assuntos/noticias (índice de anos) para /assuntos/noticias/2025 (notícias diretas). Observo que ibama já usa o mesmo padrão (/noticias/2025), então é consistente com o projeto.

povosindigenas: Já estava active: false desde 2025-01-15. O commit apenas adiciona disabled_reason: "Volto/SPA - requer JavaScript". Correto — melhora rastreabilidade sem alterar comportamento.

Sincronização dos dois YAMLs: Ambos os arquivos (dags/config/ e src/govbr_scraper/scrapers/config/) têm o mesmo hash git (fe45955..538108b), confirmando que estão 100% sincronizados. ✅

Ponto de atenção (MÉDIO):

  • ctir — URL hardcoded com ano /2025: Quando virar 2027, essa URL ficará desatualizada. O mesmo problema já existe para ibama. Não é um problema introduzido por este PR (segue padrão existente), mas vale registrar como follow-up para automatizar a resolução do ano.

FASE 1.5 — QUALIDADE DE CÓDIGO

N/A — PR altera apenas configuração YAML, sem lógica de código.


FASE 2 — ROBUSTEZ

N/A — Nenhum código executável foi alterado. O scraper já trata active: false corretamente (ignora a agência).


FASE 3 — SEGURANÇA

N/A — Apenas configuração YAML com URLs públicas. Sem credenciais, sem queries dinâmicas.


FASE 4 — PERFORMANCE

N/A — A mudança melhora performance ao eliminar ~700-1.050 requisições falhadas por dia.


FASE 5 — AIRFLOW

Nenhuma DAG foi alterada diretamente. Conforme descrito no PR, o deploy via GitHub Actions (composer-deploy-dags.yaml) atualizará as DAGs no Cloud Composer e as DAGs das 6 agências desabilitadas serão removidas automaticamente. ✅


FASE 6 — CONSISTÊNCIA ENTRE SISTEMAS

N/A — A desabilitação de agências impede que novos dados sejam coletados, mas não altera dados existentes em PostgreSQL, BigQuery ou Typesense. Os dados históricos dessas agências permanecem intactos.


FASE 7 — IMPACTO NO PORTAL

Impacto mínimo: o portal continuará exibindo notícias históricas das 6 agências desabilitadas, mas não receberá novas. Nenhum campo ou schema foi alterado.


CHECKS AVANÇADOS PARA PIPELINES

N/A — Nenhuma alteração em pipeline, queries ou lógica de processamento.


RESULTADO FINAL

Severidade Problema Ação
MÉDIO URL do CTIR hardcoded com /2025 — ficará desatualizada em 2027 (padrão já existente com ibama) Follow-up: criar issue para automatizar resolução de ano nas URLs
BAIXO Discrepância numérica entre issue (#23: "149 de 155") e descrição do PR ("148 de 161") — cosmético, sem impacto funcional Opcional: alinhar números na descrição

Veredito: APROVADO

PR está correto, bem documentado, com os dois YAMLs sincronizados. As mudanças são puramente de configuração e seguem os critérios de aceite da issue #23. O comentário sobre povosindigenas (commit adicional) agrega valor de documentação. O único ponto de atenção real (URL com ano hardcoded) é um padrão pré-existente e não deve bloquear este merge.


🤖 Revisão automatizada com Claude Code

Copy link
Copy Markdown
Contributor

@mauriciomendonca mauriciomendonca left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APROVADO — PR correto, bem documentado, YAMLs sincronizados. Apenas configuração, sem risco de breaking change. Ponto de follow-up: URL do CTIR com ano hardcoded (/2025).

@miguellsfilho miguellsfilho merged commit 892be03 into main Mar 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Desabilitar 6 agências Volto/SPA e corrigir URL CTIR

3 participants