Raft Suite Hub

semantic-release Code coverage Test Code quality

Raft-suite é um ecossistema criado pela DP6 para garantir a qualidade dos dados (Data Quality) nos projetos de engenharia de dados implementados nos clientes da DP6, através de monitoramento automatizados de dados.

O Hub é a solução responsável por centralizar a consolidação dos dados no BigQuery, ferramenta escolhida para servir de data warehouse do raft-suite.

Conteúdo

1. Requisitos para utilização

1.1 Produtos Google Cloud Platform (GCP)

1.2 Dependências do ambiente local

2. Instalando o hub

  1. Acesse o Cloud Shell ou um terminal com git e o gcloud sdk
  2. Clone o repositório

     git clone https://github.com/DP6/raft-suite-hub.git
    
  3. Em seguida, navegue para a pasta e use o comando deploy

     cd raft-suite-hub
     gcloud functions deploy hub-raft-suite-deploy --entry-point=app --trigger-http
    

    Opcionalmente, você pode preencher as variáveis de ambiente DATASET_ID, TABLE_ID e INSERT_TYPE com a flag –set-env-vars:

     cd raft-suite-hub
     gcloud functions deploy hub-raft-suite-deploy --entry-point=app --trigger-http --set-env-vars DATASET_ID=[dataset] TABLE_ID=[table] INSERT_TYPE=[batch ou stream]
    

3. Usando o Hub

Para utilizar, é preciso fazer uma requisição POST para a cloud function com um json no body. Por exemplo, em Node com axios:

const axio = require('axios');
let body = {
  module: 'penguin-datalayer-collect',
  spec: 'dp6_site',
  deploy: '2.0.0',
  code: '01-00',
  description: 'Saving collect data',
  payload: {
    status: 'OK',
    objectName: 'event',
    keyName: 'eventCategory',
    message: '',
  },
};
axios.post('https://us-central1-dp6-brasil.cloudfunctions.net/hub-raft-suite', body);

3.1 Schema da tabela

Parâmetro Tipo Exemplo Obritatório Descrição
body object - Sim Request body
body.project string   Não Nome do projeto
body.module string penguin-datalayer Sim Nome do módulo que enviou a mensagem
body.spec string dp6_site Sim Detalhe sobre a execução do módulo
body.deploy number 2.1.0 Sim Versão do módulo ou cloud function
body.code string 01-00 Não Código usado para definir a dimensão e o status
body.description string   Não Descrição do status
body.details string   Não
body.payload Object {} Não Informações específicas dos módulos, que serão escritas como JSON na tabela

4. Observações

Por padrão, as cloud functions do tipo http só podem ser executadas com autenticação. Por isso, a requisição post precisa ser feita de um local autenticado, ou com o token de autenticação.

Como contribuir

Pull requests são bem-vindos! Nós vamos adorar ajuda para evoluir esse modulo. Sinta-se livre para navegar por issues abertas buscando por algo que possa fazer. Caso tenha uma nova feature ou bug, por favor abra uma nova issue para ser acompanhada pelo nosso time.

Requisitos obrigatórios

Só serão aceitas contribuições que estiverem seguindo os seguintes requisitos:

Api Docs

Suporte

DP6 Koopa-troopa Team

e-mail: koopas@dp6.com.br