rdev/internal
jordan ee1c214b7e
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
fix: correct Resend DNS record type, name, and MX priority
Three bugs in the notify provisioner DNS record upsert:

1. rec.Record ("DKIM"/"SPF") was used as the DNS record type — Cloudflare
   doesn't know those labels. Fix: use rec.DNSType ("TXT"/"MX") from the
   resendDNSRecord.type JSON field, which is the actual DNS record type.

2. rec.Name from Resend is already relative to the zone apex
   (e.g., "resend._domainkey.mail.project-name"), not relative to the
   registered domain. Code was doing rec.Name + "." + host which produced
   a doubled subdomain. Fix: pass rec.Name directly — Cloudflare's
   normalizeName appends ".baseDomain" to build the correct FQDN.

3. MX records have priority 10 in Resend's response but DNSRecord had no
   Priority field and Cloudflare CreateRecord/UpdateRecord didn't send it.
   Fix: add Priority int to domain.DNSRecord and include it in the body
   for both Create and Update when non-zero.

These bugs caused DKIM/SPF DNS records to never be created for any project.
Re-provision affected projects using POST /projects/{id}/notify/provision
after clearing NOTIFY_RESEND_DOMAIN_ID from the credential store.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 19:52:11 -07:00
..
adapter fix: correct Resend DNS record type, name, and MX priority 2026-02-23 19:52:11 -07:00
auth feat: implement project access enforcement and management API 2026-02-21 15:38:37 -07:00
circuitbreaker chore: accumulated platform hardening and CI fixes 2026-02-10 23:16:56 -07:00
claudebox fix(git): harden git flow for concurrent SDLC stress test failures 2026-02-10 20:57:27 -07:00
cmdlimit feat: Add CI pipeline proxy, DNS alias management, and worker executor system 2026-01-27 21:05:28 -07:00
db feat: add GCS-based persistent media storage, AI generation pipeline, and composable skeleton packages 2026-02-19 21:29:09 -07:00
domain fix: correct Resend DNS record type, name, and MX priority 2026-02-23 19:52:11 -07:00
envutil feat: implement composable monorepo template system with component architecture 2026-01-31 19:11:42 -07:00
handlers feat: add POST /projects/{id}/notify/provision to repair Resend domain 2026-02-23 17:52:03 -07:00
logging fix(logging): implement http.Flusher on responseWriter for SSE streaming 2026-02-09 13:23:42 -07:00
metrics feat(saga): implement enterprise-grade resilience architecture 2026-02-08 01:58:02 -07:00
middleware feat: Add CI pipeline proxy, DNS alias management, and worker executor system 2026-01-27 21:05:28 -07:00
port feat: add POST /projects/{id}/notify/provision to repair Resend domain 2026-02-23 17:52:03 -07:00
ratelimit feat: Add CI pipeline proxy, DNS alias management, and worker executor system 2026-01-27 21:05:28 -07:00
sanitize feat: Add claude-config API, security hardening, and testing infrastructure 2026-01-25 01:29:13 -07:00
sdlc refactor: add timeout constants for agent execution tiers 2026-02-11 10:48:24 -07:00
service feat: improve notify domain verification reliability and add status endpoints 2026-02-23 16:25:55 -07:00
telemetry fix: Use FQDN for k8s service hostnames and remove broken commonLabels 2026-01-31 20:46:04 -07:00
testutil feat: Implement hexagonal architecture with services, webhooks, queue, and telemetry 2026-01-25 19:57:46 -07:00
validate feat: Add CI pipeline proxy, DNS alias management, and worker executor system 2026-01-27 21:05:28 -07:00
webhook chore: accumulated platform hardening and CI fixes 2026-02-10 23:16:56 -07:00
worker refactor: add timeout constants for agent execution tiers 2026-02-11 10:48:24 -07:00