# GBDS 5 Relational Databases

## Introduction

This manual describes all tables, schemas and information of the GBDS relational databases. GBDS uses a relational database to store metadata about people, transactions, notification groups, configuration overrides and exceptions.

The document is divided into four sections that describe:

* The general tables ;
* The Unresolved Latents (UL) tables ;
* The Notification tables ;
* The GBDS configuration tables .

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

The general tables are tables that store vital information for GBDS operation, such as exceptions, information about people, information about transactions and others. These tables are described below.

### gbds.people

Error in the Federal Revenue `people`table is intended to store the indexes of all people stored in the GBDS database and is described as follows:

<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>Primary key;<br><br>Private key of the relational database</td></tr><tr><td>pguid</td><td>varchar</td><td>255</td><td>not null</td><td>Personal UGUID stored in HBase</td></tr><tr><td>deleted</td><td>tinyint</td><td>1</td><td>null</td><td>Indicates if the candidate was deleted, so that they are not included when listing operations are performed</td></tr></tbody></table>

### gbds.people\_version

Error in the Federal Revenue `people_version`table is intended to store information about the latest changes in a person's record and is described as follows:

<table><thead><tr><th width="100">Column</th><th width="100">Type</th><th width="116.6666259765625">Size</th><th width="100">Value</th><th>Additional information</th></tr></thead><tbody><tr><td>version</td><td>int</td><td>11</td><td>not null</td><td>Primary key; Version index (incremental from the first change)</td></tr><tr><td>person_id</td><td>bigint</td><td>20</td><td>not null</td><td>Reference to the person<code>gbds.people.id</code></td></tr><tr><td>_timestamp</td><td>datetime</td><td>6</td><td>null</td><td>date and time timestamp for the current version of a person</td></tr><tr><td>deleted</td><td>tinyint</td><td>1</td><td>null</td><td>Indicates if the candidate was deleted to be executed when performing candidate listing operations</td></tr><tr><td>active</td><td>tinyint</td><td>1</td><td>null</td><td>Defines whether a version of a people is eligible for master record transactions</td></tr></tbody></table>

### gbds.organization

The table `organization` is responsible for storing information about organizations registered in GBDS

| Column      | Type    | Size | Value    | Additional Information                            |
| ----------- | ------- | ---- | -------- | ------------------------------------------------- |
| id          | bigint  | 20   | not null | Primary key; Uniquely identifies the organization |
| parent\_id  | bigint  | 20   | null     | Identifies the responsible organization, key;     |
| name        | varchar | 255  | not null | Name of the organization                          |
| description | varchar | 1000 | not null | Description                                       |

### gbds.transactions

Error in the Federal Revenue `transactions`table is intended to store information about the biometric data quality analysis of a transaction.

<table><thead><tr><th width="200">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>Primary key; Private key of the relational database</td></tr><tr><td>tguid</td><td>varchar</td><td>255</td><td>not null</td><td>Reference to the transaction<code>transactions.tguid</code></td></tr><tr><td>pguid</td><td>varchar</td><td>255</td><td>null</td><td>UGUID of the person stored in HBase</td></tr><tr><td>active</td><td>tinyint</td><td>1</td><td>not null</td><td>Defines whether a version of a person is eligible for Master Registry transactions</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>creation date and time timestamp of the transaction</td></tr><tr><td>updated</td><td>datetime</td><td>6</td><td>null</td><td>date and time timestamp of the last modification of the transaction</td></tr><tr><td>quality_status</td><td>enum</td><td>n/a</td><td>null</td><td>Quality analysis status (such as <code>OK</code>, <code>PENDING</code>, <code>APPROVED</code>, and others)</td></tr><tr><td>enroll_status</td><td>enum</td><td>n/a</td><td>null</td><td>Enrollment status (such as <code>ENQUEUED</code>, <code>PROCESSING</code>, <code>FAILED</code>, and others)</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>Elapsed time for model extractions</td></tr><tr><td>extraction_quality_time</td><td>int</td><td>11</td><td>null</td><td>Elapsed time for quality extractions</td></tr><tr><td>match_time</td><td>int</td><td>11</td><td>null</td><td>Matching time elapsed for this transaction</td></tr><tr><td>post_match_time</td><td>int</td><td>11</td><td>null</td><td>Elapsed time after matching for this transaction</td></tr><tr><td>total_time</td><td>int</td><td>11</td><td>null</td><td>Total operation minus queue waiting time</td></tr><tr><td>transaction_type</td><td>enum</td><td>n/a</td><td>null</td><td>Type of transaction.<br>enum<code>('ENROLL','UPDATE','VERIFY','IDENTIFY')</code></td></tr><tr><td>latent</td><td>tinyint</td><td>1</td><td>null</td><td>Flags whether the transaction is a latent search</td></tr><tr><td>ul</td><td>tinyint</td><td>1</td><td>null</td><td>Flags whether the transaction is a UL search</td></tr><tr><td>num_fingers</td><td>int</td><td>11</td><td>null</td><td>The number of fingerprints in the transaction</td></tr><tr><td>num_faces</td><td>int</td><td>11</td><td>null</td><td>The number of face images in the transaction (0 or 1)</td></tr><tr><td>finger_quality_extracted</td><td>tinyint</td><td>1</td><td>null</td><td>False if fingerprints can be extracted</td></tr><tr><td>face_quality_extracted</td><td>tinyint</td><td>1</td><td>null</td><td>False if the face can be extracted in the background. True if it has already been extracted.</td></tr><tr><td>ginger_extractor_type</td><td>enum</td><td>n/a</td><td>null</td><td>Type of ginger extractor used in the transaction. 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>Fingerprint global quality score</td></tr><tr><td>global_quality</td><td>int</td><td>11</td><td>null</td><td>Profile global quality score</td></tr><tr><td>quality_extraction_api_id</td><td>varchar</td><td>255</td><td>null</td><td>API ID that will perform or performed the quality extraction</td></tr><tr><td>quality_extraction_msg</td><td>varchar</td><td>512</td><td>null</td><td>Message related to quality extraction</td></tr><tr><td>api_id</td><td>varchar</td><td>255</td><td>null</td><td>The ID of the API instance that received the transaction</td></tr><tr><td>gbds_version</td><td>varchar</td><td>255</td><td>null</td><td>Version of GBDS that processed the transaction</td></tr></tbody></table>

### gbds.transaction\_fields

Error in the Federal Revenue `transaction_fields`table aims to store information about quality information and link it to the non-biometric information of the `fields`table.

