Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
|
ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy:apipb [2024/06/13 16:19] 192.168.177.2 creado |
ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy:apipb [2024/06/13 16:38] (actual) 192.168.177.2 [Consideraciones] |
||
|---|---|---|---|
| Línea 29: | Línea 29: | ||
| PRESUP01.MODULOS.MICROFRONTEND_URL IS | PRESUP01.MODULOS.MICROFRONTEND_URL IS | ||
| 'URL de lanzamiento de la GUI Microfrontend'; | 'URL de lanzamiento de la GUI Microfrontend'; | ||
| - | |||
| - | |||
| - | ALTER TABLE PRESUP01.MODULOS ADD (CREATED_AT DATE DEFAULT SYSDATE); | ||
| - | |||
| - | COMMENT ON COLUMN | ||
| - | PRESUP01.MODULOS.CREATED_AT IS | ||
| - | 'Fecha de lanzamiento de la GUI Microfrontend'; | ||
| ALTER TABLE PRESUP01.MODULOS ADD (ID_OPTION VARCHAR2(16 Byte)); | ALTER TABLE PRESUP01.MODULOS ADD (ID_OPTION VARCHAR2(16 Byte)); | ||
| COMMENT ON COLUMN PRESUP01.MODULOS.ID_OPTION IS 'Identificador de ruta de opción del frontend'; | COMMENT ON COLUMN PRESUP01.MODULOS.ID_OPTION IS 'Identificador de ruta de opción del frontend'; | ||
| - | |||
| - | |||
| - | |||
| </code> | </code> | ||
| + | //Los script están definidos en el repositorio.// | ||
| + | ==== Configurar Cliente ==== | ||
| - | El flujo para autorizar los accesos desde aplicaciones legacy es: | + | === Crear ContextClient === |
| + | En las tablas **PARAMETROS_SISTEMA** se ha definido una nueva propiedad llamada **CONNECT_DB** la cual representa el ContextClient de conexion del api-legacy. | ||
| - | ===== Paso 1 ===== | + | Para llenar esa propiedad se deben serguir los siguiente pasos: El **ContextClient** se divide en 3 fragmentos los cuales son **context**, **client** y **separador**: |
| - | Las aplicaciones legacy consumiran la url del microfrontend y enviarán un parámetro llamado legacyToken de tipo string. | + | |
| - | <code yaml> | + | * **Client**: Es el identificador del cliente. Ejemplo: ada, bello, viva, valor+, unillanos, etc. |
| - | Ejemplo consumo: | + | * **Context**: Es el ambiente del origen de datos del cliente en el cual se ejecutará el api legacy, los microfrontend y lso servicios de las soluciones migradas. Ejemplo: dev-> desarrollo, qa->calidad, prod->producción |
| - | http://10.1.140.21:8092/?legacyToken=674157584668526572786e5371774d4552512b3741513d3d@1aba4e1f294858f0e063658c010a6fec | + | * **Separador**: Es un caracter de separación para identificar el context y el client por defecto se define el separador - |
| - | </code> | + | |
| - | ===== Paso 2 ===== | + | Ejemplos de ContextClient: |
| - | El front recibe el parámetro tipo string **legacyToken** con el siguiente formato **contextClient@uuid** el cual al ser separado por el simbolo @ se obtendran 2 fragmentos. | + | |
| - | * **contextClient**: Código del cliente. | + | * bello-dev |
| - | * **uuid**: token de autenticación. | + | * viva-dev |
| - | * **separador**: Caracter de separación de los fragmentos del token legacy. Por defecto se define @ | + | * ada-dev |
| + | * bello-qa | ||
| + | * bello-prod | ||
| + | * unillanos-qa | ||
| - | Ejemplo: **legacyToken**=674157584668526572786e5371774d4552512b3741513d3d@1aba4e1f294858f0e063658c010a6fec | + | Nota: El **contextClient** siempre debe expresarse en minusculas. |
| - | * **contextClient**: 674157584668526572786e5371774d4552512b3741513d3d | + | ==== Configurar Funcionalidad Migrada ==== |
| - | * **uuid**: 1aba4e1f294858f0e063658c010a6fec | + | Una vez ha sido migrada la funcionalidad se deben hacer la siguientes configuraciónes. |
| - | * **separador**: @ | + | |
| - | ===== Paso 3 ===== | + | ==== Configurar URL del microfrontend ==== |
| - | Se debe tomar el **contextClient** y desencriptarlo para identificar el cliente por medio del método **decrypt-legacy-secure-token** del api-legacy enviando en el parametro **secureToken** el contextClient recibido en el request de consumo de la aplicación legacy que hace la petición. | + | En la tabla PRESUP01.MODULOS se ha definido una nueva columna llamada MICROFRONTEND_URL la cual debe contener la url del despliegue del microfrontend. |
| - | Ejemplo: | + | |
| - | {{ :ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy:apilegacy-decrypt.png?600 |}} | + | Ejemplo Url Microfronted: http://10.1.140.21:8092 |
| - | Como se puede observar en la imagen de ejemplo el contextClient devuelve viva-dev. | + | NOTA: Esta información la debe suministrar el rol que realiza el despliegue. |
| - | ===== Paso 4 ===== | + | ==== Configurar IdOption del microfrontend ==== |
| - | Al desencriptar el conteextclient se debe consumir el método del api **autenticate-microfrontend-launcher** el cual puede ser consultado en la documentación de la [[ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy#Capa de lógica de negocio|Capa de lógica de negocio]] y pasar el contextClient como token en el header y el uuid como parametro. | + | En la tabla PRESUP01.MODULOS se ha definido una nueva columna llamada ID_OPTION la cual debe contener el path del microfrontend. |
| - | Si el uuid está vigente se devolverán los parametros de sesión encriptados con el código 200. Lo que permitirá el acceso a la funcionalidad. | + | Ejemplo IdOption Microfronted: maestros/terceros |
| - | {{ :ada:howto:sicoferp:factory:new-migracion-sicoferp:api-legacy1.png?600 |}} | + | NOTA: Esta información la debe proveer el frontend. |
| - | Si el uuid está vencido o es inválido se devolverá una excepcion con el código 500. Lo que evitará el acceso al microfrontend. | ||
| - | |||
| - | {{ :ada:howto:sicoferp:factory:new-migracion-sicoferp:api-legacy2.png?600 |}} | ||
| - | |||
| - | ===== Paso 5 ===== | ||
| - | Al realizar la autenticación de forma correcta se obtendra un hash que contendrá los parametros de sesión pero estarán encriptados por lo tanto se debe consumir el servicio **decrypt-legacy-secure-token** el cual recibirá en el parámetro secureToken el hash obtenido del proceso de autenticación como se ve en la imagen. | ||
| - | |||
| - | {{ :ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy:apilegacy-decrypt02.png?600 |}} | ||
| - | |||
| - | El servicio devuelve un objeto json con la siguiente estructura. | ||
| - | |||
| - | <code yaml> | ||
| - | { | ||
| - | "idOption": "00-00", | ||
| - | "tituloVentana": "Maestro Terceros", | ||
| - | "nitEmpresa": "811032187.8", | ||
| - | "nombreEmpresa": "CAPACITACION", | ||
| - | "codigoMempresa": "9999999999", | ||
| - | "codigoUsuario": "3", | ||
| - | "nombreUsuario": "ADMIN", | ||
| - | "codigoDependencia": "9", | ||
| - | "nombreDependencia": "AVIMA", | ||
| - | "fechaSistemaModulo": "1/12/2022", | ||
| - | "login": "SICOF" | ||
| - | } | ||
| - | </code> | ||
| - | |||
| - | ===== Paso 6 ===== | ||
| - | Se debe tomar de los parámetros desencriptado el idOption y consumir el servicio **ecosystem-config-ws/frontend-route/api/v1/get** para obtener el path del microfrontend como se ve a continuación; | ||
| - | |||
| - | {{ :ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy:frontendroute.png?600 |}} | ||
| - | |||
| - | De esta manera se asegura la inicialización dinámica de las rutas del frontend. | ||
| ===== Consideraciones ===== | ===== Consideraciones ===== | ||
| - | * El uuid es de un solo uso, de esta manera aseguramos la integridad en los consumos de los nuevos componentes. | + | * Los nuevos cmapos son requeridos para el consumo correcto del microfrontend. |
| - | * Los parámetros desencriptados son la base para la inicialización del microfrontend. | + | * Para el desarrollador powerbuilder es indiferente la funcionalidad y no impacta en sus procesos de desarrollo. |
| - | * Salvo los parámetros opcionales los demás son requeridos por lo tanto se aconseja aplicar validaciones de esas propiedades al desencriptarlas. | + | * El url del microfrontend se desplegará en el navegador por defecto sin embargo tendrá prioridad el navegador Edge si está activo. Está situación es generada por window y no se puede modificar a menos que se inactive ese navegador. |
| - | * Todo consumo microfrontend es almacenado para efectos de auditoria. | + | |
| - | * Se debe parametrizar el idOption por opción o grupo en cada cliente. | + | |
| [[ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy|←Regresar]] | [[ada:howto:sicoferp:factory:new-migracion-sicoferp:apilegacy|←Regresar]] | ||