1. Introducción

LUCA BDS es una potente herramienta web de análisis que te permitirá tomar decisiones a partir de los datos de tu compañía. Al ser una aplicación web podremos acceder desde cualquier dispositivo en el que tengamos instalado un navegador, simplemente tendremos que abrir la URL de nuestra instancia. LUCA requiere de autenticación para poder acceder a ella así que lo primero será introducir nuestro usuario y contraseña en el login que se nos presenta.

login
Figura 1.1: Login

1.1. Escritorio

Una vez iniciada la sesión se mostrará el escritorio de aplicaciones donde veremos aquellas a las cuales tengamos acceso. Puede ser que alguna aplicación se encuentre en mantenimiento y no podamos acceder a ella temporalmente hasta que se vuelva a publicar una vez se hayan realizado los cambios oportunos.

desktop
Figura 1.2: Escritorio

En la barra de menú superior, a la derecha, tenemos un botón para abrir nuestro escritorio de aplicaciones cuando estemos en cualquier otro lugar y queramos volver al escritorio.

Al lado del botón de ir al escritorio, nos muestra el nombre del usuario que está actualmente identificado en LUCA. Al hacer clic en el nombre, nos mostrará un menú contextual con las siguientes opciones:

Configuración de LUCA

Este menú solo será visible si el usuario tiene permisos para poder configurar elementos (consultas, gráficas, dashboards…​)

Nombre de usuario

Nos muestra el nombre del usuario autenticado en el cual haciendo clic sobre él podremos editar la información del usuario y actualizar la contraseña. Desde este apartado también podremos cambiar el tema de LUCA y poder elegir entre el tema claro (por defecto) y el oscuro. Para más información ir a la sección Información del usuario.

Cerrar sesión

Nos permitirá cerrar sesión.

Acerca

Muestra información acerca de LUCA BDS, versión utilizada, detalle de la licencia…​

Menu
Figura 1.3: Menú de usuario

1.2. Aplicaciones

Una vez que seleccionamos una aplicación de nuestro escritorio nos llevará a la pantalla en la que nos encontraremos la siguiente estructura.

app detail
Figura 1.4: Aplicación
Menú (1)

El menú de la aplicación contiene los menús y submenus configurados para cada aplicación. Un menú contiene tantos submenus como se quiera. Los submenus abren los distintos elementos que se hayan configurado, pueden ser enlaces a consultas, árboles, formularios, gráficas o dashboards. Más adelante veremos con detalle cada uno de ellos.

Miga de pan (2)

Visible en todo momento, nos va a indicar donde nos encontramos en la aplicación. Cuando naveguemos por los distintos submenus irá cambiando y en el caso de que la aplicación tenga un dashboard principal podremos navegar a éste haciendo clic sobre el primer elemento de la miga de pan, que coincide con el nombre de la aplicación.

Dashboard (3)

Es el contenedor de la aplicación. Las aplicaciones pueden tener un dashboard principal definido, esto quiere decir que según entremos nos cargará un dashboard con la información deseada. En el caso de que no haya dashboard configurado no nos aparecerá ninguna información. Cuando se navega por los distintos submenus, el contenido de estos se mostrará aquí.

1.3. Información del usuario

Para acceder a la información del usuario hay que hacer clic en el usuario autenticado, en la barra superior, y seleccionar la opción que muestra el nombre de usuario del menú contextual.

user info
Figura 1.5: Información del usuario

Desde aquí cada usuario podrá actualizar la información básica relativa a su perfil, cambiar la contraseña en el caso de que el tipo de usuario lo permita y elegir entre el tema claro y oscuro. Todos los cambios que se realicen necesitan de confirmación para que se apliquen correctamente.

1.4. Configuración de LUCA

Los usuarios con permisos de configuración en LUCA podrán acceder a este apartado desde el menú contextual que aparece al hacer clic sobre el usuario autenticado en la barra superior. Si el usuario tiene los permisos adecuados la opción Configuración de LUCA será visible para él.

user menu configuration
Figura 1.6: Menú del usuario

Una vez dentro, un usuario con todos los permisos de configuración verá la siguiente pantalla.

luca configuration view
Figura 1.7: Configuración de LUCA

Como contenido principal tenemos un pequeño dashboard con accesos rápidos a Mis Elementos. Estos son todos aquellos elementos de LUCA que hayan sido editados por el usuario autenticado. De esta forma podremos acceder de forma ágil a los últimos elementos editados por nosotros.

La barra lateral izquierda contiene los accesos a las vistas de administración de los diferentes elementos configurables en LUCA: Administración, Consultas, Árboles, Formularios, Gráficas, Dashboards, Aplicaciones y Mailing. Podemos desplegar y replegar la barra lateral pulsando sobre el botón de las tres rayas situado en la barra de navegación superior, al lado del icono de LUCA.

Las pantallas de administración de items tienen la misma estructura:

item administration
Figura 1.8: Administración de consultas
Los usuarios solo verán los grupos y los elementos a los que tienen acceso. Un usuario tiene acceso a un elemento si este pertenece a un grupo al cual tiene permisos.
A diferencia de la versión 2.X, en la versión 3.0 los usuarios solo van a ver los grupos a los cuales tienen permisos. En versiones anteriores, si por ejemplo el usuario tenía el permiso de 'Administración de consultas', podía ver todos los grupos desde la gestión de consultas aún sin tener acceso explícito a ellos.

Por un lado, en la parte izquierda tenemos el árbol con los diferentes grupos disponibles, por los que podremos navegar de manera sencilla haciendo clic sobre el grupo deseado. De esta forma nos filtrará los elementos que pertenezcan a ese grupo. Además podemos contraer las diferentes carpetas para tener una visión más clara de los diferentes grupos.

En la parte superior derecha nos encontramos con los botones de acciones. Estos nos permitirán realizar acciones sobre un elemento seleccionado de la tabla:

Actualizar

Refrescar los resultados de la tabla.

Crear

Crear un nuevo elemento.

Editar

Editar un elemento existente.

Eliminar

Eliminar un elemento que ya este creado.

Ejecutar

Ejecutar un elemento.

Otros
  • Clonar un elemento. El clonado solo está disponible para las consultas, gráficas, dashboards y aplicaciones.

  • Crear enlace de un elemento. Esto nos permitirá compartir los elementos de manera sencilla.

  • Uso del elemento. Podremos visualizar dónde se está utilizando el elemento dentro de LUCA.

Debajo de las acciones se encuentran los filtros, los cuales podremos utilizar para realizar una búsqueda de los elementos deseados de manera rápida. La búsqueda por texto nos filtrará buscando por los campos nombre, descripción y usuario de edición. Es necesario pulsar enter una vez que se ha escrito la búsqueda deseada.

Por último, tenemos la tabla de elementos en la que nos aparecen los items disponibles para el usuario autenticado. Por cada elemento se muestra el nombre, descripción, grupo, fecha de edición y usuario de edición. Debajo de la tabla se encuentra el paginador, el cual podemos utilizar para navegar por las distintas páginas.

1.5. Cambios en la versión 3.0

En el caso de que venga de una versión anterior, LUCA 3.0 tiene cambios importantes respecto a versiones anteriores. Revise estos cambios antes de migrar a la versión 3.0 para poder adaptarse a ellos si fuera necesario.

El módulo de Join ha sido deprecado y la versión 3.0 no cuenta con esta funcionalidad. Debido al casi uso inexistente se ha decidido no soportarlo más y queda eliminado para esta y futuras versiones.
El módulo de Reportes ha sido deprecado y la versión 3.0 no cuenta con esta funcionalidad. En futuras versiones está previsto desarrollar dashboards exportables, lo cual será mucho más útil y más fácil de utilizar.
Las ejecuciones de consultas asíncronas y planificadas no están implementadas en la versión 3.0
Las gráficas de tipo Embudo, Pirámide, Cascada y Mapa de Riesgos no están implementadas en la versión 3.0.
Los dashboard de tipo carrusel no están implementados en la versión 3.0.

2. Administración

Desde el menú de administración vamos a poder controlar todo lo relativo a la seguridad de LUCA, los datos de conexión disponibles para ejecutar consultas y una serie de configuración adicional de la aplicación.

administration
Figura 2.1: Administración

La vista de administración nos muestra un pequeño dashboard con el resumen de los distintos elementos existentes en LUCA. Cada uno de ellos tiene enlaces a las distintas pantallas de administración.

Dependiendo de los permisos del usuario verá más o menos opciones en el menú lateral. La Figura 2.1 está realizada con un usuario que posee todos los permisos de administración de LUCA.

2.1. Usuarios

Como explicamos al principio, para acceder a LUCA es necesario disponer de un usuario y contraseña. Los usuarios tienen asociados los permisos de seguridad (acciones que pueden realizar dentro de la aplicación), permisos a los datos de conexión (datos que pueden visualizar) y permisos a los grupos de LUCA (carpetas en las que se almacenan los elementos de LUCA). Con estos tres niveles de seguridad quedan cubiertos los accesos y nos podemos asegurar que los usuarios solo vean lo que nosotros les configuremos.

user admin
Figura 2.2: Administración de usuarios

La versión 3.0 de LUCA utiliza un Single Sign On como sistema de autenticación y autorización. Los usuarios están dados de alta en este SSO y la administración de usuarios de LUCA simplemente servirá como pasarela para realizar acciones sobre el SSO. Para más información ir al apartado del SSO.

A diferencia de versiones anteriores a la 3.0, desaparece el tipo de usuario Interno, LDAP Interno y LDAP Externo. Ahora todos los usuarios provienen del SSO, que dentro de este pueden estar dados de alta como usuarios con contraseña o de proveedores de identidad externos (LDAP, Active Directory o Kerberos)

2.1.1. Creación de usuarios

LUCA nos va a permitir dar de alta usuarios con contraseña en el SSO de LUCA. Para crear un nuevo usuario simplemente tenemos que pulsar sobre el botón de crear y rellenar los campos solicitados.

create user
Figura 2.3: Creación de usuarios

Si el usuario lo hemos dado de alta previamente en el SSO y queremos añadirle a LUCA, debemos importar el usuario.

2.1.2. Importar usuarios

Esta opción nos permite importar los usuarios que han sido previamente creados en el SSO. También podremos importar usuarios de tipo Service Account o Usuario de Servicio los cuales corresponden a usuarios de un cliente de tipo Client Credentials que esté dado de alta en Keycloak.

Para importar los usuarios tendremos que pulsar en el último botón que se encuentra en la barra de acciones de la administración de usuarios y buscar el usuario o usuarios que queremos importar.

import users
Figura 2.4: Importación de usuarios

2.1.3. Edición de usuarios

Podemos editar un usuario seleccionándolo en la tabla y pulsando el botón de editar. Se abrirá un formulario con los campos a editar. El nombre de usuario nunca se podrá editar y en el caso de que el usuario provenga de un proveedor de identidad externo, como un LDAP, tampoco se podrá editar el email.

edit user
Figura 2.5: Edición de usuarios

La ventana de edición nos muestra pestañas informativas en los que podemos ver un resumen de los permisos, datasources, grupos y aplicaciones a los que pertenece o que el usuario tiene acceso.

Una vez terminamos de editarlo pulsamos en aceptar y se guardarán los cambios.

Desde LUCA no es posible editar la contraseña a un usuario que no es el nuestro. Para ello es necesario ir al SSO y realizar dicha acción desde allí.

2.1.4. Desactivar usuarios

Los usuarios en LUCA no se pueden borrar, solo se podrán desactivar. Para ello seleccionamos el usuario y pulsamos sobre el botón de borrar. Nos preguntará si estamos seguros antes de realizar la operación. Podemos activar un usuario filtrando por usuarios desactivados y en la edición de dicho usuario marcar el check activo.

2.2. Perfiles

Los perfiles es la forma más rápida y recomendable de administrar los diferentes permisos y accesos de los usuarios en la plataforma LUCA. Nos permiten asignar a multiples usuarios, acceso a datasources, grupos y aplicaciones y dar los roles necesarios para que puedan realizar las acciones que queramos.

profiles
Figura 2.6: Administración de perfiles
Es una buena práctica crear un perfil por aplicación en el que se le asigne los datasources y grupos usados y los roles necesarios para poder ejecutarla. De esta manera, cada vez que queremos asignar un usuario a una aplicación solo tenemos que incluirle en el perfil correspondiente.

Todo perfil requiere de un nombre y una descripción detallada para dar información sobre los permisos que está aplicando ese perfil. Un perfil se puede desactivar en cualquier momento, por lo que quedan anulados los permisos que otorga. También, se puede marcar un perfil como por perfil defecto, esto quiere decir que todos los usuarios heredan los permisos de se perfil sin necesidad de asignarle usuarios de forma específica.

create profile
Figura 2.6: Creación de perfiles

La ventana nos muestra los distintos elementos que podemos asignar a un perfil. Todas las pestañas de asignación guardan la misma estructura. En la tabla de la izquierda aparecen los elementos disponibles y en la tabla de la derecha los elementos asignados. Podemos asignar o desasignar elementos utilizando los botones centrales.

Todos los cambios que se realicen necesitan ser guardados, por lo que es necesario pulsar aceptar para confirmar los cambios.
En los grupos asignados podremos marcar si queremos que el usuario tenga permisos de edición sobre ese grupo o no. Que un usuario tenga permisos de edición sobre un grupo quiere decir que va a poder crear y editar elementos que se encuentren sobre el grupo, sino solo podrá ejecutar los elementos del grupo indicado.

2.3. Roles

Los roles son agrupaciones de permisos de LUCA. Los permisos corresponden con las distintas acciones que se pueden realizar, por ejemplo, poder crear y editar consultas, gráficas, dashboards…​

roles
Figura 2.7: Administración de roles
Tabla 2.1: Permisos
Categoría Permiso

Administración

Administración de Usuarios: Da acceso a la administración de usuarios
Administración de Perfiles: Da acceso a la administración de perfiles
Administración de Roles: Da acceso a la administración de roles
Administración de Grupos: Da acceso a la administración de grupos
Administración de Sistemas: Da acceso a la administración de sistemas
Administración de Datasources: Da acceso a la administración de datasources
Administración de LUCA: Da acceso a la configuración avanzada de LUCA
Acceso a la configuración siempre: Anula el permiso de solo aplicaciones. Si un usuario tiene ambos, el permiso de solo aplicaciones no tendrá efecto.

Común

Creación enalces públicos: Permite crear enlaces públicos
Creación enalces públicos permanentes: Permite crear enlaces públicos permanentes

Aplicaciones

Acceso solo a las aplicaciones: Evita que el usuario pueda entrar a la configuración de LUCA y solo pueda acceder al escritorio de aplicaciones y sus aplicaciones.
Administración de aplicaciones: Permite que el usuario pueda editar cualquier aplicación que está en edición aunque no sea suya y ver las privadas de otros usuarios.
Creación de aplicaciones: Permite que el usuario pueda crear nuevas aplicaciones
Edición de aplicaciones: Permite que el usuario pueda editar aplicaciones existentes
Borrado de aplicaciones: Permite que el usuario pueda eliminar aplicaciones

Consultas

Administrador de consultas: Permite que el usuario pueda editar cualquier consulta que está en edición aunque no sea suya y ver las privadas de otros usuarios.
Creación de consultas: Permite que el usuario pueda crear nuevas consultas
Edición de consultas: Permite que el usuario pueda editar consultas existentes
Borrado de consultas: Permite que el usuario pueda eliminar consultas
Ejecución de consultas: Permite que el usuario pueda ejecutar consultas

Árboles

Administrador de árboles: Permite que el usuario pueda editar cualquier árbol que esté en edición aunque no sea suyo y ver los privadas de otros usuarios.
Creación de árboles: Permite que el usuario pueda crear nuevos árboles
Edición de árboles: Permite que el usuario pueda editar árboles existentes
Borrado de árboles: Permite que el usuario pueda eliminar árboles
Ejecución de árboles: Permite que el usuario pueda ejecutar árboles

Formularios

Administrador de formularios: Permite que el usuario pueda editar cualquier formulario que esté en edición aunque no sea suyo y ver los privadas de otros usuarios.
Creación de formularios: Permite que el usuario pueda crear nuevos formularios
Edición de formularios: Permite que el usuario pueda editar formularios existentes
Borrado de formularios: Permite que el usuario pueda eliminar formularios

Gráficas

Administrador de gráficas: Permite que el usuario pueda editar cualquier gráfica que está en edición aunque no sea suya y ver las privadas de otros usuarios.
Creación de gráficas: Permite que el usuario pueda crear nuevas gráficas
Edición de gráficas: Permite que el usuario pueda editar gráficas existentes
Borrado de gráficas: Permite que el usuario pueda eliminar gráficas
Ejecución de gráficas: Permite que el usuario pueda ejecutar gráficas

Dashboards

Administrador de dashboards: Permite que el usuario pueda editar cualquier dashboard que esté en edición aunque no sea suyo y ver los privadas de otros usuarios.
Creación de dashboards: Permite que el usuario pueda crear nuevos dashboards
Edición de dashboards: Permite que el usuario pueda editar dashboards existentes
Borrado de dashboards: Permite que el usuario pueda eliminar dashboards
Ejecución de dashboards: Permite que el usuario pueda ejecutar dashboards

Mailing

Administrador de mailings: Permite que el usuario pueda editar cualquier mailing que esté en edición aunque no sea suyo y ver los privadas de otros usuarios.
Creación de mailings: Permite que el usuario pueda crear nuevos mailings
Edición de mailings: Permite que el usuario pueda editar mailings existentes
Borrado de mailings: Permite que el usuario pueda eliminar mailings
Ejecución de mailings: Permite que el usuario pueda ejecutar mailings

Para crear un nuevo rol, tendrás que asignarle un nombre y una descripción. Adicionalmente podrás elegir los permisos que quieres que posea, los cuales se muestran agrupados por categorías.

edit role
Figura 2.8: Creación de roles

Puedes asignar roles a usuarios de manera independiente en la pestaña Usuarios que aparece a la hora de editarlo.

Todos los cambios que se realicen necesitan ser guardados, por lo que es necesario pulsar aceptar para confirmar los cambios.

2.4. Grupos

Los grupos serán las carpetas donde almacenaremos nuestras consultas, árboles, formularios, gráficas, dashboard y aplicaciones. Tienen una estructura jerárquica la cual nos permitirá ordenar adecuadamente nuestros items. Para que un usuario pueda ejecutar o editar un elemento de un grupo necesita tener permisos sobre él.

groups
Figura 2.9: Administración de grupos

Para crear un grupo es necesario asignarle un nombre, una descripción y el grupo padre al que pertenece. Puedes asignar grupos a usuarios de manera independiente desde la pestaña Usuarios que aparece a la hora de editarlo.

La asignación de usuarios a grupos tiene la opción de permiso de edición sobre el grupo. Esto quiere decir si queremos que el usuario pueda editar elementos que están asociados al grupo o solamente ejecutarlos.
edit group
Figura 2.10: Edición de grupos

Cuando estemos editando un grupo nos aparecerá la pestaña Asignaciones, en la cual podremos ver un resumen de que usuarios tienen acceso a el grupo, ya sea por asignación directa o porque lo heredan de un perfil.

Todos los cambios que se realicen necesitan ser guardados, por lo que es necesario pulsar aceptar para confirmar los cambios.

2.5. Sistemas

Un sistema se puede definir como una fuente de información que agrupará uno o varios datasources. Todas las consultas deberán estar asociadas a uno de ellos, sobre el que posteriormente se ejecutarán. Un sistema admite varios datasources para soportar multiples entornos sobre los que ejecutar la misma consulta, por ejemplo, sobre un entorno de Producción y Preproducción.

systems
Figura 2.11: Administración de sistemas

Los sistemas más comunes son los de tipo Base de Datos, ya que son los que más opciones nos permiten a la hora de ejecutar consultas. A continuación se detallan los distintos tipos de sistemas soportados:

Tabla 2.2: Tipos de sistema
Categoría Tipo

Bases de datos

MySQL / MariaDb
Oracle
Postgres
SQL Server
Redshif
DB2
AS400 DB2

Http

REST
SOAP
Log

Para dar de alta un nuevo sistema tendremos que indicar un nombre, descripción y uno de los tipos indicados anteriormente. Una vez que guardemos el sistema ya podremos asignarle los datasources correspondientes. Solo se podrán asignar datasources del mismo tipo que el sistema y no se pueden asignar dos datasources con el mismo entorno a la vez.

