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
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Found dogfooding report design in Studio. Authoring the blocks of a joined report uses the raw generic SchemaForm repeater, so it lacks the curated affordances the top-level report inspector (ReportDefaultInspector) has. Functional, but clunky.
Priority: Low — joined is the least-used report type, and authoring is functional (you can build + save; the editor preview now renders them after #1965). This is friction, not a blocker.
Symptoms (all one root cause)
Per joined block, the inspector shows generic fields because blocks are array items rendered by the repeater without curated widgets/layout:
Dataset is a free-text input (no ref:dataset dropdown) — the author must type the exact dataset name.
Rows / Columns / Values are free-text tag inputs — no dataset-aware measure/dimension pickers (no catalog, no validation against the dataset's semantic layer).
The entire ChartConfigSchema is rendered inline for each block's optional chart (Title/Subtitle, X/Y axis, Series table, Colors, Height, Annotations, Tooltips/Zoom/Brush, Aria…) — dozens of fields that bury the block's data binding and make the form very long.
* "required" markers appear on the optional chart's xAxis/yAxis/type even though the whole chart is optional (markers come from the nested ReportChartSchema; leaving the chart empty is valid, so they mislead).
Root cause
joined blocks are a nested array edited via the blocks repeater, which renders each item from JoinedReportBlockSchema generically. The metadata-admin's curated inspectors operate per top-level metadata type (ReportDefaultInspector), not per nested array item — so blocks don't get the dataset dropdown / measure-dimension pickers / compact chart.
Suggested approach
Follow the dashboard-widget precedent (scoped inspector): let a joined block emit a selection and register a scoped BlockInspector (via registerMetadataInspector) that edits the selected block with curated controls — reusing the already-exported DatasetNamesEditor (measures/dimensions) and the ref:dataset dropdown from the top-level report inspector. This generalizes to other repeater-based authoring too.
Cheaper partial alternatives (lower value, with caveats):
Give the block dataset a dropdown — needs repeater-item widget hints.
Collapse the block's chart composite by default / suppress * on an optional composite — touches generic SchemaForm rendering (affects all optional composites), so weigh carefully.
Reference files: packages/app-shell/src/views/metadata-admin/inspectors/ReportDefaultInspector.tsx (curated top-level — the model to mirror), the blocks repeater path, and @objectstack/specJoinedReportBlockSchema / ReportChartSchema.
Activity