feat(email): native mailbox provisioning + harden Google sign-in #4072
ccantynzcommented Jun 11, 2026
Originally written by @vercel[bot] on GitHub.
Deployment failed with the following error:
There is no GitHub account connected to this Vercel account.ccantynzcommented Jun 11, 2026
Originally written by @vercel[bot] on GitHub.
The latest updates on your projects. Learn more about Vercel for GitHub.
| Project | Deployment | Actions | Updated (UTC) |
|---|---|---|---|
| alec-rae-com-admin | Preview, Comment | Jun 11, 2026 7:53am |
Cross-repo impact
See what breaks downstream if this PR merges.
⮌ Merged
This pull request was merged into main.
c comment · e edit title · m merge · a approve · r request changes · ? shortcuts
Originally written by @ccantynz-alt on GitHub.
Imported from https://github.com/ccantynz-alt/AlecRae.com/pull/59
What
Foundation for native business email (dogfooding
info@bookaride.co.nz) + a fix for the deployed Google sign-in 500.Business email
mailboxestable — a provisioned business-email address on a hosted, verified domain (distinct from the OAuth-connected external accounts inconnected_accounts). Migration0001_broad_leader.sql.POST/GET/DELETE /v1/mailboxes(mounted inserver.ts). Create requires the domain to be registered + verified for the account.router.ts; this makes named mailboxes first-class.)docs/infra/business-email-domain-onboarding.md— exact MX/SPF/DKIM/DMARC records + deliverability steps for a customer domain.Google sign-in 500 (deployed)
Root-caused:
GET /v1/auth/google→signAuthState()throws in prod whenJWT_SECRETis unset/<32 chars (password login masked it via ephemeral RS256). Now wrapped to degrade to/login?error=google_unavailableinstead of a raw 500. Real fix is env: set a stableJWT_SECRET(≥32 chars) in production (issue #25).Verification
db:migrate→ 137 tables,mailboxespresent with all columns ✅apps/apitypecheck clean ✅Notes / follow-ups
services/dns/auto-config.tsstill hard-codes.devplaceholder hosts (mx1.alecrae.dev,spf.alecrae.dev) vs.comproduction — must fix before onboarding a real customer domain.https://claude.ai/code/session_01McgJLnTbZG9mwhfwd5iAX3
Generated by Claude Code