Files
mesh-catalog/modules/mesh-mail-web/README.md
T
jochen d8144b704d issue 1859: run the mail page locally with invented mail (1859.5)
So the operator can click through the page on their own machine before it is delivered: cmd/mail-page-dev
serves internal/web's real handlers on 127.0.0.1 alone, over invented mail in two accounts and an in-memory
mail reading that fills every section, with an always-signed-in stand-in; nothing reaches the bus, a
database, Keycloak or a mail server. -now fixes today. The README says how to run it and what is a stand-in.
2026-10-22 20:14:24 +02:00

40 lines
2.3 KiB
Markdown

# mesh-mail-web — the mail page
The mail web client (novox/hq ADR 0440), built from mesh-mail's own source. It claims `mail-webclient` and serves
the mail page on its internal name, behind Keycloak sign-in. Since design 63 milestone 1 (issue 1859, ADR 0515)
the page opens on the operator's list — today, this week, later, the promises, good to know, read later,
handled today and the scam warnings — from mail reading (`mail-reading.list` and its acts), with the modes
Work, Personal and Everything (the trusted setting `modes`) and a reading pane for one mail and its
corrections. The classical list (accounts, folders, search, one mail, write) stays at `/all`, as All mail. One
script and one stylesheet, `/static/app.js` and `/static/app.css`, come from the page's own origin.
The code is the package `internal/web`; `cmd/mesh-mail-web` is the module's program, the one its manifest
builds.
## The local run: the page on your own machine
`cmd/mail-page-dev` serves the same page handlers on 127.0.0.1 alone, to click through the page without the
mesh:
cd modules/mesh-mail-web
go run ./cmd/mail-page-dev
and open http://127.0.0.1:8463/. Flags:
- `-addr 127.0.0.1:8463` — where it listens; any address other than 127.0.0.1 is refused.
- `-now 2026-10-22T09:00:00+02:00` — fixes "today" (RFC 3339), to see the list on a chosen day.
What is real and what is a stand-in:
- **Real:** every page, form, template, the script and the stylesheet, the content security policy, the host
check and the form tokens: `internal/web` as the module runs it.
- **Stand-ins, in memory, gone when it stops:** the mail — about 25 invented mails in two accounts, `work` and
`personal`, with design 63's mockup people and firms (Sara Claes, Tim Jacobs, Lena Janssens, the Harbor demo,
Hostco, Telco) at `.example` addresses; mail reading — invented entries with tasks, promises and read later in
every section, handled, undone, reminded and corrected by the same rules as mesh-mail-reader; the setting
`modes` (Work is `work`, Personal is `personal`); and sign-in, always signed in as a stand-in operator.
- **Nothing reaches the mesh:** no bus, no database, no Keycloak, no mail server; a send answers an invented
id, is waiting once, then says sent, and no mail leaves the machine.
It is not part of the module's build: `module.json` builds `cmd/mesh-mail-web` alone.