edit system
Figura 2.11: Edición de sistemas
Los sistemas se pueden desactivar, esto hará que todas las consultas y elementos relacionados con el sistema dejen de estar disponibles para la ejecución.
Todos los cambios que se realicen necesitan ser guardados, por lo que es necesario pulsar aceptar para confirmar los cambios.

2.6. Entornos

Los entornos simplemente nos servirán para identificar la cadena de conexión sobre la que queremos ejecutar la consulta. En el caso de que un sistema tenga varios datasources, a la hora de ejecutar las consultas de ese sistema, nos aparecerá un combo en el cual tendremos que seleccionar sobre qué entorno queremos ejecutarla.

environments
Figura 2.12: Administración de entornos

Para crear un entorno solo tendremos que proporcionar un nombre y una descripción. El nombre del entorno será el texto que aparezca en el combo de selección a la hora de ejecutar consultas.

Todos los cambios que se realicen necesitan ser guardados, por lo que es necesario pulsar aceptar para confirmar los cambios.

2.7. Datasources

Los datasources o cadenas de conexión representan la forma en la que nos vamos a conectar a los datos para extraer la información necesaria en los informes de LUCA. Actualmente existen dos grandes grupos de tipos de datasources, las cadenas de conexión a Bases de Datos relacionales o las conexiones a servicios expuestos a través de http/s.

datasources
Figura 2.13: Administración de datasources

Al igual que en el resto de los elementos de administración, para crear un nuevo datasource deberemos proporcionar un nombre y una descripción. Además tendremos que indicar:

Tipo

El tipo de datasource a crear. La lista de tipos está definida en el apartado sistemas en la Tabla 2.2. Tipos de sistema

Tipo operación

Indica las acciones que se van a poder realizar sobre el datasource. En el caso de que el datasource sea de solo lectura jamás se podrán ejecutar consultas de tipo insert, update o delete sobre él.

Entorno

Nos indicará el entorno asociado al datasource

A mayores, dependiendo del tipo de datasource elegido tendremos que rellenar los campos obligatorios en la pestaña Configuración.

Puedes asignar datasources a usuarios de manera independiente desde la pestaña Usuarios que aparece a la hora de editarlo. En la pestaña Asignaciones, solo visible cuando estás editando un datasource existente, puedes ver un resumen de que usuarios tienen permisos al datasource, ya sea por asignación directa o por heredarlo de un perfil.

Todos los cambios que se realicen necesitan ser guardados, por lo que es necesario pulsar aceptar para confirmar los cambios.

2.7.1. Bases de datos

Url

Representa la url de tipo JDBC necesaria para conectarse al datasource.

Usuario

Usuario con permisos sobre la BD indicada en la url.

Contraseña

Contraseña del usuario de BD.

Consulta de validación

Consulta que se ejecuta para probar que una conexión del pool de conexiones es válida. Son consultas simples como SELECT 1 en MySQL o SELECT 1 FROM DUAL en Oracle.

Remove Abandoned Timeout

Tiempo en segundos antes de que una conexión activa se cierre. En el caso de que una consulta sea pesada y tarde mucho tiempo en ejecutarse, este tiempo deberá ser al menos el tiempo máximo de la consulta más pesada.

Initial size

El tamaño inicial del pool de conexiones. Es decir, las conexiones que se abren a la BD cuando se crear el datasource esperando a ser usadas.

Max active

Número máximo de conexiones activas.

Max idle

Número máximo de conexiones desocupadas.

Min idle

Número mínimo de conexiones desocupadas.

Max wait

Tiempo máximo en milisegundos de espera para conectarse al datasource.

2.7.2. Http

Protocolo

http o https.

Dominio

Dominio donde se encuentra el servicio http.

Puerto

El puerto por el que se va a conectar al servicio. Por defecto será 80 para http y 443 para https.

Url base

Path común que se concatena con el dominio. Por defecto será /

Seguridad

Tipo de seguridad necesario para conectarse al servicio:

  • Ninguno: No es necesario ningún tipo de seguridad

  • Http Basic: Autenticación http basic. Se envía el usuario y contraseña como base64(user:password) en el header Authorization de la petición.

  • NTLM: Autenticación de tipo NTLM de Microsoft.

  • WS Usuario Token: Autenticación WS Security con usuario y contraseña.

  • WS X.509 Encryption Signing: Autenticación WS Security mediante certificado X509 encriptado y firmado.

  • OAuth 2.0 - Username Password: Autenticación OAuth 2.0 utilizando el flujo usuario y contraseña.

  • OAuth 2.0 - Client Credentials: Autenticación OAuth 2.0 utilizando el flujo client credentials.

  • OAuth 2.0 - Password sin cliente (Deprecado): Autenticación OAuth 2.0 utilizando el flujo de usuario y contraseña pero sin tener que incluir un client-id y client-secret.

Max active

Número máximo de conexiones activas.

Max time idle

Tiempo máximo, en milisegundos, de vida de la conexión.

2.8. Avanzado

En la administración avanzada vamos a poder configurar ciertas paramétricas que afectarán al funcionamiento de toda la instancia de LUCA.

admin advanced
Figura 2.13: Administración avanzada

Encontraremos que está dividido en los siguientes tres apartados:

General
Configuraciones generales de la aplicación.

Formato de fecha por defecto

Este será el valor que tomarán las fechas si no se les especifica un formato concreto.

Número decimales por defecto

Número máximo de decimales por defecto, salvo que se especifique lo contrario en cada variable de salida.

Tamaños del paginado

Tamaños del paginado disponibles para todos los paginadores de LUCA y entre los cuales el usuario podrá elegir.

Tamaño del paginado por defecto

El tamaño de página por defecto que tendrán todas las tablas de LUCA.

Menús de aplicaciones visibles

Por último, podremos elegir si queremos que los usuarios sin permisos en las opciones de menú de una aplicación los puedan ver como desactivados o directamente no aparezcan. En caso de que marquemos la opción de que los vean, se les mostrarán como desactivados.


Configuración de consultas
Parámetricas relativas a la ejecución de consultas.

Tamaño máximo de exportación

Tamaño máximo permitido de elementos a exportar a csv o Excel. En caso de que una consulta tenga configurado un tamaño máximo de exportación, prevalecerá el de la consulta sobre la configuración general.

Separador csv

Será el separador que se utilizará en los csv generados.

Máximo número de elementos en los combos

Las variables de entrada de tipo combo no cargarán más elementos de los aquí indicados.

Combo de entorno visible

En el caso de que al ejecutar una consulta solo tengamos un entorno disponible, podemos desmarcar el check para que este no aparezca. Aunque tengamos esta opción desmarcada, el combo se mostrará en los casos en los que existan varios entornos disponibles ya que el usuario deberá escoger uno de ellos.

Combo de entorno primero

Marcaremos este checkbox en caso de que queramos que el combo de entorno aparezca al principio del filtro en lugar de al final, como aparece por defecto.


Configuración de gráficas:

Colores de las series

Colores en formato hexadecimal que indican los colores de las series de las gráficas por defecto en el caso de que no se especifique uno concreto. El orden de los colores importa y es como se irán asociando automáticamente.

Cualquier cambio que se realice necesita ser guardado, por lo que es necesario pulsar el icono de guardar de arriba a la derecha.

Configuración de licencia:

En este apartado podemos ver las características de nuestra licencia y además en caso de que seamos administradores, tendremos un botón con el cual podremos actualizar nuestra licencia. El uso de dicho botón es muy sencillo, simplemente tenemos que pulsar el botón, pegar nuestra licencia en el campo de texto y pulsar sobre actualizar. Este botón también está disponible en la ventana de error de licencia por si caduca la licencia poder renovarla.

3. Consultas

Las consultas son la base de LUCA. Se encargan de extraer los datos de los distintos sistemas de información para ofrecérselos al usuario. El resto de elementos de LUCA, como las gráficas o los árboles, tienen como base las consultas. Debido a esto, es la parte más compleja de configuración en LUCA, ya que dispone de muchas opciones de personalización.

queries
Figura 3.1: Administración de consultas
Para más información sobre la pantalla de administración de consultas ver esta sección.

3.1. Creación y edición de consultas

En la vista de creación de consultas nos encontramos con la siguiente estructura:

edit query
Figura 3.2: Creación de consultas
Configuración (1)

La parte de configuración cuenta con cuatro menús en los que podremos configurar toda la información de la consulta.

Editor (2)

Editor de texto en el que podremos escribir la consulta SQL.

Previsualización (3)

Previsualización de la consulta en la que vamos a poder probar las consultas antes de guardarlas.

Información del sistema (4)

En el caso de que el sistema de la consulta sea de tipo Base de Datos este apartado será visible. Podremos visualizar el esquema de BD con todas sus tablas y columnas.

Encima del apartado de configuración, nos encontramos los botones de acciones:

  • Colapsar la configuración: Botón para poder ocultar o mostrar el menú de la derecha que contiene toda la configuración.

  • Guardar: Guarda la información de la consulta.

  • Ejecución: Guarda y ejecuta la consulta en una nueva pantalla.

3.1.1. Detalle

El formulario Detalle es compartido entre todos los elementos de LUCA.

Detalle
Figura 3.3: Formulario detalle

Todos los elementos de LUCA van a tener un nombre y una descripción para poder ser identificados y un grupo en el que se almacena. De esta forma controlaremos el acceso a los elementos.

Además tendrá un estado:

  • Publicado: El elemento está publicado para poder ser ejecutado y cualquier usuario con los permisos necesarios podrá hacer uso de él.

  • En edición: Podremos guardar los elementos como en edición si aún estamos trabajando en ello. Solo el usuario de edición podrá editarlo y el resto de usuarios no podrán ejecutarlo.

Y una visibilidad para decidir quien puede ver el elemento:

  • Público: Todos los usuarios con acceso al grupo del elemento podrán realizar acciones en función de los permisos que tengan.

  • Privado: Solo el usuario de creación puede verlo, a excepción del administrador del elemento que también podrá verla.

  • Pública restringida: Solo disponible en gráficas. Los usuarios no podrán utilizar filtros personalizados en las gráficas y solo podrá utilizar los filtros previamente definidos.

3.1.2. Configuración

Configuración específica de la consulta donde deberemos indicar los siguientes campos.

Configuración consulta
Figura 3.4: Formulario configuración de consultas
Sistema

Sistema de información en el que se va a ejecutar la consulta.

Tipo de consulta
  • Select: Consulta de extracción de información.

  • Insert: Consulta para añadir uno o varios registros nuevos a una tabla de base de datos.

  • Delete: Consulta para borrar uno o varios registros de una tabla de base de datos.

  • Update: Consulta para actualizar uno o varios registros de una tabla de base de datos.

  • Combo: Consultas de tipo combo que devuelven un valor y un detalle para poder utilizarlo en las variables de entrada.

  • Combo estático: Las consultas de combo estático son una lista de valor y detalle que servirá para cargar un combo en una variable de entrada. Este tipo de combos son útiles para crear desplegables del estilo "Sí/No" o con una lista de opciones acotada.

  • Combo remoto: Al igual que las consultas de tipo combo son una lista de valor y detalle que servirá para cargar un combo en una variable de entrada. A diferencia de los combos normales, la consulta que carga el combo no se ejecutará hasta que el usuario empiece a filtrar por un texto. Este tipo de consultas es muy útil para combos con muchos valores, ya que el tamaño máximo de los combos está controlado por una paramétrica.

Paginación
  • Paginado: Es la opción por defecto. La consulta se extraerá los resultados en páginas en lugar de toda la información de golpe. En el caso de consultas que puedan devolver muchos registros es la opción más recomendada.

  • Paginado sin conteo: Ejecuta la consulta paginada, pero no realiza una segunda consulta la cual obtiene el número total de registros. Es recomendable escoger esta opción en el caso de que la ejecución de la consulta sea muy costosa y queramos paginarla.

  • Sin paginar: Se obtienen todos los resultados de una única vez. No es recomendable utilizar esta opción cuando la consulta puede devolver muchos datos.

Tamaño máximo de exportación

Establece el número máximo de registros que se exportarán a csv o Excel. Esta configuración prevalece sobre la paramétrica del tamaño máximo de exportación.

Tiempo en cache

Los resultados de las consultas pueden ser cacheados en memoria para no tener que volver a ejecutar la consulta. Cuando este tiempo expire, y se ejecute la consulta de nuevo, los datos se extraen nuevamente del sistema de información y volverán a ser cacheados.

Las consultas de tipo Update con preselect han desaparecido en la versión 3.0. Las consultas con preselect existentes en versiones anteriores se migrarán automáticamente a formularios.

3.1.3. Variables de entrada

Las variables de entrada nos permitirán que el usuario pueda filtrar los datos obtenidos. Por ejemplo, podremos introducir una fecha para que solo nos devuelva los datos mayores que esta.

Variables entrada
Figura 3.5: Formulario configuración variables de entrada
Clave

Nombre interno que será el utilizado en el SQL. No podrá contener espacios ni caracteres especiales.

Descripción

Nombre de la variable que será visible por los usuarios finales. En el caso de no indicar una descripción se mostrará la Clave como descriptivo.

Tipo
  • Entero: Entrada de tipo numérica. Solo acepta números enteros.

  • Decimal: Entrada de tipo numérica decimal.

  • Texto: Entrada de tipo texto.

  • Boolean: Entrada de tipo boolean. Solo admite valor true, cuando está marcada y false cuando no.

  • Fecha: Entrada de tipo fecha. Además, este tipo nos permite establecer un formato de fecha como dd/MM/yyyy, dd/MM/yyyy HH:mm, MM/yyyy…​

  • Rango temporal: Entrada de tipo rango temporal. Nos permite seleccionar un rango temporal de los existentes o crear el nuestro propio gracias al valor personalizado.

  • Fecha actual: Variable de entrada que tiene como valor la fecha actual en la que se ejecuta la consulta. Se trata de una variable de solo lectura.

  • Usuario actual: Variable de entrada que tiene como valor el nombre de usuario del usuario autenticado. Se trata de una variable de solo lectura.

Formato

En el caso de que la variable de entrada sea numérica o de tipo fecha, podremos definir un formato para esta.

Combo

Permite configurar la variable de entrada como un desplegable con valores a escoger. Este combo puede obtener los datos de una consulta de tipo Combo o de una lista de valores fijos definidos en la variable.

Multiselección

En caso de haber marcado la opción Combo podemos seleccionar esta opción si queremos escoger más de un valor en el desplegable.

Opcional

Indica si queremos que la variable de entrada sea opcional o queremos que se trate de una variable en la que se obligue al usuario a introducir un valor para poder ejecutar la consulta.

Visible

Si la variable de entrada será visible para el usuario. Por ejemplo nos puede interesar no mostrar variables de entrada de tipo Usuario actual.

Configuración avanzada

Podremos añadir una configuración más específica para cada variable, como validación mediante expresiones regulares, valores mínimos y máximos para entradas numéricas, valores por defecto y el ancho en pixels que queremos que tenga la variable.

Por último cuando tengamos todo configurado deberemos seleccionar la opción de añadir variable o confirmar variable para aplicar los cambios.

En el caso de que se trate de una consulta de tipo Insert o Update las variables de entrada serán el formulario que el usuario deba rellenar para crear o editar el registro correspondiente.
Todos los cambios realizados en las variables de entrada no se guardan automáticamente. Es necesario persistir la consulta para confirmar los cambios.

3.1.4. Variables de salida

Las variables de salida serán necesarias declararlas en el caso de que queramos utilizarlas en una gráfica, u otros elementos de LUCA, o deseemos cambiar el formato de la columna. Por ejemplo, si la consulta devuelve una fecha podremos establecer el formato de fecha que deseamos que se muestre o podremos indicar un descriptivo distinto del declarado en el SQL.

Variables salida
Figura 3.6: Formulario configuración variables de salida
Clave

Nombre que tiene la columna en el SQL.

Descripción

Nombre de la variable que será visible para los usuarios finales. En el caso de que no se defina una descripción se usará la Clave como descripción.

Tipo
  • Entero: Salida de tipo numérica. Solo acepta números enteros.

  • Decimal: Salida de tipo numérica decimal.

  • Texto: Salida de tipo texto.

  • Fecha: Salida de tipo fecha. Además, este tipo nos permite establecer un formato de fecha como dd/MM/yyyy, dd/MM/yyyy HH:mm, MM/yyyy…​

  • URL: Salida de tipo enlace o URL. Más adelante veremos con configurar una variable de este tipo.

  • Latitud-Longitud: Salida de tipo punto geográfico. El formato deberá ser LATITUD,LONGITUD, por ejemplo: 40.714123,-74.006231

Totalizador

Nos permitirá crear un totalizador al final de la tabla para la columna.

  • Conteo: Cuenta el número de resultados.

  • Distintos: Cuenta el número de resultados distintos.

  • Suma: Suma todos los elementos.

  • Media: Realiza la media entre ellos.

  • Mínimo: Devuelve el valor mínimo.

  • Máximo: Devuelve el valor máximo.

Visible

Indica si la variable de salida será visible para el usuario. Esto nos puede ser útil en el caso de que queramos declarar una variable de salida para poder utilizarla en un árbol como enlace, pero no queremos que se muestre en la tabla, por ejemplo, el identificador del registro.

Fijar columna

Fija la variable de salida al lado seleccionado de la tabla, una vez marcado el check podremos elegir el lado deseado. De esta manera cuando tengamos muchas columnas en una tabla y haya una que queramos ver siempre, la podremos fijar.

Rangos

Tenemos la posibilidad de añadir rangos para resaltar con colores ciertos valores. Podemos configurar tantos rangos como deseemos para una misma variable de salida. Para ello pulsamos en el botón Nuevo rango para configurarlo y Añadir rango una vez hayamos configurado todo:

  • Color: Color que queremos aplicar al rango.

  • Color del texto: Color para el texto en el caso que el tipo elegido sea Fondo.

  • Tipo: Podremos elegir Texto, que dará color al texto o Fondo, donde el color será aplicado al fondo de la celda.

  • Modo: Podremos elegir Celda si queremos que el color solo se aplique a la celda de la columna o Fila que hará que el color se establezca en todas las celdas de la misma fila.

  • Condiciones: Nos permitirá establecer tantas condiciones como queramos dentro de nuestro rango. Por ejemplo si una salida es OK podremos configurar una condición en la cual si el texto es igual a OK estableceremos el color verde. Si por ejemplo queremos que se pinte rojo un valor que sea mayor de 50 y menor de 100 configuraremos dos condiciones dentro de nuestro rango.

Fórmula

Permite crear variables calculadas a partir de otras variables de salida declaradas. Las variables que vayan a ser usadas deberán ir entre corchetes, también podremos usar operaciones simples para el tratamiento de datos, por ejemplo:

  • [NAME] + ' ' + [SURNAME]

  • [TIME_SECONDS] / 60

Configuración avanzada
  • Prefijo: Añade el texto que introduzcamos como prefijo para todos los valores de la columna.

  • Sufijo: Añade el texto que introduzcamos como sufijo para todos los valores de la columna.

  • Ancho: Funciona de la misma manera que las variables de entrada, definiendo el ancho en pixels de la columna de salida.

Por último cuando tengamos todo configurado deberemos seleccionar la opción de Añadir variable o Confirmar variable para aplicar los cambios.

Todos los cambios realizados en las variables de entrada no se guardan automáticamente. Es necesario persistir la consulta para confirmar los cambios.
No es necesario declarar todas las columnas que devuelve una consulta, solamente aquellas que queramos utilizar en otros elementos de LUCA o queramos aplicar un formato.

3.1.5. Editor de consultas

En la parte central superior se encuentra el editor de consultas donde podremos escribir el SQL que queremos ejecutar.

Debajo del editor nos encontramos con el apartado de previsualización donde podremos probar su ejecución. Además, nos aparecerán las variables de entrada configuradas por lo que podremos introducir valores para probar los distintos comportamientos de la consulta.

Además del SQL podemos añadir código Velocity a las consultas. El uso principal de Velocity en LUCA es para permitir que las variables de entrada sean opcionales, aunque esto no quita que se pueda utilizar para otros casos.

Para utilizar una variable de entrada en el SQL deberemos añadirla como :CLAVE. Para el ejemplo que se muestra a continuación suponemos que hay declarada una variable de entrada cuya clave es USERNAME.

select * from luca_execution_register
where username = :USERNAME

Si queremos que la variable USERNAME sea opcional tendremos que ayudarnos de Velocity. Para ello utilizaremos la directiva #if($USERNAME) …​ #end, la cual comprobará si se ha introducido algún valor en la variable de entrada. En caso de que se exista algún valor, se añadirá a la consulta todo el código incluido entre el #if …​ #end.

