Servicio de Notificación por Email

Introducción

El Servicio de Notificación por Correo Electrónico de GBDS proporciona una función para auditoría. A través de este servicio, es posible configurar una lista de correos electrónicos que será avisada siempre que se solicite una búsqueda facial 1:N.

Es posible utilizar esta función con cualquier servidor SMTP, configurando el servicio según se describe en la sección Configurando el Notificador de Correo. Cuando no haya disponible ningún servidor SMTP, el usuario deberá crearlo e instalar las dependencias del servicio.

Configurando el Notificador de Correo

Propiedades

El archivo de configuración del Servicio de Notificación por Correo está ubicado en etc/griaule/conf/email-notifier/config.properties y contiene los siguientes parámetros:

# GBS Email Notifier

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://<mysql/mariadb ip>:<port>/enotifier?useSSL=false
jdbc.username=<username>
jdbc.password=<encrypted password>
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.showSql=false

locale=en_US

gbds.url=http://<gbds api host>:<port>
gbds.user=<gbds user>
gbds.key=<gbds password>
gbds.logLevel=INFO
gbds.timeout=300 # seconds

Base de Datos

La tabla enotifier.settings de la base de datos contiene la plantilla y el asunto del correo y toda la información para la conexión SMTP:

Clave
Description

mail.smtp.auth

autorización del SMTP: NONE, TLS, SSL

mail.smtp.from.email

correo del remitente del SMTP

mail.smtp.from.name

nombre del remitente del SMTP

mail.smtp.host

host del SMTP

mail.smtp.password

contraseña del SMTP para TLS y SSL

mail.smtp.port

puerto del SMTP: NONE=25; TLS=587; SSL=465

mail.identify.request.single.subject

Asunto del correo; el notificador concatenará el id hash para separación de hilos.

mail.identify.request.single.template

Plantilla del cuerpo del correo: Campos: <username>: nombre del usuario <timestamp:date/time pattern>: si no se proporciona ningún patrón, se usará MM/dd/YYYY HH:mm:ss <biographics>: itera sobre los biográficos; dentro de la iteración: <biographic:key> y <biographic:value> proporcionan clave/valor las imágenes se enviarán como adjunto.

mail.identify.result.subject

Asunto de la notificación por correo del resultado de la búsqueda

mail.identify.result.template

Plantilla de la notificación por correo del resultado de la búsqueda

mail.identify.request.multiple

Activa/desactiva el envío de varios correos con notificaciones de solicitud de búsqueda de identificación facial

mail.identify.request.multiple.period

Período para consolidar notificaciones por correo

mail.identify.request.multiple.subject

Asunto para notificaciones múltiples por correo

mail.identify.request.multiple.template

Plantilla del cuerpo del correo de múltiples notificaciones. Los correos empaquetan un archivo zip con todas las imágenes listadas.

Para crear la tabla, ejecute el archivo de volcado (dump) de la base de datos necesario.

Si no se ha proporcionado ningún archivo de volcado, contacte con el Equipo de Soporte de Griaule.

Operación

Los binarios serán colocados en /var/lib/griaule/email-notifier/gbs-email-notifier-xxx.jar y /var/lib/griaule/email-notifier/lib.

Iniciando y deteniendo el Notificador de Correo

Para iniciar el Servicio de Notificación por Correo, ejecute:

/var/lib/griaule/email-notifier/scripts/start-email-notifier.sh

Y para detenerlo:

/var/lib/griaule/email-notifier/scripts/kill-email-notifier.sh

Registros

El notificador de correos usa el archivo de configuración de log4j en /etc/griaule/conf/email-notifier/email-notifier-log4j.xml. Todos los registros quedarán en /var/logs/griaule/email-notifier/.

El registro de apagado se generará en /var/log/griaule/email-notifier/email-notifier.log

Acciones

El servicio de correo puede contener una lista de intereses a través del GBDS para algunas personas. Algunas acciones pueden realizarse cuando se requiere una búsqueda y estas personas aparecen en los resultados de la búsqueda. Las acciones son:

  • Ocultar persona del resultado de la búsqueda;

  • Ocultar información de la persona en el resultado de la búsqueda si el usuario autorizado no tiene acceso para verla;

  • Notificar por correo el resultado de la búsqueda con la persona.

