# Banco de Dados Relacional GBDS 5

## Introdução

Este manual descreve todas as tabelas, esquemas e informações dos bancos de dados relacionais do GBDS. O GBDS utiliza um banco de dados relacional para armazenar metadados sobre pessoas, transações, grupos de notificação, substituições de configurações e exceções.

O documento está dividido em quatro seções que descrevem:

* As tabelas gerais ;
* As tabelas de Latentes Não Resolvidas (UL) ;
* As tabelas de Notificação ;
* As tabelas de configurações do GBDS .

## Tabelas gerais <a href="#general-tables" id="general-tables"></a>

As tabelas gerais são tabelas que armazenam informações vitais para a operação do GBDS, como exceções, informações sobre pessoas, informações sobre transações e outras. Essas tabelas são descritas abaixo.

### gbds.people

A `people`tabela destina-se a armazenar os índices de todas as pessoas armazenadas no banco de dados GBDS e é descrita da seguinte forma:

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informação adicional</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária;<br><br>Chave privada do banco de dados relacional</td></tr><tr><td>pguid</td><td>varchar</td><td>255</td><td>not null</td><td>UGUID pessoal armazenado no HBase</td></tr><tr><td>deleted</td><td>tinyint</td><td>1</td><td>null</td><td>Indica se o candidato foi deletado, para que ele não seja incluido quando operações de listagem forem performadas</td></tr></tbody></table>

### gbds.people\_version

A `people_version`tabela destina-se a armazenar as informações sobre as últimas alterações no cadastro de uma pessoa e é descrita da seguinte forma:

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="116.6666259765625">Tamanho</th><th width="100">Valor</th><th>Informações adicionais</th></tr></thead><tbody><tr><td>version</td><td>int</td><td>11</td><td>not null</td><td>Chave primária; Índice de versão (incremental a partir da primeira alteração)</td></tr><tr><td>person_id</td><td>bigint</td><td>20</td><td>not null</td><td>Referência à pessoa<code>gbds.people.id</code></td></tr><tr><td>_timestamp</td><td>datetime</td><td>6</td><td>null</td><td>timestamp de data e hora para a versão atual de uma pessoa</td></tr><tr><td>deleted</td><td>tinyint</td><td>1</td><td>null</td><td>Indica se o candidato foi excluído para ser executado ao realizar operações de listagem de candidatos</td></tr><tr><td>active</td><td>tinyint</td><td>1</td><td>null</td><td>Define se uma versão de um povo é elegível para transações de registro mestre</td></tr></tbody></table>

### gbds.organization

A tabela `organization` é responsável por armazenar as informações sobre as organizações registradas no GBDS

| Coluna      | Tipo    | Tamanho | Valor    | Informações Adicionais                              |
| ----------- | ------- | ------- | -------- | --------------------------------------------------- |
| id          | bigint  | 20      | not null | Chave primária; Identifica a organização unicamente |
| parent\_id  | bigint  | 20      | null     | Identifica a organização responsável, chave;        |
| name        | varchar | 255     | not null | Nome da organização                                 |
| description | varchar | 1000    | not null | Descrição                                           |

### gbds.transactions

A `transactions`tabela destina-se a armazenar informações sobre a análise de qualidade dos dados biométricos de uma transação.

<table><thead><tr><th width="200">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Chave privada do banco de dados relacional</td></tr><tr><td>tguid</td><td>varchar</td><td>255</td><td>not null</td><td>Referência à transação<code>transactions.tguid</code></td></tr><tr><td>pguid</td><td>varchar</td><td>255</td><td>null</td><td>UGUID da pessoa armazenada no HBase</td></tr><tr><td>active</td><td>tinyint</td><td>1</td><td>not null</td><td>Define se uma versão de uma pessoa é elegível para transações do Registro Mestre</td></tr><tr><td>priority</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>('GOD_PRIORITY','HIGHEST_PRIORITY','HIGHER_PRIORITY','HIGH_PRIORITY','DEFAULT_PRIORITY','LOW_PRIORITY','LOWER_PRIORITY','LOWEST_PRIORITY')</code></td></tr><tr><td>created</td><td>datetime</td><td>6</td><td>null</td><td>timestamp de data e hora de criação da transação</td></tr><tr><td>updated</td><td>datetime</td><td>6</td><td>null</td><td>timestamp de data e hora da última modificação da transação</td></tr><tr><td>quality_status</td><td>enum</td><td>n/a</td><td>null</td><td>Status da análise de qualidade (como <code>OK</code>, <code>PENDING</code>, <code>APPROVED</code>, e outros)</td></tr><tr><td>enroll_status</td><td>enum</td><td>n/a</td><td>null</td><td>Status da inscrição (como <code>ENQUEUED</code>, <code>PROCESSING</code>, <code>FAILED</code>, e outros)</td></tr><tr><td>search_status</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>('ENQUEUED','PREPARED','PROCESSING','MATCH','NOT_MATCH','UNCERTAIN','MISMATCH','FAILED','PENDING','PERSON_NOT_FOUND','NONE','UL_NOT_FOUND','REFUSED','RESENT_ENROLL')</code></td></tr><tr><td>extraction_time</td><td>int</td><td>11</td><td>null</td><td>Tempo decorrido para extrações de modelos</td></tr><tr><td>extraction_quality_time</td><td>int</td><td>11</td><td>null</td><td>Tempo decorrido para extrações de qualidade</td></tr><tr><td>match_time</td><td>int</td><td>11</td><td>null</td><td>Tempo de correspondência decorrido para esta transação</td></tr><tr><td>post_match_time</td><td>int</td><td>11</td><td>null</td><td>Tempo decorrido após a correspondência para esta transação</td></tr><tr><td>total_time</td><td>int</td><td>11</td><td>null</td><td>Operação total menos tempo de espera na fila</td></tr><tr><td>transaction_type</td><td>enum</td><td>n/a</td><td>null</td><td>Tipo de transação.<br>enum<code>('ENROLL','UPDATE','VERIFY','IDENTIFY')</code></td></tr><tr><td>latent</td><td>tinyint</td><td>1</td><td>null</td><td>Sinaliza se a transação é uma pesquisa latente</td></tr><tr><td>ul</td><td>tinyint</td><td>1</td><td>null</td><td>Sinaliza se a transação é uma pesquisa UL</td></tr><tr><td>num_fingers</td><td>int</td><td>11</td><td>null</td><td>O número de impressões digitais na transação</td></tr><tr><td>num_faces</td><td>int</td><td>11</td><td>null</td><td>O número de imagens de rosto na transação (0 ou 1)</td></tr><tr><td>finger_quality_extracted</td><td>tinyint</td><td>1</td><td>null</td><td>Falso se as impressões digitais puderem ser extraídas</td></tr><tr><td>face_quality_extracted</td><td>tinyint</td><td>1</td><td>null</td><td>Falso se o rosto puder ser extraído em segundo plano. Verdadeiro se já tiver sido extraído.</td></tr><tr><td>ginger_extractor_type</td><td>enum</td><td>n/a</td><td>null</td><td>Tipo de extrator de gengibre utilizado na transação. Enum: <code>GRIAULE_FAST</code>, <code>GRIAULE_BASIC</code>, <code>GRIAULE_2020</code>, <code>GRIAULE_2024</code>, <code>GRIAULE_2018</code>.</td></tr><tr><td>finger_global_quality</td><td>int</td><td>11</td><td>null</td><td>Pontuação de qualidade global de impressão digital</td></tr><tr><td>global_quality</td><td>int</td><td>11</td><td>null</td><td>Pontuação de qualidade global do perfil</td></tr><tr><td>quality_extraction_api_id</td><td>varchar</td><td>255</td><td>null</td><td>ID da API que realizará ou realizou a extração de qualidade</td></tr><tr><td>quality_extraction_msg</td><td>varchar</td><td>512</td><td>null</td><td>Mensagem referente a extração de qualidade</td></tr><tr><td>api_id</td><td>varchar</td><td>255</td><td>null</td><td>O ID da instância da API que recebeu a transação</td></tr><tr><td>gbds_version</td><td>varchar</td><td>255</td><td>null</td><td>Versão do GBDS que processou a transação</td></tr></tbody></table>

