---
id: FAS-PFM-QRY-04
feature: FEAT-PFM-QRY-04
product_area: platform
module: queries
revision: 2
status: proposed
product_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  rhythm-v2-docs: f946bdcc118035206f18109fbf69cd8e9e785aaf
capabilities:
  - CAP-PFM-QRY-011
  - CAP-PFM-QRY-012
  - CAP-PFM-QRY-013
scenarios:
  - id: FAS-PFM-QRY-04-01
    title: Compose a presentation and keep its source relationships
    kind: behaviour
    exercises:
      - CAP-PFM-QRY-011
      - CAP-PFM-QRY-012
      - CAP-PFM-QRY-013
    relies_on:
      - ATS-PFM-QRY-011-07
      - ATS-PFM-QRY-012-02
      - ATS-PFM-QRY-013-02
    preconditions: An author has two visible source questions and a table report.
    steps: >-
      Keep a private report copy, build a dashboard from the sources, reopen it
      and request each eligible output format.
    expected: >-
      The retained presentations keep their source identities and the admitted
      formats match each presentation kind.
    negative: false
    data_needs: >-
      Use an isolated workspace, named fixture records and the caller grants
      described by the prerequisites.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#lets
        a colleague who can see a shared report copy it and nothing else
      - >-
        services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers
        its sources once each, in widget order, with their names and
        applications
      - >-
        services-platform:modules/queries/tests/integration/services/rendering/report-exports.integration.spec.js#accepts
        an Excel export of a table report
  - id: FAS-PFM-QRY-04-02
    title: Sharing a report copy follows its saved source audience
    kind: interaction
    exercises:
      - CAP-PFM-QRY-011
      - CAP-PFM-QRY-006
      - CAP-PFM-QRY-007
    relies_on:
      - ATS-PFM-QRY-011-13
      - ATS-PFM-QRY-006-08
      - ATS-PFM-QRY-007-01
    preconditions: >-
      An administrator can customize the built-in Subledger Entries report; a
      colleague holds the acceptance author role and can read the planted ledger
      data.
    steps: >-
      Save a customized private copy, attempt role sharing, share its drafted
      saved query with the same role, retry report sharing and open the copy as
      the colleague.
    expected: >-
      The first share returns the source-audience conflict without changing the
      copy; the retry succeeds, and the colleague reads the independently
      calculated totals with copying available and editing refused.
    negative: false
    data_needs: >-
      Use an isolated workspace, named fixture records and the caller grants
      described by the prerequisites.
    bound_to:
      - TST-PFM-QRY-047
    provenance: test
    source: >-
      react-console:acceptance/reporting/playwright/journeys/catalog-and-sharing/RPT-ACC-0002.spec.ts#RPT-ACC-0002
  - id: FAS-PFM-QRY-04-03
    title: Source changes and removal update dependent presentations
    kind: lifecycle
    exercises:
      - CAP-PFM-QRY-011
      - CAP-PFM-QRY-012
      - CAP-PFM-QRY-013
      - CAP-PFM-QRY-015
    relies_on:
      - ATS-PFM-QRY-011-11
      - ATS-PFM-QRY-012-06
      - ATS-PFM-QRY-011-12
      - ATS-PFM-QRY-013-09
    preconditions: >-
      A query feeds both a table report and a dashboard; the table report has a
      schedule and a completed file.
    steps: >-
      Change and rename the source, resave the table report and delete that
      report.
    expected: >-
      Definition changes flag dependents, source rename alone does not; deletion
      pauses its schedule while leaving the query and completed file.
    negative: false
    data_needs: >-
      Use an isolated workspace, named fixture records and the caller grants
      described by the prerequisites.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers
        saved_query_changed once the saved query has been edited since the
        report was saved
      - >-
        services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers
        saved_query_changed once one of its sources has been edited, naming
        which
      - >-
        services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#deletes
        the report
      - >-
        react-console:acceptance/reporting/playwright/journeys/print-and-export/RPT-ACC-0349.spec.ts#RPT-ACC-0349
  - id: FAS-PFM-QRY-04-04
    title: A source limits dashboard sharing and rendering
    kind: permission
    exercises:
      - CAP-PFM-QRY-011
      - CAP-PFM-QRY-012
      - CAP-PFM-QRY-013
    relies_on:
      - ATS-PFM-QRY-011-04
      - ATS-PFM-QRY-012-04
      - ATS-PFM-QRY-013-06
    preconditions: A dashboard combines an organization source and a Finance-only source.
    steps: >-
      Attempt organization sharing, retry with Finance, then revoke one source
      grant during rendering.
    expected: >-
      The broad share is refused at the narrower source; permitted sharing
      saves, while the later render refusal produces no partial file.
    negative: true
    data_needs: >-
      Use an isolated workspace, named fixture records and the caller grants
      described by the prerequisites.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses
        a report shared wider than its saved query as 409
        ReportSharedWiderThanQuery, naming the query
      - >-
        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
      - >-
        services-platform:modules/queries/tests/integration/services/rendering/render-report.integration.spec.js#refuses
        the run made after it, re-reading the grants for that request
  - id: FAS-PFM-QRY-04-05
    title: A save preserves unfamiliar layout content
    kind: regression
    exercises:
      - CAP-PFM-QRY-011
      - CAP-PFM-QRY-012
    relies_on:
      - ATS-PFM-QRY-011-10
      - ATS-PFM-QRY-012-10
    preconditions: >-
      A dashboard contains an unfamiliar widget property and two editors read
      the same version.
    steps: >-
      Save a layout in one tab, replay the other tab’s stale version and reopen
      the accepted layout.
    expected: >-
      The stale save conflicts and the accepted layout round-trips its
      unfamiliar content without interpretation.
    negative: true
    data_needs: >-
      Use an isolated workspace, named fixture records and the caller grants
      described by the prerequisites.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses
        a replacement that states no version as 400 MissingVersion
      - >-
        services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers
        the definition exactly as it was sent, widgets, filters and layouts
        untouched
evidence:
  - >-
    rhythm-v2-docs:specs/platform/queries/planning/features/FEAT-PFM-QRY-04-reports-and-dashboards.md
  - >-
    rhythm-v2-docs:specs/platform/queries/planning/capabilities/CAP-PFM-QRY-011-keep-share-and-find-reports-without-sharing-anyone-s-data.md
  - >-
    rhythm-v2-docs:specs/platform/queries/planning/capabilities/CAP-PFM-QRY-012-assemble-a-dashboard-from-several-saved-queries.md
  - >-
    rhythm-v2-docs:specs/platform/queries/planning/capabilities/CAP-PFM-QRY-013-print-a-report-or-dashboard-to-pdf-or-excel-as-the-person.md
---
# Report presentation: Feature Acceptance Suite

## What the Feature Must Do as a Whole

A retained report must remain usable by its intended readers. These scenarios follow the presentation from copying and composition through sharing, source changes and file rendering. They distinguish a saved layout from an answer that a reader can obtain under current access.

## Interactions Between Capabilities

The sharing journey first attempts to expose a private report copy while its saved source remains private. It then changes the source audience, repeats report sharing and checks the colleague’s totals and available actions. Other scenarios connect dashboard sources to rendering and revisit retained layouts after edits or removal.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative coverage from the pinned specifications and test assertions. |
| 2 | continuation examination | sharing interaction | Verify the complete browser chain and activate its executable binding. |
