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
.

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 campokey
. -
Internal
: booleano que indica si la propiedad es visible desde la API pública (siinternal = false
, no debe mostrarse en claro). -
Application
: módulo al que aplica (kerno
,hermes
,minerva
,zeus
onull
→ 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 |
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] |
|
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] |
|
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] |
|
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] |
|
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 |
Validación en |
Validación que prevalece |
---|---|---|
|
|
Si el valor MAX es superior a MAX_INTEGER, prevalece la validación de MAX_INTEGER. |
|
|
Si el valor MIN es inferior a MIN_INTEGER, prevalece la validación de MIN_INTEGER. |
|
|
Si el valor MAX_DECIMAL_PRECISION es superior a MAX_DECIMAL_PRECISION de |
|
|
Si el valor de |
|
|
Si el valor de MAX_LENGTH en
|
|
|
Si el valor MIN_LENGTH de |
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
.

Para dar de alta una capa desde el Panel de configuración:
-
Pulsar el botón New o el Lápiz de edición según corresponda.
-
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 enLanguages
(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).
-
-
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 deAppConfiguration
.