docs(admin): email is SMTP now, and the Gmail connect flow is gone #21
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/engagement-phase-1-smtp"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Engagement Phase 1's share of this repo — §6.0b row 1's "Other repos" column. Companion to website#165 and docs#178; land together.
Four pages described a delivery path that no longer exists. One of them under the heading "There is no SMTP option", which is now the exact opposite of true.
administration/notifications-and-email.mdxThe Email section is rewritten around the three postures the org lead settled (§7.1 Q5), leading with a relay:
smtp.gmail.com:587with an app password. Named explicitly as the migration off the removed OAuth2 flowTwo cautions carry the failures that produce no error at all, which is why they need a page rather than a tooltip: Implicit TLS left on for port 587 hangs rather than failing, and a Send from address the relay will not accept is an SPF/DMARC rejection that looks like nothing from the outside. Send test is what proves both, and it names them.
An upgrade aside covers the deployment this actually happens to — mail stops, nothing errors, the dashboard warns — and says plainly that SSO is unaffected, since email merely borrowed the Google client. Removing the borrow removes a trap: rotating the SSO secret used to break outbound mail silently.
The other three
troubleshooting.mdx— "Connect Gmail" is replaced, and the section gains the two silent failures above plus theenabledtoggle, which now gates every message rather than some of them.configuration.mdx— loses the "configure Google on the Authentication page first" ordering constraint, which went with the borrowed client. Email now depends on nothing else on the site.architecture/system-architecture.mdx— the encrypted-at-rest list said "the Gmail refresh token"; it is now the mail transport's credentials, which are write-only in the API like the sidecar token.Deliberately not touched
src/data/platform.jsonandsrc/data/capabilities.mjsbelong to Phase 12. The capabilities line still claims a web notification channel that does not exist until Phase 7, and correcting it now would be a claim about a phase that has not shipped.This lands on
edge, so none of it is published whilemainstill carries the Gmail flow.checkFactsfetches each fact's authority from the source repo'smain, so it stays green through the whole edge period — as designed.How it was tested
npm run build— clean, 50 pages.npm run check(Astro type check) — 0 errors, 0 warnings.npm run check:links— 2409 internal links resolve, 124 repository links point at a branch.GITEA_TOKEN=… npm run check:facts— 19 facts agree with their authorities.check:tokens,check:brand,check:datasafety,check:quickstart,check:reference,check:sidebar,check:screens,check:a11y,check:csp— all clean.npm test— 42 passing.Checklist
AI-assisted contributions (required)
Claude Code. I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-Bytrailer.License