DataSync service limits

DataSync service limits. Requests that exceed a limit are rejected with a 400 Bad Request unless noted otherwise.

Pagination​

LimitValue
Page size (limit)1 to 100
Default page size20
Pagination directionForward only

Identifiers​

LimitValue
id length1 to 255 characters
id forbidden charactersWhitespace, commas, colons, asterisks, forward slashes, backslashes, control characters
status length1 to 100 characters

Classes​

LimitValue
Class name length1 to 128 characters
Class name allowed charactersMust start with a letter; may contain letters, digits, hyphens, underscores
Projections per class3, including __default__
Projection name length1 to 64 characters
Projection name allowed characters^[a-zA-Z0-9][a-zA-Z0-9_-]*$; __default__ is the only exception

Filtering​

LimitValue
filter_fast predicate count10 by default, configurable per keyset
filter predicate countNo predicate limit is enforced

Time-to-live (TTL)​

LimitValue
Minimum TTL (config.ttlSec)0
Maximum TTL (config.ttlSec)315,569,260 seconds (approximately 10 years)
Default entity class TTL2,678,400 seconds (31 days)
Global User and Channel class TTL2,592,000 seconds (30 days)
Never-expire optionNot available

TTL expiry behavior​

  • expiresAt is computed once, at creation, as creation time plus class TTL, rounded up to the start of the next whole UTC day.
  • Updating an instance does not extend or refresh expiresAt.
  • There is no per-instance TTL override.
  • A relationship expires at the earlier of its two linked entities' expiry times.
  • The filter (eventually consistent) tier can briefly return objects whose expiresAt has passed. Check expiresAt on results from that tier.

Property definitions​

LimitValue
Reserved property namesid, createdAt, updatedAt. status is reserved except for the exact declaration {"name": "status", "path": "/status"}

Partial updates​

A PATCH operation can only address these paths:

  • /status
  • /entityClassVersion (or /relationshipClassVersion for relationships and memberships)
  • /payload or anything beneath it

Any other pointer returns a 400 Bad Request. The test operation is the exception and can target any pointer without modifying the document.

Was this page useful?

Last updated on