Pular para o conteúdo principal

Notificações

O sistema usa notificações automáticas para avisar usuários sobre mudanças relevantes. Não existe ferramenta de envio manual em massa.

Onde fica o código​

Os principais pontos de manutenção são:

  • apps/backend/src/app/notifications;
  • apps/backend/src/app/event-forms/event-form-notification.service.ts;
  • apps/backend/src/app/event-forms/event-forms.scheduler.ts;
  • serviços de inscrição, certificado e presença que chamam NovuNotificationsService;
  • apps/public/src/app/tabs/notifications;
  • apps/public/src/app/feature-flags/public-feature-flags.ts.

Novu​

Novu é usado para inbox, push e disparos de workflows quando estiver configurado.

As variáveis principais são:

VariávelUso
NOVU_SECURE_MODE_ENABLEDAtiva sessões assinadas e disparos pelo backend.
NOVU_SECRET_KEYAssina o subscriberId e autoriza disparos na API.
NOVU_API_URLEndpoint da API Novu.
NOVU_APPLICATION_IDENTIFIERIdentificador usado pela inbox no navegador.
NOVU_CLIENT_API_URL, NOVU_CLIENT_SOCKET_URL, NOVU_CLIENT_SOCKET_PATHEndpoints do SDK quando a instalação não usa os padrões.
NOVU_PUSH_INTEGRATION_IDENTIFIER, NOVU_VAPID_PUBLIC_KEYConfiguração de push.

Quando o modo seguro não está ativo ou a configuração está incompleta, o backend deve falhar de forma controlada e não bloquear o fluxo principal.

Identidade do assinante​

O subscriberId deve ser estável.

Para pessoas vinculadas, o serviço prefere userId ou o usuário associado. Quando não houver usuário, pode usar e-mail ou o próprio registro de pessoa como fallback operacional.

Evite trocar a estratégia sem planejar migração, porque isso cria caixas de notificação separadas para a mesma pessoa.

Workflows​

Os workflows configuráveis incluem:

  • alteração de status de inscrição em grande evento;
  • presença off-line enviada para revisão;
  • certificado disponível;
  • formulário de evento disponível.

Os identificadores podem ser configurados por variável de ambiente. O valor padrão deve continuar compatível com os workflows criados no Novu.

Disparo​

Disparos devem ser idempotentes no serviço de domínio quando o evento de negócio puder repetir-se.

Exemplo: formulários de evento usam lastNotifiedAt no vínculo para evitar avisos duplicados. Se o Novu falhar, o vínculo volta ao estado não notificado para permitir nova tentativa.

Falhas​

Falhas de Novu não devem confirmar uma operação de negócio que não aconteceu, mas também não devem impedir fluxos principais quando a notificação é complementar.

O serviço deve registrar:

  • falha HTTP;
  • resposta não reconhecida;
  • timeout;
  • erro de configuração;
  • destinatário sem identificador estável.

Privacidade​

Payloads de notificação devem conter somente o necessário para a mensagem.

Não inclua respostas de formulários, documentos, comprovantes, tokens de calendário, links privados ou dados sensíveis. Quando a pessoa precisar ver detalhes, envie apenas um link para uma tela autenticada.

Interface pública​

A aba de notificações do app público depende de autenticação, feature flag e sessão Novu válida.

Se a sessão não puder ser criada, a interface deve mostrar indisponibilidade sem vazar detalhes de configuração.