O presente documento fornece orientações para instalação do Motor de Qualidade de Dados nas Instituições Financeiras participantes do Open Finance Brasil.
Instalação
O primeiro passo é clonar o código do repositório (disponível no Github) para a sua pasta local.
git clone https://github.com/OpenBanking-Brasil/mqd-client.git
Em seguida, valide se o clone foi realizado corretamente em sua pasta local.
ls -la
Acesse a pasta do código criada localmente.
cd mqd-client/
Após acessar a pasta, é necessário compilar e criar a imagem que será utilizada pelo Docker para o container onde o Motor de Qualidade de Dados estará alocado.
docker build --no-cache -f infra/dockerfile/dockerfile-minimal -t mqd-client .
A seguir, valide se a imagem foi criada corretamente.
docker image ls
Modifique as variáveis de ambiente de acordo com as necessidades no arquivo:
/infra/dockerfile/docker-compose.yaml
version: '3' services: mqd-client: image: mqd-client:latest ports: - "8080:8080" environment: - API_PORT=:8080 - SERVER_ORG_ID=09b20d09-bf30-4497-938e-b0ead8ce9629 #- REPORT_EXECUTION_WINDOW=30 #- REPORT_EXECUTION_NUMBER= 200000 - ENVIRONMENT=DEV - LOGGING_LEVEL=WARNING - APPLICATION_MODE=TRANSMITTER - PROXY_URL=http://127.0.0.1:8082 network_mode: "host" depends_on: - proxy restart: always deploy: resources: limits: cpus: '1' memory: 1024M reservations: cpus: '0.25' memory: 128M proxy: image: nginx ports: - "8082:80" volumes: - ./proxy/default.sandbox.conf:/etc/nginx/conf.d/default.conf:ro - ./certificates:/etc/ssl
Variáveis de ambiente
Nome | Descrição | Valores |
---|---|---|
API_PORT | Porta que será usada para expor os endpoints da API | ":" + porta |
SERVER_ORG_ID | ID da organização da instituição financeira | Organisation Id Valido |
REPORT_EXECUTION_WINDOW | Indica a janela de execução para envio de relatórios, | > 0, < 60 |
REPORT_EXECUTION_NUMBER | Indica a quantidade de relatórios que devem ser processados antes do envio, caso a quantidade de relatórios atinja o limite, o relatório é enviado automaticamente e o timer da janela de tempo é reiniciado | >0, < 2000000 |
ENVIRONMENT | Indica o ambiente em que o aplicativo está sendo instalado | PROD |
LOGGING_LEVEL | Indica o nível de rastreio que será utilizado na aplicação | DEBUG |
APPLICATION_MODE | Indica a forma como será executada a aplicação, isso dependerá se se trata de uma instituição do tipo transmissora ou receptora. | TRANSMITTER |
PROXY_URL | Indica a url onde será encontrado o Proxy que estabelece conexão segura com o servidor. | URL valida |
Volumes
Volume | Descrição |
---|---|
/etc/nginx/conf.d/default.conf | Volume do arquivo de configuração NGINX deve ser modificado para utilizar a configuração necessária de acordo com o ambiente onde será instalado |
/etc/ssl | Volumen quie indica la carpeta que contiene los archivos de certificados de acuerdo al archivo de configuracion |
Por fim, use o Docker Compose para iniciar a aplicação do Motor de Qualidade de Dados.
docker compose -f infra/dockerfile/docker-compose.yaml up
Em seguida, execute o comando para enviar um request de teste a API do Motor de Qualidade de Dados.
curl --location --request GET 'http://localhost:8081/ValidateResponse' \ --header 'serverOrgId: c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd' \ --header 'endpointName: /accounts/v2/accounts' \ --header 'Content-Type: text/plain'
Importante!
Hoje não há limite para o MQD, tanto no tamanho quanto na quantidade de mensagens. Mas ainda recomendamos o monitoramento constante do contêiner da aplicação, pois dependendo da carga entregue será necessário aumentar os recursos (RAM e CPU) para processar adequadamente todas as mensagens.
Configuração
Para integrar a validação de dados ao Motor de Qualidade de Dados, é necessário atualizar os serviços que deseja validar conforme fluxo mostrado abaixo.
Para isso é necessário consumir a API conforme especificação disponível em mqd-client/docs/specification/mqd-client-openapi.yml at main · OpenBanking-Brasil/mqd-client (github.com), gerando assim uma nova solicitação ao obter a resposta da TRANSMISSORA.
Para a tratativa de erros no processamento do MQD ou para envio do request para ele, espera-se conseguir enviar 100% das transações para processamento, porém, podem ocorrer pequenas perdas que não afetariam os resultados. Por esta razão recomendamos uma abordagem padrão incluindo 3 tentativas no momento da integração.
É necessário incluir as informações do cabeçalho nesta nova solicitação:
Variável | Descrição | Exemplo |
---|---|---|
serverOrgId | Identificador da TRANSMISSORA onde a informação foi solicitada | c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd |
endpointName | Nome do endpoint que foi solicitado | /contas/v2/contas |