### gbds.transaction\_fields

A `transaction_fields`tabela tem como objetivo armazenar as informações sobre as informações de qualidade e vinculá-las às informações não biométricas da `fields`tabela.

<table><thead><tr><th width="120">Coluna</th><th width="100">Tipo</th><th width="100"> Tamanho</th><th width="100">Valor</th><th>Informações adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Chave privada do banco de dados relacional</td></tr><tr><td>fkey</td><td>varchar</td><td>255</td><td>null</td><td>Chave de campo que descreve as informações contidas (por exemplo, se é um tipo sanguíneo, nome da mãe, data de nascimento, documento, etc.) Referência a<code>fields.fkey</code></td></tr><tr><td>type</td><td>varchar</td><td>255</td><td>null</td><td>Tipo de informação (pesquisa ou <code>label</code>) Referência a<code>fields.type</code></td></tr><tr><td>fvalue</td><td>varchar</td><td>255</td><td>null</td><td>Valor efetivo do campo (por exemplo, o número do documento) Referência a<code>fields.fvalue</code></td></tr><tr><td>transaction_id</td><td>bigint</td><td>20</td><td>not null</td><td>Id da transação. Referência a<code>transaction.id</code></td></tr></tbody></table>

### gbds.transaction\_fingerprint\_quality

| Coluna            | Tipo    | Tamanho | Valor    |
| ----------------- | ------- | ------- | -------- |
| transaction\_id   | bigint  | 20      | not null |
| idx               | int     | 11      | not null |
| image\_quality    | int     | 11      | null     |
| template\_quality | int     | 11      | null     |
| minutiae\_count   | int     | 11      | null     |
| blank             | varchar | 100     | null     |
| contrast          | varchar | 100     | null     |
| fingerArea        | varchar | 100     | null     |
| fingerCenterX     | varchar | 100     | null     |
| fingerCenterY     | varchar | 100     | null     |
| fingerExtentX     | varchar | 100     | null     |
| fingerExtentY     | varchar | 100     | null     |
| hasjoint          | varchar | 100     | null     |
| \_\_index         | varchar | 100     | null     |
| marginBiteEast    | varchar | 100     | null     |
| marginBiteNorth   | varchar | 100     | null     |
| marginBiteSouth   | varchar | 100     | null     |
| marginBiteWest    | varchar | 100     | null     |
| nfiq              | varchar | 100     | null     |
| orientation       | varchar | 100     | null     |
| sizeX             | varchar | 100     | null     |
| sizeY             | varchar | 100     | null     |

### gbds.transaction\_face\_quality

<table><thead><tr><th width="300">Coluna</th><th>Tipo</th><th>Tamanho</th><th>Valor</th></tr></thead><tbody><tr><td>transaction_id</td><td>bigint</td><td>20</td><td>not null</td></tr><tr><td>idx</td><td>int</td><td>11</td><td>not null</td></tr><tr><td>image_quality</td><td>int</td><td>11</td><td>null</td></tr><tr><td>template_quality</td><td>int</td><td>11</td><td>null</td></tr><tr><td>autoBrightness</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>bgBelowPictureQuality</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>bgBlueStandardDeviation</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>bgDarknessQuality</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>bgGreenStandardDeviation</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>bgRedStandardDeviation</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>bgUniformityQuality</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>blurCompliance</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>busyBackground</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>busyBackgroundInCropped</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>cropContainmentError</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesLookDown</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesLookLeft</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesLookRight</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesLookUp</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesObstruction</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesTooClosed</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>eyesTooOpen</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceDown</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceLeft</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceObstruction</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceOrientationPitchCompliance</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceOrientationRollAngle</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceOrientationYawCompliance</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceRight</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>faceUp</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>glasses</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>grayscaleSpan</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>hat</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>heavyGlasses</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>icaoCompliance</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>leftEyeX</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>leftEyeY</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>mouthObstruction</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>mouthOpen</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>obstruction</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>openMouth</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>pictureHeight</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>pictureWidth</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>pixelated</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>redEye</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>result</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>rightEyeX</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>rightEyeY</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>saturated</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>saturationGrayscaleDistribGrade</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>saturationNumGrayTones</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>saturationOverExposure</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>shadows</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>skinColorCompliance</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>smile</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>smilingMouth</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>spoof</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>spoofGrade</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>tiltAngle</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>tooDark</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>unnaturalSkinColor</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>visibleTeeth</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>wrongFacePose</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>wrongShoulderPoseLeft</td><td>varchar</td><td>100</td><td>null</td></tr><tr><td>wrongShoulderPoseRight</td><td>varchar</td><td>100</td><td>null</td></tr></tbody></table>

