mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: API to register custom request rate limiting conditions (#30239)
This commit adds the `add_request_rate_limiter` plugin API which allows plugins to add custom rate limiters on top of the default rate limiters which requests by a user's id or the request's IP address.
Example to add a rate limiter that rate limits all requests from Googlebot under the same rate limit bucket:
```
add_request_rate_limiter(
identifier: :country,
key: ->(request) { "country/#{DiscourseIpInfo.get(request.ip)[:country]}" },
activate_when: ->(request) { DiscourseIpInfo.get(request.ip)[:country].present? },
)
```
This commit is contained in:
committed by
GitHub
parent
259f537d02
commit
859d61003e
@@ -45,6 +45,7 @@ Rails.autoloaders.each do |autoloader|
|
||||
"http" => "HTTP",
|
||||
"gc_stat_instrumenter" => "GCStatInstrumenter",
|
||||
"chat_sdk" => "ChatSDK",
|
||||
"ip" => "IP",
|
||||
)
|
||||
end
|
||||
Rails.autoloaders.main.ignore(
|
||||
|
||||
Reference in New Issue
Block a user