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. |
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 | AutomaticCredentialsGenerator |
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 ter o Slot 7012 habilitado no License Server para poder conseguir Credenciais válidas
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: