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.
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.
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.
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)
|
É 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:
O Credential Helper fornece APIs de comunicação por onde conseguimos realizar as seguintes operações:
Os seguintes status de retorno podem acontecer:
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.
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:
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.

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

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:
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:

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
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: