Email Notifications
Athenz can send email notifications for events such as a role member with access that about to expire.
Athenz supports Amazon Simple Email Service (Amazon SES) out of the box. This requires Athenz to be deployed on AWS. Users may use other Email Providers by following the steps to Enable Notifications using other Providers
Enable Email Notifications using Amazon Simple Email Service (Amazon SES)¶
Enable Email Notifications for ZMS server by editing the zms.properties file:
# Notification: Factory class using AWS SES implementation to send out email notifications
athenz.zms.notification_service_factory_class=com.yahoo.athenz.common.server.notification.impl.NotificationServiceFactoryImpl
# Notification: Email domain from
athenz.notification_email_domain_from=from.domain.com
# Notification: Email from
athenz.notification_email_from=sender.name
# Notification: Email domain to
athenz.notification_email_domain_to=to.domain.com
# Notification: Workflow url for approvers to click from within email body to take action on the notification
athenz.notification_workflow_url=https://your.athenz.ui/athenz/workflow
# Notification: Athenz UI Link included in Expiry Reminder Emails
athenz.notification_athenz_ui_url=https://your.athenz.ui/athenz
Enable Notifications using other Providers¶
To use other providers, create a Jar file on the Athenz classpath with implementations for the following Interface:
com.yahoo.athenz.common.server.notification.NotificationServiceFactory - A factory that creates a Notification Service based on a Notifications Provider.
You may use the existing com.yahoo.athenz.common.server.notification.impl.EmailNotificationService and inject a new provider or implement a compleley new Notifications Provider that will notify users by means other than email.
If you do plan on sending email notifications, implement the following interface:
com.yahoo.athenz.common.server.notification.EmailProvider
For example, to enable Email Notifications with your provider, you may implement com.yahoo.athenz.common.server.notification.NotificationServiceFactory like so:
package your.packge;
import com.yahoo.athenz.common.server.notification.impl.EmailNotificationService;
public class YourNotificationServiceFactory implements NotificationServiceFactory {
@Override
public NotificationService create() {
return new EmailNotificationService(new YourEmailProvider());
}
}
athenz.zms.notification_service_factory_class=your.packge.YourNotificationServiceFactory
We can also send notifications to more than one service by specifying all service factories.
For example, if we would like notifications to be sent via your.packge.YourNotificationServiceFactory
and
their.packge.TheirNotificationServiceFactory
, specify both values in the property using ,
as a delimiter:
athenz.zms.notification_service_factory_class=your.packge.YourNotificationServiceFactory, their.packge.TheirNotificationServiceFactory