---
id: JNY-PFM-QRY-004
title: Deliver a dashboard and recover lost access
feature: FEAT-PFM-QRY-05
product_area: platform
module: queries
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - RPT-ACC-0258
  - RPT-ACC-0425
  - RPT-ACC-0496
  - RPT-ACC-0357
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-PFM-013
goal: Arrange weekly dashboard delivery and restore the schedule after its owner loses access.
capabilities:
  - CAP-PFM-QRY-013
  - CAP-PFM-QRY-015
  - CAP-PFM-QRY-014
screens:
  - '/console/{tenantId}/reports/dashboardLab/{dashboardId}'
  - '/console/{tenantId}/queries/schedules/{id}'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/reports/dashboardLab/{dashboardId}'
    action: Request a PDF of the month-end dashboard.
    capability: CAP-PFM-QRY-013
    expected: The documented flow provides a rendered document using the requester’s access.
    provenance: documented
    source: 'react-console:acceptance/reporting/journeys/dashboards-designer/RPT-ACC-0258.json'
  - 'n': 2
    surface: '/console/{tenantId}/reports/dashboardLab/{dashboardId}'
    action: Set a weekly Monday morning PDF delivery to the finance recipient.
    capability: CAP-PFM-QRY-015
    expected: The documented flow saves the schedule and presents its next occurrence.
    provenance: documented
    source: 'react-console:acceptance/reporting/journeys/dashboards-designer/RPT-ACC-0258.json'
  - 'n': 3
    surface: '/console/{tenantId}/queries/schedules/{id}'
    action: Let the weekly occurrence become due.
    capability: CAP-PFM-QRY-015
    expected: The inferred dashboard variant sends a delivery to each selected recipient.
    provenance: inferred
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
    note: >-
      The cited evidence supports a service result or a related interaction. This screen sequence requires its
      own browser proof.
  - 'n': 4
    surface: downloadQueryExportByLink
    action: Open the received download link as the recipient.
    capability: CAP-PFM-QRY-014
    expected: The file downloads through the delivery grant without an interactive sign-in.
    provenance: test
    source: >-
      react-console:acceptance/reporting/playwright/journeys/print-and-export/RPT-ACC-0357.spec.ts#RPT-ACC-0357
  - 'n': 5
    surface: '/console/{tenantId}/queries/schedules/{id}'
    action: Let another occurrence become due after the owner loses access to the dashboard.
    capability: CAP-PFM-QRY-015
    expected: 'The inferred dashboard variant fails before rendering, sends no delivery and pauses the schedule.'
    provenance: inferred
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
    note: >-
      The cited evidence supports a service result or a related interaction. This screen sequence requires its
      own browser proof.
  - 'n': 6
    surface: '/console/{tenantId}/queries/schedules/{id}'
    action: Have an administrator take ownership and resume the paused schedule.
    capability: CAP-PFM-QRY-015
    expected: The inferred dashboard variant runs with the new owner’s access and can deliver again.
    provenance: inferred
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
    note: >-
      The cited evidence supports a service result or a related interaction. This screen sequence requires its
      own browser proof.
alternates:
  - from_step: 6
    condition: A person without schedule-management permission requests ownership.
    path: Refuse the takeover.
    outcome: The existing owner and paused state remain unchanged.
    provenance: test
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
failures:
  - from_step: 3
    condition: The source dashboard has been removed.
    path: Pause the dependent schedule for its missing report.
    outcome: Delivery stops and the unusable schedule can be deleted.
    provenance: test
    source: >-
      services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#pauses the schedule
      report_deleted, its report gone
rules_in_play:
  - BR-CAP-PFM-QRY-013-04
  - BR-CAP-PFM-QRY-015-04
  - BR-CAP-PFM-QRY-015-05
  - BR-CAP-PFM-QRY-015-08
  - BR-CAP-PFM-QRY-014-09
  - BR-CAP-PFM-QRY-015-13
assertions:
  - id: AS-JNY-PFM-QRY-004-01
    statement: A successful occurrence creates one delivery for each recipient.
    provenance: inferred
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
    note: >-
      The timed browser test uses a table report; applying its shared schedule behavior to a dashboard is an
      inference.
  - id: AS-JNY-PFM-QRY-004-02
    statement: Loss of the owner’s report access prevents delivery and pauses subsequent occurrences.
    provenance: inferred
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
    note: >-
      The timed browser test uses a table report; applying its shared schedule behavior to a dashboard is an
      inference.
  - id: AS-JNY-PFM-QRY-004-03
    statement: Taking ownership changes the identity used for later scheduled execution.
    provenance: inferred
    source: 'react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts#RPT-ACC-0425'
    note: >-
      The timed browser test uses a table report; applying its shared schedule behavior to a dashboard is an
      inference.
e2e_policy: required
e2e_reason: >-
  The dashboard export and weekly schedule are documented. A browser test exercises timed delivery, access
  loss and takeover for a table report; the dashboard combination remains a separate proof obligation.
evidence:
  - 'Pinned reference: react-console:acceptance/reporting/journeys/dashboards-designer/RPT-ACC-0258.json'
  - >-
    Pinned reference:
    react-console:acceptance/reporting/playwright/journeys/print-and-export/RPT-ACC-0357.spec.ts
  - 'Pinned reference: react-console:acceptance/reporting/playwright/journeys/schedules/RPT-ACC-0425.spec.ts'
  - 'Pinned reference: services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js'
proved_by: []
---

# Deliver a dashboard and recover lost access

## Story

A controller wants a month-end dashboard delivered every week. The documented dashboard flow establishes the export and schedule; the shared scheduling behavior suggests how delivery and ownership recovery should work. When the owner loses access, delivery stops. An administrator can take responsibility and resume the schedule with the administrator’s access. The corresponding table-report browser test supports this sequence, while the full dashboard variant remains unproved.
