Serviço de Notificação por Email
Introdução
O Serviço de Notificação por Email do GBDS fornece um recurso para auditoria. Através deste serviço, é possível configurar uma lista de email que será avisada sempre que for solicitada uma pesquisa facial 1:N.
É possível utilizar este recurso com qualquer servidor SMTP, configurando o serviço conforme descrito na seção Configurando o Notificador de Email. Quando nenhum servidor SMTP estiver disponível, o usuário deverá criá-lo e instalar as dependências do serviço.
Configurando o Notificador de Email
Propriedades
O arquivo de configuração do Serviço de Notificação por Email está localizado em etc/griaule/conf/email-notifier/config.properties
e contém os seguintes 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
Os valores dos parâmetros entre <>
devem ser editador de acordo com o ambiente.
Banco de Dados
A tabela enotifier.settings
do banco de dados contém o modelo e o assunto do email e todas as informações para conexão SMTP:
mail.smtp.auth
autorização do SMTP: NONE, TLS, SSL
mail.smtp.from.email
email do emissor do SMTP
mail.smtp.from.name
nome do emissor do SMTP
mail.smtp.host
host do SMTP
mail.smtp.password
senha do SMTP para TLS e SSL
mail.smtp.port
porta do SMTP: NONE=25; TLS=587; SSL=465
mail.identify.request.single.subject
Assunto do email; o notificador irá concatenar o id hash para separação de threads.
mail.identify.request.single.template
Modelo do corpo do email: Campos: <username>: nome do usuário <timestamp:date/time pattern>: se nenhum padrão for fornecido, será usado MM/dd/YYYY HH:mm:ss <biographics>: itera sobre os biográficos; dentro da iteração: <biographic:key> e <biographic:value> fornecem chave/valor imagens serão enviadas como anexo.
mail.identify.result.subject
Assunto da notificação por email do resultado da pesquisa
mail.identify.result.template
Modelo da notificação por email do resultado da pesquisa
mail.identify.request.multiple
Ativa/desativa o envio de vários emails com notificações de solicitação de pesquisa de identificação de rosto
mail.identify.request.multiple.period
Período para consolidar notificações por email
mail.identify.request.multiple.subject
Assunto para email notificações múltiplas
mail.identify.request.multiple.template
Modelo de corpo do email de multiplas notificações. Os emails empacotam um arquivo zip com todas as imagens listadas.
O arquivo zip da lista de imagens anexadas pode conter no máximo 24 MB. Acima disso, a listagem é dividida em mais de um email.
Para criar a tabela, execute o arquivo de dump do banco de dados necessário.
Quaisquer alterações aplicadas a esta tabela serão refletidas no próximo email enviado.
Operação
Os binários serão colocados em /var/lib/griaule/email-notifier/gbs-email-notifier-xxx.jar
e /var/lib/griaule/email-notifier/lib
.
Iniciando e parando o Notificador de Email
Para iniciar o Serviço de Notificação de Email, execute:
/var/lib/griaule/email-notifier/scripts/start-email-notifier.sh
E para pará-lo:
/var/lib/griaule/email-notifier/scripts/kill-email-notifier.sh
Logs
O notificador de emails usa o arquivo de configuração do log4j em /etc/griaule/conf/email-notifier/email-notifier-log4j.xml
. Todos os logs ficarão em /var/logs/griaule/email-notifier/
.
Shutdown log will be generated on /var/log/griaule/email-notifier/email-notifier.log
Ações
O serviço de email pode conter uma lista de interesses por meio do GBDS para algumas pessoas. Algumas ações podem ser feitas quando uma pesquisa é necessária e essas pessoas aparecem nos resultados da pesquisa. As ações são:
Ocultar pessoa do resultado da pesquisa;
Ocultar informações da pessoa no resultado da pesquisa se o usuário autorizado não tiver acesso para vê-la;
Notificar por email o resultado da pesquisa com a pessoa.
Para configurar a ação, é necessário acessar as tabelas gbds.people_transparency
e gbds.people_transparency_group
para informar se alguma pessoa deve ser removida, ocultada ou notificada a cada busca de identificação realizada.
A tabela contém PGUID, ação e flag para habilitar a transparência dessa pessoa. Tabela de grupos retém grupos de email para notificação.
Com o PGUI inserido, as ações devem ser: REMOVE, CLASSIFIED, ou NOTIFY:
Ao remover (REMOVE), o endpoint get result não retornará a pessoa;
Ao definir como informação oculta (CLASSIFIED), o resultado da pesquisa retornará a pessoa, mas os campos pguid/tguid serão com texto classified, todas os seus casamentos (matches) com a pontuação, consulta e índice de referência como -1. Se o usuário autenticado tiver a permissão
transparency_show_classified_people
todos os dados pessoais serão mostrados novamente.Na notificação (NOTIFY), a tabela
gbds.people_transparency_group
contém grupos de email informando quais emails devem ser notificados com o resultado da pesquisa de pessoa.
Informações Adicionais
Configurações da API e do Banco de Dados
Este serviço é ativado por algumas configurações em gbdsapi.properties
ou na tabela gbds.settings
no banco de dados. Esses são:
gbds.transparency.search.identify.send-email.enabled
Ativar ou desativar este serviço
gbds.transparency.email-notifier.log-level
Define o nível de log
gbds.transparency.email-notifier.timeout
Define o timeout.
gbds.transparency.email-notifier.url
Define a URL de notificação
Mais informações sobre essas configurações podem ser vistas no Manual de Configuração da API GBDS.
Endpoints do GBDS para o Serviço de Notificação de Email
GBDS fornece uma API simples para armazenar e recuperar usuários/emails para enviar. A documentação completa pode ser vista na API GBDS
Inserir ou atualizar grupos e emails: POST Email Notify Group
Esta chamada insere/atualiza grupos e emails relativos a esses grupos.
Recuperar Grupo: Get Email Group
Essa chamada retorna o grupo e os emails no grupo.
Inserir ou atualizar o usuário e seus grupos: POST Email Notify User
Esta chamada insere/atualiza um usuário individual e o associa a grupos.
Recuperar usuário: Get Email User
Essa chamada retorna o usuário e seus grupos associados.
Endpoints de Get List do Notificador
O notificador de email tem um endpoint para listar as solicitações de email notificadas:
GET
http://host:port/gbs-email-notifier/notify/list
(a porta usualmente é 8086)Filtros de consulta:
status: um ou mais de: PENDING, PROCESSING, ERROR, DONE
ini-date: data inicial no formato: YYYY-MM-dd-HH-mm-ss
end-date: data final no formato: YYYY-MM-dd-HH-mm-ss
username (usuário)
email
pageIndex, padrão 0, mínimo 0
pageSize, padrão 20, mínimo 1, máximo 100
A resposta do exemplo é:
{
"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"
},
...
]
}
Atualizado