Dev-only preview dashboard mount.
Usage
import MailglassAdmin.Router
if Application.compile_env(:my_app, :dev_routes) do
scope "/dev" do
pipe_through :browser
mailglass_admin_routes "/mail"
end
endRestart mix phx.server, visit /dev/mail, done. Zero endpoint.ex edits.
Options
:mailables—:auto_scan(default) or explicit list[MyApp.UserMailer, ...].:auto_scanwalks:application.get_key/2across loaded apps and keeps modules thatuse Mailglass.Mailable. Explicit lists bypass the scan.:on_mount— Extraon_mounthooks appended BEFORE the internalMailglassAdmin.Preview.Mounthook.:live_session_name— Name of the library-ownedlive_session(default:mailglass_admin_preview). Rename to resolve collisions with an adopterlive_sessionof the same name.:as— Route helper prefix (default:mailglass_admin).
Every opt is a public API contract once shipped; the v0.1 schema is deliberately lean (four keys) per CONTEXT D-09. Added opts ship only when a concrete adopter asks.
Dev-only enforcement
The library does NOT enforce :dev — wrapping the mount in
if Application.compile_env(:my_app, :dev_routes) do ... end is the
ADOPTER's job, matching the Phoenix 1.8 mix phx.new-generated router
idiom. Mix.env() is unreliable in release builds (always :prod);
keeping dev-enforcement in adopter code means v0.5's prod-admin
surface is a README change, not a breaking macro change.
Does NOT do
Mix.env()checks in the macro body (unreliable in releases)- Pass
conn.private.plug_sessioninto LiveView assigns (would leak adopter cookies;__session__/2builds a whitelisted map) - Register any named GenServer (
name: __MODULE__is banned in library code per CLAUDE.md)
Summary
Functions
Mounts the preview dashboard at path.
Functions
Mounts the preview dashboard at path.
Expands to a scope containing asset routes (compile-time served via
MailglassAdmin.Controllers.Assets) and a live_session with
MailglassAdmin.PreviewLive. Session isolation is provided by the
whitelisted __session__/2 callback.
Example
scope "/dev" do
pipe_through :browser
mailglass_admin_routes "/mail"
endUnknown opts
Raises ArgumentError at compile time with a message starting
invalid opts for mailglass_admin_routes/2.