1. Introducción¶
El Servicio de Notificación de Correo Electrónico de GBDS proporciona una función de auditoría. A través de este servicio, es posible configurar una lista de correo electrónico que será notificada cada vez que se solicite una búsqueda de 1:N de rostros.
Es posible utilizar esta función con cualquier servidor SMTP, configurando el servicio como se describe en la sección Configurar el Notificador de Correo Electrónico. Cuando no hay disponible ningún servidor SMTP, el usuario debe crearlo e instalar las dependencias del servicio.
2. Configurar el Notificador de Correo Electrónico¶
2.1. Propiedades¶
El archivo de configuración del Servicio de Notificación de Correo Electrónico se encuentra 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
Important
Los valores de los parámetros entre “<>” deben editarse de acuerdo con la información del entorno.
2.2. Base de datos¶
La tabla de base de datos enotifier.settings
contiene la plantilla y el asunto del correo electrónico, y toda la información para la conexión SMTP:
Key | Description |
---|---|
mail.smtp.auth | SMTP mail authorization: NONE, TLS, SSL |
mail.smtp.from.email | SMTP mail from email |
mail.smtp.from.name | SMTP mail from name |
mail.smtp.host | SMTP mail host |
mail.smtp.password | SMTP mail password for TLS and SSL encrypted using an already known key |
mail.smtp.port | SMTP mail port: NONE=25; TLS=587; SSL=465 |
mail.identify.request.single.subject | Email subject; email-notifier will concatenate id hash for thread separation |
mail.identify.request.single.template | Email body template: Fields:
<username>: username
<timestam:date/time pattern>: if no date time pattern is provided, MM/dd/YYYY HH:mm:ss is used
<biographics>: iterate over biographics; inside iteration: <biographic:key> and <biographic:value> provides key/value
image will be sent as an attachment
|
mail.identify.result.subject | Search Result email notification subject |
mail.identify.result.template | Search Result email notification template |
mail.identify.request.multiple | Turns on/off multiple email sending with face identify search request notifications |
mail.identify.request.multiple.period | Period to consolidate email notifications |
mail.identify.request.multiple.subject | Subject for multiple notifications email |
mail.identify.request.multiple.template | Body template for multiple notifications email The emails packs a zip file with all images listed. |
Attention
El archivo zip de la lista de imágenes adjuntas puede contener un máximo de 24 MB. Por encima de eso, la lista se divide en más de un correo electrónico.
Para crear la tabla, ejecute el archivo de volcado de base de datos requerido.
Note
Si no se proporcionó ningún archivo de volcado, comuníquese con el equipo de soporte de Griaule.
Important
Cualquier cambio aplicado a esta tabla se reflejará en el próximo correo electrónico enviado.
3. Operación¶
Los binarios del servicio se colocarán en /var/lib/griaule/email-notifier/gbs-email-notifier-xxx.jar
y /var/lib/griaule/email-notifier/lib
.
3.1. Iniciar y detener el notificador de correo electrónico¶
Para iniciar el servicio de notificación por correo electrónico, ejecute:
/var/lib/griaule/email-notifier/scripts/start-email-notifier.sh
Y para detenerlo:
/var/lib/griaule/email-notifier/scripts/kill-email-notifier.sh
3.2. Registros¶
El notificador de correo electrónico utiliza el archivo de configuración log4j en /etc/griaule/conf/email-notifier/email-notifier-log4j.xml
. Todos los registros se colocarán en /var/logs/griaule/email-notifier/
.
El registro de apagado se generará en /var/log/griaule/email-notifier/email-notifier.log
3.3. Acciones¶
El servicio de correo electrónico puede mantener una lista de intereses a través de GBDS para algunas personas. Algunas acciones se pueden realizar cuando se requiere una búsqueda y estas personas aparecen en los resultados de la búsqueda. Las acciones son:
- Ocultar a la persona del resultado de la búsqueda;
- Ocultar la información de la persona en el resultado de la búsqueda si el usuario autorizado no tiene acceso para verla;
- Notificar a través de correo electrónico el resultado de la búsqueda con la persona.
Para configurarlo, es necesario acceder a las tablas gbds.people_transparency
y gbds.people_transparency_group
para informar si alguna persona debe ser eliminada, oculta o notificada en cada búsqueda de identificación realizada.
La tabla contiene PGUID para algunas personas, acción, bandera para habilitar esta transparencia de la persona. La tabla de grupo contiene grupos de correo electrónico para la notificación.
Con la acción PGUID insertada debe ser: REMOVE, CLASSIFIED o NOTIFY:
- En eliminar (REMOVE), el punto final del resultado no devolverá a la persona;
- En clasificar/ocultar información (CLASSIFIED), el resultado de la búsqueda devolverá a la persona pero los campos pguid/tguid estarán con el texto
clasificado
, todas sus coincidencias con la puntuación, la consulta y el índice de referencia como -1. Si el usuario autenticado tiene permisotransparency_show_classified_people
, se muestra nuevamente toda la información de la persona.- En notificar (NOTIFY), la tabla
gbds.people_transparency_group
contiene grupos de correo electrónico que informan qué correos electrónicos deben ser notificados con el resultado de la búsqueda de la persona.
Note
En la tabla gbds.people_transparency
, un pguid puede aparecer en más de una fila, por lo que se pueden realizar más de una acción para este pguid, por ejemplo: eliminar y notificar o clasificar y notificar.
4. Información adicional¶
4.1. Configuraciones de API y base de datos¶
Este servicio se activa mediante algunas configuraciones en gbdsapi.properties
o en la tabla gbds.settings
de la base de datos. Estas son:
gbds.transparency.search.identify.send-email.enabled
- Habilita o deshabilita este servicio.
gbds.transparency.email-notifier.log-level
- Establece el nivel de registro.
gbds.transparency.email-notifier.timeout
- Define el tiempo de espera.
gbds.transparency.email-notifier.url
- Define la URL de notificación.
Más información sobre estas configuraciones se puede encontrar en el Manual de Configuración de GBDS API.
4.2. Puntos finales de Notificador de Correo Electrónico GBDS¶
GBDS proporciona una API simple para almacenar y recuperar usuarios/correos electrónicos para enviar. La documentación completa de la API se puede ver en GBDS API
Insertar o actualizar grupos y correos electrónicos: POST Notificación de Grupo de Correo Electrónico
Esta llamada inserta/actualiza grupos y correos electrónicos en relación con estos grupos.
Recuperar Grupo: Obtener Grupo de Correo Electrónico
Esta llamada devuelve el grupo y los correos electrónicos del grupo.
Insertar o actualizar usuario y sus grupos: POST Notificación de Correo Electrónico de Usuario
Esta llamada inserta/actualiza un usuario individual y lo asocia con grupos.
Recuperar usuario: Obtener Usuario de Correo Electrónico
Esta llamada devuelve el usuario y sus grupos asociados.
4.3. Punto final de Obtener Lista de Notificador¶
El notificador de correo electrónico tiene un punto final para listar las solicitudes de correo electrónico notificadas:
GET
http://host:port/gbs-email-notifier/notify/list
(el puerto suele ser 8086)Filtros de consulta:
- estado: uno o más de: PENDIENTE, PROCESANDO, ERROR, HECHO
- fecha-ini: fecha inicial en formato: AAAA-MM-dd-HH-mm-ss
- fecha-fin: fecha final en formato: AAAA-MM-dd-HH-mm-ss
- nombre de usuario
- correo electrónico
- índice de página, predeterminado 0, mínimo 0
- tamaño de página, predeterminado 20, mínimo 1, máximo 100
El ejemplo de respuesta es:
{
"notifications": [
{
"tguid": "86A2BA4A-822C-4F1F-9017-46E0144F274C", "timestamp": "2021-08-24-10-52-07", "status": "HECHO", "username": "rgiolo", "emails": [
"email_01@griaule.com", "email_02@griaule.com"
], "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": "Correo electrónico enviado"
},
...
]
}