Request limits configuration
[request_limits]
[request_limits]
timeout = "30s"
max_body = "64 MiB"
max_header_section = "32 KiB"
max_json_values = 4000000
max_entity_json_values = 1000000
max_geometry_positions = 1000000
max_attribute_nesting = 32
max_q_comparisons = 1000
max_q_nesting = 16
max_page_body = "64 MiB"
The longest one request may run. A request whose body is still arriving then is answered 408 RequestTimeout, and any other request still running is answered 500 InternalError.
The largest request body the broker accepts, counted after decompression. A larger body is answered 413.
The largest request header section the broker accepts, on HTTP/1.1, HTTP/2 and HTTP/3 alike. Every field, the method, target and authority included, costs its name, its value and 32 bytes. A request over it is answered a bare 431. The management listener applies the same limit.
The most JSON values one request body may hold, counted before it is parsed. Every object, array, string, number, boolean and null counts once, so the count follows the cost of processing the body rather than its bytes. A body over it is answered 413.
The most JSON values one entity may hold outside its geometries and JSON literals, counted on the expanded document and on the entity a write stores, so several writes cannot grow one entity past it. A write over it is answered 413. After the limit is lowered, an entity already over it can still be shrunk or rewritten at its size, but not grown.
The most positions one geometry may hold, in a written entity and in a query, subscription or registration geometry. A written geometry over it is answered 413, a query's 403 TooComplexQuery.
The deepest one written attribute may nest: each sub-attribute, each JSON object or list of a value, and each object or array inside a JSON literal is one level. An attribute nesting deeper is answered 400 BadRequestData. It is also the depth a q or orderBy path may walk. It may be raised to the deepest every stored value reads back at.
The most comparisons one q filter may make, in an entity or temporal query, a delete by query, or a subscription. Each Query Term is one comparison, and a value list such as a==1,2,3 one per value. A filter over it is answered 403 TooComplexQuery. A stored subscription is not checked again after the limit is lowered.
How deep the ; and | combinations of one q filter may nest, in an entity or temporal query, a delete by query, or a subscription: a;b nests one level, a;(b|c) and a|b;c two, and parentheses around a single Query Term add none. A filter nesting deeper is answered 403 TooComplexQuery. It may be raised to the deepest parentheses are parsed at; parentheses written deeper are refused whatever this holds.
The largest body one page of a collection may render to, before any compression. A page that renders to more is answered 403 TooManyResults naming the size and the ceiling, and none of it is sent; the client asks for a smaller limit and follows the next page pointer.