Notificaciones
Servicios de Notificaciones a Aplicaciones
Resumen
Debido a que muchas de las funcionalidades de Arai-Documentos se ejecutan de manera asincrónica, o en procesos separados a la comunicacion con la aplicación que los consume. Las notificaciones permite que las aplicaciones desde las cuales se publica un documento, implementen un mecanismo mediante el cual pueden saber cuando acontece algún cambio o acción sobre el documento que crearon.
A nivel general en Arai-Documentos pueden surgir los siguientes cambios en un Documento: pueden ser rechazados, autorizados, firmados digitalmente mediante un proceso de Firma Digital, y también pueden ser asociados a un expediente digital. A su vez cuando se envía a autorizar un Documento, se generan Solicitudes de Autorización, que a medida que son aceptadas por los Usuarios, se notifica también a la aplicación.
Requisitos
Los requisitos dependeran de las funcionalidades implementadas, ya sea que involucre un Proceso de Autorización o se envie a Asociar un Documento a un Expediente los requerimientos seran los mismos que la implementación de estas funcionalidades, incluyendo además:
Al igual que en Asociar a Sistema de Expedientes debe asegurarse que el Worker de Araí-Documentos se encuentre disponible: este worker implementa una queue y se encarga de realizar algunas tareas en background que requiere Arai-Documentos. Las notificaciones se envían de forma asincrónica por el worker
//TODO: link a implementacion del worker
Limitaciones
Las aplicaciones deben proveer un endpoint público donde recibiran y consultaran las notificaciones.
Solo se puede notificar a un endpoint por cada documento que se envía, el mismo es indicado por la aplicacion que origina el documento o la peticion a Arai-Documentos.
El Worker requiere ser administrado de manera tal que se encuentre en funcionando todo el tiempo.
Por razones de seguridad solo se informara un identificador de notificacion (uid) al endpoint público, y luego es la Aplicación que de forma autenticada consultara con este identificador la información que se le esta enviando.
Implementación
Casos |
---|
Caso 1 En el momento que se autoriza una Solicitud de Autorización por parte del Usuario (pudiendo ser Autorización Básica o Firma Digital) el sistema evaluará si el Proceso de Autorización ha finalizado (enviando una notificación de DOCUMENTO_AUTORIZADO ver códigos de notificaciones) o si no ha finalizado (solo informara una notificacion de SOLICITUD_AUTORIZADA). Con identificador de la notificación, la aplicación consulta a Araí-Documentos y obtiene los datos de la notificación. Para considerar mas casos de notificaciones en el Proceso de Autorización ver Códigos de Notificaciones |
Caso 2 Ya sea que se envíe un Documento ya autorizado previamente a Asociar o que se solicite todo junto en un mismo request (tanto datos de autorización como id_tramite), el sistema ejecutará el correspondiente pedido a Sudocu y luego de recibir la respuesta creará una Notificación. En el caso de que en el request inicial se envíe a Asociar y Autorizar en un mismo pedido, Araí-Documentos creará una notificación con el estado DOCUMENTO_AUTORIZADO_ASOCIADO, en el caso que solo se envíe a Asociar DOCUMENTO_ASOCIADO. Para considerar otros casos y errores ver Códigos de Notificaciones |
A continuacion veremos como en cualquiera de las funcionalidades ya mencionadas Proceso de Autorización y Asociar un Documento a un Expediente agregando el campo url en los request enviados podrá recibirse la notificación correspondiente.
Campo Obligatorio en Request a Documentos (en caso de que se deseen implementar notificaciones)
Nombre | Tipo | Descripcion |
---|---|---|
url | string | Corresponde a una url publica, donde Araí-Documentos enviará las notificaciones |
{
/*Request de Autorizacion o Asociacion o Ambos Procesos*/
"url": "string",
...
}
POST url-publica
Notificar Aplicación
Cuando se produce un cambio sobre el documento, Arai-Documentos realiza un POST con el identificador de la notificación, a la url provista por la aplicación
REQUEST
Araí-Documentos envía el identificador de la notificacion para que luego sea consultada por la Aplicación
{
"notificacion": "string"
}
RESPONSE
La aplicacion debería devolver un un HTTP 200 o 201 para que Arai-Documentos sepa que se envió correctamente la notificacion.
GET /backend/notificaciones/{notificacion}
Consultar Notificacion
Con el identificador proporcionado a la aplicación, esta puede consultar sobre los datos de la misma para ejecutar las acciones que considere pertinentes.
REQUEST
Campos obligatorios (URI Param)
Nombre | Tipo | Descripcion |
---|---|---|
notificacion | string | URI Param que recibio la aplicacion en el POST al servicio publico |
{
"id_tramite": "string",
"id_usuario": "string",
"url": "string",
"referencia_interna": {}
}
RESPONSE
Recibe información de la notificacion en formato json
{
"estado_codigo": "string",
"estado_descripcion": "string",
"uid_documento": "string",
"tipo_documento": "string",
"titulo": "string",
"descripcion": "string",
"tramite_asociado": "string",
"referencia_interna": {},
"autorizado": true,
"autorizacion": [
{
"usuario": "string",
"nivel": "string",
"creacion": "string"
}
]
}
Nombre | Tipo | Descripcion |
---|---|---|
estado_codigo | int | Ver [Códigos Notificaciones](#A2 - Códigos Notificaciones). Corresponde al código resultado de alguna operación, y es el operador sobre el cual la aplicación pueden tomar decisiones en base a la notificación |
estado_descripcion | string | Descripción del resultado de la operación y código provistos |
uid_documento | string | Identificador del documento en Araí-Documentos |
tipo_documento | string | Tipo de documento creado |
titulo | string | Título del documento creado |
descripcion | string | Descripción del documento creado |
tramite_asociado | string | Tramite/Expediente al cual se ha asociado el documento. String vacío o nulo en caso de no estar asociado a ningún trámite |
referencia_interna | json | Objeto json enviado por la aplicación de origen para identificar al documento |
autorizado | bool | Boolean que indica si el documento finalizó correctamente un Proceso de Autorización y se encuentra finalmente Autorizado |
autorizacion | Array | Listado de Autorizaciones realizadas sobre el documento: incluye el usuario, nivel de autorización y fecha de creación |