For the complete documentation index, see llms.txt. This page is also available as Markdown.

Instalação e implantação do serviço

Aviso de compatibilidade

IMPORTANTE - MUDANÇA INCOMPATÍVEL (BREAKING CHANGE) (2.0.0)

A partir da Versão 2.0.0, o contrato de payload REST para os endpoints de operações de Impressão Digital foi alterado e não é compatível com clientes 1.x.x. Planeje a migração do cliente antes de atualizar as imagens do serviço.

As rotas públicas herdadas POST /api/v1/finger/create-template e POST /api/v1/finger/verify já não estão expostas na Versão 2.0.0.

Pré-requisitos

Antes de instalar Facephi Finger Service, certifique-se de que:

  • Docker está instalado e em execução

  • Você possui um arquivo de Licença Facephi válido

  • Você tem acesso ao registro Docker da Facephi

Acesso ao registro Docker

docker login facephicorp.jfrog.io

Use as credenciais fornecidas pela Facephi.

Requisitos de conectividade de Licença

Ativação online

A ativação online está disponível apenas em ambientes conectados.

A imagem de implantação já inclui os componentes de processamento de Impressão Digital necessários por meio do empacotamento Conan, portanto não é necessário montar manualmente arquivos adicionais em tempo de execução.

  • O servidor deve ter conectividade com a Internet.

  • É necessário acesso HTTPS de saída aos endpoints de Licença atribuídos à implantação.

Configuração do firewall

Se o tráfego de saída estiver restrito, solicite à Facephi a lista de acesso exata para sua implantação antes da instalação.

Instalação

Baixar a imagem Docker

Preparar diretórios

Colocar o arquivo de Licença

Copie seu arquivo de Licença para:

O caminho padrão da Licença do serviço é /app/license/license.lic.

Implantação com Docker Compose

Crie um arquivo docker-compose.yml:

Inicie o serviço:

Verificar a implantação

Arquivo de configuração

Caminho padrão do arquivo de configuração dentro do contêiner:

  • /app/config/config.json

Exemplo:

Variáveis de ambiente

Variáveis de tempo de execução do serviço

Prefixo: FACEPHI_FINGER_REST_

Variáveis comuns:

  • FACEPHI_FINGER_REST_PORT

  • FACEPHI_FINGER_REST_NUMBER_OF_THREADS

  • FACEPHI_FINGER_REST_CONNECTION_TIMEOUT

  • FACEPHI_FINGER_REST_KEEP_ALIVE_REQUEST_NUMBER

  • FACEPHI_FINGER_REST_CLIENT_MAX_BODY_SIZE

  • FACEPHI_FINGER_REST_LOGGER_PATH

  • FACEPHI_FINGER_REST_LOGGER_LEVEL

  • FACEPHI_FINGER_REST_LOGGER_ROTATION

  • FACEPHI_FINGER_REST_LOGGER_MAX_FILES

  • FACEPHI_FINGER_REST_AUTH_ENABLED

  • FACEPHI_FINGER_REST_AUTH_JWT_SECRET

  • FACEPHI_FINGER_REST_AUTH_ACCEPT_AUTHORIZATION_HEADER

  • FACEPHI_FINGER_REST_AUTH_ACCEPT_API_KEY_HEADER

  • FACEPHI_FINGER_REST_AUTH_API_KEY_HEADER_NAME

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

Os endpoints públicos permanecem acessíveis sem autenticação:

  • GET /api/v1/finger/health

  • GET /api/v1/finger/version

  • Solicitações de preflight OPTIONS

Os endpoints protegidos exigem um JWT válido, por exemplo por meio de Authorization: Bearer <jwt> ou do cabeçalho de API Key configurado.

Variáveis de processamento de Impressão Digital

Prefixo: FACEPHI_FINGER_ENGINE_

Variáveis:

  • FACEPHI_FINGER_ENGINE_URL

  • FACEPHI_FINGER_ENGINE_CONN_TIMEOUT

  • FACEPHI_FINGER_ENGINE_REQ_TIMEOUT

  • FACEPHI_FINGER_ENGINE_MAX_RETRIES

  • FACEPHI_FINGER_ENGINE_RETRY_DELAY

  • FACEPHI_FINGER_ENGINE_VERIFY_SSL

  • FACEPHI_FINGER_ENGINE_VERBOSE

  • FACEPHI_FINGER_ENGINE_POOL_SIZE

  • FACEPHI_FINGER_ENGINE_ROLE

  • FACEPHI_FINGER_ENGINE_SERVICES

  • FACEPHI_FINGER_ENGINE_MASTER

Implantação orientada a cluster

Para uma topologia multinodo:

  • Use um nó master (FACEPHI_FINGER_ENGINE_ROLE=master) com exposição da API pública.

  • Use nós worker (FACEPHI_FINGER_ENGINE_ROLE=worker) para escalar a carga de processamento.

  • Configure todos os nós para apontarem para o mesmo endereço FACEPHI_FINGER_ENGINE_MASTER.

No papel de worker, apenas os endpoints de gerenciamento são expostos.

Os endpoints de gerenciamento incluem health, version, metrics e config.

Contadores de uso

O endpoint GET /api/v1/finger/metrics informa os contadores de uso das operações públicas de Impressão Digital concluídas com sucesso.

Para habilitar os contadores:

  • Adicione a chave de metadados ActivateUsageCounters=true na Licença usada pelo serviço.

  • Defina os atributos de medição FingerExtractCounter e FingerAuthenticateCounter.

A resposta inclui:

  • usageCountersEnabled

  • extractCount

  • authenticateCount

  • totalCount

totalCount é sempre calculado como extractCount + authenticateCount.

Atualizações dinâmicas de configuração

Use o endpoint de configuração para aplicar atualizações em tempo de execução:

Observações importantes:

  • As atualizações em tempo de execução ficam em memória e não são persistidas automaticamente em config.json.

  • Para preservar as alterações após uma reinicialização, atualize o arquivo montado em /app/config/config.json.

  • A configuração de autenticação JWT são ajustes de inicialização; atualize config.json ou as variáveis de ambiente e reinicie o serviço.

Solução de problemas

O serviço não inicia

  • Valide que /app/license/license.lic existe no contêiner.

  • Verifique os logs do contêiner:

O endpoint de saúde apresenta erros

  • Verifique a validade da Licença.

  • Verifique a conectividade e o tempo de inicialização dos componentes de processamento de Impressão Digital.

  • Verifique os valores configurados de papel e serviços do engine.

Os endpoints de Impressão Digital não estão disponíveis

Se /extract o /authenticate não estiverem disponíveis, confirme o papel:

  • FACEPHI_FINGER_ENGINE_ROLE deve ser master.

Validação do endpoint de métricas

Se forem esperados contadores de uso, mas os valores permanecerem sem alterações:

  • Confirme que GET /api/v1/finger/metrics retorna usageCountersEnabled: true.

  • Confirme que os metadados da Licença incluem ActivateUsageCounters=true.

  • Confirme que os nomes de medição da Licença correspondem exatamente: FingerExtractCounter, FingerAuthenticateCounter.

Atualização

Revise sempre as notas de Versão antes de atualizar.

Atualizado