Objetivo


Este documento tem o objetivo de auxiliar as equipes no entendimento dos processos, tanto automático quanto manual, de funcionamento do Credencial Helper e assim servir como documento base.

Introdução


O Credential Helper é um serviço disponível na plataforma TOTVS Apps para uso pelos ERPs e outras aplicações TOTVS que necessitem obter credenciais (Client ID e Client Secret) para habilitar a comunicação com a solução SmartLink.

Antes dessa nova implementação do Credential Helper, a obtenção das credenciais eram feitas de forma manual através da integração com SmartLink utilizando o Credential Helper TotvsApp, onde na etapa final de conclusão da configuração eram geradas as credenciais.

Veja mais sobre Credential Helper.

Como as coisas funcionam


Agora com as novas implementações, a obtenção das credenciais no RM é feita de 2 formas:

Seguindo um processamento em fluxos que são executados no Servidor através do RM.Host;

Quando houver algum detalhe que impeça a execução automática, então haverá a necessidade de uma intervenção manual, através do processo de Resolução de Conflitos (Classificação de Ambientes e Configurador do SmartLink (Wizard de Recuperação de Credenciais)), que deve ser feita pelo Supervisor do RM.

Objetos relacionados

A tabela GSmartLinkConfig recebeu novos campos para que os fluxos de processamento possam ser executados corretamente. São eles: Controle, Origem, LastPoolingTaskExecution, TaskId e EnvironmentId.


Pode conter 3 valores de configurações diferentes (1, 2 e 3)

  1. As credenciais não foram recuperadas pelo servidor do Credential Helper, foi adquirida pelo processo de sincronização das credenciais existentes.
  2. As Credenciais foram recuperadas pelo servidor do Credential Helper através do processo automático.
  3. As Credenciais foram recuperadas pelo servidor do Credential Helper através do processo manual.

É usado para o cálculo do CRC, que é feito sempre que alguma atualização na tabela GSmartLinkConfig é feita. Esse cálculo também leva em consideração as alterações no campo GParams.Environment, que também entra na regra do recálculo da tabela GSmartLinkConfig.

Importante ressaltar que qualquer alteração manual feita diretamente nas tabelas relacionadas deve interferir no recalculo do CRC impactando assim na veracidade das informações e nos processos e fluxos.

Os principais campos envolvidos no processamento do Credential Helper são:

APIs de Integração:

O Credential Helper fornece APIs de comunicação por onde conseguimos realizar as seguintes operações:

Os seguintes status de retorno podem acontecer:


O Credential Helper no RM.Host.


O RM.Rost é responsável por executar o processo automático do Credential Helper para geração e manutenção das Credenciais usadas pelo SmartLink.

Os Fluxos

Inicia o processo preparando a base de dados. Deve validar se existem registros na GSmartLinkConfig e Gparams.Environmen. Nesse ponto devemos garantir que pelo menos o DataBaseId está preenchido.

Requisitos para processamento do fluxo:


É a partir desse ponto onde se toma o rumo correto para o processamento do Credential Helper e a geração das Credenciais.

Requisitos para processamento do fluxo:


Essa etapa é responsável em realizar as validações necessárias para a sincronização dos dados da GTotvsApp com a GSmartLinkConfig, caso ainda não exista credenciais válidas na GSmartLinkConfig.

Requisitos para processamento do fluxo:


Nessa etapa as Credenciais devem ser sincronizadas, via API, com o ambiente do Credential Helper. Isso é feito enviando as credenciais obtidas na GTotvsApp e recebendo o retorno OK ou se houve algum problema. O resultado desse fluxo é a gravação das credenciais vindas do GTotvsApp na GSmartLinkConfig


Inicia o processo de integração para obter as novas Credenciais via API de integração do Credential Helper.

Essa integração possui, no seu retorno de OK, 3 status esperados:


Esse fluxo é acionado quando identificado que o campo GSmartLinkConfig.TaskId está preenchido, isso significa que o processo de integração para obter as novas Credenciais, ainda está com o status de Processando. Quando isso acontece, o fluxo de acompanhamento é acionado.

Responsável em acompanhar o andamento da solicitação de geração do ambiente no servidor do Credential Helper, esse fluxo é executado todos os dias durante 1 hora até que uma das situações abaixo seja identificada:

Ainda existe a possibilidade de receber o status Processando, isso quer dizer que o acompanhamento deve continuar a ser feito pois o ambiente no servidor do Credential Helper ainda não está pronto. Esse processo deve seguir a seguinte frequência de acompanhamento:

Acompanhamento dos Fluxos:

Para acompanhamento dos processos e andamento dos fluxos, são gerados logs ao decorrer das execuções, esses logs nos ajudam a entender o que vai acontecendo durante o processamento.

Os logs são gerados pelo TrackLog em 3 níveis:

Os fluxos são identificados nos arquivos de Log da seguinte forma:
[Modulo]-[Categoria]-[Funcionalidade]-[Mensagem]

Exemplo:
[M:Integracoes]-[C:CredentialHelper]-[F:AutomaticCredentialsGenerator]-[<2410DEV>: Cliente não é permitido pelo LS mais possui credenciais já configuradas.]

