Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
ada:howto:sicoferp:factory:internos:adagestor:fordevs [2024/12/12 22:01] 192.168.177.39 creado |
ada:howto:sicoferp:factory:internos:adagestor:fordevs [2025/02/04 16:56] (actual) 192.168.175.43 [AdaGestor | Para desarrolladores] |
||
---|---|---|---|
Línea 2: | Línea 2: | ||
====== AdaGestor | Para desarrolladores ====== | ====== AdaGestor | Para desarrolladores ====== | ||
- | En esta sección se describe toda la información acerca de los repositorios, compilación, despliegue y dependencias del proyecto. | + | En esta sección se describe toda la información acerca de los repositorios, compilación, despliegue y dependencias de servicios del proyecto. |
+ | ==== Repositorios: ==== | ||
- | == Repositorios: == | + | Los repositorios del proyecto se encuentran en el GitLab en esta ruta: [[https://repo-ecosystem-ada.adacsc.co/ada-microservices-ecosystemada-microservices-ecosystem/module/adagestor|AdaGestor en GitLab]] |
- | Los repositorios del proyecto se encuentran en el GitLab en esta ruta: [[http://10.1.140.120/ada-microservices-ecosystem/module/adagestor|AdaGestor en GitLab]] | + | |
- | * El proyecto del front end esta desarrollado con Angular 18.2.0, y se encuentra alojado en este repositorio: [[http://10.1.140.120/ada-microservices-ecosystem/module/adagestor/ng-adagestor|Proyecto Front]] | + | * El proyecto del front end (//ng-adagestor//) esta desarrollado con Angular 18.2.0, y se encuentra alojado en este repositorio: [[http://10.1.140.120/ada-microservices-ecosystem/module/adagestor/ng-adagestor|Proyecto Front]] |
- | * El proyecto del back end esta desarrollado con Spring Boot 3.3.4, y se encuentra alojado en este repositorio: [[http://10.1.140.120/ada-microservices-ecosystem/module/adagestor/spring-adagestor|Proyecto Back]] | + | * El proyecto del back end (//spring-adagestor//) esta desarrollado con Spring Boot 3.3.4, y se encuentra alojado en este repositorio: [[http://10.1.140.120/ada-microservices-ecosystem/module/adagestor/spring-adagestor|Proyecto Back]] |
- | Paso a paso del despliegue de AdaGestor | + | ==== Compilación ==== |
+ | |||
+ | Para la compilación inicial de los proyectos se utilizo NodeJS v22.4.1 y Java 21.0.4 (Coretto). | ||
+ | * Para compilar el proyecto de Angular se debe ejecutar el comando "ng build", que por defecto realiza una compilación en modo para producción. Este modo utiliza el archivo **environment.prod.ts** de variables de entorno. Una vez finalice el build, se puede encontrar el artefacto en la ruta "**dist/ng-adagestor/browser/**". | ||
+ | * Para compilar el proyecto de Spring se deben ejecutar las tareas de gradle "**clean build**", para limpiar el directorio del proyecto y construir el artefacto **jar**. Una vez finalice el build, el artefacto puede encontrarse bajo el directorio "**build/libs/spring-adagestor-0.0.1-SNAPSHOT.jar**". | ||
+ | |||
+ | ==== Despliegue ==== | ||
A continuación se describen los pasos para realizar un despliegue del aplicativo. | A continuación se describen los pasos para realizar un despliegue del aplicativo. | ||
- Asegurarse de tener actualizados los proyectos del front-end y back-end desde el repositorio de git. | - Asegurarse de tener actualizados los proyectos del front-end y back-end desde el repositorio de git. | ||
- | - Compilar los artefactos de cada proyecto: **Front-end**: Ejecutar el comando “ng build”, el cual generará una carpeta llamada “dist”, que contiene los archivos compilados en la ruta dist/ng-adagestor/browser. **Back-end**: Asegurarse que la propiedad “spring.profiles.active” del archivo “application.yml” tenga el valor “prod”. Después ejecutar con Gradle las tareas “clean build”, con lo que se generará el archivo Jar ejecutable en la ruta “build/libs/spring-adagestor-0.0.1-SNAPSHOT.jar”. | + | - Compilar los artefactos de cada proyecto. |
- | - Construir las respectivas imágenes de Docker con los Dockerfile de cada proyecto, ejecutando en cada carpeta “docker build -t {nombre-imagen} .” y luego subir las imagenes al repositorio de fabrica con "docker push {nombre-imagen}". | + | - Construir las respectivas imágenes de Docker con los **Dockerfile** de cada proyecto, ejecutando en cada uno “**docker build -t fabricaada/<nombre-imagen>:<version> .**”. Luego subir las imágenes al repositorio de docker hub de fabrica con "**docker push** fabricaada/<nombre-imagen>:<versión>". |
- | - Conectarse al servidor que contiene el ambiente de Docker y ejecutar “docker compose up” en la ruta donde se haya copiado el archivo “docker-compose.yml” del proyecto del back. | + | - Conectarse al servidor que contenga el ambiente de Docker, y copiar a este el archivo “**docker-compose.yml**” que se encuentra en el proyecto del back. |
+ | - En el archivo compose se encuentran definidas las **imágenes**, los **parámetros** y las **variables de entorno** para cada servicio. Se deben actualizar las imágenes de cada servicio a las versiones recién subidas al docker hub, y asegurarse de que los demás parámetros estén actualizados. | ||
+ | - Ejecutar "**docker compose up**" para que se haga el despliegue de las imágenes configuradas. | ||
- Validar el estado de los contenedores creados, para asegurarse que no haya habido errores al iniciarse. | - Validar el estado de los contenedores creados, para asegurarse que no haya habido errores al iniciarse. | ||
+ | |||
+ | ==== Dependencias ==== | ||
+ | |||
+ | El proyecto depende de los siguientes servicios internos: | ||
+ | == SicofConfig == | ||
+ | Este servicio brinda la funcionalidad de login, registro y modificación de usuarios. Para poder desarrollar AdaGestor en el tiempo estimado inicialmente, fue necesario hacer un fork de SicofConfig para agregar y modificar algunas funcionalidades faltantes requeridas por el proyecto. Este fork se llama "**sicofconfig-ag**", y también se encuentra alojado en el repositorio de [[http://10.1.140.120/ada-microservices-ecosystem/module/adagestor|GitLab de Adagestor]]. | ||
+ | Respecto a SicofConfig, se hicieron modificaciones en UserController, UserService y ConsultarTerceroExistenteService. | ||
+ | |||
+ | Ademas, SicofConfig depende del **servicio de terceros** del ecosistema para hacer las consultas de terceros, lo cual impone unos requisitos adicionales: | ||
+ | |||
+ | Deben estar parametrizados algunos registros en ciertas tablas del esquema SICOFCONFIG en la base de datos a la que este conectado sicofconfig-ag (inicialmente "conexionmul"): | ||
+ | * APPLICATION: Debe haber un registro que identifique a AdaGestor, con un **APP_ID** único. | ||
+ | * CONNECT_DB: Debe haber un registro para AdaGestor con un CONNECT_CODE único, en el que se parametrice la **conexion** a la base de datos de la que se van a consultar los **terceros**, se defina un contexto en **CONNECT_CONTEXT**, y se relacione el **COMPANY_ID** de la empresa. | ||
+ | * SUBSIDIARY: Debe haber un registro para AdaGestor que relacione el **COMPANY_ID** de la empresa. | ||
+ | * APPLICATION_COMPANY: Debe haber un registro que relacione el **APP_ID**, **SUBSIDIARY_ID** y **CONNECT_DB_ID** de los registros anteriores. | ||
+ | |||
+ | == AdaEmailService == | ||
+ | Este servicio brinda la funcionalidad para enviar las notificaciones por correo electrónico. | ||
+ | |||
+ | * El servicio se consume por medio de peticiones HTTP **POST**. | ||
+ | * El cuerpo de la petición debe contener las propiedades: **subject**, **from**, **toEmail**, y **content**, que son los parámetros del correo. | ||
+ | * Además se debe incluir en el header "**token**" un token valido para el servicio, el cual se encuentra parametrizado en las propiedades de spring-adagestor. | ||