Skip to content

JNY-PFM-MTD-005Apply deletion policies and consolidate duplicate endpoints

Markdown

JNY-PFM-MTD-005

Apply deletion policies and consolidate duplicate endpoints

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindJourneyProduct areaPlatformModuleMetadata and Organization-defined RecordsRevision1End-to-endRequired

Read atreact-console baf6dae3services-platform ad3f6a65

The Formal Contract

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

Goal
Remove linked records and merge duplicate contacts while preserving restrictions and survivor references.
Screens
/console/{tenantId}/objects/{objectKey}/{recordId}/console/{tenantId}/crm/contacts/{id}

Steps

#SurfaceActionCapabilityExpectedProvenance
1deleteCustomObjectRecordAttempt Osprey’s deletion while its insurance restricts removal.CAP-PFM-MTD-013The confirmation explains the restriction and the boat remains.test
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S08.spec.ts#PLAT-M6-S08: an insured boat cannot be deleted and a builder's deletion takes its boats except the refused one
2deleteCustomObjectRecordAttempt deleting the builder whose cascade includes protected Osprey.CAP-PFM-MTD-013The refusal preserves the builder and every dependent boat.test
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S08.spec.ts#PLAT-M6-S08: an insured boat cannot be deleted and a builder's deletion takes its boats except the refused one
3deleteCustomObjectRecordEnd the protecting insurance and retry builder deletion.CAP-PFM-MTD-019The builder and its dependent boats are removed.test
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S08.spec.ts#PLAT-M6-S08: an insured boat cannot be deleted and a builder's deletion takes its boats except the refused one
4CRM deleteContact (MOD-CRM-ENT)Delete Ola through CRM while Fulmar follows its owner’s cascade.CAP-PFM-MTD-019Both endpoints disappear and no association retains Ola.test
5CRM merge of duplicate contacts (MOD-CRM-DQ)Merge Jane’s duplicate into the surviving Jane.CAP-PFM-MTD-019Crew, ownership and Previous Owner references use the survivor.test
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S11.spec.ts#PLAT-M6-S11: after CRM merges Jane's duplicate her crew places, her boats and Osprey's Previous Owner name the surviving Jane
6listCustomObjectRecordHistoryInspect Osprey’s resulting revision.CAP-PFM-MTD-014The merge is recorded once with attribution and the previous reference.test
services-platform:modules/custom-objects/tests/integration/db/custom-object-records-merge.integration.spec.js#attributes the change to the merge: its source, its actor and its merge id

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
failure2A cascade exceeds the supported ten-level depth.Deletion rejects the excessive chain.Every record in the rejected transaction remains.test
services-platform:modules/associations/tests/integration/db/apply-endpoint-deletion.integration.spec.js#refuses a chain of eleven with SQLSTATE AE409 and removes nothing of it

Assertions

IdStatementProvenance
01A refused endpoint policy rolls back the entire deletion.test
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S08.spec.ts#PLAT-M6-S08: an insured boat cannot be deleted and a builder's deletion takes its boats except the refused one
02CRM contact removal invokes the shared relationship protocol.test
03Duplicate consolidation redirects connections and reference values to the survivor.test
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M6-S11.spec.ts#PLAT-M6-S11: after CRM merges Jane's duplicate her crew places, her boats and Osprey's Previous Owner name the surviving Jane

End-to-end policy: required: The connected work includes console presentation and interactions across record surfaces. Browser acceptance complements service proof for those visible outcomes.

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.