# Configuração do Suricato Face

## Visão Geral

Esta seção ensina como realizar a **Configuração do Sistema do Suricato Face**, incluindo a criação e utilização de certificados digitais e a definição dos principais parâmetros de funcionamento da aplicação.

## Regra de Negócio

Para que o Suricato Face funcione corretamente, é obrigatório atender aos seguintes requisitos:

* Disponibilidade do **certificado SSL do TSI Face Template**.
* Acesso administrativo ao sistema operacional Windows.
* Execução do **Prompt de Comando (MS-DOS) como administrador**.
* Existência dos arquivos `server.crt` e `server.key`, obtidos a partir do software **TSI Face Template**.
* Permissão para criação de arquivos `.pfx` na pasta da aplicação.
* Configuração correta do arquivo `application.properties`.
* Disponibilidade do serviço **TSI Face Template**.
* Banco de dados **Microsoft SQL Server (MSSQL)** acessível com credenciais válidas.

O não cumprimento de qualquer um desses requisitos pode impedir a comunicação segura ou o funcionamento do sistema.

## Como configurar os certificados

### Certificado PFX TSI Face Template

O **Suricato Face** necessita do **certificado SSL do TSI Face Template** para estabelecer comunicação segura via HTTPS.

Siga os passos abaixo:

{% stepper %}
{% step %}
Acesse o software **TSI Face Template,** e copie os arquivos:

* `server.crt`
* `server.key`
  {% endstep %}

{% step %}
Cole os arquivos na pasta da aplicação do Suricato Face.
{% endstep %}

{% step %}
Abra o **Prompt MS-DOS** como administrador e navegue até a pasta da aplicação.

<figure><img src="/files/0KDxOWXognF9rUcOinqC" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Execute o comando:

```
runps.bat pfx.ps1
```

{% endstep %}

{% step %}
Após a execução, o arquivo `server.pfx` será criado com sucesso.
{% endstep %}
{% endstepper %}

### Certificado Suricato-Face

O monitoramento do serviço pode ser realizado por meio de requisições HTTP ou HTTPS no endpoint:

```
/api/monitor/services
```

Para garantir a segurança da comunicação, é altamente recomendável utilizar o protocolo HTTPS com um certificado SSL/TLS adequado.

Siga os passos abaixo:

Abra o **Prompt MS-DOS** como administrador e navegue até a pasta da aplicação.

* Execute o comando:

```
runps.bat cert.ps1
```

<figure><img src="/files/QCazNB6ILw87VLfTg3F1" alt=""><figcaption></figcaption></figure>

Após a execução, o arquivo `suricato-face.pfx` será criado com sucesso.

## Configuração do Sistema

O sistema é configurado por meio do arquivo:

```
application.properties
```

A seguir estão descritos os principais parâmetros da aplicação, suas finalidades e valores padrão.

#### Debug

* **Chave:** `debug`
  * **Descrição:** Define se a aplicação deve ser executada em modo de depuração.
  * **Valor padrão:** `false`

#### Monitoramento do Serviço

* **Chave:** `server.port`
  * **Descrição:** Porta TCP/IP exposta para monitoramento do serviço.
  * **URI de acesso:** `https://localhost:32102/api/monitor/services`
  * **Valor padrão:** `32102`
* **Chave:** `server.ssl.key-store`
  * **Descrição:** Local onde é armazenado o certificado SSL/TLS.
  * **Valor padrão:** `file:suricato-face.pfx`
* **Chave:** `server.ssl.key-store-password`
  * **Descrição:** Senha do certificado SSL/TLS.
  * **Valor padrão:** Sem senha
* **Chave:** `server.ssl.key-store-type`
  * **Descrição:** Tipo do certificado SSL/TLS.
  * **Valor padrão:** `PKCS12`
* **Chave:** `server.ssl.key-alias`
  * **Descrição:** Alias do certificado SSL/TLS.
  * **Valor padrão:** `suricato-face`

#### Serviço TSI Face Template

* **Chave:** `face.template.url`
  * **Descrição:** URI principal para comunicação com o serviço TSI Face Template.
  * **Exemplo:** `https://172.16.32.46:60100`
* **Chave:** `face.template.host`
  * **Descrição:** Endereço de host do serviço TSI Face Template.
  * **Exemplo:** `172.16.32.46`
* **Chave:** `face.template.port`
  * **Descrição:** Porta TCP/IP utilizada pelo serviço TSI Face Template.
  * **Exemplo:** `60100`

