Saltar al contenido principal
Version: 1.2.3

SIU-Araí Proveedores

Araí Proveedores es un módulo que brinda herramientas para sincronizar datos de proveedores entre distintos clientes y proveer una API para la consulta y actualización de dicha información.

Está compuesto por dos submódulos:

https://gitlab.siu.edu.ar/siu-arai/arai-proveedores es consumido como librería, provee un cli y se encarga del versionado de la base. La documentación de dicho submódulo puede consultarse en https://documentacion.siu.edu.ar/wiki/SIU-Arai/proveedores

https://hub.siu.edu.ar/siu-arai/proveedores-api es la API cuya definición puede consultarse en https://documentacion.siu.edu.ar/apis/?spec=proveedores_v1

Interacción con sistemas SIU

SIU Diaguita y SIU Pilaga utilizan la librería para sincronizar los datos de proveedores. El Portal del proveedor disponible en SIU Huarpe utiliza la API para consultar los datos del proveedor.

Esta es la lista de secretos requeridos por Araí Proveedores durante el despliegue:

  • proveedores_api_pass: Password de la API de Proveedores
  • proveedores_db_pass: Password de la conexión con Postgres
  • proveedores_conexion_usuarios: Credenciales y endpoint de la conexión con Usuarios

Creación de secretos

La distribución provee el script de bash proveedores-secrets.sh.dist para ejemplificar como inicializar todos los valores requeridos. Si desea mantener un archivo propio con las claves de su ambiente ejecute:

cp proveedores-secrets.sh.dist proveedores-secrets.sh

y modifique el script proveedores-secrets.sh con los datos correspondientes a su entorno. Luego ejecutelo para cargar los secretos dentro de Docker.

./proveedores-secrets.sh

Configurar y desplegar API Araí-Proveedores

La especificación del stack de este módulo se encuentra en proveedores.yml. Existe otro archivo de configuración asociado: proveedores.env

Cambiar Dominio

Reemplazar universidad.edu.ar por el valor correcto utilizando el siguiente comando.

sed -i 's/uunn.local/universidad.edu.ar/g' \
proveedores.yml \
proveedores.env

Conexión con Postgres

  • ARAI_PROVEEDORES_URL: Es la URL base de la API accesible desde fuera
  • ARAI_PROVEEDORES_DB_HOST: Host de la base de datos
  • ARAI_PROVEEDORES_DB_PORT: Puerto de la base de datos
  • ARAI_PROVEEDORES_DB_DBNAME: Nombre de la base de datos
  • ARAI_PROVEEDORES_DB_USERNAME: Usuario de la base de datos

Creación de Base de Datos

Se incluye un comando que crea la estructura de la base de datos de Araí-Proveedores. Para utilizarlo ejecutar el siguiente comando:

docker stack deploy \
--with-registry-auth \
-c util/proveedores_crear_base.yml \
crear_db_proveedores

Asume que la base de datos especificada en la sección de la conexión con Postgres ya está creada.

Configurar acceso externo (exponer fuera del cluster con Traefik)

Si desea habilitar el acceso externo a la API se deben descomentar las siguientes líneas en proveedores.yml

#        - "traefik.enable=true"
# - "traefik.http.routers.proveedores.entrypoints=web-secured"
# - "traefik.http.routers.proveedores.rule=Host(`uunn.local`) && PathPrefix(`/proveedores`)"
# - "traefik.http.routers.proveedores.tls=true"
# - "traefik.http.services.proveedores.loadbalancer.server.port=80"
# - "traefik.http.routers.proveedores.middlewares=security-headers@file"

Prueba de funcionamiento

Se puede verificar el correcto funcionamiento de la API ejecutando (reemplazar uunn.local por el dominio elegido).

curl https://uunn.local/proveedores/rest/proveedores/estado -u proveedores:proveedores123

Desplegar el stack

docker stack deploy --with-registry-auth -c proveedores.yml proveedores

Configuración con SIU Huarpe

Agregar secreto en huarpe.yml

HUARPE_PASS_PROVEEDORES_FILE: /run/secrets/proveedores_api_pass

Agregar entrada a API en huarpe_parameters.yml

siu.arai-proveedores.api: { auth: [proveedores, '%env(file:HUARPE_PASS_PROVEEDORES_FILE)%', basic], base_uri: 'proveedores-api/proveedores/rest/' }

Eliminar stack Huarpe

docker stack rm huarpe

Desplegar el stack Huarpe nuevamente

docker stack deploy --with-registry-auth -c huarpe.yml huarpe