Chelabase
Data API

Limits

Request and response limits, and the known limits of the data API.

Request limits

LimitValue
Request body1 MiB (413 too_large)
Response16 MiB by default (CHELABASE_REST_MAX_RESPONSE_BYTES on rest). Each operation's result is counted as it arrives; the first one past the cap rolls the request back and answers 413 too_large.
Operations per batch50
Alias ({"col", "as"})1 to 63 bytes
Database name ("database")1 to 63 bytes
RowsThe branch's max_rows setting
Gateway key lookups that miss the cache20 per second per client IP address (429 rate_limited)
Databases a key may list20
Databases served per branchCHELABASE_BRANCH_DATA_API_DATABASE_CAP (default 10)

Known limits

  • Default privileges cover only objects the owner role (postgres) creates. Objects created by any other role (a role you made, or a superuser) get no default grants; grant on them yourself.
  • Settings and schema changes take up to 60 seconds to take effect (the connection-info cache lifetime). A disable, a default_schema change and a narrowed allow-list are pushed to rest at once.
  • One database per request: a request (a batch included) runs in one database. To join data, keep it in one database under several schemas.
  • Revocation lag: up to 30 seconds per gateway instance.
  • IPv6 rate limiting: the limiter groups IPv6 clients by /64 prefix. A load balancer in front collapses all clients into one address unless it is listed in CHELABASE_GATEWAY_TRUSTED_PROXIES (see Hosts).
  • Limiter size: it remembers at most 100,000 addresses (idle ones are forgotten after 60 seconds). Past that it evicts entries, and an evicted address starts again with a full allowance.

On this page