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

# Changelog

## \[6.21.0]

### Adicionado

* Suporte para glibc 2.27 (Ubuntu18 e sistemas compatíveis) no SDK on-premise de Linux.
* Suporte para TokensV2 com validações de segurança. Aceito por:
  * SelphID-SDK `SelphIDVerifier::EvaluatePassiveLivenessWithTokenBuffer()`.
  * Serviço Rest Api `/api/v1/selphid/passive-liveness/evaluate/token`.
  * Foram adicionados os valores `NoneBecauseTokenDataError` e `NoneBecauseTokenSecurity` a `FacialLivenessDiagnostic`.
    * C++/Java/.NET.
    * Serviço Rest Api.
* Novo serviço protótipo do motor de teste de vida `facephi-selphid-service:liveness_1st`.

## \[6.20.0]

### Adicionado

* Suporte aprimorado para Custom Events:
  * `SelphIDVerifier::EvaluatePassiveLivenessTrackingEvent()`.
  * `SelphIDVerifier::VoiceAuthenticationTrackingEvent()`.
* Novos 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`

### Excluído

* Metadados obsoletos herdados de `SelphIDFacialExtractionResult`:
  * Lips
  * GeographicOrigin
  * Emotion
  * Artwork
  * FacialHair
* Códigos de status de teste de vida nos logs. A partir de agora, use `SelphIDNoLiveDetails::GetReasonMessage()`.
  * 0xAB01
  * 0xAB02
  * 0xAB03
  * 0xAB04
  * 0xAB05
  * 0xAB06
  * 0xAB07
  * 0xAB08

### Aprimorado

* `selphid-license-activator` é executado como um aplicativo independente para obter o HostID.

### Excluído

* Mensagens de log contraditórias no licenciamento offline.

## \[6.19.0]

### Adicionado

* Detecção de coerção no motor de teste de vida.
* `SelphIDNoLiveDetails::GetCoercionScore()`.
* Suporte para imagens JPEG 2000 nos motores de extração e teste de vida.
* Novas variáveis de ambiente para o serviço Rest Api em 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`

### Aprimorado

* Novo motor de extração facial, sem o conjunto de instruções `fma3`.
* Novo motor de teste de vida, sem o conjunto de instruções `fma3`.
* Suporte aprimorado para a detecção de `closed-eyes` e `occlusions` no motor de teste de vida.

### Excluído

* Versões `fphi-selphid-sdk-linux64_fma3` e `fphi-selphid-sdk-win64_fma3`porque os novos motores biométricos não utilizam o conjunto de instruções estendido.
* Exemplos de programação em Java e .NET.

## \[6.18.0]

### Adicionado

* Endpoints `/extract` e `/extract/template` nos exemplos de programação em Java e .NET.
* `GetNoLiveDetails()` en `SelphIDFacialLivenessResult`.
* `GetTokenTimeStamp()` en `SelphIDFacialExtractionResult`, `SelphIDFacialAuthenticationResult`, `SelphIDFacialLivenessResult` e `SelphIDDocumentResult`.
* `SetLivenessDepth()` en `SelphIDVerifierOptions`.

## \[6.17.0]

### Adicionado

* `SelphIDVerifierOptions::Get/SetFutureTimeAllowed()` para permitir que os tokens com data futura não sejam rejeitados.
* Variável de ambiente `FACEPHI_SELPHID_FUTURE_TIME_ALLOWED` para definir um valor global de `FutureTimeAllowed`.
* `futureAllowedSeconds` en `options` do serviço rest-api de C++.
* `SelphIDIdentifier::ListObsoleteGalleryTemplateIDs()` para listar os elementos da galeria anteriores a um intervalo de tempo.
* `SelphIDIdentifier::RemoveObsoleteGalleryTemplateIDs()` para remover os elementos da galeria anteriores a um intervalo de tempo.
* Endpoint GET `/identify/obsolete/{galleryId}/{intervalSeconds}` no serviço rest-api de C++.
* Endpoint DELETE `/identify/obsolete/{galleryId}/{intervalSeconds}` no serviço rest-api de C++.

### Corrigido

* Problema em `SelphIDIdentifier::RemoveWithTemplateID()` que deixava o estado da galeria inconsistente.

## \[6.16.0]

### Adicionado

