feat(reports): add custom Report Builder UI (PMS-180) #99
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/mapps-custom-report-builder"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Replace the Report Builder placeholder with an interactive, safe custom report builder (PMS-180). The user never writes SQL or raw field names.
How it works
GET /api/v1/reports/custom/schema(sources, each with its allowed dimensions / measures / filters and whether it supports a date range).POST /api/v1/reports/custom; the response is the generic columns / rows / totals envelope, rendered as a table with a totals summary.Changes
ReportDetailPageearly-returns the newCustomReportBuildercomponent for thereport-buildertype (report_typeis a fixed route param, so hook order stays stable).SourceSchema/FieldSchema/CustomSpec/CustomResulttypes.Safety
This is the safe alternative PMS-93 called for instead of an ad-hoc SQL console: all identifiers come from the server-side catalog, values are bound, and the query is tenant-scoped (enforced and tested on the backend).
Verification
cargo check --target wasm32-unknown-unknownclean,cargo fmt --checkclean. (The one host clippy hit isclippy::manual_checked_opson pre-existingprojects.rs:685, a lint that only exists in host rust 1.95; CI runs rust 1.94 where it does not fire.)Depends on
mokosh-server PMS-180 (
GET /reports/custom/schema+POST /reports/custom).🤖 Generated with Claude Code