El editor Gitlab consta de un componente web desarrollado en VueJS y de un microservicio backend separado del resto de módulos de la plataforma (forma parte de los módulos del center).
La integración con plataforma consigue del siguiente modo:
El componente VueJS se puede incrustar en las pantallas HTML de la plataforma, necesitando para su funcionamiento, que se informe un objeto con el token OAuth del usuario logado en plataforma, así como de la url donde está el módulo Gitlab-manager, que le proporciona los servicios de Backend.
A su vez el módulo Gitlab-manager, se configura mediante variables de entorno para informarle que está dando servicio a un front desde plataforma, el servidor OAuth de plataforma contra el que puede autenticar al usuario, así como del servidor Serverless-manager de plataforma (de momento solo está integrado para funciones Serverless) desde donde recupera la configuración del Gitlab de la aplicación Serverless.
Configuración Módulo Gitlab-manager
Este módulo se encuentra entre los componentes de proyecto Onesait Platform Center:
Código fuente en Gitlab: https://gitlab.devops.onesait.com/onesait/platform/engine/onesait-platform/control-center/-/tree/develop/sources/modules/platform-center-gitlab-manager
Imagen contenerizada en Registro: https://registry.onesaitplatform.com/repository/onesaitplatform/onesait-platform-gitlab-manager
A nivel de contenedor, la configuración que necesita para funcionar con Onesait Platform es:
gitlab.backend_type: platform
spring.security.oauth2.resourceserver.jwt.issuer-uri: https://<server_url>auth/realms/onesaitplatform
spring.security.oauth2.resourceserver.jwt.jwk-set-uri: https://<server_url>/auth/realms/onesaitplatform/protocol/openid-connect/certs
onesaitplatform.oauth.url: https://<server_url>/auth/realms/onesaitplatform/protocol/openid-connect
onesaitplatform.serverless.server: http://<server_url>/serverless-manager
Configuración Control Panel
TBD: Propiedad con la url del gitlabmanager
Integración Componente VueJS en HTML de plataforma
TBD: Como se integra el componente VueJS en los HTML de plataforma y que necesita recibir desde el controlador