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

# Changelog

## \[6.21.0]

### Añadido

* Soporte para glibc 2.27 (Ubuntu18 y sistemas compatibles) en el SDK on-premise de Linux.
* Soporte para TokensV2 con validaciones de seguridad. Aceptado por:
  * SelphID-SDK `SelphIDVerifier::EvaluatePassiveLivenessWithTokenBuffer()`.
  * Servicio Rest Api `/api/v1/selphid/passive-liveness/evaluate/token`.
  * Se han añadido los valores `NoneBecauseTokenDataError` y `NoneBecauseTokenSecurity` a `FacialLivenessDiagnostic`.
    * C++/Java/.NET.
    * Servicio Rest Api.
* Nuevo servicio prototipo del motor de prueba de vida `facephi-selphid-service:liveness_1st`.

## \[6.20.0]

### Añadido

* Soporte mejorado para Custom Events:
  * `SelphIDVerifier::EvaluatePassiveLivenessTrackingEvent()`.
  * `SelphIDVerifier::VoiceAuthenticationTrackingEvent()`.
* Nuevos endpoints de Custom Events:
  * `/api/v1/selphid/custom-event/ocr/finish`
  * `/api/v1/selphid/custom-event/security/finish`
  * `/api/v1/selphid/custom-event/liveness`
  * `/api/v1/selphid/custom-event/liveness/finish`
  * `/api/v1/selphid/custom-event/voice/authentication`
  * `/api/v1/selphid/custom-event/voice/authentication/finish`

### Eliminado

* Metadatos obsoletos heredados de `SelphIDFacialExtractionResult`:
  * Lips
  * GeographicOrigin
  * Emotion
  * Artwork
  * FacialHair
* Códigos de estado de prueba de vida en los logs. A partir de ahora, utilice `SelphIDNoLiveDetails::GetReasonMessage()`.
  * 0xAB01
  * 0xAB02
  * 0xAB03
  * 0xAB04
  * 0xAB05
  * 0xAB06
  * 0xAB07
  * 0xAB08

### Mejorado

* `selphid-license-activator` se ejecuta como una aplicación independiente para obtener el HostID.

### Eliminado

* Mensajes de log contradictorios en el licenciamiento offline.

## \[6.19.0]

### Añadido

* Detección de coacción en el motor de prueba de vida.
* `SelphIDNoLiveDetails::GetCoercionScore()`.
* Soporte para imágenes JPEG 2000 en los motores de extracción y prueba de vida.
* Nuevas variables de entorno para el servicio Rest Api en C++:
  * `FACEPHI_SELPHID_REST_PORT`
  * `FACEPHI_SELPHID_REST_NUMBER_OF_THREADS`
  * `FACEPHI_SELPHID_REST_CONNECTION_TIMEOUT`
  * `FACEPHI_SELPHID_REST_KEEP_ALIVE_REQUEST_NUMBER`
  * `FACEPHI_SELPHID_REST_CLIENT_MAX_BODY_SIZE`
  * `FACEPHI_SELPHID_REST_LOGGER_PATH`
  * `FACEPHI_SELPHID_REST_LOGGER_FILE_PREFIX`
  * `FACEPHI_SELPHID_REST_LOGGER_LEVEL`
  * `FACEPHI_SELPHID_REST_LOGGER_ROTATION`
  * `FACEPHI_SELPHID_REST_LOGGER_MAX_FILES`

### Mejorado

* Nuevo motor de extracción facial, sin el juego de instrucciones `fma3`.
* Nuevo motor de prueba de vida, sin el juego de instrucciones `fma3`.
* Soporte mejorado para la detección de `closed-eyes` y `occlusions` en el motor de prueba de vida.

### Eliminado

* Versiones `fphi-selphid-sdk-linux64_fma3` y `fphi-selphid-sdk-win64_fma3`, ya que los nuevos motores biométricos no utilizan el juego de instrucciones extendido.
* Ejemplos de programación en Java y .NET.

## \[6.18.0]

### Añadido

* Endpoints `/extract` y `/extract/template` en los ejemplos de programación de Java y .NET.
* `GetNoLiveDetails()` en `SelphIDFacialLivenessResult`.
* `GetTokenTimeStamp()` en `SelphIDFacialExtractionResult`, `SelphIDFacialAuthenticationResult`, `SelphIDFacialLivenessResult` y `SelphIDDocumentResult`.
* `SetLivenessDepth()` en `SelphIDVerifierOptions`.

## \[6.17.0]

### Añadido

