Suscripciones [v2.20]
Suscripciones [v2.20]
Se describe las novedades de la próxima versión 2.20 de iFlow. El mismo presenta las características principales de las funcionalidades.
Funcionalidades
ABM de Usuario «Servicio Externo» (S.E)
Descripción
Se ofrecerá la posibilidad de crear un Usuario del tipo Servicio Externo. Este poseerá los mismos atributos mínimos que cualquier otro usuario del sistema, pero con la diferencia de que en vez de contar con una contraseña (password), poseerá una API Key generada por el Sistema.
Esta API Key será la que habilitará al usuario a consumir los endpoints propios en el path /api/v1/external/. Además será posible regenerarle la API Key de una manera sencilla desde el propio ABM.
ABM «Suscripción» + API para SEs
Descripción
Se implementará el ABM de las Suscripciones de los distintos Servicios Externos.
Se representan a estas con los siguientes atributos:
- events (array): Listado de eventos.
- URL (string): URL donde se notificará del evento.
- Tipo de Autenticación (string): Configuración de Auth requerida para la URL, para considerar los casos donde se requiera API Key o ninguna autenticación.
- Valor de autenticación (string, opcional): Se guarda la configuración (posible) asociado a la configuración (hash de API Key p.ej).
Dicha entidad estará expuesta para que los usuarios de Servicios Externos puedan gestionarlas (crear, modificar y borrar) desde el crud /api/v1/external/webhook/suscribe.
Entidad «Evento» + API para SEs
Descripción
Se representan los posibles Eventos lanzados por el Sistema, y se exponen estos a través de un endpoint /api/v1/external/webhook/event/ para que los diversos Servicios Externos, puedan consumirlos.
Exchanges y lanzamiento de eventos
Descripción
Se implementará una solución genérica donde se lanzarán los eventos asociados a los Módulos1. Cuando alguno de estos eventos ocurra, se encolará en la cola asociada al módulo correspondiente, wh_*module**_event ( p. ej: wh_client_event), *un mensaje que poseerá el siguiente formato:
{ id (number): Identificador de la entidad, event (string): El nombre del evento (module_action)}El formato anterior es el mínimo, y podría estar sujeto a cambios, en pos de enriquecerse si así se requiriera.
Por otro lado los módulos capaces de lanzar eventos serán:
- Clientes
- Suscripciones
1 Se define a un módulo, como una entidad del Sistema que será expuesta a los Servicios Externos.