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

4.5.0

Nesta versão, foi adicionado suporte para bancos de dados PostgreSQL. Também foi adicionada autenticação JWT opcional, configurável a partir de config.json ou por meio de variáveis de ambiente FACEPHI_BACKEND1N_REST_*.

Não há mudanças de contrato nos endpoints. O suporte anterior ao MongoDB também não foi alterado. A decisão sobre qual tecnologia de BD o serviço usará será tomada na inicialização do serviço, a partir da string de conexão:

# Prefixos aceitos do MongoDB.
# mongodb://
# mongodb+srv://
export DATABASE_CONNECT_STRING=mongodb://user:pass@localhost:32902/?directConnection=true&serverSelectionTimeoutMS=5000

# Prefixos aceitos do PostgreSQL.
# postgres://
# postgresql://
export DATABASE_CONNECT_STRING=postgresql://user:pass@localhost:32903/db_backend

Sobre os bancos de dados

No caso do MongoDB, o próprio serviço criará um banco de dados denominado db-backend, se ainda não existir. Nela serão armazenadas duas coleções:

  • media para armazenar imagens.

  • patterns para armazenar padrões biométricos.

O caso do PostgreSQL difere ligeiramente. Um banco de dados com o nome db_backend deve ter sido criada previamente pelo administrador do sistema. O PostgreSQL dificulta a criação de bancos de dados a partir do próprio cliente. Um exemplo dos comandos prévios que o administrador deveria executar seria:

sudo -u postgres psql -c "CREATE ROLE backend1n WITH LOGIN PASSWORD 'backend1n';"
sudo -u postgres psql -c "CREATE DATABASE db_backend OWNER backend1n;"
sudo -u postgres psql -d db_backend -c "GRANT ALL ON SCHEMA public TO backend1n;"

Dentro da BD PostgreSQL, o serviço criará duas tabelas, assim como acontecia com MongoDB:

  • media para armazenar imagens.

  • patterns para armazenar padrões biométricos.

Importante: As strings de conexão devem incluir as informações de usuário/senha ou qualquer informação adicional que permita ao serviço acesso com permissões de leitura/escrita.

Adicionado

  • Autenticação JWT opcional, configurável a partir de config.json ou por meio de variáveis de ambiente FACEPHI_BACKEND1N_REST_*.

  • Suporte para bancos de dados PostgreSQL.

  • Cobertura de testes de integração para endpoints públicos e protegidos quando a autenticação JWT está habilitada.

  • Cobertura de testes de integração para os backends MongoDB e PostgreSQL.

Atualizado