404
+ +Page not found
+ + +diff --git a/documentation/Dockerfile b/documentation/Dockerfile new file mode 100644 index 0000000..795aff3 --- /dev/null +++ b/documentation/Dockerfile @@ -0,0 +1,21 @@ +FROM python:3.10-slim + +WORKDIR /usr/src/app + +COPY . . + +RUN pip install mkdocs + +EXPOSE 8000 + +CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"] + +# Para rodar o site localmente, sem container, basta instalar o MkDocs +# via pip/Python +# Em seguida, rodar neste diretório: mkdocs serve + +# Para efetuar o build com container Docker: +# docker compose up --build + +# Para gerar os arquivos estáticos necessários para o GitHub Pages: +# docker compose run --rm mkdocs mkdocs build \ No newline at end of file diff --git a/documentation/docker-compose.yml b/documentation/docker-compose.yml new file mode 100644 index 0000000..9ed5422 --- /dev/null +++ b/documentation/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.8' + +services: + mkdocs: + image: python:3.10-slim + container_name: mkdocs-site + working_dir: /usr/src/app + volumes: + - .:/usr/src/app + ports: + - "8000:8000" + command: mkdocs serve -a 0.0.0.0:8000 + build: + context: . + dockerfile: Dockerfile + dns: + - 1.1.1.1 + - 1.0.0.1 diff --git a/documentation/docs/estrutura.md b/documentation/docs/estrutura.md deleted file mode 100644 index e69de29..0000000 diff --git a/documentation/docs/faq.md b/documentation/docs/faq.md index 6529707..b91e219 100644 --- a/documentation/docs/faq.md +++ b/documentation/docs/faq.md @@ -1,2 +1,5 @@ ## FAQ e problemas frequentes +Nesta seção, você encontrará perguntas e respostas comuns e solução de problemas mais frequentes na utilização do Ro-DOU. + +Esta seção ainda está em desenvolvimento e será disponibilizada em breve. \ No newline at end of file diff --git a/documentation/docs/index.md b/documentation/docs/index.md index 5ed96d4..32d6000 100644 --- a/documentation/docs/index.md +++ b/documentation/docs/index.md @@ -9,6 +9,4 @@ Neste site, você encontrará informações sobre como usar o Ro-DOU e quais fun O Ro-DOU é uma solução desenvolvida pela Secretaria de Gestão e Inovação do [Ministério da Gestão e da Inovação em Serviços Públicos](https://www.gov.br/gestao/pt-br). -Confira o histórico de alterações do Ro-DOU aqui: [CHANGELOG.md](CHANGELOG.md). - diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml index 64d63a2..f9ff8f8 100644 --- a/documentation/mkdocs.yml +++ b/documentation/mkdocs.yml @@ -6,6 +6,7 @@ nav: - Como utilizar: utilizacao.md - Como funciona: funcionamento.md - Como contribuir: contribuicoes.md + - FAQ: faq.md - Oficinas e mídias: midias.md - Links relevantes: links.md - Contato: contato.md diff --git a/documentation/site/404.html b/documentation/site/404.html new file mode 100644 index 0000000..76a2a9c --- /dev/null +++ b/documentation/site/404.html @@ -0,0 +1,141 @@ + + +
+ + + + +Page not found
+ + +As principais mudanças realizadas no repositório do Ro-ou estão documentadas aqui a partir de 31/08/2023.
+Altera a forma de encontrar os arquivos de configuração das DAGs (dag_confs/*.yml
).
Antes considerava que a pasta dag_confs/
estava na mesma raiz que os arquivos do ro-dou em ./src
. Agora o caminho da(s) pasta(s) deve ser informado pela variável de ambiente RO_DOU__DAG_CONF_DIR
e separado por :
quando mais de um.
Exemplo:
+As pastas /opt/airflow/dags/repo1/dag_confs
e /opt/airflow/dags/repo2/dag_confs
possuem arquivos de configuração (yaml) para geração das DAGs do rodou. A variável de ambiente RO_DOU__DAG_CONF_DIR
deve ser atribuída assim:
RO_DOU__DAG_CONF_DIR=/opt/airflow/dags/repo1/dag_confs:/opt/airflow/dags/repo2/dag_confs
+
+Esta alteração permite que os arquivos de configuração das DAGs (dag_confs/*.yml
) estejam em qualquer pasta da máquina ou container.
O Ro-DOU é desenvolvido e mantido pela Coordenação-Geral de Gestão da Informação, órgão do Ministério da Gestão e da Inovação em Serviços Públicos: https://www.gov.br/gestao/pt-br.
+Dúvidas, sugestões e demais comentários sobre o Ro-DOU podem ser enviados ao endereço de e-mail seges.cginf@gestao.gov.br.
+Interações de caráter técnico e sugestões de melhoria no código-fonte e nas funcionalidades do Ro-DOU podem ser enviadas diretamente via GitHub, por meio da abertura de issues
: https://github.com/gestaogovbr/Ro-dou.
Os arquivos do projeto Ro-DOU são disponibilizados publicamente no perfil GitHub do Ministério da Gestão e da Inovação em Serviços Públicos e podem ser acessados clicando aqui.
+Contribuições externas ao projeto são bem-vindas. Para sugerir melhorias, abra uma issue
via GitHub. A issue
será avaliada assim que possível pela equipe da SEGES/MGI.
Caso deseje expressar outros comentários, críticas, dúvidas ou sugestões, contate-nos.
+ +Nesta seção, você encontrará perguntas e respostas comuns e solução de problemas mais frequentes na utilização do Ro-DOU.
+Esta seção ainda está em desenvolvimento e será disponibilizada em breve.
+ +Nesta seção, você encontrará as seguintes informações sobre o Ro-DOU:
+Todos os parâmetros disponíveis para pesquisa no Diário Oficial da União (DOU) foram criados a partir da API da Imprensa Nacional, que por sua vez é utilizada pelo buscador oficial do DOU em https://www.in.gov.br/consulta/.
+Assim, é possível notar que o Ro-DOU consegue automatizar todo, ou quase todo, tipo de pesquisa que pode ser feita no site do Diário Oficial da União. A imagem abaixo é o painel de pesquisa avançada do site:
+ +O Ro-DOU possui os seguintes recursos e funcionalidades voltados aos usuários:
+.CSV
para facilitação do uso;A tabela abaixo resume os parâmetros de pesquisa disponíveis no Ro-DOU:
+dou_sections | +date | +field | +
---|---|---|
SECAO_1 | +DIA | +TUDO | +
SECAO_2 | +SEMANA | +TITULO | +
SECAO_3 | +MES | +CONTEUDO | +
EDICAO_EXTRA | +ANO | +--- | +
EDICAO_SUPLEMENTAR | +--- | +--- | +
TODOS | +--- | +--- | +
Por padrão, caso omitido, o valor do parâmetro dou_sections
é TODOS. Nessa hipótese, a pesquisa é feita em todas as seções do Diário Oficial da União. Este campo aceita mais de uma opção.
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.
+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:
+ - nitaibezerra@protonmail.com
+
+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
.
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"
+
+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.
+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
+
+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
+ - dados pessoais
+ - prefeitura
+ report:
+ emails:
+ - destination@gestao.gov.br
+ attach_csv: True
+ subject: "Teste do Ro-dou"
+
+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.
+ +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
+
+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
+
+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"
+
+
+ O Ro-DOU é uma ferramenta que efetua um clipping do Diário +Oficial da União (D.O.U.) e dos Diários Oficiais de municípios, por meio do Querido Diário. O Ro-DOU permite o recebimento de notificações (via e-mail, Slack, Discord ou outros) de todas as publicações que contenham as palavras-chaves que você definir.
+Neste site, você encontrará informações sobre como usar o Ro-DOU e quais funcionalidades ele proporciona, além de outras informações sobre como contribuir para melhorar a ferramenta e como contatar o MGI.
+O Ro-DOU é uma solução desenvolvida pela Secretaria de Gestão e Inovação do Ministério da Gestão e da Inovação em Serviços Públicos.
+ +Para operar, o Ro-DOU utiliza diferentes tecnologias, ferramentas e dependências. Podem ser destacadas as seguintes:
+O Ro-DOU também utiliza as funcionalidades da ferramenta Querido Diário:
+ +Este site de documentação do Ro-DOU foi elaborado com a ajuda do MkDocs:
+Ro-DOU - Robô de mineração do Diário Oficial da União - apresentação completa no canal da ENAP no YouTube, feita na Semana de Inovação de 2021.
+ +Nesta seção, você encontrará as seguintes informações sobre o Ro-DOU:
+Conforme dito na página inicial, o Ro-DOU é uma ferramenta que efetua um clipping do Diário +Oficial da União (D.O.U.) e dos Diários Oficiais de municípios, por meio do Querido Diário. O Ro-DOU permite o recebimento de notificações (via e-mail, Slack, Discord ou outros) de todas as publicações que contenham as palavras-chaves que você definir.
+O Ro-DOU gera dinamicamente grafos acíclicos dirigidos (DAGs) no Apache Airflow. Uma DAG nada mais é que um fluxo de tarefas executadas em sequência ou de maneira paralela, a partir de um código Python. Para entender com mais detalhes técnicos como uma DAG do Airflow funciona, clique aqui.
+Nos arquivos YAML, é possível configurar os detalhes dos termos de pesquisa desejado (as palavras-chaves) e os contatos (e.g. endereços de e-mail) para recebimento dos resultados da pesquisa.
+A maneira como os diferentes componentes do Ro-DOU se relacionam pode ser sintetizada no diagrama abaixo:
+[INSERIR DIAGRAMA]
+ +' + escapeHtml(summary) +'
' + noResultsText + '
'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/documentation/site/search/search_index.json b/documentation/site/search/search_index.json new file mode 100644 index 0000000..88f3a19 --- /dev/null +++ b/documentation/site/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Ro-DOU O Ro-DOU \u00e9 uma ferramenta que efetua um clipping do Di\u00e1rio Oficial da Uni\u00e3o ( D.O.U. ) e dos Di\u00e1rios Oficiais de munic\u00edpios, por meio do Querido Di\u00e1rio . O Ro-DOU permite o recebimento de notifica\u00e7\u00f5es (via e-mail, Slack, Discord ou outros) de todas as publica\u00e7\u00f5es que contenham as palavras-chaves que voc\u00ea definir. Neste site, voc\u00ea encontrar\u00e1 informa\u00e7\u00f5es sobre como usar o Ro-DOU e quais funcionalidades ele proporciona, al\u00e9m de outras informa\u00e7\u00f5es sobre como contribuir para melhorar a ferramenta e como contatar o MGI. O Ro-DOU \u00e9 uma solu\u00e7\u00e3o desenvolvida pela Secretaria de Gest\u00e3o e Inova\u00e7\u00e3o do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos .","title":"P\u00e1gina Inicial"},{"location":"#ro-dou","text":"O Ro-DOU \u00e9 uma ferramenta que efetua um clipping do Di\u00e1rio Oficial da Uni\u00e3o ( D.O.U. ) e dos Di\u00e1rios Oficiais de munic\u00edpios, por meio do Querido Di\u00e1rio . O Ro-DOU permite o recebimento de notifica\u00e7\u00f5es (via e-mail, Slack, Discord ou outros) de todas as publica\u00e7\u00f5es que contenham as palavras-chaves que voc\u00ea definir. Neste site, voc\u00ea encontrar\u00e1 informa\u00e7\u00f5es sobre como usar o Ro-DOU e quais funcionalidades ele proporciona, al\u00e9m de outras informa\u00e7\u00f5es sobre como contribuir para melhorar a ferramenta e como contatar o MGI. O Ro-DOU \u00e9 uma solu\u00e7\u00e3o desenvolvida pela Secretaria de Gest\u00e3o e Inova\u00e7\u00e3o do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos .","title":"Ro-DOU"},{"location":"changelog/","text":"Changelog As principais mudan\u00e7as realizadas no reposit\u00f3rio do Ro-ou est\u00e3o documentadas aqui a partir de 31/08/2023. [0.1.0] - 2023-08-31 Altera a forma de encontrar os arquivos de configura\u00e7\u00e3o das DAGs ( dag_confs/*.yml ). Antes considerava que a pasta dag_confs/ estava na mesma raiz que os arquivos do ro-dou em ./src . Agora o caminho da(s) pasta(s) deve ser informado pela vari\u00e1vel de ambiente RO_DOU__DAG_CONF_DIR e separado por : quando mais de um. Exemplo: As pastas /opt/airflow/dags/repo1/dag_confs e /opt/airflow/dags/repo2/dag_confs possuem arquivos de configura\u00e7\u00e3o (yaml) para gera\u00e7\u00e3o das DAGs do rodou. A vari\u00e1vel de ambiente RO_DOU__DAG_CONF_DIR deve ser atribu\u00edda assim: RO_DOU__DAG_CONF_DIR=/opt/airflow/dags/repo1/dag_confs:/opt/airflow/dags/repo2/dag_confs Esta altera\u00e7\u00e3o permite que os arquivos de configura\u00e7\u00e3o das DAGs ( dag_confs/*.yml ) estejam em qualquer pasta da m\u00e1quina ou container.","title":"Changelog"},{"location":"changelog/#changelog","text":"As principais mudan\u00e7as realizadas no reposit\u00f3rio do Ro-ou est\u00e3o documentadas aqui a partir de 31/08/2023.","title":"Changelog"},{"location":"changelog/#010-2023-08-31","text":"Altera a forma de encontrar os arquivos de configura\u00e7\u00e3o das DAGs ( dag_confs/*.yml ). Antes considerava que a pasta dag_confs/ estava na mesma raiz que os arquivos do ro-dou em ./src . Agora o caminho da(s) pasta(s) deve ser informado pela vari\u00e1vel de ambiente RO_DOU__DAG_CONF_DIR e separado por : quando mais de um. Exemplo: As pastas /opt/airflow/dags/repo1/dag_confs e /opt/airflow/dags/repo2/dag_confs possuem arquivos de configura\u00e7\u00e3o (yaml) para gera\u00e7\u00e3o das DAGs do rodou. A vari\u00e1vel de ambiente RO_DOU__DAG_CONF_DIR deve ser atribu\u00edda assim: RO_DOU__DAG_CONF_DIR=/opt/airflow/dags/repo1/dag_confs:/opt/airflow/dags/repo2/dag_confs Esta altera\u00e7\u00e3o permite que os arquivos de configura\u00e7\u00e3o das DAGs ( dag_confs/*.yml ) estejam em qualquer pasta da m\u00e1quina ou container.","title":"[0.1.0] - 2023-08-31"},{"location":"contato/","text":"Contato O Ro-DOU \u00e9 desenvolvido e mantido pela Coordena\u00e7\u00e3o-Geral de Gest\u00e3o da Informa\u00e7\u00e3o, \u00f3rg\u00e3o do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos: https://www.gov.br/gestao/pt-br . D\u00favidas, sugest\u00f5es e demais coment\u00e1rios sobre o Ro-DOU podem ser enviados ao endere\u00e7o de e-mail seges.cginf@gestao.gov.br . Intera\u00e7\u00f5es de car\u00e1ter t\u00e9cnico e sugest\u00f5es de melhoria no c\u00f3digo-fonte e nas funcionalidades do Ro-DOU podem ser enviadas diretamente via GitHub, por meio da abertura de issues : https://github.com/gestaogovbr/Ro-dou .","title":"Contato"},{"location":"contato/#contato","text":"O Ro-DOU \u00e9 desenvolvido e mantido pela Coordena\u00e7\u00e3o-Geral de Gest\u00e3o da Informa\u00e7\u00e3o, \u00f3rg\u00e3o do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos: https://www.gov.br/gestao/pt-br . D\u00favidas, sugest\u00f5es e demais coment\u00e1rios sobre o Ro-DOU podem ser enviados ao endere\u00e7o de e-mail seges.cginf@gestao.gov.br . Intera\u00e7\u00f5es de car\u00e1ter t\u00e9cnico e sugest\u00f5es de melhoria no c\u00f3digo-fonte e nas funcionalidades do Ro-DOU podem ser enviadas diretamente via GitHub, por meio da abertura de issues : https://github.com/gestaogovbr/Ro-dou .","title":"Contato"},{"location":"contribuicoes/","text":"Como contribuir Os arquivos do projeto Ro-DOU s\u00e3o disponibilizados publicamente no perfil GitHub do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos e podem ser acessados clicando aqui . Contribui\u00e7\u00f5es externas ao projeto s\u00e3o bem-vindas. Para sugerir melhorias, abra uma issue via GitHub. A issue ser\u00e1 avaliada assim que poss\u00edvel pela equipe da SEGES/MGI. Caso deseje expressar outros coment\u00e1rios, cr\u00edticas, d\u00favidas ou sugest\u00f5es, contate-nos .","title":"Como contribuir"},{"location":"contribuicoes/#como-contribuir","text":"Os arquivos do projeto Ro-DOU s\u00e3o disponibilizados publicamente no perfil GitHub do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos e podem ser acessados clicando aqui . Contribui\u00e7\u00f5es externas ao projeto s\u00e3o bem-vindas. Para sugerir melhorias, abra uma issue via GitHub. A issue ser\u00e1 avaliada assim que poss\u00edvel pela equipe da SEGES/MGI. Caso deseje expressar outros coment\u00e1rios, cr\u00edticas, d\u00favidas ou sugest\u00f5es, contate-nos .","title":"Como contribuir"},{"location":"faq/","text":"FAQ e problemas frequentes Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 perguntas e respostas comuns e solu\u00e7\u00e3o de problemas mais frequentes na utiliza\u00e7\u00e3o do Ro-DOU. Esta se\u00e7\u00e3o ainda est\u00e1 em desenvolvimento e ser\u00e1 disponibilizada em breve.","title":"FAQ"},{"location":"faq/#faq-e-problemas-frequentes","text":"Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 perguntas e respostas comuns e solu\u00e7\u00e3o de problemas mais frequentes na utiliza\u00e7\u00e3o do Ro-DOU. Esta se\u00e7\u00e3o ainda est\u00e1 em desenvolvimento e ser\u00e1 disponibilizada em breve.","title":"FAQ e problemas frequentes"},{"location":"funcionamento/","text":"Como funciona Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 as seguintes informa\u00e7\u00f5es sobre o Ro-DOU: Compreendendo melhor a pesquisa no Di\u00e1rio Oficial da Uni\u00e3o Recursos e funcionalidades Par\u00e2metros de pesquisa dispon\u00edveis Exemplos de configura\u00e7\u00e3o do arquivo YAML Compreendendo melhor a pesquisa no Di\u00e1rio Oficial da Uni\u00e3o Todos os par\u00e2metros dispon\u00edveis para pesquisa no Di\u00e1rio Oficial da Uni\u00e3o (DOU) foram criados a partir da API da Imprensa Nacional, que por sua vez \u00e9 utilizada pelo buscador oficial do DOU em https://www.in.gov.br/consulta/ . Assim, \u00e9 poss\u00edvel notar que o Ro-DOU consegue automatizar todo, ou quase todo, tipo de pesquisa que pode ser feita no site do Di\u00e1rio Oficial da Uni\u00e3o. A imagem abaixo \u00e9 o painel de pesquisa avan\u00e7ada do site: Recursos e funcionalidades O Ro-DOU possui os seguintes recursos e funcionalidades voltados aos usu\u00e1rios: Resultados com frequ\u00eancias di\u00e1ria , semanal ou mensal ; Relat\u00f3rios em formato .CSV para facilita\u00e7\u00e3o do uso; Busca din\u00e2mica das palavras-chaves de um banco de dados ou de uma vari\u00e1vel ; Pesquisa em se\u00e7\u00e3o espec\u00edfica do di\u00e1rio oficial; Envio de notifica\u00e7\u00f5es para os canais existentes no Discord e no Slack. Par\u00e2metros de pesquisa dispon\u00edveis A tabela abaixo resume os par\u00e2metros de pesquisa dispon\u00edveis no Ro-DOU: dou_sections date field SECAO_1 DIA TUDO SECAO_2 SEMANA TITULO SECAO_3 MES CONTEUDO EDICAO_EXTRA ANO --- EDICAO_SUPLEMENTAR --- --- TODOS --- --- Por padr\u00e3o, caso omitido, o valor do par\u00e2metro dou_sections \u00e9 TODOS. Nessa hip\u00f3tese, a pesquisa \u00e9 feita em todas as se\u00e7\u00f5es do Di\u00e1rio Oficial da Uni\u00e3o. Este campo aceita mais de uma op\u00e7\u00e3o. Exemplos de configura\u00e7\u00e3o do arquivo YAML Neste segmento, voc\u00ea encontrar\u00e1 uma s\u00e9rie de exemplos pr\u00e1ticos de utiliza\u00e7\u00e3o do Ro-DOU. A leitura dos exemplos ajudar\u00e1 a visualizar de que maneira o Ro-DOU pode ser utilizado. Exemplo 1 A configura\u00e7\u00e3o a seguir cria uma DAG que realiza a pesquisa di\u00e1ria dos 6 termos listados e envia o relat\u00f3rio 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\u00f3digo aberto - open source report: emails: - nitaibezerra@protonmail.com Exemplo 2 A configura\u00e7\u00e3o a seguir realiza a pesquisa di\u00e1ria de segunda-feira a sexta-feira, 8AM , apenas na Se\u00e7\u00e3o 1 e na Edi\u00e7\u00e3o Suplementar e envia o resultado em formato CSV , anexado ao e-mail. O par\u00e2metro 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\u00e7\u00e3o - realoca - permuta - estrutura regimental - organiza\u00e7\u00e3o b\u00e1sica 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\u00e3o utilizados os par\u00e2metros opcionais schedule , dou_section e attach_csv . Exemplo 3 A configura\u00e7\u00e3o a seguir utiliza o par\u00e2metro from_db_select em terms , que torna din\u00e2mica a parametriza\u00e7\u00e3o dos termos para pesquisa. Note tamb\u00e9m a inclus\u00e3o de tags que ajudam na organiza\u00e7\u00e3o 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\u00e7\u00e3o a seguir utiliza o par\u00e2metro from_airflow_variable em terms , que tamb\u00e9m carrega dinamicamente a lista de termos. Neste caso, h\u00e1 a recupera\u00e7\u00e3o a partir de uma vari\u00e1vel do Airflow . Aqui, tamb\u00e9m \u00e9 utilizado o campo field para limitar as pesquisas ao campo t\u00edtulo das publica\u00e7\u00f5es no Di\u00e1rio Oficial da Uni\u00e3o. dag: id: pesquisa_a_lista_na_variavel description: \u00c9 f\u00e1cil editar a vari\u00e1vel 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\u00e3o encontre nenhum resultado, ser\u00e1 enviado um e-mail informando que nenhum termo foi encontrado. Exemplo 5 A configura\u00e7\u00e3o a seguir produz uma DAG que executa apenas uma vez por m\u00eas , no dia 1 \u00e0s 8 AM, como pode ser visto no schedule . Simultaneamente, a pesquisa no Di\u00e1rio Oficial da Uni\u00e3o \u00e9 realizada nos di\u00e1rios oficiais do \u00faltimo m\u00eas inteiro, atrav\u00e9s do uso do par\u00e2metro date . Aqui, tamb\u00e9m \u00e9 utilizado o par\u00e2metro is_exact_search com valor False para utilizar uma pesquisa aproximada. Apesar do fato de que o termo buscado \"paralelpip i do\" contenha um erro ortogr\u00e1fico, 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\u00e7\u00e3o a seguir produz uma DAG que pesquisa no Querido Di\u00e1rio pelos termos \"pandemia\", \"dados pessoais\" e \"prefeitura\", buscando apenas os resultados do Di\u00e1rio Oficial de Belo Horizonte. Para conhecer o Querido Di\u00e1rio, 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 - dados pessoais - prefeitura report: emails: - destination@gestao.gov.br attach_csv: True subject: \"Teste do Ro-dou\" Exemplo 7 A configura\u00e7\u00e3o a seguir produz uma DAG exatamente igual ao exemplo b\u00e1sico, mas adiciona uma descri\u00e7\u00e3o longa do que a DAG faz, usando o par\u00e2metro doc_md . Essa descri\u00e7\u00e3o pode conter formata\u00e7\u00e3o markdown, incluindo t\u00edtulos, listas, links etc. Al\u00e9m disso, acrescenta tamb\u00e9m uma refer\u00eancia ao nome do arquivo que gerou a DAG, bem como os seus par\u00e2metros. dag: id: markdown_docs_example description: DAG com documenta\u00e7\u00e3o em markdown search: terms: - dados abertos - governo aberto - lei de acesso \u00e0 informa\u00e7\u00e3o report: emails: - destination@gestao.gov.br subject: \"Teste do Ro-dou\" doc_md: >- ## Ola! Esta \u00e9 uma DAG de exemplo com documenta\u00e7\u00e3o em markdown. Esta descri\u00e7\u00e3o \u00e9 opcional e pode ser definida no par\u00e2metro `doc_md`. * Ah, aqui voc\u00ea tamb\u00e9m pode usar *markdown* para * escrever listas, por exemplo, * ou colocar [links](graph)! Para ver essa documenta\u00e7\u00e3o, basta clicar o bot\u00e3o \"DAG Docs\" em qualquer tela de visualiza\u00e7\u00e3o da DAG no Airflow. Exemplo 8 Esta configura\u00e7\u00e3o envia as notifica\u00e7\u00f5es para canais Discord. \u00c9 necess\u00e1rio ter permiss\u00f5es de administrador no Discord para gerar o Webhook: dag: id: discord_example description: Envia notifica\u00e7\u00f5es para canal Discord search: terms: - manifesta\u00e7\u00e3o cultural - express\u00e3o cultural - pol\u00edtica cultural report: report: discord: webhook: https://discord.com/api/webhooks/105220xxxxxx811250/Q-XsfdnoHtudTQ-8A6zzzzznitai-vi0bGLE7xxxxxxxxxxxxxxxxxxxmx94R3oZ1h0ngl1 Exemplo 9 Esta configura\u00e7\u00e3o envia as notifica\u00e7\u00f5es para canais Slack. \u00c9 necess\u00e1rio ter permiss\u00f5es de administrador no Slack para gerar o Webhook: dag: id: slack_example description: Envia notifica\u00e7\u00f5es para canal Slack search: terms: - manifesta\u00e7\u00e3o cultural - express\u00e3o cultural - pol\u00edtica cultural report: report: slack: webhook: https://hooks.slack.com/services/XXXXXXXX/XXXXNFDXXX/n6QXXXXrPwxQ71ZXXXXXT9 Exemplo 10 Esta configura\u00e7\u00e3o filtra os resultados por \u00f3rg\u00e3o/unidade selecionados. Por enquanto dispon\u00edvel apenas para as pesquisas no DOU. dag: id: department_example description: DAG de teste (filtro por departamento) search: terms: - dados abertos department: - Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos - Minist\u00e9rio da Defesa report: emails: - destination@gestao.gov.br subject: \"Teste do Ro-dou\"","title":"Como funciona"},{"location":"funcionamento/#como-funciona","text":"Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 as seguintes informa\u00e7\u00f5es sobre o Ro-DOU: Compreendendo melhor a pesquisa no Di\u00e1rio Oficial da Uni\u00e3o Recursos e funcionalidades Par\u00e2metros de pesquisa dispon\u00edveis Exemplos de configura\u00e7\u00e3o do arquivo YAML","title":"Como funciona"},{"location":"funcionamento/#compreendendo-melhor-a-pesquisa-no-diario-oficial-da-uniao","text":"Todos os par\u00e2metros dispon\u00edveis para pesquisa no Di\u00e1rio Oficial da Uni\u00e3o (DOU) foram criados a partir da API da Imprensa Nacional, que por sua vez \u00e9 utilizada pelo buscador oficial do DOU em https://www.in.gov.br/consulta/ . Assim, \u00e9 poss\u00edvel notar que o Ro-DOU consegue automatizar todo, ou quase todo, tipo de pesquisa que pode ser feita no site do Di\u00e1rio Oficial da Uni\u00e3o. A imagem abaixo \u00e9 o painel de pesquisa avan\u00e7ada do site:","title":"Compreendendo melhor a pesquisa no Di\u00e1rio Oficial da Uni\u00e3o"},{"location":"funcionamento/#recursos-e-funcionalidades","text":"O Ro-DOU possui os seguintes recursos e funcionalidades voltados aos usu\u00e1rios: Resultados com frequ\u00eancias di\u00e1ria , semanal ou mensal ; Relat\u00f3rios em formato .CSV para facilita\u00e7\u00e3o do uso; Busca din\u00e2mica das palavras-chaves de um banco de dados ou de uma vari\u00e1vel ; Pesquisa em se\u00e7\u00e3o espec\u00edfica do di\u00e1rio oficial; Envio de notifica\u00e7\u00f5es para os canais existentes no Discord e no Slack.","title":"Recursos e funcionalidades"},{"location":"funcionamento/#parametros-de-pesquisa-disponiveis","text":"A tabela abaixo resume os par\u00e2metros de pesquisa dispon\u00edveis no Ro-DOU: dou_sections date field SECAO_1 DIA TUDO SECAO_2 SEMANA TITULO SECAO_3 MES CONTEUDO EDICAO_EXTRA ANO --- EDICAO_SUPLEMENTAR --- --- TODOS --- --- Por padr\u00e3o, caso omitido, o valor do par\u00e2metro dou_sections \u00e9 TODOS. Nessa hip\u00f3tese, a pesquisa \u00e9 feita em todas as se\u00e7\u00f5es do Di\u00e1rio Oficial da Uni\u00e3o. Este campo aceita mais de uma op\u00e7\u00e3o.","title":"Par\u00e2metros de pesquisa dispon\u00edveis"},{"location":"funcionamento/#exemplos-de-configuracao-do-arquivo-yaml","text":"Neste segmento, voc\u00ea encontrar\u00e1 uma s\u00e9rie de exemplos pr\u00e1ticos de utiliza\u00e7\u00e3o do Ro-DOU. A leitura dos exemplos ajudar\u00e1 a visualizar de que maneira o Ro-DOU pode ser utilizado.","title":"Exemplos de configura\u00e7\u00e3o do arquivo YAML"},{"location":"funcionamento/#exemplo-1","text":"A configura\u00e7\u00e3o a seguir cria uma DAG que realiza a pesquisa di\u00e1ria dos 6 termos listados e envia o relat\u00f3rio 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\u00f3digo aberto - open source report: emails: - nitaibezerra@protonmail.com","title":"Exemplo 1"},{"location":"funcionamento/#exemplo-2","text":"A configura\u00e7\u00e3o a seguir realiza a pesquisa di\u00e1ria de segunda-feira a sexta-feira, 8AM , apenas na Se\u00e7\u00e3o 1 e na Edi\u00e7\u00e3o Suplementar e envia o resultado em formato CSV , anexado ao e-mail. O par\u00e2metro 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\u00e7\u00e3o - realoca - permuta - estrutura regimental - organiza\u00e7\u00e3o b\u00e1sica 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\u00e3o utilizados os par\u00e2metros opcionais schedule , dou_section e attach_csv .","title":"Exemplo 2"},{"location":"funcionamento/#exemplo-3","text":"A configura\u00e7\u00e3o a seguir utiliza o par\u00e2metro from_db_select em terms , que torna din\u00e2mica a parametriza\u00e7\u00e3o dos termos para pesquisa. Note tamb\u00e9m a inclus\u00e3o de tags que ajudam na organiza\u00e7\u00e3o 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\"","title":"Exemplo 3"},{"location":"funcionamento/#exemplo-4","text":"A configura\u00e7\u00e3o a seguir utiliza o par\u00e2metro from_airflow_variable em terms , que tamb\u00e9m carrega dinamicamente a lista de termos. Neste caso, h\u00e1 a recupera\u00e7\u00e3o a partir de uma vari\u00e1vel do Airflow . Aqui, tamb\u00e9m \u00e9 utilizado o campo field para limitar as pesquisas ao campo t\u00edtulo das publica\u00e7\u00f5es no Di\u00e1rio Oficial da Uni\u00e3o. dag: id: pesquisa_a_lista_na_variavel description: \u00c9 f\u00e1cil editar a vari\u00e1vel 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\u00e3o encontre nenhum resultado, ser\u00e1 enviado um e-mail informando que nenhum termo foi encontrado.","title":"Exemplo 4"},{"location":"funcionamento/#exemplo-5","text":"A configura\u00e7\u00e3o a seguir produz uma DAG que executa apenas uma vez por m\u00eas , no dia 1 \u00e0s 8 AM, como pode ser visto no schedule . Simultaneamente, a pesquisa no Di\u00e1rio Oficial da Uni\u00e3o \u00e9 realizada nos di\u00e1rios oficiais do \u00faltimo m\u00eas inteiro, atrav\u00e9s do uso do par\u00e2metro date . Aqui, tamb\u00e9m \u00e9 utilizado o par\u00e2metro is_exact_search com valor False para utilizar uma pesquisa aproximada. Apesar do fato de que o termo buscado \"paralelpip i do\" contenha um erro ortogr\u00e1fico, 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","title":"Exemplo 5"},{"location":"funcionamento/#exemplo-6","text":"A configura\u00e7\u00e3o a seguir produz uma DAG que pesquisa no Querido Di\u00e1rio pelos termos \"pandemia\", \"dados pessoais\" e \"prefeitura\", buscando apenas os resultados do Di\u00e1rio Oficial de Belo Horizonte. Para conhecer o Querido Di\u00e1rio, 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 - dados pessoais - prefeitura report: emails: - destination@gestao.gov.br attach_csv: True subject: \"Teste do Ro-dou\"","title":"Exemplo 6"},{"location":"funcionamento/#exemplo-7","text":"A configura\u00e7\u00e3o a seguir produz uma DAG exatamente igual ao exemplo b\u00e1sico, mas adiciona uma descri\u00e7\u00e3o longa do que a DAG faz, usando o par\u00e2metro doc_md . Essa descri\u00e7\u00e3o pode conter formata\u00e7\u00e3o markdown, incluindo t\u00edtulos, listas, links etc. Al\u00e9m disso, acrescenta tamb\u00e9m uma refer\u00eancia ao nome do arquivo que gerou a DAG, bem como os seus par\u00e2metros. dag: id: markdown_docs_example description: DAG com documenta\u00e7\u00e3o em markdown search: terms: - dados abertos - governo aberto - lei de acesso \u00e0 informa\u00e7\u00e3o report: emails: - destination@gestao.gov.br subject: \"Teste do Ro-dou\" doc_md: >- ## Ola! Esta \u00e9 uma DAG de exemplo com documenta\u00e7\u00e3o em markdown. Esta descri\u00e7\u00e3o \u00e9 opcional e pode ser definida no par\u00e2metro `doc_md`. * Ah, aqui voc\u00ea tamb\u00e9m pode usar *markdown* para * escrever listas, por exemplo, * ou colocar [links](graph)! Para ver essa documenta\u00e7\u00e3o, basta clicar o bot\u00e3o \"DAG Docs\" em qualquer tela de visualiza\u00e7\u00e3o da DAG no Airflow.","title":"Exemplo 7"},{"location":"funcionamento/#exemplo-8","text":"Esta configura\u00e7\u00e3o envia as notifica\u00e7\u00f5es para canais Discord. \u00c9 necess\u00e1rio ter permiss\u00f5es de administrador no Discord para gerar o Webhook: dag: id: discord_example description: Envia notifica\u00e7\u00f5es para canal Discord search: terms: - manifesta\u00e7\u00e3o cultural - express\u00e3o cultural - pol\u00edtica cultural report: report: discord: webhook: https://discord.com/api/webhooks/105220xxxxxx811250/Q-XsfdnoHtudTQ-8A6zzzzznitai-vi0bGLE7xxxxxxxxxxxxxxxxxxxmx94R3oZ1h0ngl1","title":"Exemplo 8"},{"location":"funcionamento/#exemplo-9","text":"Esta configura\u00e7\u00e3o envia as notifica\u00e7\u00f5es para canais Slack. \u00c9 necess\u00e1rio ter permiss\u00f5es de administrador no Slack para gerar o Webhook: dag: id: slack_example description: Envia notifica\u00e7\u00f5es para canal Slack search: terms: - manifesta\u00e7\u00e3o cultural - express\u00e3o cultural - pol\u00edtica cultural report: report: slack: webhook: https://hooks.slack.com/services/XXXXXXXX/XXXXNFDXXX/n6QXXXXrPwxQ71ZXXXXXT9","title":"Exemplo 9"},{"location":"funcionamento/#exemplo-10","text":"Esta configura\u00e7\u00e3o filtra os resultados por \u00f3rg\u00e3o/unidade selecionados. Por enquanto dispon\u00edvel apenas para as pesquisas no DOU. dag: id: department_example description: DAG de teste (filtro por departamento) search: terms: - dados abertos department: - Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos - Minist\u00e9rio da Defesa report: emails: - destination@gestao.gov.br subject: \"Teste do Ro-dou\"","title":"Exemplo 10"},{"location":"links/","text":"Links relevantes Para operar, o Ro-DOU utiliza diferentes tecnologias, ferramentas e depend\u00eancias. Podem ser destacadas as seguintes: Python Apache Airflow Docker Docker Compose Pandas YAML O Ro-DOU tamb\u00e9m utiliza as funcionalidades da ferramenta Querido Di\u00e1rio: Querido Di\u00e1rio Este site de documenta\u00e7\u00e3o do Ro-DOU foi elaborado com a ajuda do MkDocs: MkDocs","title":"Links relevantes"},{"location":"links/#links-relevantes","text":"Para operar, o Ro-DOU utiliza diferentes tecnologias, ferramentas e depend\u00eancias. Podem ser destacadas as seguintes: Python Apache Airflow Docker Docker Compose Pandas YAML O Ro-DOU tamb\u00e9m utiliza as funcionalidades da ferramenta Querido Di\u00e1rio: Querido Di\u00e1rio Este site de documenta\u00e7\u00e3o do Ro-DOU foi elaborado com a ajuda do MkDocs: MkDocs","title":"Links relevantes"},{"location":"midias/","text":"Oficinas e demais m\u00eddias sobre o Ro-DOU Ro-DOU - Rob\u00f4 de minera\u00e7\u00e3o do Di\u00e1rio Oficial da Uni\u00e3o - apresenta\u00e7\u00e3o completa no canal da ENAP no YouTube, feita na Semana de Inova\u00e7\u00e3o de 2021.","title":"Oficinas e m\u00eddias"},{"location":"midias/#oficinas-e-demais-midias-sobre-o-ro-dou","text":"Ro-DOU - Rob\u00f4 de minera\u00e7\u00e3o do Di\u00e1rio Oficial da Uni\u00e3o - apresenta\u00e7\u00e3o completa no canal da ENAP no YouTube, feita na Semana de Inova\u00e7\u00e3o de 2021.","title":"Oficinas e demais m\u00eddias sobre o Ro-DOU"},{"location":"rodou/","text":"O que \u00e9 Ro-DOU? Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 as seguintes informa\u00e7\u00f5es sobre o Ro-DOU: Defini\u00e7\u00e3o Arquitetura Defini\u00e7\u00e3o Conforme dito na p\u00e1gina inicial, o Ro-DOU \u00e9 uma ferramenta que efetua um clipping do Di\u00e1rio Oficial da Uni\u00e3o ( D.O.U. ) e dos Di\u00e1rios Oficiais de munic\u00edpios, por meio do Querido Di\u00e1rio . O Ro-DOU permite o recebimento de notifica\u00e7\u00f5es (via e-mail, Slack, Discord ou outros) de todas as publica\u00e7\u00f5es que contenham as palavras-chaves que voc\u00ea definir. O Ro-DOU gera dinamicamente grafos ac\u00edclicos dirigidos (DAGs) no Apache Airflow . Uma DAG nada mais \u00e9 que um fluxo de tarefas executadas em sequ\u00eancia ou de maneira paralela, a partir de um c\u00f3digo Python. Para entender com mais detalhes t\u00e9cnicos como uma DAG do Airflow funciona, clique aqui . Nos arquivos YAML, \u00e9 poss\u00edvel configurar os detalhes dos termos de pesquisa desejado (as palavras-chaves) e os contatos (e.g. endere\u00e7os de e-mail) para recebimento dos resultados da pesquisa. Arquitetura A maneira como os diferentes componentes do Ro-DOU se relacionam pode ser sintetizada no diagrama abaixo: [INSERIR DIAGRAMA]","title":"O que \u00e9 Ro-DOU?"},{"location":"rodou/#o-que-e-ro-dou","text":"Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 as seguintes informa\u00e7\u00f5es sobre o Ro-DOU: Defini\u00e7\u00e3o Arquitetura","title":"O que \u00e9 Ro-DOU?"},{"location":"rodou/#definicao","text":"Conforme dito na p\u00e1gina inicial, o Ro-DOU \u00e9 uma ferramenta que efetua um clipping do Di\u00e1rio Oficial da Uni\u00e3o ( D.O.U. ) e dos Di\u00e1rios Oficiais de munic\u00edpios, por meio do Querido Di\u00e1rio . O Ro-DOU permite o recebimento de notifica\u00e7\u00f5es (via e-mail, Slack, Discord ou outros) de todas as publica\u00e7\u00f5es que contenham as palavras-chaves que voc\u00ea definir. O Ro-DOU gera dinamicamente grafos ac\u00edclicos dirigidos (DAGs) no Apache Airflow . Uma DAG nada mais \u00e9 que um fluxo de tarefas executadas em sequ\u00eancia ou de maneira paralela, a partir de um c\u00f3digo Python. Para entender com mais detalhes t\u00e9cnicos como uma DAG do Airflow funciona, clique aqui . Nos arquivos YAML, \u00e9 poss\u00edvel configurar os detalhes dos termos de pesquisa desejado (as palavras-chaves) e os contatos (e.g. endere\u00e7os de e-mail) para recebimento dos resultados da pesquisa.","title":"Defini\u00e7\u00e3o"},{"location":"rodou/#arquitetura","text":"A maneira como os diferentes componentes do Ro-DOU se relacionam pode ser sintetizada no diagrama abaixo: [INSERIR DIAGRAMA]","title":"Arquitetura"},{"location":"utilizacao/","text":"Como utilizar Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 as seguintes informa\u00e7\u00f5es sobre o Ro-DOU: Instala\u00e7\u00e3o e configura\u00e7\u00e3o Ambiente local e ambiente de produ\u00e7\u00e3o Usu\u00e1rios internos e externos ao Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos Notifica\u00e7\u00e3o de erros na execu\u00e7\u00e3o das DAGs do Apache Airflow Instala\u00e7\u00e3o e configura\u00e7\u00e3o Configurando o ambiente local 'Hello World' O c\u00f3digo-fonte est\u00e1 disponibilizado no perfil do GitHub do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos . Neste t\u00edtulo, fornecemos abaixo uma configura\u00e7\u00e3o demonstrativa para que voc\u00ea possa executar o Ro-DOU no seu computador. Para isso, \u00e9 necess\u00e1rio ter o Docker Compose na vers\u00e3o 1.29 ou maior instalado. Os passos para a instala\u00e7\u00e3o est\u00e3o dispon\u00edveis em https://docs.docker.com/compose/install/ ou em tutoriais no YouTube. Ap\u00f3s clonar o reposit\u00f3rio do Ro-DOU para o seu computador com o comando git clone , acesse o diret\u00f3rio pelo terminal e execute os comandos a seguir: make run Este comando baixa as imagens Docker necess\u00e1rias, efetua o build do container Docker do Ro-DOU e executa todos os demais passos necess\u00e1rios. O Apache Airflow, que tamb\u00e9m \u00e9 usado para rodar o Ro-DOU, pode demorar alguns minutos para se configurar na primeira vez. Posteriormente, ele estar\u00e1 dispon\u00edvel em http://localhost:8080/. Para se autenticar e acessar o Apache Airflow, entre no link e utilize login airflow e senha airflow . Na p\u00e1gina sobre o que \u00e9 o Ro-DOU , explicamos o que \u00e9 um grafo ac\u00edclico dirigido (DAG) do Airflow e como obter mais informa\u00e7\u00f5es sobre este conceito. Na tela inicial do Airflow, s\u00e3o fornecidos clippings de exemplo. A partir dos arquivos YAML (.yaml) do diret\u00f3rio dag_confs/ , \u00e9 poss\u00edvel manipular e customizar as pesquisas de clipping desejadas nos di\u00e1rios oficiais. Dentro dos arquivos YAML, \u00e9 poss\u00edvel, por exemplo, definir palavras-chave de busca e um endere\u00e7o de e-mail para recebimento de uma mensagem com os resultados da busca no(s) di\u00e1rio(s) oficial(is). Para executar qualquer DAG do Airflow, \u00e9 necess\u00e1rio lig\u00e1-la. Inicialmente, todas as DAGs ficam pausadas por padr\u00e3o. Sugerimos come\u00e7ar testando o clipping all_parameters_example . Utilize o bot\u00e3o toggle para lig\u00e1-lo. Ap\u00f3s ativ\u00e1-lo, o Airflow executar\u00e1 a DAG uma \u00fanica vez. Clique no nome da DAG para visualizar o detalhe da execu\u00e7\u00e3o. Voc\u00ea observar\u00e1 que, tanto na visualiza\u00e7\u00e3o em \u00e1rvore ( Tree ) como na visualiza\u00e7\u00e3o em Grafo ( Graph ) dentro do Apache Airflow, \u00e9 poss\u00edvel constatar se houve algum resultado encontrado na API da Imprensa Nacional para os termos e demais par\u00e2metros deste clipping. Se a tarefa chamada \"send_report\" estiver na cor verde, significa que foi encontrado um resultado e que uma mensagem de e-mail foi enviada para o endere\u00e7o configurado no arquivo YAML. Para visualizar a mensagem de e-mail, acesse o endere\u00e7o http://localhost:5001/. Este \u00e9 um servi\u00e7o que simula uma caixa de e-mail (servidor SMTP) para fins de experimenta\u00e7\u00e3o. Voil\u00e0! . Lembre-se que o arquivo de configura\u00e7\u00e3o deste clipping est\u00e1 na pasta dag_confs/ . Confira aqui no GitHub o conte\u00fado do arquivo YAML. Agora, faremos um segundo teste: o clipping terms_from_variable , seguindo os mesmo passos. Neste caso, os termos pesquisados est\u00e3o listados em uma vari\u00e1vel do Airflow e podem ser modificados pela interface gr\u00e1fica. Acesse no menu Admin >> Variables ou pela URL http://localhost:8080/variable/list/. Leia a se\u00e7\u00e3o Configurando em Produ\u00e7\u00e3o para instalar o Ro-dou utilizando um provedor SMTP real que enviar\u00e1 os e-mails para os destinat\u00e1rios verdadeiros. Observa\u00e7\u00e3o: Para utilizar o source: - INLABS , \u00e9 necess\u00e1rio criar a conex\u00e3o inlabs_db no Apache Airflow, apontando para o banco Postgres que est\u00e1 carregado com os dados do inlabs. Voc\u00ea poder\u00e1 encontrar aqui um exemplo de como carregar um banco com os dados do inlabs: ro-dou_inlabs_load_pg_dag.py . Quando tiver terminado de utilizar o ambiente de teste do Ro-DOU, desligue-o por meio do seguinte comando: make down Configurando o ambiente de produ\u00e7\u00e3o Para utilizar o Ro-DOU em ambiente de produ\u00e7\u00e3o, \u00e9 necess\u00e1rio que o servidor tenha dispon\u00edvel um servi\u00e7o SMTP que ser\u00e1 utilizado pelo Apache Airflow para envio de mensagens de e-mail pela Internet. Siga os seguintes passos: Utilize as credenciais do servi\u00e7o SMTP (host, usu\u00e1rio, senha, porta etc.) para editar o arquivo docker-compose.yml , substituindo as vari\u00e1veis referentes ao servi\u00e7o SMTP, a exemplo de AIRFLOW__SMTP__SMTP_HOST . Ao final do arquivo docker-compose.yml , remova as linhas que declaram o servi\u00e7o smtp4dev , uma vez que ele n\u00e3o ser\u00e1 mais necess\u00e1rio. Uma vez executados esses passos, basta agora inicializar o Ro-DOU por meio do comando: make run Usu\u00e1rios internos e externos Usu\u00e1rios do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos Para as unidades do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos que desejem solicitar a utiliza\u00e7\u00e3o de clippings via Ro-DOU, a Secretaria de Gest\u00e3o e Inova\u00e7\u00e3o do MGI est\u00e1 dispon\u00edvel para auxili\u00e1-las a configurar o servi\u00e7o. \u00c9 preciso que a unidade interessada encaminhe as seguintes informa\u00e7\u00f5es para o endere\u00e7o seges.cginf@gestao.gov.br : texto do assunto do e-mail que conter\u00e1 o relat\u00f3rio do Ro-DOU; lista de termos (palavras-chaves) para a pesquisa, separadas linha a linha; se\u00e7\u00e3o ou se\u00e7\u00f5es do DOU que dever\u00e1(\u00e3o) ser pesquisada(s); hor\u00e1rio e dias da semana para realiza\u00e7\u00e3o da pesquisa e envio do relat\u00f3rio (por padr\u00e3o, ocorre \u00e0s 9h da manh\u00e3, de segunda-feira a sexta-feira); e lista com os endere\u00e7os de e-mail que receber\u00e3o o relat\u00f3rio do Ro-DOU. Usu\u00e1rios externos (de fora do MGI) Usu\u00e1rios de \u00f3rg\u00e3os p\u00fablicos que n\u00e3o sejam unidades do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos poder\u00e3o enviar d\u00favidas ou coment\u00e1rios ao endere\u00e7o seges.cginf@gestao.gov.br . Notifica\u00e7\u00e3o de erros na execu\u00e7\u00e3o das DAGs \u00c9 importante recordar que o Ro-DOU permite o envio de mensagens via Slack quando ocorre alguma falha na execu\u00e7\u00e3o da DAG no Apache Airflow. Para usar essa funcionalidade, efetue as seguintes configura\u00e7\u00f5es: Criar o app no Slack conforme orienta\u00e7\u00f5es do v\u00eddeo How to Add Slack Notifications to Your Airflow DAG's with Airflow Notifiers . Criar uma conex\u00e3o no Apache Airflow com a seguinte configura\u00e7\u00e3o: Connection Id = slack_notify_rodou_dagrun Connection Type = Slack API Description = {\"channel\": \"nome-do-channel-para-mandar-mensagem\"} Slack API Token = obtido no passo 1","title":"Como utilizar"},{"location":"utilizacao/#como-utilizar","text":"Nesta se\u00e7\u00e3o, voc\u00ea encontrar\u00e1 as seguintes informa\u00e7\u00f5es sobre o Ro-DOU: Instala\u00e7\u00e3o e configura\u00e7\u00e3o Ambiente local e ambiente de produ\u00e7\u00e3o Usu\u00e1rios internos e externos ao Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos Notifica\u00e7\u00e3o de erros na execu\u00e7\u00e3o das DAGs do Apache Airflow","title":"Como utilizar"},{"location":"utilizacao/#instalacao-e-configuracao","text":"","title":"Instala\u00e7\u00e3o e configura\u00e7\u00e3o"},{"location":"utilizacao/#configurando-o-ambiente-local-hello-world","text":"O c\u00f3digo-fonte est\u00e1 disponibilizado no perfil do GitHub do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos . Neste t\u00edtulo, fornecemos abaixo uma configura\u00e7\u00e3o demonstrativa para que voc\u00ea possa executar o Ro-DOU no seu computador. Para isso, \u00e9 necess\u00e1rio ter o Docker Compose na vers\u00e3o 1.29 ou maior instalado. Os passos para a instala\u00e7\u00e3o est\u00e3o dispon\u00edveis em https://docs.docker.com/compose/install/ ou em tutoriais no YouTube. Ap\u00f3s clonar o reposit\u00f3rio do Ro-DOU para o seu computador com o comando git clone , acesse o diret\u00f3rio pelo terminal e execute os comandos a seguir: make run Este comando baixa as imagens Docker necess\u00e1rias, efetua o build do container Docker do Ro-DOU e executa todos os demais passos necess\u00e1rios. O Apache Airflow, que tamb\u00e9m \u00e9 usado para rodar o Ro-DOU, pode demorar alguns minutos para se configurar na primeira vez. Posteriormente, ele estar\u00e1 dispon\u00edvel em http://localhost:8080/. Para se autenticar e acessar o Apache Airflow, entre no link e utilize login airflow e senha airflow . Na p\u00e1gina sobre o que \u00e9 o Ro-DOU , explicamos o que \u00e9 um grafo ac\u00edclico dirigido (DAG) do Airflow e como obter mais informa\u00e7\u00f5es sobre este conceito. Na tela inicial do Airflow, s\u00e3o fornecidos clippings de exemplo. A partir dos arquivos YAML (.yaml) do diret\u00f3rio dag_confs/ , \u00e9 poss\u00edvel manipular e customizar as pesquisas de clipping desejadas nos di\u00e1rios oficiais. Dentro dos arquivos YAML, \u00e9 poss\u00edvel, por exemplo, definir palavras-chave de busca e um endere\u00e7o de e-mail para recebimento de uma mensagem com os resultados da busca no(s) di\u00e1rio(s) oficial(is). Para executar qualquer DAG do Airflow, \u00e9 necess\u00e1rio lig\u00e1-la. Inicialmente, todas as DAGs ficam pausadas por padr\u00e3o. Sugerimos come\u00e7ar testando o clipping all_parameters_example . Utilize o bot\u00e3o toggle para lig\u00e1-lo. Ap\u00f3s ativ\u00e1-lo, o Airflow executar\u00e1 a DAG uma \u00fanica vez. Clique no nome da DAG para visualizar o detalhe da execu\u00e7\u00e3o. Voc\u00ea observar\u00e1 que, tanto na visualiza\u00e7\u00e3o em \u00e1rvore ( Tree ) como na visualiza\u00e7\u00e3o em Grafo ( Graph ) dentro do Apache Airflow, \u00e9 poss\u00edvel constatar se houve algum resultado encontrado na API da Imprensa Nacional para os termos e demais par\u00e2metros deste clipping. Se a tarefa chamada \"send_report\" estiver na cor verde, significa que foi encontrado um resultado e que uma mensagem de e-mail foi enviada para o endere\u00e7o configurado no arquivo YAML. Para visualizar a mensagem de e-mail, acesse o endere\u00e7o http://localhost:5001/. Este \u00e9 um servi\u00e7o que simula uma caixa de e-mail (servidor SMTP) para fins de experimenta\u00e7\u00e3o. Voil\u00e0! . Lembre-se que o arquivo de configura\u00e7\u00e3o deste clipping est\u00e1 na pasta dag_confs/ . Confira aqui no GitHub o conte\u00fado do arquivo YAML. Agora, faremos um segundo teste: o clipping terms_from_variable , seguindo os mesmo passos. Neste caso, os termos pesquisados est\u00e3o listados em uma vari\u00e1vel do Airflow e podem ser modificados pela interface gr\u00e1fica. Acesse no menu Admin >> Variables ou pela URL http://localhost:8080/variable/list/. Leia a se\u00e7\u00e3o Configurando em Produ\u00e7\u00e3o para instalar o Ro-dou utilizando um provedor SMTP real que enviar\u00e1 os e-mails para os destinat\u00e1rios verdadeiros. Observa\u00e7\u00e3o: Para utilizar o source: - INLABS , \u00e9 necess\u00e1rio criar a conex\u00e3o inlabs_db no Apache Airflow, apontando para o banco Postgres que est\u00e1 carregado com os dados do inlabs. Voc\u00ea poder\u00e1 encontrar aqui um exemplo de como carregar um banco com os dados do inlabs: ro-dou_inlabs_load_pg_dag.py . Quando tiver terminado de utilizar o ambiente de teste do Ro-DOU, desligue-o por meio do seguinte comando: make down","title":"Configurando o ambiente local 'Hello World'"},{"location":"utilizacao/#configurando-o-ambiente-de-producao","text":"Para utilizar o Ro-DOU em ambiente de produ\u00e7\u00e3o, \u00e9 necess\u00e1rio que o servidor tenha dispon\u00edvel um servi\u00e7o SMTP que ser\u00e1 utilizado pelo Apache Airflow para envio de mensagens de e-mail pela Internet. Siga os seguintes passos: Utilize as credenciais do servi\u00e7o SMTP (host, usu\u00e1rio, senha, porta etc.) para editar o arquivo docker-compose.yml , substituindo as vari\u00e1veis referentes ao servi\u00e7o SMTP, a exemplo de AIRFLOW__SMTP__SMTP_HOST . Ao final do arquivo docker-compose.yml , remova as linhas que declaram o servi\u00e7o smtp4dev , uma vez que ele n\u00e3o ser\u00e1 mais necess\u00e1rio. Uma vez executados esses passos, basta agora inicializar o Ro-DOU por meio do comando: make run","title":"Configurando o ambiente de produ\u00e7\u00e3o"},{"location":"utilizacao/#usuarios-internos-e-externos","text":"","title":"Usu\u00e1rios internos e externos"},{"location":"utilizacao/#usuarios-do-ministerio-da-gestao-e-da-inovacao-em-servicos-publicos","text":"Para as unidades do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos que desejem solicitar a utiliza\u00e7\u00e3o de clippings via Ro-DOU, a Secretaria de Gest\u00e3o e Inova\u00e7\u00e3o do MGI est\u00e1 dispon\u00edvel para auxili\u00e1-las a configurar o servi\u00e7o. \u00c9 preciso que a unidade interessada encaminhe as seguintes informa\u00e7\u00f5es para o endere\u00e7o seges.cginf@gestao.gov.br : texto do assunto do e-mail que conter\u00e1 o relat\u00f3rio do Ro-DOU; lista de termos (palavras-chaves) para a pesquisa, separadas linha a linha; se\u00e7\u00e3o ou se\u00e7\u00f5es do DOU que dever\u00e1(\u00e3o) ser pesquisada(s); hor\u00e1rio e dias da semana para realiza\u00e7\u00e3o da pesquisa e envio do relat\u00f3rio (por padr\u00e3o, ocorre \u00e0s 9h da manh\u00e3, de segunda-feira a sexta-feira); e lista com os endere\u00e7os de e-mail que receber\u00e3o o relat\u00f3rio do Ro-DOU.","title":"Usu\u00e1rios do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos"},{"location":"utilizacao/#usuarios-externos-de-fora-do-mgi","text":"Usu\u00e1rios de \u00f3rg\u00e3os p\u00fablicos que n\u00e3o sejam unidades do Minist\u00e9rio da Gest\u00e3o e da Inova\u00e7\u00e3o em Servi\u00e7os P\u00fablicos poder\u00e3o enviar d\u00favidas ou coment\u00e1rios ao endere\u00e7o seges.cginf@gestao.gov.br .","title":"Usu\u00e1rios externos (de fora do MGI)"},{"location":"utilizacao/#notificacao-de-erros-na-execucao-das-dags","text":"\u00c9 importante recordar que o Ro-DOU permite o envio de mensagens via Slack quando ocorre alguma falha na execu\u00e7\u00e3o da DAG no Apache Airflow. Para usar essa funcionalidade, efetue as seguintes configura\u00e7\u00f5es: Criar o app no Slack conforme orienta\u00e7\u00f5es do v\u00eddeo How to Add Slack Notifications to Your Airflow DAG's with Airflow Notifiers . Criar uma conex\u00e3o no Apache Airflow com a seguinte configura\u00e7\u00e3o: Connection Id = slack_notify_rodou_dagrun Connection Type = Slack API Description = {\"channel\": \"nome-do-channel-para-mandar-mensagem\"} Slack API Token = obtido no passo 1","title":"Notifica\u00e7\u00e3o de erros na execu\u00e7\u00e3o das DAGs"}]} \ No newline at end of file diff --git a/documentation/site/search/worker.js b/documentation/site/search/worker.js new file mode 100644 index 0000000..8628dbc --- /dev/null +++ b/documentation/site/search/worker.js @@ -0,0 +1,133 @@ +var base_path = 'function' === typeof importScripts ? '.' : '/search/'; +var allowSearch = false; +var index; +var documents = {}; +var lang = ['en']; +var data; + +function getScript(script, callback) { + console.log('Loading script: ' + script); + $.getScript(base_path + script).done(function () { + callback(); + }).fail(function (jqxhr, settings, exception) { + console.log('Error: ' + exception); + }); +} + +function getScriptsInOrder(scripts, callback) { + if (scripts.length === 0) { + callback(); + return; + } + getScript(scripts[0], function() { + getScriptsInOrder(scripts.slice(1), callback); + }); +} + +function loadScripts(urls, callback) { + if( 'function' === typeof importScripts ) { + importScripts.apply(null, urls); + callback(); + } else { + getScriptsInOrder(urls, callback); + } +} + +function onJSONLoaded () { + data = JSON.parse(this.responseText); + var scriptsToLoad = ['lunr.js']; + if (data.config && data.config.lang && data.config.lang.length) { + lang = data.config.lang; + } + if (lang.length > 1 || lang[0] !== "en") { + scriptsToLoad.push('lunr.stemmer.support.js'); + if (lang.length > 1) { + scriptsToLoad.push('lunr.multi.js'); + } + if (lang.includes("ja") || lang.includes("jp")) { + scriptsToLoad.push('tinyseg.js'); + } + for (var i=0; i < lang.length; i++) { + if (lang[i] != 'en') { + scriptsToLoad.push(['lunr', lang[i], 'js'].join('.')); + } + } + } + loadScripts(scriptsToLoad, onScriptsLoaded); +} + +function onScriptsLoaded () { + console.log('All search scripts loaded, building Lunr index...'); + if (data.config && data.config.separator && data.config.separator.length) { + lunr.tokenizer.separator = new RegExp(data.config.separator); + } + + if (data.index) { + index = lunr.Index.load(data.index); + data.docs.forEach(function (doc) { + documents[doc.location] = doc; + }); + console.log('Lunr pre-built index loaded, search ready'); + } else { + index = lunr(function () { + if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) { + this.use(lunr[lang[0]]); + } else if (lang.length > 1) { + this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility + } + this.field('title'); + this.field('text'); + this.ref('location'); + + for (var i=0; i < data.docs.length; i++) { + var doc = data.docs[i]; + this.add(doc); + documents[doc.location] = doc; + } + }); + console.log('Lunr index built, search ready'); + } + allowSearch = true; + postMessage({config: data.config}); + postMessage({allowSearch: allowSearch}); +} + +function init () { + var oReq = new XMLHttpRequest(); + oReq.addEventListener("load", onJSONLoaded); + var index_path = base_path + '/search_index.json'; + if( 'function' === typeof importScripts ){ + index_path = 'search_index.json'; + } + oReq.open("GET", index_path); + oReq.send(); +} + +function search (query) { + if (!allowSearch) { + console.error('Assets for search still loading'); + return; + } + + var resultDocuments = []; + var results = index.search(query); + for (var i=0; i < results.length; i++){ + var result = results[i]; + doc = documents[result.ref]; + doc.summary = doc.text.substring(0, 200); + resultDocuments.push(doc); + } + return resultDocuments; +} + +if( 'function' === typeof importScripts ) { + onmessage = function (e) { + if (e.data.init) { + init(); + } else if (e.data.query) { + postMessage({ results: search(e.data.query) }); + } else { + console.error("Worker - Unrecognized message: " + e); + } + }; +} diff --git a/documentation/site/sitemap.xml b/documentation/site/sitemap.xml new file mode 100644 index 0000000..0f8724e --- /dev/null +++ b/documentation/site/sitemap.xml @@ -0,0 +1,3 @@ + +Nesta seção, você encontrará as seguintes informações sobre o Ro-DOU:
+O código-fonte está disponibilizado no perfil do GitHub do Ministério da Gestão e da Inovação em Serviços Públicos.
+Neste título, fornecemos abaixo uma configuração demonstrativa para que você possa executar o Ro-DOU no seu computador. Para isso, é necessário ter o Docker Compose na versão 1.29 ou maior instalado. Os passos para a instalação estão disponíveis em https://docs.docker.com/compose/install/ ou em tutoriais no YouTube.
+Após clonar o repositório do Ro-DOU para o seu computador com o comando git clone
, acesse o diretório pelo terminal e execute os comandos a seguir:
make run
+
+Este comando baixa as imagens Docker necessárias, efetua o build do container Docker do Ro-DOU e executa todos os demais passos necessários.
+O Apache Airflow, que também é usado para rodar o Ro-DOU, pode demorar alguns minutos para se configurar na primeira vez. Posteriormente, ele estará disponível em http://localhost:8080/. Para se autenticar e acessar o Apache Airflow, entre no link e utilize login airflow
e senha airflow
.
Na página sobre o que é o Ro-DOU, explicamos o que é um grafo acíclico dirigido (DAG) do Airflow e como obter mais informações sobre este conceito.
+Na tela inicial do Airflow, são fornecidos clippings de exemplo. A partir dos arquivos YAML (.yaml) do diretório dag_confs/
, é possível manipular e customizar as pesquisas de clipping desejadas nos diários oficiais. Dentro dos arquivos YAML, é possível, por exemplo, definir palavras-chave de busca e um endereço de e-mail para recebimento de uma mensagem com os resultados da busca no(s) diário(s) oficial(is).
Para executar qualquer DAG do Airflow, é necessário ligá-la. Inicialmente, todas as DAGs ficam pausadas por padrão. Sugerimos começar testando o clipping all_parameters_example. Utilize o botão toggle para ligá-lo. Após ativá-lo, o Airflow executará a DAG uma única vez. Clique no nome da DAG +para visualizar o detalhe da execução.
+Você observará que, tanto na visualização em árvore (Tree) como na visualização em Grafo (Graph) dentro do Apache Airflow, é possível constatar se houve algum resultado encontrado na API da Imprensa Nacional para os termos e demais parâmetros deste clipping. Se a tarefa chamada "send_report" estiver na cor verde, significa que foi encontrado um resultado e que uma mensagem de e-mail foi enviada para o endereço configurado no arquivo YAML.
+Para visualizar a mensagem de e-mail, acesse o endereço http://localhost:5001/. Este é um serviço que simula uma caixa de e-mail (servidor SMTP) para fins de experimentação. Voilà!.
+Lembre-se que o arquivo de configuração deste clipping está na pasta dag_confs/
. Confira aqui no GitHub o conteúdo do arquivo YAML.
Agora, faremos um segundo teste: o clipping terms_from_variable, seguindo os mesmo passos. Neste caso, os termos pesquisados estão listados em uma variável do Airflow e podem ser modificados pela interface gráfica. Acesse no menu Admin >> Variables ou pela URL http://localhost:8080/variable/list/.
+Leia a seção Configurando em Produção para instalar o Ro-dou utilizando um provedor SMTP real que enviará os e-mails para os destinatários verdadeiros.
+Observação: Para utilizar o source: - INLABS
, é necessário criar a conexão inlabs_db
no Apache Airflow, apontando para o banco Postgres
que está carregado com os dados do inlabs. Você poderá encontrar aqui um exemplo de como carregar um banco com os dados do inlabs: ro-dou_inlabs_load_pg_dag.py
.
Quando tiver terminado de utilizar o ambiente de teste do Ro-DOU, desligue-o por meio do seguinte comando:
+make down
+
+Para utilizar o Ro-DOU em ambiente de produção, é necessário que o servidor tenha disponível um serviço SMTP que será utilizado pelo Apache Airflow para envio de mensagens de e-mail pela Internet. Siga os seguintes passos:
+Utilize as credenciais do serviço SMTP (host, usuário, senha, porta etc.)
+para editar o arquivo docker-compose.yml
, substituindo as variáveis referentes ao serviço SMTP, a exemplo de AIRFLOW__SMTP__SMTP_HOST
.
Ao final do arquivo docker-compose.yml
, remova as linhas que declaram o
+serviço smtp4dev, uma vez que ele não será mais necessário.
Uma vez executados esses passos, basta agora inicializar o Ro-DOU por meio do comando:
+make run
+
+Para as unidades do Ministério da Gestão e da Inovação em Serviços Públicos que desejem solicitar a utilização de clippings via Ro-DOU, a Secretaria de Gestão e Inovação do MGI está disponível para auxiliá-las a configurar o serviço.
+É preciso que a unidade interessada encaminhe as seguintes informações para o endereço seges.cginf@gestao.gov.br:
+Usuários de órgãos públicos que não sejam unidades do Ministério da Gestão e da Inovação em Serviços Públicos poderão enviar dúvidas ou comentários ao endereço seges.cginf@gestao.gov.br.
+É importante recordar que o Ro-DOU permite o envio de mensagens via Slack quando ocorre alguma falha na execução da DAG no Apache Airflow. Para usar essa funcionalidade, efetue as seguintes configurações:
+Criar o app no Slack conforme orientações do vídeo How to Add Slack Notifications to Your Airflow DAG's with Airflow Notifiers.
+Criar uma conexão no Apache Airflow com a seguinte configuração:
+Connection Id
= slack_notify_rodou_dagrun
Connection Type
= Slack API
Description
= {"channel": "nome-do-channel-para-mandar-mensagem"}
Slack API Token
= obtido no passo 1