### gbds.fields

A tabela `fields`       destina-se a armazenar as informações não biométricas de uma pessoa, estando vinculada às `transaction`tabelas `people_version`. Ela é descrita da seguinte forma:

<table><thead><tr><th width="120">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Chave privada do banco de dados relacional</td></tr><tr><td>fkey</td><td>varchar</td><td>255</td><td>null</td><td>Chave de campo que descreve as informações contidas (por exemplo, se é um tipo sanguíneo, nome da mãe, data de nascimento, documento, etc.)</td></tr><tr><td>field_type</td><td>varchar</td><td>255</td><td>null</td><td>Tipo de informação (pesquisa ou <code>label</code>)</td></tr><tr><td>fvalue</td><td>varchar</td><td>255</td><td>null</td><td>Valor efetivo do campo (por exemplo, o número do documento)</td></tr><tr><td>person_id</td><td>bigint</td><td>20</td><td>not null</td><td>Referência à pessoa<code>person.id</code></td></tr><tr><td>person_version</td><td>int</td><td>11</td><td>not null</td><td>Referência à pessoa<code>people_version.version</code></td></tr></tbody></table>

### gbds.exceptions

A tabela `exceptions`destina-se a armazenar as informações de qualquer exceção biométrica e seu tratamento. Ela é descrita a seguir:

<table><thead><tr><th width="185">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Chave privada do banco de dados relacional</td></tr><tr><td>aguid</td><td>varchar</td><td>255</td><td>not null</td><td>Exceção armazenada do HBase UGUID</td></tr><tr><td>comments</td><td>varchar</td><td>255</td><td>null</td><td>Quaisquer comentários fornecidos ao tratar a exceção</td></tr><tr><td>_timestamp</td><td>datetime</td><td>6</td><td>null</td><td>timestamp de data e hora para a criação da exceção</td></tr><tr><td>exception_status</td><td>enum</td><td>n/a</td><td>not null</td><td>enum <code>('ANALYSIS', 'DIFFERENT_FINGERS', 'SAME_FINGERS', 'INCORRECT_ENROLL', 'RECOLLECT', 'MERGE_TRANSACTIONS', 'APPROVE', 'REJECT', 'ERROR', 'REFUSED')</code></td></tr><tr><td>target</td><td>enum</td><td>n/a</td><td>not null</td><td>enum<code>('BIOMETRIC','BIOMETRIC_INCONCLUSIVE','BIOMETRIC_MISMATCH','BIOGRAPHIC')</code>;<br>Padrão: <code>BIOMETRIC</code></td></tr><tr><td>priority</td><td>tinyint</td><td>1</td><td>not null</td><td>Referencia prioridade da exceção, com valor default 0</td></tr><tr><td>user</td><td>varchar</td><td>255</td><td>null</td><td>Identificação do usuário responsável pelo tratamento da exceção</td></tr><tr><td>transaction_id_50</td><td>bigint</td><td>20</td><td>not null</td><td>Chave estrangeira: Referência à transação<code>transactions.id</code></td></tr><tr><td>reference_person_id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave estrangeira: Referência à pessoa de referência<code>people.id</code></td></tr><tr><td>trusted_master_record</td><td>tinyint</td><td>1</td><td>null</td><td>Flag para uso dos dados da transação em análises futuras</td></tr><tr><td>reference_indexes</td><td>varchar</td><td>1000</td><td>null</td><td></td></tr><tr><td>exception_group_id</td><td>int</td><td>11</td><td>not null</td><td>ID do grupo de exceção pertencente</td></tr><tr><td>fusion_score</td><td>int</td><td>11</td><td>not null</td><td>Armazena o score avaliado na fusão</td></tr><tr><td>fusion_decision</td><td>enum</td><td>n/a</td><td>null</td><td>Armazena a decisão tomada pelas regras de fusão;<br>enum<code>('HIT','NO_HIT','UNCERTAIN','UNCERTAIN_EXPERT','MISMATCH','ERROR')</code></td></tr></tbody></table>

### gbds.exception\_decision

A tabela `exception_decision`destina-se a armazenar as informações das decisões com relação a uma exceção. Ela é descrita a seguir:

<table><thead><tr><th width="110">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>candidate_id</td><td>bigint</td><td>20</td><td>not null</td><td>Identifica o candidato da exceção;<br>Forma chave primária com user</td></tr><tr><td>user</td><td>varchar</td><td>100</td><td>not null</td><td>Usuário responsável pelo tratamento da exceção</td></tr><tr><td>locked_timestamp</td><td>datetime</td><td>6</td><td>not null</td><td>Data em que a exceção foi alocada</td></tr><tr><td>decision_timestamp</td><td>datetime</td><td>6</td><td>not null</td><td>Data em que a decisão foi gerada</td></tr><tr><td>decision</td><td>enum</td><td>n/a</td><td>not null</td><td>Decisão tomada para a exceção<br>enum<code>('HIT','NO_HIT','UNCERTAIN','UNCERTAIN_EXPERT','ERROR')</code></td></tr></tbody></table>

### gbds.exception\_candidates

A tabela `exception_candidates`destina-se a armazenar as informações dos candidatos a uma exceção biométrica. Ela é descrita a seguir:

