PT EN
Voltar ao site

Fontes Monitoradas — Sites que se Mantêm Atualizados Sozinhos

Portais de legislação, diários oficiais e páginas institucionais mudam sem avisar — e manter esse conteúdo atualizado na mão significa revisitar cada site, comparar versões e re-importar tudo por via das dúvidas. Com as fontes monitoradas do DATTA, você cadastra a página uma vez, define a agenda, e a plataforma verifica a origem sozinha: detecta o que mudou, re-ingere apenas as páginas alteradas e versiona cada documento — a versão anterior nunca é apagada, apenas marcada como não vigente.

Tudo pela tela SistemaConexões, sem nenhum acesso à infraestrutura.

Arquitetura (delta, vigência, supersede, cascata): versionamento de fontes monitoradas. Casos detalhados de operação: runbook de troubleshooting.


Como funciona

Uma fonte monitorada é uma conexão do tipo Fonte Web Monitorada (WEB_SOURCE) com uma agenda de verificação. Ela é cadastrada no mesmo cadastro central de conexões que todas as demais fontes externas da plataforma — nada fica guardado à parte.

A cada execução, a plataforma compara a origem com o que já foi ingerido, sempre do sinal mais barato para o mais caro: primeiro o cabeçalho ETag da página, depois o hash do texto extraído e, nas fontes de API, o cursor de delta. Só o que realmente mudou aciona o pipeline de ingestão. Sem mudança, nenhum processamento caro acontece.

Quando uma página muda, o documento ganha nova versão e a anterior é marcada como superada — nunca apagada. O histórico completo fica preservado para consulta e auditoria.


Passo a passo: cadastrando uma fonte web

