Skip to content

Rate Limiting policy #760

@mikz

Description

@mikz

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
  • Use JWT object for rate limiting
  • Apply rate limit to just a subset of requests
  • Allow dynamic reloading of configuration

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions