Datastore used for storing rate limiting information.
A collection of rate limits.
If set to true, will respond with a 429 status code. Otherwise, defaults to
a response of 413 status code.
The 429 status code was proposed in
RFC-6585
and indicates that the user has sent too many
requests in a given amount of time ("rate limiting").
Name of datastore to use for storing rate limiting information.
If not specified, rate limiting will use the first distributed datastore available.
If no distributed data stores are available, rate limiting will revert to using a local
datastore.
Valid values are:
local/default
distributed/hash-ring (requires dist-datastore filter)
Defines limit to log a warning on size when an object is stored in to the datastore over this
limit. when this limit is reached, Repose will issue a warning message in the logs.
The limit default is 1000 count of cache keys per user (hash map as part of user key in dist
datastore).
Determines whether or not capture groups will be used to evalute limits
from uri-regex. Set to false will count all the requests with the uri-regex that has
the capture group towards the limit count specified. By default it is set to true.
For example, suppose the configuration specifies a regex of /v1/(.*) with value set to 100.
With use-capture-groups set to false, some requests come in with a URI of /v1/pan and other
requests come in with a URI of /v1/cake. Each user would be allowed 50 hits if the hits
are evenly divided among the two URIs: 50 hits for URI /v1/pan and 50 hits for URI /v1/cake.
Defines an endpoint with a matching regex to bind GET requests for
returning live rate limiting information.
If set to true, the rate limiting component
marks incoming requests that match the limit request endpoint's uri-regex
and then passes them down to the origin service. After the origin service
responds with the client's absolute limits, the rate limiting component
enhances the response with the combined absolute and current rate limits.
It then sends the response to the client.
A regular expression (regex) for the URI at which the user can query their limits.
Please refer to
Java
Regular Expression Api
for more information on regular expression syntax.
Defines a list of rate limits to apply globally (i.e., to every request without exception).
Defines a list of rate limits and the groups they are associated with
Groups are matched on the HTTP header: X-PP-Groups
User information is matched on the HTTP header: X-PP-User
Unique id to identify the limit group
Determines whether or not this list of rate limits should
be considered the default when group matching fails. This limit group
will be applied in either of these conditions:
no group is specified
no group matches the group or groups specified
The groups that the rate limits are associated with
Defines a single rate limit
A placeholder for a unique identifier which will be added to any object generated from this XSD.
Repose will automatically assign this value when the configuration file is read.
Human readable version of the matcher used to enforce this rate limit
The regex used to match a passing request to current limit group.
Within the regex, each capture group is allowed the number of hits specified
in the value attribute of the limit element.
List of HTTP Methods this rate limit will match on.
Valid values include:
GET, DELETE, POST, PUT, PATCH, HEAD, OPTIONS, CONNECT, TRACE, ALL
Number of requests allowed within the configured unit of time
Unit of time that limit enforcement should use.
List of query parameter names/keys that this rate limit will match on.