Exempt admins and super viewers from auth rate limits
CI / checks (push) Successful in 5m40s

This commit is contained in:
2026-10-12 22:01:03 -04:00
parent 0a98ea319c
commit 95160de5b4
3 changed files with 127 additions and 10 deletions
+13 -8
View File
@@ -83,15 +83,20 @@ Changing a password, changing a role, disabling an account, or revoking that
user's sessions invalidates their existing sessions. Live event streams check
revocation every 15 seconds and then close.
Login, initial setup and password verification are rate-limited with persistent
15-minute windows. The database stores audit entries for login results, account
changes and successful management requests without recording passwords, tokens
or request bodies. Administrators and Super Viewers can review recent entries in Users.
Login and password changes for enabled Administrators and Super Viewers are exempt
from per-account and per-address rate limits, including existing exhausted windows.
Their attempts do not consume either limit. Other accounts and initial setup use
persistent 15-minute windows. Exemptions use the account's current database role;
password verification is still required. The database stores audit entries for login
results, account changes and successful management requests without recording
passwords, tokens or request bodies. Administrators and Super Viewers can review
recent entries in Users.
The password service runs at most two scrypt operations at once and queues up to
16 more for up to two seconds. If that queue fills or the wait expires, the
request returns HTTP 429 with `Retry-After: 2`. The persistent rate limits still
return `Retry-After: 900` when an account or address reaches its attempt limit.
For every role, the password service runs at most two scrypt operations at once
and queues up to 16 more for up to two seconds. If that queue fills or the wait
expires, the request returns HTTP 429 with `Retry-After: 2`. The persistent rate
limits return `Retry-After: 900` when a non-exempt account or address reaches its
attempt limit.
An administrator can reset another user's password from Users. If the only
administrator forgets their password, an operator with local controller/container