Configuración
Breadcrumbs

Esquema Portuno

El modelo de base de datos se muestra en la siguiente imagen:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXd7V0fnPwuGeTlXB8_idQc-wT0N91uXmuwGszJ9AybEt03vTjDfni6SzSnYIIZF0zTop4hFNBrsSJ6xps5Tr0aHrHVEY0q3Y1XOCk75gSR7c1p7L5FwjgHptSUJBKksMhQvowwu?key=2PcvLUZ1WxxKITqTRHX99Q
  1. Variables del sistema

Las variables del sistema se configuran en la tabla app_configuration y son cargadas por cada módulo (Kerno, Hermes, Minerva...) en el arranque.

Estas variables permiten identificar, por ejemplo, caracteres separadores de valores o ARIs, valores máximos o mínimos para las validaciones por defecto de los atributos de plantilla, la periodicidad de ejecución de los procesos batch…

Estructura de la tabla

Cada variable registrada se caracteriza por los siguientes elementos:

  • id: identificador único de la tabla.

  • internal: boolean utilizado para indicar si una propiedad se puede ver desde la API pública en claro (si internal es ‘false’ no debe verse en claro).

  • config_key: propiedad a configurar.

  • value: el valor que adquiere la propiedad.

  • application: módulo al que aplica la propiedad. 

Puede ser ‘kerno’, ‘hermes’, ‘minerva’, ‘zeus’ o  tener valor nulo, en cuyo caso aplica a todos los módulos.

  • label: campo informativo que permite organizar las variables.

  • profile: perfil de ejecución en el que aplica la propiedad con su valor.


Es necesario que dicha tabla tenga las siguientes propiedades, siendo:

  • config_key la misma config_key que se incluye en la tabla

  • value el valor por defecto que Anjana proporciona y que se puede ser modificado

  • application el mismo valor que application en la tabla

  • descripción, que no existe en la tabla y es una mera explicación de cada propiedad


config_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

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 en configuración

Debido a limitaciones de la base de datos o el propio funcionamiento del atributo, hay casos en los que es necesario indicar un límite en algunos componentes y priorizar el valor configurado de la tabla appConfigurations ante la configurada en templateAtributtesValidations.

Si el valor de templateAtributtesValidations es mayor al valor que hay en appConfigurations, se priorizará el valor de appConfigurations.

Los casos son los siguientes:

  • MAX: Si el valor MAX de template_attribute_validations es superior a MAX_INTEGER de appConfigurations, se priorizará MAX_INTEGER de appConfigurations.

  • MIN: Si el valor MIN de template_attribute_validations es inferior a MIN_INTEGER de appConfigurations, se priorizará MIN_INTEGER de appConfigurations.

  • MAX_DECIMAL_PRECISION: Si el valor MAX_DECIMAL_PRECISION de template_attribute_validations es superior a MAX_DECIMAL_PRECISION de appConfigurations, se priorizará MAX_DECIMAL_PRECISION de appConfigurations.

  • MIN_DECIMAL_PRECISION: Si el valor MIN_DECIMAL_PRECISION de template_attribute_validations es inferior a MIN_DECIMAL_PRECISION de appConfigurations, se priorizará MIN_DECIMAL_PRECISION de appConfigurations.

  • MAX_LENGTH: Si el valor MAX_LENGTH de template_attribute_validations es superior a MAX_LENGTH_TEXT_EDITOR o MAX_LENGTH_TEXT_BD de appConfigurations, se priorizará MAX_LENGTH_TEXT_EDITOR en el caso de los TEXTAREA o MAX_LENGTH_TEXT_BD si es un input text o los textarea de los modales de workflows y adherencias.

  • MIN_LENGTH: Si el valor MIN_LENGTH de template_attribute_validations es inferior a MIN_LENGTH_TEXT_EDITOR de appConfigurations, se priorizará MIN_LENGTH_TEXT_EDITOR de appConfigurations. 


Visión de Administrador

El alta de una nueva variable desde el panel de administración de Anjana Data se realiza en appConfigurations:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXf-QZXUzdY13ioyjMs1VS4iMOZA1pK-c7Go_vx7q8xuJ5fJm60sxkXYLKms8uYturRjmbgOy9bvVxAzAaHKWzPo9-vC0VKaYIDuiOTOKyDBxJPCTuBkkA-n6w_09VpYKJjdA4bVjg?key=2PcvLUZ1WxxKITqTRHX99Q

Al acceder se muestra una tabla que contiene todas las variables de la aplicación de la configuración actual. 

La creación de una nueva variable se realiza mediante el botón New:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXc7H7iYwSuWPo-Ql97yWrN4ZrfFXOQiiiPLlvyUpEJSW1tWqrgiWy6gh711jjjLsWvLhJp5yEyUe0b9RXnhIWx4HHp1oApsak4grkOX5584XtZ8Sgb7vzVDv_aSsNui_8DZyf6izg?key=2PcvLUZ1WxxKITqTRHX99Q

