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]] | ||