Summary
Improve the Settings area of the Authsome dashboard by adding structured sub-settings: version info, team management, and password change — instead of the current minimal two-card layout.
Current state
Route: /settings → ui/src/app/(authenticated)/settings/page.tsx
Implementation: Renders SettingsView from authsome-dashboard.tsx, which shows only:
- Account card: email, role, principal ID
- Daemon card: version string, encryption label
// ui/src/components/authsome-dashboard.tsx — SettingsView (~lines 1488–1514)
<SectionHeader description="Local daemon and account context." title="Settings" />
// Two static KeyValue cards — no sub-navigation, no actions
Related but elsewhere:
- Principals / team:
/principal (admin-only nav item) — separate from Settings
- Password / account auth: hosted mode uses
HostedAccountService + UI session JWT (src/authsome/server/routes/ui.py) — login/register flows exist at /login but no in-app password change
- Version: shown inline in Daemon card; no dedicated about/version page
Proposed work
Restructure Settings as a hub with sub-pages or tabs:
| Sub-setting |
Content |
| General / Account |
Email, role, principal ID (current Account card) |
| Version / About |
Daemon version, build info, links to docs/changelog |
| Team management |
Invite/manage principals or team members (may consolidate or link to /principal) |
| Password & security |
Change password (hosted accounts), session management |
Design considerations
CONTEXT.md notes authsome is single-tenant — "team" may mean principal membership / identity claims, not multi-org. Align copy and scope with domain model (Principal, IdentityClaimRecord).
- Admin-only sections (team-wide principal management) should respect
data.account.isAdmin.
- Match visual patterns from
ui/DESIGN.md and consistency work tracked separately.
Relevant files
ui/src/components/authsome-dashboard.tsx — SettingsView, NAV_ITEMS
ui/src/app/(authenticated)/settings/page.tsx
ui/src/lib/authsome-api.ts — dashboard/account API types
src/authsome/server/routes/ui.py — register, login, logout
src/authsome/server/hosted_account.py (if exists) — password operations
Acceptance criteria
- Settings has clear sub-navigation (tabs or nested routes under
/settings/*).
- Version/about information is accessible in a dedicated sub-section.
- Hosted users can change password from the UI (API + form).
- Team/principal management is reachable from Settings (inline or linked) with correct role gating.
Summary
Improve the Settings area of the Authsome dashboard by adding structured sub-settings: version info, team management, and password change — instead of the current minimal two-card layout.
Current state
Route:
/settings→ui/src/app/(authenticated)/settings/page.tsxImplementation: Renders
SettingsViewfromauthsome-dashboard.tsx, which shows only:Related but elsewhere:
/principal(admin-only nav item) — separate from SettingsHostedAccountService+ UI session JWT (src/authsome/server/routes/ui.py) — login/register flows exist at/loginbut no in-app password changeProposed work
Restructure Settings as a hub with sub-pages or tabs:
/principal)Design considerations
CONTEXT.mdnotes authsome is single-tenant — "team" may mean principal membership / identity claims, not multi-org. Align copy and scope with domain model (Principal, IdentityClaimRecord).data.account.isAdmin.ui/DESIGN.mdand consistency work tracked separately.Relevant files
ui/src/components/authsome-dashboard.tsx—SettingsView,NAV_ITEMSui/src/app/(authenticated)/settings/page.tsxui/src/lib/authsome-api.ts— dashboard/account API typessrc/authsome/server/routes/ui.py— register, login, logoutsrc/authsome/server/hosted_account.py(if exists) — password operationsAcceptance criteria
/settings/*).