Skip to content

feat: endpoint /verify/integrity para verificação de integridade#18

Open
nitaibezerra wants to merge 2 commits intomainfrom
feature/verify-integrity
Open

feat: endpoint /verify/integrity para verificação de integridade#18
nitaibezerra wants to merge 2 commits intomainfrom
feature/verify-integrity

Conversation

@nitaibezerra
Copy link
Copy Markdown
Contributor

Summary

  • Novo módulo integrity/ com funções de verificação de imagens (HTTP HEAD) e conteúdo (GET condicional com ETag + SHA-256)
  • Endpoint POST /verify/integrity que recebe batch de artigos e retorna status por artigo
  • Paralelismo via ThreadPoolExecutor (max 20 workers)

Contexto

Quando notícias são editadas nos sites gov.br, imagens podem mudar ou ser removidas, quebrando o portal. Este endpoint é chamado pela DAG verify_news_integrity do data-platform para verificar periodicamente a integridade.

Ref: data-platform#68

Test plan

  • 16 testes unitários passando (checker, service, batch)
  • Testar localmente: poetry run uvicorn govbr_scraper.api:app --reload + curl
  • Validar no Cloud Run após deploy

- ctir: remover /2025 hardcoded da URL de notícias
- sri: simplificar URL para /noticias (era /noticias/mais-noticias/ultimas-noticias)
- hfa: remover ?b_start:int=0 duplicado da URL
- imprensanacional: desativar (URL retorna 404, site sem página de notícias)

Reduz 4 das 12 agências com falha persistente (scraper#13).
…ntegridade de notícias

Novo módulo integrity/ com checker.py (verificação de imagens via HEAD e
conteúdo via GET condicional) e service.py (orquestração em batch com
ThreadPoolExecutor). Endpoint na API recebe lista de artigos e retorna
status de imagem e conteúdo para cada um.

Ref: data-platform#68
@nitaibezerra nitaibezerra enabled auto-merge (squash) March 5, 2026 17:59
@nitaibezerra nitaibezerra requested review from ODenteAzul and removed request for LucaasMa March 5, 2026 18:06
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.

1 participant