<table><thead><tr><th width="185">Coluna</th><th width="102">Tipo</th><th width="100">Tamanho</th><th width="89.0909423828125">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Chave privada do banco de dados relacional</td></tr><tr><td>exception_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID da exceção</td></tr><tr><td>reference_transaction_id</td><td>bigint</td><td>20</td><td>null</td><td>ID da transação de referência</td></tr><tr><td>query_index</td><td>int</td><td>11</td><td>not null</td><td>Índice da biometria entrante</td></tr><tr><td>reference_index</td><td>int</td><td>11</td><td>not null</td><td>Índice da biometria de referência</td></tr><tr><td>query_quality</td><td>int</td><td>11</td><td>null</td><td>Qualidade da biometria entrante</td></tr><tr><td>reference_quality</td><td>int</td><td>255</td><td>null</td><td>Qualidade da biometria de referência</td></tr><tr><td>score</td><td>int</td><td>20</td><td>null</td><td>Pontuação de matching correspondente</td></tr><tr><td>locked_user</td><td>varchar</td><td>20</td><td>null</td><td>Usuário alocado para tratamento da exceção</td></tr><tr><td>locked_timestamp</td><td>datetime</td><td>20</td><td>null</td><td>Data em que a exceção foi alocada</td></tr><tr><td>locked_timeout</td><td>datetime</td><td>11</td><td>null</td><td>Data em que a exceção será desalocada por inatividade</td></tr><tr><td>decision</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>(HIT, NO_HIT, UNCERTAIN, UNCERTAIN_EXPERT, ERROR)</code></td></tr><tr><td>minutiae</td><td>mediumblob</td><td>1</td><td>n/a</td><td></td></tr></tbody></table>

### gbds.exception\_group

A tabela `exception_group`destina-se a armazenar as informações dos candidatos a uma exceção biométrica. Ela é descrita a seguir:

<table><thead><tr><th width="188.6363525390625">Coluna</th><th width="103.54547119140625">Tipo</th><th width="104.3636474609375">Tamanho</th><th width="111.6363525390625">Valor </th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Identifica unicamente o grupo de exceção</td></tr><tr><td>gguid</td><td>varchar</td><td>100</td><td>not null</td><td>UGUID do grupo de exceção armazenado no HBase</td></tr><tr><td>tguid</td><td>varchar</td><td>100</td><td>not null</td><td>UGUID da transação armazenada no HBase</td></tr><tr><td>target</td><td>enum</td><td>n/a</td><td>not null</td><td>Tipo de exceção ao qual o grupo se refere.<br>enum<code>('BIOMETRIC','BIOMETRIC_INCONCLUSIVE','BIOMETRIC_MISMATCH','BIOGRAPHIC')</code></td></tr><tr><td>decision</td><td>enum</td><td>n/a</td><td>null</td><td>Decisão tomada para tratamento da exceção<br>enum<code>('APPROVE','REJECT','KEEP')</code></td></tr><tr><td>status</td><td>enum</td><td>n/a</td><td>not null</td><td>Status em que se encontra o o processo de tratamento da exceção<br>enum<code>('ANALYSIS','PENDING','READY','PROCESSING','DONE','REFUSED','ERROR')</code></td></tr><tr><td>priority</td><td>tinyint</td><td>1</td><td>not null</td><td>Referencia prioridade da exceção, com valor default 0</td></tr><tr><td>created</td><td>datetime</td><td>6</td><td>not null</td><td>Timestamp de criação do grupo</td></tr><tr><td>updated</td><td>timestamp</td><td>n/a</td><td>not null</td><td>Timestamp de criação </td></tr><tr><td>user</td><td>varchar</td><td>100</td><td>null</td><td>Usuário que tratou o grupo</td></tr><tr><td>message</td><td>varchar</td><td>4000</td><td>null</td><td>Mensagem deixada após o tratamento</td></tr><tr><td>comments</td><td>varchar</td><td>4000</td><td>null</td><td>Comentários a serem deixados em caso de lights out</td></tr><tr><td>locked_user</td><td>varchar</td><td>100</td><td>null</td><td>Usuário alocado para tratamento do grupo</td></tr><tr><td>locked_timestamp</td><td>datetime</td><td>6</td><td>null</td><td>Data em que o grupo de exceção foi alocado</td></tr><tr><td>locked_timeout</td><td>datetime</td><td>6</td><td>null</td><td>Data em que a alocação irá expirar caso não seja tratada</td></tr><tr><td>decision_parameters</td><td>varchar</td><td>5000</td><td>null</td><td>Parâmetros de decisão utilizados (id, valores e labels)</td></tr><tr><td>new_tguid</td><td>varchar</td><td>100</td><td>null</td><td></td></tr><tr><td>refused_status</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>('CREATED','REMOVED','READY_TO_RESEND','SENDING','SENT','ERROR')</code></td></tr><tr><td>refused_new_tguid</td><td>varchar</td><td>100</td><td>null</td><td>TGUID novo gerado em caso de REFUSED</td></tr><tr><td>lights_out_criteria</td><td>varchar</td><td>5000</td><td>null</td><td>Indica o que foi considerado no Lights Out<br>EX: {"matchedBiographics":["nome","data de nascimento","filiação"]}</td></tr><tr><td>lights_out_status</td><td>enum</td><td>n/a</td><td>null</td><td>enum <code>('READY','ANALYSING','KEEP','AUTO_TREAT','ERROR')</code></td></tr></tbody></table>

### gbds.exception\_group\_organizations

A tabela exception\_group\_organizations destina-se a armazenar informações sobre organizações relacionadas a um grupo de exceções.

<table><thead><tr><th width="120">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>exception_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID do grupo de exceção;<br>Forma chave primária com <code>exception_id</code></td></tr><tr><td>exception_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID da exceção a que se refere a organização;<br>Forma chave primária com <code>exception_group_id</code>;</td></tr><tr><td>organization</td><td>varchar</td><td>100</td><td>not null</td><td>Nome da organização</td></tr><tr><td>origin</td><td>enum</td><td>n/a</td><td>not null</td><td>Referencia o tipo de origem da organização dentro da exceção<br><code>DEFAULT 'BOTH'</code><br>enum<code>('ENTRANT','REFERENCE','BOTH')</code><br><br><br><br><br><br><br></td></tr></tbody></table>

### gbds.exception\_group\_refused

A tabela `exception_group_refused` destina-se a armazenar informações sobre os grupos de exceção recusados e os grupos responsáveis pela recusa.

<table><thead><tr><th width="110">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>exception_group_id</td><td>bigint</td><td>20</td><td>not nuIl</td><td>ID do grupo de exceção referência</td></tr><tr><td>refused_exception_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID do grupo de exceção recusado</td></tr></tbody></table>

