Skip to content

CAP-PFM-TNL-012Recover an incorrect initial import

Markdown

CAP-PFM-TNL-012

Recover an incorrect initial import

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

KindCapabilityProduct areaPlatformModuleWorkspace Lifecycle Across ApplicationsRevision2

Read atservices-platform ad3f6a65services-crm a8d1364fservices-committees 36129c24services-membership 5994c270services-marketing d071a159

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Reset follows the declared removed-and-kept participant classifications.Eligibility and support checks precede removal.A settled interrupted reset can be completed by a fresh request.
Surfaces
consoleapijob
Intent sources
services-platform:docs/proposals/rhythm-data-job-engine-plan.md#§13.3services-platform:docs/data-jobs/tenant-reset.md#§1services-platform:docs/data-jobs/tenant-reset.md#§2services-platform:docs/data-jobs/tenant-reset.md#§3

Controls

33 controls apply, from the corpus control catalogue.

TC-AVL-001 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-CRY-001 TC-CRY-002 TC-CRY-003 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-IAM-001 TC-IAM-002 TC-IAM-003 TC-IAM-004 TC-IAM-005 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-005 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
hq.data-runs.manageapiglobal

Business Rules

11 rules, 10 to be proved before approval. A rule's product intent is derived from its origin: 0 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
Reset requires import authority and refuses activation-only staff, customer administrators and anonymous callers.
origin: services-platform:docs/data-jobs/tenant-reset.md#§1 (approved plan DJE §16)
permissionapitest
services-platform:modules/tenants/tests/e2e/hq-tenant-loading.e2e.spec.js#refuses the staff member who may only activate a tenant, resetting being part of running the import
02must prove
Proposed
Reset checks implementation status and loading lifecycle at request, job creation and each batch, rejecting either mismatch with an explanation.
origin: services-platform:docs/data-jobs/tenant-reset.md#§1 (Andrew, 2026-10-11; DJE D5)
validationservicetest
services-platform:modules/tenants/tests/integration/services/reset/reset-tenant.integration.spec.js#refuses a tenant that is not loading, naming that half of the rule
03must prove
Proposed
Reset confirmation must repeat the workspace identifier; missing or incorrect text is rejected without supplying the expected answer.
validationapi, servicetest
services-platform:modules/tenants/tests/integration/services/reset/reset-tenant.integration.spec.js#refuses a confirmation that is not the tenant’s id, and does not say what to type
04must prove
Proposed
An open reset prevents another reset request and the refusal identifies the existing job before participant work.
validationservice, databasetest
services-platform:modules/tenants/tests/integration/services/reset/reset-tenant.integration.spec.js#refuses the second request as a conflict, naming the job that is running
05must prove
Proposed
Unsupported reset declarations or missing required participants stop reset planning before any removal.
validationservicetest
services-platform:modules/tenants/tests/integration/services/reset/reset-tenant.integration.spec.js#removes nothing at all: a half-reset tenant is the outcome worth refusing for
06must prove
Proposed
Reset removes the classified import records, numbering, crosswalks, files and search data while preserving records assigned to kept participants.
origin: services-platform:docs/data-jobs/tenant-reset.md#§2 What goes and what stays
policyservicetest
services-platform:modules/tenants/tests/integration/services/reset/reset-tenant.integration.spec.js#keeps every table of every participant it does not empty, row for row
07must prove
Proposed
CRM reset batches removal, clears applicable seed entries and reapplies defaults; other applications follow their own reset classifications.
invariantservicetest
services-crm:modules/tenant-lifecycle/tests/integration/services/participants/reset.integration.spec.js#leaves the tenant holding exactly what a freshly provisioned tenant holds, table for table
08must prove
Proposed
Reset returns a recorded job promptly, reports participant removals and leaves the workspace loading in implementation.
lifecycleservicetest
services-platform:modules/tenants/tests/e2e/hq-tenant-loading.e2e.spec.js#leaves the tenant loading and in implementation, so the package can be loaded again at once
09must prove
Proposed
After a failed reset settles, another reset request finishes the remaining removal without finding records already emptied.
origin: services-platform:docs/data-jobs/tenant-reset.md#§1 recovery (approved)
policyservicetest
services-platform:modules/tenants/tests/integration/services/reset/reset-tenant.integration.spec.js#finds nothing left to remove of the participants the first reset had already emptied
10must prove
Proposed
The product should allow reset only when revision history shows no writes from sessions outside the import engine.
no proof recorded yet
validationserviceunknown
11
Proposed
CRM suppresses change-event capture throughout reset, including its reseeding work.
policyservicetest
services-crm:modules/tenant-lifecycle/tests/integration/services/participants/reset.integration.spec.js#records no change event at any point in the run, not even while the records are being removed

Scenarios

IdGivenWhenThenProvenance
01A load assigned chapters to incorrect regions.The operator confirms the workspace identifier and requests reset.CRM records are emptied and defaults restored while kept access records and the upload remain; loading continues.test
services-platform:modules/tenants/tests/e2e/hq-tenant-loading.e2e.spec.js#empties what the other macroservice held for the tenant, by its reset and never its purge

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.