Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: a182d9895fbc8e9709c71c4e4361f1ba83afec23 https://github.com/dreamwidth/dreamwidth/commit/a182d9895fbc8e9709c71c4e4361f1ba83afec23 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-12 (Thu, 12 Feb 2026)
Changed paths: M .github/workflows/ci.yml M app.psgi M cgi-bin/Apache/LiveJournal.pm A cgi-bin/DW/API/RateLimit.pm M cgi-bin/DW/Controller/API/REST.pm M cgi-bin/DW/Controller/API/REST/Journals.pm A cgi-bin/DW/RateLimit.pm M cgi-bin/LJ/Console/Command/Suspend.pm M cgi-bin/LJ/Test.pm A cgi-bin/Plack/Middleware/DW/RateLimit.pm M doc/dependencies-cpanm M doc/raw/memcache-keys.txt M etc/config.pl.example A t/rate-limit.t
Log Message:
Rate Limiting (#3490)
Add basic rate limiting module
Add configuration overrides
This enables rate limits to be overridden.
Add API rate limit basics
Update Apache rate limiting to use new DW::RateLimit API
Move rate limiting after start_request() so get_remote() works, switch to rate-string API and check() method. Also restore approvenew setting lost during rebase.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- Add Plack rate limiting middleware
Port rate limiting from Apache::LiveJournal to a Plack middleware so it works under Starman. Same rates: 100/60s authenticated, 30/60s anonymous. Wired in after DW::Sysban in app.psgi.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- Fix tidy formatting in rate limiting code
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- Add rate limit tests to CI workflow
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- Add CPAN dependency install step to CI workflow
The devcontainer image bakes dependencies at build time, so new deps added in a PR aren't available until the image rebuilds. Running cpm install from the checked-out dependencies-cpanm ensures CI always has the right modules for the code under test.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com