select * from luca_execution_register
where 1=1
#if($USERNAME)
  and username = :USERNAME
#end
Las variables en el SQL se deben utilizar con el formato :CLAVE, en cambio en el código Velocity se utilizarán con $CLAVE.

Si la variable de entrada USERNAME ha sido marcada como multiselección usaremos in #USERNAME# en lugar de = :USERNAME.

select * from luca_execution_register
where 1=1
#if($USERNAME)
  and username in #USERNAME#
#end

La directiva #USERNAME# se reemplazará por (SELECT 'username1' USERNAME UNION ALL SELECT 'username2' UNION ALL …​) a la hora de la ejecución, por lo que también podremos utilizarlo de la siguiente manera.

select *
from luca_execution_register ER
inner join #USERNAME# U ON ER.username = U.USERNAME

Hemos visto ejemplos para el uso de una sola variable de entrada, pero podremos incluir tanto código Velocity como queramos.

select * from luca_execution_register
where 1=1
#if($VARIABLE1)
  and columna1 = :VARIABLE1
#end

#if($VARIABLE2)
  and columna2 = :VARIABLE2
#end

También podemos utilizar la clausula #if …​ #elseif …​ #end.

select * from luca_execution_register
where 1=1
#if($VARIABLE1)
  and columna1 = :VARIABLE1
#elseif($VARIABLE2)
  and columna2 = :VARIABLE2
#end

Además de todo esto en caso de que tengamos alguna variable de entrada de tipo rango temporal cuya clase sea DATE_RANGE, podremos usarla con un símbolo de $ delante de la clave seguido de un punto y a continuación el valor deseado. Puede ser la fecha inicial del rango, la fecha final del rango, la fecha inicial del periodo anterior, que sería el inicio del periodo anterior al actual, y por último la fecha final del periodo anterior, siguiendo la misma lógica que la anterior. A continuación se puede ver un ejemplo de uso:

select
  case
    when execution_date >= $DATE_RANGE.dateFrom then 'current'
    else 'previous'
  end period,
  *
from executions
where execution_date
between $DATE_RANGE.prevDateFrom and $DATE_RANGE.dateTo

Sumado a todo esto, es importante conocer que el valor de la variable viene en formato string y por tanto es necesario usarlo entre comillas y convertirlo a fecha, lo cual se realiza de forma distinta en función del tipo de base de datos que estemos usando. El formato de fecha es 'dd/MM/yyyy HH:mm:ss', vamos a ver algunos ejemplos de conversión en diferentes bases de datos:

Tabla 3.1: Sintaxis conversión texto a fecha
Base de datos Sintaxis

MariaDB/MySQL

STR_TO_DATE('$DATE_RANGE.dateFrom', '%d/%m/%Y %H:%i:%s')

PostgreSQL

TO_DATE('$DATE_RANGE.dateFrom', 'DD/MM/YYYY HH:MI:SS')

SQLServer

CONVERT(varchar,'$DATE_RANGE.dateFrom',131)

Oracle

TO_DATE('$DATE_RANGE.dateFrom', 'DD/MM/YYYY HH24:MI:SS')

Gracias a las variables de tipo boolean, las cuales podemos utilizar como cualquier otra variable normal en velocity, se nos abre una nueva posibilidad que consiste en poder filtrar una columna que no esté definida como boolean, en este caso con una variable de tipo boolean con clave IS_FINISHED, de la siguiente manera:

select *
from tickets
where date_end #if($IS_FINISHED) is not null
               #else is null #end

3.2. Ejecución de consultas

query execution
Figura 3.7: Ejecución de consultas

Desde la ejecución de consultas podremos visualizar los resultados obtenidos. En la parte superior se encuentran las variables de entrada, que podemos utilizar para filtrar los resultados de la ejecución, y el entorno contra el cual queremos que se ejecute la consulta. Por último, pulsamos sobre botón Play para ejecutar la consulta.

A la derecha de los filtros nos encontramos con el botón de exportar y de generar un enlace directo a la ejecución de la consulta para poder compartirla. Para más información sobre los enlaces consultar la sección correspondiente enlaces.

3.3. Consultas Combo

Las consultas de tipo combo (Combo, Combo estático o Combo remoto) son aquellas consultas que solo se podrán utilizar para cargar valores en una variable de entrada de tipo combo.

Lo único especial en estas consultas, que se crean al igual que cualquier otro tipo de consulta SQL normal, es que es necesario que existan dos variables de salida que se llamen:

  • DETALLE: Variable de salida que contendrá el texto que se muestre al usuario en el combo.

  • VALOR: Variable de salida que representa el valor interno que se utilizará para filtrar, puede ser distinto al detalle. Por ejemplo, en el caso de que tengamos un selector de tipos en el que la variable VALOR será un valor numérico y el DETALLE será un texto descriptivo del tipo y representativo para el usuario.

Estás variables aparecerán creadas por defecto a la hora de seleccionar una consulta de tipo combo y no será necesario crearlas a mano.

3.3.1. Combo

Además de las variables de salida obligatorias, es posible dar de alta una única variable de entrada para las consultas de tipo combo. Esta variable de entrada puede tener cualquier clave y se utilizará en el caso de que se quiera enlazar una variable de tipo combo con otra cualquiera.

En el caso de que se declare más de una variable de entrada solo será utilizada la primera para poder enlazar, el resto serán ignoradas.

3.3.2. Combo remoto

Para este tipo de consultas es necesario crear una variable de entrada cuya clave sea SEARCH. Esta variable de entrada será la utilizada en el SQL para poder hacer filtrados en los resultados a partir del texto que ha introducido el usuario en la búsqueda del combo. Por ejemplo:

SELECT USERNAME AS DETALLE, USERNAME AS VALOR
FROM USERS
WHERE 1=1
  #if($SEARCH)
    AND USERNAME LIKE '%:SEARCH%'
  #end

A parte de la variable de entrada SEARCH también se podrá dar de alta una variable de entrada a mayores para poder crear un combo remoto enlazado, al igual que las consultas de tipo 'Combo'.

3.3.3. Combo estático

A diferencia de las dos anteriores, los combos estáticos tienen valores fijos y no se obtendrán a partir de ejecutar una consulta contra un sistema. Este tipo de consultas es útil cuando las opciones de un selector son pequeñas y sabemos que no va a variar con el tiempo.

static combo query
Figura 3.9: Consulta Combo estático

3.4. Consultas Http

LUCA también permite realizar consultas a servicios web API REST o SOAP.

http query
Figura 3.9: Consulta Http

A partir de la versión 3.8.0 de LUCA se ha incluido la creación de consultas Http a través de una interfaz gráfica en lugar de la sintaxis Velocity.

Las consultas creadas previamente con sintaxis Velocity seguirán funcionando con normalidad y se configurarán sin una interfaz gráfica como ayuda.

Se recomienda migrar consultas existentes con sintaxis Velocity al nuevo formato JSON para que la interfaz gráfica sea capaz de representarlas correctamente y visualizarlas de una forma más sencilla. Para más información ir a: Migración consultas Http.

3.4.1. Configuración

http query configuration
Figura 3.10: Configuración Http

En las queries a datasources de tipo Http podrás configurar los siguientes campos:

  1. Método: GET, POST, PUT o DELETE

  2. Path a añadir a tu petición a partir del dominio configurado en el Datasource. En el path se pueden utilizar variables de Velocity para por ejemplo utilizar una variable de entrada como:

    https://www.example.com/users/$user
  3. Parámetros que se concatenarán a la URL como:

    ?param1=value1&param2=value2

    Los valores de los parámetros se escapan de forma automática, por lo que no es necesario introducir el valor escapado previamente.

    Es posible utilizar código Velocity en los valores de los parámetros para utilizar variables de entrada previamente creadas. Para valores que sean muy largos o que se necesite usar velocity, existe la posibilidad de editar el valor en un editor de texto para que sea más sencilla su edición. En la parte superior de este editor, nos aparecen las variables de entrada previamente declaradas. Los botones superiores nos ayudan a añadir en el editor la variable deseada pulsando sobre ella.

    http param edition
    Figura 3.11: Edición parámetro Http

    También podemos hacer un parámetro opcional utilizando velocity de la siguiente manera:

    Clave Valor

    sortBy

    $if($sortBy)$sortBy#end

    En el caso de que no se rellene la variable de entrada sortBy el valor del parámetro estará vacío y no se añadirá a la URL.

  4. Headers que puede necesitar nuestra petición. Poseen las mismas opciones de configuración que los parámetros.

  5. Body. En el caso de que la petición necesite un body, se podrá configurar uno de tipo 'x-www-form-urlenconded' o 'application/json'.

    http body edition
    Figura 3.12: Edición body Http

Existen las variables de entrada $pageSize y $pageNumber que se pueden utilizar en cualquier apartado de la configuración de la consulta para realizar un paginado.

Estas variables están declaradas por defecto y se rellenan con los valores que contiene el paginador de la tabla. Para ello es necesario marcar la consulta como paginada.

3.4.2. Migración Velocity → JSON

Es aconsejable migrar las consultas existentes con formato Velocity al formato descrito en este apartado. En futuras versiones las consultas Http en formato Velocity serán deprecadas y no se podrán utilizar.

Antes de la versión 3.8.0 de LUCA, las consultas de tipo API REST y SOAP se configuraban rellenando un plantilla de Velocity. A partir de esta versión, existe una interfaz gráfica para facilitar toda esta configuración.

Esta interfaz genera un JSON para luego poder ser guardado en la base de datos de configuración de LUCA el cual contendrá la siguiente estructura:

{
  "method": "GET" | "POST" | "PUT" | "DELETE",
  "path": string,
  "body": string,
  "bodyType": "none" | "application/json" | "x-www-form-urlencoded",
  "parameters": Map<string, string>,
  "headers": Map<string, string>
}

Si tenemos consultas existentes que se hayan creado con el plantilla de Velocity tendremos que convertirlas al formato JSON descrito anteriormente para que la interfaz gráfica de LUCA sea capaz de entenderlo y acceder a esta nueva forma de configuración.

A continuación incluimos ejemplos con la plantilla Velocity utilizada previamente para consultas de tipo API REST y SOAP.

API REST
#set( $REST_TYPE = "GET" )
#set( $RESOURCE = "/users" )
#set( $HTTP_HEADERS = { "Content-Type": "application/json"} )
#set( $REST_TYPE = "POST" )
#set( $RESOURCE = "/users" )
#set( $HTTP_HEADERS = { "Content-Type": "application/json"} )
-----
{
  "name": "Juan",
  "age": "37"
}
SOAP
#set( $SOAP_SERVICE = "Page/SetUserProject" )
#set( $SOAP_ACTION = "urn:microsoft-dynamics-schemas/page/setuserproject:ReadMultiple" )
<SOAP-ENV:Envelope
     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:set="urn:microsoft-dynamics-schemas/page/setuserproject">
     <SOAP-ENV:Header/>
     <SOAP-ENV:Body>
          <set:ReadMultiple>
                #if ($PROYECTO)
               <set:filter>
                    <set:Field>Job_No</set:Field>
                    <set:Criteria>$PROYECTO</set:Criteria>
               </set:filter>
               #end
               #if ($DATE_INI)
                <set:filter>
                    <set:Field>Starting_Date</set:Field>
                    <set:Criteria>$DATE_INI</set:Criteria>
               </set:filter>
               #end
          </set:ReadMultiple>
     </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

3.5. Consultas LOG

LUCA dispone de un conector a ficheros de log que estén publicados por http/s. El conector da la posibilidad de realizar una búsqueda por fecha o simplemente navegar por el de forma paginada.

log query
Figura 3.13: Consulta LOG

A partir de la versión 3.8.0 de LUCA se ha incluido una nueva sintaxis en formato JSON para reemplazar a la existente de Velocity.

Las consultas creadas previamente seguirán funcionando con normalidad.

Se recomienda migrar consultas existentes con sintaxis Velocity al nuevo formato JSON. Para más información ir a: Migración consultas LOG.

3.5.1. Configuración

A diferencia de las consultas de base de datos en las que escribimos código SQL, para el conector de LOG deberemos definir un JSON con un formato específico para su correcto funcionamiento.

{
  "path": string,
  "headers": Map<string, string>,
  "date": string,
  "dateFormat": string,
  "dateRegex": string
}
  • path donde se encuentra el fichero de log al cual queremos acceder.

  • headers que podremos añadir a la petición http. Opcional.

  • date que queremos buscar en el log. Parámetro opcional en el caso de que no queramos hacer búsqueda por fecha.

  • dateFormat: Formato de fecha de Java que cumple la fecha que queremos buscar. Opcional en el caso de que no queramos buscar por fecha.

  • dateRegex: Expresión regular que cumple la fecha que queremos buscar. Opcional en el caso de que no queramos buscar por fecha.

Para el ejemplo vamos a suponer que tenemos un log publicado en www.example.com/logs/catalina.log y hemos declarado un Datasource de tipo LOG con el dominio www.example.com.

{
  "path": "/logs/catalina.log",
  "date": "$DATE",
  "dateFormat": "dd-MM-yyyy HH:mm:ss",
  "dateRegex": "[0-9]{2}-[0-9]{2}-[0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}"
}

Dentro del JSON podremos seguir utilizando código Velocity para utilizar variables de entrada o realizar algún tipo de cálculo.

3.5.2. Migración Velocity → JSON

Es aconsejable migrar las consultas existentes con formato Velocity al formato JSON descrito el apartado previo. En futuras versiones las consultas LOG en formato Velocity serán deprecadas y no se podrán utilizar.

Antes de la versión 3.8.0 de LUCA, las consultas de tipo LOG se configuraban rellenando unas variables de Velocity en un plantilla. A partir de esta versión, se ha optado por utilizar un formato más standard y utilizar JSON como definición de la consulta.

A continuación incluimos un ejemplo de la sintaxis Velocity utilizada previamente:

#set( $RUTA_LOG = "logs/catalina.log" )
#set( $FECHA = "$DATE" )
#set( $EXP_REG_FECHA = "[0-9]{2}-[0-9]{2}-[0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}" )
#set( $DATE_FORMAT = "dd-MM-yyyy HH:mm:ss" )

La labor de migración consistirá en transformar este código Velocity al JSON descrito con anterioridad.

3.6. Consola SQL

La consola SQL nos permite ejecutar consultas directamente sobre la base de datos, sin necesidad de crear y configurar una consulta, aunque está no se guardará. Para accceder tenemos que ir a la pestaña de consultas y clicar sobre el icono de la consola sql.

icon console
Figura 3.14: Icono consola SQL

En la página que se nos muestra a continuación, podemos ver como en la parte izquierda debemos seleccionar el sistema sobre el que queremos ejecutar nuestra consulta. Una vez seleccionado el sistema, podemos seleccionar también el entorno para que podamos ver el árbol de nuestra base de datos justo debajo. Podemos hacer clic sobre cualquiera de estos elementos para que se escriba directamente en nuestra consulta.

main page
Figura 3.15: Página principal

Por otra parte, tenemos el editor en el cual escribiremos nuestra consulta. Podemos crear varios editores para tener diferentes consultas, gracias al botón (1) que tenemos en la parte superior derecha. Debajo del editor encontramos la vista previa de la ejecución de nuestra consulta. En la botonera de la parte superior (2) tenemos el botón de refrescar, que se encarga de ejecutar en la vista previa la consulta del editor,además tenemos las opciones de exportar los datos de la ejecuión de la consulta tanto a csv como a excel y de colapsar o expandir el menú lateral izquierdo que contiene la configuración.

Nada de lo que se escriba en los editores se quedará guardado al cerrar o cambiar de ventana. Esta información solo estará disponible mientras permanezcamos en la consola sql.

4. Árboles

Los árboles nos van a permitir navegar a través de consultas que incluso pueden ser de sistemas diferentes. Son muy útiles para poder navegar entre información que se encuentra en orígenes distintos.

trees
Figura 4.1: Administración de árboles
Para más información sobre la pantalla de administración de aplicaciones ver esta sección.

4.1. Creación y edición de árboles

En la vista de creación de árboles nos encontramos con la siguiente estructura:

edit tree
Figura 4.2: Creación de árboles
Árbol (consultas y gráficas) (1)

En la parte izquierda de la pantalla vemos la previsualización de nuestro árbol. En caso de estar creando un nuevo árbol estará vacía.

Resultados ejecución (2)

La zona central de la pantalla está dividida en dos partes:

  • La situada en la parte superior contiene un botón de ejecución y de exportación de los datos de la consulta o de la gráfica.

  • Justo debajo de la sección mencionada arriba encontramos la sección en la que podremos visualizar la ejecución de nuestros elementos del árbol.

Configuración (3)

En la parte derecha de la pantalla nos encontramos con la sección de configuración del árbol la cual se divide en dos menús

Encima del apartado de configuración, nos encontramos los botones de acciones:

  • Guardar: Guarda la información del árbol.

  • Ejecución: Guarda y ejecuta el árbol en una nueva pantalla.

4.1.1. Detalle

Esta configuración es compartida entre todos los elementos de LUCA, para más información ir a aspectos generales.

Detalle
Figura 4.3: Formulario detalle

4.1.2. Configuración

Un árbol consta de un una consulta principal y consultas o gráficas anidadas a la consulta principal en forma de árbol. Podremos establecer tantos niveles como queramos creando submenús. En primer lugar se seleccionará una consulta principal para posteriormente poder crear uno o varios submenús. Estos submenús pueden ser consultas o gráficas que mostrarán datos en función de los enlaces entre la consulta padre y la hija y a su vez podrán tener nuevos submenús.

Configuración
Figura 4.4: Configuración de árboles
Consulta principal

Escogemos la que será la primera consulta de nuestro árbol y a partir de la cual se ejecutarán las siguientes consultas o gráficas. Podemos definir un nombre de la consulta principal que luego veremos a la izquierda en la representación del árbol.

Submenús

Podemos crear tantos como queramos tanto en el mismo nivel, como en niveles por debajo. Los submenús tienen las siguientes características:

  • Nombre del submenú.

  • Tipo puede ser consulta o gráfica.

  • Consulta o gráfica: Seleccionamos la consulta o gráfica deseada.

  • Enlaces de variables: Enlazamos las variables de entrada de nuestra consulta o gráfica con las variables de salida de la consulta del nivel superior del árbol. Cabe destacar que solo se mostrarán como variables de salida las que sean del mismo tipo que la variable de entrada.

  • Valor por defecto: Podemos elegir un valor por defecto para las variables de entrada de nuestra consulta o gráfica.

  • Formato de salida: En los de tipo consulta, podemos elegir mostrar únicamente una variable de salida aplicando un formato. Los formatos disponibles son: Text, Xml, Html, Json, SQL, URL. Para añadir el formato solo tenemos que seleccionar la variable, tipo de formato de salida y pulsar sobre Añadir formato. Para eliminar un formato existente, aparecerá en el mismo lugar un botón que dirá Eliminar formato. Por ejemplo, puede darse el caso que una variable de salida devuelva un texto que contiene Xml. En lugar de pintar todas las columnas de la consulta, podemos seleccionar la salida del Xml y aplicarle el formato para que el valor sea más legible, ya que LUCA formateará el texto y aplicará ciertos colores en función del formato elegido.

Submenu
Figura 4.5: Submenús

4.2. Ejecución de un árbol

Para comenzar a ejecutar un árbol deberemos pulsar en el botón 'play', lo que hará que se ejecute la consulta principal de este.

En la parte izquierda de la pantalla nos encontramos con el menú de navegación. El resto de la pantalla está ocupada por el filtro de la consulta, con el botón de ejecución, de exportación de resultados y el de generación del enlace de la consulta, y justo debajo de este, se mostrará la ejecución del elemento correspondiente.

Para navegar por el árbol seleccionaremos el registro de la tabla del cual queremos partir, y a continuación, pulsaremos en la opción de menú deseada del panel de navegación, situado a la izquierda de la pantalla.

tree navigation
Figura 4.6: Navegación por un árbol

5. Formularios

Los formularios nos permiten definir una forma de editar los datos de nuestros sistemas de información ya sea creando, editando o borrando registros de una base de datos.

forms
Figura 5.1: Administración de formularios
Para más información sobre la pantalla de administración de aplicaciones ver esta sección.

5.1. Creación y edición de formularios

En la vista de creación de formularios nos encontramos con la siguiente estructura:

edit form
Figura 5.2: Creación de formularios
Previsualización (1)

