Skip to content

joaquimsn/penguin-datalayer-core

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

penguin-datalayer-core

semantic-release npm latest version Coverage Test Code Quality

O penguin-datalayer-core é o motor de validação dos modulos penguin-datalayer que pertence ao ecossitema raf-suite criado pela DP6 para garantir a qualidade dos dados (Data Quality) nos projetos de engenharia de dados implementados nos clientes, através de monitoramento e pipelines automatizadas de dados, visando garantir a credibilidade, consistência e disponibilidade nas fases de planejamento, coleta e manutenção dos dados.

1. Requisitos para utilização

1.1 JSON Schema

O JSON Schema é uma estrutura que permite a validação de documentos JSON. Esta estrutura é utilizada no projeto pois permite a declaração dos formatos de dados esperados dentro da camada de dados, esse estrutura utiliza o modelo da lib Ajv.

Tipos Suportados

Os seguintes tipos de dados são suportados:

  • String
  • Number
  • Boolean
  • Object
  • Array

Regras de validação

As seguintes regras para validação são aceitas:

  • Enum (Equals): A ser utilizada quando houver a necessidade de validar a igualdade entre o valor informado no schema versus o que foi enviado para a camada de dados
  • Pattern (Regex - String): É possível criar expressões regulares para validar valores das chaves
  • minItems (Array): Valida o número mínimo de itens contidos no array
  • Required: Quando houver a obrigatoriedade de validar uma determinada chave

Estrutura do JSON Schema

A estrutura a seguir é um exemplo de um JSON Schema:

{
  "$schema": "",
  "title": "Schema example",
  "array": {
    "$id": "#/properties/schema",
    "type": "array",
    "items": [
      {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "enum": ["teste"]
          },
          "key1": {
            "type": "object",
            "properties": {
              "key1_sub1": {
                "type": "number",
                "enum": [10]
              },
              "key1_sub2": {
                "type": "string",
                "pattern": "teste|test|.*"
              },
              "key1_sub3": {
                "type": "string",
                "enum": ["producao"]
              },
              "key1_sub4": {
                "type": "boolean",
                "enum": "desktop|mobile|msite"
              }
            },
            "required": ["key1_sub1", "key1_sub2", "key1_sub3", "key1_sub4"]
          }
        },
        "required": ["event"]
      }
    ]
  }
}

1.2 Ludwig gerador de Schemas

A DP6 possui uma automação para geração estruturada do schema de validação.

Api Docs

Como contribuir

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

Requisitos obrigatórios

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

Suporte:

DP6 Koopa-troopa Team

e-mail: [email protected]

About

Validation core engine for the data layer of the Raft Suite ecosystem.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 92.4%
  • Ruby 7.6%