Configuración
Breadcrumbs

Variables del sistema

En esta página se documentan las variables del sistema que se configuran en la tabla App Configuration. Estas variables son cargadas por cada módulo (Kerno, Hermes, Minerva, Zeus…) en el arranque y permiten definir comportamientos globales como límites de validación, configuraciones de colas, conexiones, planificación de procesos batch, internacionalización, entre otros.

La correcta gestión de estas propiedades es fundamental para el funcionamiento de Anjana Data, tanto para administradores como para desarrolladores.

Tabla AppConfiguration del Panel de Configuración (Visión administrador)

Las variables del sistema que se configuran en la tabla App Configuration.

image-20250916-090014.png
Tabla AppConfiguration en la que se configuran las variables del sistema

Estructura de la tabla AppConfiguration

Cada variable registrada se caracteriza por los siguientes elementos:

  • Id: identificador único de la tabla. Se asigna automáticamente desde el Panel de configuración.

  • Key: propiedad a configurar conforme a la tabla de variables disponibles.

  • Value: valor que se asigna a la propiedad indicada en el campo key.

  • Internal: booleano que indica si la propiedad es visible desde la API pública (si internal = false, no debe mostrarse en claro).

  • Application: módulo al que aplica (kerno, hermes, minerva, zeus o null → aplica a todos). Para asignar el valor correcto, consultar la tabla de variables disponibles.

  • Profile: perfil de ejecución en el que aplica el valor configurado.

  • Label: campo informativo para organizar variables.

Tabla de variables disponibles

En la siguiente tabla se muestran todas las variables del sistema disponibles.

key

value

application

descripción

anjana.activiti.data

true

hermes

Flag para importar los WFs en el arrancado de Hermes

anjana.activiti.input

DC_WF, BG_WF

hermes

Carpetas a usar para poder importar WFs. Si en el editor BPM del Panel de configuración se crea una nueva carpeta para almacenar workflows, esta debe ser incluida en el campo Value de este registro.

anjana.activiti.output

/data/WF

hermes

Ruta temporal del directorio de ficheros para tratar los WFS

anjana.async.db.corePoolSize

5

kerno

Tamaño del pool de conexiones a base de datos

anjana.async.db.maxPoolSize

20

kerno

Tamaño máximo del pool de conexiones a base de datos

anjana.async.db.queueCapacity

100

kerno

Tamaño de cola de las ejecuciones a base de datos

anjana.async.hermes.corePoolSize

5

kerno

Tamaño del pool de hilos contra ejecuciones de Hermes

anjana.async.hermes.maxPoolSize

10

kerno

Tamaño máximo del pool de hilos contra ejecuciones de Hermes

anjana.async.hermes.queueCapacity

1000

kerno

Tamaño de la cola de las ejecuciones contra Hermes

anjana.async.minerva.corePoolSize

5

kerno

Tamaño del pool de hilos contra ejecuciones de Minerva

anjana.async.minerva.maxPoolSize

20

kerno

Tamaño máximo del pool de hilos contra ejecuciones de Minerva

anjana.async.minerva.queueCapacity

100

kerno

Tamaño de la cola de las ejecuciones contra Minerva

anjana.async.pool.corePoolSize

5

hermes

Tamaño del pool asíncrono de procesamiento de Hermes

anjana.async.pool.maxPoolSize

20

hermes

Tamaño máximo del pool asíncrono de procesamiento de Hermes

anjana.async.pool.queueCapacity

100

hermes

Tamaño de cola de procesamiento de Hermes

anjana.combinations.max

10

kerno

Cantidad de combinaciones a mostrar como máximo para el carrito de adherencias

anjana.expiration.days

7

kerno

Número de días que se suma a la fecha actual para fijar como fecha de expiración al objeto que depreca cuando se versiona por excel

anjana.group.crossName

Cross

zeus

Nombre del grupo que aglutina los roles cross en el perfil de usuario

anjana.internationalization.separatorNameColumnsExcel

_

kerno

Carácter para utilizar como separador de valores en atributos multivaluados en Excel

anjana.last-execution.maxRetry

0

hermes

Cantidad de reintentos en los pasos LastExecution de los WFS, siendo 0 intentos infinitos

anjana.last-execution.waitRetry

300

hermes

Tiempo de espera entre intentos en los pasos LastExecution de los WFs

anjana.mail.aws[0]

email

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’ (revisar las propiedades anjana.mail.azure[x] o anjana.mail.google[x])

anjana.mail.azure[0]

mail

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.mail.azure[1]

otherMails

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.mail.azure[2]

userPrincipalName

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.mail.db[0]

email

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.mail.google[0]

