Páginas filhas
  • LGX - Configurando Integração com o TOTVS Privacidade de Dados

Conteúdo



01. Objetivo

Esta documentação tem a finalidade de servir como uma guia no momento da integração do produto Logix com o TOTVS Privacidade de Dados (TPD). Para mais informações sobre a ferramenta, acesse TOTVS Privacidade de Dados.

Para tanto, abaixo seguem as instruções para que a integração seja realizada corretamente.


02. Informações

O produto Logix faz uso de uma ferramenta chamada Smart Link, que é um mecanismo de troca de mensagens entre aplicações TOTVSApps e aplicações On Premises (ou remotas) onde:

  • Foi utilizada a biblioteca Smart Link Client Java, que por meio desta foi implementado o processador de troca de mensagens.
  • O processador de mensagens é uma aplicação java.

Obtenha informações sobre os valores do client, secret, name e id do seu tenant de acesso do produto Logix no portal TPD para poder realizar as configurações necessárias para a integração com o Logix nos próximos passos. 

Para mais detalhes leia Documentos de Referência do TOTVS Privacidade de Dados.


03. Instalação Smart Link Client Java


O arquivo smart-link-client.zip que, que contém a instalação/atualização da ferramenta SmartLink Client, é disponiblizado juntamente com o pacote de atualização do Logix na pasta LIBTOOLS/SMARTLINK.



Extrair os arquivos em um diretório de sua escolha, sugerimos o uso do nome do seu tenant para complementar e facilitar a organização dos artefatos. 

Exemplo:

  • O nome do tenant para exemplo é totvs-fwk e o nome da pasta extraída é smart-link-client.
    • "C:/TOTVS/totvs-fwk/smart-link-client"
  • Como resultado temos a estrutura abaixo:
    1. C:/TOTVS/totvs-fwk/smart-link-client/README.txt
    2. C:/TOTVS/totvs-fwk/smart-link-client/client/application.yml
    3. C:/TOTVS/totvs-fwk/smart-link-client/client/smart-link-client.jar
    4. C:/TOTVS/totvs-fwk/smart-link-client/client/log
    5. C:/TOTVS/totvs-fwk/smart-link-client/service/Windows/install.bat
    6. C:/TOTVS/totvs-fwk/smart-link-client/service/Windows/JavaService.exe
    7. C:/TOTVS/totvs-fwk/smart-link-client/service/Windows/uninstall.bat
    8. C:/TOTVS/totvs-fwk/smart-link-client/service/Linux/install.sh
    9. C:/TOTVS/totvs-fwk/smart-link-client/service/Linux/SmartLinkClient.service
    10. C:/TOTVS/totvs-fwk/smart-link-client/service/Linux/SmartLinkClient.sh
    11. C:/TOTVS/totvs-fwk/smart-link-client/service/Linux/start.sh
    12. C:/TOTVS/totvs-fwk/smart-link-client/service/Linux/stop.sh
    13. C:/TOTVS/totvs-fwk/smart-link-client/service/Linux/uninstall.sh





Editar o arquivo "/service/Windows/install.bat"

:default
@echo on

chcp 65001

set LINK_CLIENT=C:/TOTVS/smart-link-client/client

JavaService.exe -install "TOTVS-SMART-LINK-CLIENT" "%JAVA_HOME%/bin/server/jvm.dll" -Djava.class.path="%LINK_CLIENT%/smart-link-client.jar" -start org.springframework.boot.loader.JarLauncher -err "%LINK_CLIENT%/log/smart-link-client_err.log" -current "%LINK_CLIENT%" -manual -description "TOTVS LOGIX SMART LINK CLIENT"

@echo off

:eof

@echo .
@echo .
@echo .
PAUSE.


Nome do serviço

  • Por padrão temos o nome do serviço definido como "TOTVS-SMART-LINK-CLIENT"
  • Sugerimos o uso do nome do seu tenant para complementar e facilitar a organização do serviço.


Descrição do serviço

  • A descrição do serviço pode ser alterada por meio do parâmetro -description.

JAVA

  • Deve ser utilizado JAVA 11
  • No arquivo estamos utilizando o %JAVA_HOME% como padrão, caso necessário faça a alteração para utilizar a sua variável de ambiente já existente.

Parâmetros

  • Os parâmetros -Djava.class.path, -current e -err fazem o uso do valor informando em LINK_CLIENT (ajustar para o diretório definido nas etapas anteriores).

Instalação do serviço:

  • Executar Prompt de Comando do sistema operacional como administrador.
  • Executar o arquivo de lote /service/Windows/install.bat.


Editar o arquivo "/service/Windows/uninstall.bat"

  • Informe o nome do serviço definido na etapa anterior (Instalador de serviço para Windows)