Cadastrar exige a permissão SOURCE_MONITOR_MANAGE.

  1. Em SistemaConexões, crie uma conexão nova e escolha o tipo Fonte Web Monitorada.
  2. Preencha a URL raiz — a página inicial da varredura (ex.: https://www.planalto.gov.br/ccivil_03/leis/). Só endereços http/https públicos são aceitos; endereços privados ou internos são bloqueados por segurança, com mensagem clara em português.
  3. Escolha a Estratégia de coleta:
    • Raspar texto (SCRAPE_TEXT, padrão) — extrai o conteúdo principal das páginas;
    • Baixar arquivos (DOWNLOAD_FILES) — baixa os arquivos vinculados (PDF, Office — veja os formatos suportados);
    • API com cursor (API_CURSOR) — coleta incremental por API. Ainda não há conector concreto disponível: a execução termina como "sem mudanças", com aviso.
  4. Selecione o Contexto (domínio de destino) — obrigatório: é ele que define onde os documentos serão gravados. O destino nunca é adivinhado.
  5. Ajuste a Profundidade máxima (padrão 1, limite 5) e o Máximo de páginas por sync (padrão 25, limite 500).
  6. Salve. A criação passa pelo fluxo normal de conexões — com impressão digital para deduplicação e registro de auditoria (DISCOVERY.ENSURE_SOURCE) — e a fonte já nasce com uma primeira verificação disparada.

Configurando a agenda: painel Monitoramento

Abra a conexão e vá ao painel Monitoramento:

  • Monitoramento habilitado — o interruptor liga e desliga o agendamento.
  • Agenda — escolha um preset: Diário às 06:00 (0 0 6 * * *), A cada 6 horas (0 0 */6 * * *), Semanal (segunda 06:00) (0 0 6 * * MON) — ou Personalizado, com uma expressão cron de 6 campos (formato Spring). Expressão inválida é rejeitada na hora, com mensagem em português.
  • Janela de execução (opcional)Início e Fim em HH:mm. Uma verificação que vence fora da janela espera a próxima janela. A janela pode cruzar a meia-noite (ex.: 22:00–05:00). Informe os dois horários ou nenhum.
  • Política ao detectar mudança:
    • Reingerir (REINGERIR_AUTO, padrão) — as URLs alteradas são re-ingeridas automaticamente, com versionamento supersede;
    • Apenas notificar (APENAS_NOTIFICAR) — a mudança é apenas registrada, para decisão de curadoria.
  • Salvar monitoramento — grava a configuração e registra o evento de auditoria SOURCE.MONITORING_UPDATED.

A tela mostra Última verificação e Próxima verificação, e a lista de conexões sinaliza cada fonte com Monitorada ou Sem agenda.

Toda mudança de agenda, janela ou política gera evento de auditoria, assim como a própria detecção de mudança quando a política é Apenas notificar — nesse caso, sob o evento SOURCE.CHANGE_DETECTED.

As mesmas operações também estão disponíveis para integração pela API da plataforma — leitura e gravação da agenda, disparo de verificação e consulta do histórico. Veja a referência de API.


Verificar agora

Não quer esperar a agenda? Use o botão Verificar agora no painel Monitoramento. A ação exige a permissão SOURCE_MONITOR_RUN.

  • A verificação responde imediatamente e roda em segundo plano: a plataforma devolve na hora o identificador da sincronização, o estado RUNNING e o caminho para acompanhá-la no histórico.
  • Usa a mesma trava do agendador: se já existe uma verificação em andamento para aquela fonte, a nova é recusada com a mensagem de sync em andamento. Nunca há duas verificações simultâneas da mesma fonte.
  • Limite de 10 execuções por hora, por usuário — acima disso a chamada é recusada por excesso de requisições.
  • Quem disparou fica registrado tanto na execução quanto na auditoria: uma verificação manual nunca se confunde com a agendada.

Histórico de sincronizações

O painel Histórico lista as execuções paginadas (20 por página por padrão; o tamanho aceita de 1 a 100). Colunas: quando rodou, o gatilho (SCHEDULED, MANUAL ou ON_CREATE), o resultado (Concluído, Sem mudanças, Falhou ou Executando), páginas verificadas, documentos novos, documentos alterados e a mensagem de erro quando houver.

Como interpretar:

ResultadoO que significa
Sem mudanças (NO_CHANGE)A origem está igual. Nenhuma chamada de IA ou de embedding foi feita — a detecção barata poupou o pipeline inteiro
Concluído (COMPLETED) com documentos alterados > 0Novas versões foram criadas com supersede; os ativos re-gerados aparecem na curadoria
Falhou (FAILED)Veja a mensagem de erro na própria linha e a seção de solução de problemas abaixo

Permissões

AçãoPermissãoPerfis padrão
Ver monitoramento e históricoSOURCE_MONITOR_VIEWadmin, steward, analista
Criar fonte / editar agenda e políticaSOURCE_MONITOR_MANAGE (sensível)admin
Verificar agoraSOURCE_MONITOR_RUNadmin, steward

A interface esconde os controles de quem não tem a permissão ("Você não tem permissão para alterar/executar/visualizar o monitoramento desta fonte."), mas o bloqueio real é sempre no servidor: a chamada é recusada com 403 e o evento entra na auditoria. Veja o guia de perfis e permissões.


Limites de execução e ajuste fino

A plataforma aplica limites automáticos para proteger tanto o site de origem quanto a instância. Os ajustes ficam sob o prefixo de configuração datta.connections.source-monitor.* (variáveis de ambiente entre parênteses):

AjustePadrãoEfeito
enabled (SOURCE_MONITOR_ENABLED)trueDesliga o agendador por completo
max-concurrent-syncs (SOURCE_MONITOR_MAX_CONCURRENT_SYNCS)2Verificações simultâneas por instância
page-concurrency4Páginas verificadas em paralelo dentro de uma verificação
lock-ttlPT10MValidade da trava distribuída
fetch-timeoutPT20STempo máximo por página
max-redirects5Redirecionamentos seguidos — cada salto é re-validado contra endereços internos
max-body-bytes10485760 (10 MB)Teto de conteúdo por página
check-now-per-hour10Limite de verificações manuais por usuário
ingestion-mode (SOURCE_MONITOR_INGESTION_MODE)ingestão reallogging roda em modo simulação: não ingere, apenas registra o que faria
user-agentDATTA-SourceMonitor/1.0Identificação usada nas requisições ao site de origem

Atenção: esses ajustes ainda não têm campo próprio na configuração declarativa da instalação — hoje o override é feito por variável de ambiente na implantação. Persista a mudança na configuração versionada antes de fechar qualquer alteração desses valores em produção.

O estado da agenda e a trava de execução ficam no cache da plataforma, sob as chaves datta:sources:monitoring:{id} (configuração, validade de 5 minutos) e datta:sources:sync-lock:{id} (trava, validade de 10 minutos).


Solução de problemas

SintomaCausa provávelAção
Fonte com agenda mas nunca rodaInterruptor desligado, execuções caindo fora da janela, ou o agendador desligado por configuraçãoConfira Monitoramento habilitado, os horários da janela e o ajuste SOURCE_MONITOR_ENABLED
Verificação manual recusada por sync em andamentoVerificação anterior ainda rodando (trava ativa)Aguarde a conclusão no histórico ou consulte o runbook (caso de trava presa)
Execução termina em FalhouRede ou tempo esgotado na origem, URL bloqueada pela proteção anti-SSRF, ou a estrutura do HTML mudouVeja a mensagem de erro na linha do histórico e revise a URL raiz; casos detalhados no runbook
Documentos re-ingeridos indo para o contexto erradoContexto (domínio de destino) incorreto na fonteCorrija a configuração — o destino nunca é adivinhado
Mudança detectada mas nada re-ingeridoPolítica Apenas notificar ativaTroque para Reingerir se quiser o fluxo automático

Casos detalhados — trava presa, sincronização órfã, falso delta e backfill de vigência — estão no runbook de troubleshooting.