Repository navigation
Document sign-in email DNS and the new DMARC policy - #147
Conversation
Sign-in codes go out from auth@debate.pi-stack.org through Resend. The subdomain had SPF and DKIM but no DMARC record of its own. A quarantine policy now sits at _dmarc.debate.pi-stack.org in Cloudflare DNS, and this note records which records belong to the sender and how to check them before changing the policy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reachedEnable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Next included review available in 29 minutes. View limit details
Note 🎁 Summarized by CodeRabbit Free
Comment |
|
The Local results at head
This change only touches docs, so the database gate doesn't apply. |
DebateLab sends sign-in codes from
auth@debate.pi-stack.orgthrough Resend, in both production and staging. The subdomain already had Resend's SPF and DKIM records but no DMARC record of its own, so it fell back to the parentpi-stack.orgrecord, which only monitors (p=none).Change outside the repo (already live): a new Cloudflare DNS record,
_dmarc.debate.pi-stack.org TXT "v=DMARC1; p=quarantine; adkim=r; aspf=r; rua=mailto:…". Nothing else in DNS changed.Change in the repo: a short "Sign-in email and DNS" section in
docs/operations.mdcovering the sender, the three records, and how to check them before tightening the policy.Proof
Each check below used a real staging sign-in email sent to mail-tester.com. The three throwaway staging users were deleted afterwards.
send.debate.pi-stack.org, DKIM pass withd=debate.pi-stack.org,dmarc=none (p=none).dmarc=pass (p=quarantine dis=none) header.from=debate.pi-stack.org. Score 9.6/10, "You're properly authenticated".dig TXT _dmarc.debate.pi-stack.orgreturns the new record from Cloudflare's nameservers and from 8.8.8.8.npm run docs:checkpasses.Notes
_dmarc.pi-stack.org(personal iCloud mail,p=none) was left alone.🤖 Generated with Claude Code