¿Cómo usar Configuración Centralizada de Plataforma en tu aplicación?
En versiones anteriores a la 2.3.0 esta funcionalidad está disponible en el menú Administración > Gestión de Configuraciones y sólo está disponible para roles Administradores.
Onesait Platform posee una Configuración de Sistema Centralizada para diversos propósitos. Usuarios con rol Administrador pueden definir de manera visual configuraciones para sus necesidades, incluyendo Despliegues (configuraciones Rancher & OpenShift), redes sociales (Twitter), programación de procesos, registros Endpint, etc.
Mediante es módulo, los usuarios pueden definir de forma sencilla las distintas configuraciones; plataforma, usa YAML o JSON como base.
Panel de Control UI
Para crear y modificar las Configuraciones, el usuario puede dirigirse al menú DEV TOOLS > Gestión de Configuraciones.
Como se puede ver en la tabla la Configuración está relacionada con un entorno (típicamente default o docker), un Identificador y un tipo:
En versiones anteriores a la 2.3.0 el campo identification no existe, en su lugar estará el campo suffix
Al crear una nueva Configuración el usuario tiene que rellenar el siguiente formulario:
Hay que tener en cuenta que para usuarios no administradores (a partir de la versión 2.3.0 de Plataforma) sólo se podrán crear configuraciones del tipo EXTERNAL_CONFIG.
Por ejemplo, se puede modificar la Configuración para los servicios endpoints, los cuales se procesan cuando la plataforma se lanza:
API REST
Además, se pueden realizar operaciones a través de una API REST existente, cuyos endpoints comienzan con '/controlpanel/api/configurations'.
Nota: estas Configuraciones emplean Yaml, la respuesta de estos servicios REST es visualmente poco amigable.
Cómo configurar tu aplicación para utilizar la configuración centralizada
Sólo para versiones a partir de la 5.0.0 (RECOMENDADO)
En primer lugar tendrás que añadir al pom.xml del proyecto que va a actuar como Config Server la siguiente dependencia.
<dependency>
<groupId>com.minsait.onesait.platform</groupId>
<artifactId>onesaitplatform-spring-config-client</artifactId>
<version>5.0.0</version>
</dependency>
Y tendrás que añadir el repositorio de Plataforma al listado de repositorios dentro del pom:
<repositories>
<repository>
<id>onesait platform releases</id>
<url>https://nexus.onesaitplatform.com/nexus/content/repositories/releases/</url>
</repository>
</repositories>
Una vez añadida la dependencia tendrás que añadir las siguientes propiedades a tu application.yml
onesaitplatform:
api.rest:
token: <ONESAITPLATFORM_API_KEY>
endpoint: <ONESAITPLATFORM_BASE_URL>
spring.cloud.config:
enabled: false
Donde:
ONESAITPLATFORM_API_KEY es el API Key de un usuario con rol administrador de la Plataforma. Esta key se utilizará para gestionar la seguridad a nivel de Pltaforma para poder obtener la configuración centralizada.
ONESAITPLATFORM_BASE_URL es el endpoint del controlpanel de la Plataforma donde se encuentra la configuración centralizada que queremos utilizar.
Una vez configurado el proyecto, basta con inyectar el Bean ConfigurationManager y acceder a los métodos disponibles:
Crear configuración
Dónde el objeto configuration está conpuesto por los siguientes campos:
Obtener configuración
Hay múltiples métodos para obtener una configuración dependiendo de los parámetros de los que se disponga:
Actualizar configuración
Borrar configuración
Uso del cliente Java para la gestión de configuración
Los clientes Java ofrecen una clase de Configuración Wrapper.
Configuración de la Dependencia
Para usar este API es necesario añadir el siguiente repositorio al proyecto pom.xml.
Después de esto hay que añadir la dependencia:
Inicialización
El primer caso es crear un objeto ConfigurationManager, para poder utilizar el cliente debes introducir como argumentos el usuario, la contraseña y el servidor URL:
Una vez inicializado el objeto, ya se puede usar para operar con las Configuraciones de Plataforma.
Crear una Configuración
Para crear una configuración es necesario crear antes un Objeto de tipo Configuration:
Una vez que la configuración se haya creado hay que hacer una llamada al ClientManager, al método createConfiguration:
Este método, si tiene éxito, devolverá el id de la configuración que se acaba de crear. Con este identificador se puede recuperar la configuración en un futuro, eliminarla o actualizarla.
Obtener una configuración
Hay dos métodos para recuperar una configuración:
getConfigurationById(id)
Este método permite recuperar una configuración a través de su id.
getConfiguration(identification, type, environment)
En caso de no conocer la id se puede obtener la configuración mediante los parámetros en el argumento. En el caso de existir, estos métodos devuelven una instancia de la Configuración.
Obtener todas las Configuraciones
Es posible obtener una lista de Configuraciones según el usuario logado, llamando al método getConfigurations:
Editar una Configuración
Para editar una configuración es necesario conocer su id.
La mejor manera de editar dicha configuración es recuperándola, aplicar los cambios y finalmente llamar al método updateConfiguration:
Borrar una Configuración
Para eliminar una configuración hay que llamar al método deleteConfiguration pasando el id de la configuración.
Test
Hay un test dentro de la librería que sirve como ejemplo. Prueba las operaciones básicas descritas en este tutorial. En caso de tener dudas, puedes consultar el código aquí: