Flows
Reset password
A forgotten password, from the link on the sign-in page to a new password, in the chosen sign-in layout. The new password is checked as it is typed: pick Set a new password · try it in the list of screens and type one.
Press the buttons and links on a screen to follow the flow. Nothing is sent or saved here.
The screens follow ForgotPassword.tsx and RestorePassword.tsx. The two halves are the app's since 2026-10-07 (ADR-0041). Proposed beyond the app: the strength bar, and every password rule except the length, which is all the API checks today (item 6 of App changes). Screens marked Design only are on the design boards but not in the app.
The password rules
A new password must meet every rule. The strength bar only informs: one point for each of the first four rules and one more for 12 characters or longer. Up to 2 points is Weak, 3 Fair, 4 Good, 5 Strong.
| Rule | Checked today | In this design |
|---|---|---|
| 8 to 72 characters | By the API and the browser, on every new password. Counted in bytes, so some symbols count as more than one. | The same |
| A number | Only when an admin creates a staff user | Every new password |
| An upper-case and a lower-case letter | Not checked | Every new password |
| A symbol, such as - ! or # | Not checked | Every new password |
| Both passwords match | By the browser | The same |
Behind the screens
- "Check your email" says the same for every email. It never confirms that an account exists.
- A reset link works once, for 30 minutes. A new link replaces the one before.
- A new password ends every session of the account. Nobody is signed in by the reset: the user signs in with the new password.
Not built yet
- No email is sent. The PoC has no email provider: the reset link is written to the server's log, and a developer passes it on.
- The four new rules and the strength bar. Proposed in item 6 of App changes.
- Too many requests and the minute between sends. On the design boards only.