primaryEmail

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.mail.google[1]

emails

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.mail.ldap[0]

mail

zeus

Propiedad del proveedor de donde sacar el email, se pueden tener varios numerando las propiedades con ‘[numero]’

anjana.notification.expiration

4

kerno

Número de días de preaviso para las notificaciones indicando la próxima expiración de un objeto

anjana.numberDatasetFieldsForWarning

100

kerno

Cantidad de dataset_fields para considerar un Dataset grande en el que las acciones efectuadas por los usuarios les redirigirán al Portal en vez de dejarles a la espera de la finalización

anjana.numberEntitiesToSubmit

50

kerno

Cantidad de entidades a enviar a validar a la vez en la importación por Excel

anjana.provider.primary

Database

zeus

Propiedad para marcar si se quiere tener un proveedor principal preseleccionado en las pantallas de login y cuál debe ser. 

Este valor debe coincidir con la propiedad security.authentication.<proveedor> y el nombre de la instancia del proveedor elegido. 

Para base de datos y Ldap los valores son ‘Database’ y ‘Ldap’ correspondientemente.

anjana.retries

5

kerno

Reintentos en caso de fallo de comunicación en la reindexación

anjana.role.defaultRole

default


Rol que se aplica a los usuarios al registrarse en Anjana. Permite acceso a usuarios sin rol especificado en la aplicación.

anjana.scheduling.enabled

true

kerno

Flag para habilitar los batches de Kerno

anjana.scheduling.expiration

0 0 0 ? * *

kerno

Programación de la expiración de objetos (todos los días a las 00.00h)

anjana.scheduling.licenseNotification

0 0 0 ? * *

zeus

Programación de la tarea programada de aviso de caducidad de la licencia (cada día a las 00.00)

anjana.scheduling.lineageObjectsPerPacket

1000

kerno

Cantidad de objetos por paquete para procesar el linaje

anjana.scheduling.notification

0 45 7 ? * *

kerno

Programación de la notificación de entidades a expirar (todos los días a las 7.45h)

anjana.scheduling.notification

0 0 0 ? * *

zeus

Programación de la tarea programada de revisión de roles cross

anjana.scheduling.objectsPerPacket

500

kerno

Cantidad de objetos a procesar por paquete en procesamientos internos de Anjana

anjana.scheduling.threads

2

kerno

Cantidad de hilos para batches

anjana.scheduling.threadScheduleSeconds

15

kerno

Retraso en segundos entre paquetes de indexación

anjana.separatorAttribute

_-

kerno

Carácter utilizado como separador de atributos multivaluados en base de datos

anjana.tot.createCustom

false

kerno

Flag para que, en caso de que la extracción de metadato con un plugin obtenga un atributo que no se encuentre en plantilla, se cree como atributo custom del objeto

anjana.waitRetry

10

kerno

Tiempo de espera entre cada intento en caso de fallo de comunicación en la reindexación

anjana.workflow.launchIfCustomChanges

true

kerno

Flag para considerar los atributos personalizados al comprobar los cambios en un objeto para lanzar o no el workflow

ARI_OBJECT_SEPARATOR 

:


Carácter usado para separar palabras claves en el nombre de la ARI de archivos subidos a Minio o S3

default_language_app

en-US


Idioma por defecto de la aplicación, valor del campo i18n_code de la tabla zeus.languages

MAX_DECIMAL_PRECISION

16


Número máximo de dígitos en la parte decimal de un input_decimal (o array) permitido

MAX_INTEGER 

9223372036854775807


Número máximo en atributo de tipo entero, decimal, array o rango

MAX_LENGTH_TEXT_BD 

255


Número máximo de caracteres permitidos en base de datos para campos de tipo input_text y su multi idioma, como en la validación de un workflow o la solicitud de adherencia

MAX_LENGTH_TEXT_EDITOR 

300000


Número máximo de caracteres para un atributo de tipo text_area, enriched_textarea y multi idiomas de ambos permitido

MIN_DECIMAL_PRECISION 

0


Número mínimo de dígitos en la parte decimal de un input_decimal (o array) permitido

MIN_INTEGER 

-9223372036854775808


Número mínimo en atributo de tipo entero, decimal, array o rango

MIN_LENGTH_TEXT_EDITOR

1


Número mínimo de caracteres para un atributo de  tipo input_text, text_area, enriched_textarea y multi idiomas de los tres permitido

MIN_LENGTH_SEARCH_USER

0


Número mínimo de caracteres para que el buscador de usuarios comience a dar resultados

solr.module.kerno.collection

kerno

minerva

Nombre de la colección de Solr para objetos de Anjana

solr.module.kerno.generate

true

minerva