* `SelphIDVerifierOptions::Get/SetFutureTimeAllowed()` para permitir que los tokens con fecha futura no sean rechazados.
* Variable de entorno `FACEPHI_SELPHID_FUTURE_TIME_ALLOWED` para establecer un valor global de `FutureTimeAllowed`.
* `futureAllowedSeconds` en `options` del servicio rest-api de C++.
* `SelphIDIdentifier::ListObsoleteGalleryTemplateIDs()` para listar los elementos de la galería anteriores a un intervalo de tiempo.
* `SelphIDIdentifier::RemoveObsoleteGalleryTemplateIDs()` para eliminar los elementos de la galería anteriores a un intervalo de tiempo.
* Endpoint GET `/identify/obsolete/{galleryId}/{intervalSeconds}` en el servicio rest-api de C++.
* Endpoint DELETE `/identify/obsolete/{galleryId}/{intervalSeconds}` en el servicio rest-api de C++.

### Corregido

* Problema en `SelphIDIdentifier::RemoveWithTemplateID()` que dejaba el estado de la galería inconsistente.

## \[6.16.0]

### Añadido

* Nuevos servicios rest-api de C++.
  * `selphid-sdk-rest-api:gpu`. Con soporte para GPU en el motor de prueba de vida.
  * `selphid-sdk-rest-api:liveness_1st`. Con el motor experimental de prueba de vida.
* Nuevo endpoint `GET:/config` en la rest-api de C++ para obtener la configuración del servicio y del sdk.

### Mejorado

* Nuevo motor de extracción facial que resuelve el problema del cálculo del patrón biométrico en imágenes recortadas.
* Nuevos valores de error añadidos a `SelphIDIdentifier::EnrollWithExtractionResult()` y `SelphIDIdentifier::EnrollWithFacialTemplate()`.
  * `GALLERY_ID_NOT_EXISTS -1`.
  * `TEMPLATE_ID_ALREADY_EXISTS -2`.
  * `TEMPLATE_ID_EMPTY -3`.

### Cambiado

* La IOD (distancia interocular) mínima interna se ha reducido de `30px` a `20px`.

## \[6.15.0]

### Añadido

* Nuevo `SelphIDIdentifier::RemoveWithTemplateID()`.
* Nuevo endpoint `identify/removeid/{galleryId}/{templateId}`.
* Nuevo `FacialLivenessDiagnostic::NoneBecauseEyesOccluded`.
* Nuevos servicios rest-api de C++.
  * `selphid-sdk-rest-api:facial`. Con soporte biométrico, 1:1 y 1:N.
  * `selphid-sdk-rest-api:liveness`. Con soporte de prueba de vida.

### Mejorado

* El motor de prueba de vida mejora el soporte para imágenes de baja calidad y oclusiones de boca/ojos.
* Las galerías 1:N no aceptan identificadores de plantilla duplicados.

### Corregido

* Problema al extraer el patrón biométrico de documentos con múltiples rostros.
* Recorte del TemplateRaw al utilizar imágenes tokenizadas con `ExtractFacialWithRawTemplate()`.

## \[6.14.2]

### Añadido

* Soporte para licenciamiento por dirección MAC.

### Corregido

* `selphid-license-activator` no muestra el log de licenciamiento.

## \[6.14.1]

### Corregido

* Problema en el binding de Java, que provocaba un segmentation fault en entornos multihilo con cargas elevadas.
* Se evita la creación de una carpeta de logs vacía en `selphid-eval-performance` y otras herramientas.
* `GetValidTimeStamp()` rechaza los tokens con fechas futuras.

### Mejorado

* Se ha renovado la documentación del ejemplo del servicio API de Java.
* Se ha ampliado la configuración del ejemplo del servicio API de Java.

## \[6.14.0]

### Mejorado

* Motor de extracción facial actualizado, más preciso al extraer patrones biométricos de imágenes de baja calidad.
* Motor de prueba de vida pasiva actualizado, más preciso en casos de FMAD (face manipulator attack detection).

### Añadido

* Nuevo ejemplo de programación en C++ en `/examples/cpp`.
* Documentación de la API de C++ en `/doc/api/cpp`.

## \[6.13.1]

### Añadido

* Soporte para metadatos de orientación EXIF.
* Nuevo endpoint de API-Rest `/extract/template/image` para extraer la imagen interna en bruto de la plantilla.

### Cambiado

* El logger utiliza el formato horario de 24 horas.
* Las licencias offline eliminan los mensajes de log de red.

## \[6.13.0]

### Añadido

* Log completo para la validación de la licencia.

### Mejorado

* Motor de prueba de vida actualizado a la última versión, que mejora la precisión de detección.

## \[6.12.1]

### Añadido

* `FACEPHI_SELPHID_FACIALLIVENESS_DEPTH=full` para activar el detector FMAD (*Face Manipulation Attack Detector*) en el motor de prueba de vida.

## \[6.12.0]

### Añadido

* `FACEPHI_SELPHID_GALLERY_REMOVE_METHOD=noerase` para evitar la eliminación de patrones en las galerías. Se marcan como no válidos, manteniendo el tamaño de la galería y la posición del resto de los patrones.

