---
id: FAS-PFM-QRY-07
feature: FEAT-PFM-QRY-07
product_area: platform
module: queries
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  rhythm-v2-docs: 99376625d3e7ac26936413cfc31a88fba6562464
capabilities:
  - CAP-PFM-QRY-018
scenarios:
  - id: FAS-PFM-QRY-07-01
    title: Configure and inspect the workspace export foundation
    kind: behaviour
    exercises:
      - CAP-PFM-QRY-018
    relies_on:
      - ATS-PFM-QRY-018-04
      - ATS-PFM-QRY-018-05
      - ATS-PFM-QRY-018-06
      - ATS-PFM-QRY-018-08
    preconditions: A live nonsandbox workspace has an administrator and an available destination connection.
    steps: 'Save settings, add a destination, request an export and inspect its queued history and package actions.'
    expected: Admission snapshots the settings; unfinished generation and delivery actions state their current limits.
    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/data-exports/tests/integration/services/persistence/definitions.integration.spec.js#refuses
        a second definition for a tenant, leaving one
      - >-
        services-platform:modules/data-exports/tests/integration/services/persistence/destinations.integration.spec.js#refuses
        a sixth destination, leaving five
      - >-
        services-platform:modules/data-exports/tests/integration/services/persistence/executions.integration.spec.js#answers
        it queued, at the request’s instant, with the definition’s switches copied and the allowance counted
      - >-
        services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 404 for the
        manifest of an execution with no package yet
  - id: FAS-PFM-QRY-07-02
    title: Package powers do not disclose another person’s query file
    kind: interaction
    exercises:
      - CAP-PFM-QRY-018
      - CAP-PFM-QRY-014
    relies_on:
      - ATS-PFM-QRY-018-02
      - ATS-PFM-QRY-014-07
    preconditions: An export administrator lacks query-file ownership or schedule-management authority.
    steps: >-
      Request another person’s query file with only package powers, then inspect a permitted workspace
      execution.
    expected: The query file remains concealed while the permitted workspace execution is readable.
    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/data-exports/tests/e2e/data-exports.e2e.spec.js#is refused every read route
        when it holds the other three keys and the administrator tier
      - >-
        services-platform:modules/queries/tests/integration/services/exports/query-export-routes.integration.spec.js#answers
        the requester their export
  - id: FAS-PFM-QRY-07-03
    title: Workspace removal clears retained export and snapshot history
    kind: lifecycle
    exercises:
      - CAP-PFM-QRY-018
      - CAP-PFM-QRY-019
      - CAP-PFM-QRY-017
    relies_on:
      - ATS-PFM-QRY-018-06
      - ATS-PFM-QRY-019-11
      - ATS-PFM-QRY-017-11
    preconditions: 'An isolated workspace has queued package history, monthly versions and indexed records.'
    steps: 'Delete it, let open rebuild work settle and complete participant cleanup.'
    expected: >-
      All three inventories reach zero only for the deleted workspace; a surviving control retains its
      resources.
    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/data-exports/tests/integration/services/persistence/executions.integration.spec.js#answers
        it queued, at the request’s instant, with the definition’s switches copied and the allowance counted
      - >-
        services-platform:modules/snapshots/tests/integration/lifecycle/pipeline/snapshot-pipeline.integration.spec.js#removes
        every snapshot row, run and override of the purged tenants, the run's version chain included
      - >-
        services-platform:modules/quick-search/tests/integration/services/maintenance/tenant-participant.integration.spec.js#purges
        the tenant once the rebuild has settled, the job’s own three tables included
  - id: FAS-PFM-QRY-07-04
    title: Export authority remains separate across customer and staff surfaces
    kind: permission
    exercises:
      - CAP-PFM-QRY-018
    relies_on:
      - ATS-PFM-QRY-018-02
      - ATS-PFM-QRY-018-09
    preconditions: 'An administrator, a Power User and support staff have their respective scoped grants.'
    steps: >-
      Read settings, request immediate work and inspect history through customer and HQ surfaces as each
      caller.
    expected: >-
      Only the route-specific customer authority admits work; staff use their permitted HQ reads and customer
      roles do not enter HQ.
    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/data-exports/tests/e2e/data-exports.e2e.spec.js#is refused every read route
        when it holds the other three keys and the administrator tier
      - >-
        services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is refused every console
        route, whatever it holds at platform scope (rule S1)
  - id: FAS-PFM-QRY-07-05
    title: A first queued request keeps its single active slot
    kind: regression
    exercises:
      - CAP-PFM-QRY-018
    relies_on:
      - ATS-PFM-QRY-018-06
      - ATS-PFM-QRY-018-08
      - ATS-PFM-QRY-018-14
    preconditions: The generation dispatcher remains unavailable and one export request is queued.
    steps: 'Repeat Export now, request cancellation and reopen history.'
    expected: >-
      The repeat conflicts, cancellation reports not implemented and history retains the first queued request
      rather than claiming recovery.
    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/data-exports/tests/integration/services/persistence/executions.integration.spec.js#answers
        it queued, at the request’s instant, with the definition’s switches copied and the allowance counted
      - >-
        services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 404 for the
        manifest of an execution with no package yet
      - >-
        services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#exports now: 202 with the
        execution queued
evidence:
  - 'rhythm-v2-docs:specs/platform/queries/planning/features/FEAT-PFM-QRY-07-workspace-data-export.md'
  - >-
    rhythm-v2-docs:specs/platform/queries/planning/capabilities/CAP-PFM-QRY-018-take-a-complete-portable-export-of-the-workspace-s-data.md
---

# Workspace export administration: Feature Acceptance Suite

## What the Feature Must Do as a Whole

Administrators configure and inspect the foundation for workspace packages. The examples distinguish accepted settings and queued history from later package completion, and retain the unfinished actions as explicit limits.

## Interactions Between Capabilities

Package powers do not disclose another person’s query file. The combined example crosses the feature boundary through file access or workspace cleanup; those capabilities remain owned by their existing features. The lifecycle and regression examples revisit retained state after a later change rather than repeating individual rule rows.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish the cumulative feature baseline from the pinned specification and executable assertions. |
