Alerts

O Operator
Notify

Alert rules

Route file + schema changes to Slack, Discord, or any HTTP webhook. Rules fire in near-real-time (as the cron dispatcher runs every minute). Every attempt is logged.

i
How a rule fires: Two flavors. Per-row rules (default) fire on every change that matches the path glob + kind + status filter — good for "wake me on any deletion". Frequency rules (set threshold > 0) fire once when a matching file crosses N changes in M minutes — good for "wake me when someone edits the payment gateway config 5+ times in an hour". Rate limit protects you from firehoses; every delivery attempt is logged whether it succeeded or failed.
Edit rule #3
Combine a matcher (kind + path glob) with a delivery target. Save, then wait for the next capture tick.


Frequency mode — when threshold > 0, this rule fires whenever a matching file crosses N changes in M minutes (instead of firing per row)
Cancel
Recent deliveries
Last 30 fire attempts across every rule. Audit trail for compliance / debugging.
Status Rule / target Result When
sent TESTER -- DriftSense own DB schema drift (ALERT_* tables) :: drift_sense.ALERT_DELIVERIES HTTP 200 2026-07-12 11:31:03
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:31:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:31:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:31:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:31:02
sent TESTER -- DriftSense own DB schema drift (ALERT_* tables) :: drift_sense.ALERT_DELIVERIES HTTP 200 2026-07-12 11:26:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:26:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:26:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:26:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:26:01
sent TESTER -- DriftSense own DB schema drift (ALERT_* tables) :: drift_sense.ALERT_DELIVERIES HTTP 200 2026-07-12 11:21:03
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:21:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:21:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:21:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:21:01
sent TESTER -- DriftSense own DB schema drift (ALERT_* tables) :: drift_sense.ALERT_DELIVERIES HTTP 200 2026-07-12 11:16:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:16:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:16:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:16:01
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:16:01
sent TESTER -- DriftSense own DB schema drift (ALERT_* tables) :: drift_sense.ALERT_DELIVERIES HTTP 200 2026-07-12 11:11:03
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:11:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:11:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:11:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:11:02
sent TESTER -- DriftSense own DB schema drift (ALERT_* tables) :: drift_sense.ALERT_DELIVERIES HTTP 200 2026-07-12 11:06:03
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:06:03
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:06:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:06:02
sent TESTER -- Any deleted file portfolio-wide (high signal) :: /var/www/vhosts/webstls.com/... HTTP 200 2026-07-12 11:06:02
Rules
Click a row to edit. Deactivating a rule stops it firing but keeps its history.
Status Name Matches Delivery Target Fires Last fired Actions
active TESTER -- DriftSense code dir tripwire (adds + deletes only) file · /var/www/vhosts/3dshawn.com/site1/** generic_webhook https://watchtower.3dshawn.com/alert_test_catcher.cgi 50 2026-07-12 01:53:10
active TESTER -- DriftSense own DB schema drift (ALERT_* tables) schema · drift_sense.ALERT_* slack https://watchtower.3dshawn.com/alert_test_catcher.cgi 215 2026-07-12 11:31:03
active TESTER -- Any deleted file portfolio-wide (high signal) file · ** discord https://watchtower.3dshawn.com/alert_test_catcher.cgi 675 2026-07-12 11:31:02