# Configuración del Intelligence Web Server

## Introducción

Este manual describe la configuración de los componentes del lado del servidor de la aplicación *GBS Intelligence*. Intelligence es una aplicación que realiza búsquedas en la base de datos del GBDS con valores textuales como identificadores.

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;
2. Configure los Certificados;
3. Genere la contraseña encriptada;
4. Finalice las configuraciones en el archivo config.properties.

Todos los pasos se describen abajo. 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 Tomcat

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

```sh
vi /var/lib/tomcats/intelligence/conf/server.xml
```

Para cambiar el puerto, busque `connector port=`. Éste 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"` requerirá autenticación del servidor hacia el cliente y del cliente hacia 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 %}

### Encriptación 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:

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

   ```sh
   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 %}

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

Para configurar el archivo, ábralo con:

```sh
vi /var/lib/tomcats/intelligence/conf/config.properties
```

Los cambios más importantes en este archivo son los parámetros `jdbc.url`, `jdbc.username`, `jdbc.password` y `gbds.url`. Configúrelos de acuerdo con su entorno.

El archivo de configuración completo se muestra en la sección [Ejemplo del Archivo de Configuración](#exemplo-do-arquivo-de-configuracao).

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

#### Configuraciones de Intelligence

El último paso es configurar la IP y el puerto de la aplicación que el usuario final irá a acceder. Debe ser la misma IP y puerto configurados en la sección [Configuración del Tomcat](#configuracao-do-tomcat).

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

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

## 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).

## 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://<db-ip>:3306/sphinx?useSSL=false
jdbc.username=<db-username>
jdbc.password=<db-password>
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

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

gbds.url=http://<gbds-ip>:8085
gbds.user=<gbds-username>
gbds.key=<gbds-password>
gbds.logLevel=INFO
gbds.timeout=300
gbds.intelligenceUser=intelligence_server

# ***********************************************************************************************************************
# INTELLIGENCE * GUI

intelligence.ip=<intelligence-ip>
intelligence.port=8122
intelligence.protocol=http
locale=en_us

# ***********************************************************************************************************************
# INTELLIGENCE * CONFIGURATION

biometric.modules=FINGERPRINT,FACE
fingerprint.useSDK=true
highlight.labels=
listFields=KEY:documentID
pollingPagination.size=20
pollingPaginationMode=true
profile.cacheSize=100
same.user.simultaneous.login=false
server.standalone.port=8085
sync.logLevel=INFO

# ***********************************************************************************************************************
# ADDITIONAL CONFIGURATION

listFields=KEY:documentID
alwaysSearchExternalIDS=false
```


---

# 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/intelligencewebconfig.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.
