iGRPIGRP 3.0Documentation

Integração com notificações

Como o Access Management envia os emails de convite e OTP pelo iGRP Notification Service, o que configurar dos dois lados e o que acontece quando falha.

O Access Management envia os emails do Fluxo de Convite — convite, reenvio, cancelamento, resposta e código OTP — de uma de duas formas:

ModoQuando escolher
Notification ServiceProdução. Templates editáveis por evento e por idioma, histórico de envios, retentativas.
SMTP localInstalações simples. Texto fixo, sem templates. Também é o recurso quando o Notification Service falha.
VariávelValorEfeito
IGRP_NOTIFICATION_SERVICE_ENABLEDtrueUsa o Notification Service como caminho principal
IGRP_NOTIFICATIONS_ENABLEDmailLiga o SMTP local (SMTP_HOST, SMTP_PORT, …), usado sozinho ou como recurso
IGRP_NOTIFICATIONS_ENABLEDnone (omissão)Sem SMTP local: se o Notification Service não enviar, o email não sai

Com os dois desligados os convites ficam registados, mas nenhum email é enviado.

Como o email sai

Fluxo de conviteAccess Management/oauth2/tokenAccess ManagementNotification Service/api/v1/notificationsSMTP localfallbackclient_credentialsJWT (em cache)template + locale · Bearer JWT202 Acceptedse 422 TEMPLATE_ERROR — sem template publicado nesse locale:repete com o locale por omissão do módulose voltar a falhar ou o serviço não responder:texto local · IGRP_NOTIFICATIONS_ENABLED=mailsem SMTP ligado, o email não é enviado
O token tem de trazer application_code = APP_IGRP_CENTER e a permissão igrp.notification.send. Os eventos de convite nunca falham por causa do email; só a validação por OTP falha se nenhum dos dois caminhos o entregar.
  1. O Access Management pede um token client_credentials ao seu próprio /oauth2/token e guarda-o em cache.
  2. Chama POST /api/v1/notifications no Notification Service com o código do template do evento, o locale do convidado e as variáveis.
  3. Se não houver template publicado nesse locale (422 TEMPLATE_ERROR), repete uma vez com o locale por omissão do módulo (igrp.i18n.default-locale).
  4. Se voltar a falhar, ou o serviço não responder, envia pelo SMTP local quando IGRP_NOTIFICATIONS_ENABLED=mail.

Nenhum evento de convite falha por causa do email: o convite é criado, reenviado ou cancelado na mesma. A exceção é a validação por OTP: se nem o Notification Service nem o SMTP local entregarem o código, a validação falha com erro.

O que configurar

No Access Management

RequisitoPorquê
Um cliente M2M cuja conta de serviço está associada à aplicação APP_IGRP_CENTERO pedido não envia applicationCode: a aplicação vem do claim application_code do token, e os templates de convite pertencem a APP_IGRP_CENTER
A conta de serviço com a permissão igrp.notification.sendSem ela o Notification Service responde 403

No Notification Service

RequisitoPorquê
SMTP configurado (NOTIFICATION_PROVIDERS_EMAILSMTP_*)Sem ele o envio é recusado (422 CHANNEL_NOT_ENABLED) — ver Configurar os canais
AUTH_JWT_ISSUER igual ao iss dos tokens do Access ManagementO serviço rejeita tokens de outro emissor
Os templates de convite publicadosJá vêm publicados: o serviço cria-os no arranque em pt e en (ver Templates da plataforma)

Variáveis de configuração

VariávelOmissãoDescrição
IGRP_NOTIFICATION_SERVICE_ENABLEDfalseLiga o envio pelo Notification Service
IGRP_NOTIFICATION_SERVICE_BASE_URL—Base do Notification Service, sem /api/v1
IGRP_NOTIFICATION_SERVICE_AUTH_URL—Base do Access Management para o /oauth2/token (ver aviso abaixo)
IGRP_NOTIFICATION_SERVICE_CLIENT_ID, …_CLIENT_SECRET—Cliente M2M
IGRP_NOTIFICATION_SERVICE_SCOPEvazioScope pedido no token
IGRP_NOTIFICATION_SERVICE_INVITATION_TEMPLATE_CODEuser-invitationConvite
IGRP_NOTIFICATION_SERVICE_INVITATION_RESEND_TEMPLATE_CODEuser-invitationReenvio
IGRP_NOTIFICATION_SERVICE_INVITATION_CANCELLATION_TEMPLATE_CODEuser-invitation-cancelledCancelamento
IGRP_NOTIFICATION_SERVICE_INVITATION_RESPONSE_TEMPLATE_CODEuser-invitation-respondedResposta ao convite
IGRP_NOTIFICATION_SERVICE_INVITATION_OTP_TEMPLATE_CODEuser-invitation-otpCódigo OTP
IGRP_NOTIFICATION_SERVICE_INVITATION_DEFAULT_LOCALEenLocale usado quando o pedido não traz um
IGRP_NOTIFICATION_SERVICE_INVITATION_PROJECTiGRPValor da variável project nos templates
IGRP_NOTIFICATION_SERVICE_INVITATION_APP_CENTER_URL—Valor da variável appCenterUrl (só enviada se definida)

AUTH_URL só é usado com SCOPE definido

Com IGRP_NOTIFICATION_SERVICE_SCOPE vazio, o Access Management ignora IGRP_NOTIFICATION_SERVICE_AUTH_URL e pede o token a {IGRP_NOTIFICATION_SERVICE_BASE_URL}/oauth2/token — o Notification Service, que responde 401. O envio cai então para o SMTP local. Até isto ser corrigido, define um SCOPE aceite pelo cliente M2M para que o token seja pedido ao AUTH_URL.

Variáveis dos templates

Template (omissão)Variáveis
user-invitationproject, user, link, year, appCenterUrl
user-invitation-cancelledproject, user, year, appCenterUrl
user-invitation-respondedproject, user, year, appCenterUrl
user-invitation-otpproject, user, otp, year, appCenterUrl

user é o nome do convidado (ou o email, se não houver nome). Para mudar o texto, edita estes templates na Notifications UI — aplicação APP_IGRP_CENTER — e publica uma versão nova.

Exemplos de emails

Exemplo — email de convite
Exemplo — email de OTP

Ver também

How is this guide?

Última atualização: