> 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/sdks/backend-sdk/ine/technical_documentation/technical_specifications.md).

# Especificaciones técnicas

## 1. Introducción

**Facephi INE Service** es un servicio REST API en C++ al que se pueden enviar archivos de imagen para su procesamiento y obtener el resultado del proceso de reconocimiento facial. El servicio ofrece un endpoint para autenticar dos fotos faciales.

## 2. Requisitos de hardware

|       | Requisito mínimo                                                       | Requisito recomendado            |
| ----- | ---------------------------------------------------------------------- | -------------------------------- |
| CPU   | 2 núcleos con soporte para el conjunto de instrucciones SSE4.2, >=2GHz | 16 núcleos, con soporte AVX2 ISA |
| RAM   | 4 Gb                                                                   | 8 Gb                             |
| Disco | 4 Gb                                                                   | SSD 4 Gb                         |
| Red   | 100 Mbps                                                               | 1 Gbps                           |

## 3. Requisitos de software

* Linux x86\_64 (Ubuntu 24.04 o superior) con Docker 24.0 o superior.
* Imagen del contenedor en tiempo de ejecución basada en Ubuntu 26.04.

## 4. Versión del SDK

La versión actual del SDK es **SelphID SDK 6.20.0**.

## 5. Endpoints REST

El servicio expone los siguientes endpoints:

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

El servicio no expone endpoints `GET/POST /config` en tiempo de ejecución.

## 6. Autenticación JWT

La autenticación JWT es opcional y está deshabilitada por defecto. Cuando está habilitada, el servicio valida tokens HS256 con un claim `exp` no expirado.

Claves de arranque:

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

Variables de entorno de sobrescritura:

* `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 accesibles sin autenticación:

* `GET /api/v1/health`
* `GET /api/v1/version`
* Solicitudes de preflight `OPTIONS`

Endpoint protegido:

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

La configuración de la autenticación JWT solo puede establecerse al arrancar, ya que el servicio no expone endpoints de configuración en tiempo de ejecución.
