Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


...



Autenticação Google Sheets

...

Para realizar a configuração das credenciais do google sheets via TOTVS iPaaS você deve seguir alguns passos para gerar os tokens necessários e criar o fluxo de autorização abaixo:


Image Added


Pré-requisitos

...

Para a utilização do aplicativo é necessário ter:


  • Conta google

  • Projeto na GCP (Google Cloud Platform)


Tutorial para gerar credenciais

...


01. Acessar o TOTVS iPaaS através da URL https://ipaas.totvs.app;

02. Através do menu, acessar a página de aplicativos e buscar por Google Workspaces;

Image Added


03. Na tela do aplicaitivo acessar a aba "Contas" e em seguida clicar em "Cadastrar Conta";

Image Added


04. Insira o nome da conta e escolha o ambiente do google que você utilizará (Neste tutorial vamos utilizar o google sheets). Após selecionar o ambiente os dados abaixo serão necessários para o cadastro da conta:


Image Added


Informações
titleInformação

Auth URL: Url de autenticação necessária para o fluxo do Oauth

Acess Token URL: Url para gerar o Token de acesso ao serviço

Code: Código do aplicativo

Redirect URI: Indica para onde o servidor de autorização deve redirecionar o usuário após a autorização bem-sucedida. Esta URI deve ser previamente registrada com o provedor de serviços OAuth

Refresh Token URL: Url para realizar o fluxo de refresh token mantendo válido a autorização do aplicativo

Client Id: Token id do cliente

Client Secret: Hash password do cliente

Scope: Especifica o escopo das permissões solicitadas pelo cliente. Por exemplo, acesso somente leitura ou acesso de gravação

Acess Type:  Define como o token de acesso deve ser tratado pelo provedor de serviços OAuth

Client Authentication: Escolher entre basic ou in body para envio das credenciais.


05. Acessar a url do google apis https://console.cloud.google.com/apis/library/browse?q=sheets e clicar no aplicativo Google Sheets API


Image Added



06. Caso você não tenha um projeto na GCP ainda, será necessário criá-lo conforme imagem abaixo:


  1. Clique em selecionar projeto
    Image Added
  2. Novo projeto
    Image Added
  3. Informe os campos necessários

    Image Added
  4. Após o projeto criado, clique em ATIVAR

Image Added


07. Na tela do aplicativo na GCP, clique em CRIAR CREDENCIAIS ou em Credenciais no menu esquerdo


Image Added



08. 










Configuração

...

Todos os campos para a configuração do componente SmartLink Hook são opcionais, porém torna-se recomendável a informação de pelo menos um deles. Sendo uma das opções abaixo:

  • Tipo: parâmetro que é passado com a chave type no cabeçalho, geralmente o equivalente à subscrição;
  • Audiência: parâmetro que é passado com a chave audienceno cabeçalho;
  • Demais filtros de cabeçalho: possível adicionar outros filtros conforme a necessidade, tendo como parâmetro o cabeçalho a ser filtrado (chave) e seu respectivo valor recebido.

Image Added


Simular recebimento no serviço On-Premises

...

Para simular o envio de uma aplicação On-Premises para o SmartLink é possível utilizar os endpoints indicados no Apêndice D e Apêndice E.


Utilização dos dados de entrada

...

Ao receber uma mensagem de gatilho para o diagrama, é possível resgatar o conteúdo tanto do corpo da mensagem quanto do cabeçalho. Ambos, são equivalentes respectivamente ao payload e headers/properties do message broker.

Image Added


SmartLink Sender

...

O SmartLink Sender é um componente do TOTVS iPaaS onde é possível utilizá-lo como um dos processos do seu diagrama. Este componente serve para enviar mensagens ao message broker da plataforma TOTVS Apps, consequentemente, ao elemento Behavior Sharing do SmartLink, que possibilitará o

recebimento nos serviços On-Premises.

Este componente é assíncrono, portanto, depois de enviada a mensagem para a plataforma, não há nenhuma saída para o mesmo.


Configuração

...

