Skip to content

variables ​

Tipo
Referência
Para
Desenvolvedor, Engenharia de dados

As variáveis do Tenant guardam valores que os nós dos Dataflows leem na execução, como hosts e tokens. Elas ficam num arquivo único, variables/tenant.yaml, sem id no cabeçalho. O uso das variáveis no HorusETL está em HorusETL.

Campos ​

  • fileName
    string · opcional · valores: variables.yaml (fixo)
  • header
    object · obrigatório
  • header.kind
    string · obrigatório · valores: variables (fixo)
  • header.lumo
    string · obrigatório · valores: v2 (fixo)
  • header.tenantId
    integer · obrigatório · valores: ≥ 1
  • header.appId
    integer · opcional · valores: ≥ 1
  • header.dashboardId
    integer · opcional · valores: ≥ 1
  • body
    object · obrigatório
  • body.items
    array de object · obrigatório
  • body.items[].key
    string · obrigatório · valores: regex ^[A-Z_][A-Z0-9_]*$
  • body.items[].value
    string · opcional
    Editable when present; omitted or placeholder for secret variables on GET/self-healed YAML.
  • body.items[].is_secret
    boolean · obrigatório
  • body.items[].description
    string ou null · opcional
  • body.items[].agent_overrides
    array de object · opcional
    Valor próprio por Agente ETL. O agente listado recebe o value da entrada; os outros, o value da variável. Ausente no push mantém o gravado.
  • body.items[].agent_overrides[].tokenId
    integer · obrigatório · valores: ≥ 1
  • body.items[].agent_overrides[].value
    string · opcional
    Omitido na leitura quando a variável é secreta; ausente no push mantém o gravado.

Exemplo ​

yaml
# variables/tenant.yaml
# yaml-language-server: $schema=https://docs.horusbi.com.br/schemas/v2/variables.schema.json
kind: variables
lumo: v2
tenantId: 1200
---
items:
  - key: JANELA_CARGA_DIAS
    value: "31"
    is_secret: false
    description: Dias recarregados pelas cargas de janela.
  - key: API_TOKEN_ERP
    value: "troque-este-token"   # segredo: depois do pull o valor não volta
    is_secret: true
  - key: DB_HOST
    value: 10.0.0.5
    is_secret: false
    agent_overrides:             # valor próprio para um Agente ETL
      - tokenId: 42
        value: 10.9.0.7

Limites ​

  • key aceita só letras maiúsculas, dígitos e _, e não começa por dígito.
  • Variável com is_secret: true não devolve o valor na leitura: depois de um pull, o arquivo não mostra o segredo. Para manter o segredo gravado, deixe value de fora; value: "" grava vazio por cima.
  • items é gravado como está no arquivo: um item que sai da lista apaga a variável no push.
  • agent_overrides: [] apaga todos os valores por agente daquela variável. Sem a chave, ficam os gravados. O tokenId de cada item precisa ser de um Agente ETL ligado ao Tenant.
  • Sem a função Variáveis do Tenant com edição, as variáveis vêm mascaradas: só as chaves, com o valor (mascarado). Nesse caso o push sem alvo pula o arquivo, e o push que o nomeia como alvo ou o lumo variables set são recusados.
  • Nas options de um nó, {CHAVE} é trocado pelo valor da variável na hora da execução, inclusive dentro do SQL. O código de um nó Python (Sourcecode) fica de fora dessa troca. Se o Dataflow já tem uma variável própria com o mesmo nome, vale a dele.
  • lumo variables set CHAVE=valor e lumo variables unset CHAVE gravam direto no servidor, sem passar pelo push. O CLI lê o mapa antes, para não apagar as outras chaves. Para valor de várias linhas, lumo variables set CHAVE --from-stdin.