Desinstalação do serviço:

  • Execute Prompt de Comando como administrador
  • Execute o arquivo "/service/Windows/uninstall.bat"


Para a instalação do serviço no Linux certifique-se de que os passos a seguir foram realizados:

  1. Definir a descrição do serviço:
    1. Edite o arquivo service/Linux/SmartLinkClient.service, localizado no local onde o projeto foi extraído, e informe no atributo "Description", a descrição do serviço:
    2. Por padrão temos o nome do serviço definido como "TOTVS-SMART-LINK-CLIENT"
    3. Sugerimos o uso do nome do seu tenant para complementar e facilitar a organização do serviço.
  2. Configurar o arquivo application.yml
    1. Veja a sessão 04. Configuração deste documento.
  3. Editar o arquivo "/service/Linux/install.sh" localizado onde o projeto foi extraído.
    1. Informar na variável PATH_SOURCE_SMART_LINK_CLIENT, localizado na linha 13, o local onde o projeto foi extraído.


#!/bin/bash

ERRO="A instalação do Smart Link Client encontrou problema(s). Verifique o(s) aviso(s) acima."

checkCommandError(){
        if [ $? -ne 0 ]; then
		echo ""
		echo "$ERRO"
		exit 0
        fi
}

PATH_SOURCE_SMART_LINK_CLIENT="local-onde-foi-extraido/smart-link-client"
PATH_SMART_LINK_CLIENT="/usr/local/smart-link-client"

checkCommandError

echo "Instalação do Smart Link Client"

echo 'Copiando SmartLinkClient.service para /etc/systemd/system'
sudo cp -p "$PATH_SOURCE_SMART_LINK_CLIENT/service/Linux/SmartLinkClient.service" /etc/systemd/system/SmartLinkClient.service
checkCommandError

echo 'Copiando SmartLinkClient.sh para /usr/local/bin' 
sudo cp -p "$PATH_SOURCE_SMART_LINK_CLIENT/service/Linux/SmartLinkClient.sh" /usr/local/bin/SmartLinkClient.sh
checkCommandError

echo 'Concedendo permissao para execucao'
sudo chmod +x /usr/local/bin/SmartLinkClient.sh
checkCommandError

sudo mkdir "$PATH_SMART_LINK_CLIENT"
checkCommandError

sudo mkdir "$PATH_SMART_LINK_CLIENT/client"
checkCommandError

echo "Copiando $PATH_SOURCE_SMART_LINK_CLIENT/client para $PATH_SMART_LINK_CLIENT" 
sudo cp -r "$PATH_SOURCE_SMART_LINK_CLIENT/client/" "$PATH_SMART_LINK_CLIENT"
checkCommandError

sudo mkdir "$PATH_SMART_LINK_CLIENT/service"
checkCommandError

echo "Copiando $PATH_SOURCE_SMART_LINK_CLIENT/service/Linux/start.sh para $PATH_SMART_LINK_CLIENT/service" 
sudo cp -r "$PATH_SOURCE_SMART_LINK_CLIENT/service/Linux/start.sh" "$PATH_SMART_LINK_CLIENT/service"
checkCommandError

echo "Copiando $PATH_SOURCE_SMART_LINK_CLIENT/service/Linux/stop.sh para $PATH_SMART_LINK_CLIENT/service"
sudo cp -r "$PATH_SOURCE_SMART_LINK_CLIENT/service/Linux/stop.sh" "$PATH_SMART_LINK_CLIENT/service"
checkCommandError

echo 'Habilitando SmartLinkClient ...'
sudo systemctl enable SmartLinkClient
sudo systemctl daemon-reload

echo 'Iniciando SmartLinkClient ...'
sudo systemctl start SmartLinkClient
echo 'Fim da instalacao.'


Instalando o serviço:

  • Abra um terminal e execute o arquivo "/service/Linux/install.sh", que está localizado onde o projeto foi extraído.

  • O comando ficaria como:  sudo bash /<local-onde-projeto-foi-extraído>/smart-link-client/service/Linux/install.sh
  • O script de instalação fará a inicialização do serviço automaticamente.
  • Start e Stop manuais:
    • Caso necessite interromper ou inicial o serviço manualmente. 
    • Para iniciar o serviço, execute:   sudo bash /usr/local/smart-link-client/service/start.sh
    • Para parar o serviço, execute:   sudo bash /usr/local/smart-link-client/service/stop.sh


Atenção

