Skip to content

Gestão de Tenants

O Tenant é a unidade fundamental de organização no Horus. Ele representa um ambiente isolado onde residem todos os seus dados, usuários, aplicações e configurações. Um cliente whitelabel pode ter múltiplos tenants.

TIP

Hierarquia de Configurações: Cliente → Tenant
Muitas configurações definidas no Cliente servem como padrão para seus Tenants. Porém, o Tenant pode sobrescrever essas configurações para personalizar seu próprio ambiente.

📝 Abas de Configuração do Tenant

Ao acessar a edição de um Tenant, você encontrará diversas abas para gerenciar cada aspecto do ambiente:


Geral

O painel de controle principal do tenant.

Informações Básicas

CampoDescrição
ClienteVínculo com o Cliente pai (apenas visível se existirem múltiplos clientes).
NomeNome de identificação do tenant.

Identidade Visual

CampoDescrição
LogoImagem de logotipo exibida no topo da aplicação. Formatos aceitos: PNG, JPG, JPEG. Máximo 5MB.
FaviconÍcone exibido na aba do navegador. Formatos aceitos: PNG, JPG, JPEG. Máximo 5MB.
Imagem de LoginImagem hero exibida na tela de login. Formatos aceitos: PNG, JPG, JPEG. Máximo 5MB.

Domínio e Configurações

CampoDescrição
Domínio(s)URLs personalizadas para acesso ao tenant (analytics.suaempresa.com.br). Permite múltiplos domínios separados por vírgula.
Instruções do ChatBotPrompt base personalizado para a IA do assistente virtual neste ambiente. Essas instruções orientam o comportamento do chatbot ao responder perguntas dos usuários.
StatusAtiva ou suspende o acesso ao tenant. Quando desativado, usuários não conseguem acessar o ambiente.

Recursos do Tenant

Visualização e edição dos limites contratados para este tenant:

  • Usuários: Limite de usuários simultâneos
  • CNPJs: Quantidade de CNPJs vinculados (quando aplicável via billing)
  • Processamento (GB/mês): Limite de processamento de dados mensal
  • Tokens de IA (mês): Limite de tokens de IA consumidos mensalmente

NOTE

Os recursos são calculados com base na configuração de billing do Cliente. O Tenant pode adicionar "extras" além da base calculada pelos CNPJs.


Suites/Visual

Personalize a aparência de cada módulo (suite) do Horus independentemente.

Configuração por Módulo

Para cada módulo (DataViz, ETL, HEC, DW):

CampoDescrição
TítuloNome personalizado do módulo exibido na interface.
DomínioURL específica para acesso direto ao módulo.
LogoLogotipo personalizado para o módulo.

Personalização Visual da Barra de Filtros

Ajuste as cores da barra de filtros globais para alinhar com a identidade visual da sua marca:

CampoDescrição
Usar cores personalizadasAtiva a personalização de cores (desabilitado usa as cores padrão).
Cores dos filtrosArray de cores em formato hexadecimal (#4E46DD) usadas na barra de filtros. Adicione ou remova cores conforme necessário (mínimo 1, máximo 10).
Cor do botão de filtroCor do botão de aplicar filtros na barra.

TIP

Use o preview de cores para visualizar como ficará a barra de filtros antes de salvar as alterações.


ChatBot

Integração com Telegram para funcionalidades de assistente virtual.

CampoDescrição
Nome de usuário do TelegramUsername do bot do Telegram (@meu_bot).
Token do TelegramToken de API fornecido pelo BotFather do Telegram.

Usuários

Gestão direta dos usuários que têm acesso a este tenant.

AçãoDescrição
Adicionar UsuárioBusque e adicione usuários existentes na plataforma digitando nome ou email.
Remover AcessoRevogue o acesso de usuários clicando no ícone de lixeira.
Recuperar AcessoDesfaz a remoção antes de salvar clicando no ícone de desfazer.

IMPORTANT

As alterações de usuários só são efetivadas após clicar em "Salvar Usuários".


Templates

Gerencie os templates instalados neste tenant.

  • Visualize quais templates estão ativos
  • Instale novos templates a partir da biblioteca global de product lines
  • Remova templates que não são mais necessários

Instâncias de WhatsApp

Conecte números de WhatsApp para envio de alertas e interações via chatbot.

O Horus suporta dois modos de integração com WhatsApp:

API Não-Oficial (WhatsApp Web)

AspectoDetalhes
ConfiguraçãoEscaneie o QR Code para vincular uma nova instância do WhatsApp Web.
RequisitoÉ necessário manter um celular ligado 24 horas com o chip ativo.
VantagemPermite enviar mensagens livremente, sem restrições de templates pré-aprovados.
StatusGerencie a conexão (Conectado/Desconectado) e reconecte quando necessário.

API Oficial da Meta

AspectoDetalhes
ConfiguraçãoIntegração via API oficial do WhatsApp Business.
RequisitoTemplates de mensagem devem ser pré-aprovados pela Meta (Facebook).
LimitaçãoO usuário deve interagir primeiro antes de receber mensagens completas.
Fluxo de AlertasSistema envia: "Você tem alertas para receber. Digite OK para receber seus alertas pendentes." Após o usuário responder "OK", os alertas completos são enviados.
VantagemNão requer celular físico ligado, maior estabilidade.

IMPORTANT

Implantação Customizada: A integração com a API Oficial da Meta requer configuração específica e desenvolvimento sob demanda. Entre em contato com a equipe Horus para viabilizar a implantação no seu ambiente.


Avançado

Configurações técnicas e de infraestrutura.

Configuração de Agentes ETL

ConfiguraçãoDescriçãoValores
Preservar Contexto dos AgentesRestringe relacionamentos entre tabelas ao mesmo agente de origem, evitando conflitos de IDs entre sistemas diferentes. Use quando: clientes possuem múltiplos sistemas ERP onde o ID "1" pode significar coisas diferentes em cada sistema.Liga/Desliga
Limite Temporal de CargasRestringe a quantidade de dados históricos carregados em cargas temporais.Liga/Desliga
Valor do LimiteDefine a janela de tempo para cargas temporais.Número + Unidade (dias/meses/anos)
Granularidade de AgendamentoDefine a menor unidade de tempo disponível para agendar cargas ETL. "Minutos" permite maior frequência, "Horas" simplifica a interface.Minutos (padrão) / Horas

NOTE

O Limite Temporal é útil para otimizar performance quando não é necessário carregar todo o histórico. Por exemplo, carregar apenas os últimos 30 dias de vendas.

SMTP Customizado

Configure um servidor de email próprio para o envio de notificações deste tenant, substituindo o padrão da plataforma.

CampoDescrição
Usar SMTP CustomizadoAtiva a configuração personalizada de email.
Host SMTPEndereço do servidor SMTP (smtp.gmail.com).
Porta SMTPPorta do servidor (normalmente 587 para TLS ou 465 para SSL).
Usuário SMTPUsuário para autenticação no servidor.
Senha SMTPSenha para autenticação no servidor.
Email RemetenteEndereço de email que aparecerá como remetente.
Nome RemetenteNome que aparecerá como remetente.
Usar SSL/TLSAtiva criptografia na conexão.
Testar Configuração SMTPBotão para enviar um email de teste e validar as configurações antes de salvar.

TIP

Use o botão Testar Configuração SMTP para validar suas configurações antes de salvar. Um email de teste será enviado para o endereço informado.

Template de Email

Personalize o visual dos emails enviados pelo sistema (header, footer, cores, logotipo, etc). O conteúdo específico de cada email é gerado automaticamente pelo sistema — aqui você customiza apenas o template visual que envolve esse conteúdo.

AçãoDescrição
Editar TemplateAbre o editor visual de templates MJML.
Editor de Template

O editor utiliza MJML (Mailjet Markup Language), uma linguagem responsiva para criação de emails. A interface é dividida em:

ÁreaDescrição
Editor MJMLEditor de código com syntax highlighting para escrever o template.
PreviewVisualização em tempo real do email renderizado.
VariáveisLista de variáveis disponíveis para uso no template.
ImagensGerenciador de imagens para upload e uso no template.
Variáveis Disponíveis
VariávelDescrição
{{_clientName}}Nome do cliente ou tenant.
{{_assunto}}Assunto do email.
{{_conteudo}}Conteúdo do email (obrigatório).

IMPORTANT

A variável {{_conteudo}} é obrigatória e deve estar presente no template. Ela será substituída pelo conteúdo específico de cada email enviado pelo sistema.

Upload de Imagens

Para usar imagens no template:

  1. Salve o template primeiro (necessário para habilitar upload).
  2. Faça upload da imagem pelo gerenciador.
  3. Copie a URL ou a tag MJML gerada.
  4. Use no código do template (<mj-image src="URL" />).
Hierarquia de Templates

O sistema segue uma ordem de prioridade para determinar qual template usar:

1. Template do Tenant (se customizado)
    └── 2. Template do Cliente (se customizado)
        └── 3. Template Padrão da Plataforma
StatusDescrição
Usando PadrãoO tenant/cliente está usando o template herdado (do nível superior ou padrão do sistema).
CustomizadoO tenant/cliente possui um template próprio.
RestaurarRemove a customização e volta a usar o template do nível superior.

TIP

Consulte a documentação oficial do MJML para aprender mais sobre componentes disponíveis e boas práticas de email responsivo.

Gerador de JWT

Crie chaves para autenticação segura entre o Horus e sistemas externos (ERP, APIs, etc).

CampoDescrição
Habilitar Gerador de JWTAtiva a funcionalidade de geração de tokens JWT.
Chave JWTChave secreta compartilhada entre Horus e seu sistema externo (até 128 caracteres, mínimo 16).
Gerar AleatóriaGera uma chave criptograficamente segura de 128 caracteres.
Testar JWTGera um token de teste e exibe seu payload decodificado.
Caso de Uso: Integração Segura BI ↔ Sistemas Externos

Imagine um Dashboard que lista pedidos pendentes de aprovação com um botão "Aprovar Pedido" em cada linha. Ao clicar, o Widget precisa chamar a API do seu ERP para aprovar o pedido.

O Problema: Armazenar credenciais de API (tokens, senhas) no código JavaScript do frontend é uma falha crítica de segurança — qualquer usuário pode inspecionar o código e roubar as credenciais.

A Solução: O Gerador de JWT cria um mecanismo de confiança entre dois servidores:

O Fluxo:

  1. Widget Svelte chama app.generateJWTToken() — o backend Horus gera um token assinado com a chave JWT configurada
  2. O token contém: ID do usuário logado, ID do tenant, timestamp
  3. Widget envia o token para sua API externa
  4. Sua API valida o token usando a mesma chave JWT configurada no lado dela
  5. Se válido, sua API confia que a requisição veio de um usuário autenticado no Horus

Payload do Token:

json
{
  "userId": 123,
  "tenantId": 456,
  "data": "2024-01-15T10:30:00.000Z"
}

IMPORTANT

Segurança: A chave JWT nunca trafega pelo browser. Ela fica apenas nos servidores (Horus + seu sistema). O que trafega é o token assinado, que pode ser validado mas não forjado sem a chave.

Veja a documentação completa de Widgets Svelte para exemplos de código.

Permissões e Segurança

ConfiguraçãoDescriçãoPadrão
Proteger mesas criadas via templatesQuando ativado, mesas criadas automaticamente por templates ficam somente leitura, não permitindo a customização de seu conteúdo.Desligado
Permitir usuários não-admin compartilhar alertasPermite que usuários comuns compartilhem seus alertas com outros usuários.Desligado
Mostrar usuários admin ao compartilhar alertasQuando o compartilhamento por não-admins está ativado, define se usuários admin aparecem na lista de destinatários.Desligado
Usuários não-admin não podem criar apps/editar dadosRestringe a criação de aplicações e edição de abas de dados apenas para administradores. Se ativado os usuários não administradores com permissão de editar aplicações ainda podem clonar aplicações publicadas para suas mesas, porém só podem editar Dashboards, não podendo editar modelagem de dados e expressões.Desligado
Permitir usuários criarem Dashboards pessoais em aplicações publicadasPermite que usuários criem Dashboards personalizados dentro de aplicações publicadas. Estes Dashboards ficam salvos na conta do usuário e não afetam a aplicação original.Desligado
Permitir usuários compartilharem Dashboards pessoaisQuando os Dashboards pessoais estão habilitados, esta opção permite que usuários compartilhem seus Dashboards com outros usuários do tenant.Desligado

Canais de Alerta

Defina quais canais de notificação estão disponíveis para os usuários configurarem seus alertas:

CanalDescrição
WhatsAppEnvio de alertas via WhatsApp (requer instância configurada).
TelegramEnvio de alertas via bot do Telegram.
EmailEnvio de alertas para o email cadastrado do usuário.
WebhookEnvio de alertas para um endpoint HTTP customizado.

Quando Webhook está habilitado:

CampoDescrição
URL do WebhookEndpoint HTTP que receberá as notificações de alerta.
DocumentaçãoBotão para visualizar a documentação técnica do payload enviado.

Configuração de IA

Personalize o provedor e modelo de IA usado neste tenant.

ModoDescrição
Usar configuração do ClienteHerda as configurações de IA do Cliente pai.
Usar configuração personalizadaDefine um provedor de IA próprio para este tenant.
Modelo padrão de IAQuando não usa configuração personalizada, seleciona o modelo padrão entre os disponíveis na plataforma.

Configuração Personalizada de IA:

CampoDescrição
ProvedorOpenAI, Google Gemini ou OpenRouter.
Chave da APIChave de acesso do provedor escolhido.
Modelos DisponíveisLista de modelos que estarão disponíveis (ID e Nome amigável).
Modelo PadrãoQual modelo será usado por padrão nas requisições.

CAUTION

Ao usar configuração personalizada de IA, os custos de utilização serão cobrados diretamente pelo provedor escolhido, não pela plataforma Horus.


Desenvolvedor

Área destinada a integrações via API.

ItemDescrição
Chave de APIToken de acesso para programar automações e integrações externas.
VisualizarÍcone de olho para revelar o token.
CopiarCopia o token para a área de transferência.
RegenerarCria um novo token (invalida o anterior).
DocumentaçãoLinks para Lumo Docs, Swagger e Redoc.

WARNING

Use com cautela: O token dá acesso administrativo aos recursos do tenant. Nunca compartilhe ou exponha publicamente.


Trial

(Visível apenas se habilitado no Cliente)

Gerencie o período de degustação do tenant:

  • Defina data de expiração do trial
  • Configure limites provisórios para o período de testes

🏢 Configurações do Cliente

O Cliente é a entidade pai que agrupa múltiplos Tenants. As configurações do Cliente servem como padrão para todos os seus Tenants.

Geral (Cliente)

CampoDescrição
NomeNome de identificação do cliente.
Nome da IANome personalizado para a assistente de IA (padrão: Lumia). Apenas clientes whitelabel.
Logo/Favicon/Imagem de LoginIdentidade visual padrão para todos os tenants.
Domínio PrincipalURL principal do cliente.
Cliente WhitelabelMarca o cliente como whitelabel (permite customizações avançadas).
Possui TrialHabilita período de degustação para novos tenants.
Dias de TrialDuração padrão do período de trial.
Template PadrãoTemplate instalado automaticamente em novos tenants.
Tenants precisam definir CNPJTorna obrigatório o cadastro de CNPJ nos tenants.

Suites/Visual (Cliente)

Mesma estrutura do Tenant, mas define os valores padrão para todos os tenants do cliente.

ChatBot (Cliente)

Configuração de Telegram e instruções do chatbot que serão herdadas pelos tenants.

Avançado (Cliente)

Todas as configurações avançadas (ETL, SMTP, JWT, Permissões, Alertas, IA) funcionam como padrão para novos tenants. Cada tenant pode sobrescrever essas configurações.

Usuários (Cliente)

Gerenciamento de usuários no nível do cliente, com controle de quotas baseado na configuração de billing.

Desenvolvedor (Cliente)

Chave de API e documentação no nível do cliente.

Instâncias de WhatsApp (Cliente)

Gerenciamento de instâncias de WhatsApp compartilhadas entre todos os tenants do cliente.

Tenants (Cliente)

Ferramenta de comparação e sincronização de configurações entre o Cliente e seus Tenants.

Visão Geral

Esta aba permite visualizar quais configurações dos tenants divergem das configurações padrão do cliente. É útil para identificar customizações e manter a consistência entre os ambientes.

Modos de Visualização

ModoDescrição
Por TenantLista cada tenant mostrando quantas configurações divergem do cliente. Ao expandir, exibe uma tabela comparativa com o valor no cliente vs. valor no tenant.
Aplicar em MassaAgrupa as divergências por tipo de configuração. Mostra quantos tenants possuem valor diferente para cada configuração, permitindo aplicar a configuração do cliente em todos de uma vez.

Ações Disponíveis

AçãoDescrição
Usar do ClienteAplica a configuração do cliente em um tenant específico para uma configuração específica.
Aplicar em MassaSincroniza uma configuração específica para todos os tenants que possuem valor divergente.
AtualizarRecarrega a lista de divergências.

TIP

Use o modo Aplicar em Massa quando precisar padronizar uma configuração específica (como canais de alerta ou configuração de IA) em todos os tenants de uma vez.

IMPORTANT

A sincronização sobrescreve o valor atual do tenant pelo valor configurado no cliente. Esta ação não pode ser desfeita automaticamente.


🔗 Herança de Configurações

O sistema de configurações segue uma hierarquia de herança:

Cliente (Padrão)
    └── Tenant (Sobrescrita)
ConfiguraçãoComportamento
Identidade VisualTenant pode ter logo/cores próprias ou herdar do Cliente.
SMTPTenant pode definir servidor próprio ou usar do Cliente.
Template de EmailTenant pode personalizar ou herdar do Cliente; Cliente herda do padrão da plataforma.
IATenant pode usar configuração própria, do Cliente, ou padrão da plataforma.
Agentes ETLConfigurações são herdadas e podem ser sobrescritas.
PermissõesFlags de permissões são independentes por Tenant.
Canais de AlertaTenant define quais canais estão disponíveis.