A continuación, se muestra cómo crear un parámetro de configuración:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXfuBbsEPsg8IAIo3_nNt_jovN9bHBISsdIIjRGxIYqo0dHDs_P1WmaEZYn6uR2sUrlvuapg0MmmQbPSXcHmP_jEiJLl2kZZUls8gCfp50osbM4bEP0XBCh7YWSwY2q5Xr3Ge7DQOg?key=2PcvLUZ1WxxKITqTRHX99Q


Visión de Desarrollador

Para añadir las variables de configuración hay que configurar la tabla app_configurations del esquema Portuno. Para ello, hay que rellenar un sql como el siguiente:

INSERT INTO portuno.app_configuration (id, internal, config_key, value, application) VALUES

(4, false, 'ACCESS_MINIO_URL', ' http://s3service:9000', NULL), 

(5, false, 'MIN_LENGTH_TEXT_EDITOR', '1', NULL), 

(6, false, 'MAX_LENGTH_TEXT_BD', '255', NULL), 

(9, false, 'MIN_DECIMAL_PRECISION', '1', NULL), 

(10, false, 'MAX_INTEGER', '2100000000', NULL);


NOTAS:

  • Puesto que las variables se cargan en el arranque, Portuno debe estar arrancado antes que el resto de servicios para obtener correctamente las propiedades indicadas. Si algún servicio se iniciara antes que Portuno se quedará a la espera de que Portuno esté disponible para poder cargar esta configuración y terminar su inicialización.

  • En caso de que una variable esté configurada en app_configuration y en un fichero yml, la configuración que aplica es la de app_configuration.


  1. Traducciones

Las traducciones disponibles para el portal en los distintos idiomas configurados en Anjana se encuentran almacenadas en la tabla translations. Por ello, cuando se añaden nuevos textos o se incorpora un nuevo idioma a la aplicación, es necesario incorporar aquí esas nuevas traducciones. 

Cualquier cambio en esta tabla requiere la actualización de los ficheros de traducciones desde Portuno para poder hacer uso de los nuevos textos en la aplicación.

https://lh7-rt.googleusercontent.com/docsz/AD_4nXd7Qa2jlOiWs2yhRPkUnIwBzrqPUxIoF6Gz8ADA44Ob1r6Qh9WPitmvCye9hpkQE6KJYhkVraCnpKzXWcOKOonXuMXHsWFVnm_6fHkmPTWTfG009jRFeZQTsiQuJe9cWf44GxCPLw?key=2PcvLUZ1WxxKITqTRHX99Q


Estructura de la tabla

Cada traducción registrada se caracteriza por los siguientes elementos:

  • id_translations: identificador único de la tabla.

  • config_key: clave de traducción. Cada clave debe aparecer en esta tabla tantas veces como idiomas haya configurados.

  • language: idioma de traducción en código i18n. Debe coincidir con el campo i18n_code de la tabla languages.

  • value: texto traducido al idioma indicado.

  • used_for: texto que permite segregar las traducciones por uso. Es informativo.

  • internal: boolean que permite indicar si la traducción se corresponde con un texto propio de la aplicación (internal = 'true') o si, por el contrario, se corresponde con una traducción propia de la configuración utilizada como nombres de atributos, roles… (internal = 'false').


Visión de Administrador

El alta de las traducciones se realiza en el panel de administración de Anjana Data en Translations:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXeAT-70uXL9rylXNbpv3VbqCaGLc-NScHh6EQkfn8M6BJQFohtJkTMUHHBE4Jd8O8Fzkw-IkthHmosbwpSngC-b8VGcHreGLQNmgPvteTPHe8rgv6mBsWk9CjthoGvNtSrENYDMnw?key=2PcvLUZ1WxxKITqTRHX99Q

Al acceder se muestra una tabla que contiene todas las traducciones usadas por el portal de Anjana. 

La creación de una nueva traducción se realiza mediante el botón New:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXeW5EhxRuACSHnVHmW89RI-NvEFQsA8rsidWZdVipgkAZG7Kh97qpMadxNNqB7ppyIejiumi-hG95ZnUD0DFHtECChVeyuYYlMGtqtxCkT9S7MpKAtgzIyKHxdrD1BIAVwK4DSF?key=2PcvLUZ1WxxKITqTRHX99Q

Mediante el wizard de creación se asignan valores a los elementos anteriormente descritos:

https://lh7-rt.googleusercontent.com/docsz/AD_4nXceVkLwthPljRKhRcLXriZnSpz-JFM_4eUQOfVsB7J-5VYkdd4ZkoLSifh6aQDTT-O-bgPnhUvqff8Zf98xZt3fMgf-Kt3lp8oJTeCkSaJ0zKahvwH8EvnMYvvXDTTVCTAVq-v_NrUSnptKFhZt40PtbdrN?key=2PcvLUZ1WxxKITqTRHX99Q


Visión del Desarrollador

Para añadir las traducciones hay que configurar la tabla translations del esquema Portuno. Para ello, hay que rellenar un sql como el siguiente:

INSERT INTO portuno.translations (id_translations, config_key, "language", used_for, value, internal) VALUES

(2, 'ACTION_FINISH_WORKFLOW_KEY', 'en-US', 'AUDIT', 'Workflow finished', true), 

