No description
Find a file
justin ae68edbc58 fix(monitoring): repair both dead mail-alert crons + de-noise DMARC digest
Three bugs the owner hit:
1. Per-operator reputation alert (06:10 cron, mail_reputation_monitor --alert)
   silently never ran: it redirected to /var/log/pw-mail-reputation.log but
   /var/log is root-only and that file was never pre-created, so the deploy
   user's >> redirect failed and cron aborted before the command. Repointed
   both mail-alert crons to deploy-writable /opt/performancewest/logs/.
2. IP reputation alert (20:00 cron) still referenced the removed rehab pool
   (.91-.93) and used 8.8.8.8 for Spamhaus (which returns the open-resolver
   error, not a real answer). Dropped the rehab section, relabeled to the two
   live IPs (.94/.107), and switched the DNSBL check to Control D (76.76.2.0)
   which returns real Spamhaus ZEN data. (It was correctly SILENT lately
   because delivery is healthy -- silent-on-healthy is by design.)
3. DMARC daily digest was pure noise: it alerted on ANY external IP with >=20
   failing msgs, but those are legit recipient-side forwarders/security
   gateways (inkyphishfence, cloud-sec-av, Proofpoint, Mimecast, ...) that
   re-send our mail and naturally break SPF/DKIM alignment -- benign under
   p=reject. Added PTR-based forwarder detection (FORWARDER_PTR_HINTS) so the
   digest tags them [fwd] and only alerts on (a) OUR IP <95% pass or (b) an
   UNKNOWN non-forwarder external IP with >=100 failing msgs = real spoofing.

Verified: all 4 currently-flagged external IPs now classify as forwarder=True.
2026-06-24 06:28:50 -05:00
.claude/projects/-home-justin-projects-performancewest-new-site/memory Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
api mail: DMARC aggregate-report parser + dedicated dmarc@ mailbox ingestion 2026-06-19 08:50:20 -05:00
chrome-extension/fcc-access-helper Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
data fix(email): drop @TrackLink from per-subscriber CTAs (404 + collapse bug) 2026-06-22 17:01:39 -05:00
docs docs(deliverability): document Gmail re-enablement stale-Date/burial fix 2026-06-24 01:24:24 -05:00
docserver docserver: self-healing Task Scheduler config + docs 2026-06-15 22:49:21 -05:00
erpnext build: pin payments to version-15 + stage apps in deploy.sh erpnext 2026-06-02 23:13:01 -05:00
frappe_adyen Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
frappe_ca_registry Fix flagged items: CRTC email submission, BITS todo, selector docs, stale plans 2026-05-04 11:33:45 -05:00
frappe_crypto Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
infra fix(monitoring): repair both dead mail-alert crons + de-noise DMARC digest 2026-06-24 06:28:50 -05:00
mcp Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
monitoring fix(monitoring): render alertmanager.yml from template at deploy (fixes crash loop) 2026-06-07 04:49:53 -05:00
node-compile-cache/v25.1.0-x64-392347a2-1000 Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
performancewest_erpnext fix(erpnext): self-heal outgoing Email Account password from SMTP_* env 2026-06-17 09:48:28 -05:00
scripts fix(monitoring): repair both dead mail-alert crons + de-noise DMARC digest 2026-06-24 06:28:50 -05:00
site fix(intake): HC checkout 400 — resolve customer email/name from intake_data 2026-06-23 13:40:19 -05:00
src Initial commit — Performance West telecom compliance platform 2026-04-27 06:54:22 -05:00
test_screenshots Pivot CRTC offering on FCC carrier page for A-Z wholesale carriers 2026-06-02 13:26:39 -05:00
.gitignore gitignore: stray personal image 2026-06-10 12:35:56 -05:00
CLAUDE.md Update CLAUDE.md with complete deployment guide, infrastructure map, and key patterns 2026-04-28 02:54:44 -05:00
deploy.sh fix(deploy): hard-reset to origin/main + assert HEAD advanced (stop silent strands) 2026-06-16 09:25:11 -05:00
docker-compose.dev.override.yml dev: remap api(3002)/site(4323) ports in override to avoid prod collision on shared host 2026-06-05 23:07:22 -05:00
docker-compose.yml campaigns: MAIN_EXCLUDE_OPERATORS override + Gmail-only exclusion for post-DKIM re-send 2026-06-22 07:35:22 -05:00
extract-erpnext-assets.sh portal: serve /files/ (logo) from stable host path, fix recurring 403 2026-06-02 22:18:30 -05:00