As Funcionalidades são equivalentes aos processamentos. Abaixo o de/para identificando cada um.

Fluxo

Funcionalidade

Startup inicial da integração

StartupIntegration

Atualizador de credenciais

CredentialsUpdater

Sincronizar credenciais vindo da GTotvsApp

SyncCredentialsByGTotvsApp

Sincronizar credenciais existentes

SyncExistsCredentials

Gerador de novas credenciais pelo CH

AutomaticCredentialsGenerator

Acompanhar o andamento da geração de credenciais

FollowProgressCredentialsGenerator

Resolução de Conflitos

ConflictResolutionByWizard

Acompanha algumas das iterações com a GSmartLinkConfig e o cálculo do CRC

DatabaseRepository


Exemplo de acompanhamento da funcionalidade StartupIntegration no Log pelo arquivo de logs do RM.


[17:07:53.129]-[RM.Host]-[VRB]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: BHN050103964:8050 - Iniciando a execução de fato (Execute) do ConSmartLinkStartupNotifyServerExecutor.]

[17:07:53.138]-[RM.Host]-[DBG]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: Tem registro GSMARTLINKCONFIG.]

[17:07:53.139]-[RM.Host]-[DBG]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: Tem Environment na GParams.]

[17:07:53.142]-[RM.Host]-[DBG]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: CRC da GSmartLinkConfig é valido.]

[17:07:53.143]-[RM.Host]-[DBG]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: Tem DataBaseID na GSMARTLINKCONFIG.]

[17:07:53.144]-[RM.Host]-[DBG]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: O campo DataBaseId na GSMARTLINKCONFIG é válido.]

[17:07:53.144]-[RM.Host]-[DBG]-[M:Integracoes]-[C:CredentialHelper]-[F:StartupIntegration]-[<CorporeRM>: Não tem Credenciais na GSMARTLINKCONFIG.]


Para melhorar a visualização do TrackLog, pode ser usado o Seq, uma ferramenta que disponibiliza algumas funcionalidades e facilita no acompanhamento dos Logs.


Veja mais sobre Seq.

Veja mais sobre TrackLog.

Troubleshoot

O tracklog é a nossa fonte de informação quando o assunto é identificação das instabilidades que podem acontecer com o processamento do Credential Helper

O que pode ocasionar:

Tabela GSmartLinkConfig não existe
Os novos campos da tabela não existem

O que pode ocasionar:

Tabela GSmartLinkConfig não existe
Os novos campos da tabela não existem

O que pode ocasionar:

A base foi convertida para Base de Teste

O que pode ocasionar:

Cliente deve acessar o wizard do Credential Helper que está no Modulo Integração| Menu TOTVS App   | Ativação SmartLink



O Credential Helper na Resolução de Conflitos.


Caso o processo do Credential helper que executa de forma automática tenha dificuldades em gerar as Credenciais, o processo Manual é inicializado, que envolve o processo de Resolução de Conflitos (Classificação de Ambientes e Configurador do SmartLink (Wizard de Recuperação de Credenciais)).

Esses processos manuais são acessados através do Login da MDI. Somente um usuário Supervisor de Globais vai ter acesso à esse processo, que é iniciado somente após serem realizadas validações de consistência.

Requisitos para que o processo manual seja executado:

Motivos que exigem a execução do processo manual:

Classificação de Ambientes no login

Essa tela é a primeira a ser apresentada, seu objetivo é fazer com que usuário confirme qual o Ambiente que o RM vai operar, Produção ou Homologação. 

Abaixo as inconsistências identificadas que a Classificação de Ambientes deve resolver:

  1. Quando a classificação do ambiente não foi definida no RM;
  2. Quando for identificado que houve alguma atualização na integração com o Smartlink;
  3. Quando o Endereço da Base de Dados utilizada pela integração Smartlink está diferente da utilizada pelo RM;

Veja mais sobre Classificação de Ambientes.

Material de apoio sobre Classificação de Ambientes

Após a seleção de ambientes ser realizada, o processo de Resolução de Conflitos realiza validações para decidir qual caminho seguir no processo:


Caso, na seleção de ambientes, o ambiente for alterado

Caso, na seleção de ambientes, o ambiente não foi alterado

Configurador do SmartLink (Wizard de Recuperação de Credenciais)

O Configurador do SmartLink, é quem habilita a integração do ERP com a Plataforma de Aplicações TOTVS, é a ferramenta que torna o processo de configuração mais ágil e seguro, orientando o usuário na obtenção das credenciais e na realização do vínculo do ERP com a plataforma.

Veja mais sobre Configurador do SmartLink


Requisitos para que o processo seja executado:

Passando pelas validações dos requisitos citados acima, então o Configurador do SmartLink (Wizard de recuperação de credenciais) é iniciado.

Ao finalizar as etapas de seleção de ambientes e wizard de recuperação de credenciais, as Credenciais ou TaskId é retornado.

Caso seja retornado as Credenciais:

Caso seja retornado o TaskId: