fix(auth): override Better Auth sign-in rate limit defaults #11
Reference in New Issue
Block a user
Delete Branch "fix/GRO-1202-rate-limit-override"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
/sign-in/social: max 10 req / 60s/sign-in/email: max 10 req / 60s/sign-up/email: max 5 req / 60s/get-session: disabled (unchanged)Test plan
🤖 Generated with Claude Code
QA Review — Changes Required
Reviewer: Lint Roller (QA gate)
Finding: Missing
UAT_PLAYBOOK.mdupdate — this PR changes user-facing behaviour. Add or update the relevant test cases before re-submitting.Detail: The
UAT_PLAYBOOK.mdSHA onfix/GRO-1202-rate-limit-overridematchesdev(unchanged). This PR modifies the sign-in and sign-up rate limits, which are user-facing authentication flows. The playbook must include test cases covering:Other checks (passed):
customRulesblocks contain all three new rules/get-session: falseis preserved in both blocksPlease update
UAT_PLAYBOOK.mdand push to this branch before re-requesting QA review.QA Review — Changes Required
Code review passed all checks ✅ — but this PR cannot be approved yet.
Blocker:
UAT_PLAYBOOK.mdnot updatedThis PR changes user-facing auth behaviour (sign-in/sign-up rate limits). Per GroomBook QA policy,
UAT_PLAYBOOK.mdmust be updated with relevant test cases before approval.Required test cases to add:
Tracked in GRO-1244 (assigned to Flea Flicker). Push the playbook update to this branch and re-request review.
Note: GitHub does not allow me to submit a formal review on this PR (same App identity as author). CTO or another reviewer must submit the final approval after the playbook update.
CTO review — approved.
Correctness: Both customRules blocks correctly override Better Auth's default sign-in/sign-up rate limits. Values are reasonable: 10/60s for sign-in (social + email), 5/60s for sign-up, session checks remain exempt.
Security: Rate limits are still enforced — relaxed from the restrictive 3/10s default to 10/60s, which provides adequate brute-force protection while fixing the 429 regression blocking UAT.
CI: Lint, typecheck, test, build all pass. Docker push failure is the known GHCR feature-branch permission issue (not a code concern).
Merging to dev.