Exemplos de configuração do arquivo YAML
Neste segmento, você encontrará uma série de exemplos práticos de utilização do Ro-DOU. A leitura dos exemplos ajudará a visualizar de que maneira o Ro-DOU pode ser utilizado.
Exemplo 1
A configuração a seguir cria uma DAG que realiza a pesquisa diária dos 6 termos listados e envia o relatório para o e-mail fornecido.
dag:
id: pesquisa_dou_termos_interesse_nitai
description: Pesquisa termos de interesse de Nitai.
search:
terms:
- dados abertos
- governo aberto
- engenharia de dados
- software livre
- código aberto
- open source
report:
emails:
- endereco@dominio.com
Exemplo 2
A configuração a seguir realiza a pesquisa diária de segunda-feira a sexta-feira, 8AM, apenas na Seção 1 e na Edição Suplementar e envia o resultado em formato CSV, anexado ao e-mail. O parâmetro schedule
aceita valores CRON.
dag:
id: dag_id_deve_ser_unico_em_todo_airflow
description: DAG exemplo de monitoramento no DOU.
schedule: 0 8 * * MON-FRI
search:
terms:
- alocação
- realoca
- permuta
- estrutura regimental
- organização básica
dou_sections:
- SECAO_1
- EDICAO_SUPLEMENTAR
report:
emails:
- dest1@gestao.gov.br
- dest2@gestao.gov.br
attach_csv: True
subject: Assunto do Email
Note que aqui são utilizados os parâmetros opcionais schedule
,
dou_section
e attach_csv
.
Exemplo 3
A configuração a seguir utiliza o parâmetro from_db_select
em terms
, que torna dinâmica a parametrização dos termos para pesquisa. Note também a inclusão de tags
que ajudam na organização e na busca das DAGs no Airflow.
dag:
id: dag_ultra_dinamica
description: A pesquisa depende do select SQL.
tags:
- projeto_a
- departamento_x
search:
terms:
from_db_select:
sql: SELECT text FROM schema.tabela;
conn_id: airflow_conn_id
report:
emails:
- email-destino@gestao.gov.br
subject: "[String] com caracteres especiais deve estar entre aspas"
Exemplo 4
A configuração a seguir utiliza o parâmetro from_airflow_variable
em terms
, que também carrega dinamicamente a lista de termos. Neste caso, há a recuperação a partir de uma variável do Airflow. Aqui, também é utilizado o campo field
para limitar as pesquisas ao campo título das publicações no Diário Oficial da União.
dag:
id: pesquisa_a_lista_na_variavel
description: É fácil editar a variável na interface do Airflow.
search:
terms:
from_airflow_variable: nome_da_variavel_no_airflow
field: TITULO
report:
emails:
- email-destino@gestao.gov.br
skip_null: False
Caso não encontre nenhum resultado, será enviado um e-mail informando que nenhum termo foi encontrado.
Exemplo 5
A configuração a seguir produz uma DAG que executa apenas uma vez por mês, no dia 1 às 8 AM, como pode ser visto no schedule
. Simultaneamente, a pesquisa no Diário Oficial da União é realizada nos diários oficiais do último mês inteiro, através do uso do parâmetro date
. Aqui, também é utilizado o parâmetro is_exact_search
com valor False
para utilizar uma pesquisa aproximada.
Apesar do fato de que o termo buscado "paralelpipido" contenha um erro ortográfico, a busca retorna os resultados corretos. Veja!
dag:
id: relatorio_mensal_do_dou
description: Envia um numero menor de emails.
schedule: 0 8 1 * *
search:
terms:
- paralelpipido
date: MES
is_exact_search: False
report:
emails:
- email-destino@gestao.gov.br
Exemplo 6
A configuração a seguir produz uma DAG que pesquisa no Querido Diário pelos termos "pandemia", "dados pessoais" e "prefeitura", buscando apenas os resultados do Diário Oficial de Belo Horizonte. Para conhecer o Querido Diário, acesse https://queridodiario.ok.org.br/.
dag:
id: dou_qd_example
description: DAG de teste
search:
sources:
- QD
territory_id: 3106200 # Belo Horizonte
terms:
- pandemia
- prefeitura
- '"dados pessoais"'
- '"Software+valor"~100'
- '"\"Alimentação escolar\"+valor"~100'
is_exact_search: False
number_of_excerpts: 5
excerpt_size: 500
report:
emails:
- destination@gestao.gov.br
attach_csv: True
subject: "Teste do Ro-dou"
Exemplo 7
A configuração a seguir produz uma DAG exatamente igual ao exemplo básico, mas adiciona uma descrição longa do que a DAG faz, usando o parâmetro
doc_md
. Essa descrição pode conter formatação markdown, incluindo
títulos, listas, links etc.
Além disso, acrescenta também uma referência ao nome do arquivo que gerou a DAG, bem como os seus parâmetros.
dag:
id: markdown_docs_example
description: DAG com documentação em markdown
search:
terms:
- dados abertos
- governo aberto
- lei de acesso à informação
report:
emails:
- destination@gestao.gov.br
subject: "Teste do Ro-dou"
doc_md: >-
## Ola!
Esta é uma DAG de exemplo com documentação em markdown. Esta
descrição é opcional e pode ser definida no parâmetro `doc_md`.
* Ah, aqui você também pode usar *markdown* para
* escrever listas, por exemplo,
* ou colocar [links](graph)!
Para ver essa documentação, basta clicar o botão "DAG Docs" em qualquer tela de visualização da DAG no Airflow.
Exemplo 8
Esta configuração envia as notificações para canais Discord. É necessário ter permissões de administrador no Discord para gerar o Webhook:
dag:
id: discord_example
description: Envia notificações para canal Discord
search:
terms:
- manifestação cultural
- expressão cultural
- política cultural
report:
report:
discord:
webhook: https://discord.com/api/webhooks/105220xxxxxx811250/Q-XsfdnoHtudTQ-8A6zzzzznitai-vi0bGLE7xxxxxxxxxxxxxxxxxxxmx94R3oZ1h0ngl1
Exemplo 9
Esta configuração envia as notificações para canais Slack. É necessário ter permissões de administrador no Slack para gerar o Webhook:
dag:
id: slack_example
description: Envia notificações para canal Slack
search:
terms:
- manifestação cultural
- expressão cultural
- política cultural
report:
report:
slack:
webhook: https://hooks.slack.com/services/XXXXXXXX/XXXXNFDXXX/n6QXXXXrPwxQ71ZXXXXXT9
Exemplo 10
Esta configuração filtra os resultados por órgão/unidade selecionados. Por enquanto disponível apenas para as pesquisas no DOU.
dag:
id: department_example
description: DAG de teste (filtro por departamento)
search:
terms:
- dados abertos
department:
- Ministério da Gestão e da Inovação em Serviços Públicos
- Ministério da Defesa
report:
emails:
- destination@gestao.gov.br
subject: "Teste do Ro-dou"
Exemplo 11
Esta configuração permite múltiplas buscas utilizando o mesmo arquivo. O Ro-dou permite numa mesma busca juntar resultados do DOU e Querido Diário.
dag:
id: multiple_searchs_example
description: DAG de teste com múltiplas buscas
search:
- header: "Pesquisa no DOU"
sources:
- DOU
terms:
- dados abertos
- governo aberto
- lei de acesso à informação
force_rematch: On
ignore_signature_match: On
- header: "Pesquisa no QD"
sources:
- QD
terms:
- dados abertos
- governo aberto
- lei de acesso à informação
force_rematch: On
ignore_signature_match: On
- header: "Pesquisa no DOU e QD (misto)"
sources:
- DOU
- QD
terms:
- dados abertos
- governo aberto
- lei de acesso à informação
force_rematch: On
ignore_signature_match: On
report:
emails:
- destination@gestao.gov.br
subject: "Teste do Ro-dou"
Exemplo 12
Esta configuração filtra os resultados por tipos de publicações selecionadas. Disponível para as pesquisas no DOU e INLABS.
dag:
id: pubtype_example
description: DAG de teste (filtro por tipo de publicação)
search:
sources:
- DOU
terms:
- programa
pubtype:
- Ato
- Portaria
- Edital
- Extrato
- Ratificação
- Resolução
- Retificação
- Protocolo
report:
emails:
- destination@gestao.gov.br
subject: "Teste do Ro-dou"
Exemplo 13
Esta dag recebe e lista dados de múltiplos territórios para busca no Querido Diário.
dag:
id: qd_list_territory_id_example
description: DAG de teste com múltiplos territory_id
schedule: 0 8 * * MON-FRI
search:
header: "Teste com múltiplos territory_id"
territory_id:
- 3300100
- 3300159
- 3300209
- 3305703
sources:
- QD
terms:
- LGPD
- RIO DE JANEIRO
- DADOS PESSOAIS
is_exact_search: True
number_of_excerpts: 5
excerpt_size: 500
report:
emails:
- destination@economia.gov.br
subject: "Teste do Ro-dou"
skip_null: False
Exemplo 14
Realiza as busca de termos a partir de uma fonte de um banco SGBD externo, possibilitando assim que os termos de buscas sejam dinâmicos.
dag:
id: terms_from_db_example
description: DAG de teste
search:
terms:
from_db_select:
sql: >
SELECT 'cloroquina' as TERMO, 'Ações inefetivas' as GRUPO
UNION SELECT 'ivermectina' as TERMO, 'Ações inefetivas' as GRUPO
UNION SELECT 'vacina contra covid' as TERMO, 'Ações efetivas' as GRUPO
UNION SELECT 'higienização das mãos' as TERMO, 'Ações efetivas' as GRUPO
UNION SELECT 'uso de máscara' as TERMO, 'Ações efetivas' as GRUPO
UNION SELECT 'distanciamento social' as TERMO, 'Ações efetivas' as GRUPO
conn_id: example_database_conn
date: MES
report:
emails:
- destination@economia.gov.br
attach_csv: True
subject: "[String] com caracteres especiais deve estar entre aspas"
Exemplo 15
Esta dag coleta e realiza pesquisas de dados do inlabs.
dag:
id: inlabs_example
description: DAG de teste
tags:
- inlabs
schedule: 0 8 * * MON-FRI
dataset: inlabs
owner:
- cdata
search:
sources:
- INLABS
terms:
- tecnologia
- informação
use_summary: True
report:
emails:
- destination@economia.gov.br
attach_csv: True
subject: "Teste do Ro-dou"
Exemplo 16
Esta dag realiza pesquisas com parâmetros de busca avançados quando a fonte é INLABS.
dag:
id: inlabs_advanced_search_example
description: DAG de teste
tags:
- inlabs
dataset: inlabs
owner:
- cdata
search:
sources:
- INLABS
terms:
- designar & ( MGI | MINISTÉRIO FAZENDA)
- instituto & federal ! paraná
report:
emails:
- destination@economia.gov.br
attach_csv: True
subject: "Teste do Ro-dou"
Exemplo 17
Esta dag é utilizada para ocultar filtros de pesquisa de texto e outros metadados.
dag:
id: hide_filters_example
description: DAG de teste
tags:
- inlabs
schedule: 0 8 * * MON-FRI
search:
header: HEADER TEXT
sources:
- INLABS
terms:
- tecnologia
- informação
department:
- Ministério da Gestão e da Inovação em Serviços Públicos
- Ministério da Defesa
report:
emails:
- destination@economia.gov.br
attach_csv: True
subject: "Teste do Ro-dou"
hide_filters: True