(3, 'ACTION_FINISH_WORKFLOW_KEY', 'es-ES', 'AUDIT', 'Workflow finalizado', true), 

(4, 'ACTION_DESCRIPTION_FINISH_WORKFLOW_KEY', 'en-US', 'AUDIT', 'Finished workflow for #OBJECT_NAME#', true), 

(5, 'ACTION_DESCRIPTION_FINISH_WORKFLOW_KEY', 'es-ES', 'AUDIT', 'Workflow finalizado para #OBJECT_NAME#', true), 

(6, 'ACTION_ERROR_KEY', 'en-US', NULL, 'Error', true), 

(7, 'ACTION_ERROR_KEY', 'es-ES', NULL, 'Error', true);


NOTAS:

  • Es necesario que se configuren las traducciones siguiendo este criterio:

    • internal='true': traducciones internas de Anjana, necesarias para la correcta visualización de la aplicación

    • internal='false': traducciones de textos propios de la configuración, es decir, textos relacionados con atributos de las plantillas, menús, secciones, roles, OUs… que son configurables y varían en función del entorno y su parametría.

  • No se debe añadir en la tabla de portuno.translations dos claves de traducción distintas con el mismo texto traducido para dos atributos o para dos valores de un mismo atributo.

  • No es recomendable establecer como clave de traducción los nombres de los diferentes subtipos de objetos puesto que supondrá que estos aparezcan traducidos en el portal a pesar de que no tienen traducción.

  • Para los atributos Infraestructura, Tecnología y Zona:

    • Todas las claves de traducción de los valores posibles de dichos campos deben ser iguales que las distintas partes que componen la tripleta con la que se configura la conexión con los plugins de Tot. 

Por ejemplo: Si una tripleta en el plugin de tot de Azure se configura como azure/azure analytics/production entonces las clave de traducción del valor azure en infrastructure debe ser “azure”, para el valor de azure analytics en technology debe ser “azure analytics” y para el valor production de zone debe ser “production”.

  • Los valores de estos atributos deben no contener ‘:’, ‘#’, ‘(‘ o ‘)’ para no interferir con los identificadores internos de Anjana. 

  • Para las traducciones de los roles, la clave de traducción ha de ser el texto “ROLE.” concatenado del nombre del rol establecido en la tabla zeus.role en la columna role_name. Por ejemplo: ROLE.developer

  • Para las traducciones de los nombres de los idiomas, la clave de traducción ha de ser el código i18n del idioma en la tabla languages.


Traducciones internas deAnjana

Hay valores de traducciones internas que se repiten en diferentes claves, ya que estas se han generado según la funcionalidad o pantalla en la que se encuentren. En caso de querer cambiar una traducción interna de Anjana se tendrá que tener en cuenta que habrá que cambiar el valor de varias claves en la tabla de Translations de Portuno. 

Por ejemplo, en caso de querer cambiar la traducción de un atributo obligatorio de una entidad como Infraestructura, habrá que cambiar tanto el valor de la clave de Infraestructura del wizard de creación como la de los filtros, el atributo de la plantilla o el del tooltip de la cabecera de un objeto.

A continuación se desglosan las claves de traducción de los atributos obligatorios de las plantillas de entidades/relaciones:


Nombre:

  • COMMON.NAME

  • NEW_WIZARD_ASSISTANT.CARD_NAME

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘name’ en anjana.attribute_definition


Infraestructura:

  • NEW_WIZARD_ASSISTANT.INFRASTRUCTURE

  • TOOLTIP.INFRASTRUCTURE

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘infrastructure’ en anjana.attribute_definition


Tecnología:

  • NEW_WIZARD_ASSISTANT.TECHNOLOGY

  • TOOLTIP.TECHNOLOGY

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘technology’ en anjana.attribute_definition


Zona:

  • NEW_WIZARD_ASSISTANT.ZONE

  • TOOLTIP.ZONE

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘zone’ en anjana.attribute_definition


Localización:

  • NEW_WIZARD_ASSISTANT.PATH

  • TOOLTIP.PATH

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘path’ en anjana.attribute_definition


Unidad Organizativa:

  • CONTAINER

  • GRAPH.NODE_ORGANIZATIONAL_UNIT

  • MODAL.ORGANIZATIONAL_UNIT

  • TOOLTIP.ORGANIZATIONAL_UNIT

  • FILTERS.ORGANIZATIONAL_UNIT

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘organizationalUnit’ en anjana.attribute_definition


Posición:

  • COMMON.POSITION

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘position’ en anjana.attribute_definition


Nombre físico:

  • COMMON.PHYSICAL_NAME

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘physicalName’ en anjana.attribute_definition


Origen:

  • COMMON.SOURCE

  • FORM_RELATION.SOURCE

  • RELATION.SOURCE

  • SOURCE

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘source’ en anjana.attribute_definition


Destino:

  • FORM_RELATION.DESTINATION

  • RELATION.DESTINATION

  • FILTERS.DESTINATION

  • DESTINATION

  • labelTranslationKey y placeHolderTranslationKey del atributo con name = ‘destination’ en anjana.attribute_definition