* Novos serviços rest-api de C++.
  * `selphid-sdk-rest-api:gpu`. Com suporte para GPU no motor de teste de vida.
  * `selphid-sdk-rest-api:liveness_1st`. Com o motor experimental de teste de vida.
* Novo endpoint `GET:/config` na rest-api de C++ para obter a configuração do serviço e do SDK.

### Aprimorado

* Novo motor de extração facial que resolve o problema do cálculo do padrão biométrico em imagens recortadas.
* Novos valores de erro adicionados a `SelphIDIdentifier::EnrollWithExtractionResult()` e `SelphIDIdentifier::EnrollWithFacialTemplate()`.
  * `GALLERY_ID_NOT_EXISTS -1`.
  * `TEMPLATE_ID_ALREADY_EXISTS -2`.
  * `TEMPLATE_ID_EMPTY -3`.

### Alterado

* A IOD (distância interocular) mínima interna foi reduzida de `30px` a `20px`.

## \[6.15.0]

### Adicionado

* Novo `SelphIDIdentifier::RemoveWithTemplateID()`.
* Novo endpoint `identify/removeid/{galleryId}/{templateId}`.
* Novo `FacialLivenessDiagnostic::NoneBecauseEyesOccluded`.
* Novos serviços rest-api de C++.
  * `selphid-sdk-rest-api:facial`. Com suporte biométrico, 1:1 e 1:N.
  * `selphid-sdk-rest-api:liveness`. Com suporte de teste de vida.

### Aprimorado

* O motor de teste de vida melhora o suporte para imagens de baixa qualidade e oclusões de boca/olhos.
* As galerias 1:N não aceitam identificadores de template duplicados.

### Corrigido

* Problema ao extrair o padrão biométrico de documentos com múltiplos rostos.
* Recorte do TemplateRaw ao utilizar imagens tokenizadas com `ExtractFacialWithRawTemplate()`.

## \[6.14.2]

### Adicionado

* Suporte para licenciamento por endereço MAC.

### Corrigido

* `selphid-license-activator` não mostra o log de licenciamento.

## \[6.14.1]

### Corrigido

* Problema no binding de Java, que provocava um segmentation fault em ambientes multithread com cargas elevadas.
* Evita-se a criação de uma pasta de logs vazia em `selphid-eval-performance` e outras ferramentas.
* `GetValidTimeStamp()` rejeita os tokens com datas futuras.

### Aprimorado

* A documentação do exemplo do serviço API de Java foi renovada.
* A configuração do exemplo do serviço API de Java foi ampliada.

## \[6.14.0]

### Aprimorado

* Motor de extração facial atualizado, mais preciso ao extrair padrões biométricos de imagens de baixa qualidade.
* Motor de teste de vida passivo atualizado, mais preciso em casos de FMAD (face manipulator attack detection).

### Adicionado

* Novo exemplo de programação em C++ em `/examples/cpp`.
* Documentação da API de C++ em `/doc/api/cpp`.

## \[6.13.1]

### Adicionado

* Suporte para metadados de orientação EXIF.
* Novo Endpoint de API-Rest `/extract/template/image` para extrair a imagem interna bruta do template.

### Alterado

* O logger utiliza o formato de 24 horas.
* As licenças offline removem as mensagens de log de rede.

## \[6.13.0]

### Adicionado

* Log completo para a validação da licença.

### Aprimorado

* Motor de teste de vida atualizado para a última versão, que melhora a precisão de detecção.

## \[6.12.1]

### Adicionado

* `FACEPHI_SELPHID_FACIALLIVENESS_DEPTH=full` para ativar o detector FMAD (*Detector de Ataque de Manipulação Facial*) no motor de teste de vida.

## \[6.12.0]

### Adicionado

* `FACEPHI_SELPHID_GALLERY_REMOVE_METHOD=noerase` para evitar a eliminação de padrões nas galerias. Eles são marcados como inválidos, mantendo o tamanho da galeria e a posição do restante dos padrões.

### Aprimorado

* Motor de teste de vida atualizado.
* Pré-filtragem IAD (Injection Attack Detection) aprimorada, tornando-a mais estável diante de imagens com altas taxas de compressão.

## \[6.11.1]

### Adicionado

* Variável de configuração `FACEPHI_SELPHID_FACIALLIVENESS_IAD=disable` para desabilitar as verificações IAD (Injection Attack Detection) do teste de vida.

### Corrigido

-`selphid-license-server` tolerante a falhas em casos de dupla ativação (ativações offline).

