Skip to main content

Interface: ActivityDigestRequest

Defined in: packages/sdk/src/types/generated/activity_feed.ts:244

"What were those, exactly?" — asked for the lines already on screen.

Each entry of lines is one aggregate line's own server-issued drill, POSTed back verbatim. Only the parts that identify the slice are read — window, scope, eventTypes, subject — and grain, groupBy, cursor and pageSize are ignored, because the digest is a GROUP BY over that slice rather than a page of it. Handing the drill back is what guarantees a digest describes the same rows the count above it counted: there is no second expression of the slice to drift.

The response is positional with this list, so a client maps groups back to lines without inventing a key.

What a request costs is bounded twice. Each line's aggregation takes at most :data:~lib.db.activities.feed.DIGEST_SCAN_BOUND rows, and all the lines together at most :data:~lib.db.activities.feed.DIGEST_REQUEST_BUDGET — because the lines are read one after another (one session, one query at a time), so a per-line bound alone would be a per-request cost of len(lines) times itself. Lines that name the same slice are computed once and answered from the first, which is the ordinary case on a page whose regions repeat a bucket; lines reached after the budget is spent come back complete=False, the same answer a line that filled its own bound gives.

Properties

lines

lines: ActivityFeedQueryRequest[]

Defined in: packages/sdk/src/types/generated/activity_feed.ts:246

Min Items

1