You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recording only — not claimed, no assignee. Found while working #14546 (SDK payload reads on the same page); out of scope there and deliberately left untouched by that PR.
Where
content/docs/api/data-api.mdx, the Callout type="info" under POST /analytics/query (lines 421-433 on origin/main @ 1f2a02ba0).
What it says
fields[] describes columns, not presentation. Each entry carries exactly name and type — that is the whole descriptor AnalyticsResultResponseSchema declares, and every strategy answering this endpoint emits those two keys and nothing else.
Display name and number format live one layer up, in the cube's metric/dimension definition ... Reading data.fields[i].label or data.fields[i].format off a query result yields undefined; a client that renders table headers or formats amounts reads them from the cube metadata instead.
Why it is false today
Both halves of the claim are contradicted by the tree it names:
packages/spec/src/contracts/analytics-service.ts — the AnalyticsResult interface declares the same members, each with the renderer chain it feeds (ADR-0053 currency, percent scale).
The wire half is measured, not argued: the client docblock on analytics.query cites packages/client/src/analytics-automation-json-erasure.test.ts measuring fields[].label on a real AnalyticsService, and packages/spec/src/api/analytics.test.ts binds AnalyticsResultResponse['data'] to AnalyticsResult at compile time, so the two cannot drift apart silently.
So a reader is told to ignore members the producer ships specifically for them, and to go fetch cube metadata instead — the opposite of what the ADR-0053 / percent-scale chains were built for.
History — the callout was true when it was written
#6369 (closed) wrote this callout at a time when the runtime really did emit { name, type } only. #13078 then moved the SCHEMA to the contract rather than the contract to the schema, which inverted the callout without touching the page. This is drift from a landed correction, not an original error.
Executable criterion
grep -n "percentScale\|currency\|label" packages/spec/src/api/analytics.zod.ts inside AnalyticsResultResponseSchema returns the four optional members; the callout says the descriptor is name + type "and nothing else". Positive control today: both statements are in the tree at the same time.
That card is one payload read per example, on three named sites; it is scoped and this is a different defect class (false prose about a descriptor). #14546 remains open on its own terms and this is not addressed by its PR.
Recording only — not claimed, no assignee. Found while working #14546 (SDK payload reads on the same page); out of scope there and deliberately left untouched by that PR.
Where
content/docs/api/data-api.mdx, theCallout type="info"underPOST /analytics/query(lines 421-433 onorigin/main@1f2a02ba0).What it says
Why it is false today
Both halves of the claim are contradicted by the tree it names:
packages/spec/src/api/analytics.zod.ts—AnalyticsResultResponseSchema.data.fields[]declaresname,type,label?,format?,currency?,percentScale?(andbuiltinAggregate?since analytics 契约:AnalyticsResult.fields[] 增加可选 builtinAggregate 鉴别字段,服务端内置聚合默认 label("Count" 等 5 处硬编码)不再以英文字面量出线(objectui#7258 裁 B 的生产者半边) #14492). Its own docblock states the change: "Twopackages/specroute response schemas declare adataNARROWER than the contract their route relays —AnalyticsResultResponseSchemaandTriggerFlowResponseSchema#13078 restored the parity: this schema used to declare onlyrows/fields{name,type}/sql?, a strict subset of what the route relays, while the wire really carriesfields[].label...format/currency/percentScale... andtotals."packages/spec/src/contracts/analytics-service.ts— theAnalyticsResultinterface declares the same members, each with the renderer chain it feeds (ADR-0053 currency, percent scale).analytics.querycitespackages/client/src/analytics-automation-json-erasure.test.tsmeasuringfields[].labelon a realAnalyticsService, andpackages/spec/src/api/analytics.test.tsbindsAnalyticsResultResponse['data']toAnalyticsResultat compile time, so the two cannot drift apart silently.So a reader is told to ignore members the producer ships specifically for them, and to go fetch cube metadata instead — the opposite of what the ADR-0053 / percent-scale chains were built for.
History — the callout was true when it was written
#6369 (closed) wrote this callout at a time when the runtime really did emit
{ name, type }only. #13078 then moved the SCHEMA to the contract rather than the contract to the schema, which inverted the callout without touching the page. This is drift from a landed correction, not an original error.Executable criterion
grep -n "percentScale\|currency\|label" packages/spec/src/api/analytics.zod.tsinsideAnalyticsResultResponseSchemareturns the four optional members; the callout says the descriptor isname+type"and nothing else". Positive control today: both statements are in the tree at the same time.Not in scope for #14546
That card is one payload read per example, on three named sites; it is scoped and this is a different defect class (false prose about a descriptor). #14546 remains open on its own terms and this is not addressed by its PR.