1. 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.
2. Configurando o Notificador de Email¶
2.1. 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
Important
Os valores dos parâmetros entre “<>” devem ser editador de acordo com o ambiente.
2.2. 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:
Key | Description |
---|---|
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. |
Attention
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.
Note
Se nenhum arquivo de dump foi fornecido, contate com a Equipe de Suporte da Griaule..
Important
Quaisquer alterações aplicadas a esta tabela serão refletidas no próximo email enviado.
3. 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
.
3.1. 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
3.2. 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
3.3. 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.
Note
Na tabela gbds.people_transparency
, um pguid pode aparecer mais de uma vez,
então mais de uma ação pode ser feita para este pguid, por exemplo: remover e notificar
ou classificar e notificar.
4. Informações Adicionais¶
4.1. 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.
4.2. 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.
4.3. 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)
- 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_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": "Email sent"
},
...
}
}