GBDS
5.2.
5.2.0
Novos Recursos
[NF-001] afeta [API][GBDS][Migração GBS] Armazenamento de Template MinIO para verificação 1:1
Uso do armazenamento MinIO para persistir templates de pessoas e usá-los na verificação 1:1 se a conexão com HBase estiver off ou se a configuração estiver ativada para uso de armazenamento de template.
Armazenamento
Uso do armazenamento MinIO. Requer uma instância MinIO, desde single-node, single-drive até multi-node, multi-drive, de acordo com as necessidades do cliente.
Configurações
GBDS
Todas as configurações RDB:
gbds.templateStorage.enabled
AMBOS
false
Usar armazenamento de template na verificação
gbds.minio.active
AMBOS
false
Conectar no MinIO
gbds.minio.host
AMBOS
Nome do host MinIO
gbds.minio.port
AMBOS
Porta do MinIO
gbds.minio.username
AMBOS
Nome de usuário MiniIO
gbds.minio.password
AMBOS
Senha do MinIO
Migração GBDS
Em gbds-migration.properties:
gbds.templateStorage.activeOnly=falseMigrar apenas pessoas ativasgbds.templateStorage.peopleTemplates=trueMigrar template de pessoas.Se true, obter template de people no HBase.
Se false, obter templates da transação person no HBase.
Se a pessoa tiver biometric map na coluna enroll:biometricMap da tabela people, obter template de todas as transações que compõem o biometric map
Se a pessoa não tiver biometric map, obter templates da transação ativa, indicada por guids:transaction-guid
Comportamento
Configurações
Há duas flags de configuração: Template storage enabled e MinIO active.
Template storage enabled indica que o GBDS deve processar buscas de verificação através do armazenamento MinIO.
A flag MinIO active indica se a conexão com MinIO deve ser feita. Se false, mesmo que as buscas de verificação tentem usar o armazenamento, isso não será feito, resultando em Pessoa não encontrada.
Você pode estar conectado ao MinIO, mas usar apenas o HBase normalmente até uma falha no HBase. Se não estiver conectado ao MinIO, mesmo em falha do HBase, a busca de verificação não é possível. Se conectado, as pessoas são armazenadas no MiniIO no enroll/update.
Armazenamento no MinIO
Com MinIO ativo, em enroll/update/trusted, os templates da pessoa (templates que vão para a tabela HBase people) também são salvos no MinIO, em um bucket chamado “people”.
Se o bucket não existir, o GBDS irá criá-lo.
Templates armazenados no HBase não são alterados, sendo persistidos como de costume.
No fluxo de enroll/update/trusted, um erro no HBase não ativa o armazenamento de template para buscas de verificação.
No update, com template storage enabled true, a pessoa é verificada se existe usando o armazenamento MinIO, não a tabela HBase people.
Verificação
Quando a configuração de armazenamento de template está habilitada, o GBDS buscará o template da pessoa usando o armazenamento MinIO, que terá os mesmos templates armazenados na tabela HBase people após a migração. Se o armazenamento MinIO não tiver templates da pessoa, um erro Pessoa Não Encontrada é lançado.
Se a busca de verificação for solicitada usando chaves, o GBDS irá buscar o PGUID no RDB usando a consulta para cada chave fornecida:
select t.pguid from gbds.transaction_fields tf
inner join gbds.transactions t on tf.transaction_id =
where tf.field_type = 'KEY' and fkey = :key_id and tf.fvalue = :key_value
and ((t.enroll_status = 'ENROLLED' and t.active = 1) or t.enroll_status = 'EXCEPTION')
and t.transaction_type in ('ENROLL','UPDATE') Se nenhum PGUID for recuperado de qualquer chave, a busca retornará pessoa não encontrada.
Ao realizar buscas de verificação com template storage enabled false, o GBDS buscará templates de pessoas usando a última transação ativa da pessoa ou biometric map, como de costume.
Para ativar o uso do armazenamento de template, você pode ativá-lo nas configurações RDB ou ele será automaticamente ativado em qualquer falha de conexão com HBase, após 5 tentativas de erro, em qualquer etapa do fluxo de busca de verificação.
Obs: A ação de ativar o armazenamento de template após 5 erros do HBase é temporária enquanto a API estiver up apenas, não reflete nas configurações RDB.
Estrutura
Templates de pessoas são armazenados no bucket MiniIO “people”, usando o formato:
XX/YY/<PGUID>.zip
XX são os dois primeiros caracteres do PGUID
YY são os dois próximos caracteres do PGUID
Estrutura do ZIP:
Todos os templates como arquivo <index>.tpt
Metadata é metadata.json, contendo:
pguid, stringtguid, stringactive, booleanoenrollStatus, enumbiometricMap, mapa de tguid, lista de inteiro
Migração
A Migração GBDS tem um novo modo para migrar pessoas para o MinIO: templateStoragePeople
Range pode ser aplicado na CLI:
--range <start>:<end>Start é obrigatório, pode ser um caractere ou mais
End é opcional
A migração irá escanear a tabela HBase people e armazenar templates no bucket “people”.
Se o bucket não existir, ele é criado.
Endpoints
Nenhum endpoint foi alterado.
Melhorias
[IP-001] afeta [Migração GBDS] Reextração com lista de tguids e pguids
A reextração agora pode ser feita com lista de tguids e pguids.
Configurações
gbds.reextract.tguidsFile = <caminho do arquivo de tguids>gbds.reextract.pguidsFile = <caminho do arquivo de pguids>
Formato do arquivo:
Um ou mais guid por linha
Separados por vírgula se mais de um guid na mesma linha.
Se qualquer uma dessas listas for fornecida, nenhuma verificação na flag hbase é feita, apenas arquivo SQLite para pular todo o range.
Portanto recomendamos resetar o arquivo SQLite com as listas de tguids/pguids.
[IP-003] afeta [GBDS][API] Scripts de start/stop atualizados
Scripts da API e GBDS atualizados de acordo com os scripts usados pelo suporte
Na API, haproxy está desabilitado por padrão
Changelog do Matcher
Corrigido vazamento de memória ao receber template de face não suportado
Reduzir duplicação de metadata de template (pguid, tguid e labels)
Imprimir versão no CLI do serviço e nos logs
Definir alocações de memória não suportadas para 0 bytes como padrão
[IP-004] afeta [API] Trust, Lights out
Definir o status lights out como erro se o Biobase estiver indisponível ou se o Biobase retornar resultados biográficos em timeout
Dessa forma, o operador admin pode reprocessar lights out quando o Biobase estiver disponível novamente via atualização no RDB, alterando a coluna lights_out_status em gbds.exception_group tabela
[IP-005] afeta [API] Trust
Melhor registro de operação na tabela RDB gbds.operation_log ao criar exception e exception group
Em cada um, registrar target e tguid, para melhor rastreamento da criação de inconformidade
[IP-006] afeta [API][GBDS] Versões da lib multibio e matcher multibio
Versões da lib multibio e matcher multibio adicionadas a:
API
GET /gbds/v2/versionendpointdados
api
versão
build
apiId
apiType
libMultibio: novo, obtido da lib multibio embutida no jar executável da API
searchEngine
versão
build
libMultibio: novo, obtido da lib multibio embutida no jar nativo do GBDS
matcherMultibio: novo, obtido do log do processo otimizado do serviço ginger matcher, rodando no nó do cluster GBDS
Obs: Se qualquer version/libMultibio/matcherMultibio diferir em qualquer nó do GBDS monitorado pela versão que a API lista, a API lançará um erro indicando versões divergentes nos nós do cluster GBDS
GBDS
GET /monitor/versionendpointdados
versão
build
libMultibio: novo, obtido da lib multibio embutida no jar nativo
matcherMultibio: novo, obtido do log do processo otimizado do serviço ginger matcher em qualquer matcher em execução
Exemplo de retorno de versão da API:
{
"data": {
"api": {
"version": "5.2.0-SNAPSHOT",
"build": "5000",
"apiId": "api1",
"apiType": "LEADER",
"libMultibio": "0.3.6"
},
"searchEngine": {
"version": "5.2.0-SNAPSHOT",
"build": "5000",
"libMultibio": "0.3.6",
"matcherMultibio": "0.3.6"
}
}
}Exemplo de status do monitor GBDS:
{
"data": {
"version": "5.2.0-SNAPSHOT",
"build": "5000",
"libMultibio": "0.3.6",
"matcherMultibio": "0.3.6"
}
}[IP-007] afeta [API] Análise de Qualidade
Adicionado status de resposta BoB e tguid no tratamento de análise de qualidade.
Em qualquer tratamento de análise de qualidade, status BoB e tguid foram adicionados:
Ex:
Sem edição
{
"data": {
"bobTguid": "57B34B4F-58A2-414E-B385-A5503BB782B4",
"bobStatus": "ENQUEUED"
}
}Com edição:
{
"data": {
"newTransactionGUID" : "08CBDBBB-1C4C-490D-A71B-8FBC2A0FC0E3",
"bobTguid": "57B34B4F-58A2-414E-B385-A5503BB782B4",
"bobStatus": "ENQUEUED"
}
}[IP-008] afeta [API] Trust: flag use on BoB
Adicionada flag useOnBoB em enroll/update/trusted meta seção para sinalizar o uso da transação no tratamento forçado BoB e de manutenção de trust
Ao realizar o tratamento Trust enroll, se todas as transações sendo usadas estiverem com useOnBoB = false, usar os biométricos da última transação.
Ao realizar forced BoB trusted update, se as transações de consulta estiverem com useOnBoB = false, não usar nenhum biométrico da transação de consulta de update, usar todos da transação de referência.
Exemplo de payload de enroll/update/trusted:
{
"meta" : {
...
"useOnBoB" : true,
...
},
"data": {
...
}
}Correções de Bugs
[BF-001] afeta [GBDSClient]
Corrigido get final notification por URL por pguid no GBDS Client
[BF-002] afeta [API] Trust
Permitir tratamentos enroll keep sem chaves. Todas as chaves informadas são validadas, mas não é mais exigida a presença de pelo menos uma.
[BF-003] afeta [API] Excluir pessoa permanentemente
Corrigida exclusão física de uma pessoa com exception ou qualidade pendente.
Para que isso fosse corrigido:
Excluir tguids do HBase (histórico) e do RDB (tabela transactions)
Excluir da tabela operation log e da tabela notifications do RDB somente se houver tguids
Excluir exceptions/candidates/decisions e grupos;
[BF-004] afeta [Migração GBDS]
Corrigida simplificação de template de transação na pessoa. A simplificação agora será feita:
se tguid for o tguid atual da pessoa
se tguid for o biometric-tguid do tguid atual da pessoa (cobrindo trusted updates sem biométrico que apontam para transação anterior via coluna biometric-tguid)
[BF-005] afeta [API] Enroll/update com controle de sequência de quatro dedos
Corrigido enroll/update com controle de sequência índices 940, 941 (controle de sequência de quatro dedos) com tipo de template ginger GRIAULE_2025.
Internamente, a API não extrairá imagens de controle de sequência usando o extrator antigo e irá comparar templates em libmultibio com índices 0 a 9, não 900 a 909.
[BF-006] afeta [API][GBDS] Simplificação de template Ginger
Corrigida simplificação de template apenas para o tipo de template ginger GRIAULE_2024 ou anterior; não tentar simplificar templates ginger em GRIAULE_2025 ou GRIAULE_2026
[BF-007] afeta [Migração GBDS] Performance e correções para migração
Modo --anomalies do HBase:
Adicionado índice ausente para exception group e timestamp na tabela exceptions
Pular se não houver aguid, data de anomalia ou qualquer outro erro
Se a pessoa de referência não existir, inseri-la, com proteção caso ocorra qualquer erro ao inseri-la
Se a transação entrant não existir, inseri-la, com proteção caso ocorra qualquer erro ao inseri-la
Criar/atualizar organizações de exception group
Processamento paralelo com confs:
gbds.anomalies.threadPoolSize, padrão 16gbds.anomalies.threadPoolQueueSize, padrão 100
Corrigida migração de group target
Adicionadas configurações para limiar de no hit para enroll/update em finger/face:
gbds.csi.enroll.finger.nohit.threshold, padrão40gbds.csi.enroll.face.nohit.threshold, padrão50gbds.csi.update.finger.nohit.threshold, padrão40gbds.csi.update.face.nohit.threshold, padrão50
Um biométrico de dedo/face com score abaixo do limiar de enroll ou update (configuração atual de limiar) mas acima dessas novas configurações, terá decisão
UNCERTAIN, abaixo dessas novas configurações, seráNO_HITCorrigido tguid de referência padrão do RDB e/ou HBase para geração de candidato de exception NO HIT não encontrado
Modo --anomalies do RDB:
Lista com desempenho otimizado do RDB
Mesmas correções e melhorias de desempenho acima
Modo --processCSI
Lista com desempenho otimizado do RDB
Processamento paralelo com confs:
gbds.processCSI.threadPoolSize, padrão 16gbds.processCSI.threadPoolQueueSize, padrão 100
Modo --refused
Lista com desempenho otimizado do RDB
Processamento paralelo com confs:
gbds.refused.threadPoolSize, padrão 16gbds.refused.threadPoolQueueSize, padrão 100
[BF-008] afeta [API] Trust
Corrigido cache de organização a cada minuto na API para Trust
[BF-009] afeta [Migração GBDS] Reextrator GBDS
Corrigido: Verificar simplificação de template nos casos:
Transação é a última (atual) transação da pessoa com biométrico (que foi configurada para ser reextraída por modalidade);
A transação é o
biometric-tguidtransaction para a pessoa (apontada pela última (atual) transação da pessoa com a colunabiometric-tguid);NOVA Transação não é a
biometric-tguidtransaction para a pessoa, mas é a última transação da pessoa com biométrico (configurada para ser reextraída por modalidade)
[BF-010] afeta [API] Trust
Corrigido Trust Best of Biometrics trusted update; qualidade de face agora é usada para obter a melhor face, não apenas a mais recente, se usando template de face GRIAULE_2025.
Obs: Template de face GRIAULE_2024 ou anterior não possui informação de qualidade, então o Trust Best of Biometrics trusted update continuará a usar a face mais recente.
[BF-011] afeta [API] Liveness
Corrigida heurística de liveness para aceitar imagens JPEG2000
[BF-014] afeta [API]
Corrigida exclusão permanente (física) de uma pessoa com apenas uma transação de enroll pendente
[BF-015] afeta [API] Biobase
Corrigido envio de related external ids para o Biobase
Para isso:
Modelo Biobase:
Lista de endpoints biographics: POST /biographicBase/biographics
Adicionado type ao RequestKey na listagem de biographics, para diferenciar keys, external ids e related external ids
RequestKey:
keyvaluetype: enumTGUIDPGUIDKEYEXTERNAL_IDRELATED_EXTERNAL_ID
atualizar para 1.2.0
Ex:
{
"ids" : [
{
"id" : "01",
"keys" : [
{ "key": "cpf", "value": "17081647669-182", "type" : "KEY" },
{ "key": "rg", "value": "rg-182", "type" : "KEY" },
{ "key": "tguid", "value": "0C2A05E2-3945-459A-9393-FED297CD1D78", "type" : "TGUID" },
{ "key": "pguid", "value": "A0C3B7D6-2BC4-4A63-83A8-0A349BCA7E48", "type" : "PGUID" },
{ "key": "id01", "value": "key01", "type" : "EXTERNAL_ID" },
{ "key": "id02", "value": "key02", "type" : "RELATED_EXTERNAL_ID" }
]
}
]
}Obs: novo campo type não afeta servidores Biobase atuais, sendo retrocompatível.
API:
atualizar biobase-model-1.2.0
Enviar ao serviço Biobase related external ids em get/list transaction, get/list people, lights out, lista de quality analysis (como request key type
RELATED_EXTERNAL_ID)Enviar outros campos, como tguid/pguid, keys e external ids com o respectivo request key type, como descrito acima
[BF-016] afeta [API] Trust
Corrigido MISMATCH decisão de fusão de exception como null na tabela RDB gbds.exceptions
[BF-017] afeta [API][GBDS] Trust / Refused / Histórico anterior
Corrigido histórico anterior em alguns cenários:
Manter histórico anterior em updates
No reenvio refusado, se refused for um update, manter histórico anterior da transação atual da pessoa
No reenvio refusado, se refused for um enroll, fazer histórico anterior com tguid e pguid
Obter todas as transações usando tguid e pguid para histórico anterior (tratamentos Trust e reenvio de refusals)
[BF-022] afeta [Migração GBDS] Reextrator GBDS
Corrigido marcar transação como error em qualquer erro de reextração
Definir mensagem de exceção de máximo de tentativas melhor para extração, extração de qualidade e reextração
Reiniciar extratores e mantê-los inativos em erro enquanto reiniciando
[BF-023] afeta [API] Índices ausentes no RDB
Fix: adicionados índices ausentes ao clear-rdb que já estavam no upgrade-rdb
[BF-024] afeta [API] Validação da chave Titulo
Corrigida validação da chave titulo; permitir apenas chave titulo com 12 caracteres numéricos, nem mais, nem menos, além da validação de checksum atual
[BF-026] afeta [API} Trust
Corrigida condição de corrida no tratamento biométrico Trust onde dois usuários poderiam processar biométricos diferentes para a mesma exception e isso tornaria o Trust incapaz de analisar corretamente se a inconformidade deveria mudar seu target de BIOMETRIC para BIOGRAPHIC, MISMATCH ou INCONCLUSIVE
Para isso, a API irá obter a exception novamente do banco de dados após cada tratamento, para ter todas as informações atualizadas para análise.
[BF-027] afeta [Migração GBDS]
Scripts de migração atualizados, para permitir Migração GBDS de exceptions/quality durante a execução do GBDS 4.7.
Scripts até:
upgrade-rdb-4.x-to-5.1-part1-before-4-stops.sqlupgrade-rdb-4.x-to-5.1-part2-after-4-stops.sqlupgrade-rdb-4.x-to-5.1-part3-after-5-starts.sql
Antes disso, a migração costumava renomear algumas colunas:
gbds.transactions, colunatypeparatransaction_typegbds.transaction_fields, colunatypeparafield_typegbds.fields, colunatypeparafield_typegbds.exceptions, colunastatusparaexception_status
Causando erro na execução do GBDS 4.7 se a migração for feita juntamente com ele.
Nova parte do script 1 (upgrade-rdb-4.x-to-5.1-part1-before-4-stops.sql) apenas cria essas novas colunas, mantendo as antigas, e define seus valores iguais aos antigos. Isso permite que GBDS 4.7 e a migração rodem simultaneamente.
Colunas criadas:
gbds.transactions, colunatransaction_typegbds.transaction_fields, colunafield_typegbds.fields, colunafield_typegbds.exceptions, colunaexception_status
Na migração delta, a parte 2 do script (upgrade-rdb-4.x-to-5.1-part2-after-4-stops.sql) atualiza essas novas colunas com a diferença do GBDS 4.7.
Após o início do GBDS 5.1, a parte 3 do script (upgrade-rdb-4.x-to-5.1-part3-after-5-starts.sql) remove as colunas antigas.
Colunas removidas:
gbds.transactions, colunatypegbds.transaction_fields, colunatypegbds.fields, colunatypegbds.exceptions, colunastatus
5.1.
5.1.12
Melhorias
Extractor Ginger atualizado para 2.3.0
Correções de Bugs
Corrigido bug onde exceptions de update geradas por dois perfis com a mesma face e dedos diferentes não podiam ser tratadas
Corrigido bug onde transações recusadas estavam sendo enviadas como updates em vez de enrolls após tratamentos de rejeição
Corrigido bug colateral de updates com a mesma face e dedos diferentes (5.1.12) onde não era possível gerar inconformidades de targets biométricos.
de decisão de fusão "UNCERTAIN" para target "BIOMETRIC", tanto enroll quanto update
de decisão de fusão "MISMATCH", tratado como "NO_HIT", para target "BIOMETRIC", apenas update, quando uma modalidade é "HIT" e a outra é "NO_HIT" sem biométrico uncertain
5.1.11
Novos Recursos
Um novo mecanismo de validação foi introduzido para a imagem biométrica usada na busca Liveness para garantir que nenhum dado foi alterado durante a transmissão. Esse mecanismo se aplica exclusivamente às requisições feitas ao endpoint POST /v2/people/searches com o tipo de busca definido como LIVENESS.
Payloads (especificamente o conteúdo das imagens biométricas) na versão 2 agora são validados usando uma assinatura HMAC criptográfica.
Melhorias
Suporte para novos extratores
Simplificações de templates de Face não são mais feitas em transactions/people
Templates de Finger não são mais feitos em people
Controle de qualidade e controle de sequência são feitos usando comparação multibio
Performance de consulta para list groups foi melhorada
Correções de Bugs
Corrigido bug onde transações de update recebidas por um update causado pelo enroll de uma pessoa com chaves não deduplicadas estavam sendo enviadas como enrolls ao invés de updates
5.1.10
Novos Recursos
Agora group pending pode ser configurado para ir para análise ou ser tratado diretamente
TRUE: tratamento de grupo pode ir para status pending, de acordo com permissões do usuário sobre todas as organizações do grupoFALSE: tratamento de grupo é sempre final, independentemente das permissões do usuário sobre todas as organizações do grupo
Melhorias
Biblioteca nativa Facepad atualizada para 2.3.1, que é usada na análise de liveness
Atualização do Matcher
Nova análise de qualidade de face para UPDATE, que agora pode retornar face UNCERTAIN
Correções de Bugs
Corrigido bug onde o resultado da busca mudava dependendo do número de candidatos
Corrigido bug onde não era possível excluir uma pessoa quando esta pessoa foi reativada usando um trusted update
5.1.9
Correções de Bugs
Corrigido bug onde exceptions de UPDATE tratadas mantendo apenas sua referência estavam se perdendo
Agora listar pessoas com "include anomalies = false" retorna corretamente apenas pessoas não relacionadas a uma anomalia
5.1.8
Novos Recursos
Decisão de fusão (1:1 e 1:N) por biometry e mismatch
Se micro serviço e libmultibio retornarem MISMATCH, exception e group serão automaticamente BIOMETRIC_MISMATCH
Se nenhuma correspondência for retornada pela fusão, API e Trust assumirãO NO HIT
Correções de Bugs
Agora o status de enroll é definido corretamente para FAILED em transações entrant quando ocorre um tratamento Trust para update
5.1.7
Correções de Bugs
[TRUST] Corrigido bug onde recusados enrolls estavam sendo enviados como updates
Corrigido bug onde listar pessoas com filtro endDate retornaria erro 500
Agora se a configuração para uso de BoB (Best of Biometrics) em um update estiver ausente, ela é definida como true automaticamente
5.1.6
Melhorias
Agora "get group" retorna uma flag indicando se o grupo é tratável pelo usuário (o usuário deve ter as permissões apropriadas)
Priorização agora está disponível apenas para grupos em analysis, pending, refused criados ou prontos para envio
Correções de Bugs
Corrigido bug onde mudanças de status REFUSED não estavam validando as permissões do usuário
5.1.5
Correções de Bugs
Corrigido um bug onde transações de atualização em perfis criados há muito tempo estavam demorando muito
Corrigido um bug onde o Trust estava usando biometria de transações rejeitadas em tratamentos Enroll Unify
Verificar e atualizar buscas 1:1 agora usa corretamente ALL_INDEXES e SAME_INDEX durante sua execução
4.7.
4.7.28
Melhorias
Reextração agora pode ser feita com listas de TGUIDs e PGUIDs
Formato do arquivo: um ou mais GUID por linha, separados por vírgula se mais de um na mesma linha
Correções de Bugs
Corrigido um bug onde a simplificação não estava sendo feita quando a transação mais recente não tinha biometria
Melhorias
Alteração de prioridade agora está disponível apenas para grupos em análise, pendentes, recusados ou prontos para envio
4.7.27
Melhorias
Extrator Ginger atualizado para v2.3.0
No Reextrator GBS, o extrator Ginger foi atualizado para 2.3.0 apenas para reextração
4.7.26
Novos Recursos
Adicionado suporte para novos extratores (Ginger v2.2.0 e Facelib 3.1.1). Os atuais extratores permanecem totalmente suportados e disponíveis
4.7.25
Correções de Bugs
Corrigido um bug onde minutias buscadas com o template anterior eram mostradas na posição errada
4.7.24
Correções de Bugs
Corrigido bug relacionado a buscas UL
Atualizada a lógica de filtragem pós-correspondência para limitar os resultados aos X maiores scores.
Atualizado
Isto foi útil?

