Skip to content

Commit a2abb8c

Browse files
committed
docs(spec): anchor the request-scoped label cache by its full path
Claude-Session: https://claude.ai/code/session_01Sfe5YjBLwB9J3y8fvm2xq1 Co-authored-by: Claude <noreply@anthropic.com>
1 parent e2e0121 commit a2abb8c

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

‎packages/spec/liveness/analytics_cube.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
"refreshKey": {
127127
"status": "dead",
128128
"verifiedAt": "2026-09-29",
129-
"note": "REMOVED 2026-09-29 (ADR-0049 enforce-or-remove; maintainer ruling on #20637, letter C: retire whole, build no cache) — tombstoned at the schema (retiredKey carries the prescription; authoring it is a tsc error and a parse error) and stripped from sources and stored rows by the protocol-18 conversion `cube-refresh-key-removed` (the D3 entry `cube-refresh-key-retired`). The entry stays because retiredKey keeps the key in the walked shape (the rls.priority precedent). ⚠️ It is a LEAF now: the two rows that were drilled under it — `every` and `sql`, both `dead`, verified 2026-09-17 — left with the subtree, because the gate refuses `children` on a property that is not a container (the connector `health` precedent). Their verdicts are carried here, one reason for both: nothing read the block, and there was nothing for it to key on. Re-measured 2026-09-29 at 0be898499f: `git grep refreshKey` over the non-test sources of packages/services, packages/drivers and packages/rest answers 0 lines (4 for the neighbouring `.public` in the same pathspec); packages/services/service-analytics/src references no ICacheService or IJobService, and its one cache is the request-scoped dimension-labels.ts#withLabelFetchCache — no analytics result is cached, so every query is computed when it is asked. The one author, examples/app-showcase (`every: '1 hour'`), no longer writes it. A refresh cadence is declared again when a result cache exists. The tombstone is packages/spec/src/data/analytics.zod.ts#CubeSchema."
129+
"note": "REMOVED 2026-09-29 (ADR-0049 enforce-or-remove; maintainer ruling on #20637, letter C: retire whole, build no cache) — tombstoned at the schema (retiredKey carries the prescription; authoring it is a tsc error and a parse error) and stripped from sources and stored rows by the protocol-18 conversion `cube-refresh-key-removed` (the D3 entry `cube-refresh-key-retired`). The entry stays because retiredKey keeps the key in the walked shape (the rls.priority precedent). ⚠️ It is a LEAF now: the two rows that were drilled under it — `every` and `sql`, both `dead`, verified 2026-09-17 — left with the subtree, because the gate refuses `children` on a property that is not a container (the connector `health` precedent). Their verdicts are carried here, one reason for both: nothing read the block, and there was nothing for it to key on. Re-measured 2026-09-29 at 0be898499f: `git grep refreshKey` over the non-test sources of packages/services, packages/drivers and packages/rest answers 0 lines (4 for the neighbouring `.public` in the same pathspec); packages/services/service-analytics/src references no ICacheService or IJobService, and its one cache is the request-scoped packages/services/service-analytics/src/dimension-labels.ts#withLabelFetchCache — no analytics result is cached, so every query is computed when it is asked. The one author, examples/app-showcase (`every: '1 hour'`), no longer writes it. A refresh cadence is declared again when a result cache exists. The tombstone is packages/spec/src/data/analytics.zod.ts#CubeSchema."
130130
},
131131
"public": {
132132
"status": "live",

‎packages/spec/src/data/analytics.zod.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,8 +424,8 @@ export const CubeJoinSchema = lazySchema(() => strictObject(
424424
* surfaces, the migration notes and one author (`examples/app-showcase`,
425425
* `every: '1 hour'`). And nothing for it to key on: `service-analytics`
426426
* references no cache or job service — its one cache is the request-scoped
427-
* `dimension-labels.ts#withLabelFetchCache` — so every analytics query is
428-
* computed when it is asked. `sql` was security-adjacent as well: raw SQL run on
427+
* `packages/services/service-analytics/src/dimension-labels.ts#withLabelFetchCache`
428+
* — so every analytics query is computed when it is asked. `sql` was security-adjacent as well: raw SQL run on
429429
* a schedule, outside the read-scope machinery every other cube `sql` goes
430430
* through.
431431
*

0 commit comments

Comments
 (0)