Skip to content

gestaogovbr/dou-api

Repository files navigation

dou-api

1. To Use

Responde post no endpoint /dou.

Cabecalho data no request recebe a chave como nome da coluna a filtrar e uma lista de strings com o valor dos filtros a serem aplicados.

1.1. Schema cabeçalho data para o request

"exemplo_de_cabecalho_data_para_o_request": {
    "name": ["filter1", "filter2", "..."],
    "pub_name": ["filter1", "filter2", "..."],
    "pub_date": ["filter1", "filter2", "..."],
    "art_category": ["filter1", "filter2", "..."],
    "identifica": ["filter1", "filter2", "..."],
    "titulo": ["filter1", "filter2", "..."],
    "sub_titulo": ["filter1", "filter2", "..."],
    "texto": ["filter1", "filter2", "..."],
}

1.2. Exemplo CURL

curl -X POST "http://url:5057/dou" \
    -H "Content-Type: application/json" \
    -d '{"texto": ["licitação"], "pub_name": ["DO3"]}'

1.3. Exemplo python

import requests
import json

url = 'http://url:5057/dou'
data = {
    "texto": ["licitação"],
    "pub_name": ["DO3"]
}
headers = {
    'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=json.dumps(data))

2. To Dev

  1. Duplicar e renomear .env.template.
cp .env.template .env
  1. Atualizar as variáveis de ambiente INLABS_EMAIL, INLABS_PASSWORD, SLACK_BOT_URL em .env.

  2. Rodar:

docker compose up

3. To Deploy

  1. Duplicar e renomear k8s/secrets.yml.template.
cp k8s/secrets.yml.template k8s/secrets.yml
  1. Atualizar as secrets kubernetes INLABS_EMAIL, INLABS_PASSWORD, SLACK_BOT_URL em k8s/secrets.yml.

Warning

Colocar valor dos secrets em base64 com comando echo -n "valor" | base64

  1. Rodar:
kubectl apply -f k8s/secrets.yml && \
kubectl apply -f k8s/manifest.yml

4. How CICD works

O Github Actions está definido em build-push-deploy.yml.

Comportamento:

  • Quando criada uma tag:
    • Faz o build do dockerfile
    • Publica no packages do Github a imagem :latest e :tag
    • Deleta o pod no kubernetes para novo pull da imagem :latest