### Mejorado

* Motor de prueba de vida actualizado.
* Prefiltrado IAD (Injection Attack Detection) mejorado, haciéndolo más estable frente a imágenes con altas tasas de compresión.

## \[6.11.1]

### Añadido

* Variable de configuración `FACEPHI_SELPHID_FACIALLIVENESS_IAD=disable` para deshabilitar las comprobaciones IAD (Injection Attack Detection) de la prueba de vida.

### Corregido

-`selphid-license-server` tolerante a fallos en casos de doble activación (activaciones offline).

## \[6.11.0]

### Mejorado

* Nuevo motor de prueba de vida pasiva, que incluye la detección de nuevos casos de suplantación (spoofing).
* Extractor de patrones faciales con imágenes de baja resolución.

### Corregido

* Erratas en el miembro `options` del servicio Rest API de C++:
  * `elapsedAllowedSeconds` (antes `ellapsedAllowedSeconds`).
  * `minSimilarity` (antes `minSimilariry`).

### Añadido

* Nuevo endpoint `/tokeninfo` en el servicio rest de C++, para obtener el tipo de una imagen o token.

## \[6.10.2]

### Corregido

* Problema de memoria en el ejemplo de programación de Java.
* Problema de desbordamiento de índice en `RemoveWithGalleryIndex()`.
* Problema del motor de prueba de vida al extraer la ROI.

## \[6.10.1]

### Mejorado

* Mejoras de rendimiento en el extractor facial y el motor de prueba de vida.

### Corregido

* Vulnerabilidades en el servidor de licencias flotantes.
* Problema en `options:authThreshold` del servicio Rest-API.

## \[6.10.0]

### Añadido

* Soporte para servidor de licencias local de alta disponibilidad.

### Mejorado

* Nueva versión del motor de prueba de vida, con mejoras en el detector de ojos cerrados.

## \[6.9.0]

### Mejorado

* Nueva versión del motor extractor facial, con mejoras en la precisión, la detección de oclusiones y el rendimiento.
* Nueva versión del motor de prueba de vida, con mejoras en el detector de ojos cerrados, las oclusiones de boca y el rendimiento.

### Cambiado

* Se unifican los rangos de las constantes de umbral a `[0, 100]`.
* Variable de entorno `FACEPHI_SELPHID_FACIALAUTHENTICATION_THRESHOLD` en el rango `[0, 100]`. Valor predeterminado `65`.
* Variable de entorno `FACEPHI_SELPHID_FACIALLIVENESS_THRESHOLD` en el rango `[0, 100]`. Valor predeterminado `50`.

## \[6.8.3]

### Añadido

* Métricas del contador de licencias.

### Mejorado

* Endpoint `/health` en los ejemplos de programación de Java/.NET.

## \[6.8.2]

### Añadido

* El servicio Rest-Api acepta un archivo `config.json` externo con los detalles de inicio del servidor web.
* El servicio Rest-Api acepta una ruta de usuario para `USAGE_PATH` y `DEBUG_PATH`.

### Mejorado

* `SelphIDFacialAuthenticationResult::GetSimilarity()` no satura en el extremo 1.0.
* El TemplateRaw facial reduce los fallos de extracción de patrones.

### Corregido

* El servicio rest api de C++ limita a 4 el número de posiciones decimales en los JSON de respuesta.

## \[6.8.1]

### Corregido

* Endpoint `/health` del servicio.

## \[6.8.0]

### Actualización

* Motor de prueba de vida actualizado a la última versión.

### Añadido

* Nuevo TemplateRaw mejorado para optimizar las extracciones y las búsquedas en galerías.
* `SelphIDFacialExtractionResult::GetUpdatedTemplateRaw()` para saber si el templateRaw ha sido actualizado.
* `FacialExtractionResult::updatedTemplateRaw` en los endpoints del servicio Rest-Api.

## \[6.7.1]

### Añadido

* `queueDuration` en los endpoints del servicio para saber cuánto tiempo permanece una solicitud http en cola a la espera de resolución.

```
{
    "authStatus": "Positive",
    "queueDuration": 35,
    "sdkDuration": 694,
    "similarity": 1.0,
    "trackingMessage": "",
    "trackingStatus": -1,
    "validTimeStamp": true
}
```

### Corregido

* Problemas menores en la gestión de licencias.

## \[6.7.0]

### Actualización

* Motor de prueba de vida actualizado a la última versión.
* El Docker del servicio Rest-Api pasa de Ubuntu 18.04 LTS a 22.04 LTS.

### Corregido

* Problema en la licencia con `logging:false`.
* Problema en `SelphIDIdentifier::EnrollWithFacialTemplate()` con plantillas no válidas.
* Problema de rendimiento en los endpoints del servicio Rest-Api:
  * `/identify/enroll/{galleryId}/{templateId}`.
  * `/identify/enroll/template/{galleryId}/{templateId}`.

