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 , 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.
- Em , crie uma conexão nova e escolha o tipo Fonte Web Monitorada.
- Preencha a URL raiz — a página inicial da varredura (ex.:
https://www.planalto.gov.br/ccivil_03/leis/). Só endereçoshttp/httpspúblicos são aceitos; endereços privados ou internos são bloqueados por segurança, com mensagem clara em português. - 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.
- Raspar texto (
- Selecione o Contexto (domínio de destino) — obrigatório: é ele que define onde os documentos serão gravados. O destino nunca é adivinhado.
- Ajuste a Profundidade máxima (padrão 1, limite 5) e o Máximo de páginas por sync (padrão 25, limite 500).
- 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ícioeFimemHH: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.
- Reingerir (
- 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
RUNNINGe 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:
| Resultado | O 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 > 0 | Novas 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ção | Permissão | Perfis padrão |
|---|---|---|
| Ver monitoramento e histórico | SOURCE_MONITOR_VIEW | admin, steward, analista |
| Criar fonte / editar agenda e política | SOURCE_MONITOR_MANAGE (sensível) | admin |
| Verificar agora | SOURCE_MONITOR_RUN | admin, 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):
| Ajuste | Padrão | Efeito |
|---|---|---|
enabled (SOURCE_MONITOR_ENABLED) | true | Desliga o agendador por completo |
max-concurrent-syncs (SOURCE_MONITOR_MAX_CONCURRENT_SYNCS) | 2 | Verificações simultâneas por instância |
page-concurrency | 4 | Páginas verificadas em paralelo dentro de uma verificação |
lock-ttl | PT10M | Validade da trava distribuída |
fetch-timeout | PT20S | Tempo máximo por página |
max-redirects | 5 | Redirecionamentos seguidos — cada salto é re-validado contra endereços internos |
max-body-bytes | 10485760 (10 MB) | Teto de conteúdo por página |
check-now-per-hour | 10 | Limite de verificações manuais por usuário |
ingestion-mode (SOURCE_MONITOR_INGESTION_MODE) | ingestão real | logging roda em modo simulação: não ingere, apenas registra o que faria |
user-agent | DATTA-SourceMonitor/1.0 | Identificaçã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
| Sintoma | Causa provável | Ação |
|---|---|---|
| Fonte com agenda mas nunca roda | Interruptor desligado, execuções caindo fora da janela, ou o agendador desligado por configuração | Confira Monitoramento habilitado, os horários da janela e o ajuste SOURCE_MONITOR_ENABLED |
| Verificação manual recusada por sync em andamento | Verificaçã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 Falhou | Rede ou tempo esgotado na origem, URL bloqueada pela proteção anti-SSRF, ou a estrutura do HTML mudou | Veja 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 errado | Contexto (domínio de destino) incorreto na fonte | Corrija a configuração — o destino nunca é adivinhado |
| Mudança detectada mas nada re-ingerido | Política Apenas notificar ativa | Troque 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.