> 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/iad/changelog.md).

# Changelog

## \[2.2.0] - 2026-08-12

### Añadido

* Endpoints públicos `GET /api/v1/iad/metrics` y `GET /api/v1/iad/metrics/prometheus` para snapshots operativos y exposición en formato Prometheus.
* Pruebas unitarias e integración para los snapshots de salud y los endpoints de métricas.

### Cambiado

* `GET /api/v1/iad/health` mantiene la comprobación activa del engine, mientras que `/metrics` expone snapshots en caché y contadores en memoria aptos para scraping frecuente.
* Actualizado el motor interno.

## \[2.1.0] - 2026-07-20

### Añadido

* Soporte opcional para autenticación JWT.
* Pruebas unitarias que cubren la precedencia de la configuración JWT en tiempo de ejecución y el comportamiento de redacción/rechazo del endpoint de configuración.

### Cambiado

* Los endpoints públicos de configuración ahora omiten las claves de autenticación JWT en las respuestas de `GET /api/v1/iad/config`.
* Las actualizaciones públicas de configuración mediante `POST /api/v1/iad/config` ahora rechazan las claves de autenticación JWT; esos valores deben configurarse únicamente al inicio mediante `config.json` o las variables de entorno `FACEPHI_IAD_REST_*`.

## \[2.0.0] - 2026-05-26

### Cambios incompatibles

* La versión `2.0.0` rompe la compatibilidad de la API REST pública con la serie `1.x.x`: los nombres de los endpoints, los campos de las solicitudes multipart y los payloads de respuesta correctos cambiaron y requieren migración por parte del cliente.

### Añadido

* Mapeo de respuesta pública de liveness con los campos de estilo Facephi `diagnostic`, `reason`, `probability`, `score`, `sdkDuration` y `queueDuration`.
* Mitigación experimental de ataques de repetición documentada como capacidad pública de facephi-iad-service, con las variables de entorno de inicio `FACEPHI_IAD_REPLAY_ATTACK_CHECKER_ENABLED` y `FACEPHI_IAD_REPLAY_ATTACK_TOLERANCE_TIME`.
* Pruebas unitarias para el mapeo del payload de éxito del Engine y la prevención de fugas de campos públicos.
* Pruebas unitarias para el contrato del campo multipart obligatorio `capture`.

### Cambiado

* Las rutas operativas públicas ahora usan `/api/v1/iad/liveness/evaluate` y `/api/v1/iad/extract`.
* Los endpoints multipart ahora requieren el campo `capture` en tiempo de ejecución y rechazan las solicitudes heredadas que solo incluyen `file`.
* Los fallos de arranque ahora se propagan a `main` en lugar de finalizar desde el código de arranque del servicio.
* Los errores de validación del proveedor IAD se normalizan a valores de respuesta de estilo Facephi/SelphID.
* Las capturas expiradas rechazadas por la protección experimental contra repeticiones ahora devuelven el mensaje público HTTP `400` documentado `Replay attack detected`.
* La documentación pública de liveness ahora enumera los valores exactos de `reason` que devuelve el servicio: `None`, `Unknown`, `UntrustedEnvironment`, `SuspiciousActivity`, `UntrustedDevice`, `SdkIntegrityViolation`, `UntrustedCorruptedPayload`, `UntrustedContent` y `UntrustedContentLowConfidence`.
* La documentación pública y los ejemplos de OpenAPI ahora describen el nuevo contrato de respuesta pública en lugar de los payloads del proveedor.

### Corregido

* El manejo de señales ya no invoca logging, rutinas de apagado ni `std::exit` desde el manejador de señales.

### Eliminado

* Los campos públicos de éxito con forma de Engine `capture_liveness`, `capture_type`, `rejection` y `mime_type`.

## \[1.2.0] - 2026-04-30

### Seguridad

* Los valores `LICENSE_ID` y `LICENSE_DATA` presentes en el archivo de licencia se ignoran.

### Cambiado