En la parte central de la pantalla veremos la previsualización del formulario que estamos configurando.

Configuración (2)

En la parte derecha de la pantalla nos encontramos con la sección de configuración del formulario la cual se divide en dos menús.

Encima del apartado de configuración, nos encontramos los botones de acciones:

  • Guardar: Guarda la información del árbol.

  • Ejecución: Guarda y ejecuta el árbol en una nueva pantalla.

Según vayamos configurando el formulario la previsualización se irá refrescando y podremos probar el formulario sin necesidad de guardarlo.

5.1.1. Detalle

Esta configuración es compartida entre todos los elementos de LUCA, para más información ir a aspectos generales.

Detalle
Figura 5.3: Formulario detalle

5.1.2. Configuración

Un formulario consta de hasta cuatro consultas. Si no queremos por ejemplo que en un formulario no se puedan borrar registros bastaría con no configurar la consulta de borrado.

  • Consulta de selección (obligatoria). Consulta que nos muestra los registros que vamos a poder editar, borrar o insertar.

  • Consulta de inserción (opcional). Si configuramos una consulta de inserción aparecerá un botón con un '+' en los filtros de la consulta para poder crear nuevas registros.

  • Consulta de actualización (opcional). Al configurar una consulta de actualización aparecerá el icono de edición en los filtros de la consulta. Seleccionando un registro en la tabla y pulsando el botón de edición nos permitirá editarle.

  • Consulta de borrado (opcional). Una vez configurada esta consulta nos aparecerá un icono de borrado en los filtros de la consulta. Seleccionando un registro en la tabla y pulsando el botón de borrado nos permitirá borrarle.

Formulario configuración
Figura 5.4: Formulario con las cuatro consultas configuradas

Las consultas de actualización y borrado requieren también una configuración de enlaces de variables:

  • Consulta de actualización: se presentará una pequeña tabla para realizar los enlaces. A la izquierda, en Variables de entrada aparecerán aquellas que hayan sido creadas en la consulta 'update'. A la derecha, en Variable enlazada, con un combo de las variables de salida creadas en la consulta 'select'. Seleccionaremos que variable de salida del combo quedará enlazada con que variable de entrada para que los datos del select se pasen al update.

Update
Figura 5.5: Consulta de actualización
  • Consulta de borrado: igual que la anterior. Se deberán enlazar las variables de salida del 'select' con las variables de entrada de la consulta 'delete'. Se recomienda usar una variable de entrada en el 'delete' que identifique inequívocamente al registro.

Delete
Figura 5.6: Consulta de borrado

Para configurar cada una de las cuatro posibles consultas, pulsamos sobre cada una de las opciones y seleccionamos la consulta elegida pulsando sobre el botón con un engranaje. Se abrirá una nueva pantalla donde podremos buscar y seleccionar la consulta que deseemos. Pulsamos aceptar y finalmente confirmar. En las consultas que no son obligatorias, es decir, todas menos la de selección, podemos encontrar un icono con una 'x' una vez tengamos una seleccionada para poder eliminarla si no queremos que se realice esa acción sobre el formulario (añadir, actualizar o borrar). Además podemos usar el icono del engranaje para cambiar la consulta por otra.

5.2. Ejecución de un formularios

form execution
Figura 5.7: Ejecución de un formulario

Al ejecutar un formulario nos encontramos con la ejecución de la consulta de selección configurada. En caso de que las consultas de inserción y actualización hayan sido configuradas veremos los correspondientes en la parte derecha del filtro de la consulta.

En caso de que queramos añadir o modificar algún registro, solo tenemos que pulsar en el botón correspondiente, rellenar los campos que deseamos modificar y pulsar en Guardar cambios.

form dialog
Figura 5.8: Inserción nuevo registro

Si lo que deseamos es borrar un registro, seleccionaremos en la tabla el item correspondiente, presionamos el botón de borrar y nos saldrá un mensaje de confirmación del borrado. Confirmando que queremos continuar el registro se eliminará y la tabla se actualizará para visualizar los cambios.

6. Gráficas

Las gráficas nos van a permitir representar los datos de las consultas de una forma visual.

charts
Figura 6.1: Administración de gráficas
Para más información sobre la pantalla de administración de gráficas ver esta sección.
Si viene de una versión anterior a la 3.0 deberá saber que alguna gráfica ha sido deprecada en esta versión, para más información consulte aquí.

6.1. Creación y edición de gráficas

Al seleccionar la opción de crear una nueva gráfica nos encontramos con un proceso guiado que nos facilitará los primeros ajustes de nuestra gráfica.

Lo primero será elegir el tipo de gráfica que vamos a crear:

  • Líneas, columnas, áreas o marcadores: Gráficas básicas en las que se puede mezclar indistintamente series de líneas, columnas, áreas o marcadores.

  • Tarta: Gráficas de tipo tarta o donut.

  • Mapa de calor: Gráficas de tipo mapa de calor.

  • Gauge: Gráficas de tipo gauge o indicador.

  • Tabla dinámica: Gráficas de tipo tabla collapsables y agrupadas.

  • Dispersión: Gráficas de dispersión o burbujas.

  • Simple: Gráficas simples de un único valor.

  • Html: Gráficas en las que tendremos podremos desarrollar código html para representar los datos de forma personalizada.

  • Mapa: Gráficas de tipo mapa para representar coordenadas.

chart creation
Figura 6.2: Creación de gráficas. Selección de tipo

El siguiente paso será elegir la consulta sobre la que vamos a graficar. Podremos elegir entre todas las consultas a las que tengamos permisos y que se encuentren en estado Publicada.

chart creation query
Figura 6.3: Creación de gráficas. Selección de consulta

Por último, debemos establecer al menos un filtro por defecto ya que toda gráfica en LUCA debe llevar por lo menos uno. Le asignaremos un nombre, marcaremos el checkbox Defecto, rellenaremos los valores de entrada que creamos convenientes y pulsaremos en aceptar. Una vez tengamos todos los filtros creados podremos Ir a la configuración.

chart creation filter
Figura 6.4: Creación de gráficas. Filtros

Una vez en la configuración de la gráfica nos encontraremos con la siguiente estructura:

chart creation empty
Figura 6.5: Creación de gráficas
Previsualización (1)

Previsualización de la gráfica.

Configuración (2)

Menús de configuración de las opciones de la gráfica.

Acciones (3)

Acciones disponibles:

  • Ejecutar previsualización.

  • Guardar.

  • Guardar e ir a la pantalla de ejecución.

6.1.1. Detalle

Esta configuración es compartida entre todos los elementos de LUCA, para más información ir a aspectos generales.

Detalle
Figura 6.6: Formulario detalle

6.1.2. Consulta y tipo

En este apartado podemos cambiar la consulta asociada, el tipo de gráfica pulsando sobre el tipo actual y por último se podrá definir el tiempo que estará en cache.

Consulta y tipo
Figura 6.7: Formulario consulta y tipo
A diferencia de la caché de las consultas, la caché de las gráficas solo almacena los datos agrupados, no el conjunto completo de datos.
Podemos abrir la edición de la consulta asociada a la gráfica pulsando el botón de enlace situado al lado del engranaje.

6.1.3. Filtros

Podemos observar todos los filtros de la gráfica, modificarlos, borrarlos e incluso crear nuevos. Para editar los existentes, solo tenemos que seleccionar el filtro deseado y cambiar los campos adecuados.

Filtros
Figura 6.8: Formulario filtros
Es necesario pulsar el botón Aceptar para confirmar los cambios.

6.1.4. Título y subtítulo

En este apartado podemos definir:

  • El título y subtítulo de la gráfica.

  • El color de fondo de nuestra gráfica.

  • Los márgenes de la gráfica.

Título y subtítulo
Figura 6.9: Formulario título y subtítulo

Para los títulos y subtítulos podremos elegir el tipo de letra, si queremos que sea normal, en negrita o en cursiva, además de el color de letra y el tamaño.

LUCA por defecto aplica unos márgenes automáticos a las gráficas pero podremos personalizarnos a nuestro gusto en el caso de que algo no se vea correctamente.

6.1.5. Leyenda

La configuración de la leyenda estará disponible en las gráficas de tipo básicas, mapas de calor y dispersión.

Leyenda
Figura 6.10: Configuración de leyendas

Podremos definir:

  • El color y tamaño del texto de la leyenda.

  • Si queremos que sea visible o no.

  • La posición que ocupa, que podrá ser a la derecha o abajo.

6.1.6. Líneas, columnas, áreas o marcadores

basic chart
Figura 6.10: Gráficas básicas

Las gráficas básicas, además de los menus descritos anteriormente, tienen las siguientes opciones de configuración.

Eje X

La configuración del eje X también está disponible para cualquier gráfica con ejes.

Eje X
Figura 6.11: Configuración eje X

Podremos definir las siguientes propiedades:

  • El nombre del eje.

  • El color.

  • El tamaño de los ticks o líneas que marcan los diferentes valores de la escala.

  • El ancho del eje.

  • Si queremos que sea visible o no.

  • La posición que puede ser arriba, abajo, izquierda o derecha.

  • El tipo de eje que puede ser: categórico, fecha (para ejes temporales), lineal o logarítmico.

  • El grid que es la malla de fondo que nos ayuda a leer los valores de la gráfica. Podemos elegir el color, el ancho, la opacidad y el tipo de grid, que a su vez puede ser continuo, guiones o puntos.

Eje Y

La configuración básica del eje Y es igual que la de los ejes X. La diferencia es que podremos crear varios ejes, y además, configurar valores mínimos, máximos, asíntotas y rangos.

Eje Y
Figura 6.12: Configuración eje Y
Asíntotas

Son líneas situadas en un valor concreto del eje en las cuales podremos añadir un título, color, ancho, valor en el que se situará y el tipo.

Asíntotas
Figura 6.13: Configuración asíntotas
Rangos

Son franjas entre dos valores marcadas por un rectángulo relleno con opacidad para poder ver, de forma rápida y visual, si hay algún valor en entre los mismos. En los rangos podemos definir el título, color, opacidad y el valor mínimo y máximo que lo define.

Rangos
Figura 6.14: Configuración rangos

Categorías

Las categorías representan los elementos que va a contener el eje X. Para ello, elegimos la variable que queremos que indique estos valores.

Categorías
Figura 6.15: Configuración categorías

En el caso de que la variable sea de tipo Fecha podremos elegir el tipo de agrupación que le queremos aplicar a la fecha. Por ejemplo, si queremos agrupar los datos de forma mensual elegiremos la opción Mes del año (MM/yyyy).

basic date x
Figura 6.16: Gráfica con variable fecha

Para las variables de tipo fecha también podremos elegir si queremos que las series sean temporales o no. Esto quiere decir que el eje X deje de ser categórico para pasar a ser de tipo fecha. De esta manera podremos hacer zoom y navegar a lo largo del eje X.

basic date x temporal
Figura 6.17: Gráfica con variable fecha y serie temporal
Al marcar el check Serie temporal cuando la categoría es de tipo fecha, es necesario cambiar el tipo del eje X a Fecha en lugar de Categórico.
Las series de tipo columna no se pueden utilizar cuando se trata de series temporales.
Las series de tipo marcador solo se pueden utilizar cuando se trata de series temporales.

Series

Las series representan los datos que queremos visualizar y como los queremos ver. Podemos tener una o multiples series por gráfica.

Series
Figura 6.18: Configuración de series

Cada una de las series tiene las siguientes propiedades:

  • Nombre de la serie, el cual se mostrará también en los tooltip de la serie.

  • El tipo de la serie, que podrá ser línea, columna, área o marcador en el caso de las gráficas básicas.

  • Fórmula. En lugar de utilizar una variable proveniente de la consulta, podemos añadir una fórmula utilizando el resto de variables para calcular los valores de la gráfica.

  • Variable que contiene los datos a pintar. En el caso de que la serie sea de tipo fórmula este campo no será visible.

  • Función aplicada a los datos, por ejemplo, suma, máximo, media, etc…​

  • Eje Y asociado Eje Y con el que está relacionada la serie.

  • Color color de la serie.

  • Visible si la serie es visible o no.

  • Apilado: Podremos añadir una variable por la que agrupar los datos de la propia serie para añadir un apilado o un agrupado.

  • Color de la categoría: Podremos añadir un color personalizado a cada una de las categorías de una serie agrupada o apilada.

  • Aspecto: Aspecto de la línea o del área, puede ser curvo, recto o step.

  • Ancho de la serie de la línea.

  • Color del borde para las gráficas de tipo columna.

  • Anchura del borde del borde de la columna.

  • Opacidad del relleno de la columna o del área.

  • Icono de la serie de tipo marcador, puede ser círculo, cuadrado, triángulo, cruz, estrella o diamante.

  • Altura a la que aparecera el icono de la serie marcador.

  • Tamaño del icono de la serie marcador.

  • Anchura de la línea de la serie marcador.

  • Etiquetas por cada punto representado. Podemos elegir si queremos que sean visibles, su tamaño, color y orientación.

  • Marcadores en cada punto. Solo para las series de líneas o áreas podremos elegir el tamaño y color del marcador.

  • Huecos: En las series de líneas y áreas se podrá configurar si queremos que los "huecos" que puedan existir, por ejemplo en un eje temporal, se muestre con una linea distinta a la original o directamente se vea el "hueco" en blanco.

  • Anotaciones: En las series de líneas y áreas se podrán configurar anotaciones, las cuales nos sirven para marcar los valores máximo o mínimo de una serie.

chart stacked
Figura 6.19: Gráfica con serie apilada
chart grouped
Figura 6.20: Gráfica con serie agrupada
chart gaps
Figura 6.21: Gráfica con huecos

Drilldown

El drilldown nos va a permitir navegar en profundidad sobre los datos. Podemos añadir uno o varios niveles de drilldowns de manera opcional en los que podremos declarar la categoría por la que agrupar y las series que queremos visualizar en cada nivel.

chart drilldown
Figura 6.21: Gráfica drilldown
Drilldown
Figura 6.22: Configuración del drilldown

6.1.7. Tarta

pie chart
Figura 6.23: Gráfica donut

En las gráficas de tarta podremos elegir entre series de tipo tarta o de donut. Al igual que en las gráficas básicas, tendremos que indicar una categoría y una serie. Además, se podrán configurar tantos niveles de drilldown como se desee.

A diferencia de las gráficas básicas, las gráficas de tipo tarta solo pueden tener una única serie.

Tarta

En las series de tipo tarta, a parte de la configuración básica que comparten todas las series, podremos configurar si queremos las etiquetas visibles o no, junto a su tamaño y color, y si queremos que se muestre el porcentaje que ocupa cada porción junto a la etiqueta.

También podremos indicar colores específicos para las categorías que creamos convenientes. Como muestra el ejemplo, la porción de LUCA se está pintando con el color oficial de LUCA BDS.

Tarta
Figura 6.24: Configuración serie tarta

Donut

Las series de tipo donut son similares a las tartas pero con un agujero en el centro. En este tipo de serie, a parte de lo común con las series de tipo Tarta, podremos configurar:

  • El ancho del donut, eligiendo si queremos que sea un ancho fijo en píxeles o porcentual al radio de este.

  • Si queremos mostrar un totalizador en el centro en lugar de dejarlo vacío. El tamaño del texto del totalizador es un valor porcentual, en el caso de que el tamaño sea 100 ocupará el 100% del diámetro del donut.

De esta manera y con el ancho porcentual conseguimos que las gráficas de tipo donut se adapten a distintos tamaños.

Donut
Figura 6.25: Configuración serie donut

6.1.8. Mapa de calor

heatmap chart
Figura 6.26: Gráfica mapa de calor

Con los mapas de calor podremos visualizar datos de una magnitud en colores para dos dimensiones. Debido a esto deberemos configurar dos categorías, una para el eje X y otra para el eje Y.

Categorías mapas de calor
Figura 6.27: Configuración categorías mapa de calor

En las series de tipo mapa de calor, a parte de la configuración básica que comparten todas las series, podremos configurar lo siguiente:

Borde

Donde se podrá configurar el borde de cada cuadro del mapa de calor, pudiendo asignarle un color, un ancho y el radio de las esquinas.

Espaciado

Si queremos añadir espaciado entre los cuadros o queremos que estén juntos.

Máximo y mínimo

Podremos definir si queremos que se incluya un label indicando el máximo y mínimo por fila o columna, indicando el color de la letra y el tamaño.

Etiquetas

Se podrá configurar entre mostrar una etiqueta con los valores para cada valor o no, junto a su tamaño y color.

Escala de color

Lo más importante de los mapas de calor es la escala de color con la que lo queremos representar. Tenemos varias opciones:

  • Lineal: Nos va a permitir definir un color de inicio y un color de fin para los cuales generará una escala lineal para cada valor.

  • Secuencial: Podremos seleccionar distintos esquemas de color ya predefinidos.

  • Umbral: Podremos definir umbrales de forma manual para aplicarles o colores específicos o al igual que en el secuencial seleccionar entre distintos esquemas de color.

  • Quantize: Podremos definir el número de particiones por las que se divida la escala. Los valores de corte de cada partición se calcularán a partir del valor mínimo y máximo de la magnitud a representar. Es decir, si escogemos 3 particiones, el valor mínimo de la magnitud es 0 y el máximo es 1000, los límites serán 333 y 666. Podremos aplicar esquemas de color ya definidos.

  • Quantile: Podremos definir el número de particiones por las que se divida la escala. Los valores de corte de cada partición se calcularán para que cada una de ellas contenga el mismo número de elementos. Es decir, si escogemos 3 particiones se calcularán los límites para que en cada una de ellas exista un 33% de las muestras. Podremos aplicar esquemas de color ya definidos.

6.1.9. Tabla dinámica

dynamic table chart
Figura 6.27: Gráfica tabla dinámica

Las tablas dinámicas nos van a permitir agrupar datos en formato tabla, ya sea agrupando por filas o columnas como veremos a continuación.

Filas

Indican los agrupados que queremos realizar a nivel de fila. Podremos tener tantas como queramos y definir si deseamos que los agrupados sean expandibles o se muestren directamente realizando una combinación de las celdas. Además, podemos decidir que en caso de que la fila sea expandible, se muestre expandida por defecto y también podemos definir el color del fondo.

Al igual que en las consultas, también podemos definir tantos rangos como queramos para poder dar colores a las celdas o filas resultantes del agrupado. Si la variable utilizada contiene rangos, estos serán heredados y podremos decidir si queremos mantenerlos, modificarlos o eliminarlos.

Configuración filas
Figura 6.28: Configuración filas tablas dinámicas
En el caso de que también existan columnas en la tabla, las filas no podrán ser expandibles.

Columnas

Las columnas definen las agrupaciones realizadas en las columnas en lugar de en las filas. También podemos tener todas las que queramos y basta con elegir la variable correspondiente.

Configuración columnas
Figura 6.29: Configuración columnas

Valores

Los valores representan las magnitudes que queremos mostrar en cada celda. Tenemos que asignarles un nombre, una variable y una función.

Al igual que en las filas podemos añadir rangos de color. Si la variable utilizada contiene rangos, estos serán heredados y podremos decidir si queremos mantenerlos, modificarlos o eliminarlos.

Configuración valores
Figura 6.30: Configuración valores
En el caso de que no existan columnas configuradas, los valores se representarán como columnas. Cuando existen columnas definidas los valores se muestran como nuevas filas para cada registro.

6.1.10. Dispersión

scatter chart
Figura 6.31: Gráfica dispersión

Los gráficos de dispersión nos permiten mostrar los valores de dos variables en coordenadas cartesianas para un conjunto de datos. De esta forma podremos ver como se relacionan entre sí estas variables.

Al igual que en las gráficas de mapa de calor deberemos configurar dos categorías, una para el eje X y otra para el eje Y, que se corresponden con las dos variables a representar. Este tipo de gráficos nos va a permitir crear series de dispersión o de burbujas.

Dispersión

Las series de dispersión se representan como una nube de puntos. Podremos configurar el radio, la anchura del borde y la opacidad de los puntos, además del color y el color del borde. Además, podremos definir una tercera variable en la serie para asignar una escala de color a los puntos dependiendo de esta nueva variable.

Serie dispersión
Figura 6.32: Configuración serie de dispersión

Burbujas

En las series de burbujas será necesaria esa tercera variable que es opcional en las series de dispersión. Está variable definirá el tamaño de las burbujas en función de los datos de la variable. Podremos elegir el radio mínimo y máximo y la opacidad.

Serie burbujas
Figura 6.33: Configuración serie de burbujas
bubble chart
Figura 6.32: Gráfica burbujas