### gbds.key\_format

A tabela gbds.key\_format destina-se a armazenar as chaves e os formatos para validação de chave.

<table><thead><tr><th width="110">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>key_id</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária;<br>Define o ID da chave</td></tr><tr><td>format_type</td><td>enum</td><td>6</td><td>not null</td><td>Padrão <code>ALPHANUMERIC</code><br>enum<code>('TITULO','CPF','ALPHANUMERIC','NUMERIC','ALPHABETIC','REGEX')</code></td></tr><tr><td>regex</td><td>varchar</td><td>20</td><td>null</td><td></td></tr><tr><td>min_length</td><td>int</td><td>20</td><td>null</td><td>Define o tamanho mínimo da chave</td></tr><tr><td>max_length</td><td>int</td><td>Up to 4Gb</td><td>null</td><td>Define o tamanho máximo da chave</td></tr></tbody></table>

### gbds.operation\_log

A tabela gbds.operation\_log é utilizada para armazenar logs de operações.

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>ID interno de identificação</td></tr><tr><td>guid</td><td>varchar</td><td>100</td><td>null</td><td>Identificador único universal</td></tr><tr><td>user</td><td>varchar</td><td>100</td><td>null</td><td>Usuário responsável pela ação</td></tr><tr><td>log_timestamp</td><td>datetime</td><td>-</td><td>not null</td><td>Data de criação do log</td></tr><tr><td>log_type</td><td>enum</td><td>n/a</td><td>not null</td><td>enum('EXCEPTION','EXCEPTION_BIOMETRIC','EXCEPTION_GROUP','TRANSACTION)</td></tr><tr><td>operation</td><td>enum</td><td>n/a</td><td>not null</td><td>enum('UNKNOWN','CONNECT','DISCONNECT','AUTHENTICATE','ENROLL','EXTERNAL_AUTHENTICATE','BATCH_ENROLL','REGISTER_SEARCH','SEARCH','DELETE','GET_RESULT','CLOSE_SESSION','FILTER','COUNT_ANOMALIES','FIND_ANOMALIES','GET_ANOMALY','ASSIGN_ANOMALY','UNASSIGN_ANOMALY','TRUST_ENROLL','GET_TRANSACTION','CHANGE_PRIORITY','ADD_TO_REFERENCE','REMOVE_FROM_REFERENCE','REMOVE_KEYS','GET_PEOPLE_TRANSACTIONS','ANOMALY_ENROLL','GET_EXCEPTION_RESULT','QUALITY_ANALYSIS','REGISTER_ENROLL','STOP_SERVICE','REGISTER_UL_BIOMETRIC','REMOVE_UL_BIOMETRIC','UPDATE_PERSON_BIOMETRIC','DISABLE_PERSON_TRANSACTION','CREATE_EXCEPTION','CREATE_EXCEPTION_GROUP','PRIORITY_EXCEPTION','PRIORITY_EXCEPTION_GROUP','TREAT_EXCEPTION','TREAT_EXCEPTION_BIOMETRIC','TREAT_EXCEPTION_GROUP','CHANGE_REFUSED_STATUS','RESEND_REFUSED','LIGHTS_OUT')</td></tr><tr><td>status</td><td>enum</td><td>n/a</td><td>null</td><td>enum('ANALYSIS','READY','PROCESSING','DONE','REFUSED','PENDING','ERROR','ENQUEUED','OK','NOT_FINAL','BIOMETRIC','BIOMETRIC_INCONCLUSIVE','BIOMETRIC_MISMATCH','BIOGRAPHIC','APPROVE','REJECT','LIGHTS_OUT')</td></tr><tr><td>bio_index</td><td>int</td><td>11</td><td>null</td><td>Índice da biometria</td></tr><tr><td>decision</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>('UNCERTAIN','UNCERTAIN_EXPERT','NO_HIT','HIT','MISMATCH','ERROR','APPROVE','REJECT','KEEP','CREATED','REMOVED','READY_TO_RESEND')</code></td></tr><tr><td>message</td><td>varchar</td><td>1000</td><td>null</td><td>Descrição da operação a que se refere a operação</td></tr><tr><td>tguid</td><td>varchar</td><td>100</td><td>null</td><td>Identificador único da transação</td></tr><tr><td>pguid</td><td>varchar</td><td>100</td><td>null</td><td>Identificador único do perfil a que se refere a operação</td></tr><tr><td>kept_tguids</td><td>varchar</td><td>1000</td><td>null</td><td>TGUIDs a serem mantidos pela operação de KEEP do Lights Out</td></tr></tbody></table>

### gbds.apis

O `apis`é usado pelo GBDS para gerenciar várias APIs ativas ao mesmo tempo.

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>api_id</td><td>varchar</td><td>255</td><td>not null</td><td>ID da instância de API exclusiva</td></tr><tr><td>hostname</td><td>varchar</td><td>255</td><td>not null</td><td>Nome do host do nó onde a API está sendo executada</td></tr><tr><td>port</td><td>int</td><td>11</td><td>not null</td><td>Porta onde a API está sendo executada</td></tr><tr><td>type</td><td>varchar</td><td>255</td><td>null</td><td>Tipo de instância da API (LEADER, RUNNER ou nulo)</td></tr></tbody></table>

Na inicialização da API, cada API procurará por si mesma nesta tabela. Se não for encontrada com nome de host/IP e porta, ela se insere na tabela com um GUID como *api-id* e *tipo nulo* , o que significa que não está pronta para extração de qualidade. Alterações aplicadas diretamente a esta tabela serão analisadas a cada 15 minutos.

## Tabelas latentes não resolvidas (UL) <a href="#unsolved-latent-ul-tables" id="unsolved-latent-ul-tables"></a>

As tabelas de Latentes Não Resolvidas são usadas para armazenar informações sobre os dados da UL e os candidatos. As tabelas são descritas abaixo.

### gbds.ul

A tabela `ul`foi projetada para armazenar todos os GBDS UL's e é descrita da seguinte forma:

<table><thead><tr><th width="150">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>uguid</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária; UGUID armazenado em HBase</td></tr><tr><td>ul_status</td><td>varchar</td><td>255</td><td>not null</td><td><br><code>UNSOLVED</code>ou <code>SOLVED</code>; HBase replica esse status</td></tr><tr><td>creation_time</td><td>timestamp</td><td>4</td><td>not null</td><td><code>current_timestamp</code>por padrão</td></tr><tr><td>person_pguid</td><td>varchar</td><td>255</td><td>null</td><td>PGUID da pessoa correspondente quando<code>SOLVED</code></td></tr><tr><td>person_tguid</td><td>varchar</td><td>255</td><td>null</td><td>TGUID da pessoa correspondente quando<code>SOLVED</code></td></tr><tr><td>fragment_id</td><td>varchar</td><td>255</td><td>null</td><td>ID do fragmento original para o fragmento que gerou o UL</td></tr><tr><td>fragment_case_id</td><td>varchar</td><td>255</td><td>null</td><td>ID do caso original para o fragmento que gerou o UL</td></tr><tr><td>fragment_index</td><td>int</td><td>11</td><td>null</td><td>Índice de fragmentos para o UL. Por padrão, o índice é definido como <code>-1</code>(índice desconhecido, qualquer índice)</td></tr><tr><td>analysis_user</td><td>varchar</td><td>255</td><td>null</td><td>Usuário responsável pela análise UL</td></tr><tr><td>analysis_timestamp</td><td>timestamp</td><td>4</td><td>null</td><td>timestamp de data e hora da análise</td></tr><tr><td>group_guid</td><td>varchar</td><td>255</td><td>not null</td><td>GUID de agrupamento (para listar ULs vinculados)</td></tr></tbody></table>

### gbds.ul\_candidates

A tabela `ul_candidates` foi projetada para armazenar os candidatos de cada UL que o GBDS mantém após qualquer *CORRESPONDÊNCIA LATENTE REVERSA* realizada em inscrições que geraram uma *correspondência* com uma UL, e é descrita da seguinte forma:

<table><thead><tr><th width="110">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor </th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>ul_uguid</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária; UL UGUID</td></tr><tr><td>person_pguid</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária; PGUID do candidato</td></tr><tr><td>person_tguid</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária; TGUID do candidato</td></tr><tr><td>person_index</td><td>int</td><td>11</td><td>not null</td><td>Chave primária; Dedo indicador candidato</td></tr><tr><td>score</td><td>int</td><td>11</td><td>not null</td><td>Pontuação de matching correspondente para o candidato</td></tr><tr><td>deleted</td><td>tinyint</td><td>1</td><td>not null</td><td><code>0</code>por padrão, indica se o candidato foi excluído para ser excluído ao realizar operações de listagem de candidatos</td></tr><tr><td>minutiae</td><td>longblob</td><td>Up to 4Gb</td><td>null</td><td>Serialização JSON contendo as minúcias correspondentes. É uma lista com a seguinte estrutura:<br> - <code>queryIndex</code>, <code>int</code> <br>- <code>referenceIndex</code>,<code>int</code></td></tr></tbody></table>

## Tabelas de notificação

As tabelas de notificação são usadas para armazenar dados para fins de auditoria, como e-mails, pessoas que serão notificadas e grupos.

### gbds.notifications

A tabela `gbds.notifications` foi projetada para armazenar informações relacionadas as notificações de operações do GBDS

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Indice interno autoincrementado;<br>Chave primária;</td></tr><tr><td>nguid</td><td>varchar</td><td>40</td><td>not null</td><td>Identificador único da notificação</td></tr><tr><td>tguid</td><td>varchar</td><td>40</td><td>not null</td><td>Identificador único da transação responsável pela notificação</td></tr><tr><td>created</td><td>datetime</td><td>6</td><td>not null</td><td>Timestamp da data de criação da notificação</td></tr><tr><td>operation</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>('UNKNOWN','CONNECT','DISCONNECT','AUTHENTICATE','ENROLL','EXTERNAL_AUTHENTICATE','BATCH_ENROLL','REGISTER_SEARCH','SEARCH','DELETE','GET_RESULT','CLOSE_SESSION','FILTER','COUNT_ANOMALIES','FIND_ANOMALIES','GET_ANOMALY','ASSIGN_ANOMALY','UNASSIGN_ANOMALY','TRUST_ENROLL','GET_TRANSACTION','CHANGE_PRIORITY','ADD_TO_REFERENCE','REMOVE_FROM_REFERENCE','REMOVE_KEYS','GET_PEOPLE_TRANSACTIONS','ANOMALY_ENROLL','GET_EXCEPTION_RESULT','QUALITY_ANALYSIS','REGISTER_ENROLL','STOP_SERVICE','REGISTER_UL_BIOMETRIC','REMOVE_UL_BIOMETRIC','UPDATE_PERSON_BIOMETRIC','DISABLE_PERSON_TRANSACTION','CREATE_EXCEPTION','CREATE_EXCEPTION_GROUP','PRIORITY_EXCEPTION','PRIORITY_EXCEPTION_GROUP','TREAT_EXCEPTION','TREAT_EXCEPTION_BIOMETRIC','TREAT_EXCEPTION_GROUP','CHANGE_REFUSED_STATUS','RESEND_REFUSED','LIGHTS_OUT')</code></td></tr><tr><td>status</td><td>varchar</td><td>255</td><td>null</td><td>Status da operação descrita em operation</td></tr><tr><td>sender</td><td>varchar</td><td>255</td><td>null</td><td>Módulo responsável pela notificação</td></tr><tr><td>uguid</td><td>varchar</td><td>40</td><td>null</td><td>Identificador do usuário</td></tr><tr><td>pguid</td><td>varchar</td><td>40</td><td>null</td><td>PGUID a que se refere a operação</td></tr><tr><td>new_tguid</td><td>varchar</td><td>40</td><td>null</td><td>TGUID novo gerado, por exemplo, quando gera um enroll</td></tr><tr><td>enroll_pguid</td><td>varchar</td><td>40</td><td>null</td><td>-</td></tr><tr><td>treatment</td><td>varchar</td><td>100</td><td>null</td><td>Tratamento no caso de análise de Lights Out</td></tr><tr><td>_update</td><td>tinyint</td><td>1</td><td>null</td><td>Flag de update</td></tr><tr><td>trusted</td><td>tinyint</td><td>1</td><td>null</td><td>Flag de truted enroll/update</td></tr><tr><td>origin</td><td>enum</td><td>n/a</td><td>null</td><td>enum<code>('API','GBDS')</code></td></tr><tr><td>additional_data</td><td>mediumblob</td><td>-</td><td>null</td><td>Dados adicionais relevantes (GGUID, comentários etc)</td></tr><tr><td>external_ids</td><td>mediumblob</td><td>-</td><td>null</td><td>IDs externos e seus valores;<br>{"name":"protocol", "key":"000000000"}</td></tr><tr><td>related_external_ids</td><td>mediumblob</td><td>-</td><td>null</td><td>IDs externos relacionados</td></tr><tr><td>kept_tguids</td><td>mediumblob</td><td>-</td><td>null</td><td>TGUIDs a serem mantidos em caso de Lights Out</td></tr></tbody></table>

###

### gbds.notify\_user

A tabela `notify_user` foi projetada para armazenar os dados do usuário autenticado pelo gbds.

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; ID exclusivo do usuário.</td></tr><tr><td>username</td><td>varchar</td><td>255</td><td>not null</td><td>nome de usuário gbds autenticado</td></tr></tbody></table>

### gbds.notify\_group

A tabela `notify_group`foi projetada para armazenar informações dos grupos de notificação.

<table><thead><tr><th width="100">Column</th><th width="100">Type</th><th width="100">Size</th><th width="100">Value</th><th>Additional Information</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária;</td></tr><tr><td>name</td><td>varchar</td><td>255</td><td>not null</td><td>Nome do grupo</td></tr><tr><td>enabled</td><td>tinyint</td><td>1</td><td>not null</td><td>Define se o grupo estará ativo ou não</td></tr></tbody></table>

### gbds.notify\_group\_email

A tabela `notify_group_email` foi projetada para armazenar os e-mails de um determinado grupo.

<table><thead><tr><th width="130">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>notify_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; ID do grupo.</td></tr><tr><td>email</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária; <br>E-mail que pertence ao grupo</td></tr></tbody></table>

### gbds.notify\_user\_group

A tabela `notify_user_group` foi projetada para armazenar informações de qual grupo um determinado usuário faz parte.

<table><thead><tr><th width="130">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>notify_user_id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Referência ao usuário<code>notify_user.id</code></td></tr><tr><td>notify_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Referência ao grupo<code>notify_group_email.notify_group.id</code></td></tr></tbody></table>

### gbds.people\_transparency

A tabela `people_transparency` foi projetada para armazenar informações sobre uma determinada pessoa e quais ações são tomadas quando essa pessoa é pesquisada.

<table><thead><tr><th width="100">Coluna</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária;</td></tr><tr><td>pguid</td><td>varchar</td><td>255</td><td>not null</td><td>Referência à pessoa<code>people.pguid</code></td></tr><tr><td>enabled</td><td>tinyint</td><td>1</td><td>not null</td><td>Referência à pessoa<code>people.pguid</code></td></tr><tr><td>action</td><td>varchar</td><td>255</td><td>null</td><td>Ação a ser tomada</td></tr></tbody></table>

### gbds.people\_transparency\_group

A tabela `people_transparency_group` foi projetada para armazenar informações sobre os grupos aos quais uma pessoa pertence.

<table><thead><tr><th width="180">Column</th><th width="100">Type</th><th width="100">Size</th><th width="100">Value</th><th>Additional Information</th></tr></thead><tbody><tr><td>people_transparency_id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Referência a people_transparency's<code>people_transparency.id</code></td></tr><tr><td>notify_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>Chave primária; Referência ao grupo<code>notify_group_email.notify_group.id</code></td></tr></tbody></table>

## Tabelas de configurações do GBDS (gbds.settings)

O GBDS utiliza um banco de dados relacional para armazenar algumas configurações da API e do GBDS. A tabela de configurações é uma tabela especial projetada para controlar determinadas configurações do GBDS e da API do GBDS. Essas configurações são armazenadas na `gbds.settings`tabela. A tabela pode conter configurações presentes na API do GBDS, no GBDS ou em ambos, seguindo o esquema abaixo:

<table><thead><tr><th width="100">Tipo</th><th width="100">Tipo</th><th width="100">Tamanho</th><th width="100">Valor</th><th>Informações Adicionais</th></tr></thead><tbody><tr><td>skey</td><td>varchar</td><td>255</td><td>not null</td><td>Chave primária. Nome da chave de parâmetro.</td></tr><tr><td>stype</td><td>varchar</td><td>50</td><td>not null</td><td>Local de onde vem o parâmetro. API ou GBDS</td></tr><tr><td>svalue</td><td>varchar</td><td>4096</td><td>null</td><td>Valor do parâmetro</td></tr><tr><td>description</td><td>varchar</td><td>4096</td><td>null</td><td>Descrição do parâmetro</td></tr><tr><td>stimestamp</td><td>datetime</td><td>6</td><td>not null</td><td>Carimbo de data e hora</td></tr><tr><td>host</td><td>varchar</td><td>1024</td><td>null</td><td>Nome do host de um nó</td></tr></tbody></table>

Todas as configurações encontradas na tabela serão gravadas no respectivo arquivo, `gbdsapi.properties`tanto para a API do GBDS quanto `application.conf`para o GBDS, a cada 15 minutos. Além disso, todas as configurações atualizadas na memória, tanto na API quanto no GBDS, serão propagadas.

{% hint style="info" %}
O valor do parâmetro definido na `gbds.settings`tabela será propagado para TODOS os nós.
{% endhint %}

Este recurso é controlado por um parâmetro de configuração na tabela, `gbds.rdbSystemConfiguration.enabled`. Este parâmetro permitirá a substituição dos valores de configuração do GBDS e da API. Definir o valor do parâmetro como `BOTH`fará com que as configurações do GBDS e da API sejam substituídas.

| gbds.settings / Chave de configuração de arquivo                      | Tipo |
| --------------------------------------------------------------------- | ---- |
| gbscluster.min.quality                                                | API  |
| gbds.enroll.fingerprints.min-nr-template                              | API  |
| gbds.enroll.face.min-nr-template                                      | API  |
| gbds.enroll.iris.min-nr-template                                      | API  |
| gbds.enroll.palmprint.min-nr-template                                 | API  |
| gbds.enroll.newborn-palmprint.min-nr-template                         | API  |
| gbscluster.enroll.fingerprints.verify.matchthreshold                  | API  |
| gbscluster.update.min.quality                                         | API  |
| gbds.transparency.search.identify.request.notify.enabled              | API  |
| gbds.transparency.search.identify.result.actions.enabled              | API  |
| gbds.api.logLevel                                                     | API  |
| gbds.extraction.service                                               | API  |
| gbds.extraction.service.face.count                                    | API  |
| gbds.extraction.service.ginger.count                                  | API  |
| gbds.extraction.service.girl.count                                    | API  |
| gbds.extraction.service.hostname                                      | API  |
| gbds.extraction.service.initialPort                                   | API  |
| gbds.extraction.service.logLevel                                      | API  |
| gbds.extraction.service.maxTries                                      | API  |
| gbds.extraction.service.linkLibSegfault                               | API  |
| gbds.extraction.quality.service                                       | API  |
| gbds.extraction.quality.fillTransactionQualityPropertiesTable         | API  |
| gbds.faces.extraction.quality.api                                     | API  |
| gbds.faces.extraction.quality.background                              | API  |
| gbds.fingerprints.extraction.quality.api                              | API  |
| gbds.fingerprints.extraction.quality.background                       | API  |
| gbds.extraction.quality.service.finger.count                          | API  |
| gbds.extraction.quality.service.face.count                            | API  |
| gbds.extraction.quality.service.initialPort                           | API  |
| gbds.extraction.quality.service.logLevel                              | API  |
| gbds.extraction.quality.service.timeout                               | API  |
| gbds.extraction.quality.service.hostname                              | API  |
| gbds.extraction.quality.service.maxTries                              | API  |
| gbds.extraction.quality.service.linkLibSegfault                       | API  |
| gbds.extraction.quality.service.rows-on-select                        | API  |
| gbds.extraction.quality.service.submitted-queue-factor                | API  |
| gbds.enroll.face.min.quality                                          | API  |
| gbds.update.face.min.quality                                          | API  |
| gbds.monitor.url                                                      | API  |
| gbds.template.face.multiplicity                                       | API  |
| gbds.biographicBase.enabled                                           | API  |
| gbds.biographicBase.endpoints                                         | API  |
| gbds.biographicBase.get.timeout.ms                                    | API  |
| gbds.biographicBase.list.timeout.ms                                   | API  |
| gbds.biographicBase.logLevel                                          | API  |
| gbds.biographicBase.clientID                                          | API  |
| gbds.biographicBase.clientSecret                                      | API  |
| gbds.biographicBase.lookAllServers                                    | API  |
| gbscluster.fingerprints.extraction.enroll.type                        | API  |
| gbscluster.fingerprints.extraction.verify.type                        | API  |
| gbds.update.exception.reextract                                       | API  |
| gbds.update.exception.reextract.save                                  | API  |
| gbds.biographicBase.autoUpdate                                        | API  |
| gbds.biographicBase.sendPguidAsKey                                    | API  |
| gbds.biographicBase.sendTguidAsKey                                    | API  |
| gbds.log.diagnose                                                     | GBDS |
| gbds.ul.boot.scan.enabled                                             | GBDS |
| gbds.boot.scan.ignoreErrorsOnRegion                                   | GBDS |
| gbds.boot.matcher.creation.sleepTime.ms                               | GBDS |
| gbds.biometric.fingerprint.identify.threshold                         | GBDS |
| gbds.biometric.fingerprint.exception.threshold                        | GBDS |
| gbds.biometric.fingerprint.exception.enabled                          | GBDS |
| gbds.biometric.fingerprint.exception.enroll.min-matches-for-exception | GBDS |
| gbds.biometric.face.identify.threshold                                | GBDS |
| gbds.biometric.face.exception.threshold                               | GBDS |
| gbds.peopleList.countFromRDB                                          | GBDS |
| gbds.biometric.face.enabled.threshold                                 | GBDS |
| gbds.driver.logLevel                                                  | GBDS |
| gbds.log.loadUnload                                                   | GBDS |
| gbds.template.memory.format                                           | GBDS |
| gbds.match.service.enabled                                            | GBDS |
| gbds.match.service.initialPort                                        | GBDS |
| gbds.match.service.logLevel                                           | GBDS |
| gbds.match.service.timeout                                            | GBDS |
| gbds.match.service.templateSend.parallelByModality                    | GBDS |
| gbds.match.service.linkLibSegfault                                    | GBDS |
| gbds.match.service.maxTries                                           | GBDS |
| gbds.match.service.maxConnectionErrors                                | GBDS |
| gbds.memory-monitor                                                   | GBDS |
| gbds.watchdog.interval                                                | GBDS |
| gbds.watchdog.log.mode                                                | GBDS |
| gbds.watchdog.log.level                                               | GBDS |
| gbds.verifyPostMatch.enabled                                          | GBDS |
| gbds.transparency.search.identify.result.notify.enabled               | BOTH |
| gbds.transparency.email-notifier.url                                  | BOTH |
| gbds.transparency.email-notifier.log-level                            | BOTH |
| gbds.transparency.email-notifier.timeout                              | BOTH |
| gbscluster.update.consider.fingerprints                               | BOTH |
| gbscluster.update.consider.faces                                      | BOTH |
| gbscluster.update.consider.faces.beforeFingerprints                   | BOTH |
| gbscluster.update.faces.verify.matchthreshold                         | BOTH |
| gbscluster.update.minimum.fingers                                     | BOTH |
| gbds.search.verify.adjust-resolution                                  | BOTH |

Outras configurações podem ser colocadas na tabela `gbds.settings`em rdb e todas serão gravadas na API ou no arquivo GBDS, de acordo com o tipo de configuração. No entanto, as recargas de memória em tempo de execução não serão realizadas para essas novas configurações, somente após a reinicialização da API e/ou do GBDS.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/integracao-do-gbds/banco-de-dados-relacional-gbds-5.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