Flag para crear la colección de objetos en Solr, si no existe, en el arrancado

solr.module.kerno.replication

1

minerva

Replicación SolR de la colección de objetos

solr.module.kerno.shards

1

minerva

Sharding SolR de la colección de objetos

solr.module.recommendations.collection

recommendations

minerva

Nombre de la colección de Solr para píldoras asistenciales de Anjana

solr.module.recommendations.generate

true

minerva

Flag para crear la colección de recomendaciones en Solr, si no existe, en el arrancado

solr.module.recommendations.replication

1

minerva

Replicación SolR de la colección de recomendaciones

solr.module.recommendations.shards

1

minerva

Sharding SolR de la colección de recomendaciones

solr.multivalued-separator

_-

minerva

Carácter que se utiliza para concatenar atributos multivaluados que debe coincidir con anjana.separatorAttribute de Kerno

wf.async.waiter

20000

hermes

Tiempo de espera en ms de tareas internas de Activiti

wf.validation.automatic

true

hermes

Flag para habilitar la validación automática de tareas sin petición de acción humana

Excepciones

Debido a limitaciones de la base de datos o del propio funcionamiento de atributos, en algunos casos los valores de AppConfiguration prevalecen sobre los configurados en deTemplate Attribute Validations .

Validación en template_attribute_validations

Validación en AppConfiguration

Validación que prevalece

MAX

MAX_INTEGER

Si el valor MAX es superior a MAX_INTEGER, prevalece la validación de MAX_INTEGER.

MIN

MIN_INTEGER

Si el valor MIN es inferior a MIN_INTEGER, prevalece la validación de MIN_INTEGER.

MAX_DECIMAL_PRECISION

MAX_DECIMAL_PRECISION

Si el valor MAX_DECIMAL_PRECISION es superior a MAX_DECIMAL_PRECISION de AppConfiguration , prevalece la validación de AppConfiguration .

MIN_DECIMAL_PRECISION

MIN_DECIMAL_PRECISION

Si el valor de Template Attribute Validations es inferior al de AppConfiguration , se priorizará MIN_DECIMAL_PRECISION de AppConfiguration .

MAX_LENGTH

MAX_LENGTH_TEXT_EDITOR o MAX_LENGTH_TEXT_BD

Si el valor de MAX_LENGTH en Template Attribute Validations supera a los valores configurados en AppConfiguration, prevalece el definido en esta última:

  • MAX_LENGTH_TEXT_EDITOR, cuando se trate de atributos de tipo TEXTAREA.

  • MAX_LENGTH_TEXT_BD, cuando se trate de atributos de tipo INPUT_TEXT o de los TEXTAREA usados en los modales de workflows y adherencias.

MIN_LENGTH

MIN_LENGTH_TEXT_EDITOR

Si el valor MIN_LENGTH de Template Attribute Validations es inferior a MIN_LENGTH_TEXT_EDITOR de AppConfiguration, prevalece MIN_LENGTH_TEXT_EDITOR de AppConfiguration

Alta/Modificación de una variable en la tabla AppConfiguration

El alta o modificación de una variable implica añadir o modificar un registro en la tabla AppConfiguration.

image-20250916-094324.png
Ejemplo de configuración del idioma por defecto en AppConfiguration


Para dar de alta una capa desde el Panel de configuración:

  1. Pulsar el botón New o el Lápiz de edición según corresponda.

  2. Completar los campos:

    • Key: clave correspondiente a uno de los registros de la tabla de variables disponibles (ej.: default_language_app para establecer el idioma por defecto).

    • value: valor correspondiente a la variables, en el caso del ejemplo, código i18n del idioma para configurado en Languages (ej.: es-ES).

    • internal: booleano según corresponda (ej.: false).

    • application: valor conforme a la variable según la tabla de variables disponibles. (ej.: vacío).

    • profile: perfil de ejecución en el que aplica el valor configurado(ej.: default).

    • Label: informativo .(ej.: vacío).

  3. Pulsar en Save para guardar la capa o en Cancel para descartar.

Notas:

  • Tras el alta/modificación:

    • Es necesario ejecutar la acción Clear cache desde el Panel de configuración (Actions > Clear cache) para que los cambios se apliquen y sean visibles en el Portal de Datos.

    • En algunos casos puede ser necesario reiniciar el microservicio correspondiente (Zeus, Kerno, Minerva…)

  • Dado que las variables se cargan al arranque, el microservicio de Portuno debe estar iniciado antes que otros servicios para que los cambios se propaguen correctamente.

  • Si una variable está simultáneamente configurada en AppConfiguration y en el YAML de un microservicio, la configuración que aplica es la de AppConfiguration.