30 lines
2.2 KiB
Markdown
30 lines
2.2 KiB
Markdown
# Reporting Interface Pattern Migration
|
|
|
|
Reporting is a list-detail analytical workspace. It owns report semantics,
|
|
policy-aware result shaping, drill-through presentation, rendering, and
|
|
publication. Dataflow owns generic validation, typed expressions, schema
|
|
propagation, SQL compilation, and execution; Datasources and provider modules
|
|
own source access.
|
|
|
|
| Surface | Task and archetype | Consequence and state contract |
|
|
| --- | --- | --- |
|
|
| `/reports` | Report catalogue and list-detail workspace | The catalogue keeps selected report context while parameters, results, history, and provenance change. `/reporting` is a compatibility route only. |
|
|
| Semantic report controls | Parameterized analytical query | Dimensions, measures, parameters, and pivot shape become a validated Dataflow-backed plan. Reporting does not execute unchecked presentation SQL. |
|
|
| Provider report controls | Governed cross-module report | Purpose, audience, permission, availability, privacy transforms, source revisions, and retention remain visible. A blocked Run action stays present with a keyboard-focusable reason. |
|
|
| Results, history, and export | Monitoring/reporting evidence | Loading, empty, failed, truncated, successful, historical, and provider-partial states remain distinguishable. Tables are the accessible fallback for visual results. |
|
|
| Save and schedule dialogs | Create/edit and asynchronous setup | Core dialogs retain focus and stable actions. Scheduling records a durable report definition/revision and does not imply immediate publication. |
|
|
|
|
Run, schedule, export, and publication are consequential actions. Backend
|
|
permissions remain authoritative; the WebUI mirrors them and explains disabled
|
|
actions without exposing protected rows. Optional Dataflow, Policy, Files,
|
|
Mail, Templates, Search, and Notifications integrations are capability-based.
|
|
The full-height three-region workspace collapses at narrow widths while keeping
|
|
the catalogue, result, and inspector in task order.
|
|
|
|
Verification:
|
|
|
|
- `npm run test:interface-pattern`
|
|
- Reporting service, provider-report, migration, manifest, and module-permutation tests
|
|
- the Core TypeScript graph, structural localization audit, theme check, module
|
|
permutations, and full-product bundle budget
|