Skip to content

Referência de YAML

O workspace do Lumo é uma cópia espelho do tenant em arquivos YAML. Esta seção é o contrato desses arquivos: uma página por tipo de recurso, com todas as propriedades, os tipos, o que é obrigatório e o que cada restrição quebra quando você a ignora.

Toda chave documentada aqui existe nos schemas v2 que o próprio CLI usa para validar. O que não está no schema não aparece nestas páginas.

RecursoOnde vivePágina
Flowflows/<slug>--<id>.yamlFlow
Tabela do DWtables/<slug>--<id>.yamlTable
App de BIapps/<slug>--<id>.yamlApp
Credencialcredentials/<slug>--<id>.yamlCredential
Agendamentoschedules/<slug>--<id>.yamlSchedule
Deskdw-desks/ e bi-desks/Desk
Variáveis do tenantvariables.yamlVariables

O formato do arquivo

Todo recurso é um arquivo com dois documentos YAML separados por ---.

yaml
id: 44531          # ─┐
kind: flow         #  │ header: identidade. imutável depois da criação.
lumo: v2           #  │
tenantId: 853      # ─┘
---
nome: Fato Vendas  # ─┐ body: o que você edita.
load_type: Total   # ─┘

O header identifica o recurso e nunca muda. O body é o conteúdo, e é o que você edita e sincroniza.

O nome do arquivo segue <slug>--<id>.yaml. O <id> no nome é o mesmo id do header. A exceção é variables.yaml, que é único no tenant e não tem id.

Autocomplete e validação no editor

Cole a linha do schema no topo do arquivo. Editores com YAML Language Server, como VS Code, passam a completar as chaves, mostrar os tipos e sublinhar o que estiver errado antes de você dar push.

yaml
# yaml-language-server: $schema=https://docs.horusbi.com.br/schemas/v2/flow.schema.json

Troque flow pelo kind do arquivo. Os schemas servidos:

O mesmo contrato roda localmente:

bash
lumo lint                # valida o workspace inteiro
lumo lint flows/fato-vendas--44531.yaml

Como ler as páginas

Cada página tem três camadas.

  1. Modelo de configuração. O esqueleto com todas as chaves, o tipo de cada uma e a restrição ao lado dela.
  2. Configuração completa. Um exemplo que funciona, com o nome do arquivo declarado e as pegadinhas comentadas onde elas acontecem.
  3. Especificação. Uma seção por propriedade, com tipo, obrigatoriedade, default e exemplo.

Descobrir o que já existe

O CLI imprime o modelo de qualquer recurso, direto do binário:

bash
lumo scaffold flow                 # flow genérico
lumo scaffold flow postgresql      # flow de extração PostgreSQL
lumo scaffold node Join            # fragmento de um nó, com as options comentadas
lumo scaffold credential --variant postgres

E lista o que o tenant já tem, com os ids que você vai precisar referenciar:

bash
lumo list flow
lumo list table
lumo list credential               # a chave da credencial, usada nos nós de extração
lumo columns table:44940           # os ids de coluna, usados em relationships e facts