### Actualizado

* Eventos de FacePhi Identity Platform.
  * `METADATA` por `FACIAL_CHARACTERISTICS`.
  * `STEP_CHANGE` a la última versión.

## \[6.6.0]

### Añadido

* Prefiltrado IAD (Injection Attack Detection) para el motor de prueba de vida. Detecta Bands to edges y Scaled nearest neighbor.
* Algunas mejoras en la librería base64.
* Se ha añadido `SelphIDFacialExtractionResult::Set/GetValidTimeStamp()`.
* Se ha añadido `SelphIDDocumentResult::Set/GetValidTimeStamp()`.
* Nueva propiedad `sdkDuration` en las respuestas de los endpoints del servicio.
* Nueva propiedad `validTimeStamp` en las respuestas de los endpoints del servicio.
* `longDetail` en `options` de los endpoints del servicio. Si es `true`, el resultado del endpoint incluirá información adicional. Si se omite, el valor predeterminado será `false`.
* Si `options:longDetail==true`, se añadirán `extractionQuery` y `extractionTarget` (ambos de tipo `FacialExtractionResult`) a `FacialAuthenticationResult` en los endpoints de autenticación del servicio.
  * `/api/v1/selphid/authenticate-facial/images`.
  * `/api/v1/selphid/authenticate-facial/image/template`.
  * `/api/v1/selphid/authenticate-facial/templates`.

## \[6.5.0]

### Añadido

* Diagnóstico `NoneBecauseEyesClosed` del motor de prueba de vida.
* Diagnóstico `NoneBecauseFaceOccluded` del motor de prueba de vida.
* Resultado de extracción `FacialMask` del motor facial.
* Resultado de extracción `ImageQuality` del motor facial.
* Resultado de extracción `FacialPose` del motor facial.
* Nuevo parámetro de configuración `FACEPHI_SELPHID_FACIALAUTHENTICATION_THRESHOLD`.
* Nuevo método `SetCustomFacialAuthenticationThreshold()` en `SelphIDVerifierOptions`.
* Parámetro JSON `"options":"authThreshold"` en los endpoints del servicio.
* El endpoint `/version` del servicio devuelve un objeto JSON en lugar de una cadena de texto.

## \[6.4.3]

### Añadido

* Variable de entorno `FACEPHI_SELPHID_FACIALEXTRACTOR_NUM_THREADS` para configurar el uso de hilos en el motor extractor.

### Actualización

* Mejora del motor facial con soporte multihilo.

## \[6.4.2]

### Añadido

* Variable de entorno `FACEPHI_SELPHID_FACIALLIVENESS_NUM_THREADS` para configurar el uso de hilos en el motor de prueba de vida.

### Actualización

* Mejora del motor de prueba de vida con soporte multihilo.

## \[6.4.1]

### Corregido

* Problemas en el motor de prueba de vida relacionados con `NoneBecauseBadQuality`.

## \[6.4.0]

### Añadido

* Firma de la DLL de .NET.
* Archivo de configuración del servicio Rest-Api (puerto, hilos, timeout, keep alive).

### Corregido

* Vulnerabilidades en los logs.

### Eliminado

* Opciones de línea de comandos del servicio Rest-Api `-threads`, `-timeout`, `-kAlive`.

### Cambiado

* Motor de prueba de vida actualizado.
* Motor extractor facial actualizado.

## \[6.3.0]

### Añadido

* Modo de licencia `shared-offline`
* Nuevos estimadores del extractor `age` y `gender`
* Nuevos flags de compilación en el servicio `-threads`, `-timeout` y `-kAlive`

### Cambiado

* Motor de prueba de vida actualizado.
* Motor extractor facial actualizado.

## \[6.2.0]

### Añadido

* Modo de licencia `shared-online`.
* Modo de licencia `server-online`.
* Modo de licencia `on-premise`.

### Cambiado

* Motor de prueba de vida actualizado.
* Motor extractor facial actualizado.
* Motor 1:n actualizado.
* Se recupera la envvar `FACEPHI_SELPHID_FACIAL_LICPATH_KEY` y el archivo `license.lic`.

### Eliminado

* Envvar `FACEPHI_SELPHID_LICENSE_KEY` para proporcionar el código de licencia.

## \[6.1.0]

### Añadido

* Activación offline de licencia node-locked.

### Cambiado

* Mejora de la extracción del templateRaw facial
* Mejora del rendimiento 1:n.

## \[6.0.0]

### Añadido

* Nueva envvar `FACEPHI_SELPHID_LICENSE_KEY` para proporcionar el código de licencia.

### Cambiado

* Motor de autenticación.

### Eliminado

* Envvar `FACEPHI_SELPHID_FACIAL_LICPATH_KEY` porque `license.lic` ya no se utiliza.
