Skip to content

ATS-PFM-DJE-017Reset a loading workspace and review its release: Capability Test Specification

Markdown

ATS-PFM-DJE-017

Reset a loading workspace and review its release: Capability Test Specification

Markdown
  • DocumentProposed

Planning

Proves capability
CAP-PFM-DJE-017
Related
CAP-PFM-DJE-016, CAP-PFM-DJE-015

Design

Executed by
TST-PFM-DJE-122

KindAcceptance test setProduct areaPlatformModuleData Job EngineRevision2

Read atservices-platform ad3f6a65services-crm a8d1364f

Coverage

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

Test Scenarios

10 scenarios proving CAP-PFM-DJE-017; 2 bound to an existing test.

01 Reset eligibility and confirmation are requiredvalidationapinegativeproposed
Proves
BR-CAP-PFM-DJE-017-01
Preconditions
Prepare live, non-loading and loading workspaces.
Steps
[ { "do": "Request resets and use incorrect confirmation for the loading workspace.", "expect": "The proposed refusal checks expect no removal from ineligible or incorrectly confirmed requests.", "provenance": "proposed", "source": "react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0674.spec.ts#CRM-ACC-0674" } ]
Expected
The proposed refusal checks expect no removal from ineligible or incorrectly confirmed requests.
Data
Workspaces in distinct lifecycle contexts.
Source
react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0674.spec.ts#CRM-ACC-0674
02 CRM reset removes loaded participant dataruleapitest
Proves
BR-CAP-PFM-DJE-017-02
Preconditions
Load the migration fixture into a workspace.
Steps
[ { "do": "Reset its participants.", "expect": "The cited fixtures report participant completion and removal of loaded CRM records, types and keys.", "provenance": "test", "source": "services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#answers done from every participant of the reset" } ]
Expected
The cited fixtures report participant completion and removal of loaded CRM records, types and keys.
Data
A loaded package fixture.
Bound to
Source
services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#answers done from every participant of the reset
03 Unsupported participants prevent removalvalidationapinegativeproposed
Proves
BR-CAP-PFM-DJE-017-03
Preconditions
Configure a participant without reset support.
Steps
[ { "do": "Request reset.", "expect": "The service is named in a refusal before any participant is emptied.", "provenance": "proposed", "source": "services-platform:docs/data-jobs/tenant-reset.md#3.1 Declaring support" } ]
Expected
The service is named in a refusal before any participant is emptied.
Data
A participant declaration fixture.
Source
services-platform:docs/data-jobs/tenant-reset.md#3.1 Declaring support
04 Reload reproduces the fixture after resetinvariantapitest
Proves
BR-CAP-PFM-DJE-017-04
Preconditions
Load the same package into two workspaces.
Steps
[ { "do": "Reset and reload one workspace.", "expect": "The other retains its checksum and the reloaded records and numbers match the prior load.", "provenance": "test", "source": "services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#leaves every row of the other loading tenant as it was, by a checksum of each table" } ]
Expected
The other retains its checksum and the reloaded records and numbers match the prior load.
Data
A migration package.
Bound to
Source
services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#leaves every row of the other loading tenant as it was, by a checksum of each table
05 Loading permission does not grant activationpermissionapinegativeproposed
Proves
BR-CAP-PFM-DJE-017-06
Preconditions
Use a staff caller with loading access but without activation access.
Steps
[ { "do": "Request activation.", "expect": "The proposed API proof expects refusal.", "provenance": "proposed", "source": "services-platform:docs/data-jobs/data-runs.md#7. The summary and the readiness verdict" } ]
Expected
The proposed API proof expects refusal.
Data
Permission personas.
Source
services-platform:docs/data-jobs/data-runs.md#7. The summary and the readiness verdict
06 The planned readiness gate prevents early activationruleapinegativeproposed
Proves
BR-CAP-PFM-DJE-017-07
Preconditions
Prepare a load with unresolved refusals.
Steps
[ { "do": "Attempt activation, resolve the blockers and attempt again.", "expect": "The proposed gate refuses the first request with blockers and permits release after resolution.", "provenance": "proposed", "source": "services-platform:docs/milestones/plans/PLAT-M22-plan.md#A3" } ]
Expected
The proposed gate refuses the first request with blockers and permits release after resolution.
Data
A package containing invalid input.
Source
services-platform:docs/milestones/plans/PLAT-M22-plan.md#A3
07 Loading restricts ordinary routesboundaryapinegativeproposed
Proves
BR-CAP-PFM-DJE-017-08
Preconditions
Prepare a loading workspace.
Steps
[ { "do": "Call an ordinary route and an allowed data-job route.", "expect": "The ordinary request is unavailable and the allowed job request is served.", "provenance": "proposed", "source": "react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0673.spec.ts#CRM-ACC-0673" } ]
Expected
The ordinary request is unavailable and the allowed job request is served.
Data
A loading workspace.
Source
react-console:acceptance/crm/playwright/journeys/data-operations/CRM-ACC-0673.spec.ts#CRM-ACC-0673
08 Reset removes loaded mappings before reconciliation and reloadinteractionapinegativeproposed
Proves
BR-CAP-PFM-DJE-015-02 BR-CAP-PFM-DJE-015-05 BR-CAP-PFM-DJE-017-02 BR-CAP-PFM-DJE-017-04
Preconditions
Load the same package in two isolated loading workspaces.
Steps
[ { "do": "Reset one, reconcile its keys, reload it, and compare both workspaces with their prior projections.", "expect": "Reset keys become missing until reload; the other workspace remains unchanged and the reset fixture reproduces its records and numbers.", "provenance": "proposed", "source": "services-crm:modules/data-jobs/services/jobs/records-by-source-key.ts:readRecordsBySourceKey; services-platform:modules/data-jobs/services/jobs/records-by-source-key.ts:readCustomFieldsBySourceKey; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#looks a key up under its own object type only: a contact key is not an organization; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#removes everything the load wrote: no contact, organization, imported type or crosswalk row is left; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#reloads the same records as the load before the reset, numbers included" } ]
Expected
Reset keys become missing until reload; the other workspace remains unchanged and the reset fixture reproduces its records and numbers.
Data
Load the same package in two isolated loading workspaces.
Source
services-crm:modules/data-jobs/services/jobs/records-by-source-key.ts:readRecordsBySourceKey; services-platform:modules/data-jobs/services/jobs/records-by-source-key.ts:readCustomFieldsBySourceKey; services-crm:modules/data-jobs/tests/integration/services/jobs/records-by-source-key.integration.spec.js#looks a key up under its own object type only: a contact key is not an organization; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#removes everything the load wrote: no contact, organization, imported type or crosswalk row is left; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#reloads the same records as the load before the reset, numbers included
09 Failed loading remains available for reset and a fresh runinteractionapinegativeproposed
Proves
BR-CAP-PFM-DJE-016-09 BR-CAP-PFM-DJE-016-10 BR-CAP-PFM-DJE-017-02 BR-CAP-PFM-DJE-017-04 BR-CAP-PFM-DJE-017-05
Preconditions
Start a package with a dataset that fails after earlier work committed.
Steps
[ { "do": "Inspect the failed run, reset the loading workspace, register corrected input and reload.", "expect": "Earlier commits remain until reset; a new registration drives the corrected load without reopening the failed run.", "provenance": "proposed", "source": "services-platform:modules/data-jobs/tests/integration/services/runs/run-driver.integration.spec.js#cancels the jobs a cancelled run had already submitted, in their own services; services-platform:modules/data-jobs/tests/unit/run-summary.spec.ts#is not ready when a dataset’s counts do not add up to what the producer claimed; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#removes everything the load wrote: no contact, organization, imported type or crosswalk row is left; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#reloads the same records as the load before the reset, numbers included; services-platform:docs/data-jobs/tenant-reset.md#1. When a tenant may be reset" } ]
Expected
Earlier commits remain until reset; a new registration drives the corrected load without reopening the failed run.
Data
Start a package with a dataset that fails after earlier work committed.
Source
services-platform:modules/data-jobs/tests/integration/services/runs/run-driver.integration.spec.js#cancels the jobs a cancelled run had already submitted, in their own services; services-platform:modules/data-jobs/tests/unit/run-summary.spec.ts#is not ready when a dataset’s counts do not add up to what the producer claimed; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#removes everything the load wrote: no contact, organization, imported type or crosswalk row is left; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#reloads the same records as the load before the reset, numbers included; services-platform:docs/data-jobs/tenant-reset.md#1. When a tenant may be reset
10 Reset keeps input available while deletion removes itinteractionapiproposed
Proves
BR-CAP-PFM-DJE-011-11 BR-CAP-PFM-DJE-017-02 BR-CAP-PFM-DJE-017-04
Preconditions
Prepare completed uploads and loaded records in a loading workspace.
Steps
[ { "do": "Reset the workspace, inspect retained uploads, reload from them, then invoke workspace deletion on a separate disposable fixture.", "expect": "Reset retains input for another load; deletion removes its upload records and stored versions.", "provenance": "proposed", "source": "services-platform:docs/data-jobs/uploads.md#Deletion; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#removes everything the load wrote: no contact, organization, imported type or crosswalk row is left; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#reloads the same records as the load before the reset, numbers included" } ]
Expected
Reset retains input for another load; deletion removes its upload records and stored versions.
Data
Prepare completed uploads and loaded records in a loading workspace.
Source
services-platform:docs/data-jobs/uploads.md#Deletion; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#removes everything the load wrote: no contact, organization, imported type or crosswalk row is left; services-crm:modules/data-jobs/tests/integration/services/jobs/initial-import-guarantees.integration.spec.js#reloads the same records as the load before the reset, numbers 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.