What this context does
Authenticates users into TalkIDE and owns their per-account preferences (locale, sound, salutation, profile). Every other UC depends on a valid JWT issued here.
Scope boundary
- Owns:
Userentity,passwordHash, locale, sound preferences, profile, JWT issuance. - Does not own: tenants (UC-02), invite tokens (UC-08003 planned), FUP / fatigue state (UC-08002 planned).
Main entities
USER (see model/README.md) — id, email, passwordHash,
name, locale, sound preference columns, timestamps.
Use cases
| UC | What it does |
|---|---|
| UC-01001 | Sign Up — register, auto-create owning Tenant, return tokens |
| UC-01002 | Login — email + password → access + refresh tokens |
| UC-01003 | Refresh Token — rotate access token |
| UC-01004 | Logout |
| UC-01005 | Forgotten Password — two-step reset |
| UC-01006 | My Profile — view + update profile + locale picker |
| UC-01007 | Sound Preferences — auto-saved toggles + master volume |
Component diagram
{/* Image missing: UC-01 User Management — Component View (../../assets/diagrams/uc01Components.svg) */}
Dependencies on other contexts
- UC-02 Tenant Management — Sign Up (UC-01001) creates a tenant with
ownerId = newUser.id. - All other UCs — every authenticated endpoint relies on the JWT issued here.
Cross-cutting
- Auto-save with optimistic update + rollback for preference toggles (see ADR-010).
salutationis the only profile field shared with Mara (consent-bound, see mara-context.md § Privacy principle).
Was this page helpful?
Thanks for the feedback.