Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...

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

Note

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.

Code Block
<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:

Code Block
<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

Code Block
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:

Code Block
languagejava
@Autowired
ConfigurationManager configManager;

Crear configuración

Code Block
languagejava
configManager.createConfiguration(configuration)

Dónde el objeto configuration está conpuesto por los siguientes campos:

Code Block
languagejava
private String id;
private String username;
@NonNull
private ConfigurationType type;
@NonNull
private String description;
@NonNull
private String identification;
@NonNull
private String environment;
private String yml;

Obtener configuración

Hay múltiples métodos para obtener una configuración dependiendo de los parámetros de los que se disponga:

Code Block
languagejava
# Obtener configuración a través del identificador, entorno y tipo
Configuration config = configManager.getConfiguration(identification, environament, type)
# Obtener configuración por ID
Configuration config = configManager.getConfigurationById(id)
# Obtener configuración por identificador
Configuration config = configManager.getConfigurationByIdentification(identification)
# Obtener todas las configuraciones del usuario
List<Configuration> configList = configManager.getConfigurations()

Actualizar configuración

Code Block
languagejava
configManager.updateConfiguration(configuration);

Borrar configuración

Code Block
languagejava
# Borrar configuración por identificador, entorno y tipo
configManager.deleteConfiguration(identification, environment, type);
# Borrar configuración por ID
configManager.deleteConfigurationById(id);

Uso del cliente Java para la gestión de configuración

Note

Seguir este apartado solo para versiones inferiores a la 3.3.2 del cliente Java. Se recomienda utilizar la versión 5.0.0 (explicado en el apartado anterior)

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.

...

Code Block
languagexml
<dependency>
	  <groupId>com.minsait.onesait.platform</groupId>
	  <artifactId>onesaitplatform-java-client</artifactId>
	  <version>2.1.0-RELEASE</version>
</dependency>

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:

...

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:

...

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:

Code Block
languagejava
List<Configuration> configurations = manager.getConfigurations()

Editar una Configuración

Para editar una configuración es necesario conocer su id.

...

Code Block
languagejava
Configuration retrievedConfig = manager.getConfiguration(IDENTIFICATION, ConfigurationType.EXTERNAL_CONFIG, ENVIRONMENT);
log.info("Retrieved config from the platform by parameters");
retrievedConfig.setDescription("This is a new description");
log.info("Updating configuration with new description and identification {}", IDENTIFICATION);
manager.updateConfiguration(configuration, retrievedConfig.getId());

Borrar una Configuración

Para eliminar una configuración hay que llamar al método deleteConfiguration pasando el id de la configuración.

Code Block
log.info("Retrieved config from the platform by id");
Configuration retrievedConfig = manager.getConfiguration(IDENTIFICATION, ConfigurationType.EXTERNAL_CONFIG, ENVIRONMENT);
log.info("Retrieved config from the platform by parameters");
log.info("Deleting configuration with id {}", retrievedConfig .getId());
manager.deleteConfiguration(IDENTIFICATION, ConfigurationType.EXTERNAL_CONFIG, ENVIRONMENT);

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í:

...