> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/sdks/backend-sdk/ine/technical_documentation/technical_specifications.md).

# Especificações técnicas

## 1. Introdução

**Facephi INE Service** é um serviço REST API em C++ ao qual podem ser enviados arquivos de imagem para seu processamento e obter o resultado do processo de reconhecimento facial. O serviço oferece um endpoint para autenticar duas fotos faciais.

## 2. Requisitos de hardware

|       | Requisito mínimo                                                   | Requisito recomendado              |
| ----- | ------------------------------------------------------------------ | ---------------------------------- |
| CPU   | 2 núcleos com suporte para o conjunto de instruções SSE4.2, >=2GHz | 16 núcleos, com suporte à ISA AVX2 |
| RAM   | 4 GB                                                               | 8 GB                               |
| Disco | 4 GB                                                               | SSD 4 GB                           |
| Rede  | 100 Mbps                                                           | 1 Gbps                             |

## 3. Requisitos de software

* Linux x86\_64 (Ubuntu 24.04 ou superior) com Docker 24.0 ou superior.
* Imagem do contêiner em tempo de execução baseada em Ubuntu 26.04.

## 4. Versão do SDK

A versão atual do SDK é **SelphID SDK 6.20.0**.

## 5. Endpoints REST

O serviço expõe os seguintes endpoints:

* `POST /api/v1/facial/authentication`
* `GET /api/v1/health`
* `GET /api/v1/version`

O serviço não expõe endpoints `GET/POST /config` em tempo de execução.

## 6. Autenticação JWT

A autenticação JWT é opcional e está desabilitada por padrão. Quando está habilitada, o serviço valida tokens HS256 com um claim `exp` não expirado.

Chaves de inicialização:

* `auth_enabled`
* `auth_jwt_secret`
* `auth_accept_authorization_header`
* `auth_accept_api_key_header`
* `auth_api_key_header_name`

Variáveis de ambiente de sobrescrita:

* `FACEPHI_INE_REST_AUTH_ENABLED`
* `FACEPHI_INE_REST_AUTH_JWT_SECRET`
* `FACEPHI_INE_REST_AUTH_ACCEPT_AUTHORIZATION_HEADER`
* `FACEPHI_INE_REST_AUTH_ACCEPT_API_KEY_HEADER`
* `FACEPHI_INE_REST_AUTH_API_KEY_HEADER_NAME`

Endpoints públicos acessíveis sem autenticação:

* `GET /api/v1/health`
* `GET /api/v1/version`
* Solicitações de preflight `OPTIONS`

Endpoint protegido:

* `POST /api/v1/facial/authentication`

A configuração da autenticação JWT só pode ser definida na inicialização, já que o serviço não expõe endpoints de configuração em tempo de execução.
