Skip to content

CAP-PFM-QRY-012Combine saved questions in a dashboard

Markdown

CAP-PFM-QRY-012

Combine saved questions in a dashboard

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleQuestions, record exploration and data deliveryRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Several questions contribute to one presentation.Sharing respects all source audiences.Unavailable widget data can fail independently.
Surfaces
consoleapi
Intent sources
services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)services-platform:docs/milestones/plans/RPT-M1-plan.md#D3

Controls

20 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-DAT-004 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003 TC-PI-005 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
platform.reports.useapitenant
platform.reports.shareservicerecord
platform.reports.manageservicerecord

Business Rules

10 rules, 10 to be proved before approval. A rule's product intent is derived from its origin: 10 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Dashboards are reports without a single direct saved-query source, reject that direct source field, and differ from other report kinds that require it.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
validationservice, databasetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a dashboard naming a saved_query_id of its own as 400
02must prove
Confirmed
Dashboard saves record up to fifty distinct widget sources in first-widget order and reject larger source sets without writing.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
calculationservicetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers its sources once each, in widget order, with their names and applications
03must prove
Confirmed
Every widget source must be visible to the author, and an inaccessible source produces a refusal locating its widget.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
validationservicetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a widget over a saved query the caller may not see as 400 naming the widget at definition
04must prove
Confirmed
Dashboard audiences cannot exceed any source audience, with the first narrower source in widget order identified.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
policyservicetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a dashboard shared wider than one of its sources as 409, naming that source
05must prove
Confirmed
A query used by a dashboard source cannot be deleted while that dependency remains.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
policyservice, databasetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses to delete a saved query one of its widgets draws on as 409 saved_query_reported
06must prove
Confirmed
Dashboard change warnings reflect source-definition changes rather than source renames alone.
calculationservicetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#does not answer saved_query_changed after a source is only renamed, because its data did not change (DEF-RPT-0640)
07must prove
Confirmed
For a source the reader cannot see, dashboard source metadata returns only identity and change state, withholding its name.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
policyservicetest
services-platform:modules/queries/tests/integration/services/reports/report-library.integration.spec.js#answers a reader only the id and the change of a source narrowed since the dashboard was shared
08must prove
Confirmed
A dashboard with sources passes catalog filtering when at least one visible source has an accessible base dataset; a dashboard without sources also passes.
policyserviceobserved
09must prove
Confirmed
Widgets run their own saved queries as the viewer, apply narrowing dashboard filters and fail independently when a source is unavailable.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
policyservice, consoledocumented
10must prove
Confirmed
Platform preserves dashboard layout content exactly and interprets only widget source-query identities.
origin: services-platform:docs/queries/reports.md#6. Dashboards (Andrew, 2026-10-18)
invariantservicetest
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers the definition exactly as it was sent, widgets, filters and layouts untouched

Scenarios

IdGivenWhenThenProvenance
01A dashboard includes a source visible only to selected finance users.Its author attempts organization sharing.The refusal identifies the source with the narrower audience.test

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.