## \[6.11.0]

### Aprimorado

* Novo motor de teste de vida passivo, que inclui a detecção de novos casos de suplantação (spoofing).
* Extrator de padrões faciais com imagens de baixa resolução.

### Corrigido

* Erratas no membro `options` do serviço Rest API de C++:
  * `elapsedAllowedSeconds` (antes `ellapsedAllowedSeconds`).
  * `minSimilarity` (antes `minSimilariry`).

### Adicionado

* Novo endpoint `/tokeninfo` no serviço rest de C++, para obter o tipo de uma imagem ou token.

## \[6.10.2]

### Corrigido

* Problema de memória no exemplo de programação de Java.
* Problema de estouro de índice em `RemoveWithGalleryIndex()`.
* Problema do motor de teste de vida ao extrair a ROI.

## \[6.10.1]

### Aprimorado

* Melhorias de desempenho no extrator facial e no motor de teste de vida.

### Corrigido

* Vulnerabilidades no servidor de licenças flutuantes.
* Problema em `options:authThreshold` do serviço Rest-API.

## \[6.10.0]

### Adicionado

* Suporte para servidor de licenças local de alta disponibilidade.

### Aprimorado

* Nova versão do motor de teste de vida, com melhorias no detector de olhos fechados.

## \[6.9.0]

### Aprimorado

* Nova versão do motor extrator facial, com melhorias na precisão, na detecção de oclusões e no desempenho.
* Nova versão do motor de teste de vida, com melhorias no detector de olhos fechados, nas oclusões de boca e no desempenho.

### Alterado

* Unificam-se os intervalos das constantes de limiar para `[0, 100]`.
* Variável de ambiente `FACEPHI_SELPHID_FACIALAUTHENTICATION_THRESHOLD` no intervalo `[0, 100]`. Valor padrão `65`.
* Variável de ambiente `FACEPHI_SELPHID_FACIALLIVENESS_THRESHOLD` no intervalo `[0, 100]`. Valor padrão `50`.

## \[6.8.3]

### Adicionado

* Métricas do contador de licenças.

### Aprimorado

* Endpoint `/health` nos exemplos de programação de Java/.NET.

## \[6.8.2]

### Adicionado

* O serviço Rest-Api aceita um arquivo `config.json` externo com os detalhes de inicialização do servidor web.
* O serviço Rest-Api aceita um caminho de usuário para `USAGE_PATH` e `DEBUG_PATH`.

### Aprimorado

* `SelphIDFacialAuthenticationResult::GetSimilarity()` não satura no extremo 1.0.
* O TemplateRaw facial reduz as falhas de extração de padrões.

### Corrigido

* O serviço rest api de C++ limita a 4 o número de casas decimais nos JSON de resposta.

## \[6.8.1]

### Corrigido

* Endpoint `/health` do serviço.

## \[6.8.0]

### Atualização

* Motor de teste de vida atualizado para a última versão.

### Adicionado

* Novo TemplateRaw aprimorado para otimizar as extrações e as buscas em galerias.
* `SelphIDFacialExtractionResult::GetUpdatedTemplateRaw()` para saber se o templateRaw foi atualizado.
* `FacialExtractionResult::updatedTemplateRaw` nos endpoints do serviço Rest-Api.

## \[6.7.1]

### Adicionado

* `queueDuration` nos endpoints do serviço para saber quanto tempo uma solicitação http permanece em fila à espera de resolução.

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

### Corrigido

* Problemas menores no gerenciamento de licenças.

## \[6.7.0]

### Atualização

* Motor de teste de vida atualizado para a última versão.
* O Docker do serviço Rest-Api passa de Ubuntu 18.04 LTS para 22.04 LTS.

### Corrigido

* Problema na licença com `logging:false`.
* Problema em `SelphIDIdentifier::EnrollWithFacialTemplate()` com templates inválidos.
* Problema de desempenho nos endpoints do serviço Rest-Api:
  * `/identify/enroll/{galleryId}/{templateId}`.
  * `/identify/enroll/template/{galleryId}/{templateId}`.

### Atualizado

* Eventos de FacePhi Identity Platform.
  * `METADATA` por `FACIAL_CHARACTERISTICS`.
  * `STEP_CHANGE` para a última versão.

## \[6.6.0]

### Adicionado

