Buscar K
Aparência
Aparência
Esta página contém a especificação completa da API REST do HorusBI no formato interativo.
API REST para integração com a plataforma HorusBI.
A API usa dois níveis de tokens Bearer:
| Token | Header | Uso |
|---|---|---|
| Client Token | Authorization: Bearer <token> |
Gerenciar múltiplos tenants |
| Tenant Token | Authorization: Bearer <token> |
Operar dentro de um tenant específico |
O acesso a dados é controlado via Datamarts com permissões granulares:
Retorna todos os tenants vinculados ao cliente autenticado.
A API utiliza dois níveis de autenticação:
| Token | Escopo | Endpoints |
|---|---|---|
| Client Token | Gerenciar tenants | /tenants/* |
| Tenant Token | Gerenciar recursos do tenant | /tenant/* |
Importante: O campo
tokenretornado para cada tenant é o Tenant Token que deve ser usado para autenticar nos endpoints/tenant/*(usuários, grupos, etc).
1. Use seu Client Token para chamar GET /tenants
2. Receba a lista de tenants, cada um com seu 'token' individual
3. Use o 'token' do tenant desejado como Bearer para endpoints /tenant/*
| Campo | Descrição |
|---|---|
id |
ID interno do tenant |
nome |
Nome do tenant |
token |
Tenant Token para autenticar em /tenant/* |
dominio |
Domínio de acesso (ex: empresa.horusbi.com.br) |
ativo |
Se o tenant está ativo |
development_variables |
Variáveis globais do ETL |
config |
Configurações do tenant |
dw_desks, bi_desks |
Mesas de dados e BI |
bi_apps |
Aplicações DataViz |
dw_tables |
Tabelas do Data Warehouse |
sys_users_tenants |
Usuários vinculados |
Token de acesso do cliente
Lista de tenants retornada com sucesso
Atualiza os dados de um tenant existente.
id é obrigatório para identificar o tenantdevelopment_variables são registradas em histórico| Campo | Descrição |
|---|---|
nome |
Nome do tenant |
ativo |
Status ativo/inativo |
dominio |
Domínio de acesso |
development_variables |
Variáveis globais do ETL |
config |
Configurações do tenant |
| Mensagem | Causa |
|---|---|
Tenant not found |
ID não existe ou não pertence ao cliente |
Invalid development_variables format... |
Formato incorreto das variáveis |
Token de acesso do cliente
Tenant atualizado com sucesso
Cria um novo tenant vinculado ao cliente autenticado.
templateId for informado, o template é aplicado automaticamentetemplateId, usa o template padrão do cliente (se configurado)O campo development_variables armazena variáveis globais usadas pelo ETL.
Aceita dois formatos:
Formato objeto (recomendado):
{
"db_host": "192.168.1.100",
"api_key": "abc123"
}
Formato array:
[
{"key": "db_host", "value": "192.168.1.100"},
{"key": "api_key", "value": "abc123"}
]
| Mensagem | Causa |
|---|---|
Invalid development_variables format... |
Formato incorreto das variáveis |
Token de acesso do cliente
Tenant criado com sucesso
Exclui permanentemente o tenant (soft delete).
PUT /tenantsativo: false| Mensagem | Causa |
|---|---|
Tenant not found |
ID não existe ou não pertence ao cliente |
Compatibilidade: Clientes que não suportam o método HTTP
DELETE
podem usarPOST /tenants/deletecom o mesmo payload e comportamento.
Token de acesso do cliente
Tenant excluído com sucesso
Alternativa via POST ao DELETE /tenants, para clientes que não
suportam o método HTTP DELETE. Mesmo payload e comportamento —
consulte DELETE /tenants para detalhes de cobrança e soft delete.
Token de acesso do cliente
Tenant excluído com sucesso
Retorna os templates disponíveis para o cliente autenticado.
Templates são configurações pré-definidas que podem ser aplicadas
a novos tenants para criar estruturas iniciais de dados, aplicações
e dashboards.
id do template no campo templateId ao criar um tenantPOST /tenant/templates/applyToken de acesso do cliente
Lista de templates retornada com sucesso
Retorna os dados completos do tenant autenticado.
Este endpoint retorna as mesmas informações de um tenant individual
que seriam retornadas no GET /tenants, porém usando o Tenant Token
ao invés do Client Token.
| Campo | Descrição |
|---|---|
id |
ID interno do tenant |
nome |
Nome do tenant |
token |
Tenant Token (confirmação) |
dominio |
Domínio de acesso |
ativo |
Status ativo/inativo |
development_variables |
Variáveis globais do ETL |
config |
Configurações do tenant |
dw_desks |
Mesas de Data Warehouse |
bi_desks |
Mesas de Business Intelligence |
bi_apps |
Aplicações DataViz |
dw_tables |
Tabelas (resumo) |
sys_users_tenants |
Usuários vinculados |
Token de acesso do tenant
Dados do tenant retornados com sucesso
Retorna todas as tabelas do Data Warehouse do tenant com seus metadados de colunas.
| Campo | Descrição |
|---|---|
id |
ID da tabela |
nome |
Nome técnico da tabela (ex: fat_vendas) |
columns |
Lista de colunas da tabela |
| Campo | Descrição |
|---|---|
id |
ID da coluna |
column_name |
Nome técnico da coluna |
data_type |
Tipo de dado (STRING, NUMBER, DATE) |
label |
Rótulo amigável para exibição |
column_type |
Classificação: column, expression |
| Tipo | Descrição |
|---|---|
column |
Coluna física da tabela |
expression |
Expressão para cálculos (ex: margem) |
Token de acesso do tenant
Lista de tabelas retornada com sucesso
Retorna todos os usuários ativos vinculados ao tenant autenticado.
| Campo | Descrição |
|---|---|
login |
E-mail/identificador único do usuário |
nome |
Nome de exibição do usuário |
ultimo_login |
Data/hora do último acesso ao tenant |
groups |
IDs dos grupos aos quais o usuário pertence |
bi_desks |
IDs das mesas de BI às quais o usuário tem acesso |
apps_deny |
IDs das aplicações bloqueadas para o usuário |
table_restrictions |
Restrições de dados em tabelas específicas |
Nota: Um usuário pode existir em múltiplos tenants. Esta operação retorna apenas os usuários vinculados ao tenant do token.
Token de acesso do tenant
Lista de usuários retornada com sucesso
Atualiza os dados de um usuário existente no tenant.
login é usado como identificador e não pode ser alteradogroups, bi_desks, etc.) substituem completamente os valores anteriores| Campo | Efeito |
|---|---|
groups |
Define os grupos do usuário (substitui todos) |
bi_desks |
Define acesso às mesas de BI |
apps_deny |
Define aplicações bloqueadas |
table_restrictions |
Define filtros de dados por tabela |
| Mensagem | Causa |
|---|---|
Usuário não encontrado |
Login não existe ou não está vinculado ao tenant |
App {id} não encontrado |
ID em apps_deny não existe no tenant |
Mesa de aplicação {id} não encontrada |
ID em bi_desks não existe |
Tabela {id} não encontrada |
ID em table_restrictions não existe |
Grupo {id} não encontrado |
ID em groups não existe no tenant |
Token de acesso do tenant
Usuário atualizado com sucesso
Cria um novo usuário ou vincula um usuário existente ao tenant.
login não existe na plataforma → cria novo usuário e vincula ao tenantlogin existe mas não está vinculado ao tenant → vincula o usuário existentelogin já está vinculado ao tenant → retorna erroImportante: Usuários são compartilhados entre tenants. Se o login já existe em outro tenant, o mesmo usuário será vinculado (não duplicado).
Após criar o usuário, você pode definir permissões iniciais:
| Campo | Descrição |
|---|---|
groups |
IDs dos grupos a associar |
bi_desks |
IDs das mesas de BI a liberar |
apps_deny |
IDs das aplicações a bloquear |
table_restrictions |
Filtros de dados por tabela |
| Mensagem | Causa |
|---|---|
Login já está cadastrado |
Usuário já vinculado ao tenant |
App {id} não encontrado |
ID em apps_deny não existe |
Mesa de aplicação {id} não encontrada |
ID em bi_desks não existe |
Tabela {id} não encontrada |
ID em table_restrictions não existe |
Grupo {id} não encontrado |
ID em groups não existe |
Token de acesso do tenant
Operação processada
Remove o vínculo de um usuário com o tenant (soft delete).
ultimo_login é mantido para auditoria| Mensagem | Causa |
|---|---|
Usuário não encontrado |
Login não existe ou não está vinculado ao tenant |
Token de acesso do tenant
Operação processada
Configura as permissões de acesso a funções do sistema para um grupo específico.
O sistema utiliza um modelo RBAC (Role-Based Access Control) onde:
read = false, todas as outras permissões são automaticamente desabilitadaspermissionMatrix são removidas (soft delete)| Permissão | Descrição | Depende de |
|---|---|---|
read |
Visualizar o recurso | - |
create |
Criar novos recursos | read |
update |
Editar recursos existentes | read |
delete |
Excluir recursos | read |
publish |
Publicar/disponibilizar recursos | read |
is_blocked |
Bloqueia completamente o acesso | - |
| Alias | Descrição |
|---|---|
dw |
Data Warehouse - Modelagem e tabelas |
bi |
Business Intelligence - DataViz e dashboards |
etl |
ETL - Fluxos de dados |
hec |
HEC - Controle empresarial |
| Mensagem | Causa |
|---|---|
Tenant não encontrado |
Token inválido ou tenant inativo |
Grupo não encontrado |
ID não existe ou não pertence ao tenant |
Token de acesso do tenant
Permissões configuradas
Retorna todas as permissões de funções configuradas para um grupo, incluindo as funções disponíveis mas ainda não configuradas.
falsesuite_alias e depois por aliasArray com os aliases das suites habilitadas para o grupo.
| Campo | Descrição |
|---|---|
alias |
Identificador único da função |
nome |
Nome amigável da função |
suite_alias |
Suite à qual a função pertence |
read |
Permissão de leitura |
create |
Permissão de criação |
update |
Permissão de edição |
delete |
Permissão de exclusão |
publish |
Permissão de publicação |
is_blocked |
Se a função está bloqueada |
| Mensagem | Causa |
|---|---|
Grupo não encontrado |
ID não existe ou não pertence ao tenant |
Token de acesso do tenant
Permissões do grupo
Retorna todos os grupos ativos do tenant com seus membros e permissões.
Grupos são conjuntos de permissões que podem ser atribuídos a múltiplos usuários.
Isso simplifica a gestão de acesso, pois ao invés de configurar permissões
individualmente para cada usuário, você configura uma vez no grupo.
Um usuário herda as permissões de todos os grupos aos quais pertence:
Importante: Permissões individuais do usuário podem sobrescrever as do grupo.
| Campo | Descrição |
|---|---|
id |
ID do grupo |
nome |
Nome do grupo |
bi_desks |
IDs das mesas de BI liberadas |
apps_deny |
IDs das aplicações bloqueadas |
table_restrictions |
Restrições de dados por tabela |
users |
IDs dos usuários membros |
Token de acesso do tenant
Lista de grupos retornada com sucesso
Atualiza os dados de um grupo existente.
id é obrigatório para identificar o grupobi_desks, apps_deny, etc.) substituem completamente os valores anterioresO campo users recebe um array de logins (e-mails) dos usuários:
| Campo | Efeito |
|---|---|
bi_desks |
Define acesso às mesas de BI (por ID) |
apps_deny |
Define aplicações bloqueadas (por ID) |
table_restrictions |
Define filtros de dados por tabela |
| Mensagem | Causa |
|---|---|
ID do grupo é obrigatório |
Campo id não enviado |
Grupo não encontrado |
ID não existe ou não pertence ao tenant |
App {id} não encontrado |
ID em apps_deny não existe |
Mesa de aplicação {id} não encontrada |
ID em bi_desks não existe |
Tabela {id} não encontrada |
ID em table_restrictions não existe |
Usuário {login} não encontrado |
Login não existe ou não vinculado ao tenant |
Token de acesso do tenant
Operação processada
Cria um novo grupo no tenant.
nome é obrigatório e não pode estar vazioid não deve ser enviado (será gerado automaticamente)EditGroupAo criar um grupo, você pode já definir:
| Campo | Descrição |
|---|---|
bi_desks |
Mesas de BI a liberar |
apps_deny |
Aplicações a bloquear |
table_restrictions |
Filtros de dados iniciais |
users |
Usuários a adicionar ao grupo (por login) |
| Mensagem | Causa |
|---|---|
Não é possível criar um grupo com um ID específico |
Campo id foi enviado |
Nome do grupo é obrigatório |
Campo nome vazio ou não enviado |
App {id} não encontrado |
ID em apps_deny não existe |
Mesa de aplicação {id} não encontrada |
ID em bi_desks não existe |
Usuário {login} não encontrado |
Login não vinculado ao tenant |
Token de acesso do tenant
Operação processada
Remove um grupo do tenant (soft delete).
Quando um grupo é inativado:
| Mensagem | Causa |
|---|---|
ID do grupo é obrigatório |
Campo id não enviado |
Grupo não encontrado |
ID não existe ou já está inativo |
Token de acesso do tenant
Operação processada
Gera um token JWT temporário para login transparente (SSO) de um usuário no BI.
Este endpoint permite login transparente (Single Sign-On) onde o usuário
é autenticado no seu sistema e redirecionado automaticamente para o BI sem
precisar digitar credenciais novamente.
| Propriedade | Valor |
|---|---|
| Tempo de expiração | 1 hora |
| Uso único | Não (pode ser reutilizado até expirar) |
| Tipo | JWT assinado |
Importante: O token expira em 1 hora. Gere um novo token a cada sessão do usuário para garantir segurança.
| Campo | Descrição |
|---|---|
success |
Se a operação foi bem sucedida |
token |
Token JWT para autenticação |
url |
URL pronta para redirecionamento/embed |
Ideal para embutir o BI dentro do seu sistema:
<iframe src="https://[dominio]/auth/api/[token]?showMenu=0"
width="100%" height="600px"></iframe>
Redirecione o usuário para a URL retornada:
window.location.href = response.url;
Use a URL em componentes nativos como WebView.
A URL retornada aceita query parameters para customização:
| Parâmetro | Valores | Descrição |
|---|---|---|
showMenu |
0 / 1 |
Exibe ou oculta o menu principal |
showDesksIcon |
0 / 1 |
Exibe ou oculta o ícone de mesas (padrão: 1) |
ref |
Base64 | Redireciona para uma rota específica após login |
refPara redirecionar o usuário diretamente para uma página específica:
/app/report/1 → L2FwcC9yZXBvcnQvMQ==)ref na URLExemplo:
https://[dominio]/auth/api/[token]?showMenu=0&ref=L2FwcC9yZXBvcnQvMQ==
1. Usuário faz login no SEU sistema
2. Seu backend chama POST /tenant/login com o email do usuário
3. Recebe token e URL
4. Exibe iframe ou redireciona o usuário
5. Usuário acessa o BI já autenticado
Quando usar showMenu=0, você pode criar um menu customizado:
GET /tenant para listar aplicações e mesasGET /tenant/users para consultar permissões do usuáriohttps://[dominio]/auth/api/[token]?showMenu=0&ref=[base64]| Mensagem | Causa |
|---|---|
Usuário não encontrado |
Login não existe ou não está vinculado ao tenant |
Token de acesso do tenant
Operação processada
Aplica um template pré-configurado ao tenant, criando estruturas de dados, aplicações e dashboards.
Templates são configurações pré-definidas que incluem:
Templates permitem provisionar rapidamente novos tenants com estruturas prontas para uso.
Importante: Por padrão o apply é aditivo - adiciona recursos ao tenant sem remover os existentes. Com
espelhar=true, ele também poda o conteúdo de produto órfão (fora do template), deixando o tenant no estado canônico; usedryRun=truepara pré-visualizar a poda antes.
Quando o apply reconstrói ou cria tabelas, elas ficam vazias até a próxima carga. A resposta traz um reloadPlan (tabelas afetadas em ordem de dependência). Dispare as cargas imediatamente via POST /tenant/templates/reload passando esses itens.
| Cenário | Uso Recomendado |
|---|---|
| Novo tenant | Use templateId na criação (POST /tenants) |
| Tenant existente | Use este endpoint |
| Atualização de template | Reaplicar para obter novas versões |
Use o endpoint GET /tenants/templates para listar os templates disponíveis para seu cliente.
| Mensagem | Causa |
|---|---|
Tenant not found |
Tenant não existe ou foi excluído |
Template not found |
Template não existe ou não pertence ao cliente |
Token de acesso do tenant
Operação processada
Dispara, em lote e em ordem de dependência, as cargas dos flows do reloadPlan
devolvido por POST /tenant/templates/apply. Use quando o apply reconstruiu/criou
tabelas (que ficam vazias até a próxima carga) e você quer populá-las imediatamente.
O backend agrupa por agente e enfileira as cargas; agentes offline são pulados
(skipped_offline) sem abortar o lote.
Token de acesso do tenant
Lote enfileirado
Retorna todos os fluxos ETL (dataflows) ativos do tenant.
Flows (ou Dataflows) são pipelines de dados configurados no Horus ETL.
Cada flow define uma sequência de operações para extrair, transformar
e carregar dados no Data Warehouse.
| Campo | Descrição |
|---|---|
id |
ID do flow |
nome |
Nome do flow |
deskId |
Mesa de dados à qual pertence |
tableId |
Tabela de destino (quando aplicável) |
load_type |
Tipo de carga: full ou incremental |
versao |
Versão atual do flow |
| Tipo | Descrição |
|---|---|
Total |
Substitui todos os dados a cada execução |
Incremental |
Adiciona apenas dados novos/alterados |
Temporal |
Carrega dados de um período específico |
Token de acesso do tenant
Lista de fluxos retornada com sucesso
Força a execução imediata de um flow específico.
Importante: A execução é assíncrona. O retorno
success: trueindica
que o comando foi enviado, não que o flow foi concluído.
O campo context é obrigatório e define o modo de carga do flow:
| Context | Descrição |
|---|---|
Total |
Carga total - substitui todos os dados |
Incremental |
Carga incremental - apenas novos/alterados |
Temporal:* |
Carga temporal - período específico |
Para cargas temporais, use o formato Temporal:tipo:valor:
| Formato | Exemplo | Descrição |
|---|---|---|
Temporal:Days:N |
Temporal:Days:30 |
Últimos N dias |
Temporal:Future:N |
Temporal:Future:7 |
Próximos N dias |
Temporal:Year:AAAA |
Temporal:Year:2024 |
Ano específico |
Temporal:Month:MM-AAAA |
Temporal:Month:01-2024 |
Mês específico |
| Mensagem | Causa |
|---|---|
Flow não encontrado |
ID não existe ou flow está inativo |
Token de acesso do tenant
Comando de execução enviado
Retorna todos os agendamentos (schedules) do tenant com seus flows e triggers.
Schedules são agendamentos de execução que definem quando e como os flows
devem ser executados automaticamente. Um schedule pode conter múltiplos flows
que serão executados em sequência.
| Campo | Descrição |
|---|---|
id |
ID do agendamento |
nome |
Nome do agendamento |
ativo |
Se o agendamento está ativo |
flows |
Lista de flows vinculados (em ordem de execução) |
triggers |
Configurações de gatilho (quando executar) |
| Campo | Descrição |
|---|---|
type |
Tipo de trigger (timer, cron, etc.) |
period |
Intervalo em minutos (para triggers periódicos) |
start_time |
Hora de início (HH:MM) |
end_time |
Hora de término (HH:MM) |
start_when |
Data/hora de início do agendamento |
Token de acesso do tenant
Lista de agendamentos retornada com sucesso
Força a execução imediata de um agendamento, executando todos os seus flows em sequência.
Importante: A execução é assíncrona. O retorno
success: trueindica
que o comando foi enviado, não que todos os flows foram concluídos.
| RunFlow | RunSchedule |
|---|---|
| Executa um único flow | Executa todos os flows do schedule |
| Não respeita ordem | Respeita ordem de execução |
| Requer context | Usa context interno |
| Mensagem | Causa |
|---|---|
Schedule não encontrado |
ID não existe ou foi excluído |
Token de acesso do tenant
Comando de execução enviado
Retorna todos os datamarts do tenant com suas tabelas e responsáveis.
Datamarts são Vitrines de Negócio que organizam tabelas por contexto de uso,
não por onde estão armazenadas. Eles permitem:
Analogia: Pense no Spotify - a música está gravada no álbum do artista (Mesa),
mas você pode adicioná-la em várias playlists diferentes (Datamarts).
| Conceito | Função | Gerenciado por |
|---|---|---|
| Mesa (Desk) | Armazenamento físico | Engenharia de Dados |
| Datamart | Organização de negócio | Dono do Datamart |
| Permissão | Controle de acesso | Dono do Datamart |
| Campo | Descrição |
|---|---|
id |
ID do datamart |
nome |
Nome do datamart (ex: "Vendas", "RH", "Financeiro") |
dm_tables |
Lista de tabelas vinculadas ao datamart |
owners |
Lista de usuários responsáveis pelo datamart |
/tenant/datamart/{id}/user para ver permissões de usuários/tenant/datamart/{id}/group para ver permissões de gruposToken de acesso do tenant
Lista de datamarts retornada com sucesso
Cria um novo datamart ou atualiza um existente. O comportamento depende do campo id:
Campo id |
Comportamento |
|---|---|
| Ausente | Cria novo datamart |
| Presente | Atualiza datamart existente |
Para criar um datamart, informe:
nome: Nome do datamart (obrigatório)dm_tables: Lista de tabelas a vincular (obrigatório)owners: Lista de usuários responsáveis (obrigatório)Na atualização, o sistema:
O mesmo comportamento se aplica aos owners.
| Para obter | Use o endpoint |
|---|---|
| IDs de tabelas | GET /tenant/data → campo id das tabelas |
| IDs de usuários | GET /tenant/users → campo id dos usuários |
| Mensagem | Causa |
|---|---|
Invalid userId |
Usuário não existe ou não pertence ao tenant |
Invalid tableId |
Tabela não existe ou foi excluída |
Datamart not found |
ID informado não existe (ao atualizar) |
Token de acesso do tenant
Operação processada com sucesso
Retorna todas as permissões configuradas para usuários individuais em um datamart.
No Horus, as permissões de acesso a dados são extremamente granulares:
| Nível | Descrição |
|---|---|
| Por Tabela | Cada usuário pode ter acesso diferente a cada tabela |
| Por Coluna | Colunas sensíveis podem ser ocultadas |
| Por Linha | Filtros restringem quais registros o usuário vê |
| Por Tempo | Acesso pode ter data de expiração |
| Por Exportação | Controle separado para visualização vs. exportação |
| Campo | Descrição |
|---|---|
userId |
ID do usuário |
user |
Dados do usuário (id, nome, login) |
tableId |
ID da tabela |
table |
Dados da tabela (id, nome) |
allowed |
Se o usuário pode visualizar a tabela |
allow_export |
Se pode exportar os dados |
expires_in |
Data de expiração do acesso (opcional) |
hidden_columns |
Colunas que o usuário não pode ver |
filters |
Filtros de linha (RLS - Row Level Security) |
Um vendedor pode:
Nota: Este endpoint retorna permissões por USUÁRIO. Para permissões por grupo,
useGET /tenant/datamart/{id}/group.
Token de acesso do tenant
ID do datamart
1Lista de permissões de usuários
Cria ou atualiza a permissão de um usuário específico para acessar uma tabela do datamart.
Se já existir uma permissão para a combinação (datamart + tabela + usuário):
Caso contrário:
| Valor | Comportamento |
|---|---|
true |
Usuário pode visualizar a tabela |
false |
Usuário NÃO pode ver a tabela (bloqueado) |
| Valor | Comportamento |
|---|---|
true |
Usuário pode exportar dados (CSV, Excel) |
false |
Usuário apenas visualiza, não exporta |
Lista de nomes de colunas que o usuário não deve ver.
Exemplo: ["salario", "cpf", "endereco"]
Filtros que restringem quais registros o usuário pode ver.
Cada filtro tem:
| Campo | Descrição | Exemplo |
|---|---|---|
column |
Nome da coluna | regiao |
operator |
Operador | =, !=, >, <, >=, <=, IN |
value |
Valor | Sul |
Exemplo prático: Um vendedor só vê vendas da sua região:
"filters": [
{"column": "regiao", "operator": "=", "value": "Sul"}
]
Data/hora em que o acesso expira automaticamente.
Útil para acessos temporários (consultores, estagiários).
| Mensagem | Causa |
|---|---|
Datamart not found |
ID do datamart não existe |
Table not found |
tableId não existe no tenant |
Invalid userId |
Usuário não existe ou inativo |
Token de acesso do tenant
ID do datamart
1Permissão salva com sucesso
Retorna todas as permissões configuradas para grupos em um datamart.
| Tipo | Quando usar |
|---|---|
| Usuário | Permissões específicas para uma pessoa |
| Grupo | Permissões compartilhadas por múltiplos usuários |
Recomendação: Use grupos para configuração em massa e usuários
apenas para exceções individuais.
Um usuário recebe a combinação das permissões:
Mesma estrutura do endpoint de usuários, mas com groupId e group em vez de userId e user.
O grupo "Vendedores" pode:
Depois, vendedores seniores recebem permissão individual para ver margens.
Token de acesso do tenant
ID do datamart
1Lista de permissões de grupos
Cria ou atualiza a permissão de um grupo para acessar uma tabela do datamart.
Este endpoint funciona exatamente como o POST /tenant/datamart/{id}/user,
mas usa groupId em vez de userId.
| Campo | Tipo | Descrição |
|---|---|---|
groupId |
integer | ID do grupo (obrigatório) |
tableId |
integer | ID da tabela (obrigatório) |
allowed |
boolean | Acesso permitido (obrigatório) |
allow_export |
boolean | Pode exportar (obrigatório) |
expires_in |
datetime | Expiração (opcional) |
hidden_columns |
string[] | Colunas ocultas (opcional) |
filters |
object[] | Filtros RLS (opcional) |
| Mensagem | Causa |
|---|---|
Datamart not found |
ID do datamart não existe |
Table not found |
tableId não existe no tenant |
Invalid groupId |
Grupo não existe ou foi excluído |
Token de acesso do tenant
ID do datamart
1Permissão de grupo salva com sucesso