iGRPIGRP 3.0Documentation

Monitorização — Notifications UI

A app igrp-notifications-ui — definições por aplicação, templates, histórico de envios e inbox; o que configurar no Access Management para a pôr a funcionar.

A igrp-notifications-ui é uma app Next.js do iGRP Framework para gerir o Notification Service sem chamar a API à mão. Cada página trabalha sobre uma aplicação do Access Management, escolhida no campo Aplicação (e guardada em ?applicationCode= no URL).

MenuRotaPara quê
Inbox/inbox, /inbox/[id]Notificações IN_APP do utilizador autenticado
Envios/notifications, /notifications/[id]Histórico de envios da aplicação e estado de cada entrega
Templates/templates, /templates/novo, /templates/[id], /templates/[id]/editorCriar, editar, publicar e arquivar templates
Definições/settingsCanais, callbacks, retenção, remetentes e quotas da aplicação

Pôr a consola a funcionar

  1. Registar a app no Access Management. Cria uma aplicação (por exemplo IGRP_NOTIFICATIONS, slug /apps/notifications) e usa esse código em IGRP_APP_CODE.
  2. Sincronizar os menus. Os menus (Inbox, Envios, Templates, Definições) estão no código. Com IGRP_SYNC_ACCESS=true e IGRP_SYNC_ON_CODE_MENUS=true a consola cria-os na aplicação no arranque; sem isso a barra lateral mostra Aplicação sem menus.
  3. Registar o callback de login. O cliente OAuth usado no login tem de aceitar <origem><basePath>/api/auth/callback/igrp-auth; senão o Access Management responde 401 no /oauth2/authorize.
  4. Dar permissões a quem a usa. Templates, definições, destinatários e recorrências exigem igrp.notification.admin; o histórico de envios, igrp.notification.read; a inbox, igrp.notification.inbox. O serviço regista estas permissões no Access Management quando arranca.
  5. Ligar o serviço ao Access Management. Para verificar se o utilizador tem acesso à aplicação escolhida, o Notification Service precisa de notification.access-management.enabled=true (com base-url, client-id, client-secret). Sem isso as páginas mostram ACCESS_MANAGER_UNAVAILABLE.

Definições

Por aplicação: canais permitidos e ordem preferida (para channelStrategy=PREFERRED), URL e domínios de callback, retenção (ISO 8601, por exemplo P90D), remetentes e quotas (limit por HOUR, DAY ou MONTH, opcionalmente por canal). Um canal fora de Canais permitidos é recusado no envio (CHANNEL_NOT_ENABLED).

Definições da aplicação registos: canais permitidos EMAIL e IN_APP, ordem preferida EMAIL e IN_APP, callbacks vazios, retenção PT2160H e um sender EMAIL noreply@registos.gov.cv

Remetentes ainda não chegam ao email

Os remetentes ficam guardados, mas o provider SMTP envia sempre com o from da sua configuração (notification.providers.email-smtp.from). A retenção é guardada como duração normalizada (P90D aparece como PT2160H).


Templates

A lista mostra os templates da aplicação com código, idioma, versão e estado. Novo template abre o assistente; o lápis abre o template e o ícone de arquivo arquiva-o.

Lista de templates da aplicação registos com pedido-confirmacao, pt-CV, versão 1, Publicado

O passo a passo de criação (metadados → ponto de partida → editor → publicar) está em Templates › Criar na consola.

Na página do template editas os metadados e o corpo em três vistas: Código (HTML), WYSIWYG e Visual (o editor por blocos):

Página Editar template de pedido-confirmacao com código, canal EMAIL, idioma Português (Cabo Verde), assunto e título, e o corpo aberto na vista Visual
AçãoO que faz
Guardar num DRAFTAtualiza o rascunho (PUT /templates/{id})
Guardar num PUBLISHED/ARCHIVEDCria um DRAFT na versão seguinte (POST /templates)
PublicarPublica o rascunho e arquiva as outras versões publicadas do mesmo código, canal e locale
ArquivarPOST /templates/{id}/archive

Envios

O histórico da aplicação, com pesquisa por businessKey e filtros (categoria, prioridade, canal, estado, datas). Cada linha abre o detalhe ou reenvia.

Histórico de envios da aplicação registos com duas notificações do pedido PED-2026-0456: pedido-analise Entregue e pedido-confirmacao Enviado

O detalhe mostra os dados do pedido (aplicação, estratégia, template, locale, chave de idempotência), uma linha por entrega com o estado, destinatário, tentativas e erro, e o conteúdo renderizado. Reenviar chama POST /notifications/{id}/resend.

Detalhe do envio PED-2026-0456: aplicação REGISTOS, canal EMAIL, template pedido-confirmacao pt-CV, entrega para maria.silva@exemplo.cv com estado Enviado e assunto Pedido PED-2026-0456 recebido

O email do exemplo, tal como chega ao destinatário (aqui, numa caixa de testes):

Email Pedido PED-2026-0456 recebido no Mailpit, com o texto Olá Maria Silva e o número do pedido a negrito

Inbox

As notificações IN_APP do utilizador autenticado (lidas com o token dele, não M2M): pesquisa, filtros, marcar como lida, marcar todas e arquivar.

Inbox com 1 não lida: Pedido PED-2026-0456, assunto Novo pedido para analisar, categoria pedido-analise, estado Não lida

Variáveis de ambiente

# Login (igrp-auth)
AUTH_PROVIDER=igrp-auth
IGRP_AUTH_ISSUER=https://<gateway>/igrp-access-management
IGRP_AUTH_CLIENT_ID=<cliente OAuth>
IGRP_AUTH_CLIENT_SECRET=<segredo>
NEXTAUTH_URL=https://<host>/apps/notifications/api/auth
NEXTAUTH_SECRET=<segredo>

# Aplicação e Access Management
IGRP_APP_CODE=IGRP_NOTIFICATIONS
NEXT_PUBLIC_IGRP_APP_CODE=IGRP_NOTIFICATIONS
IGRP_ACCESS_MANAGEMENT_API=https://<gateway>/igrp-access-management
IGRP_M2M_CLIENT_ID=<cliente M2M>
IGRP_M2M_CLIENT_SECRET=<segredo>
IGRP_SYNC_ACCESS=true
IGRP_SYNC_ON_CODE_MENUS=true

# Notification Service (sem /api/v1)
IGRP_NOTIFICATION_API=https://<gateway>/igrp-notification-service

# Base path
NEXT_PUBLIC_BASE_PATH=/apps/notifications

NOTIFICATION_SERVICE_BASE_URL também é aceite em vez de IGRP_NOTIFICATION_API. NEXTAUTH_URL inclui o base path, e o callback registado no cliente OAuth é <NEXTAUTH_URL>/callback/igrp-auth.

Com IGRP_PREVIEW_MODE=true a consola arranca sem login real, com menus e utilizador de exemplo.

How is this guide?

Última atualização: