Skip to content

Credential

Uma credencial é a conexão com um banco ou uma API. Ela vive em credentials/<slug>--<id>.yaml e é referenciada pelos nós de extração do flow.

bash
lumo new credential --type postgres --name "ERP Produção"

Ligue o autocomplete no editor colando esta linha no topo do arquivo:

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

O nó de extração do flow aponta para a credencial pela chave, não pelo id. Descubra a chave com lumo list credential.

Modelo de configuração

yaml
# ── header ────────────────────────────────────────────────
id: integer                # obrigatório, >= 1
kind: credential           # obrigatório, literal "credential"
lumo: v2                   # obrigatório, literal "v2"
tenantId: integer          # obrigatório, >= 1
---
# ── body ──────────────────────────────────────────────────
nome: string               # obrigatório, mínimo 1 caractere
type: string               # obrigatório: mysql | postgresql | bigquery | http | sqlserver
                           #              | oracle | firebird | informix | odbc | iris
password: string           # somente-escrita: o servidor guarda e nunca devolve no GET
tags: [string]

config:                    # obrigatório. aceita chaves extras conforme o driver
  host: string
  port: integer            # 1 a 65535
  database: string
  username: string
  password: string

O password some do arquivo depois de um lumo pull, porque o servidor nunca devolve o segredo. Isso é esperado. Preencha na criação ou quando for rotacionar, e omita nos pushes seguintes para manter o valor que já está no servidor.

Configuração completa

yaml
# credentials/erp-producao--944.yaml
# yaml-language-server: $schema=https://docs.horusbi.com.br/schemas/v2/credential.schema.json
id: 944
kind: credential
lumo: v2
tenantId: 853
---
nome: ERP Produção
type: postgresql

config:
  host: db.interno.exemplo.com
  port: 5432
  database: erp
  username: horusbi_ro

# Preencha só na criação ou na rotação do segredo. Omita nos pushes
# seguintes: o servidor mantém o valor que já tem.
password: "{{ senha }}"

tags: [erp]

Use um usuário só de leitura na origem. O ETL nunca escreve no sistema de origem.

Especificação: header

id

Tipo: integer (>= 1) · Obrigatório: sim

kind

Tipo: string · Obrigatório: sim · Valor: credential

lumo

Tipo: string · Obrigatório: sim · Valor: v2

tenantId

Tipo: integer (>= 1) · Obrigatório: sim

Especificação: body

nome

Tipo: string (mínimo 1 caractere) · Obrigatório: sim

Nome exibido da credencial.

type

Tipo: string · Obrigatório: sim

Driver da conexão. Os valores aceitos:

ValorOrigem
postgresqlPostgreSQL
mysqlMySQL
sqlserverSQL Server
oracleOracle
firebirdFirebird
informixInformix
irisInterSystems IRIS
odbcQualquer origem via ODBC
bigqueryGoogle BigQuery
httpAPI HTTP

Qualquer outro valor é rejeitado.

config

Tipo: object · Obrigatório: sim

Parâmetros da conexão. As chaves comuns a bancos relacionais:

CampoTipoO que é
hoststringHost do servidor.
portinteger (1 a 65535)Porta.
databasestringBanco a conectar.
usernamestringUsuário.
passwordstringSenha. Somente-escrita, igual à do body.

config aceita chaves adicionais específicas de cada driver, e o schema não as restringe. Rode lumo scaffold credential --variant <driver> para ver as chaves de um driver antes de escrever o arquivo.

yaml
config:
  host: db.interno.exemplo.com
  port: 5432
  database: erp
  username: horusbi_ro

password

Tipo: string · Obrigatório: não

Senha da conexão. Somente-escrita: o servidor guarda o valor e nunca o devolve numa leitura, então ele não reaparece depois de um lumo pull.

Preencha na criação ou para rotacionar o segredo. Omita nos pushes seguintes para preservar o valor no servidor.

tags

Tipo: array de string · Obrigatório: não · Default: []

Campos gerenciados pelo servidor

CampoO que é
versionVersão do recurso.
criado_em, criado_por, publicado_em, publicado_porAuditoria.