#### Pool de Processamento – Face Template Extractor Service

* **Chave:** `face.template.extractor.service.corepoolsize`
  * Número inicial de threads no pool.
  * **Default:** `1`
* **Chave:** `face.template.extractor.service.maximumpoolsize`
  * Número máximo de threads permitidas no pool.
  * **Default:** `1`
* **Chave:** `face.template.extractor.service.recordLimit`
  * Quantidade máxima de registros processados por lote.
  * **Default:** `1`

#### Pool de Processamento – Face Sync Service

* **Chave:** `face.sync.service.corepoolsize`
  * Número inicial de threads no pool.
  * **Default:** `10`
* **Chave:** `face.sync.service.maximumpoolsize`
  * Número máximo de threads permitidas no pool.
  * **Default:** `100`
* **Chave:** `face.sync.service.recordLimit`
  * Quantidade máxima de registros processados por lote.
  * **Default:** `10`

### Database

#### Dados da Conexão MSSQL

```
spring.profiles.active=MSSQL
spring.datasource.driverclassname=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://172.16.14.239;databaseName=suricato;encrypt=false
spring.datasource.username=suricato
spring.datasource.password=559c77858b83858d95
```

#### Dados da Conexão ORACLE

```
#spring.profiles.active=ORACLE
#spring.datasource.driverclassname=oracle.jdbc.OracleDriver
#spring.datasource.url=jdbc:oracle:thin:@( DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =
172.16.14.239)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )
#spring.datasource.username=suricato
#spring.datasource.password=559c77858b83858d95
```

#### Pool de Conexão com a Base de Dados

```
#maximum number of milliseconds that a client will wait for a connection
spring.datasource.hikari.connection-timeout=60000
spring.datasource.hikari.connection-test-query=SELECT 1 FROM SURICATO.SURI
#minimum number of idle connections maintained by HikariCP in a connection pool
spring.datasource.hikari.minimum-idle=100
#maximum pool size
spring.datasource.hikari.maximum-pool-size=3000
#maximum idle time for connection
spring.datasource.hikari.idle-timeout=10000
#maximum lifetime in milliseconds of a connection in the pool after it is closed.
spring.datasource.hikari.max-lifetime=600000
#default auto-commit behavior.
spring.datasource.hikari.auto-commit=true
```

## Guia Rápido de Uso

1. Copiar os arquivos `server.crt` e `server.key` do TSI Face Template.
2. Executar `runps.bat pfx.ps1` para gerar o `server.pfx`.
3. Executar `runps.bat cert.ps1` para gerar o `suricato-face.pfx`.
4. Configurar corretamente o arquivo `application.properties`.
5. Verificar o monitoramento do serviço pelo endpoint `/api/monitor/services`.

<a href="/pages/lzILtyoDcbb7ClKLjqA6" class="button primary">Clique aqui e Aprenda a Alteração de JDK para Suricato Face</a>

## Glossário

* **PFX (PKCS12):** Formato de certificado digital que armazena chave privada e certificado em um único arquivo.
* **SSL/TLS:** Protocolos de segurança utilizados para criptografar a comunicação entre sistemas.
* **Thread Pool:** Conjunto de threads reutilizáveis que executam tarefas de forma controlada e otimizada.

## FAQ – Perguntas Frequentes

<details>

<summary>O que acontece se os arquivos <code>server.crt</code> e <code>server.key</code> não estiverem corretos?</summary>

O arquivo `server.pfx` não será gerado corretamente e a comunicação HTTPS falhará.

</details>

<details>

<summary>Posso utilizar HTTP em vez de HTTPS?</summary>

É possível, mas não recomendado, pois compromete a segurança da comunicação.

</details>

<details>

<summary>O serviço não responde no endpoint de monitoramento, o que verificar?</summary>

Verifique a porta configurada, o certificado SSL e se o serviço está em execução.

</details>

<details>

<summary>É obrigatório usar MSSQL?</summary>

Sim, conforme configuração apresentada, o sistema utiliza Microsoft SQL Server.

</details>

<details>

<summary>Posso alterar o número de threads dos pools de processamento?</summary>

Sim, desde que os valores sejam ajustados conforme a capacidade do ambiente.

</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/central-tecnica/instalacao-e-configuracao-de-servicos-do-suricato/instalacao-e-configuracao-do-suricato-face/configuracao-do-suricato-face.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.