* Pré-filtragem IAD (Injection Attack Detection) para o motor de teste de vida. Detecta Bands to edges e Scaled nearest neighbor.
* Algumas melhorias na biblioteca base64.
* Foi adicionado `SelphIDFacialExtractionResult::Set/GetValidTimeStamp()`.
* Foi adicionado `SelphIDDocumentResult::Set/GetValidTimeStamp()`.
* Nova propriedade `sdkDuration` nas respostas dos endpoints do serviço.
* Nova propriedade `validTimeStamp` nas respostas dos endpoints do serviço.
* `longDetail` en `options` dos endpoints do serviço. Se for `true`, o resultado do endpoint incluirá informações adicionais. Se for omitido, o valor padrão será `false`.
* Se `options:longDetail==true`, serão adicionados `extractionQuery` e `extractionTarget` (ambos do tipo `FacialExtractionResult`) a `FacialAuthenticationResult` nos endpoints de autenticação do serviço.
  * `/api/v1/selphid/authenticate-facial/images`.
  * `/api/v1/selphid/authenticate-facial/image/template`.
  * `/api/v1/selphid/authenticate-facial/templates`.

## \[6.5.0]

### Adicionado

* Diagnóstico `NoneBecauseEyesClosed` do motor de teste de vida.
* Diagnóstico `NoneBecauseFaceOccluded` do motor de teste de vida.
* Resultado de extração `FacialMask` do motor facial.
* Resultado de extração `ImageQuality` do motor facial.
* Resultado de extração `FacialPose` do motor facial.
* Novo parâmetro de configuração `FACEPHI_SELPHID_FACIALAUTHENTICATION_THRESHOLD`.
* Novo método `SetCustomFacialAuthenticationThreshold()` en `SelphIDVerifierOptions`.
* Parâmetro JSON `"options":"authThreshold"` nos endpoints do serviço.
* O endpoint `/version` do serviço retorna um objeto JSON em vez de uma string de texto.

## \[6.4.3]

### Adicionado

* Variável de ambiente `FACEPHI_SELPHID_FACIALEXTRACTOR_NUM_THREADS` para configurar o uso de threads no motor extrator.

### Atualização

* Melhoria do motor facial com suporte multithread.

## \[6.4.2]

### Adicionado

* Variável de ambiente `FACEPHI_SELPHID_FACIALLIVENESS_NUM_THREADS` para configurar o uso de threads no motor de teste de vida.

### Atualização

* Melhoria do motor de teste de vida com suporte multithread.

## \[6.4.1]

### Corrigido

* Problemas no motor de teste de vida relacionados com `NoneBecauseBadQuality`.

## \[6.4.0]

### Adicionado

* Assinatura da DLL de .NET.
* Arquivo de configuração do serviço Rest-Api (porta, threads, timeout, keep alive).

### Corrigido

* Vulnerabilidades nos logs.

### Excluído

* Opções de linha de comando do serviço Rest-Api `-threads`, `-timeout`, `-kAlive`.

### Alterado

* Motor de teste de vida atualizado.
* Motor extrator facial atualizado.

## \[6.3.0]

### Adicionado

* Modo de licença `shared-offline`
* Novos estimadores do extrator `age` e `gender`
* Novas flags de compilação no serviço `-threads`, `-timeout` e `-kAlive`

### Alterado

* Motor de teste de vida atualizado.
* Motor extrator facial atualizado.

## \[6.2.0]

### Adicionado

* Modo de licença `shared-online`.
* Modo de licença `server-online`.
* Modo de licença `on-premise`.

### Alterado

* Motor de teste de vida atualizado.
* Motor extrator facial atualizado.
* Motor 1:n atualizado.
* A envvar é recuperada `FACEPHI_SELPHID_FACIAL_LICPATH_KEY` e o arquivo `license.lic`.

### Excluído

* Envvar `FACEPHI_SELPHID_LICENSE_KEY` para fornecer o código de licença.

## \[6.1.0]

### Adicionado

* Ativação offline de licença node-locked.

### Alterado

* Melhoria da extração do templateRaw facial
* Melhoria do desempenho 1:n.

## \[6.0.0]

### Adicionado

* Nova envvar `FACEPHI_SELPHID_LICENSE_KEY` para fornecer o código de licença.

### Alterado

* Motor de autenticação.

### Excluído

* Envvar `FACEPHI_SELPHID_FACIAL_LICPATH_KEY` porque `license.lic` já não se utiliza.