6.1.11. Simple

simple chart
Figura 6.33: Gráfico simple

Con los gráficos simples podremos representar un único valor en formato texto. En los que podremos configurar el color y tamaño del texto y rangos de colores al igual que en las consultas.

Además, si marcamos el checkbox "Svg" podemos escribir código svg y así visualizarlo. Al seleccionar está opción podremos elegir entre dos vistas en la parte central de la pantalla, por un lado, la previsualización del contenido y por otro el código que genera dicha gráfica. El botón para cambiar entre las diferentes vistas se sitúa debajo de la parte central. Este mismo funcionamiento lo encontramos también en el caso de las gráficas HTML.

Serie simple
Figura 6.34: Configuración serie simple

6.1.12. Html

html chart
Figura 6.35: Gráfico Html

Los gráficos de tipo Html nos van a permitir dar un formato totalmente personalizado para representar los datos.

Podremos definir tantas series como queramos, las cuales luego utilizaremos en el html para mostrar la información.

Existen una serie de plantillas HTML por defecto que podemos utilizar, en el apartado de Plantilla podemos seleccionar la que queramos.

html template store
Figura 6.36: Plantillas predefinidas

Una vez seleccionamos una plantilla, podemos establecer el valor de las variables predefinidas en el apartado de variables que podemos ver en la siguiente imagen. Para ello simplemente tenemos que establecer el valor de las variables deseadas y pulsar en 'Confirmar variables' para que el cambio tenga efecto. En caso de querer volver a como lo teníamos y no aplicar el cambio, pulsamos en 'cancelar'.

html template selected
Figura 6.37: Configuración variables plantilla

En el apartado de código definiremos nuestro código. Cabe destacar que si queremos podemos editar el código de las plantillas predefinidas, incluso aunque borremos la plantilla el código permanecerá.

html editor
Figura 6.38: Configuración html

En la parte superior nos aparecen las series previamente declaradas, las cuales utilizaremos en el Html gracias a código Velocity. Los botones superiores nos ayudan a añadir en el editor la variable deseada pulsando sobre ella.

Todos los valores utilizados en Velocity con $SERIE son de tipo String. En el caso de que se trate de una variable numérica y queramos utilizar el valor numérico para una condición de un if podremos utilizar la variable como $SERIE_value. Por ejemplo:

#if($TIEMPO_value > 10) color: red #else color: green #end

6.1.13. Mapa

map chart
Figura 6.39: Gráfica de mapa

Este tipo de gráfica nos van a permitir situar marcadores por coordenadas en un mapa interactivo.

Para configurar un mapa tendremos que definir la variable de tipo Latitud - Longitud que contiene las coordenadas que queremos mostrar. Además, podremos definir el zoom inicial, si queremos que se calcule el centro automáticamente o indicar un centro específico, el color de los marcadores y si queremos utilizar una variable para que aparezca como título.

Configuración mapa
Figura 6.40: Configuración de un mapa

También, se podrán añadir tantas series como deseemos. La información devuelta por las series se mostrará como un tooltip al pasar por encima del marcador. Se podrán dar de alta rangos en las series para dar colores a los marcadores según el valor de una serie.

Configuración serie mapa
Figura 6.41: Configuración de una serie de mapa

6.1.14. Gauge

gauge chart
Figura 6.42: Gráfica gauge

Las gráficas de tipo gauge o medidor radial destaca entre otros tipos de gráficas porque te ayudan a medir el desempeño actual y muestran ese valor utilizando una escala para que puedas determinar tu desempeño.

En este tipo de gráficas podremos configurar las siguientes opciones:

  • Ángulos de inicio y fin: Indican donde empieza y acaba el semicírculo que representa la gráfica.

  • Valor mínimo y máximo: Define el inicio y fin de la escala a representar.

  • Color del gauge en el caso de que no contenga límites.

  • Ancho del gauge.

  • Eje: muestra los valores de la escala sobre el gauge, puede ser visible o no.

  • Totalizador: representa el valor actual.

  • Límites: Se pueden definir tantos límites como se considere para mostrar con distintos colores diferentes escalas sobre el gauge.

gauge
Figura 6.43: Configuración gauge

En los gauge solo se puede configurar una serie. A diferencia de otro tipo de gráficas la serie de tipo Gauge no tiene configuración adicional, bastará con definir la variable y la función a utilizar.

6.2. Ejecución de gráficas

chart execution
Figura 6.44: Ejecución de gráficas

Desde la ejecución de gráficas podremos visualizar los resultados obtenidos. En la parte superior se encuentra el selector de filtros junto al botón de ejecución. Al lado del botón de Play se encuentra el botón de expandir el filtro, con el símbolo '>', para poder aplicar valores a las variables de entrada de la consulta.

chart filter execution
Figura 6.45: Filtro personalizado
Si la gráfica es pública restringida el botón de expandir el filtro no será visible y unicamente se podrá ejecutar con los filtros previamente definidos.

En la parte derecha de los filtros tenemos los botones de exportar a csv, exportar a png y el generador de enlaces para crear un link y poder compartir la gráfica.

7. Dashboards

Los dashboards son la representación de gráficas, consultas y filtros para visualizar cierta información de nuestro negocio de manera conjunta.

dashboards
Figura 7.1: Administración de dashboards
Para más información sobre la pantalla de administración de dashboards ver esta sección.

7.1. Creación y edición de dashboards

En la vista de creación de dashboards nos encontramos con la siguiente estructura:

edit dashboard
Figura 7.2: Creación de dashboards
Configuración (1)

La parte de configuración cuenta con dos menús en los que podremos configurar todo el contenido del dashboard.

Editor (2)

Lienzo en blanco donde se crearán los contenedores que contendrán filtros, gráficas y consultas en formato tabla.

7.1.1. Detalle

Esta configuración es compartida entre todos los elementos de LUCA, para más información ir a aspectos generales.

Además de las propiedades comunes podemos configurar también las siguientes características:

Tipo
  • Ajustado a la pantalla, de manera que no haya scroll y se vean todos los componentes ajustados al tamaño del navegador donde se muestre el dashboard.

  • Scroll infinito, de forma que podremos añadir tantos elementos como queramos. De esta manera se creará un scroll para poder ver todos los elementos configurados en el dashboard.

Tipo de fondo
  • Uniforme: El fondo del dashboard será uniforme y no se distinguirá entre distintos contenedores.

  • Contenedores: Cada contenedor incluido en el dashboard tendrá su propio marco y habrá separación entre los distintos contenedores.

Tiempo de refresco

Tiempo con el que se actualizarán los datos del dashboard de forma automática. Esta funcionalidad es útil si nuestro dashboard se encuentra fijo en alguna pantalla o 'video wall'.

Detail
Figura 7.3: Formulario detalle

7.1.2. Contenedores

Los contenedores son los elementos por los cuales está formado nuestro dashboard. Por cada contenedor se puede configurar el título del elemento, el subtitulo y el tipo que puede ser cualquiera de los tres siguientes.

Containers
Figura 7.4: Creación de un contenedor
Gráfica

Contenedor que incluirá una gráfica ya creada. Al crear un nuevo contenedor de tipo gráfica, tenemos que rellenar las opciones comunes mencionadas arriba y además debemos seleccionar cual de las gráficas existentes queremos añadir a nuestro dashboard. La gráfica configurada deberá llevar uno de los filtros configurados en ella. Por último pulsaremos sobre Añadir contenedor para añadirle al editor y poder modificar su posición y tamaño.

Chart container
Figura 7.5: Creación de un contenedor de tipo gráfica
Consulta

Contenedor que mostrará una consulta ya creada. Una vez seleccionada la consulta, tenemos que establecer el tamaño de página y si queremos que se muestre o no dicho paginado. También, en caso de que la consulta tenga variables de entrada, podemos asignarle un valor por defecto a dichas variables o enlazarlas con variables de un filtro que tengamos ya creado en el dashboard. Una vez tengamos todo esto hecho pulsamos en Añadir contenedor para añadirlo al editor.

Query container
Figura 7.6 Creación de un contenedor de tipo consulta
Para enlazar variables de entrada con un filtro del dashboard, es importante guardar el dashboard después de crear el filtro y antes realizar el enlace, ya que si no lo hacemos no nos va a mostrar las variables de entrada existentes.
Filtro

Los filtros permiten introducir valores de entrada para filtrar uno o varios elementos configurados en el dashboard. Configuraremos tantas variables como deseemos y de cada una deberemos establecer:

  • Descripción: Será el nombre de la variable.

  • Tipo: Cualquiera de los diferentes tipos existentes.

  • Combo: En caso de que sea un combo marcamos esta opción y al igual que en las consultas deberemos seleccionar la consulta desde la cual queremos que se carguen datos al combo o especificar una serie de valores fijos.

  • Visible: Si queremos que sea visible seleccionamos el check.

  • Multiselección: Si deseamos que se permita seleccionar varios valores en el combo.

    Una vez tenemos todo esto configurado pulsamos en añadir variable.

Por último seleccionamos el entorno o entornos deseados que queramos que se muestren en el filtro y pulsamos añadir contenedor.

Filter
Figura 7.7 Creación de un contenedor de tipo filtro

Podemos eliminar un contenedor pulsando en la 'x' situada a la derecha del nombre de dicho contenedor.

7.2. Ejecución de un dashboard

dashboard execution
Figura 7.8 Ejecución de dashboards

En la nueva pantalla de ejecución podremos interactuar con los filtros y visualizar toda la información en las diferentes gráficas y consultas.

Todas las consultas y gráficas configuradas cuentan con un botón representado por tres puntos verticales en la esquina superior derecha de cada contenedor con las cuales podemos recargar la gráfica para actualizar los datos, exportar los datos a csv o Excel, generar un png, generar un enlace para compartir el contenedor o abrir la ventana de edición en el caso de que tengamos permisos.

view container options
Figura 7.9 Opciones de un contenedor

A la derecha de los filtros nos encontramos con el botón de ejecutar y de generar un enlace directo a la ejecución del dashboard para poder compartirlo.

8. Aplicaciones

Una aplicación nos va a permitir unificar en un único lugar consultas, árboles, formularios, gráficas y dashboards relativos a un mismo negocio o de un interés común. Las aplicación tienen el fin de servir informes finales a los usuarios de negocio, producción, financiero…​

applications
Figura 8.1: Administración de aplicaciones
Para más información sobre la pantalla de administración de aplicaciones ver esta sección.

8.1. Creación y edición de aplicaciones

En la vista de creación de formularios nos encontramos con la siguiente estructura:

edit application
Figura 8.2: Creación de aplicaciones
Menú (1)

Previsualización del menú de nuestra aplicación.

Dashboard principal (2)

Previsualización del dashboard principal o de los contenidos de los menús.

Configuración (3)

Apartado de configuración como en el resto de menús de creación y edición. Contiene las siguientes opciones:

8.1.1. Detalle

Esta configuración es compartida entre todos los elementos de LUCA, para más información ir a aspectos generales.

Detalle
Figura 8.3: Formulario detalle

8.1.2. Configuración

En este menú podemos configurar las siguientes opciones:

App configuration
Figura 8.4: Configuración de la aplicación
Icono

Permite elegir un icono para la aplicación que será visible en el escritorio de aplicaciones. Para seleccionarle solo tenemos que pulsar sobre el botón '+' y se nos abrirá el explorador de archivos de nuestro equipo, donde podremos seleccionar el icono deseado. Para borrarlo, una vez que tengamos seleccionado un icono, nos aparecerá a la derecha del icono un botón donde pone 'borrar icono', simplemente le pulsamos y se eliminará, pudiendo seleccionar otro icono. Es obligatorio que dicho icono este en formato PNG.

Dashboard principal

Será el primer dashboard que se cargue al entrar en la aplicación, pudiendo elegir uno de los dashboard que ya estén creados. Para ello pulsamos sobre el engranaje y buscamos el dashboard deseado. Una vez encontrado, le seleccionamos haciendo clic en él y pulsamos el botón de aceptar. Si queremos eliminar el dashboard asignado solo tenemos que pulsar sobre la 'x' y el dashboard se eliminará y podremos seleccionar otro icono si así lo deseamos.

Asignación de usuarios

Nos permite determinar que usuarios van a poder ver la aplicación que estamos creando. Para ello solo tenemos que seleccionar el usuario o usuarios a los que les queremos asignar esta aplicación y pulsar en la flecha que apunta hacia la derecha para asignarlos. También podemos usar la barra de búsqueda para encontrar de forma más rápida el usuario al que le queremos asignar los permisos. Tenemos la opción de asignarle permisos a todos los usuario existentes marcando el check donde pone 'Usuarios disponibles'. Todas estas opciones son iguales a la hora de eliminar la asignación de usuarios, salvo que en lugar de pulsar el botón con la flecha que apunta a la derecha elegiríamos la que apunta hacia la izquierda. Aunque la asignación de usuarios que puedan ver aplicaciones se puede realizar desde este menú, es recomendable utilizar perfiles para determinar los accesos y visibilidad de los usuarios.

8.1.3. Menús y submenús

Aquí crearemos los diferentes menús de nuestra aplicación. Para ello deberemos pulsar sobre nuevo menú tantas veces como menús queramos crear. Un menú se compone de un nombre y uno o varios submenús.

Menu configuration
Figura 8.5: Creación de menús

Los submenús formado por los siguientes elementos:

  • Nombre del submenú.

  • Tipo del elemento que contendrá el submenú, puede ser cualquiera de los siguientes:

    • Consulta.

    • Árbol.

    • CRUD.

    • Gráfica.

    • Dashboard.

  • Elemento que se mostrará en el submenú.

Submenu configuration
Figura 8.6: Creación de submenús

8.2. Ejecución de una aplicación

Como en el resto de elementos, el botón play situado en la parte superior derecha nos permitirá ejecutar nuestra aplicación. Dicha visualización será una fiel representación de lo que va a ver el usuario final al cual se le de acceso. Podemos navegar por los menús viendo los elementos configurados anteriormente.

9. Mailing

Los mailings o reportes por correo nos permitirán planificar envíos de correo que incluyan exportaciones de Consultas previamente creadas. Estos correos pueden contener un cuerpo personalizable para poder incluir un contexto.

mailings
Figura 9.1: Administración de mailings

A parte de todas las opciones comunes con otros elementos de LUCA, los mailings tienen la posibilidad de ver todas las ejecuciones del reporte. En ellas podremos ver si se ha ejecutado correctamente o contiene errores, y el el caso de que tenga errores, poder ver el mensaje de error.

mailing executions
Figura 9.2: Ejecuciones de un reporte
Para más información sobre la pantalla de administración de consultas ver esta sección.

9.1. Creación y edición de reportes por correo

En la pantalla de creación de mailings nos encontramos con la siguiente estructura:

mailing creation
Figura 9.3: Creación de mailings
Editor (1)

En la parte central de la pantalla veremos la configuración del email.

Configuración (2)

En la parte derecha de la pantalla nos encontramos con la sección de configuración del mailing, la cual se divide en tres menús.

Encima del apartado de configuración, nos encontramos los botones de acciones:

  • Guardar: Guarda el mailing.

  • Test: Guarda y ejecuta en modo prueba el mailing.

El botón de ejecución prueba el mailing solo enviando el correo resultante al usuario actual en lugar de a todos los correos indicados en el 'Para'.

9.1.1. Detalle

Esta configuración es compartida entre todos los elementos de LUCA, para más información ir a aspectos generales.

Detalle
Figura 9.4: Formulario detalle

9.1.2. Configuración

En el apartado configuración podremos definir la planificación deseada para el envío del correo. Todos los correos se envían de forma periódica y repetida en el tiempo.

Para configurar la planificación disponemos de un formulario en el que podremos planificar el envío de forma semanal o mensual.

mailing cron weekly
Figura 9.5: Configuración semanal

En el apartado semanal podremos elegir los días de la semana y la hora a la que queremos que se envíe el reporte.

mailing cron monthly
Figura 9.6: Configuración mensual

El el apartado mensual podremos elegir entre dos opciones:

  • El día concreto del mes que queremos que se envíe el reporte.

  • El primer, segundo, tercer o cuarto día de la semana que queremos que se envíe.

Es importante que esté guardado en estado 'Publicado' para que el mailing se envíe de forma periódica.

9.1.3. Consultas

En el apartado Consultas podremos configurar las consultas que queremos que se adjunten como Excel en el correo enviado.

Consultas
Figura 9.7: Configuración de consultas

Podremos definir tantas consultas como queramos y por cada una de ellas configurar el filtro correspondiente deseado con el que queremos que se ejecute la consulta.

9.1.4. Correo

Para la configuración del mail tendremos que definir el Para, el Asunto y un cuerpo del correo.

mailing email
Figura 9.8: Configuración del email

En el Para podremos buscar por los usuarios que existen en LUCA o incluir correos de usuarios que no están dados de alta en LUCA. Para los usuarios que no estén dados de alta en LUCA tendremos que escribir el correo completo para que nos aparezca como opción y después añadirlo a la lista.

Para
Figura 9.9: Correo no dado de alta

Para el cuerpo del correo usaremos el editor proporcionado en el cual podremos dar distintos tamaños de texto, colores, formatos y la posibilidad de añadir listas.

mailing mail editor
Figura 9.10: Editor

9.2. Ejecución de reportes

Los reportes por correo se ejecutarán de forma automática según la planificación definida en su configuración. Es importante que el mailing esté guardado en estado Publicado para que los reportes se envíen de forma automática.

Desde la gestión de mailings, podemos forzar la ejecución de un reporte para que se ejecute ahora y se envíe a todos los usuarios definidos en su configuración.

Los enlaces nos permiten compartir los diferentes elementos de LUCA a otras personas. Existen dos tipos de enlaces, los internos, los cuales nos permiten compartir dichos elementos entre usuarios de LUCA, pero además de estos, tenemos los enlaces públicos, los cuales nos permiten compartir elementos a personas sin necesidad de que estas tengan usuario.

En la siguiente imagen podemos ver la ventana de generación de enlaces, en esta pantalla podemos ver dos secciones claramente diferenciadas, la parte de enlaces internos y la de enlaces públicos. Cabe destacar que para que aparezca el apartado de enlaces públicos y el checkbox de permanente, es necesario tener los permisos correspondientes, generar enlaces públicos y generar enlaces permanentes respectivamente.

generate link
Figura 10.1: Generación de enlaces

En la primera sección tenemos el título del elemento del cual vamos a crear el enlace, este aparecerá tanto en el nombre de la pestaña cuando accedamos al enlace y en caso de que decidamos exportar el elemento en el nombre del archivo. A continuación, encontramos el valor del filtro del elemento en caso de que tenga. Debajo del filtro encontramos un checkbox para incluir el filtro en el enlace y poder filtrar por otros valores una vez accedemos al enlace. Seguido tenemos el enlace interno con tres opciones a la derecha para poder generar un QR a partir de dicho enlace, para ir al enlace y para copiar el enlace.

En la segunda sección en caso de encontrarse visible, podemos activarla con el switch "enlace público", una vez este switch este marcado podemos acceder a las propiedades para generar el enlace. Las propiedades son, la fecha de expiración, que será la fecha hasta la que estará disponible dicho enlace, la cual podemos omitir en caso de que marquemos el checkbox de Permanente si está disponible. Una vez tengamos los valores necesarios seleccionados, podemos pulsar sobre el botón Generar, el cual nos mostrará el enlace público, con las mismas opciones que el enlace interno y justo debajo, el código para poder incrustar el elemento en tu web, con un botón a la derecha para poder copiar dicho código directamente. Por otra parte, aparece un botón borrar, que nos permitirá borrar el enlace público creado.

11. Single Sign On

Un Single Sign On, conocido también como SSO por sus siglas en inglés, permite a los usuarios tener acceso a múltiples aplicaciones ingresando solo con una cuenta a los diferentes sistemas y recursos. El SSO es de gran utilidad cuando existen diferentes sistemas a los que es posible acceder mediante una única contraseña y se desea evitar el ingreso repetitivo de estas cada vez que el usuario se desconecte del servicio. Para los usuarios supone una gran comodidad ya que identificándose solo una vez es posible mantener la sesión válida para el resto de las aplicaciones que hacen uso del SSO.

LUCA 3.0 y sus sucesivas versiones llevan consigo un SSO basado en la herramienta open source Keycloak, a la que internamente denominamos LUCA Accounts. Keycloak es un software que se encargará de la autenticación, autorización y de la gestión de nuestros usuarios además de dar soporte para integrar LUCA con sistemas LDAP, Kerberos, Active Directory u otros como el login de Google, Microsoft…​

