# Configuração do ConexX Middleware

## Configuração do ConexX Middleware

Antes de realizar qualquer ajuste no ConexX Middleware, é **obrigatório** identificar com qual parceiro a sua empresa possui **integração ativa**.

O ConexX Middleware pode se comunicar com três parceiros distintos, e cada um utiliza uma linguagem/protocolo de comunicação diferente:

* **SeniorX** - Servidor Cloud da Senior, também conhecido como G7, comunica via APIs REST.
* **SeniorXT** - Também conhecido G5, Ronda, XT Protocolo 8, comunica via TCP/IP.
* **TRLA (TOTVS)** - Serviço da Totvs para gerenciamento de acesso online, comunica via APIs REST.

Essa informação é fundamental, pois **parte da configuração do Middleware depende diretamente do parceiro escolhido**. Cada parceiro possui formatos, estruturas e regras de comunicação próprias.

Por esse motivo, as configurações do ConexX Middleware estão divididas em:

* [**Configurações gerais**](#configuracoes-gerais-do-middleware) (comuns a qualquer parceiro)
* [**Configurações específicas por parceiro**](#configuracoes-por-parceiro)

### Como configurar

1. Localize o arquivo **`application.properties`** no diretório de instalação do **ConexX Middleware**.
2. Abra o arquivo utilizando um editor de texto e configure os parâmetros conforme o ambiente, respeitando as orientações abaixo.
3. Após concluir as configurações necessárias, **salve o arquivo** `application.properties`.

## Configurações gerais do ConexX Middleware

{% stepper %}
{% step %}

#### Log e identificação da aplicação

```
spring.main.banner-mode=off
spring.application.name=ConexX-Middleware
```

Define apenas o nome exibido nos logs e desativa o banner do Spring.
{% endstep %}

{% step %}

#### Swagger (documentação da API)

```
springdoc.api-docs.path=/api-docs
springdoc.swagger-ui.path=/
```

Permite o acesso ao Swagger pelo endereço:\
`http://IP_DO_MIDDLEWARE:PORTA/swagger-ui/index.html`
{% endstep %}

{% step %}

#### Configurações do Spring

```
spring.devtools.restart.enabled=false
```

{% endstep %}

{% step %}

#### Porta do servidor e comunicação com o ConexX Driver

A porta padrão do servidor é **8090**.

```
server.port=8090
```

{% endstep %}

{% step %}

#### Configuração do parceiro

Define qual parceiro será utilizado pelo Middleware.

```
md.tenant.client=trla
```

Valores possíveis: **trla**, **seniorx**, **seniorxt**
{% endstep %}

{% step %}

#### IP do Middleware

```
md.conex.api.url=
```

Exemplo: `md.conex.api.url=http://26.224.145.69:59972`&#x20;
{% endstep %}

{% step %}

#### Configurações de requisição interna

```
md.restTemplateTimeWaitSecond=15
md.restTemplateReadTimeoutSecond=15
```

{% endstep %}

{% step %}

#### Timezone e formato de datas

```
spring.jackson.time-zone=America/Sao_Paulo
spring.jackson.serialization.write-dates-as-timestamps=false
```

{% endstep %}

{% step %}

#### Nível de log

```
logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG
```

{% endstep %}
{% endstepper %}

## Configurações por Parceiro

As configurações definem se o ConexX Middleware será ConexX ou XT e devem ser utilizadas **de acordo com o valor definido em `md.tenant.client`**.

<mark style="color:red;">**Observação:**</mark> Não alterar o campo: `senior.protocolo.certificate=TSI.CER`

{% tabs %}
{% tab title="SeniorX" %}

### SeniorX (Servidor Cloud da Senior)

Utilize estas configurações apenas se a sua empresa possui **integração ativa** com o **SeniorX** (Servidor Cloud da Senior)

**Atenção:** É obrigatório informar o **CPF do Responsável**, se você tem um equipamento do tipo **REP**, garantindo sua disponibilidade nas propriedades extensíveis.&#x20;

<pre><code><strong># CPF do Responsável, valor deve ser igual o configurado no Driver
</strong>• senior.api.valuePropertyCpfResponsible=CPF
</code></pre>

```properties
md.tenant.client=API
```

<pre><code># Tempo de consulta de pendencias dentro do Senior
• senior.api.timePoolingPendencySeconds=300
# Tempo do KeepAlive em segundos
• senior.api.timeDriverAliveSeniorSeconds=60
# Tempo do KeepAlive em segundos
• senior.api.timeDeviceAliveSeniorSeconds=30
<strong># CPF do Responsável, valor deve ser igual o configurado no Driver
</strong>• senior.api.valuePropertyCpfResponsible=CPF
# Configuração do REP P
• senior.api.valueDeviceFeature=Tipo Gerenciador
# Configuração de Acordo Coletivo
• senior.api.valuePropertyTypeAgreementREP=Tipo de Acordo
# URL de comunicação
• senior.api.sdkSenior=https://sam-api.senior.com.br/sdk/v1
# Driver key gerado pela senior
• senior.api.driverKey=eyJhbGciOiJIUzI1NiJ9.eyJkcml2ZXJJZCI6MSwidGVuYW50IjoidGVsZW1hdGljYS1kZXZjb21iciJ9.jYeF4Pz_4-QzjEKZL1noknlu1NSZJ0B-Du0chzKT08M
</code></pre>

Aqui o Middleware:

* Se comunica via API Cloud da Senior
* Gerencia estados de dispositivos e drivers
* Utiliza uma chave de autenticação (driverKey)

<a href="/pages/Qj8axvztxr7xiOjeRoN1#seniorx-e-sara" class="button primary">CADASTRO DE EQUIPAMENTO</a>

{% hint style="info" %}
Clique e veja um exemplo de cadastro de equipamento no SeniorX.
{% endhint %}
{% endtab %}

{% tab title="SeniorXT" %}

### SeniorXT (Protocolo 8 – instalado no cliente)

Utilize estas configurações apenas se a sua empresa possui **integração ativa** com o **SeniorXT (Protocolo 8 – instalado no cliente)**

```properties
md.tenant.client=protocolo8
```

```
# Configuração de Driver do XT, Gerado pela senior
• senior.protocolo.driver=800
# Ip da concentradora/seniorXT
• senior.protocolo.socketHost=100.126.147.29
# Porta da concentradora/seniorXT
• senior.protocolo.socketPort=61000
# Porta do Facial
• senior.protocolo.facialPort=8088
# Certificado para identificação do middleware Telematica com a seniorXT
• senior.protocolo.certificate=TSI.CER
# Tempo do KeepAlive em segundos, Tempo de espera para reconexão do Socket com a SeniorXT
• senior.protocolo.timeOutAwaitSocketSecond=60
# Tempo do KeepAlive em segundos, Tempo de Busca e verificação dos equipamentos
• senior.protocolo.timeOutAwaitSearchDeviceSecond=5
#Tempo do KeepAlive em segundos, Tempo até o equipamento retornar para o middleware
• senior.protocolo.scheduledKeepAliveDeviceSecond=30
```

Nesse cenário:

* A comunicação é feita via **socket**
* O Middleware atua como tradutor do **Protocolo 8**
* Os tempos de espera e keep-alive garantem estabilidade da conexão

<a href="/pages/Qj8axvztxr7xiOjeRoN1#seniorxt" class="button primary">CADASTRO DE EQUIPAMENTO</a>

{% hint style="info" %}
Clique e veja um exemplo de cadastro de equipamento no SeniorXT.
{% endhint %}
{% endtab %}

{% tab title="TRLA (Totvs)" %}

### TRLA (TOTVS)

Utilize estas configurações apenas se a sua empresa possui **integração ativa** com o **TRLA(TOTVS)**

```properties
md.tenant.client=trla
```

```
# Username da api, Gerado pelo parceiro
trla.api.authUsername=telematica
# senha da API, Gerado pelo parceiro
trla.api.authPassword=tele@1234
# Lista de tipo de equipamento
trla.api.manufacturerList=telematica,dimep,henry
# Tempo do KeepAlive em segundos
trla.api.keepAliveDeviceSeconds=200
# URL de comunicação
trla.api.baseUrlAccess=https://sandbox.tlra.totvs.com.br
# URL de comunicação
trla.api.baseUrlBiometry=https://sandbox.tlra.totvs.com.br
```

Esses parâmetros controlam:

* Autenticação na API da TOTVS
* Fabricantes de dispositivos suportados
* Endpoints de acesso e biometria
* Intervalo de keep-alive dos dispositivos

<a href="/pages/Qj8axvztxr7xiOjeRoN1#seniorx-e-sara" class="button primary">CADASTRO DE EQUIPAMENTO</a>

{% hint style="info" %}
Clique e veja um exemplo de cadastro de equipamento no TRLA.
{% endhint %}
{% endtab %}
{% endtabs %}

## FAQ – Perguntas Frequentes

<details>

<summary>Por que preciso saber qual é o parceiro antes de configurar?</summary>

Porque **cada parceiro utiliza uma linguagem, protocolo e regras diferentes.** A escolha errada do parceiro fará com que:

* As mensagens sejam traduzidas incorretamente
* A comunicação falhe
* O serviço não funcione, mesmo estando “no ar”

</details>

<details>

<summary>Posso configurar mais de um parceiro no mesmo Middleware?</summary>

Não. Cada instância do ConexX\_Middleware **atende apenas um parceiro por vez**, definido pela propriedade:

```properties
md.tenant.client
```

Mas é possível ter mais que um Conex\_Driver, e consequentemente mais de um middleware, podendo configurar um por vez para cada parceiro.

</details>

<details>

<summary>Preciso reiniciar o Middleware após alterar o <code>application.properties</code>?</summary>

Sim. Sempre.

Alterações no arquivo **não são aplicadas em tempo real**.\
Após salvar o arquivo, é obrigatório:

1. Parar o serviço do ConexX\_Middleware
2. Iniciá-lo novamente

Sem isso, a configuração antiga continuará ativa.

</details>

<details>

<summary>Qual porta o Middleware utiliza?</summary>

Por padrão:

```properties
server.port=8090
```

Essa porta deve:

* Estar livre no servidor
* Estar liberada no firewall
* Ser acessível pelo ConexX\_Driver

</details>

<details>

<summary>O Middleware funciona sem o Driver?</summary>

Não.

O ConexX\_Middleware **não opera de forma independente**.\
Ele depende do ConexX\_Driver para receber os eventos e comandos.

Driver e Middleware trabalham sempre em conjunto.

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://software-telematica-com.gitbook.io/suricato-docs/conex/conexx-e-xt/conexx-ou-xt-middleware/configuracao-do-conexx-middleware.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