* La documentación de la API ahora incluye los motivos de rechazo del engine IAD y los mapeos de `error_code` de validación para las respuestas del servicio.
* Los ejemplos de Swagger/OpenAPI ahora documentan los errores HTTP `400` originados por el engine para `check-capture` y `extract-image`.
* Se mejoró la documentación de la demo añadiendo la modificación de las direcciones IP de los servicios necesarios.

### Corregido

* La documentación pública y los metadatos de versión ahora referencian la versión `1.2.0` de forma consistente.
* Los ejemplos de instalación y OpenAPI se alinearon con los valores por defecto actuales del runtime y las rutas de endpoint `/api/v1/iad/*`.

## \[1.1.1] - 2026-03-30

### Cambiado

* Actualización del engine IAD a la versión 2.5.3.

### Corregido

* Se corrigieron las rutas del registro Docker para usar `docker-pro-fphi` en toda la documentación y las notas de versión.
* Se actualizó la especificación OpenAPI con esquemas de solicitud/respuesta precisos que coinciden con el comportamiento real de los endpoints.
* Se mejoró la documentación de la API con ejemplos de los endpoints de configuración y comprobación de estado.

## \[1.1.0] - 2026-03-20

### Añadido

* Sobrescritura de la configuración en tiempo de ejecución mediante variables de entorno.
* Utilidades de traducción de errores de licencia y de reporte normalizado de errores de licencia para un diagnóstico operativo más claro.

### Cambiado

* Actualización del engine IAD a la versión 2.5.2.
* Mejoras en la gestión de licencias para soportar escenarios de validación offline y ofrecer un reporte de errores más claro.
* Dockerfile simplificado: cambio de imagen base, mejor gestión de paquetes y manejo de dependencias en tiempo de ejecución.

### Corregido

* Actualizaciones de endurecimiento (hardening) del runtime Docker y de la imagen base.
* Normalización de errores del proxy REST y rutas consistentes de creación/reporte de errores.
* Reducción del exceso de logs detallados en las comprobaciones de Docker y los flujos de activación del engine.

## \[1.0.0] - 2026-02-03

### Añadido

* Activación automática del engine a partir de los metadatos de la licencia
* Detección del entorno Docker e inicialización automática del engine
* Fachada ProcessExecutor para la gestión de procesos en segundo plano
* Capa de compatibilidad de sistema de archivos para GCC 7

### Cambiado

* **CAMBIO INCOMPATIBLE**: Se estandarizaron todos los endpoints con el prefijo `/iad` (por ejemplo, `/api/v1/iad/check-capture`)
* Estructura de namespace unificada en todos los endpoints
* Mejora en los tiempos de espera de la comprobación de estado del engine
* Logging mejorado en el proceso de activación del engine
* Implementación simplificada de ProcessExecutor
* Refactorización del logging interno del proxy REST

### Eliminado

* **CAMBIO INCOMPATIBLE**: Se eliminó el endpoint `/extract_data` (funcionalidad consolidada)

### Corregido

* Problemas de compatibilidad del sistema de archivos con versiones antiguas de GCC
* Sincronización de tiempos en la inicialización del engine en entornos Docker

## \[0.0.1] - 2026-01-29

### Añadido

* Lanzamiento inicial de la API REST de IAD Service
* Endpoint `/api/v1/iad/check-capture` para la detección de liveness y la verificación de ataques de inyección
* Endpoint `/api/v1/iad/extract-image` para la extracción de imágenes de capturas validadas
* Endpoint de gestión `/api/v1/iad/version` para la versión y el estado de la licencia
* Endpoint de gestión `/api/v1/iad/health` para la monitorización de estado
* Endpoints de gestión `/api/v1/iad/config` (GET/POST) para la gestión de la configuración
* Pool de conexiones para la comunicación con el engine
* Mecanismo de reintento automático con backoff configurable
* Actualizaciones dinámicas de configuración sin reiniciar el servicio
* Despliegue basado en Docker con Ubuntu 24.04
* Soporte para validación de licencia online y offline
* Logging completo con niveles y rotación configurables
* Especificación OpenAPI 3.0 (documentación Swagger)