Keycloak está basado en realms (reinos) donde cada realm tendrá sus usuarios, integraciones con sistemas externos, clientes…​ LUCA Accounts contará con dos realms, el realm master y el realm luca-bds. El primero solo contará con un usuario que será el usuario administrador de LUCA Accounts. El segundo contará con todo lo demás (usuarios de LUCA, integraciones con LDAP, clientes…​)

11.1. Acceso a LUCA Accounts

El acceso a la administración del SSO se realiza vía web utilizando la URL de acceso a LUCA y añadiéndole el path /auth/ al final de la URL como por ejemplo https://luca.luca-bds.com/auth. Al acceder se nos presentará un pequeño menú con dos enlaces. El primero nos llevará al login de administración de LUCA Accounts y el segundo nos llevará a la documentación oficial de Keycloak

/auth/ login
Figura 10.1: Acceso administración LUCA Accounts

Una vez pulsemos en 'Administration Console' seremos redirigidos al login de la consola de administración donde introduciremos el usuario y contraseña del administrador de LUCA Accounts.

Admin login
Figura 10.2: Login administración LUCA Accounts

La web de Keycloak cuenta con la siguiente estructura:

realm ppal view
Figura 10.3: Web de Keycloak
Selector de realm (1)

Nos permite cambiar de realm para acceder a su configuración específica

Menú lateral (2)

La parte izquierda se mantiene fija durante toda la navegación de la web. Contiene todos los elementos que son configurables en cada realm de Keycloak.

Configuración (3)

En la parte central de la pantalla irán apareciendo diferentes pestañas y formularios que nos permitirán configurar los distintos elementos de Keycloak del menú lateral. Por ejemplo, en la imagen vemos la configuración del realm

El usuario que modifique configuración de Keycloak que no esté reflejada en este manual deberá hacerlo bajo su propia responsabilidad.

11.2. Usuarios

Los usuarios de LUCA son a su vez usuarios de Keycloak. Si creamos un usuario desde LUCA, éste será automáticamente creado en Keycloak sin que se tenga que realizar ninguna acción adicional. En caso de que el usuario sea creado desde Keycloak, éste aparecerá de forma automática en el área de administración de usuarios de LUCA una vez haya realizado su primer login.

Los usuarios del realm master son independientes a los del realm luca-bds

Para realizar cualquier acción sobre los usuarios del realm, deberemos pulsar sobre Usuarios en el menú izquierdo. Después deberemos pulsar sobre Ver todos los usuarios para mostrar el listado completo de usuarios.

users
Figura 10.4: Vista de usuarios

Para cada usuario tenemos las siguientes opciones:

Editar

Nos permite realizar múltiples acciones sobre el usuario como cambiar su email, nombre, apellidos, contraseña…​

Impersonate

La acción de impersonar nos permite estar logueados como si fuéramos ese usuario. De esta forma si hemos dado unos permisos a un usuario desde LUCA y queremos comprobar que lo hemos realizado correctamente, podemos impersonarnos como el usuario para comprobarlo.

Borrar

Borra el usuario de Keycloak, no de LUCA.

11.3. Cambiar la contraseña de los usuarios

Con la opción editar usuario que se describe en el aparatado anterior tenemos la posibilidad de cambiar la contraseña a un usuario. En la ventana de edición del usuario ir a la pestaña Credenciales. Para establecer una nueva contraseña rellenar los campos Contraseña y Confirmar contraseña. Con la opción Temporal escogeremos si deseamos forzar al usuario a establecer una nueva contraseña en su primer login o si por el contrario no queremos hacerlo. Por último pulsar sobre el botón Resetear contraseña

edit user password
Figura 10.5: Cambiar contraseña de un usuario
Solo podemos cambiar la contraseña de los usuarios desde Keycloak. Desde LUCA la única contraseña que podemos cambiar es la de nuestro usuario.

11.4. Política de contraseñas.

Keycloak permite establecer una política de contraseñas. Por ejemplo, podemos establecer que todas las contraseñas de los usuarios tengan 10 caracteres como mínimo, una mayúscula y una minúscula. Para establecer esta configuración, en el menú lateral, deberemos pulsar sobre Autenticación y posteriormente en política de contraseñas.

password policy base
Figura 10.6: Política de contraseñas

El desplegable situado a la derecha nos permite añadir diferentes tipos de política como puede ser el tiempo de expiración de las contraseñas. Toda la información de los tipos de políticas está recogido en la documentación oficial de Keycloak.

En la siguiente imagen podemos ver algunas políticas que se han añadido a Keycloak. Entre ellas está que la contraseña no puede contener el nombre del usuario, que contenga al menos una mayúscula y una minúscula, que su longitud mínima sean 10 caracteres y por último que la contraseña expire cada 180 días.

password policy complete
Figura 10.7: Política de contraseñas

11.5. Integración con servicios LDAP y Active Directory

Muchas organizaciones cuentan con proveedores de autenticación basados en LDAP. Desde Keycloak existe la opción de configurar una integración con el LDAP de la organización para usar nuestros usuarios corporativos.

Para realizar esta integración deberemos pulsar sobre Federación de usuarios en el menú lateral y en desplegable que se presenta en la parte central deberemos seleccionar la opción ldap.

ldap user federation
Figura 10.8: Integración con LDAP

En el siguiente paso se deberá rellenar el formulario relativo a los diferentes parámetros del LDAP como puede ser la cadena de conexión, el atributo a usar como nombre de usuario o el usuario y la contraseña para realizar la integración con el LDAP. Cada una de las entradas del formulario tiene un pequeño símbolo de interrogación al lado. Si mantenemos el ratón sobre dicho símbolo nos mostrará una pequeña ayuda describiendo que es cada campo.

Una vez rellenado, pulsar sobre el botón guardar situado al final de la página.

sso ldap form
Figura 10.9: Formulario integración con LDAP

12. Instalación

En este apartado se detalla la instalación del producto LUCA BDS (en adelante LUCA) sobre contenedores Docker.

12.1. Componentes

La nueva versión de LUCA cuenta con los siguientes componentes:

LUCA PROXY

Software que actúa de proxy para redirigir el tráfico a todos los servicios de LUCA. Software basado en Traefik

LUCA ACCOUNTS

Software de gestión de acceso e identidad para facilitar la seguridad de los servicios de LUCA. Software open source basado en Keycloak.

LUCA WEB

Aplicación web LUCA donde los usuarios, de manera colaborativa, crearán los diferentes informes afines a su negocio.

LUCA API REST

Servicios API REST de LUCA que ofrecen toda la funcionalidad necesaria del producto.

LUCA DISPATCHER

Módulo de LUCA para ejecución de trabajos asíncronos.

12.2. Requisitos: Dominio y certificado SSL

LUCA 3 tiene como requisito la configuración de un nombre de DNS y un certificado SSL que deberán estar disponibles antes de empezar la instalación. Este DNS puede ser tanto un dominio como un subdominio. Ambas opciones están aceptadas.

Esta guía utiliza como ejemplo la URL https://luca.luca-bds.com/ y deberá ser sustituida en todas las configuraciones que aparezca dicha URL por la escogida para la instalación.

12.3. Migración a LUCA 3.0 desde la versión 2.7.X

La instalación de LUCA 3 desde versiones 2.7.X requiere de un proceso de migración de la base de datos que se realiza automáticamente al desplegar los contenedores que se detallarán en sucesivos apartados.

Realizar paso por paso las acciones que se detallan a continuación:

  • Crear dos esquemas de base de datos, uno para LUCA 3 (p.e. ‘luca3’) y otro para el gestor de usuarios LUCA ACCOUNTS (p.e. ‘luca_accounts). También se deberán de generar dos usuarios de base de datos, uno para LUCA 3 y otro para LUCA ACCOUNTS, que deberán tener permisos de lectura y escritura sobre sus esquemas correspondientes. Las tablas y datos de la base de datos de LUCA_ACCOUNTS será creada automáticamente al levantar su contenedor.

  • Ejecutar el script DLL 3.0.0 Incremental.sql proporcionado sobre el nuevo esquema creado para LUCA 3.

  • Realizar una exportación única y exclusivamente de los datos y del valor de la secuencia ‘hibernate_sequence’ (sin tablas, índices…) de la base de datos actual de LUCA 2.7.X.

  • Importar dichos datos en el nuevo esquema de LUCA 3.

Durante los pasos citados anteriormente, LUCA 2.7 tiene que estar parado. En caso de querer realizar una prueba de migración sin parar LUCA 2.7 se deberá clonar el esquema de la versión 2.7. Una vez clonado, seguir los pasos de este apartado

12.4. Instalación de Docker

Antes de instalar Docker Engine por primera vez en un nuevo servidor se debe configurar el repositorio de Docker. Posteriormente, proceder con la instalación de Docker desde el repositorio.

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

Una vez instalado Docker, arrancar el servicio y configurarle para que se inicie automáticamente con el servidor.

sudo systemctl enable docker
sudo systemctl start docker

Posteriormente iniciar el orquestador Swarm.

docker swarm init

El siguiente paso será crear la redes para los distintos servicios de LUCA.

docker network create -d overlay luca

Por último se deberán crear los volúmenes para persistir los logs de la aplicación.

docker volume create volume-log-api
docker volume create volume-log-dispatcher

12.5. Instalación de Docker Compose

El uso de Docker Compose facilitará la instalación y el mantenimiento posterior de LUCA. Ejecutar los siguientes comandos para instalar la utilidad

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Ejecutar docker-compose -v para verificar que la instalación ha sido correcta. En caso de obtener algún fallo en la ejecución, crear el siguiente enlace simbólico

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

12.6. Configuración de recursos para LUCA

El funcionamiento de LUCA requiere de crear ciertos directorios y ficheros en el servidor los cuales se detallan a continuación. Ejecutar los siguientes comandos para crear los directorios donde residirán los ficheros de configuración.

mkdir -p /etc/luca/ssl

Incluir en el directorio /etc/luca/ssl el certificado SSL y la clave privada.

12.7. Configuración de los contenedores

LUCA cuenta con una serie imágenes que de forma conjunta forman el producto.

Cada apartado describe las propiedades que deben ser modificadas en para cada contenedor. Estas propiedades son:

Imagen

Imagen Docker desde la cual se creará el contenedor correspondiente

Variables de entorno

Propiedades de cada contenedor que contendrán valores como IPs, usuarios, URLs…​

12.7.1. Contenedor LUCA PROXY

Imagen: boo3vgog.gra7.container-registry.ovh.net/luca/luca-proxy:latest

Volúmenes:

  • /etc/luca/ssl/certificate.key:/etc/ssl/private/certificate.key

  • /etc/luca/ssl/certificate.crt:/etc/ssl/certs/certificate.crt

Cambiar certificate.key y certificate.crt por los nombres reales del certificado y la clave privada (solo los que están en la parte izquierda de los dos puntos ‘:’)

12.7.2. Contenedor LUCA ACCOUNTS

Imagen: boo3vgog.gra7.container-registry.ovh.net/luca/luca-accounts:latest

Variables de entorno:

KEYCLOAK_ADMIN

Nombre de usuario administrador de LUCA ACCOUNTS que se creará automáticamente al arrancar el contenedor

KEYCLOAK_ADMIN_PASSWORD

Contraseña del usuario administrador de LUCA ACCOUNTS

KC_DB

Motor de base de datos el cual albergará la base de datos de LUCA ACCOUNTS. Los posibles valores son:

  • mysql

  • mariadb

  • oracle

  • mssql

  • postgres

KC_DB_URL

Conexión jdbc a la base de datos de LUCA ACCOUNTS. Los posibles valores son:

  • MySQL: jdbc:mysql://IP:PUERTO/ESQUEMA

  • MariaDB: jdbc:mariadb://IP:PUERTO/ESQUEMA

  • Oracle: jdbc:oracle:thin:@IP:PUERTO:SID

  • SQL Server: jdbc:sqlserver://IP:PUERTO;DatabaseName=ESQUEMA

  • PostgreSQL: jdbc:postgresql://IP:PUERTO/ESQUEMA

KC_DB_USERNAME

Usuario de base de datos con permisos de lectura y escritura sobre el esquema

KC_DB_PASSWORD

Contraseña del usuario de base de datos

KC_HOSTNAME

URL en la que se presentará la web de LUCA ACCOUNTS. Dicha URL no deberá llevar http:// ni https://

Si la base de datos de LUCA ACCOUNTS va a residir sobre Oracle se deberá mapear por medio de un volumen el driver de Oracle ‘ojdbc.jar’. A continuación, se muestra un ejemplo que deberá se añadido al servicio ‘accounts’ en el docker-compose

volumes:
  -/path/to/ojdbc.jar:/opt/keycloak/providers/ojdbc.jar

12.7.3. Contenedor LUCA API

Imagen: boo3vgog.gra7.container-registry.ovh.net/luca/luca-api:latest

Variables de entorno:

DATASOURCE_URL

Conexión jdbc a la base de datos de LUCA 3. Los posibles valores son:

  • MySQL/MariaDB: jdbc:mysql://IP:PUERTO/ESQUEMA

  • Oracle: jdbc:oracle:thin:@IP:PUERTO:SID

  • SQL Server: jdbc:sqlserver://IP:PUERTO;DatabaseName=ESQUEMA

  • PostgreSQL: jdbc:postgresql://IP:PUERTO/ESQUEMA

DATASOURCE_SCHEMA

Nombre del esquema de base de datos de LUCA 3. Dar valor a esta variable solo en bases de datos Oracle.

DATASOURCE_USERNAME

Usuario de base de datos con permisos de lectura y escritura sobre el esquema

DATASOURCE_PASSWORD

Contraseña del usuario de base de datos.

DATASOURCE_VALIDATIONQUERY

Query de validación de la base de datos para controlar el pool de conexiones. Los posibles valores son:

  • MySQL/MariaDB/SQLServer/PostgreSQL: SELECT 1

  • Oracle: SELECT 1 FROM DUAL

DATASOURCE_DRIVERCLASSNAME

Driver del conector jdbc para la base de datos de LUCA 3. Los posibles valores son:

  • MySQL/MariaDB: org.mariadb.jdbc.Driver

  • Oracle: oracle.jdbc.driver.OracleDriver

  • SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver

  • PostgreSQL: org.postgresql.Driver

ENTITYMANAGER_HIBERNATE_DIALECT

Dialecto de Hibernate. Los posibles valores son

  • MySQL/MariaDB: org.hibernate.dialect.MySQL5Dialect

  • Oracle: org.hibernate.dialect.Oracle10gDialect

  • SQL Server: org.hibernate.dialect.SQLServer2012Dialect

  • PostgreSQL: org.hibernate.dialect.PostgreSQLDialect

DATASOURCE_OLD_URL

Conexión jdbc a la base de datos de LUCA 2.7.X. Los posibles valores son:

  • MySQL/MariaDB: jdbc:mysql://IP:PUERTO/ESQUEMA

  • Oracle: jdbc:oracle:thin:@IP:PUERTO:SID

  • SQL Server: jdbc:sqlserver://IP:PUERTO;DatabaseName=ESQUEMA

  • PostgreSQL: jdbc:postgresql://IP:PUERTO/ESQUEMA

DATASOURCE_OLD_SCHEMA

Nombre del esquema de base de datos de LUCA 2.7.X. Incluir esta variable solo para bases de datos Oracle.

DATASOURCE_OLD_USERNAME

Usuario de base de datos con permisos de lectura y escritura sobre el esquema

DATASOURCE_OLD_PASSWORD

Contraseña del usuario de base de datos

DATASOURCE_OLD_DRIVERCLASSNAME

Driver del conector jdbc para la base de datos de LUCA 2.7.X. Los posibles valores son:

  • MySQL: com.mysql.jdbc.Driver

  • MariaDB: org.mariadb.jdbc.Driver

  • Oracle: oracle.jdbc.driver.OracleDriver

  • SQL Server: com.microsoft.sqlserver.jdbc.SQLServerDriver

  • PostgreSQL: org.postgresql.Driver

ACCOUNTS_URL

URL base de LUCA ACCOUNTS. Se deberá sustituir el nombre del dominio por el que corresponda a LUCA. Ejemplo: https://luca.luca-bds.com/auth

ACCOUNTS_JWKSURI

URL del las claves públicas de LUCA ACCOUNTS relativas al openid. Se deberá sustituir el nombre del dominio por el que corresponda a LUCA. Ejemplo: https://luca.luca-bds.com/auth/realms/luca-bds/protocol/openid-connect/certs

ACCOUNTS_WELLKNOWN

URL que contiene información de LUCA ACCOUNTS. Ejemplo: https://luca.luca-bds.com/auth/realms/luca-bds/.well-known/openid-configuration.

ACCOUNTS_ADMIN_CLIENTID

Client ID para la autenticación de LUCA API con LUCA ACCOUNTS

ACCOUNTS_ADMIN_CLIENTSECRET

Client Secret para la autenticación de LUCA API con LUCA ACCOUNTS

LUCA_MIGRATION_27_ENABLED

Los valores posibles son ‘true’ o ‘false’. Si estamos migrando de una versión 2.7.X deberá ser valor ‘true’ y en caso de una instalación nueva su valor deberá ser ‘false’. En caso de que sea una instalación nueva las variables de entorno ‘DATASOURCE_OLD_*’ no deberán ser incluidas en el docker-compose.

LUCA_APIDOC_SERVERURL

URL de LUCA API necesaria para visualizar la documentación de la API. Ejemplo: https://luca.luca-bds.com/luca-api.

LUCA_CORS_ALLOWEDORIGINS

URL origen desde la cual se permitirá el CORS. Ejemplo: https://luca.luca-bds.com. Si se requiere permitir más de una URL, estas irán separadas por comas (,)

LUCA_MAX_MEMORY

Memoria RAM máxima que LUCA API podrá usar. Ejemplos: 512m, 2g, 4g…​

LUCA_MIN_MEMORY

Memoria RAM máxima que LUCA API podrá usar. Para entornos de producción se recomienda que el valor mínimo y el máximo sean iguales. Ejemplos: 512m, 2g, 4g…​

Las siguientes variables de entorno se utilizarán para el envío de reportes por correo. No es necesario incluir estas variables si no se va a usar el envío de correo.

SPRING_MAIL_HOST

IP o nombre del servidor de correo SMTP.

SPRING_MAIL_PORT

Puerto del servidor de correo (25, 465, 587…​)

SPRING_MAIL_USERNAME

Usuario para autenticarse en el servidor de correo

SPRING_MAIL_PASSWORD

Contraseña del usuario.

SPRING_MAIL_FROM

Dirección de correo que aparecerá en el campo 'De' en la bandeja de entrada de los usuarios que recepcionan del correo (luca@lucabds.com, Informes <luca@lucabds.com> …​)

SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH

Indica si se debe usar autenticación en el servidor de correo. Posibles valores 'true' o 'false'

SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE

Indica si se debe habilitar el protocolo TLS. Los posibles valores son 'true' o 'false'

SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED

Indica si se requiere el protocolo TLS. Los posibles valores son 'true' o 'false'

12.7.4. Contenedor LUCA DISPATCHER

La instalación de este servicio es opcional y será necesario únicamente su despliegue en caso de necesitar ejecutar tareas asíncronas como por ejemplo el envío programado de reportes por correo

Imagen: boo3vgog.gra7.container-registry.ovh.net/luca/luca-dispatcher:latest

Variables de entorno:

A continuación se listan las variables de entorno necesarias para la configuración de este servicio. Sus valores deberán ser los mismos que para LUCA API:

  • DATASOURCE_URL

  • DATASOURCE_SCHEMA

  • DATASOURCE_USERNAME

  • DATASOURCE_PASSWORD

  • DATASOURCE_VALIDATIONQUERY

  • DATASOURCE_DRIVERCLASSNAME

  • ENTITYMANAGER_HIBERNATE_DIALECT

  • ACCOUNTS_URL

  • ACCOUNTS_JWKSURI

  • ACCOUNTS_WELLKNOWN

  • ACCOUNTS_ADMIN_CLIENTID

  • ACCOUNTS_ADMIN_CLIENTSECRET

  • SPRING_MAIL_HOST

  • SPRING_MAIL_PORT

  • SPRING_MAIL_USERNAME

  • SPRING_MAIL_PASSWORD

  • SPRING_MAIL_FROM

  • SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH

  • SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE

  • SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED

12.7.5. Contenedor LUCA WEB

