Skip to content

CAP-PFM-DJE-002Review a change before approving its application

Markdown

CAP-PFM-DJE-002

Review a change before approving its application

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleData Job EngineRevision1

Read atmacroservice-libraries 54536a44services-crm a8d1364fservices-platform ad3f6a65react-console baf6dae3

The Formal Contract

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

Outcomes
Validation reports planned outcomes without changing the target records.Approval identifies the impact the administrator reviewed.An expired preview requires a new validation.
Surfaces
consoleapi
Intent sources
services-platform:docs/milestones/plans/PLAT-M19-plan.md#A1services-platform:docs/milestones/plans/PLAT-M19-plan.md#S19services-platform:docs/milestones/plans/PLAT-M19-plan.md#3. How it works for the user

Controls

21 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-004 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
crm.contacts.bulkapitenant
crm.contacts.updateapitenant
crm.organizations.bulkapitenant
platform.custom-fields.bulkapitenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Validation runs the operation’s prevalidation checks and reports planned impact and refusals without saving changes to the target records.
lifecycleservicetest
02must prove
Confirmed
Approval of a validated job must echo its impact fingerprint; an omitted or mismatched fingerprint is refused without leaving the validated state.
validationservicetest
services-crm:modules/data-jobs/tests/integration/services/jobs/contact-data-jobs.integration.spec.js#refuses an apply of the validated update whose digest is not the one the validation answered
03must prove
Confirmed
A preview remains applicable for 24 hours after validation; a later apply attempt expires the job and requires a fresh validation.
lifecycleserviceobserved
04must prove
Confirmed
The apply action refuses a job that has not completed validation.
validationservicetest
services-crm:modules/data-jobs/tests/e2e/organization-update.e2e.spec.js#refuses the apply of a job that was never validated with 409, because an apply is the approval of a validation
05must prove
Confirmed
The job combines batch impacts by adding change totals, deletion counts for each affected collection and blocked counts for each reason.
calculationservicetest
macroservice-libraries:packages/data-jobs/src/define-data-operation.spec.ts#adds the counts, which is what makes a digest speak for every batch and not the last one
06
Confirmed
CRM file jobs apply directly and the console describes that limitation; Platform can validate uploaded datasets containing at most 500 records.
policyservice, consoleobserved
07
Confirmed
A validated job’s detail supplies the impact fingerprint and any typed deletion phrase; list rows indicate only whether a fingerprint is available.
policyapidocumented
services-crm:docs/data-jobs.md#Listing a tenant's jobs

Scenarios

IdGivenWhenThenProvenance
01A proposed twelve-contact change contains one invalid value.The administrator requests validation.The preview identifies eleven planned changes and one coded refusal, without changing the contacts.documented
02A job completed validation the previous day.An administrator attempts approval after 25 hours.Rhythm expires the job and refuses the apply request.documented

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.