O diretório no qual o projeto foi extraído não é o mesmo local onde o projeto será instalado:

  • A instalação do smart-link-client será em /usr/local/.
  • Após a instalação, o projeto extraído torna-se necessário somente para a execução do script de instalação e desinstalação, uma vez que os demais arquivos foram copiados para o destino /usr/local/smart-link-client.
  • A saída de logs do smart-link-client ocorrerá no diretório em que foi instalado, no caso, /usr/local/smart-link-client/client/log.




  • Abra uma sessão terminal e execute o arquivo /service/Linux/uninstall.sh, que está localizadon onde o projeto foi extraído.|
  • O comando ficaria como:   sudo bash /<local-onde-projeto-foi-extraido>/smart-link-client/service/Linux/uninstall.sh.
  • Ao desinstalar o serviço, a pasta /usr/local/smart-link-client será removida.


04. Configuração Smart Link Client Java


O arquivo de configuração é application.yml.

Utilizando a pasta de exemplo dos passos anteriores, podemos encontrar o arquivo em /client/application.yml.


Leia com atenção o detalhamento das configurações abaixo:


# SERVER


A porta de acesso da aplicação pode ser alterada na propriedade:

# -------------------------------------------------
# SERVER
# -------------------------------------------------  
server:
  port: 8777

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.server.server.port


# SPRING


Por padrão estamos utilizando 10MB para poder trafegar metadado no formato JSON.

# -------------------------------------------------
# SPRING
# ------------------------------------------------- 
spring:
  codec:
    max-in-memory-size: 10MB

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.core.spring.codec.max-in-memory-size


# LOG


O nome do arquivo de log pode ser alterado na propriedade name abaixo:

# -------------------------------------------------
# LOG
# -------------------------------------------------    
logging:
  file:
    name: log/smart-link-client.log

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.core.logging.file.name


# SMART LINK CLIENT



# -------------------------------------------------
# SMART LINK CLIENT
# -------------------------------------------------
totvs:
  link:
    auth:
      url: INFORMAR_URL_RAC
      client: INFORMAR-CLIENT
      secret: INFORMAR-SECRET
    client:
      subscriptions:      
        - SGDPDataCommand
        - SGDPMaskCommand
		- SGDPLogsCommand
    server:
      host: INFORMAR_HOST
      port: 443
      secure: true
  tenant:
    name: INFORMAR-NOME-TENANT
    id: INFORMAR-ID-TENANT   
  product:
    name: 'Logix'
    url: 'INFORMAR_URL_LOGIX'
    username: 'INFORMAR_USUÁRIO'
    password: 'INFORMAR_SENHA'

Leia com atenção o detalhamento das configurações abaixo:


O Smart Link Client Java é uma biblioteca que facilita o desenvolvimento de um LINK Client para a plataforma Java, sendo necessária a implementação de uma aplicação que implemente um processador de mensagens (LINK Client Java Application mais abaixo).

No Smart Link Client Java utiliza o protocolo GRPC, sendo necessária a seguinte configuração:

totvs:
  link:
    server:
      host: INFORMAR_HOST
      port: 443
      secure: true
  • INFORMAR_HOST:  Utilizar o host conforme o tipo do seu ambiente:
    • DEV: api-smartlink.dev.totvs.app
    • STAGING: api-smartlink.staging.totvs.app
    • PROD: api-smartlink.totvs.app

Deve ser informada também uma lista de subscrições, onde somente mensagens com determinados types são efetivamente enviadas para o Smart Link Client

No Smart Link Client Java é necessária a seguinte configuração:

totvs:
  link:
    client:
      subscriptions:
        - SGDPDataCommand
        - SGDPMaskCommand
	 	- SGDPLogsCommand

O produto está preparado para processar os tipos SGDPDataCommand, SGDPMaskCommand e SGDPLogsCommand.



O produto Logix suporta apenas o single tenant, sendo necessária a seguinte configuração:

totvs:
  link:
    auth:
      url: INFORMAR_URL_RAC
      client: INFORMAR-CLIENT
      secret: INFORMAR-SECRET
  • INFORMAR_URL_RAC:  Utilizar a url conforme o tipo do seu ambiente, onde:

DEV          https://admin.rac.dev.totvs.app/totvs.rac/connect/token

STAGING  https://admin.rac.staging.totvs.app/totvs.rac/connect/token

PROD        https://admin.rac.totvs.app/totvs.rac/connect/token

  • INFORMAR-CLIENT: Substituir pelo valor do seu client.
  • INFORMAR-SECRET:  Substituir pelo valor da sua secret.


Informar os valores do seu Tenant:

totvs:
  tenant:
    name: INFORMAR-NOME-TENANT
    id: INFORMAR-ID-TENANT 
  • INFORMAR-NOME-TENANT: Substituir pelo nome do seu tenant.
  • INFORMAR-ID-TENANT:  Substituir pelo valor do ID do seu tenant.