A configuração do componente SmartLink Sender possui os seguintes campos baseados em sua maioria na documentaçãoOpens in new window or tab:

  • Nome: nome do componente que será exibido na rastreabilidade do TOTVS iPaaS;
  • Tipo da subscrição (opcional): cabeçalho type da documentação acima mencionada, pode ser consultada na aba subscriçõesda fila que deverá receber a mensagem conforme imagem abaixo:

Image Added

  • Formato do evento: formato conforme a RFC da documentação acima mencionada, podendo ser CloudEvents ou TOTVS Message por convenção;
  • Corpo: texto livre que irá trafegar no corpo da mensagem. Deve-se atentar ao formato de evento escolhido para que o corpo da mensagem trafegue conforme a documentação orienta (JSON, XML, plain text, etc).

Image Added

As configurações são diferentes dependendo da escolha do formato do evento, porém, todas são opcionais e estão documentadas na RFC000011 (Opens in new window or tab).

Image AddedImage Added


Simular envio ao serviço On-Premises

...

Para simular o envio do TOTVS iPaaS para uma aplicação On-Premises, após executar um diagrama com o componente SmartLink Sender, é possível utilizar o endpoint correspondente no Apêndice Fpara recuperar o conteúdo da primeira mensagem na fila que está indo para aplicação On-Premises, e na

sequência, utilizar o endpoint correspondente no Apêndice G para removê-la da fila (ack).

É possível também através do monitor SmartLink verificar quantas mensagens chegaram para a fila do seu Tenant.

Image Added


Apêndices

...

Apêndice A - Validar RAC no Tenant:

Utilize o token de usuário do Accounts onde lê-se {USER_TOKEN}.


Bloco de código
titleDev
curl --location 'https://rac.dev.totvs.app/totvs.rac/api/v1/fluigIdentity/authorization/roles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {USER_TOKEN}' \
--data '[]

Bloco de código
titleStaging
curl --location 'https://rac.staging.totvs.app/totvs.rac/api/v1/fluigIdentity/authorization/roles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {USER_TOKEN}' \
--data '[]
Bloco de código
titleProdução
curl --location 'https://rac.totvs.app/totvs.rac/api/v1/fluigIdentity/authorization/roles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {USER_TOKEN}' \
--data '[]


Apêndice B - Gerar Token RAC

...

As variáveis CLIENT_ID e CLIENT_SECRET são enviadas ao email administrador do Tenant no momento de sua criação.


Bloco de código
titleDev
curl --location 'https://totvs.rac.dev.totvs.app/totvs.rac/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'scope=authorization_api'
Bloco de código
titleStaging
curl --location 'https://totvs.rac.staging.totvs.app/totvs.rac/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'scope=authorization_api'
Bloco de código
titleProdução
curl --location 'https://totvs.rac.totvs.app/totvs.rac/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id={CLIENT_ID}' \
--data-urlencode 'client_secret={CLIENT_SECRET}' \
--data-urlencode 'scope=authorization_api'


...

As variáveis a serem substituídas são:

  • TOKEN_RAC = Token RAC obtido conforme Apêndice B;
  • SUBSCRIPTION_TYPE = Texto de tamanho livre sem caracteres especiais representando o tipo de subscrição, utilizado muitas vezes para filtros;
  • RAC_TENANT_ID = Tenant do RAC obtido no Apêndice A;
  • PRODUCT_NAME = Texto de tamanho livre contendo o nome do produto responsável pela mensagem (pode ser tanto iPaaS quanto o produto on-premises);
  • REQUEUE_COUNT = Quantidade máxima de reinfileiramento da mensagem antes de ir para a deadletter.


Bloco de código
titleDev
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/setup' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--header 'Content-Type: application/json' \
--data '{
  "subscriptions": ["{SUBSCRIPTION_TYPE}"],
  "tenants": ["{RAC_TENANT_ID}"],
  "productName": "{PRODUCT_NAME}",
  "requeueCountMax": {REQUEUE_COUNT}
}'
Bloco de código
titleStaging
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/setup' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--header 'Content-Type: application/json' \
--data '{
  "subscriptions": ["{SUBSCRIPTION_TYPE}"],
  "tenants": ["{RAC_TENANT_ID}"],
  "productName": "{PRODUCT_NAME}",
  "requeueCountMax": {REQUEUE_COUNT}
}'
Bloco de código
titleProdução
curl --location 'https://api-smartlink.totvs.app/api/v1/link/setup' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--header 'Content-Type: application/json' \
--data '{
  "subscriptions": ["{SUBSCRIPTION_TYPE}"],
  "tenants": ["{RAC_TENANT_ID}"],
  "productName": "{PRODUCT_NAME}",
  "requeueCountMax": {REQUEUE_COUNT}
}'


Apêndice D - Enviando para o iPaaS sem Audiência

...

As variáveis a serem substituídas são:

  • TOKEN_RAC: Token RAC obtido conforme Apêndice B;
  • TYPE: Tipo da mensagem, equivalente a subscrição (algo que identifique a natureza da mensagem), este campo deve equivaler ao informado no campo "Tipo" filtrado pelo iPaaS caso seja informado;
  • É também possível informar o conteúdo da mensagem dentro do json do campo "data".


Bloco de código
titleDev
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/send/{TYPE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}'
Bloco de código
titleStaging
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/send/{TYPE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}'
Bloco de código
titleProdução
curl --location 'https://api-smartlink.totvs.app/api/v1/link/send/{TYPE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}'


Apêndice E - Enviando para o iPaaS com Audiência

...

As variáveis a serem substituídas são:

  • TOKEN_RAC: Token RAC obtido conforme Apêndice B;
  • TYPE: Tipo da mensagem, equivalente a subscrição (algo que identifique a natureza da mensagem), este campo deve equivaler ao informado no campo "Tipo" filtrado pelo iPaaS caso seja informado;
  • AUDIENCE: Audiência da mensagem, este campo deve equivaler ao informado no campo "Audiência" filtrado pelo iPaaS caso seja informado;
  • É também possível informar o conteúdo da mensagem dentro do json do campo "data".


Bloco de código
titleDev
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/send/{TYPE}/{AUDIENCE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}'
Bloco de código
titleStaging
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/send/{TYPE}/{AUDIENCE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}'
Bloco de código
titleProdução
curl --location 'https://api-smartlink.totvs.app/api/v1/link/send/{TYPE}/{AUDIENCE}' \
--header 'accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}' \
--data '{}'


Apêndice G - Buscar Conteúdo da Primeira Mensagem da Fila

...

As variáveis a serem substituídas são:

  • TOKEN_RAC: Token RAC obtido conforme Apêndice B;


Bloco de código
titleDev
curl --location 'https://api-smartlink.dev.totvs.app/api/v1/link/get' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}'
Bloco de código
titleStaging
curl --location 'https://api-smartlink.staging.totvs.app/api/v1/link/get' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}'
Bloco de código
titleProdução
curl --location 'https://api-smartlink.totvs.app/api/v1/link/get' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}'


Apêndice H - ACK na Primeira Mensagem da Fila

...

As variáveis a serem substituídas são:

  • TOKEN_RAC: Token RAC obtido conforme Apêndice B;


Bloco de código
titleDev
curl --location --request POST 'https://api-smartlink.dev.totvs.app/api/v1/link/ack' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}'
Bloco de código
titleStaging
curl --location --request POST 'https://api-smartlink.staging.totvs.app/api/v1/link/ack' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}'
Bloco de código
titleProdução
curl --location --request POST 'https://api-smartlink.totvs.app/api/v1/link/ack' \
--header 'accept: application/json' \
--header 'Authorization: Bearer {TOKEN_RAC}'


Editando o componente

...

Para diagramas extensos ou que possuem muitas ligações entre componente e aplicativos, existe a possibilidade de editar o componente em casos onde é necessário alterar o componente de início escolhido sem precisar romper as ligações já estabelecidas.


01. Passe o mouse sobre o componente de início SamrtLink Hook;

02. Clique no ícone Image Added para alterar o componente;

03. A lista com os componentes de início será apresentada, escolha o componente que deseja e clique em Salvar;

04. Uma mensagem de confirmação será apresentada, clique em Prosseguir para salvar as alterações.

Informações
titleInformação

Ao trocar um componente de início, as configurações aplicadas também precisam ser atualizadas, pois cada componente de início tem um tipo de configuração.