# Configuración del ETR Web Server

## Introducción

Este manual describe la configuración de los componentes del lado del servidor del *GBS ETR*. El GBS ETR es una aplicación que permite al usuario analizar y tratar excepciones generadas por el GBDS.

El procedimiento de configuración debe realizarse solo después del paso de instalación. Para más información, consulte el [Manual de Instalación de GBS Apps](/gbs/es/componentes-web/gbsappssetup.md).

## Configuración

Los pasos de configuración son:

1. Configure el [Tomcat](#configuracao-do-tomcat);
2. Configure los [Certificados](#configuracao-de-certificados);
3. Genere la [Contraseña Cifrada](#criptografia-da-senha-do-banco-de-dados);
4. Habilite el [Best of Biometrics](#habilitando-o-best-of-biometrics);
5. Configure las [Claves y Biográficos mostrados](#configurando-chaves-e-biograficos-para-aparecerem-na-lista-de-excecoes);
6. Configure el [Resalte de Etiquetas](#configuracao-de-destaque-de-rotulo);
7. Configure los [Tratamientos Permitidos](#configuracao-de-tratamentos-permitidos);
8. Configure el [Acceso Web](#configuracao-do-etr);
9. Configure el [Ambiente PSBIO](#configuracao-especifica-para-ambiente-psbio);
10. Configure el [Lights Out](#lights-out);
11. Configure otras [propiedades del config.properties](#configuracoes-finais);

Todos los pasos se describen abajo.

### Configuración del Tomcat

Edite el archivo de configuración del Tomcat para configurar los certificados y el puerto que la aplicación usará.

```bash
vi /var/lib/tomcats/etr/conf/server.xml
```

Para cambiar el puerto, busque `connector port=`. Ese es el puerto para operaciones backend.

### Configuración de Certificados

Para habilitar autenticación SSL, busque `connector port=` en el archivo `/conf/server.xml`.

Existen dos entradas. La comentada es la configuración para SSL. Quite los delimitadores de comentarios `<!--` y `-->`, luego ajuste los siguientes parámetros:

```properties
port="58194"
keystoreFile="/home/griaule/keystore"
keystorePass="password"
keyAlias="1"
clientAuth="true"
truststoreFile="/home/griaule/keystore"
truststorePass="password"
```

El parámetro `port` debe ser el puerto de red deseado para la aplicación.

Cambie la ruta del `keystoreFile` y al `truststoreFile` a los valores apropiados. Haga lo mismo para el `keystorePass` y al `truststorePass`.

El parámetro `clientAuth="true"` requerrá autenticación del servidor para el cliente y del cliente para el servidor. Esto significa que el cliente necesitará importar el certificado en el navegador para poder acceder a la aplicación.

{% hint style="warning" %}
Cuando **clientAuth** está definida como *true*, el administrador del sistema debe proporcionar el archivo **certificate.pfx** a los usuarios finales.
{% endhint %}

### Cifrado de la contraseña de la Base de Datos

En el archivo `config.properties`, el parámetro `jdbc.password` es una contraseña encriptada. Para generar la contraseña encriptada, siga los siguientes pasos:

1. Vaya al siguiente directorio:

   ```bash
   cd /var/lib/tomcats/etr/webapps/gbs-etr-server/WEB-INF/lib
   ```
2. Ejecute el comando:

   ```bash
   java -cp gbs-common-db-<versión>.jar com.griaule.commons.util.EncryptUtil <contraseñaDeseada>
   ```
3. La contraseña encriptada aparecerá después del mensaje: *"Encrypted password is:"*

{% hint style="info" %}
Guarde la contraseña encriptada. Será usada en configuraciones posteriores.
{% endhint %}

### Habilitando el Best of Biometrics

El Best of Biometrics es una operación aplicada cuando dos o más perfiles son fusionados o vinculados.

Cuando se aplica, el Best of Biometrics evalúa cada template de huella dactilar y palmar individualmente y selecciona los templates con la más alta calidad en cada dedo y/o posición de la palma entre todas las transacciones fusionadas. Luego, actualiza el perfil de la persona para unificar la "mejor" biometría en una única transacción activa que será utilizada para la comparación biométrica. Esta operación no se aplica a los templates de Face e Iris, en los cuales las imágenes más recientes reemplazarán a las más antiguas, independientemente de la calidad.

{% hint style="danger" %}
El Best of Biometrics es un recurso disponible para GBDS y para el ETR. A pesar de cumplir la misma función, ellos **NO** son el mismo proceso y **NO DEBEN** estar juntos.

Para más información, contacte al equipo de Soporte de Griaule.
{% endhint %}

Para habilitar el Best of Biometrics en el ETR, la base de datos debe tener los parámetros `treat.multiMerge.consolidation` y `bob.trustedUpdate.active` definidos como `true`.

Para crear y habilitar los parámetros:

```sql
INSERT INTO `sphinx`.`settings` (`name`, `type`, `val`) VALUES ('treat.multiMerge.consolidation', 'ETR', 'true');
INSERT INTO `sphinx`.`settings` (`name`, `type`, `val`) VALUES ('bob.trustedUpdate.active', 'ETR', 'true');
```

Para habilitar parámetros existentes:

```sql
UPDATE `sphinx`.`settings` SET `val`='false' WHERE  `name`='treat.multiMerge.consolidation' AND `type`='ETR';
UPDATE `sphinx`.`settings` SET `val`='false' WHERE  `name`='bob.trustedUpdate.active' AND `type`='ETR';
```

Si el Best of Biometrics está activo y es necesario desactivarlo, use la siguiente query:

```sql
UPDATE `sphinx`.`settings` SET `val`='false' WHERE  `name`='bob.trustedUpdate.active' AND `type`='ETR';
```

### Configurando Claves y Biográficos para Aparecer en la Lista de Excepciones

La aplicación muestra claves y biográficos en la pantalla de lista de excepciones. Es posible configurar los campos que serán mostrados (hasta dos campos), por ejemplo: CPF, idn, documentID, nombre y cualquier otro campo deseado.

Para configurar un nuevo campo, es necesario que dicho campo sea añadido en la base de datos MySQL. Haga login en el servidor MySQL usando:

```bash
mysql -u<user> -p
```

Ejecute la siguiente instrucción para verificar los campos existentes:

```sql
use sphinx;

select * from field;
```

Verifique el número de campos que retorna la consulta. Si ya posee 7 campos, el orden del nuevo debe ser 8 por ejemplo.

Ejecute la siguiente instrucción, cambiando los valores según corresponda:

```sql
INSERT INTO `sphinx`.`field` (`name`, `description_en_us`, `description_pt_br`, `description_es_es`, `field_type`, `field_kind`, `field_order`, `cardscan`) VALUES ('newField', 'descriptionEN', 'descriptionBR', 'descriptionES', 'string', 'KEY', '8', '1');
```

* newField = nombre del campo a usar
* descriptionEN = descripción en inglés
* descriptionBR = descripción en portugués
* descriptionES = descripción en español
* string = el tipo de valor (string o integer) – claves y biográficos pueden usar string
* KEY = el tipo de campo: `KEY` o `BIOGRAPHIC`
* 8 = Es el orden de los campos. Basta aumentar el número respecto a los campos ya existentes (el número actual fue retornado en la consulta anterior)
* 1 = habilitar el campo para cardscan. No es necesario cambiar este valor

Ejecute una solicitud de **GET** para la URL del endpoint `IP:port/config`.

Copie la respuesta (todo dentro de showFields).

Envíe una solicitud **POST** para la misma URL del endpoint con las configuraciones JSON modificadas (todos los campos deseados deben ser informados - campos antiguos y campos nuevos, de lo contrario solo se considerarán los campos informados):

```json
{
	"showFields": [
		{
			"name": "newField",
			"descriptionEnUs": "descriptionEN",
			"descriptionPtBr": "descriptionBR",
			"required": false,
			"type": "string",
			"kind": "KEY",
			"order": 0,
			"cardscan": true,
			"candidate-list": false
		},
		{
			"name": "name",
			"descriptionEnUs": "Name",
			"descriptionPtBr": "Nome",
			"required": false,
			"type": "string",
			"kind": "BIOGRAPHIC",
			"order": 0,
			"cardscan": true,
			"candidate-list": false
		}
	]
}
```

La respuesta correcta debe ser:

```json
{
	"status": "OK"
}
```

### Configuración de Resalte de Etiqueta

La aplicación muestra etiquetas cuando el usuario está analizando una excepción. Es posible configurar el color de resalte de dichas etiquetas.

Ejecute una solicitud de **GET** para el endpoint `IP:port/config`.

Copie la respuesta (todo dentro de la configuración del sistema).

Envíe una solicitud **POST** para la misma URL del endpoint, cambiando el siguiente ítem en el JSON copiado:

```json
{
	"highlightLabels": [
		{
			"label": "OWNED",
			"color": "#ff00f0"
		}
	]
}
```

En este caso, la etiqueta *OWNED* será resaltada con el color especificado.

### Configuración de Tratamientos Permitidos

El ETR usa el archivo `/var/lib/tomcats/etr/conf/treatments.json` para mostrar los tratamientos que estarán disponibles para el tratamiento de excepciones:

```default
SAME_FINGERS, DIFFERENT_FINGERS, INCORRECT_ENROLL, MERGE, and RECOLLECT
```

Ejemplo:

```json
{
	"key": "enroll.merge",
	"type": "ENROLL",
	"status": "MERGE_TRANSACTIONS",
	"enabled": true,
	"match-person-effect": "MERGE",
	"enroll-effect": "MERGE"
}
```

* El valor de la clave con tipo ENROLL puede ser: enroll.same\_fingers, enroll.different\_fingers, enroll.recollect, enroll.merge
* El valor de la clave con tipo UPDATE puede ser: update.same\_fingers, update.different\_fingers, update.incorrect\_enroll, update.recollect, update.merge

Para habilitarlo: defina el valor como `true` . De lo contrario, use `false`.

* El match-person-effect es el efecto que será mostrado en la pantalla del ETR para la persona de referencia en la base de datos. Valores disponibles: KEEP, DISCARD, MERGE, and BLACKLIST.
* El enroll-effect es el efecto que será mostrado en la pantalla del ETR para la persona entrante vía registro en la base de datos. Valores disponibles: KEEP, DISCARD, MERGE, and BLACKLIST.

## Archivo de Configuración de la Aplicación

Esta sección describe las posibles configuraciones del archivo `config.properties` . Para acceder a él, ábralo con:

```bash
vi /var/lib/tomcats/etr/conf/config.properties
```

Un ejemplo del archivo `config.properties` puede verse en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao).

{% hint style="danger" %}
Todas las líneas deben estar presentes en el archivo de configuración. Comentar o eliminar líneas puede causar comportamientos inesperados. Para información adicional, contacte al Equipo de Soporte de Griaule.
{% endhint %}

### Configuración del ETR

Esta sección mostrará algunas configuraciones específicas para el ETR y la configuración de IP y puerto de la aplicación que el usuario final accederá. La IP y el puerto deben ser los mismos configurados en la sección de [Configuración del Tomcat](#configuracao-do-tomcat).

```properties
etr.ip=<ip>
etr.port=<port>
etr.protocol=<protocol>
```

{% hint style="warning" %}
Asegúrese de que los parámetros de configuración `etr.ip`, `etr.port` y `etr.protocol` estén correctamente especificados en el archivo `config.properties`. En muchos casos, la IP será la misma para varias aplicaciones. Sin embargo, cada aplicación tendrá un puerto **distinto y único**.
{% endhint %}

El recurso de verificación doble para el ETR puede ser deshabilitado ejecutando la siguiente consulta en la base de datos relacional: ``UPDATE `sphinx`.`settings` SET `val`='false' WHERE `name`='etr.doubleCheck' AND `type`='ETR';``

#### Configuración específica para ambientes extra del ETR

Es posible tener más de una instancia del ETR en ejecución. Es esencial permitir que solo un ETR escuche la notificación de excepción para evitar duplicar las excepciones en la base de datos.

El parámetro de configuración `notification.active` define si el ETR escuchará las notificaciones. Solo un ETR debe tenerlo como `true` , mientras todas las demás instancias deben ser definidas como `false`.

#### Configuración específica para ambiente PSBIO

Para configurar el ambiente para PSBIO:

```properties
gbds.listExceptions.labels=COMMON_NAME_OF_CERTIFICATE
filter.people.pguid=ALL
getMatchedPersonWithTguid=false
```

La configuración `getMatchedPersonWithTguid` define los criterios para recuperar datos en excepciones de registro (enroll).

* Cuando definido como `true` , el perfil de referencia será recuperado usando el **Transaction GUID (TGUID)**
* Cuando definido como `false` , el perfil de referencia será recuperado usando el **Person GUID (PGUID)**

Al definir ese valor de configuración como `true` , la recuperación del perfil no será afectada por ninguna actualización de la persona de referencia.

{% hint style="info" %}
Esta configuración no tiene efecto en las excepciones de **actualización**.
{% endhint %}

{% hint style="danger" %}
Se recomienda encarecidamente no alterar la configuración `filter.people.pguid` sin la debida orientación, bajo riesgo de comprometer el funcionamiento del ETR. Para más información, contacte al Equipo de Soporte de Griaule.
{% endhint %}

### Lights Out

Lights Out es un recurso que permite que excepciones de registro y actualización sean tratadas automáticamente de acuerdo con los parámetros configurados. Para permitir que el lightsOut trate una excepción, los parámetros `lightsOut.enroll.active` y `lightsOut.update.active` deben ser definidos como verdaderos. Los valores posibles son `true` o `false`.

{% hint style="danger" %}
Para que el Lights Out funcione correctamente, **TODOS** los parámetros de configuración del Lights Out en el archivo `config.properties` deben estar presentes, conforme descrito en el archivo de ejemplo en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao) . La falta o eliminación de algunos parámetros de configuración puede causar comportamientos inesperados.
{% endhint %}

Además, el usuario puede personalizar el Lights Out para cada operación de registro o actualización para usar otras informaciones biométricas o biográficas. Las opciones personalizables se refieren a huellas dactilares, face, iris, informaciones biográficas y etiquetas y están descritas abajo.

{% hint style="warning" %}
Todos los parámetros abajo están disponibles para las operaciones de registro y actualización, por lo tanto, en `*lightsOut.{operación}.*` , el texto `{operación}` debe ser sustituido por `enroll` o `update`, como ejemplo el parámetro `lightsOut.{operación}.minimum.fingerprints` puede ser `lightsOut.update.minimum.fingerprints` o `lightsOut.enroll.minimum.fingerprints`.
{% endhint %}

#### Configuración de Etiquetas

La configuración de la etiqueta puede ser definida en `lightsOut.{operación}.disabled.labels` , acepta más de una etiqueta a la vez y el valor por defecto es vacío. La elección de uno o más valores deshabilitará el Lights Out si al menos uno de ellos está presente en el perfil del participante.

#### Configuración de Huellas Dactilares

Para huellas dactilares, existen tres parámetros disponibles, son:

* `lightsOut.{operación}.minimum.fingerprints` , que define las coincidencias mínimas de huella dactilar que deben ocurrir para permitir que Lights Out ejecute el tratamiento;
* `lightsOut.{operación}.fingerScore.any_finger` , que define el umbral para todos los dedos;
* `lightsOut.{operación}.fingerScore.{lado}_{dedo}` , que define el umbral para un dedo especificado. {lado} es para izquierda o derecha y {dedo} es el nombre del dedo. Los posibles valores son:
  * {lado}: left or right.
  * {dedo}: little, ring, middle, index, and thumb.

El parámetro `.any_finger` será ignorado para un dedo si el umbral del dedo específico es diferente de cero, por ejemplo, si `lightsOut.{operación}.fingerScore.right_ring=80`, el umbral para el dedo anular derecho será 80 en lugar del definido en `lightsOut.{operación}.fingerScore.any_finger`.

Todos esos parámetros de operación son definidos por `lightsOut.{operación}.fingerScoresRule` , que puede tener los valores `AT_LEAST_MINIMUM` , donde es necesario alcanzar al menos el umbral en el número de huellas dactilares configurado en `lightsOut.{operación}.minimum.fingerprints` para que el Lights Out trate la excepción, o `ALL` , donde todas las puntuaciones de huella dactilar deben alcanzar el umbral de puntuación.

#### Configuración de Face

Los parámetros configurables de face son: `lightsOut.{operación}.useFace` para habilitar el uso de face y es `lightsOut.{operación}.faceScore` para definir el umbral de calidad.

#### Configuración de Iris

Los parámetros configurables de iris son:

* `lightsOut.{operación}.useIris` que define si el iris será usado;
* `lightsOut.{operación}.minimum.irises` , que define la cantidad mínima de iris necesaria;
* `lightsOut.{operación}.irisScore.any_iris` define el umbral de calidad para todos los iris;

  > Este valor será usado si `lightsOut.{operación}.irisScore.left_iris` o `lightsOut.enroll.irisScore.right_iris` están definidos como 0, si no, se usará el valor de los dos últimos parámetros.

#### Configuración Biográfica

Las informaciones biográficas para Lights Out pueden ser activadas en el parámetro `lightsOut.{operación}.useBiographics` , los valores posibles para esos parámetros son `true` o `false`.

Las claves biográficas que necesitan estar presentes pueden ser listadas en el parámetro `lightsOut.{operación}.biographicRules` a `key:MATCH` o `key:NOT_MATCH` . Esta configuración acepta más de un parámetro a la vez, por ejemplo:

El parámetro de configuración `lightsOut.enroll.biographicRules=key1:MATCH, key2:MATCH, key3:NOT_MATCH` solo aplicará el tratamiento Lights Out a la operación de registro si key1 y key2 coinciden en ambos perfiles, key3 no coincide y las otras reglas predefinidas, como useFace, useIris, umbral de dedos y número mínimo de coincidencias de huellas dactilares también son válidas.

{% hint style="info" %}
Si alguna de esas informaciones biométricas y/o biográficas es elegida para ser usada en el Lights Out y el perfil no posee esa información, por ejemplo, no posee captura de iris y `lightsOut.{operación}.useIris=true`, el Lights Out no realizará el tratamiento.
{% endhint %}

La acción ejecutada para el tratamiento automático de excepciones puede ser definida a través del parámetro `lightsOut.{operación}.treatStatus` , los valores posibles son los mismos valores posibles para el tratamiento de la excepción por el ETR. Además, un comentario para el tratamiento elegido puede ser personalizado en el parámetro `lightsOut.{operación}.treatComments`.

### Configuraciones de Pooling

La configuración de pooling controla el comportamiento de paginación del ETR. Dos configuraciones lo controlan: `pollingPaginationMode` y `pollingPagination.size` . La primera controla si está activo o no, la segunda controla cuántas excepciones serán mostradas por paginación. La paginación por defecto del GBDS es 1000.

### Configuraciones de Transacciones Rechazadas

Las configuraciones de transacciones rechazadas controlan si el ETR debe reenviar una transacción rechazada después de que todas las excepciones que generaron esa transacción sean resueltas.

Una transacción rechazada es una transacción que generó una excepción con otra transacción que también tiene una excepción. Ejemplo:

```default
1 - El Perfil A está en el GBDS
2 - Usted envió una Transacción A y esa transacción generó una excepción con el Perfil A
3 - Después, usted envió una Transacción B y esa transacción generó una excepción con la Transacción A.
4 - El GBDS marcará la Transacción B como RECHAZADA.
```

Este recurso reenviará la Transacción B después de que la excepción generada por la Transacción A sea tratada. Para habilitar este recurso, defina `refused.active` como verdadero. El parámetro `resend.tries` define el número máximo de veces que el ETR intentará reenviar una transacción rechazada.

Otras configuraciones controlan el retraso en la operación. Estos son `updateStatusDelay`, `verifyStatusDelay`, `listRefusedDelay` y `deleteRefusedDelay` . El tiempo de retraso está definido en **segundos**.

### Configuraciones finales

Las configuraciones finales que requieren atención y deben ser editadas para coincidir con cada implementación específica son `jdbc.url`, `jdbc.username`, `jdbc.password` y `gbds.url` . Configure los parámetros de acuerdo con el ambiente.

Algunos detalles de propiedades se muestran en la subsección abajo.

{% hint style="info" %}
Recuerde reemplazar la contraseña cifrada generada en la sección [Cifrado de la contraseña de la Base de Datos](#criptografia-da-senha-do-banco-de-dados) en este archivo.
{% endhint %}

#### Descripción de Configuraciones

**listAnalysisTreatments.initialTimestamp**

> El ETR actualiza la lista de excepciones pendientes mediante consultas al GBDS que están restringidas por un intervalo de tiempo. Este parámetro define el inicio de ese intervalo de tiempo, expresado en el formato **DD/MM/AAAA HH:MM:SS** . Excepciones pendientes anteriores a este valor **no** serán listadas en los clientes ETR.

**listAnalysisTreatments.offset**

> Esta propiedad controla la duración del intervalo de tiempo usado para consultar el GBDS por excepciones pendientes, como se describe en **listAnalysisTreatments.initialTimestamp.** El valor puede ser expresado en días, horas, minutos o segundos: `1d`, `5h`, `30m` o `460s`.

**listTreatedTreatments.initialTimestamp**

> El ETR actualiza la lista de excepciones tratadas mediante consultas al GBDS que están restringidas por un intervalo de tiempo. Este parámetro define el inicio de ese intervalo de tiempo, expresado en el formato **DD/MM/AAAA HH:MM:SS** . Excepciones tratadas antes de ese valor no serán listadas en los clientes ETR.

**listTreatedTreatments.offset**

> Esta propiedad controla la duración del intervalo de tiempo usado para consultar el GBDS por excepciones tratadas, como se describe en **listTreatedTreatments.initialTimestamp** . El valor puede ser expresado en días, horas, minutos o segundos: `1d`, `5h`, `30m` o `460s`.

**listTreatments.analysisAndTreated.synchronized**

> Esta propiedad define el listado de tratamientos en el ETR. Si `true` , la aplicación listará primero todas las análisis no tratadas y luego las tratadas. Si `false` , la aplicación listará basado en el intervalo de tiempo del análisis.

**listTreatments.offsetDelay.milliseconds**

> Esta propiedad controla la duración del retraso entre cada llamada al GBDS.

## Finalizando las Configuraciones

Después de completar todos los pasos de configuración, vuelva al [Manual de Instalación de GBS Apps - Sección de Configuración](/gbs/es/componentes-web/gbsappssetup.md#configuracoes).

## Double Blind

El análisis de Double Blind se utiliza cuando hay necesidad de que cada decisión pase por un segundo análisis para confirmar la decisión. Si la segunda decisión es diferente de la primera, habrá un tercer y último veredicto de un supervisor.

Para activar o desactivar el Double Blind, la instalación del ETR Server debe estar completa. Para cambiar su estado, proceda de la siguiente manera:

1. Ingrese en el MySQL
2. Actualice la configuración de la tabla de base de datos sphinx con una de las siguientes queries:

   ```sql
   #DEACTIVATE

   UPDATE `sphinx`.`settings` SET `val`='false' WHERE  `name`='etr.doubleCheck' AND `type`='ETR';
   commit;

   #ACTIVATE

   UPDATE `sphinx`.`settings` SET `val`='true' WHERE  `name`='etr.doubleCheck' AND `type`='ETR';
   commit;
   ```
3. Reset ETR Server

## Ejemplo del Archivo de Configuración

Esta sección muestra un ejemplo del archivo `config.properties`.

```properties
#     /$$$$$$$$ /$$$$$$$$ /$$$$$$$
#    | $$_____/|__  $$__/| $$__  $$
#    | $$         | $$   | $$  \ $$
#    | $$$$$      | $$   | $$$$$$$/
#    | $$__/      | $$   | $$__  $$
#    | $$         | $$   | $$  \ $$
#    | $$$$$$$$   | $$   | $$  | $$
#    |________/   |__/   |__/  |__/

# **************************************************************************************************************
# DATABASE (RDB)

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/etr?useSSL=false
jdbc.username=griaule
jdbc.password=CDrt8vbewA2YAubPNOLZkw==
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

# **************************************************************************************************************
# GBDS CONNECTION (& AUTHENTICATION LDAP ONLY)

gbds.url=http://localhost:8085
gbds.user=gbds_bind
gbds.key=Griaule.123
gbds.logLevel=INFO
gbds.timeout=300
gbds.listExceptions.label=

# **************************************************************************************************************
# ETR * GUI

etr.ip=127.0.0.1
etr.port=8089
etr.protocol=http
locale=en_us

# **************************************************************************************************************
# ETR * CONFIGURATION

biometric.modules=FINGERPRINT,FACE
faceQuality.qtdeMinErrors=2
filter.people.pguid=ALL
fingerprint.useSDK=true
gbds.etrUser=etr_server
getMatchedPersonWithTguid.enroll=true
getMatchedPersonWithTguid.update=true
highlight.labels=
listFields=KEY:documentID,BIOGRAPHIC:name
notification.active=true
pollingPagination.size=20
pollingPaginationMode=true
profile.cacheSize=100
profile.cacheTime=5m
same.user.simultaneous.login=false
showField.tguid=true
sync.logLevel=INFO

# **************************************************************************************************************
# ETR * SEND TREATMENTS

sendTreatments.active=true

# **************************************************************************************************************
# ETR * SEARCH TREATMENTS

verifyTreatments.active=true
verifyTreatments.interval.seconds=5
verifyTreatments.maxTries=5

# **************************************************************************************************************
# ETR * POLL ANALYSIS

listAnalysisTreatments.active=true
listAnalysisTreatments.interval.minutes=30
listAnalysisTreatments.delay.minutes=5
listAnalysisTreatments.initialTimestamp=01/01/2020 00:00:00
listAnalysisTreatments.offset=1d

# **************************************************************************************************************
# ETR * POLL TREATED

listTreatedTreatments.active=true
listTreatedTreatments.interval.minutes=120
listTreatedTreatments.initialTimestamp=01/01/2020 00:00:00
listTreatedTreatments.offset=1d

# **************************************************************************************************************
# ETR * LIST TREATED

listTreatments.analysisAndTreated.synchronized=true
listTreatments.offsetDelay.milliseconds=0

# **************************************************************************************************************
# ETR * LO (ENABLE/DISABLE)

lightsOut.enroll.active=false
lightsOut.enroll.disabled.labels=

lightsOut.update.active=false
lightsOut.update.disabled.labels=

# **************************************************************************************************************
# ETR * LO FINGERPRINT

lightsOut.enroll.minimum.fingerprints=12
lightsOut.enroll.fingerScore.any_finger=50
lightsOut.enroll.fingerScore.left_little=60
lightsOut.enroll.fingerScore.left_ring=80
lightsOut.enroll.fingerScore.left_middle=0
lightsOut.enroll.fingerScore.left_index=0
lightsOut.enroll.fingerScore.left_thumb=0
lightsOut.enroll.fingerScore.right_little=0
lightsOut.enroll.fingerScore.right_ring=0
lightsOut.enroll.fingerScore.right_middle=0
lightsOut.enroll.fingerScore.right_index=0
lightsOut.enroll.fingerScore.right_thumb=0
lightsOut.enroll.fingerScoresRule=AT_LEAST_MINIMUM

lightsOut.update.minimum.fingerprints=10
lightsOut.update.fingerScore.any_finger=100
lightsOut.update.fingerScore.left_little=100
lightsOut.update.fingerScore.left_ring=100
lightsOut.update.fingerScore.left_middle=0
lightsOut.update.fingerScore.left_index=0
lightsOut.update.fingerScore.left_thumb=0
lightsOut.update.fingerScore.right_little=0
lightsOut.update.fingerScore.right_ring=0
lightsOut.update.fingerScore.right_middle=0
lightsOut.update.fingerScore.right_index=0
lightsOut.update.fingerScore.right_thumb=0
lightsOut.update.fingerScoresRule=ALL

# **************************************************************************************************************
# ETR * LO OTHER (FACE/IRIS/BIOGRAPHIC)

lightsOut.enroll.useFace=false
lightsOut.enroll.faceScore=70
lightsOut.enroll.useIris=false
lightsOut.enroll.minimum.irises=0
lightsOut.enroll.irisScore.any_iris=0
lightsOut.enroll.irisScore.left_iris=0
lightsOut.enroll.irisScore.right_iris=0
lightsOut.enroll.useBiographics=false
lightsOut.enroll.biographicRules=name:MATCH

lightsOut.update.useFace=false
lightsOut.update.faceScore=100
lightsOut.update.useIris=false
lightsOut.update.minimum.irises=0
lightsOut.update.irisScore.any_iris=0
lightsOut.update.irisScore.left_iris=0
lightsOut.update.irisScore.right_iris=0
lightsOut.update.useBiographics=false
lightsOut.update.biographicRules=name:MATCH

# **************************************************************************************************************
# ETR * LO TREATMENT

lightsOut.enroll.treatStatus=MERGE_TRANSACTIONS
lightsOut.enroll.treatComments=Treated by ETR Lights Out

lightsOut.update.treatStatus=SAME_FINGERS
lightsOut.update.treatComments=Treated by ETR Lights Out

# **************************************************************************************************************
# ETR * Refused Thread

refused.active=true
updateStatusDelay=60
verifyRefusedDelay=60
listRefusedDelay=60
deleteRefusedDelay=60
resend.tries=3

# *************************************************************************************************************
# ADDITIONAL CONFIGURATION
#gbds.additionalHeaders={}
#gbds.flushDebugRequests=false
#gbds.proxy.url=
#gbds.proxy.port=
#gbds.enroll.priority=DEFAULT_PRIORITY
#gbds.trustedEnroll.priority=DEFAULT_PRIORITY
#externalIdName=null
```


---

# 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/gbs/es/componentes-web/etrwebconfig.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.