Para configurar la acción, es necesario acceder a las tablas gbds.people_transparency y gbds.people_transparency_group para informar si alguna persona debe ser eliminada, ocultada o notificada en cada búsqueda de identificación realizada.

La tabla contiene PGUID, acción y flag para habilitar la transparencia de esa persona. La tabla de grupos retiene grupos de correo para notificación.

Con el PGUI insertado, las acciones deben ser: REMOVE, CLASSIFIED, o NOTIFY:

  • Al eliminar (REMOVE), el endpoint get result no devolverá a la persona;

  • Al definir como información oculta (CLASSIFIED), el resultado de la búsqueda devolverá a la persona, pero los campos pguid/tguid estarán con el texto classified, todos sus emparejamientos (matches) con la puntuación, consulta e índice de referencia como -1. Si el usuario autenticado tiene el permiso transparency_show_classified_people todos los datos personales se mostrarán nuevamente.

  • En la notificación (NOTIFY), la tabla gbds.people_transparency_group contiene grupos de correo indicando cuáles correos deben ser notificados con el resultado de la búsqueda de persona.

En la tabla gbds.people_transparency, un pguid puede aparecer más de una vez, por lo tanto se pueden realizar más de una acción para este pguid, por ejemplo: eliminar y notificar o clasificar y notificar.

Información Adicional

Configuraciones de la API y de la Base de Datos

Este servicio está habilitado por algunas configuraciones en gbdsapi.properties o en la tabla gbds.settings en la base de datos. Estos son:

  • gbds.transparency.search.identify.send-email.enabled

    Habilitar o deshabilitar este servicio

  • gbds.transparency.email-notifier.log-level

    Define el nivel de registro

  • gbds.transparency.email-notifier.timeout

    Define el timeout.

  • gbds.transparency.email-notifier.url

    Define la URL de notificación

Más información sobre estas configuraciones puede verse en el Manual de Configuración de la API GBDS.

Endpoints del GBDS para el Servicio de Notificación por Correo

GBDS proporciona una API simple para almacenar y recuperar usuarios/correos para enviar. La documentación completa puede verse en la API GBDS

  • Insertar o actualizar grupos y correos: POST Email Notify Group

    Esta llamada inserta/actualiza grupos y correos relativos a esos grupos.

  • Recuperar Grupo: Get Email Group

    Esta llamada devuelve el grupo y los correos en el grupo.

  • Insertar o actualizar el usuario y sus grupos: POST Email Notify User

    Esta llamada inserta/actualiza un usuario individual y lo asocia a grupos.

  • Recuperar usuario: Get Email User

    Esta llamada devuelve el usuario y sus grupos asociados.

Endpoints de Get List del Notificador

El notificador de correo tiene un endpoint para listar las solicitudes de correo notificadas:

  • GET http://host:port/gbs-email-notifier/notify/list (el puerto usualmente es 8086)

    Filtros de consulta:

    • status: uno o más de: PENDING, PROCESSING, ERROR, DONE

    • ini-date: fecha inicial en el formato: YYYY-MM-dd-HH-mm-ss

    • end-date: fecha final en el formato: YYYY-MM-dd-HH-mm-ss

    • username (usuario)

    • email

    • pageIndex, por defecto 0, mínimo 0

    • pageSize, por defecto 20, mínimo 1, máximo 100

La respuesta de ejemplo es:

{
    "notifications": [
        {
            "tguid": "86A2BA4A-822C-4F1F-9017-46E0144F274C",
            "timestamp": "2021-08-24-10-52-07",
            "status": "DONE",
            "username": "rgiolo",
            "emails": [
                "[email protected]",
                "[email protected]"
            ],
            "biographics": {
                "information": "some value",
                "ip-address": "192.168.0.62",
                "face-score-threshold": "30",
                "big-text": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum ..."
            },
            "message": "Email sent"
        },
        ...
	]
}

Última actualización

¿Te fue útil?