Utilize aspas simples para valores do tipo texto ao informar as configurações do produto.


A  comunicação acontece nos dois sentidos (TOTVS Privacidade de Dados >> Logix) e (Logix >> TOTVS Privacidade de Dados) por meio das configurações abaixo:

totvs:
  product:
    name: 'Logix'
    url: 'INFORMAR_URL_LOGIX'
    username: 'INFORMAR_USUÁRIO'
    password: 'INFORMAR_SENHA'    
  • INFORMAR_URL_LOGIX: Substituir pelo valor do seu ambiente. Exemplo: http://localhost:8080
  • INFORMAR_USUÁRIO:  Substituir pelo valor de um usuário existente no produto. 
  • INFORMAR_SENHA:  Substituir pelo valor da senha do usuário.


CONFIGURAÇÕES OBRIGATÓRIAS



  • Adicionar a configuração tpdDisabled para desativar a comunicação do entre o Smart Link Client e o Produto Logix.
totvs:
  product:
    tpdDisabled: true


  • Caso necessário, adicionar a configuração linkClientUrl para indicar onde está o LINK Client Java Application.

A configuração recebe o valor http://SERVIDOR:PORTA, onde:

SERVIDOR:  Servidor que está executando o processador de mensagens smart-link-client.jar

PORTA: Valor da porta (server: port) da configuração #SERVER

Observação: Caso precise adicionar um valor diferente do padrão, você deverá adicionar a configuração:

totvs:
  product:
    linkClientUrl: 'INFORMAR_URL_SMART_LINK_CLIENT'

Ao informar o endereço de um ambiente com protocolo HTTPS na configuração totvs.product.url, realize a importação dos certificados do ambiente Logix na JVM que está executando o smart-link-client.jar, para importação utilize a ferramenta keytool.

totvs:
  product:
    url: 'https://meu-servidor:8080'    

Ao atualizar qualquer propriedade de configuração o serviço deverá ser iniciado novamente, permitindo a leitura das configurações atualizadas.


05. Inicialização do serviço instalado

Após concluir as etapas anteriores, basta iniciar o serviço instalado e verificar no log se a aplicação foi iniciada com sucesso.


Starting Application

INFO 15788 --- [main] com.totvs.link.client.Application        : Starting Application v12.1.34-NFRW-SNAPSHOT on 00000 with PID 15788 (C:\TOTVS\smart-link-client\client\smart-link-client.jar started by 00000$ in C:\TOTVS\smart-link-client\client)
INFO 15788 --- [main] com.totvs.link.client.Application        : No active profile set, falling back to default profiles: default
INFO 15788 --- [main] com.totvs.link.client.LinkService        : *** Connecting to server (link.staging.totvs.app:443)
INFO 15788 --- [main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'taskScheduler'
INFO 15788 --- [main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port(s): 8777
INFO 15788 --- [main] com.totvs.link.client.Application        : Started Application in 4.994 seconds


Para facilitar a visualização de log foi adicionada a infomação [SMART-LINK-CLIENT] no LOG para as classes java implementadas.

INFO 3528 --- [main] c.totvs.link.client.ApplicationStartup   : [SMART-LINK-CLIENT][ApplicationStartup.readyEvent]
INFO 3528 --- [main] c.t.l.c.d.ProductSyncDefaultMetadata     : [SMART-LINK-CLIENT][ProductSyncDefaultMetadata.sync]
INFO 3528 --- [main] c.t.l.client.product.ProductSendMessage  : [SMART-LINK-CLIENT][ProductSendMessage.send][REQUEST][GET] to http://----:8380/api/sec/v1/sgdp/metadata/default
INFO 3528 --- [main] c.t.l.client.product.ProductSendMessage  : [SMART-LINK-CLIENT][ProductSendMessage.send][RESPONSE][GET][200] from http://----:8380/api/sec/v1/sgdp/metadata/default
INFO 3528 --- [main] c.t.l.c.d.ProductSyncDefaultMetadata     : [SMART-LINK-CLIENT][ProductSyncDefaultMetadata.sync] Sending message to Smart Link Server - type: SGDPUpdateApplicationMetadata - metadado: {"header":{"type":"SGDPUpdateApplicationMetadata"},"content":{"models":{},"codes":{},"package":"Logix","productId":"Logix","readOnly":true,"smartLink":"singleTenant","localLogs":false,"applicationId":"Logix"}}
INFO 3528 --- [main] c.t.l.c.d.ProductSyncDefaultMetadata     : [SMART-LINK-CLIENT][ProductSyncDefaultMetadata.sync] Sent to Smart Link Server