Skip to content

ATS-PFM-QRY-018Request a portable workspace data package: Capability Test Specification

Markdown

ATS-PFM-QRY-018

Request a portable workspace data package: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleQuestions, record exploration and data deliveryRevision2

Read atservices-platform ad3f6a65react-console baf6dae3rhythm-v2-docs 99376625

Coverage

  • Rule covered
  • Transition gap: FND-PFM-QRY-068
  • Validation gap: FND-PFM-QRY-068
  • Permission covered
  • Edge gap: FND-PFM-QRY-068
  • Failure covered
  • Boundary covered
  • Concurrency covered
  • Invariant gap: FND-PFM-QRY-068
  • Interaction covered

Test Scenarios

17 scenarios proving CAP-PFM-QRY-018; 12 bound to an existing test.

01 Default export authority belongs to Administratorspermissionapinegativetest
Proves
BR-CAP-PFM-QRY-018-01
Preconditions
Built-in Power User and Administrator contexts are available.
Steps
Exercise the data-export routes under both.
Expected
Power User is refused and Administrator reaches the permitted operations.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#serves an Administrator, who holds the Data Exporter beside the administrator tier
Source
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#refuses a Power User every data export route
02 Export keys are independently requiredpermissionapinegativetest
Proves
BR-CAP-PFM-QRY-018-02
Preconditions
Each caller lacks one export key despite holding the others and administrator tier.
Steps
Invoke operations governed by the missing key.
Expected
Every such operation is refused.
Data
Use the existing binding’s controlled fixture data.
Bound to
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 manage 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 execute 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 the download route when it holds the other three keys and the administrator tier
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
03 Eligibility is rechecked for live workspacesruleapinegativetest
Proves
BR-CAP-PFM-QRY-018-03 INV-DOM-PFM-QRY-004-10
Preconditions
Fixtures include a sandbox, an implementation workspace and a workspace that became nonlive.
Steps
Create settings and request execution admission.
Expected
Ineligible cases return the workspace-eligibility refusal without writes.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/data-exports/tests/integration/services/persistence/definitions.integration.spec.js#refuses a sandbox as TenantNotEligible, though it is live, because its data is its parent’s
services-platform:modules/data-exports/tests/integration/services/persistence/definitions.integration.spec.js#refuses a tenant in implementation as TenantNotEligible, naming its status
services-platform:modules/data-exports/tests/integration/services/executions/admit-execution.integration.spec.js#refuses a tenant that stopped being live since its definition was made, creating nothing
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#refuses a sandbox its settings with 403 tenant_not_eligible
Source
services-platform:modules/data-exports/tests/integration/services/persistence/definitions.integration.spec.js#refuses a sandbox as TenantNotEligible, though it is live, because its data is its parent’s
04 Definition storage enforces one bounded configurationboundaryapinegativetest
Proves
BR-CAP-PFM-QRY-018-04
Preconditions
One workspace already has export settings.
Steps
Create another, use invalid retention and recipient bounds, then save at its current version.
Expected
Invalid definitions fail and the correctly versioned change succeeds.
Data
Use the existing binding’s controlled fixture data.
Bound to
Source
services-platform:modules/data-exports/tests/integration/services/persistence/definitions.integration.spec.js#refuses a second definition for a tenant, leaving one
05 Destination changes respect caps and auditboundaryapinegativetest
Proves
BR-CAP-PFM-QRY-018-05
Preconditions
A definition has five connection destinations.
Steps
Add another, duplicate one, use a URL path, enable a disabled destination and remove one.
Expected
Invalid additions fail; enabling records widening and removal retires its binding.
Data
Use the existing binding’s controlled fixture data.
Bound to
Source
services-platform:modules/data-exports/tests/integration/services/persistence/destinations.integration.spec.js#refuses a sixth destination, leaving five
06 Admission records a single queued executionconcurrencyapinegativetest
Proves
BR-CAP-PFM-QRY-018-06 INV-DOM-PFM-QRY-004-09
Preconditions
Settings can admit execution but another request is queued or settings are suspended.
Steps
Admit ordinary work, repeat it, try suspension and admit a staff-triggered execution.
Expected
The valid request copies its instant and settings, conflicts or suspension refuse, and staff work is marked nonconsuming.
Data
Use the existing binding’s controlled fixture data.
Bound to
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
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
07 Execution and security history commit togetherinvariantapitest
Proves
BR-CAP-PFM-QRY-018-07 INV-DOM-PFM-QRY-004-11
Preconditions
An eligible workspace has export settings.
Steps
Admit a new execution.
Expected
The same transaction records its access-widening execution event.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/data-exports/tests/integration/services/persistence/executions.integration.spec.js#records the data export event: execute, widening, in its own transaction
Source
services-platform:modules/data-exports/tests/integration/services/persistence/executions.integration.spec.js#records the data export event: execute, widening, in its own transaction
08 Incomplete package actions state their limitsfailureapinegativetest
Proves
BR-CAP-PFM-QRY-018-08
Preconditions
An execution is queued without a generated package.
Steps
Read its manifest and request cancellation, download, early deletion and delivery retry.
Expected
The manifest is missing and the unfinished actions return not implemented.
Data
Use the existing binding’s controlled fixture data.
Bound to
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#is answered 409 not_implemented for a cancellation, until the generation job
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 409 not_implemented for a download, until the generation job
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 409 not_implemented for a delivery retry, until delivery
Source
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
09 Staff and customer export surfaces remain separatepermissionapinegativetest
Proves
BR-CAP-PFM-QRY-018-09
Preconditions
Staff have platform and HQ export grants and a customer has administrator access.
Steps
Invoke customer-console and HQ operations under each context.
Expected
Staff are refused on console routes, HQ staff reads span workspaces and customers cannot use HQ.
Data
Use the existing binding’s controlled fixture data.
Bound to
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)
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is served every HQ route with hq.data-exports.read
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#lists every tenant of a customer’s executions on the HQ route
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is refused every one, holding everything at its customer’s scope
Source
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)
10 Coverage follows declaration versionstransitionapinegativetest
Proves
BR-CAP-PFM-QRY-018-10 INV-DOM-PFM-QRY-004-13
Preconditions
An application’s export coverage is registered.
Steps
Add a subject, change its shape without versioning, remove it and later restore it.
Expected
New coverage advances, conflicts are counted without replacement and retirement can be reversed.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/data-exports/tests/integration/services/export-coverage/reconcile-coverage.integration.spec.js#records each new dataset with the registry’s next version, and reads it back with its labels and without its absent reason and retirement
services-platform:modules/data-exports/tests/integration/services/export-coverage/reconcile-coverage.integration.spec.js#refuses a shape changed under an unchanged version, logged at error and counted, leaving the registry as it was
services-platform:modules/data-exports/tests/integration/services/export-coverage/reconcile-coverage.integration.spec.js#retires a dataset no longer declared and restores it when declared again, the registry’s version moving each time
Source
services-platform:modules/data-exports/tests/integration/services/export-coverage/reconcile-coverage.integration.spec.js#records each new dataset with the registry’s next version, and reads it back with its labels and without its absent reason and retirement
11 Foreign executions are concealedpermissionapinegativetest
Proves
BR-CAP-PFM-QRY-018-11
Preconditions
Another workspace owns the requested execution.
Steps
Read it through the current workspace.
Expected
The response returns 404.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#answers another tenant’s execution 404, as one that does not exist
Source
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#answers another tenant’s execution 404, as one that does not exist
12 Recent authentication remains required by product intentpermissionapinegativeproposed
Proves
BR-CAP-PFM-QRY-018-12
Preconditions
One administrator signed in twenty minutes ago and another five minutes ago.
Steps
Attempt destination changes and package download.
Expected
The proposed proof requires renewed authentication for the older session and acceptance for the recent one.
Data
Prepare isolated fixtures for the states described here.
Source
services-platform:docs/proposals/tenant-data-export/20-risks-tradeoffs-decisions.md#D-11. Elevated authentication for download and destination changes: a recent-authentication check in release 1
13 Allowances remain workspace-specific product intentruleapinegativeproposed
Proves
BR-CAP-PFM-QRY-018-13
Preconditions
Two workspaces share a customer and one has exhausted its allowance.
Steps
Request exports in both and apply a customer-level override.
Expected
Only the exhausted workspace should fail before override; the override should affect both.
Data
Prepare isolated fixtures for the states described here.
Source
services-platform:docs/proposals/tenant-data-export/20-risks-tradeoffs-decisions.md#D-14. Where the allowance attaches (blocks WP-5) — decided: per tenant
14 Admission journey records settings and one requestinteractionapitest
Proves
AS-JNY-PFM-QRY-006-01 AS-JNY-PFM-QRY-006-02
Preconditions
An Administrator works in a live eligible workspace.
Steps
Save settings, add a destination and request two immediate exports.
Expected
The first is queued with its security event and the second conflicts while it remains queued.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/data-exports/tests/integration/services/persistence/executions.integration.spec.js#records the data export event: execute, widening, in its own transaction
Source
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#exports now: 202 with the execution queued
15 A workspace package grant does not reveal a query fileinteractionapiproposed
Proves
BR-CAP-PFM-QRY-014-07 BR-CAP-PFM-QRY-018-08
Preconditions
One user has only workspace-package read and download powers; another owns a completed query file.
Steps
Request the query-file status and download as the package reader, then request the unfinished workspace package action.
Expected
Package powers confer no access to the other person’s query file; the unfinished package action reports its implemented limit.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
services-platform:modules/queries/tests/integration/services/exports/query-export-routes.integration.spec.js#answers 404 to a colleague who did not ask for it, even once the file exists,services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 409 not_implemented for a download, until the generation job
16 Workspace cleanup includes search and package resourcesinteractionapiproposed
Proves
BR-CAP-PFM-QRY-017-11 BR-CAP-PFM-QRY-018-08
Preconditions
An isolated workspace contains indexed contacts and export settings with a queued request.
Steps
Request workspace deletion, settle open index work and repeat participant cleanup until its inventory is empty.
Expected
Search documents and workspace export resources disappear without touching a surviving control workspace.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
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,services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 409 not_implemented for a download, until the generation job
17 Workspace removal clears both kinds of retained historyinteractionapiproposed
Proves
BR-CAP-PFM-QRY-018-08 BR-CAP-PFM-QRY-019-11
Preconditions
An isolated workspace has export settings and queued history plus multiple snapshot versions.
Steps
Run workspace deletion to completion and inspect both inventories.
Expected
Its package foundation records and snapshot history are removed; repeat cleanup reports nothing further.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
services-platform:modules/data-exports/tests/e2e/data-exports.e2e.spec.js#is answered 409 not_implemented for a download, until the generation job,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

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.