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)
    • 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_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"
        },
        ...
    }
}