{"id":22353507,"url":"https://github.com/dp6/raft-suite-hub","last_synced_at":"2025-06-28T04:32:14.664Z","repository":{"id":36980723,"uuid":"378243948","full_name":"DP6/raft-suite-hub","owner":"DP6","description":"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.","archived":false,"fork":false,"pushed_at":"2023-03-06T04:25:59.000Z","size":1695,"stargazers_count":7,"open_issues_count":15,"forks_count":0,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-06-27T07:53:01.964Z","etag":null,"topics":["bigquery","data","data-quality","google-cloud","google-cloud-functions","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://dp6.github.io/raft-suite-hub/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DP6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-18T19:10:11.000Z","updated_at":"2022-12-07T20:08:24.000Z","dependencies_parsed_at":"2025-06-28T04:31:34.697Z","dependency_job_id":null,"html_url":"https://github.com/DP6/raft-suite-hub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"DP6/template-default-initiative-js","purl":"pkg:github/DP6/raft-suite-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DP6%2Fraft-suite-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DP6%2Fraft-suite-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DP6%2Fraft-suite-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DP6%2Fraft-suite-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DP6","download_url":"https://codeload.github.com/DP6/raft-suite-hub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DP6%2Fraft-suite-hub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262375826,"owners_count":23301341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigquery","data","data-quality","google-cloud","google-cloud-functions","hacktoberfest"],"created_at":"2024-12-04T13:08:50.286Z","updated_at":"2025-06-28T04:32:14.625Z","avatar_url":"https://github.com/DP6.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raft Suite Hub\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/DP6/templates-centro-de-inovacoes/main/public/images/centro_de_inovacao_dp6.png\" height=\"100px\" /\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#badge\"\u003e\n    \u003cimg alt=\"semantic-release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.codacy.com/gh/DP6/a8ef88ae93a84efbae676f2fa0a4bebb/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=DP6/raft-suite-hub\u0026amp;utm_campaign=Badge_Coverage\"\u003e\u003cimg alt=\"Code coverage\" src=\"https://app.codacy.com/project/badge/Coverage/a8ef88ae93a84efbae676f2fa0a4bebb\"/\u003e\u003c/a\u003e\n  \u003ca href=\"#badge\"\u003e\n    \u003cimg alt=\"Test\" src=\"https://github.com/dp6/raft-suite-hub/actions/workflows/test.yml/badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.codacy.com/gh/DP6/template-default-initiative-js/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=DP6/template-default-initiative-js\u0026amp;utm_campaign=Badge_Grade\"\u003e\n    \u003cimg alt=\"Code quality\" src=\"https://app.codacy.com/project/badge/Grade/a8ef88ae93a84efbae676f2fa0a4bebb\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nRaft-suite é um ecossistema criado pela DP6 para garantir a qualidade dos dados ([Data Quality](https://en.wikipedia.org/wiki/Data_quality)) nos projetos de engenharia de dados implementados nos clientes da DP6, através de monitoramento automatizados de dados.\n\nO **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.\n\n## Conteúdo\n\n- [Raft Suite Hub](#raft-suite-hub)\n  - [Conteúdo](#conteúdo)\n  - [1. Requisitos para utilização](#1-requisitos-para-utilização)\n    - [1.1 Produtos Google Cloud Platform (GCP)](#11-produtos-google-cloud-platform-gcp)\n    - [1.2 Dependências do ambiente local](#12-dependências-do-ambiente-local)\n  - [2. Instalando o hub](#2-instalando-o-hub)\n  - [3. Usando o Hub](#3-usando-o-hub)\n    - [3.1 Schema da tabela](#31-schema-da-tabela)\n  - [4. Observações](#4-observações)\n  - [Como contribuir](#como-contribuir)\n    - [Requisitos obrigatórios](#requisitos-obrigatórios)\n    - [Api Docs](#api-docs)\n  - [Suporte](#suporte)\n    - [DP6 Koopa-troopa Team](#dp6-koopa-troopa-team)\n\n## 1. Requisitos para utilização\n\n### 1.1 Produtos Google Cloud Platform (GCP)\n\n- Cloud Functions\n- BigQuery\n\n### 1.2 Dependências do ambiente local\n\n- NodeJS \u003e= 14.17.1\n- [Google Cloud SDK](https://cloud.google.com/sdk/docs/install)\n\n## 2. Instalando o hub\n\n1. Acesse o Cloud Shell ou um terminal com git e o gcloud sdk\n2. Clone o repositório\n\n   ```shell\n    git clone https://github.com/DP6/raft-suite-hub.git\n   ```\n\n3. Em seguida, navegue para a pasta e use o comando deploy\n\n   ```shell\n    cd raft-suite-hub\n    gcloud functions deploy hub-raft-suite-deploy --entry-point=app --trigger-http\n   ```\n\n   Opcionalmente, você pode preencher as variáveis de ambiente `DATASET_ID`, `TABLE_ID` e `INSERT_TYPE` com a flag --set-env-vars:\n\n   ```shell\n    cd raft-suite-hub\n    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]\n   ```\n\n## 3. Usando o Hub\n\nPara utilizar, é preciso fazer uma requisição POST para a cloud function com um json no body. Por exemplo, em Node com [axios](https://github.com/axios/axios):\n\n```js\nconst axio = require('axios');\nlet body = {\n  module: 'penguin-datalayer-collect',\n  spec: 'dp6_site',\n  deploy: '2.0.0',\n  code: '01-00',\n  description: 'Saving collect data',\n  payload: {\n    status: 'OK',\n    objectName: 'event',\n    keyName: 'eventCategory',\n    message: '',\n  },\n};\naxios.post('https://us-central1-dp6-brasil.cloudfunctions.net/hub-raft-suite', body);\n```\n\n### 3.1 Schema da tabela\n\n| Parâmetro        | Tipo     | Exemplo             | Obritatório | Descrição                                                                   |\n| ---------------- | -------- | ------------------- | ----------- | --------------------------------------------------------------------------- |\n| body             | `object` | -                   | Sim         | Request body                                                                |\n| body.project     | `string` |                     | Não         | Nome do projeto                                                             |\n| body.module      | `string` | `penguin-datalayer` | Sim         | Nome do módulo que enviou a mensagem                                        |\n| body.spec        | `string` | `dp6_site`          | Sim         | Detalhe sobre a execução do módulo                                          |\n| body.deploy      | `number` | `2.1.0`             | Sim         | Versão do módulo ou cloud function                                          |\n| body.code        | `string` | `01-00`             | Não         | Código usado para definir a dimensão e o status                             |\n| body.description | `string` |                     | Não         | Descrição do status                                                         |\n| body.details     | `string` |                     | Não         | --                                                                          |\n| body.payload     | `Object` | {}                  | Não         | Informações específicas dos módulos, que serão escritas como JSON na tabela |\n\n## 4. Observações\n\nPor 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.\n\n## Como contribuir\n\nPull 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.\n\n### Requisitos obrigatórios\n\nSó serão aceitas contribuições que estiverem seguindo os seguintes requisitos:\n\n- [Padrão de commit](https://www.conventionalcommits.org/en/v1.0.0/)\n\n### Api Docs\n\n- [Index.js](https://github.com/dp6/template-default-initiative-js/blob/master/docs/index.md)\n\n## Suporte\n\n### DP6 Koopa-troopa Team\n\n_e-mail: \u003ckoopas@dp6.com.br\u003e_\n\n\u003cimg src=\"https://raw.githubusercontent.com/DP6/templates-centro-de-inovacoes/main/public/images/koopa.png\" height=\"100px\" width=50px/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdp6%2Fraft-suite-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdp6%2Fraft-suite-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdp6%2Fraft-suite-hub/lists"}