NextMyDay/internal/core
Claus Lohmar 5dc0a0150e feat(account): add the account page and the admin Users page
The live instance had no way to add a passkey or a user. Two core pages now
make the signed-in experience usable (SPEC-010):

  * the ACCOUNT page (GET /{GUID}/account) shows the user's factors (passkey
    count · TOTP enrolled), an "Add a passkey" button that LINKS to the
    existing D-041 ceremony screen — the WebAuthn flow is never duplicated —
    and a "Don't ask again" control writing users.passkey_opt_out;
  * the admin USERS page (GET /{GUID}/users) lists every user (name · email ·
    role · manager · identity status) and creates one: only roles below the
    creator (D-019), the manager defaulting to the creator, then users.Create
    -> identities.Mint -> the /{GUID} invite is EMAILED and shown for
    copy/paste.

Both ride the door as core dispatch modules, so the door still gates them
(session + role + CSRF). The entrypoint requires admin for the users
functions; account stays at the team floor.

Additive support: auth.Identities.TOTPEnrolled, users.Users.List,
server.Deps.Credentials (the banner's "has a passkey?" read) and the
CoreDispatchNames guard now covers account/users.
2026-10-15 07:58:18 +00:00
..
account feat(account): add the account page and the admin Users page 2026-10-15 07:58:18 +00:00
audit feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
auth feat(account): add the account page and the admin Users page 2026-10-15 07:58:18 +00:00
config feat(setup): gate setup with the config toggle and an optional code 2026-10-15 06:47:33 +00:00
httpx feat(setup): gate setup with the config toggle and an optional code 2026-10-15 06:47:33 +00:00
mail feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
middleware fix(security): prune and cap the rate limiter state 2026-10-14 11:30:03 +00:00
module feat(account): add the account page and the admin Users page 2026-10-15 07:58:18 +00:00
recovery feat(server): gate /setup by the direct tunnel and trust the proxy scheme 2026-10-15 05:40:36 +00:00
routing feat(routing): add the pure routing model (SPEC-002) 2026-10-14 10:53:48 +00:00
server feat(web): role-gate the nav and show the post-setup passkey banner 2026-10-15 07:58:09 +00:00
setup fix(setup): render the TOTP step instead of the enroll flow's JSON 2026-10-15 07:07:31 +00:00
store feat(core): add the store, identity plumbing and the door (SPEC-003/004) 2026-10-14 10:53:51 +00:00
users feat(account): add the account page and the admin Users page 2026-10-15 07:58:18 +00:00
web feat(web): role-gate the nav and show the post-setup passkey banner 2026-10-15 07:58:09 +00:00