Rate limiting policy was discussed and implemented in: #648, #703, #713, #839
This meta issue is meant to gather all requirements for making rate limiting policy really useful in the next release.
Liquid templating the keys
Defined by #713 and implemented by #719
Use JWT object for rate limiting
Defined by #713, implemented by #718
Allow dynamic reloading of configuration
Discussed in #667, being implemented in #703 and #758.
Apply rate limit to just a subset of requests
The use case is: applying different rate limit to POST and GET requests.
First option is using #744 to apply different rate limiting policies to different endpoints.
The alternative is we allow setting the policy limit by Liquid too. That could allow following definitions:
{% if request == 'GET' %}50{% else %}10{% endif %}
However, this approach can be very error prone and not really intuitive.
Another alternative would be to define "values" for the rate limiting keys. For example the rate limit key {{ request.method }} could have several values: POST: 50, GET: 10.
This can be error prone too and easy to miss some values.
Implemented in #839
Rate limiting policy was discussed and implemented in: #648, #703, #713, #839
This meta issue is meant to gather all requirements for making rate limiting policy really useful in the next release.
Liquid templating the keys
Defined by #713 and implemented by #719
Use JWT object for rate limiting
Defined by #713, implemented by #718
Allow dynamic reloading of configuration
Discussed in #667, being implemented in #703 and #758.
Apply rate limit to just a subset of requests
The use case is: applying different rate limit to POST and GET requests.
First option is using #744 to apply different rate limiting policies to different endpoints.
The alternative is we allow setting the policy limit by Liquid too. That could allow following definitions:
{% if request == 'GET' %}50{% else %}10{% endif %}However, this approach can be very error prone and not really intuitive.
Another alternative would be to define "values" for the rate limiting keys. For example the rate limit key
{{ request.method }}could have several values:POST: 50,GET: 10.This can be error prone too and easy to miss some values.
Implemented in #839