Skip to main content

Resolver pagination limits

Apply default pagination values and enforce page/window bounds at resolver/data-access boundaries.

Practices implemented

Applies to

  • GraphQL servers
  • Gateways with resolver plugins

Configuration (suggested defaults)

ParameterDefaultNotes
defaultPageSize20Applied if absent in resolver args.
maxPageSize100Upper bound for page-size arguments.
maxPaginationWindow1000Upper bound for overall window arguments.
enforcementclampOne of: clamp, reject, warn.

Implementation notes

  • Enforce before database/downstream calls.
  • Centralize in shared resolver wrappers or data-access layer.
  • Emit warnings/metrics when clamping occurs.
  • clamp: coerce out-of-bounds values to configured limits.
  • reject: return an explicit client error when values exceed limits.
  • warn: allow request but emit warnings/metrics for visibility.

Cautions

  • Silent clamping can surprise clients; document behavior clearly.
  • Inconsistent wrappers across services can cause drift.

Problems addressed