golfgame/server
adlee-was-taken 6461a7f0c7 Add metered open signups, per-IP limits, and auth security hardening
Enables public beta signup metering: DAILY_OPEN_SIGNUPS env var controls
how many users can register without an invite code per day (0=disabled,
-1=unlimited, N=daily cap). Invite codes always bypass the limit.

Also adds per-IP signup throttling (DAILY_SIGNUPS_PER_IP, default 3/day)
and fail-closed rate limiting on auth endpoints when Redis is down.

Client dynamically fetches /api/auth/signup-info to show invite field
as optional with remaining slots when open signups are enabled.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:28:28 -05:00
..
middleware Add metered open signups, per-IP limits, and auth security hardening 2026-02-24 14:28:28 -05:00
models Tune knock-early thresholds and fix failing test suite 2026-02-14 09:56:59 -05:00
routers Add metered open signups, per-IP limits, and auth security hardening 2026-02-24 14:28:28 -05:00
scripts Huge v2 uplift, now deployable with real user management and tooling! 2026-01-27 11:32:15 -05:00
services Add metered open signups, per-IP limits, and auth security hardening 2026-02-24 14:28:28 -05:00
stores v3.1.0: Invite-gated auth, Glicko-2 ratings, matchmaking queue 2026-02-21 20:02:10 -05:00
tests Tune knock-early thresholds and fix failing test suite 2026-02-14 09:56:59 -05:00
.env.example Add per-module log level overrides for staging/production 2026-02-23 17:12:11 -05:00
ai.py Fix draw-swap animation race and smarter CPU go-out decisions 2026-02-23 20:57:59 -05:00
auth.py Numerous WebUI animations, improvements, AI fixes, opporitunity cost-based decision logic, etc. 2026-01-25 17:37:01 -05:00
config.py Add metered open signups, per-IP limits, and auth security hardening 2026-02-24 14:28:28 -05:00
constants.py Additional house rules to accomodate more common game variants. 2026-01-26 20:13:30 -05:00
game_analyzer.py Add PostgreSQL game logging system 2026-02-14 08:42:49 -05:00
game.py Standard-rules-only leaderboard with client unranked indicators 2026-02-14 11:16:45 -05:00
handlers.py Make CPU turn chain fire-and-forget so end game is instant 2026-02-22 17:26:58 -05:00
logging_config.py Add per-module log level overrides for staging/production 2026-02-23 17:12:11 -05:00
main.py Add metered open signups, per-IP limits, and auth security hardening 2026-02-24 14:28:28 -05:00
requirements.txt v3.0.0: V3 features, server refactoring, and documentation overhaul 2026-02-14 10:03:45 -05:00
room.py Cancel CPU turns immediately when host ends game 2026-02-22 17:21:22 -05:00
RULES.md Early Knock house rule and improved error handling. 2026-01-26 22:23:12 -05:00
score_analysis.py Additional flip on discard variant - endgame and updated rules.md and new rules page. 2026-01-26 01:01:08 -05:00
score_distribution.png Numerous WebUI animations, improvements, AI fixes, opporitunity cost-based decision logic, etc. 2026-01-25 17:37:01 -05:00
simulate.py Fix AI swapping high cards into unknown positions 2026-02-14 08:28:10 -05:00
test_ai_decisions.py Tune knock-early thresholds and fix failing test suite 2026-02-14 09:56:59 -05:00
test_analyzer.py Numerous WebUI animations, improvements, AI fixes, opporitunity cost-based decision logic, etc. 2026-01-25 17:37:01 -05:00
test_auth.py Numerous WebUI animations, improvements, AI fixes, opporitunity cost-based decision logic, etc. 2026-01-25 17:37:01 -05:00
test_game.py v3.0.0: V3 features, server refactoring, and documentation overhaul 2026-02-14 10:03:45 -05:00
test_handlers.py v3.0.0: V3 features, server refactoring, and documentation overhaul 2026-02-14 10:03:45 -05:00
test_house_rules.py Tune knock-early thresholds and fix failing test suite 2026-02-14 09:56:59 -05:00
test_maya_bug.py Numerous WebUI animations, improvements, AI fixes, opporitunity cost-based decision logic, etc. 2026-01-25 17:37:01 -05:00
test_room.py v3.0.0: V3 features, server refactoring, and documentation overhaul 2026-02-14 10:03:45 -05:00
test_v3_features.py v3.0.0: V3 features, server refactoring, and documentation overhaul 2026-02-14 10:03:45 -05:00