Artículo
· 20 sep, 2024 Lectura de 5 min

DataPipe2 - Instalación

¡Hola a todos de nuevo!

En el artículo anterior hablamos de iris-datapipe, un framework diseñado para ayudarte a definir "pipes" de datos con un patrón de ingesta y procesamiento. Hoy veremos cómo puedes instalarlo y configurarlo paso a paso.

iris-datapipe incluye un QuickStart, que te permite probarlo rápidamente utilizando un contenedor Docker preconfigurado.

Pero, ¿qué debes hacer si quieres usarlo en tu propia instancia?

InterSystems IRIS

Instalación del paquete

s r=##class(%Net.HttpRequest).%New(),r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
zpm "install iris-datapipe"

Configuración de usuarios y seguridad

iris-datapipe requiere ciertos recursos de seguridad:

  • DP_ADMIN - Administrador de DataPipe.
  • DP_MENU_DASHBOARD - Acceso al menú "Dashboard" en la interfaz gráfica.
  • DP_MENU_SEARCH - Acceso al menú "Search" en la interfaz gráfica.

Necesitarás crear un usuario con acceso a la interfaz gráfica y que utilice estos recursos. A continuación, te muestro un ejemplo de cómo hacerlo:

Crear recursos de seguridad:

zn "%SYS"
write ##class(Security.Resources).Create("DP_ADMIN","DataPipe Admin Privilege")
write ##class(Security.Resources).Create("DP_MENU_DASHBOARD","DataPipe UI Dashboard Menu Access")
write ##class(Security.Resources).Create("DP_MENU_SEARCH","DataPipe UI Search Menu Access")

Crear un nuevo rol llamado DataPipe_Admin:

(¡Importante! Debes otorgarle permisos sobre la base de datos donde hayas instalado iris-datapipe. En este ejemplo, lo hago sobre %DB_USER)

write ##class(Security.Roles).Create("DataPipe_Admin","DataPipe Administrator","DP_ADMIN:RWU,DP_MENU_DASHBOARD:RWU,DP_MENU_SEARCH:RWU,%DB_USER:RW,%DB_IRISSYS:R")

Añadir privilegios de SQL sobre tablas y vistas necesarias al rol DataPipe_Admin:

GRANT INSERT,SELECT,UPDATE ON DataPipe_Data.Pipe, DataPipe_Data.Preference TO DataPipe_Admin
GRANT SELECT ON DataPipe_Data.VInbox, DataPipe_Data.VIngestion, DataPipe_Data.VStaging, DataPipe_Data.VOper TO DataPipe_Admin

Crear un usuario de ejemplo dpadmin con la contraseña demo y asignarlo al rol DataPipe_Admin:

write ##class(Security.Users).Create("dpadmin","DataPipe_Admin","demo")

Otras consideraciones

Para que la interfaz gráfica funcione correctamente, es importante tener en cuenta la configuración de CORS (Cross-Origin Resource Sharing) y los permisos sobre la base de datos donde tengas instalado DataPipe.

CORS (Cross-Origin Resource Sharing)

El navegador que utilices para acceder a la interfaz web enviará solicitudes a tu servidor InterSystems IRIS. Como parte de este proceso, el navegador preguntará a IRIS si está permitido realizar estas solicitudes desde su origen (esto es, desde donde estés sirviendo la aplicación web). Puedes encontrar más información en la documentación oficial.

Una manera sencilla de permitir solicitudes desde cualquier origen (incluido localhost) es utilizar directamente esta clase que se usa en el entorno de QuickStart.

Sin embargo, ten en cuenta que siempre debes restringir los posibles orígenes antes de poner un sistema en producción. En el ejemplo proporcionado, necesitarías modificar el método OnHandleCorsRequest.

Permisos sobre la base de datos

Es necesario que las solicitudes web que lleguen desde el WebGateway, como CSPSystem, tengan permiso para leer la base de datos donde está instalado iris-datapipe.

En mi ejemplo, una forma sencilla de lograrlo es otorgarle directamente permisos a CSPSystem sobre %DB_USER.

Interfaz gráfica

La interfaz gráfica es una aplicación Angular que puedes encontrar aquí: iris-datapipeUI.

Si tienes conocimientos de Angular, no necesitarás mucha explicación. Solo debes saber que puedes hacer un fork/duplicado del repositorio y adaptarlo según tus necesidades.

Si no estás familiarizado con Angular, puedes seguir estos pasos utilizando Docker para simplificar el proceso:

  • Clona o descarga el repositorio iris-datapipeUI.
  • Modifica el archivo environment.ts para sustituir las URLs de IRIS por las de tu entorno.
  • Prepara una imagen Docker con la aplicación construida:
docker compose build 
  • Ejecuta un contenedor con la imagen que acabas de preparar:
docker compose up -d

Si has seguido los pasos y todo va bien, deberías poder hacer login en la interfaz gráfica con tu usuario dpadmin / demo y verás un entorno vacío:
image

En un próximo artículo hablaremos de cómo crear e implementar "pipes" en iris-datapipe.

Comentarios (0)1
Inicie sesión o regístrese para continuar