Alan Guo Xiang Tan
859d61003e
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? },
)
```
2024-12-23 09:57:18 +08:00
..
2023-01-09 12:10:19 +00:00
2024-10-17 17:02:02 +02:00
2024-11-08 12:05:03 -05:00
2024-05-27 18:06:14 +02:00
2024-12-16 12:50:08 +01:00
2022-04-28 11:51:03 +02:00
2023-12-06 13:16:10 +01:00
2024-09-06 13:28:33 +02:00
2024-12-19 10:10:11 +08:00
2023-12-06 23:25:00 +01:00
2023-10-11 14:36:54 -04:00
2024-12-16 11:16:17 +00:00
2024-05-27 18:06:14 +02:00
2023-02-20 06:20:47 +03:00
2023-09-06 02:14:57 +02:00
2024-11-06 06:27:49 +08:00
2024-07-03 20:49:15 +08:00
2024-11-27 10:48:47 +01:00
2024-10-18 11:43:45 -03:00
2024-12-09 13:07:59 +03:00
2024-08-12 10:41:13 +02:00
2023-12-06 23:25:00 +01:00
2023-12-15 23:46:04 +08:00
2024-05-27 18:06:14 +02:00
2024-12-23 09:57:18 +08:00
2024-10-16 10:09:07 +08:00
2024-12-04 12:25:03 +11:00
2024-12-23 09:57:18 +08:00
2024-11-19 20:45:18 +00:00
2023-01-09 12:10:19 +00:00
2024-12-23 09:57:18 +08:00
2024-12-05 15:41:13 +10:00
2024-12-20 11:50:00 +11:00
2024-03-14 14:40:46 -03:00
2024-01-30 10:32:42 +00:00
2024-09-09 08:55:42 -05:00
2024-12-18 09:59:40 +01:00
2024-12-18 12:48:50 +08:00
2024-06-19 16:01:24 +10:00
2024-10-16 10:09:07 +08:00
2024-12-13 09:36:51 +08:00
2024-04-25 16:39:22 +03:00
2024-08-22 12:09:56 +01:00
2024-01-10 13:33:30 +05:30
2024-07-05 09:29:32 +08:00
2024-12-19 18:22:33 -08:00
2024-07-29 14:07:06 +08:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-07-24 09:37:18 +08:00
2023-05-25 14:53:59 +02:00
2024-05-27 18:06:14 +02:00
2024-06-27 10:27:49 +10:00
2024-08-06 14:11:48 +01:00
2020-04-30 16:48:53 +10:00
2024-07-18 10:10:22 +10:00
2024-11-06 06:27:49 +08:00
2023-01-05 08:43:58 +10:00
2024-02-29 09:03:49 +10:00
2024-08-26 09:17:39 +10:00
2024-08-26 09:17:39 +10:00
2023-01-09 12:10:19 +00:00
2024-07-30 09:08:12 +02:00
2023-01-09 12:10:19 +00:00
2024-02-13 10:18:36 -05:00
2023-12-15 23:46:04 +08:00
2023-02-01 09:55:21 +00:00
2023-01-09 12:10:19 +00:00
2024-05-27 18:06:14 +02:00
2024-05-27 18:06:14 +02:00
2023-06-07 21:31:20 +03:00
2023-02-21 10:30:48 +01:00
2024-09-06 13:28:33 +02:00
2024-10-18 09:45:08 +04:00
2024-11-06 13:35:07 -05:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-12-11 18:53:17 -05:00
2024-05-27 18:06:14 +02:00
2024-03-20 14:02:12 +00:00
2023-12-15 23:46:04 +08:00
2021-06-14 20:34:44 +05:30
2024-11-30 16:30:30 +01:00
2023-08-02 18:44:19 -03:00
2024-02-25 10:42:50 +05:30
2024-07-30 11:33:20 +08:00
2024-09-03 10:51:07 +01:00
2024-12-09 11:11:03 +08:00
2024-12-19 18:22:33 -08:00
2023-06-16 12:44:35 +10:00
2023-01-09 12:10:19 +00:00
2024-10-16 10:09:07 +08:00
2024-11-27 09:40:55 +10:00
2024-02-12 16:27:24 -05:00
2024-12-10 12:44:56 +08:00
2024-10-24 12:11:40 +02:00
2024-02-21 14:19:04 -06:00
2022-04-05 19:29:58 +02:00
2023-03-01 08:58:32 +11:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-20 12:52:49 -06:00
2024-07-30 00:27:41 +03:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-09-03 10:51:07 +01:00
2024-05-27 18:06:14 +02:00
2023-01-09 12:10:19 +00:00
2024-12-12 09:09:49 +01:00
2024-08-30 10:25:04 +10:00
2023-01-09 12:10:19 +00:00
2022-01-21 17:54:18 +02:00
2024-05-09 15:11:56 +08:00
2023-01-09 12:10:19 +00:00
2024-07-24 04:45:30 +05:30
2021-11-11 12:21:25 -06:00
2024-07-18 10:10:22 +10:00
2023-01-09 12:10:19 +00:00
2023-08-02 10:46:37 +08:00
2023-06-26 10:09:57 +05:30
2023-01-25 18:55:01 +02:00
2024-07-05 10:36:13 +08:00
2023-01-20 12:52:49 -06:00
2023-05-31 19:32:06 +05:30
2024-12-19 13:13:18 -03:00
2024-09-03 12:08:14 +02:00
2024-11-06 06:27:49 +08:00
2024-07-04 10:58:21 +02:00
2024-06-21 11:24:11 -04:00
2024-08-30 11:06:07 +02:00
2023-01-20 12:52:49 -06:00
2024-11-06 06:27:49 +08:00
2023-01-09 12:10:19 +00:00
2024-06-11 14:02:46 +02:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-03-22 10:19:59 +10:00
2024-11-06 06:27:49 +08:00
2023-01-09 12:10:19 +00:00
2024-07-08 16:55:59 +08:00
2023-01-09 12:10:19 +00:00
2024-03-14 10:55:01 +08:00
2023-01-09 12:10:19 +00:00
2024-11-28 18:25:48 +02:00
2024-08-08 12:20:16 +08:00
2024-09-11 10:14:53 +03:00
2023-01-25 18:55:33 +02:00
2024-05-27 18:06:14 +02:00
2024-05-27 18:06:14 +02:00
2023-01-09 12:10:19 +00:00
2023-11-09 13:39:18 +11:00
2024-11-06 06:27:49 +08:00
2023-01-09 12:10:19 +00:00
2023-04-11 10:16:28 +01:00
2023-04-05 17:00:05 +01:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-11-06 06:27:49 +08:00
2024-06-05 14:58:02 +02:00
2023-11-29 11:44:09 +00:00
2024-11-27 17:23:57 +08:00
2024-08-14 12:13:46 +10:00
2023-01-09 12:10:19 +00:00
2024-08-14 12:13:46 +10:00
2024-07-31 12:45:00 +10:00
2024-12-04 14:46:52 +11:00
2024-03-27 08:57:43 -04:00
2023-01-09 12:10:19 +00:00
2024-11-06 09:28:28 -03:00
2024-10-16 10:09:07 +08:00
2024-11-06 06:27:49 +08:00
2024-10-16 10:26:10 -05:00
2023-08-10 02:03:38 +02:00
2023-11-09 13:39:06 +11:00
2023-01-09 12:10:19 +00:00
2023-06-16 12:44:35 +10:00
2024-05-13 14:37:17 +03:00
2023-01-20 12:52:49 -06:00
2023-12-04 11:36:42 +10:00
2023-01-09 12:10:19 +00:00
2024-10-16 10:09:07 +08:00
2024-06-08 21:24:39 +02:00
2023-09-04 16:09:52 +10:00
2024-11-07 11:06:39 +10:00
2024-11-08 13:04:52 +08:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-10-16 10:09:07 +08:00
2023-12-06 23:25:00 +01:00
2024-02-20 11:19:22 +10:00
2024-10-25 14:48:34 +02:00
2024-01-22 12:10:29 +01:00
2024-07-11 14:17:18 +08:00
2024-06-13 14:24:44 +08:00
2024-06-03 12:51:12 +08:00
2023-07-17 10:14:17 +10:00
2024-11-05 16:04:24 +11:00
2023-01-09 12:10:19 +00:00
2024-07-18 10:33:14 +10:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-10-21 18:18:42 +02:00
2024-10-10 10:03:26 -05:00
2024-12-03 10:28:39 +08:00
2023-06-07 22:51:24 +03:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-10-16 10:09:07 +08:00
2024-12-16 17:31:49 +00:00
2023-11-16 07:11:35 +08:00
2023-01-09 12:10:19 +00:00
2024-06-20 11:33:46 -04:00
2024-04-25 16:39:22 +03:00
2024-04-30 16:45:07 +08:00
2024-05-27 18:06:14 +02:00
2024-05-27 18:06:14 +02:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-09-03 12:08:14 +02:00
2023-01-09 12:10:19 +00:00
2023-01-09 12:10:19 +00:00
2024-07-16 10:30:04 +08:00
2024-12-17 16:39:07 +11:00
2023-03-02 13:05:45 -03:00
2024-05-27 18:06:14 +02:00
2024-04-10 12:02:44 +10:00
2024-12-03 13:43:27 +11:00
2024-06-11 09:36:54 +10:00
2024-08-07 16:37:00 +08:00
2023-10-16 10:34:38 -04:00
2023-03-01 15:35:21 +11:00
2024-03-07 18:35:46 +00:00
2023-07-03 19:53:12 -03:00
2020-07-21 15:55:03 +08:00
2023-01-09 12:10:19 +00:00
2024-10-16 10:09:07 +08:00
2023-01-09 12:10:19 +00:00
2024-05-04 22:48:16 +02:00
2023-06-06 15:47:40 +10:00
2024-11-25 11:12:00 +03:00
2024-04-30 16:45:07 +08:00
2023-07-03 10:18:37 +10:00
2023-01-09 12:10:19 +00:00
2023-12-04 13:45:19 +01:00
2023-01-09 12:10:19 +00:00
2024-12-19 13:22:05 -03:00
2024-05-27 18:06:14 +02:00
2024-02-07 13:47:50 -06:00
2023-10-19 14:37:37 -03:00