This is a small app responsible for sending email alerts when there are changes detected to endpoint web services (subscriptions).
Scheduling is handled by Quartz plugin in the app. It works like RSS - it checks the JSON service and reads the results and then compares that with the previously stored check and if there are new records, it triggers an email. Relies on records being sorted by date loaded. Works with any endpoint that can return date-sorted JSON output.
Go folder ./docker
, run docker-compose up
Docker-compose runs MySql 8.1 on 3306, smtp4dev on 3000, 2525
What the docker-compose does:
- Install MySql
- Log in as root
create user 'alerts_user'@'localhost' identified as 'alerts_user';
grant all privileges on *.* to 'alerts_user'@'localhost';
create database alerts
- Create /data/alerts/config/alerts-config.properties
- Use the template in ala-install to get the necessary values
Run smtp4dev via Docker:
docker run -p 3000:80 -p 2525:25 -d --name smtpdev rnwood/smtp4dev
Emails will be sent on SMTP port 2525 (configure sending emails via mail.enabled=true
, grails.mail.port=2525
and grails.mail.server=localhost
. Note: emails will not be delivered externally so you don't have to worry about spamming users.
You can view all sent emails via the smtp4dev UI on http://localhost:3000/, inlcuding HTML emails which are nicely displayed.
Change logs
DB schema update:
ALTER TABLE alerts.query_result MODIFY logs TEXT NULL;
No DB changes
Apply new templates for alerts
Database update: Check RELEASE.MD for the queries to run