<table><thead><tr><th width="120">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>Primary key; Private key of the relational database</td></tr><tr><td>fkey</td><td>varchar</td><td>255</td><td>null</td><td>Field key that describes the information contained (for example, whether it is a blood type, mother's name, date of birth, document, etc.) Reference to<code>fields.fkey</code></td></tr><tr><td>type</td><td>varchar</td><td>255</td><td>null</td><td>Type of information (search or <code>label</code>) Reference to<code>fields.type</code></td></tr><tr><td>fvalue</td><td>varchar</td><td>255</td><td>null</td><td>Actual value of the field (for example, the document number) Reference to<code>fields.fvalue</code></td></tr><tr><td>transaction_id</td><td>bigint</td><td>20</td><td>not null</td><td>Transaction Id. Reference to<code>transaction.id</code></td></tr></tbody></table>

### gbds.transaction\_fingerprint\_quality

| Column            | Type    | Size | Value    |
| ----------------- | ------- | ---- | -------- |
| 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">Column</th><th>Type</th><th>Size</th><th>Value</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

The table `fields`       intended to store a person's non-biometric information, being linked to the `transaction`tables `people_version`. It is described as follows:

<table><thead><tr><th width="120">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>Primary key; Private key of the relational database</td></tr><tr><td>fkey</td><td>varchar</td><td>255</td><td>null</td><td>Field key that describes the information contained (for example, whether it is a blood type, mother's name, date of birth, document, etc.)</td></tr><tr><td>field_type</td><td>varchar</td><td>255</td><td>null</td><td>Type of information (search or <code>label</code>)</td></tr><tr><td>fvalue</td><td>varchar</td><td>255</td><td>null</td><td>Actual value of the field (for example, the document number)</td></tr><tr><td>person_id</td><td>bigint</td><td>20</td><td>not null</td><td>Reference to the person<code>person.id</code></td></tr><tr><td>person_version</td><td>int</td><td>11</td><td>not null</td><td>Reference to the person<code>people_version.version</code></td></tr></tbody></table>

### gbds.exceptions

The table `exceptions`intended to store information about any biometric exception and its handling. It is described as follows:

<table><thead><tr><th width="185">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>Primary key; Private key of the relational database</td></tr><tr><td>aguid</td><td>varchar</td><td>255</td><td>not null</td><td>Stored exception HBase UGUID</td></tr><tr><td>comments</td><td>varchar</td><td>255</td><td>null</td><td>Any comments provided when handling the exception</td></tr><tr><td>_timestamp</td><td>datetime</td><td>6</td><td>null</td><td>date and time timestamp for the creation of the exception</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>Default: <code>BIOMETRIC</code></td></tr><tr><td>priority</td><td>tinyint</td><td>1</td><td>not null</td><td>References exception priority, with default value 0</td></tr><tr><td>user</td><td>varchar</td><td>255</td><td>null</td><td>Identification of the user responsible for handling the exception</td></tr><tr><td>transaction_id_50</td><td>bigint</td><td>20</td><td>not null</td><td>Foreign key: Reference to the transaction<code>transactions.id</code></td></tr><tr><td>reference_person_id</td><td>bigint</td><td>20</td><td>not null</td><td>Foreign key: Reference to the reference person<code>people.id</code></td></tr><tr><td>trusted_master_record</td><td>tinyint</td><td>1</td><td>null</td><td>Flag for use of transaction data in future analyses</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 of the exception group it belongs to</td></tr><tr><td>fusion_score</td><td>int</td><td>11</td><td>not null</td><td>Stores the score evaluated in the fusion</td></tr><tr><td>fusion_decision</td><td>enum</td><td>n/a</td><td>null</td><td>Stores the decision made by the fusion rules;<br>enum<code>('HIT','NO_HIT','UNCERTAIN','UNCERTAIN_EXPERT','MISMATCH','ERROR')</code></td></tr></tbody></table>

### gbds.exception\_decision

The table `exception_decision`intended to store information about decisions regarding an exception. It is described as follows:

<table><thead><tr><th width="110">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>candidate_id</td><td>bigint</td><td>20</td><td>not null</td><td>Identifies the exception candidate;<br>Forms primary key with user</td></tr><tr><td>user</td><td>varchar</td><td>100</td><td>not null</td><td>User responsible for handling the exception</td></tr><tr><td>locked_timestamp</td><td>datetime</td><td>6</td><td>not null</td><td>Date the exception was allocated</td></tr><tr><td>decision_timestamp</td><td>datetime</td><td>6</td><td>not null</td><td>Date the decision was generated</td></tr><tr><td>decision</td><td>enum</td><td>n/a</td><td>not null</td><td>Decision made for the exception<br>enum<code>('HIT','NO_HIT','UNCERTAIN','UNCERTAIN_EXPERT','ERROR')</code></td></tr></tbody></table>

### gbds.exception\_candidates

The table `exception_candidates`intended to store information about candidates for a biometric exception. It is described as follows:

<table><thead><tr><th width="185">Column</th><th width="102">Type</th><th width="100">Size</th><th width="89.0909423828125">Value</th><th>Additional Information</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Primary key; Private key of the relational database</td></tr><tr><td>exception_id</td><td>bigint</td><td>20</td><td>not null</td><td>Exception ID</td></tr><tr><td>reference_transaction_id</td><td>bigint</td><td>20</td><td>null</td><td>Reference transaction ID</td></tr><tr><td>query_index</td><td>int</td><td>11</td><td>not null</td><td>Index of the incoming biometric</td></tr><tr><td>reference_index</td><td>int</td><td>11</td><td>not null</td><td>Index of the reference biometric</td></tr><tr><td>query_quality</td><td>int</td><td>11</td><td>null</td><td>Quality of the incoming biometric</td></tr><tr><td>reference_quality</td><td>int</td><td>255</td><td>null</td><td>Quality of the reference biometric</td></tr><tr><td>score</td><td>int</td><td>20</td><td>null</td><td>Corresponding matching score</td></tr><tr><td>locked_user</td><td>varchar</td><td>20</td><td>null</td><td>User allocated to handle the exception</td></tr><tr><td>locked_timestamp</td><td>datetime</td><td>20</td><td>null</td><td>Date the exception was allocated</td></tr><tr><td>locked_timeout</td><td>datetime</td><td>11</td><td>null</td><td>Date the exception will be deallocated due to inactivity</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

The table `exception_group`intended to store information about candidates for a biometric exception. It is described as follows:

<table><thead><tr><th width="188.6363525390625">Column</th><th width="103.54547119140625">Type</th><th width="104.3636474609375">Size</th><th width="111.6363525390625">Value </th><th>Additional Information</th></tr></thead><tbody><tr><td>id</td><td>bigint</td><td>20</td><td>not null</td><td>Primary key; Uniquely identifies the exception group</td></tr><tr><td>gguid</td><td>varchar</td><td>100</td><td>not null</td><td>UGUID of the exception group stored in HBase</td></tr><tr><td>tguid</td><td>varchar</td><td>100</td><td>not null</td><td>UGUID of the transaction stored in HBase</td></tr><tr><td>target</td><td>enum</td><td>n/a</td><td>not null</td><td>Type of exception to which the group refers.<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>Decision made for handling the exception<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 in which the exception handling process is<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>References exception priority, with default value 0</td></tr><tr><td>created</td><td>datetime</td><td>6</td><td>not null</td><td>Group creation timestamp</td></tr><tr><td>updated</td><td>timestamp</td><td>n/a</td><td>not null</td><td>Creation timestamp </td></tr><tr><td>user</td><td>varchar</td><td>100</td><td>null</td><td>User who handled the group</td></tr><tr><td>message</td><td>varchar</td><td>4000</td><td>null</td><td>Message left after handling</td></tr><tr><td>comments</td><td>varchar</td><td>4000</td><td>null</td><td>Comments to be left in case of lights out</td></tr><tr><td>locked_user</td><td>varchar</td><td>100</td><td>null</td><td>User allocated to handle the group</td></tr><tr><td>locked_timestamp</td><td>datetime</td><td>6</td><td>null</td><td>Date the exception group was allocated</td></tr><tr><td>locked_timeout</td><td>datetime</td><td>6</td><td>null</td><td>Date the allocation will expire if not handled</td></tr><tr><td>decision_parameters</td><td>varchar</td><td>5000</td><td>null</td><td>Decision parameters used (id, values and 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>New TGUID generated in case of REFUSED</td></tr><tr><td>lights_out_criteria</td><td>varchar</td><td>5000</td><td>null</td><td>Indicates what was considered in Lights Out<br>EX: {"matchedBiographics":["name","date of birth","parentage"]}</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

The exception\_group\_organizations table is intended to store information about organizations related to an exception group.

<table><thead><tr><th width="120">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>exception_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID of the exception group;<br>Forms primary key with <code>exception_id</code></td></tr><tr><td>exception_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID of the exception to which the organization refers;<br>Forms primary key with <code>exception_group_id</code>;</td></tr><tr><td>organization</td><td>varchar</td><td>100</td><td>not null</td><td>Name of the organization</td></tr><tr><td>origin</td><td>enum</td><td>n/a</td><td>not null</td><td>References the type of origin of the organization within the exception<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

The table `exception_group_refused` intended to store information about refused exception groups and the groups responsible for the refusal.

<table><thead><tr><th width="110">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>exception_group_id</td><td>bigint</td><td>20</td><td>not nuIl</td><td>ID of the reference exception group</td></tr><tr><td>refused_exception_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>ID of the refused exception group</td></tr></tbody></table>

### gbds.key\_format

The gbds.key\_format table is intended to store keys and formats for key validation.

<table><thead><tr><th width="110">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>key_id</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key;<br>Defines the key ID</td></tr><tr><td>format_type</td><td>enum</td><td>6</td><td>not null</td><td>Default <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>Defines the minimum key length</td></tr><tr><td>max_length</td><td>int</td><td>Up to 4Gb</td><td>null</td><td>Defines the maximum key length</td></tr></tbody></table>

### gbds.operation\_log

The gbds.operation\_log table is used to store operation logs.

<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>Internal identification ID</td></tr><tr><td>guid</td><td>varchar</td><td>100</td><td>null</td><td>Universal unique identifier</td></tr><tr><td>user</td><td>varchar</td><td>100</td><td>null</td><td>User responsible for the action</td></tr><tr><td>log_timestamp</td><td>datetime</td><td>-</td><td>not null</td><td>Log creation date</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>Biometric index</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>Description of the operation to which the operation refers</td></tr><tr><td>tguid</td><td>varchar</td><td>100</td><td>null</td><td>Unique identifier of the transaction</td></tr><tr><td>pguid</td><td>varchar</td><td>100</td><td>null</td><td>Unique identifier of the profile to which the operation refers</td></tr><tr><td>kept_tguids</td><td>varchar</td><td>1000</td><td>null</td><td>TGUIDs to be kept by the Lights Out KEEP operation</td></tr></tbody></table>

### gbds.apis

The `apis`is used by GBDS to manage multiple active APIs at the same time.

<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>api_id</td><td>varchar</td><td>255</td><td>not null</td><td>Unique API instance ID</td></tr><tr><td>hostname</td><td>varchar</td><td>255</td><td>not null</td><td>Host name of the node where the API is running</td></tr><tr><td>port</td><td>int</td><td>11</td><td>not null</td><td>Port where the API is running</td></tr><tr><td>type</td><td>varchar</td><td>255</td><td>null</td><td>Type of API instance (LEADER, RUNNER or null)</td></tr></tbody></table>

On API startup, each API will look for itself in this table. If not found by host name/IP and port, it inserts itself into the table with a GUID as *api-id* and *null type* , which means it is not ready for quality extraction. Changes applied directly to this table will be scanned every 15 minutes.

## Unresolved Latent (UL) tables <a href="#unsolved-latent-ul-tables" id="unsolved-latent-ul-tables"></a>

The Unresolved Latents tables are used to store information about UL data and candidates. The tables are described below.

### gbds.ul

The table `ul`was designed to store all GBDS ULs and is described as follows:

<table><thead><tr><th width="150">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>uguid</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key; UGUID stored in HBase</td></tr><tr><td>ul_status</td><td>varchar</td><td>255</td><td>not null</td><td><br><code>UNSOLVED</code>or <code>SOLVED</code>; HBase replicates this status</td></tr><tr><td>creation_time</td><td>timestamp</td><td>4</td><td>not null</td><td><code>current_timestamp</code>by default</td></tr><tr><td>person_pguid</td><td>varchar</td><td>255</td><td>null</td><td>PGUID of the corresponding person when<code>SOLVED</code></td></tr><tr><td>person_tguid</td><td>varchar</td><td>255</td><td>null</td><td>TGUID of the corresponding person when<code>SOLVED</code></td></tr><tr><td>fragment_id</td><td>varchar</td><td>255</td><td>null</td><td>Original fragment ID for the fragment that generated the UL</td></tr><tr><td>fragment_case_id</td><td>varchar</td><td>255</td><td>null</td><td>Original case ID for the fragment that generated the UL</td></tr><tr><td>fragment_index</td><td>int</td><td>11</td><td>null</td><td>Fragment index for the UL. By default, the index is set to <code>-1</code>(unknown index, any index)</td></tr><tr><td>analysis_user</td><td>varchar</td><td>255</td><td>null</td><td>User responsible for the UL analysis</td></tr><tr><td>analysis_timestamp</td><td>timestamp</td><td>4</td><td>null</td><td>Datetime timestamp of the analysis</td></tr><tr><td>group_guid</td><td>varchar</td><td>255</td><td>not null</td><td>Grouping GUID (to list linked ULs)</td></tr></tbody></table>

### gbds.ul\_candidates

The table `ul_candidates` was designed to store the candidates of each UL that GBDS keeps after any *REVERSE LATENT MATCH* performed on enrollments that generated a *match* with a UL, and is described as follows:

<table><thead><tr><th width="110">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>ul_uguid</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key; UL UGUID</td></tr><tr><td>person_pguid</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key; candidate PGUID</td></tr><tr><td>person_tguid</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key; candidate TGUID</td></tr><tr><td>person_index</td><td>int</td><td>11</td><td>not null</td><td>Primary key; candidate index finger</td></tr><tr><td>score</td><td>int</td><td>11</td><td>not null</td><td>Corresponding matching score for the candidate</td></tr><tr><td>deleted</td><td>tinyint</td><td>1</td><td>not null</td><td><code>0</code>by default, indicates whether the candidate was excluded to be omitted when performing candidate listing operations</td></tr><tr><td>minutiae</td><td>longblob</td><td>Up to 4Gb</td><td>null</td><td>JSON serialization containing the corresponding minutiae. It is a list with the following structure:<br> - <code>queryIndex</code>, <code>int</code> <br>- <code>referenceIndex</code>,<code>int</code></td></tr></tbody></table>

## Notification tables

Notification tables are used to store data for auditing purposes, such as emails, people to be notified and groups.

### gbds.notifications

The table `gbds.notifications` was designed to store information related to GBDS operation notifications

<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>Internal auto-increment index;<br>Primary key;</td></tr><tr><td>nguid</td><td>varchar</td><td>40</td><td>not null</td><td>Unique identifier of the notification</td></tr><tr><td>tguid</td><td>varchar</td><td>40</td><td>not null</td><td>Unique identifier of the transaction responsible for the notification</td></tr><tr><td>created</td><td>datetime</td><td>6</td><td>not null</td><td>Timestamp of the notification creation date</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 of the operation described in operation</td></tr><tr><td>sender</td><td>varchar</td><td>255</td><td>null</td><td>Module responsible for the notification</td></tr><tr><td>uguid</td><td>varchar</td><td>40</td><td>null</td><td>User identifier</td></tr><tr><td>pguid</td><td>varchar</td><td>40</td><td>null</td><td>PGUID to which the operation refers</td></tr><tr><td>new_tguid</td><td>varchar</td><td>40</td><td>null</td><td>New TGUID generated, for example, when generating an 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>Treatment in the case of Lights Out analysis</td></tr><tr><td>_update</td><td>tinyint</td><td>1</td><td>null</td><td>Update flag</td></tr><tr><td>trusted</td><td>tinyint</td><td>1</td><td>null</td><td>Trusted enroll/update flag</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>Additional relevant data (GGUID, comments etc)</td></tr><tr><td>external_ids</td><td>mediumblob</td><td>-</td><td>null</td><td>External IDs and their values;<br>{"name":"protocol", "key":"000000000"}</td></tr><tr><td>related_external_ids</td><td>mediumblob</td><td>-</td><td>null</td><td>Related external IDs</td></tr><tr><td>kept_tguids</td><td>mediumblob</td><td>-</td><td>null</td><td>TGUIDs to be kept in case of Lights Out</td></tr></tbody></table>

###

### gbds.notify\_user

The table `notify_user` was designed to store the authenticated user data for gbds.

<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>Primary key; unique user ID.</td></tr><tr><td>username</td><td>varchar</td><td>255</td><td>not null</td><td>authenticated gbds username</td></tr></tbody></table>

### gbds.notify\_group

The table `notify_group`was designed to store information about notification groups.

<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>Primary key;</td></tr><tr><td>name</td><td>varchar</td><td>255</td><td>not null</td><td>Group name</td></tr><tr><td>enabled</td><td>tinyint</td><td>1</td><td>not null</td><td>Defines whether the group will be active or not</td></tr></tbody></table>

### gbds.notify\_group\_email

The table `notify_group_email` was designed to store the emails of a given group.

<table><thead><tr><th width="130">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>notify_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>Primary key; Group ID.</td></tr><tr><td>email</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key;<br>Email that belongs to the group</td></tr></tbody></table>

### gbds.notify\_user\_group

The table `notify_user_group` was designed to store information about which group a given user belongs to.

<table><thead><tr><th width="130">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>notify_user_id</td><td>bigint</td><td>20</td><td>not null</td><td>Primary key; Reference to the user<code>notify_user.id</code></td></tr><tr><td>notify_group_id</td><td>bigint</td><td>20</td><td>not null</td><td>Primary key; Reference to the group<code>notify_group_email.notify_group.id</code></td></tr></tbody></table>

### gbds.people\_transparency

The table `people_transparency` was designed to store information about a given person and which actions are taken when that person is searched.

<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>Primary key;</td></tr><tr><td>pguid</td><td>varchar</td><td>255</td><td>not null</td><td>Reference to the person<code>people.pguid</code></td></tr><tr><td>enabled</td><td>tinyint</td><td>1</td><td>not null</td><td>Reference to the person<code>people.pguid</code></td></tr><tr><td>action</td><td>varchar</td><td>255</td><td>null</td><td>Action to be taken</td></tr></tbody></table>

### gbds.people\_transparency\_group

The table `people_transparency_group` was designed to store information about the groups to which a person belongs.

<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>Primary key; Reference to 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>Primary key; Reference to the group<code>notify_group_email.notify_group.id</code></td></tr></tbody></table>

## GBDS settings tables (gbds.settings)

GBDS uses a relational database to store some API and GBDS settings. The settings table is a special table designed to control certain GBDS and GBDS API settings. These settings are stored in the `gbds.settings`table. The table may contain settings present in the GBDS API, in GBDS or in both, following the schema below:

<table><thead><tr><th width="100">Type</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>skey</td><td>varchar</td><td>255</td><td>not null</td><td>Primary key. Parameter key name.</td></tr><tr><td>stype</td><td>varchar</td><td>50</td><td>not null</td><td>Location from which the parameter comes. API or GBDS</td></tr><tr><td>svalue</td><td>varchar</td><td>4096</td><td>null</td><td>Parameter value</td></tr><tr><td>description</td><td>varchar</td><td>4096</td><td>null</td><td>Parameter description</td></tr><tr><td>stimestamp</td><td>datetime</td><td>6</td><td>not null</td><td>Timestamp</td></tr><tr><td>host</td><td>varchar</td><td>1024</td><td>null</td><td>Hostname of a node</td></tr></tbody></table>

All settings found in the table will be written to the respective file, `gbdsapi.properties`both for the GBDS API and `application.conf`for GBDS, every 15 minutes. In addition, all settings updated in memory, both in the API and in GBDS, will be propagated.

{% hint style="info" %}
The parameter value set in the `gbds.settings`table will be propagated to ALL nodes.
{% endhint %}

This feature is controlled by a configuration parameter in the table, `gbds.rdbSystemConfiguration.enabled`. This parameter will allow overriding GBDS and API configuration values. Setting the parameter value to `BOTH`will cause GBDS and API configurations to be overridden.

| gbds.settings / File configuration key                                | Type |
| --------------------------------------------------------------------- | ---- |
| 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 |

Other settings can be placed in the table `gbds.settings`in rdb and all will be written to the API or GBDS file, according to the configuration type. However, runtime memory reloads will not be performed for these new settings, only after restarting the API and/or GBDS.
