Índice


Introdução


Tenantização refere-se ao processo de adaptação ou desenvolvimento de uma aplicação para suportar múltiplos tenants.

Um "tenant" neste contexto é uma entidade (como uma empresa, organização ou cliente) que utiliza a aplicação como se fosse dedicada a ela, embora compartilhe recursos de computação com outros tenants na mesma instância da aplicação.

Um dos aspectos críticos da tenantização é garantir que os dados de cada tenant sejam segregados e seguros, impedindo o acesso não autorizado entre tenants.

Tenantização no RM


A tenantização do RM é realizada através do Alias de banco de dados cadastrado no ambiente. 

No Contexto client do RM.Exe (Aplicativo Desktop) podemos considerar que cada alias é um Tenant. tendo em vista que os alias que estão aparecendo são carregados automaticamente por uma tela nativa do sistema que foi construída para aquele propósito. 

Porém quando falamos em API´s (Application Programming Interface) a maneira mais comum do RM Tenantizar as requisições é no domínio da URL da Rota dos serviços.

Exemplos:

Rota Tenantizada

A Api de Usuários é exposta na rota: http://meudominio:8051/api/framework/v1/users onde o domínio "meudominio" seria o tenant na requisição.

Rota Não Tenantizada

Diferente da rota http://minhamaquina:8051/api/framework/v1/users onde o domínio "minhamaquina" não representa um tenant e sim o nome da máquina que está provendo o serviço.


Atenção

Quando a rota do serviço não estiver tenantizada, o sistema assumirá que o tenant do serviço chamado é o tenant(connectionId) presente no Token.


Como Tenantizar os serviços do RM


Para que as API´s do sistema sejam tenantizadas, é necessário utilizar a tag SubDomainMask no arquivo de configuração do Server(Host).

Exemplo: 

<add key="SubDomainMask" value="[ALIAS].totvscloud.com.br" />

Atenção

É imprescindível que a variável [ALIAS] esteja presente no valor da tag, pois é este valor que será sobrescrito pelo nome do Alias de banco de dados.


Ao iniciar o Server(Host) a tag SubDomainMask será verificada e caso esteja preenchida de forma correta os serviços do sistema serão expostos para cada alias configurado.


Exemplo:

Rota da Api de Usuários: .../api/framework/v1/users/mestre  

Existem 2 Alias cadastrados no sistema TOTVS e TOTVS_HOMOLOG

Ao subir o Host um serviço para cada alias será exposto respeitando o valor da tag SubDomainMask.

http://TOTVS.totvscloud.com.br/api/framework/v1/users

http://TOTVS_HOMOLOG.totvscloud.com.br/api/framework/v1/users


    Várias Empresas/ Ambientes (Produção/Homologação)

    No Caso de ambiente Multi Tenant é necessário 1 DNS para cada Alias. 

    Atenção

    Os DNS´s obrigatoriamente precisam ter no domínio da URL o nome do Alias do Banco de Dados, pois é através do domínio que conseguimos identificar o Alias.

    Exemplo:

    Alias : TOTVS

    DNS : http://TOTVS.totvscloud.com.br

    Empresa única / Ambiente (Apenas 1 Alias)

    Como é um ambiente Single Tenant  é necessário apenas 1 DNS.

    Atenção

    O DNS não necessariamente precisa ter no domínio da URL o nome do Alias configurado, porém será necessário que a tag DefaultDB esteja configurada no arquivo de configuração do Server(Host).

    Caso o DNS possua o Alias no Domínio da URL, é necessário realizar a configuração da tag SubDomainMask  conforme passos anteriores.

    Atenção

    Ao utilizar o Smart Client em um ambiente externo é necessário que exista um DNS Exposto na internet para cada Tenant , para que a aplicação consiga se comunicar. 







    "

    • Sem rótulos