Imagen: boo3vgog.gra7.container-registry.ovh.net/luca/luca-web:latest

Variables de entorno:

LUCA_ACCOUNTS_BASE_URL

URL base de LUCA ACCOUNTS. Se deberá sustituir el nombre del dominio por el que corresponda a LUCA. Ejemplo: https://luca.luca-bds.com/auth

LUCA_ACCOUNTS_TOKEN_URL

URL para recoger el token de LUCA ACCOUNTS. Se deberá sustituir el nombre del dominio por el que corresponda a LUCA. Ejemplo: https://luca.luca-bds.com/auth/realms/luca-bds/protocol/openid-connect/token

LUCA_API_BASE_URL

URL base de la API de LUCA. Se deberá sustituir el nombre del dominio por el que corresponda a LUCA. Ejemplo: https://luca.luca-bds.com/luca-api/

12.8. Visionado de logs de los contenedores

Para ver los logs en tiempo real de un contenedor se deberá ejecutar el siguiente comando.

docker logs -f ID_CONTENEDOR

Para obtener el ID_CONTENEDOR ejecutar comando docker ps. La primera columna del resultado de la ejecución del comando anterior contiene los IDs de los diferentes contenedores

12.9. Arranque inicial de LUCA. LUCA PROXY y LUCA ACCOUNTS

Se deberá configurar LUCA PROXY y LUCA ACCOUNTS antes de arrancar el resto de contenedores de LUCA para generar un Client Secret que será establecido posteriormente en la variable de entorno ‘accounts.admin.client-secret’ de LUCA API. Para ello, ejecutar el siguiente comando usando el usuario y contraseña proporcionados para la descarga de imágenes de LUCA.

docker login boo3vgog.gra7.container-registry.ovh.net

Crear el fichero /etc/luca/docker-compose.yml con el contenido delAnexo I que cuenta con los servicios de LUCA PROXY y LUCA ACCOUNTS. Modificar las propiedades tal y como se ha descrito en apartados anteriores para adecuarlas al entorno donde se esté ejecutando LUCA. Ejecutar el siguiente comando para arrancar el stack

docker stack deploy --with-registry-auth -c /etc/luca/docker-compose.yml luca

Una vez realizado este paso acceder la URL https://luca.luca-bds.com/auth la cual presentará una web como la que se muestra en la captura.

En caso de que LUCA estuviera integrado un LDAP se deberá realizar la integración con LDAP antes de comenzar con la migración desde la versión 2.7.X de LUCA
/auth/ login
Figura 12.1: Acceso administración LUCA Accounts

Hacer clic en Administration Console e introducir el usuario y contraseña que fue configurado en las propiedades KEYCLOAK_USER y KEYCLOAK_PASSWORD

Admin login
Figura 12.2: Login administración LUCA Accounts

Comprobar que el realm luca-bds está seleccionado en el menú de la izquierda y hacer clic en Clients

installation clients menu
Figura 12.3: Clientes

Acceder al cliente luca-bds-web haciendo clic en él.

installation clients view
Figura 12.4: Vista de los clientes

Rellenar el campo Valid Redirect URIs con la URL del dominio escogido para LUCA. Hacer clic en el botón ‘Save’ situado al final del formulario para guardar el cambio realizado.

luca bds web client
Figura 12.5: Cliente luca-bds-web

Volver a Clients para acceder al cliente luca-bds-api haciendo clic en él. Ir a la pestaña Credentials y hacer clic en Regenerate Secret.

luca bds api client
Figura 12.6: Regenerar secret del cliente luca-bds-api

En lugar de los asteriscos aparecerá un código alfanumérico que deberá ser usado en la variable de entorno ACCOUNTS_ADMIN_CLIENTSECRET de LUCA API. Guardar este valor en un documento de texto ya que el siguiente paso será parar el stack para incluir LUCA API y LUCA WEB.

Se deberá parar LUCA ACCOUNTS antes de pasar al siguiente punto con el siguiente comando

docker stack rm luca

12.10. Configuración completa de LUCA. LUCA API, LUCA DISPATCHER y LUCA WEB

El Anexo II contiene el contenido de los servicios LUCA API, LUCA DISPATCHER y LUCA WEB. Modificar las propiedades tal y como se ha descrito en apartados anteriores para adecuarlas al entorno donde se esté ejecutando LUCA y añadirlas al fichero docker-compose.yml creado para LUCA PROXY y LUCA ACCOUNTS. Una vez realizado esto ejecutar el comando que arranca el stack

docker stack deploy --with-registry-auth -c /etc/luca/docker-compose.yml luca

LUCA API ejecutará todos los cambios requeridos en la base de datos. Una vez haya finalizado este proceso podremos acceder a https://luca.luca-bds.com/ e iniciar sesión. En caso de ser una nueva instancia de LUCA, la primera vez que accedamos a la web nos pedirá que introduczcamos una licencia, la cual habrá sido previamente suministrada.

12.11. Anexo I

Fichero /etc/luca/docker-compose.yml con servicios LUCA PROXY y LUCA ACCOUNTS.

Modificar el nombre del dominio en la etiqueta traefik.http.routers.accounts.rule
version: "3.3"

networks:
    luca:
        external: true

volumes:
    volume-log-api:
        external: true
    volume-log-dispatcher:
        external: true

services:
    proxy:
        image: boo3vgog.gra7.container-registry.ovh.net/luca/luca-proxy:latest
        ports:
          - 80:80
          - 443:443
        deploy:
          mode: global
        volumes:
          - "/var/run/docker.sock:/var/run/docker.sock:ro"
          - "/etc/luca/ssl/certificate.key:/etc/ssl/private/certificate.key"
          - "/etc/luca/ssl/certificate.crt:/etc/ssl/certs/certificate.crt"
        networks:
          - luca

    accounts:
        image: "boo3vgog.gra7.container-registry.ovh.net/luca/luca-accounts:latest"
        command: start --auto-build --import-realm --spi-theme-welcome-theme=luca --spi-theme-default=luca
        environment:
            KEYCLOAK_ADMIN: XXXX
            KEYCLOAK_ADMIN_PASSWORD: XXXX
            KC_DB: XXXX
            KC_DB_URL: XXXX
            KC_DB_USERNAME: XXXX
            KC_DB_PASSWORD: XXXX
            KC_HOSTNAME: luca.luca-bds.com
        deploy:
            labels:
                - "traefik.enable=true"
                - "traefik.http.routers.accounts.rule=Host(`luca.luca-bds.com`) && PathPrefix(`/auth`)"
                - "traefik.http.routers.accounts.entrypoints=websecure"
                - "traefik.http.routers.accounts.tls=true"
                - "traefik.http.services.accounts.loadbalancer.server.port=8080"
                - "traefik.docker.network=luca"
        depends_on:
            - traefik
        networks:
            - luca

12.12. Anexo II

Continuación del fichero /etc/luca/docker-compose.yml con servicios LUCA API y LUCA WEB.

Modificar el nombre del dominio en las etiquetas traefik.http.routers.api.rule y traefik.http.routers.web.rule
    api:
        image: "boo3vgog.gra7.container-registry.ovh.net/luca/luca-api:latest"
        deploy:
            labels:
                - "traefik.enable=true"
                - "traefik.http.routers.api.rule=Host(`luca.luca-bds.com`) && PathPrefix(`/luca-api`)"
                - "traefik.http.routers.api.entrypoints=websecure"
                - "traefik.http.routers.api.tls=true"
                - "traefik.http.services.api.loadbalancer.server.port=8080"
                - "traefik.docker.network=luca"
        volumes:
            - volume-log-api:/data/luca/logs
        environment:
            - "DATASOURCE_URL=XXXX"
            - "DATASOURCE_SECHEMA="
            - "DATASOURCE_USERNAME=XXXX"
            - "DATASOURCE_PASSWORD=XXXX"
            - "DATASOURCE_DRIVERCLASSNAME=XXXX"
            - "ENTITYMANAGER_HIBERNATE_DIALECT=XXXX"
            - "DATASOURCE_VALIDATIONQUERY=SELECT 1"
            - "DATASOURCE_OLD_URL=XXXX”
            - "DATASOURCE_OLD_USERNAME=XXXX"
            - "DATASOURCE_OLD_PASSWORD=XXXX"
            - "DATASOURCE_OLD_DRIVERCLASSNAME=XXXX"
            - "ACCOUNTS_URL=https://luca.luca-bds.com/auth"
            - "ACCOUNTS_JWKSURI=https://luca.luca-bds.com/auth/realms/luca-bds/protocol/openid-connect/certs"
            - "ACCOUNTS_WELLKNOWN=https://luca.luca-bds.com/auth/realms/luca-bds/.well-known/openid-configuration"
            - "ACCOUNTS_ADMIN_CLIENTID=luca-bds-api"
            - "ACCOUNTS_ADMIN_CLIENTSECRET=XXXX"
            - "LUCA_MIGRATION_27_ENABLED=XXXX"
            - "LUCA_APIDOC_SERVERURL=https://luca.luca-bds.com/luca-api"
            - "LUCA_CORS_ALLOWEDORIGINS=https://luca.luca-bds.com"
        depends_on:
            - accounts
        networks:
            - luca

    dispatcher:
        image: "boo3vgog.gra7.container-registry.ovh.net/luca/luca-dispatcher:latest"
        environment:
            - "DATASOURCE_URL=XXXX"
            - "DATASOURCE_SECHEMA="
            - "DATASOURCE_USERNAME=XXXX"
            - "DATASOURCE_PASSWORD=XXXX"
            - "DATASOURCE_DRIVERCLASSNAME=XXXX"
            - "ENTITYMANAGER_HIBERNATE_DIALECT=XXXX"
            - "DATASOURCE_VALIDATIONQUERY=SELECT 1"
            - "ACCOUNTS_URL=https://luca.luca-bds.com/auth"
            - "ACCOUNTS_ISSUERURI=https://luca.luca-bds.com/auth/realms/luca-bds"
            - "ACCOUNTS_WELLKNOWN=https://luca.luca-bds.com/auth/realms/luca-bds/.well-known/openid-configuration"
            - "ACCOUNTS_ADMIN_CLIENTID=luca-bds-api"
            - "ACCOUNTS_ADMIN_CLIENTSECRET=XXXX"
            - "SPRING_MAIL_HOST=XXXX"
            - "SPRING_MAIL_PORT=XXXX"
            - "SPRING_MAIL_USERNAME=XXXX"
            - "SPRING_MAIL_PASSWORD=XXXX"
            - "SPRING_MAIL_FROM=XXXX"
            - "SPRING_MAIL_PROPERTIES_MAIL_SMTP_AUTH=XXXX"
            - "SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_ENABLE=XXXX"
            - "SPRING_MAIL_PROPERTIES_MAIL_SMTP_STARTTLS_REQUIRED=XXXX"
            - "TZ=Europe/Madrid"
        networks:
            - luca

    web:
        image: "boo3vgog.gra7.container-registry.ovh.net/luca/luca-web:latest"
        deploy:
            labels:
                - "traefik.enable=true"
                - "traefik.http.routers.web.rule=Host(`luca.luca-bds.com`) && PathPrefix(`/`)"
                - "traefik.http.routers.web.entrypoints=websecure"
                - "traefik.http.routers.web.tls=true"
                - "traefik.http.services.web.loadbalancer.server.port=80"
                - "traefik.docker.network=luca"
        environment:
            - TZ:Europe/Madrid
            - "LUCA_ACCOUNTS_BASE_URL=https://luca.luca-bds.com/auth"
            - "LUCA_ACCOUNTS_TOKEN_URL=https://luca.luca-bds.com/auth/realms/luca-bds/protocol/openid-connect/token"
            - "LUCA_API_BASE_URL=https://luca.luca-bds.com/luca-api/"
        volumes:
            - volume-log-web:/var/log/nginx
        depends_on:
            - api
        networks:
            - luca

13. Changelog

Este apartado detalla las correcciones, cambios y nuevas funcionalidades incluidos en cada una de las versiones de LUCA

13.1. API 3.13.0 - WEB 1.13.0 (08/04/2024)

Nuevas funcionalidades
  • LUCA-3074:Ampliar la pantalla de uso para añadir las consultas que se usan en los Mail

Correcciones
  • LUCA-3086:Correcciones al ejecutar el proceso de Mailing

  • LUCA-3072:Problema con el keyCloak al desactivar y activar el usuario desde Luca

Cambios
  • LUCA-3079: Actualización de seguridad y librerias

13.2. API 3.12.2 - WEB 1.12.3 (06/03/2024)

Nuevas funcionalidades
  • LUCA-3058:Permitir añadir parámetros de autentificación adicionales al datasource de tipo REST

  • LUCA-3055:Añadir peticiones de tipo PATCH

Correcciones
  • LUCA-3053: Corregida la actualización de mail

13.3. API 3.12.1 - WEB 1.12.2 (31/01/2024)

Correcciones
  • LUCA-3022: Corregida la exportación a PNG de las gráficas

  • LUCA-3037: Corregidos estilos en la edición de árboles, no se veía el paginado

  • LUCA-3044: Corregido el guardado de las paramétricas desde la Web

  • LUCA-3045: Corregido error al abrir enlaces públicos de tipo consulta en Firefox

13.4. API 3.12.1 - WEB 1.12.1 (11/01/2024)

Correcciones
  • LUCA-3036: No funcionan las variables de tipo rango temporal en los enlaces públicos

  • LUCA-3037: La documentación de la API ha dejado de estar disponible

13.5. API 3.12.0 - WEB 1.12.0 (20/12/2023)

Correcciones
  • LUCA-3008: No funciona la ejecución de una consulta con variables de tipo formula desde la edición

  • LUCA-3015: No se actualiza el formato de fecha origen hasta que no se guarda la consulta

  • LUCA-3026: Los anchos de los ejes solo permiten almacenar valores enteros en vez de decimales

  • LUCA-3031: Los valores de las nuevas variables de salida desaparecen al añadir configuración avanzada

Nuevas funcionalidades
  • LUCA-3001: Creación de enlaces públicos para cualquier elemento de LUCA

  • LUCA-3020: Nuevo datasource 'Microsoft Dataverse'

Cambios
  • LUCA-2981: Variables requeridas en los filtros de los dashboards

  • LUCA-3027: Volver a la página 1 en una consulta si ésta devuelve menos páginas que la página en la que estamos posicionados

  • LUCA-2993: Mejoras en tablas dinámicas. Más opciones de expansión de datos y cambios de colores

  • LUCA-3029: En la lista de consultas cambiar el icono de Importar

13.6. API 3.11.0 - WEB 1.11.0 (16/10/2023)

Correcciones
  • LUCA-2978: Error con gráficas apiladas cuya categoría es numérica

  • LUCA-2984: Los nombres de variables largas en consultas de tipo insert/update/delete no se alinean correctamente

  • LUCA-2979: Mostrar mensaje de no hay datos cuando no existen datos en las gráficas

  • LUCA-2974: No dejar editar/borrar elementos si el usuario no tiene permisos

Nuevas funcionalidades
  • LUCA-874: Variables de entrada de tipo boolean

  • LUCA-2941: Clonación de perfiles

  • LUCA-2776: Plantillas de gráficos HTML

  • LUCA-2508: Configurar formatos numéricos en las series de las gráficas

Cambios
  • LUCA-2910: En las agrupaciones de fecha en gráficas añadir el mes en formato enero, febrero, marzo…​

  • LUCA-2462: Mostrar tipo de dato (int, varchar…​) en las columnas de las tablas del visor de las bases de datos

  • LUCA-2969: Añadir botón de recargar en la ventada de búsqueda de elementos

  • LUCA-2909: Para consultas de tipo combo modificar la pestaña 'Uso' para ver en que consultas y dashboards se está usando

  • LUCA-2986: Poder importar consultas para modificar consultas existentes

13.7. API 3.10.1 - WEB 1.10.1 (20/09/2023)

Correcciones
  • LUCA-2966: No se actualiza el formulario de actualización de una entidad en la previsualización de la edición de formularios cuando se selecciona una nueva fila.

  • LUCA-2971: Las variables de tipo rango temporal se ven más pequeñas en la ejecución de consultas, árboles, gráficas y dashboards.

  • LUCA-2970: No se ordenan correctamente las gráficas apiladas o agrupadas cuyo eje X es de tipo fecha categórica.

  • LUCA-2972: No se puede hacer drilldown pinchando en una columna cuando hay series de tipo línea.

13.8. API 3.10.0 - WEB 1.10.0 (04/09/2023)

Correcciones
  • LUCA-2908: Al editar el primer elemento de los parámetros y cabeceras HTTP desde el botón de editar no funciona

  • LUCA-2911: No se están borrando las categorías de una gráfica al borrar la gráfica

  • LUCA-2928: No funciona la ejecución de consultas en la consola SQL

  • LUCA-2930: Al clonar un dashboard con filtros de tipo fecha el formato y el valor por defecto se clonan mal

  • LUCA-2932: No se actualiza el color del texto del totalizador en los donuts al cambiarlo en la paleta de colores

  • LUCA-2933: No se puede volver a la consulta principal en un árbol si una variable de salida única con formato está vacía

  • LUCA-2934: Error navegando por árboles con salida única y navegando entre página. No se muestra la salida correcta

  • LUCA-2936: Falta el campo esquema por defecto en la configuración de los datasources de tipo Oracle

  • LUCA-2938: No se pueden borrar consultas favoritas

Nuevas funcionalidades
  • LUCA-2767: Nuevo tipo de variable de entrada de tipo rango

  • LUCA-2824: Combos con búsqueda remota

  • LUCA-2912: Actualizar la licencia de LUCA desde la propia web

  • LUCA-2902: Incluir botón de importar consulta en la vista del listado de consultas

  • LUCA-2781: Al crear un drilldown heredar las series que se hayan configurado en el primer nivel

  • LUCA-2861: En las ventanas modales de edición de parámetros y cabeceras incluir las variables de entrada declaradas en la consulta HTTP

Cambios
  • LUCA-2859: Permitir reordenar parámetros y cabeceras en consultas HTTP

13.9. API 3.9.0 - WEB 1.9.0 (19/05/2023)

Correcciones
  • LUCA-2901: Al seleccionar un sistema REST en una consulta y cambiar a otro sistema REST da un error

  • LUCA-2903: Al actualizar la consulta de un combo en una variable de entrada, no se actualizan los valores del combo en la previsualización

  • LUCA-2896: En formularios no se puede guardar dos veces ya que salta el aviso de conflicto de versión

  • LUCA-2753: Quitar la opción 'Opcional' cuando se selecciona una variable de entrada de tipo 'Usuario actual'

  • LUCA-2879: En las tablas dinámicas los totalizadores de fechas no formatean la fecha

  • LUCA-2883: No hacer obligatorio el json path principal cuando el objeto devuelto no es un array

  • LUCA-2891: No carga el esquema de una bbdd en la edición de consultas ni en la consola SQL

  • LUCA-2893: Mostrar mensaje de error al intentar guardar una variable de entrada una consulta con un combo estático sin valores

  • LUCA-2897: No se están ordenando las variables de las consultas de los formularios en el enlace de variables

  • LUCA-2885: No se pueden clonar gráficas que tienen anotaciones en sus series

  • LUCA-2885: No se puede crear un usuario desde LUCA

  • LUCA-2880: No se pueden guardar los colores para las categorías agrupadas

  • LUCA-2867: No se puede acceder a la vista de creación de mailings sin el permisos de administrador de usuarios

  • LUCA-2905: Al crear un gráfico HTML no aparecen las variables si no has guardado

  • LUCA-2906: Al guardar un gráfico HTML se borra el título de la gráfica

  • LUCA-2907: No funciona bien la tabla de clave valor para el body de las peticiones Http de tipo x-www-form-urlencoded

Nuevas funcionalidades
  • LUCA-2445: Poder importar y exportar queries

  • LUCA-2826: Capturar los errores HTTP 500 y 400 y mostrar un modal con la descripción del error

  • LUCA-2838: Mejorar errores de acceso denegado

  • LUCA-2875: Permitir en los gráficos básicos ejes X de tipo lineal o logaritmico

  • LUCA-2786: Poder crear enlaces en los dashboards rellenando los filtros

Cambios
  • LUCA-2900: Añadir botón de acceso directo a la administración de un combo desde la configuración de un combo en variables de entrada

  • LUCA-2785: Cuando es un combo enlazado requerido y solo hay un elemento, que se seleccione por defecto

  • LUCA-2898: En los gráficos HTML permitir abrir enlaces ya que con la política de seguridad de los iframes se bloqueó

  • LUCA-2892: Poder expandir el menú lateral en una aplicación

  • LUCA-2895: Habilitar compresión gzip en las respuestas de la api y la web para agilizar el tráfico de red

  • LUCA-2890: Añadir ;encrypt=false al final de la url de los datasources SQL Server por defecto

  • LUCA-2887: Agregar a la URL del preview de una consulta http el puerto

