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
A dashboard has a top-level filter — a date range, a region select — that must drive several charts at once (e.g. 6 charts on one dashboard all re-scope to the selected date + region). This is a common, real requirement for any analytics dashboard.
Design (agreed in design discussion)
The filter is a dashboard-level parameter, not a shared dataset. Charts stay inline / self-contained.
The filter control + its value live on the dashboard — a dashboard-level variable (reuse the existing page/dashboard variables primitive; cf. the showcase Page Variables page / PageSchema.variables).
Each chart declares which of its own fields the filter binds to — a small binding, not a copied query. e.g. the invoice chart maps date → created_at, the account chart maps date → signed_at; region maps per-object similarly.
At render, the dashboard broadcasts { dateRange, region } into each chart's inline query (merged into its WHERE).
Result: one shared parameter (owned by the dashboard), explicit per-chart binding, charts remain inline. No hidden entity, no shared dataset — keeps it flat/explicit/local, which is also what keeps AI authoring safe (one place owns the filter; each chart edit stays local).
Per-chart field binding so a chart declares which field(s) a given dashboard filter targets.
Runtime broadcast: dashboard injects filter values into each bound chart's query.
Sensible defaults (a chart auto-binds an obvious date/status field) with an explicit override.
Explicitly NOT this issue
A shared dataset is only needed when the parameter reshapes the query (rolling window, grain change, a join) or the filtered slice is a governed metric definition — not for the simple filter-broadcast case. Those are separate concerns; this issue is the common "filter drives N inline charts" path.
Acceptance
A dashboard with a date + region filter drives ≥2 charts over different objects; each chart maps the filter to its own field; changing the filter live re-scopes all bound charts.
Activity
feat(spec): dashboard filter pairing — GlobalFilterSchema.name + Dash…
feat(showcase): Revenue Pulse — interactive dashboard-level filters d…
docs(objectstack-ui): standardize the inline-vs-dataset chart rule (#…
feat(lint): validate dashboard filter field-existence at build time (#…
chore(spec): enroll report and dashboard in the liveness GOVERNED set (…
fix(platform-objects): make two System Overview tiles count what thei…
fix(platform-objects): stop the System Overview date bar from windowi…