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