13.10. API 3.8.0 - WEB 1.8.0 (12/04/2023)

Correcciones
  • LUCA-2836: No se pueden reordenar las filas, columnas y valores de las tablas dinámicas

  • LUCA-2848: Al volver al dashboard principal de una aplicación no se recarga

  • LUCA-2855: En formularios los botones de carga masiva desde csv aparecen ligeramente descolocados

  • LUCA-2849: Un usuario con permisos de administración de perfiles no puede editar un perfil si no tiene administración de roles, usuarios y datasources

  • LUCA-2851: La exportación a CSV no exporta correctamente los caracteres raros

  • LUCA-2837: Variables de salida de tipo fecha en valores de tablas dinámicas no formatea bien la fecha

  • LUCA-2840: Unificar los nombres 'Mailing' y 'Reportes por correo' en roles y menú lateral

  • LUCA-2843: A la hora de ejecutar consultas con la variables en las que no se han introducido ningún valor meterlas como NULL

  • LUCA-2846: Al crear una consulta nueva con más de una variable de entrada y probarla sin guardar no se envían correctamente los valores a la API

Nuevas funcionalidades
  • LUCA-2825: Actualización de Keycloak a la versión 21

  • LUCA-2857: Poder usar clientes de tipo client_credentials en LUCA

  • LUCA-2790: Mejoras en el conector HTTP

Cambios
  • LUCA-2831: Modificación de estilos y plantillas para Keycloak 21

  • LUCA-2840: Unificar los nombres 'Mailing' y 'Reportes por correo' en roles y menú lateral

  • LUCA-1906: Poder configurar Redis como cache de las consultas y gráficas

  • LUCA-2807: Cambiar la estrategia de generación del id de la tabla luca_execution_register para no usar la secuencia de hibernate

  • LUCA-2832: Utilizar las capas en docker para generar imágenes más pequeñas de la API y el Dispatcher

  • LUCA-2568: Validar los valores por defecto en variables de entrada numéricas

Las conexiones a las BBDD SQL Server pasan a estar encriptadas por defecto debido a la actualización del driver de SQL Server. Para desactivar la encriptación por defecto añadir: ;encrypt=false al final de la url de la cadena de conexión.

13.11. API 3.7.1 - WEB 1.7.3 (23/03/2023)

Correcciones
  • LUCA-2841: No se ven los nombres de las variables de entrada y salida en el tema oscuro

  • LUCA-2842: No se puede filtrar en el combo de entornos

  • LUCA-2844: En los paneles de asignación de grupos, datasources y usuarios no se alinean bien los checks con los datos

  • LUCA-2845: Al asignar un ancho a un combo, amplia el ancho del combo pero no del desplegable

  • LUCA-2852: Variables de entrada multiselect consulta no utilizan el valor seleccionado para filtrar

13.12. API 3.7.1 - WEB 1.7.2 (08/03/2023)

Correcciones
  • LUCA-2819: Corregido el tamaño de la fuente en las tablas de la ejecución de árboles

  • LUCA-2827: Corregido fallo de estilos en el árbol de navegación de la ejecución de árboles

  • LUCA-2833: Corregida la codificación de los gráficos HTML y SVG

  • LUCA-2835: Corregido tamaño de los inputs en los filtros de las consultas

13.13. API 3.7.1 - WEB 1.7.1 (06/03/2023)

Correcciones
  • LUCA-2795: La columna luca_rownumber se devuelve para los datasources de tipo db2

  • LUCA-2817: Correcciones de estilos para el tema oscuro

  • LUCA-2818: Añadir compatibilidad con versiones de keycloak 20 y 21

  • LUCA-2822: Un usuario no activo en LUCA no puede realizar ninguna acción

  • LUCA-2823: No se pueden crear o editar reportes mail si el grupo no está asignado al usuario de manera directa

  • LUCA-2828: Corregido error de cambios en la BD para oracle

  • LUCA-2815: Correcciones de estilos para los combos de tipo multiselección

13.14. API 3.7.0 - WEB 1.7.0 (14/02/2023)

Correcciones
  • LUCA-2758: Las etiquetas de las gráficas se salen del margen superior si las columnas son muy altas

  • LUCA-2764: En una gráfica de líneas si seleccionas 'Serie temporal' en categorías y luego la agregación por fecha, el eje X no cambia a tipo Fecha

  • LUCA-2778: Los nombres de usuario muy largos se cortan en los listados de los distintos elementos de LUCA

  • LUCA-2793: En las gráficas de tipo timeline con valores negativos no se repinta el eje x al navegar con el zoom

  • LUCA-2754: Al borrar lo marcado en una variable de entrada que luego está enlazada a otra también con una opción escogida, esta segunda no borra su valor del combo

  • LUCA-2704: Generador de enlaces falla con nombres que contienen espacios en blanco

  • LUCA-2734: Los valores por defecto en las variables de entrada de un dashboard no se aplican en la primera ejecución

  • LUCA-2750: En la consola SQL controlar que no se puedan eliminar todas las pestañas de los editores

  • LUCA-2733: Se cortan los textos de las categorías del eje x cuando el alto es pequeño y los textos no están rotados

Nuevas funcionalidades
  • LUCA-2770: Envío informes programados por correo en formato Excel

  • LUCA-2775: Configurar color de la letra en los rangos cuando se selecciona el modo de colorear el fondo

  • LUCA-2744: Dar de alta rangos en las filas de las tablas dinámica

  • LUCA-2766: Configurar valores por defecto de tipo fecha para las variables de entrada

  • LUCA-2743: Fijar variables de salida para que sean columnas fijas en las tablas de con los resultados de las consultas

  • LUCA-2440: Dar colores a las categorías agrupadas o apiladas de los gráficos básicos

  • LUCA-2735: Buscador en el escritorio de aplicaciones

  • LUCA-2736: Configuración de anotaciones para indicar valores máximos y mínimos en las series de area y linea

  • LUCA-2740: Configuración de colores para las categorías de las series de tipo básico que son apiladas o agrupadas

Cambios
  • LUCA-2747: Cambio combos con scroll virtual. Ahora se verán 10000 elementos en los combos y no será necesario buscar obligatoriamente

  • LUCA-2783: No permitir guardar un elemento de LUCA si alguien lo ha guardado antes y se produce un conflicto

  • LUCA-2739: Nombres de los excel y csv descargados desde un aplicación que tengan el mismo nombre que el menú

  • LUCA-2550: Mostrar un mensaje de advertencia al intentar añadir un drilldown sin haber añadido al menos una serie

13.15. API 3.6.1 - WEB 1.6.2 (10/01/2023)

Correcciones
  • LUCA-2779: No hay locale fallback en las gráficas cuando el navegador tiene un locale no contemplado

13.16. API 3.6.1 - WEB 1.6.1 (28/12/2022)

Correcciones
  • LUCA-2755: No se formatean correctamente las variables de salida numéricas con abreviaciones (1K, 1M…​) en las gráficas HTML

  • LUCA-2759: No funciona la creación de árboles porque no se está enviando el grupo del árbol

  • LUCA-2760: Se puede guardar un gráfico simple SVG y HTML sin rellenar el SVG/HTML correspondiente. Ahora se obliga a que se rellene

  • LUCA-2761: Las gráficas de tipo Mapa con series y variables de tipo texto y función 'No operación' no aplica la función correctamente

  • LUCA-2763: No deja guardar una gráfica de tipo Mapa cuando la BBDD de configuración de LUCA es un postgresql

13.17. API 3.6.0 - WEB 1.6.0 (20/10/2022)

Correcciones
  • LUCA-2705: Filtros con valores guardados en combos enlazados y con muchos elementos no se muestra el valor guardado ya que no carga el combo

  • LUCA-2710: Mostrar mensaje de que no existe un entorno disponible cuando el combo entorno no está visible y el usuario no posee permisos sobre ningún entorno

  • LUCA-2729: La asignación de memoria a LUCA API mediante variables de entorno no funciona

  • LUCA-2567: Los valores mínimos y máximos de una variable de entrada decimal no funciona con valores decimales

  • LUCA-2621: Los enlaces de los elementos no funcionan si el título contiene el carácter '%'

  • LUCA-2682: Gráficas con drilldown y categorias en vertical, al navegar a un drilldown no recalcula los márgenes de las columnas

  • LUCA-2691: En el menú principal de administración el enlace de las aplicaciones te lleva a las gráficas

  • LUCA-2694: Al buscar en los combos grandes no debe diferenciar entre las mayúsculas y minúsculas introducidas por el usuario

  • LUCA-2695: No permite la creación de grupos si solo existe el grupo principal creado

  • LUCA-2706: La exportación a csv de gráficas no exporta con el locale adecuado

  • LUCA-2707: Al cambiar una aplicación a visibilidad privada esta deja de verse en el listado de aplicaciones

Nuevas funcionalidades
  • LUCA-2535: Series de tipo marcador para las gráficas básicas

  • LUCA-2557: Consola SQL

  • LUCA-2436: Poder editar elementos desde su ejecución con un atajo rápido

  • LUCA-2728: Enlaces a la administración de las consultas configuradas en un árbol, formulario y dashboard desde sus respectivas pantallas de edición

  • LUCA-2547: Actualización de LUCA ACCOUNTS a la versión 19.0.3

Cambios
  • LUCA-2719: Exportación a excel en modo stream

  • LUCA-2701: Añadir idioma inglés a la web de LUCA

  • LUCA-2696: En los combos estáticos eliminar el poder añadir variables de salida

13.18. API 3.5.0 - WEB 1.5.0 (14/07/2022)

Correcciones
  • LUCA-2504: Combos muy grandes ralentizan la web

  • LUCA-2589: Combos con descripciones muy grandes no se visualizan correctamente

  • LUCA-2612: Cuando la web LUCA está publicado con una ruta distinta a / los enlaces no se abren correctamente

  • LUCA-2638: Las salidas cuya descripción contiene un punto no se pintan los datos en las tablas

  • LUCA-2643: Al hacer clic en una columna de tipo fecha para ordenar los resultados, éstos se ordenan alfabéticamente y no por fecha

  • LUCA-2646: Las categorías muy largas hacen que se corte la gráfica y no se ve correctamente

  • LUCA-2649: En 'Uso' de una gráfica, añadir en que dashboards se está usando

  • LUCA-2651: Un usuario que no tiene ningún permiso asignado ve el botón 'Configuración de LUCA'

  • LUCA-2652: Filtros muy grandes en la ventana de edición de consultas no aparece scroll

  • LUCA-2654: Gráficas timeline con leyenda, al hacer zoom y desmarcar una serie en la leyenda se resetea el zoom

  • LUCA-2657: Al actualizar un registro en un formulario tras una carga masiva sigue apareciendo el csv seleccionado y no deja actualizar

Nuevas funcionalidades
  • LUCA-2497: Configurar valores máximos y mínimos fijos para el eje Y de las gráficas

Cambios
  • LUCA-2655: Hacer del mismo tamaño los filtros de una gráfica en momento de ejecución cuando está expandido y cuando no

  • LUCA-2611: Aumentar el tamaño del la columna USERNAME de la tabla SECURITY_USERS

13.19. API 3.4.0 - WEB 1.4.0 (26/04/2022)

Correcciones
  • LUCA-2582: Al añadir un nuevo submenú a un árbol existente la api da un 404 en el método de actualizar el árbol

  • LUCA-2573: Al borrar una serie de una gráfica básica, se borra la relación en la tabla LUCA_CHART_BASIC_SERIES_REL, pero no se borra la serie

  • LUCA-2566: No se puede utilizar la misma variable en una categoría y en una serie

  • LUCA-2565: Problema con los nombres de menú muy largos en las aplicaciones

  • LUCA-2564: Problema al crear elementos desde cero, se desconfigura todo una vez rellenas el formulario de detalle

  • LUCA-2563: Varias series de columnas agrupadas por las mismas categorías se superponen

  • LUCA-2549: Quitar el botón 'Nueva variable' y bloquear la edición del campo 'Clave' en las salidas de las consultas de tipo combo y combo estático

  • LUCA-2543: Las series de columnas agrupadas se superponen sobre otras

  • LUCA-2588: Categorías de tipo fecha con valores nulos arroja error

  • LUCA-2592: Gráfica timeline con varias series agrupadas duplica las series

  • LUCA-2598: Cuando existen múltiples gauges en un dashboard no se alinean bien los títulos de los límites

  • LUCA-2594: No se puede actualizar las series agrupadas y serie temporal

  • LUCA-2605: Error que produce que no se ejecuten las gráficas cuando arranca LUCA

  • LUCA-2606: Error en la edición de gráficas de tipo mapa

  • LUCA-2607: Los gráficos simples no aceptan datos que no sean numéricos

Nuevas funcionalidades
  • LUCA-2426: Posibilidad de rellenar los huecos con otro tipo de linea para las series de tipo linea/área

Cambios
  • LUCA-2427: Girar automáticamente las categorías del eje X para que no se solapen

  • LUCA-2558: Inclusión del locale es_ES.UTF-8 en LUCA API

  • LUCA-2485: Cambiar automáticamente el eje X a tipo fecha cuando se maque el check 'Serie temporal' en la categoría

  • LUCA-2417: Al agregar una gráfica a un dashboard, si ésta solo tiene un filtro establecerle, automáticamente en el combo Filtro

  • LUCA-2577: Seguridad - Ejecutar los servicios de luca-web y luca-api con un usuario diferente a root en docker

  • LUCA-2486: Deshabilitar la opción de configurar drill-down cuando esté marcado el check 'Serie temporal'

  • LUCA-2559: Seguridad - Mantenimiento versiones de dependencias de los componentes de LUCA web y api

13.20. API 3.3.0 - WEB 1.3.0 (01/04/2022)

Correcciones
  • LUCA-2512: Las gráficas con una serie apilada y otra agrupada utilizan la misma variable para agrupar y apilar

  • LUCA-2496: En los dashboards no se puede redimensionar un contenedor que contenga un mapa

  • LUCA-2509: Gráficas con series agrupadas al ocultar una serie con la leyenda no se recalculan máximos y mínimos del eje

  • LUCA-2510: No mostrar los nulos en el tooltip en series agrupadas o apiladas

  • LUCA-2531: El escritorio de aplicaciones solo trae 25 aplicaciones por defecto

  • LUCA-2532: Exportación a excel los campos nulos los pone como "null"

  • LUCA-2541: Problema con el formateo de números en ciertos idiomas del navegador

Nuevas funcionalidades
  • LUCA-2522: Gráfica de tipo gauge

  • LUCA-2511: Poder ordenar por fecha de creación o edición las tablas de configuración de elementosder

Cambios
  • LUCA-2463: La reordenación de las variables de entrada se realiza desde su título

  • LUCA-2461: Crear enlaces (Ctrl +clic) en botones de escritorio de apps y 'Configuración de LUCA'

  • LUCA-2465: Quitar las opciones 'Combo' y 'Multiselección' si se selecciona una variable de entrada de tipo fecha, fecha actual o usuario actual

  • LUCA-2417: Al agregar una gráfica a un dashboard, si ésta solo tiene un filtro establecerle automáticamente en el combo Filtro

  • LUCA-2482: Permitir reordenar filas, columnas y valores en las tablas dinámicas

  • LUCA-2498: Poner la opacidad del grid del eje X a 0 por defecto

  • LUCA-2500: Permitir reordenar los menús y submenús de los árboles

  • LUCA-2441: Si estás en la edición de un elemento y cambias algo antes de salir mostrar un mensaje de que no has guardado

13.21. API 3.2.0 - WEB 1.2.0 (10/03/2022)

Correcciones
  • LUCA-2516: Los filtros de los dashboards ajustados a la vista no toman un alto fijo en firefox

  • LUCA-2507: No mostrar los menús de las aplicaciones si el usuario no tiene permisos y la paramétrica está activada

  • LUCA-2494: Problema con variables por defecto en los filtros de las gráficas

  • LUCA-2484: Las columnas de las tablas dinámicas no heredan correctamente la configuración del rango establecido en una variable de salida

  • LUCA-2476: Al quitar el check de marcador no visible en una serie y guardar, se vuelve a quedar marcado como visible

  • LUCA-2466: Revisar el formateo numérico cuando se ha declarado separador de miles

  • LUCA-2453: Problema con las leyendas en las gráficas apiladas y agrupadas

  • LUCA-2454: Problema con las tablas en dashboads en firefox

  • LUCA-2515: No se exportan consultas de SQL Server a CSV

  • LUCA-2514: Comprobar los nombres de las variables de salida sin tener en cuenta mayúsculas o minúsculas

  • LUCA-2475: Al clonar una consulta con variables enlazadas deja de funcionar el enlace en la nueva consulta

  • LUCA-2480: No se puede crear una gráfica apilada y con drilldown

Nuevas funcionalidades
  • LUCA-2486: Poder abrir la edición de una consulta desde la edición de gráficas

  • LUCA-2437: Definir un formato numérico que para un numero muy grande sea por ejemplo 15,6K o 2,2M

  • LUCA-2425: Añadir botón para ver el uso de un elemento

Cambios
  • LUCA-2518: Rediseño aplicaciones escritorio

  • LUCA-2451: Unificar textos 'No hay datos' y su fuente en gráficas y consultas

  • LUCA-2434: Al agregar una gráfica a un dashboard autocompletar el título con el título de la gráfica

  • LUCA-2417: Al agregar una gráfica a un dashboard, si ésta solo tiene un filtro establecerle automáticamente en el combo Filtro

13.22. API 3.1.0 - WEB 1.1.0 (14/02/2022)

Correcciones
  • LUCA-2470: Validación de variable de entrada no incluye el valor mínimo indicado

  • LUCA-2469: Menus con nombres muy largos en la configuración de aplicaciones se cortan

  • LUCA-2468: Los date picker empiezan en domingo en lugar del lunes

  • LUCA-2457: Error al obtener las tablas de un esquema en SQL Server

  • LUCA-2456: El tiempo de refresco no funciona correctamente en los dashboards debido a las unidades de tiempo

  • LUCA-2455: No se puede guardar una gráfica HTML creada desde cero

  • LUCA-2453: Problema con las leyendas en las gráficas apiladas y agrupadas

  • LUCA-2452: Error al guardar cuando quitas una variable enlazada de una entrada en filtros de dashboards y entradas de consultas

  • LUCA-2450: Las variables de entrada de un filtro de un dashboard no las ordena por posición

  • LUCA-2449: El buscador de los combos no se ve bien en el tema oscuro

  • LUCA-2420: Error al pintar un drilldown de columnas viniendo de una serie de líneas como serie base

  • LUCA-2402: En los tooltips de las series timeseries que aparezca la hora

  • LUCA-2401: Revisar las leyendas muy grandes que no caben

  • LUCA-2400: Al buscar una consulta estando en una página que no sea la 1 no se muestran los resultados porque la URL no se actualiza a la página 1

  • LUCA-2398: En los dashboards los contenedores de tipo consulta dejan escoger consultas que no son select

Nuevas funcionalidades
  • LUCA-2424: Poder configurar la unidad del ancho de los donuts

  • LUCA-2422: Poder elegir el ancho de los donuts entre un ancho fijo o porcentual

  • LUCA-2421: Poder navegar en el drilldown desde el titulo del eje x

  • LUCA-2418: Incluir las fechas que se están utilizando en la gráfica de zoom de las timeseries

  • LUCA-2414: Configuración de labels en las series

  • LUCA-2413: Configuración de markers en las series

  • LUCA-2412: Configuración de leyendas en las gráficas

  • LUCA-2409: Poder crear dashboards uniformes o que se muestren las cajas

  • LUCA-553: Exportación a excel

Cambios
  • LUCA-2423: Tamaño del texto del totalizador de los donut sea responsive

  • LUCA-2419: Cuando estás creando series autocompletar el campo Nombre con el nombre de la variable

  • LUCA-2415: Hacer scroll hacia arriba cuando se cambia de opción de menu en una aplicación

13.23. API 3.0.0 - WEB 1.0.0 (10/01/2022)

  • Rediseño completo de la web de LUCA

  • Uso de la herramienta Keycloak para la gestión de usuarios de LUCA

  • Soporte instalación de LUCA en Docker