Validation: Configure Postmark SMTP for landscaping Keycloak realm
Verdict: PASS
Ticket
ldraney/landscaping-assistant#321 — Configure Postmark SMTP for landscaping Keycloak realm. Cross-repo infrastructure: Postmark server provisioning, DNS records for DKIM/SPF/Return-Path, and Keycloak SMTP configuration.
Environment
Production cluster. Postmark account (account-level API). Keycloak at
https://keycloak.tail5b443a.ts.net/realms/landscaping. Domain: landscaping-assistant.app.Checks
| # | Criterion | How Verified | Result | Evidence |
|---|---|---|---|---|
| 1 | Postmark server provisioned for landscaping-assistant.app domain | Postmark Account API: <code>list_servers(name="landscaping")</code> | PASS | Server "landscaping-assistant" (ID: 20070694) exists. SmtpApiActivated: true. DeliveryType: Live. |
| 2 | DKIM and Return-Path DNS records deployed | Postmark Account API: <code>get_domain(7984769)</code> | PASS | DKIMVerified: true (selector: <code>20260726204650pm._domainkey.landscaping-assistant.app</code>). ReturnPathDomainVerified: true (<code>pm-bounces.landscaping-assistant.app</code> CNAME to <code>pm.mtasv.net</code>). SPFVerified: true. |
| 3 | Postmark domain verification passes | Postmark Account API: <code>get_domain(7984769)</code> | PASS | Domain "landscaping-assistant.app" (ID: 7984769): SPFVerified=true, DKIMVerified=true, WeakDKIM=false, ReturnPathDomainVerified=true. |
| 4 | Keycloak landscaping realm has working SMTP config | Browser: navigated to <code>/realms/landscaping/login-actions/reset-credentials</code>, submitted password reset form | PASS | Password reset form submitted without SMTP errors. Keycloak displayed "You should receive an email shortly with further instructions." |
| 5 | Password reset email sends and delivers successfully | Postmark Server API: <code>search_outbound_messages()</code> on landscaping server (ID: 20070694) | PASS | 7 emails delivered via landscaping Postmark server, all Status: "Sent". Includes password resets, email verifications, and SMTP test. Most recent: "Reset password" to devopsphilosopher@gmail.com at 2026-07-27T21:13:48. From: "Landscaping Assistant" <noreply@landscaping-assistant.app>. |
Deployment Evidence
Postmark Server API outbound message search (server ID 20070694, landscaping-assistant):
Regression Check
Keycloak login page for landscaping realm loads correctly with custom theme. Login form renders with Username, Password, Forgot Password, and Sign In elements. No visible regressions to the authentication flow.
Discovered Issues
- IaC gap: DNS records not in Terraform. DKIM and Return-Path DNS records exist in live DNS but are NOT in
pal-e-platform/terraform/dns.tf. Drift risk — recommend adding to match ISS pattern. - IaC gap: Postmark server not Terraform-managed. No
postmark_landscapingmodule inpal-e-platform/terraform/main.tf. Server was provisioned manually.