Skip to content

JNY-ACC-PRD-006Membership keeps its shared product within domain ownership

Markdown

JNY-ACC-PRD-006

Membership keeps its shared product within domain ownership

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindJourneyProduct areaAccountingModuleProductsRevision3End-to-endNone

Read atreact-console baf6dae3services-accounting f47cb263

The Formal Contract

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

Goal
Save the common product with its Membership extension while preventing another application’s writes.

Steps

#SurfaceActionCapabilityExpectedProvenance
1listProductTypesInspect the registry entry for Membership packages.CAP-ACC-PRD-001The entry identifies Membership and its extension record.test
services-accounting:modules/products/tests/e2e/products.e2e.spec.js#answers the domains’ types after them, each with its owning service and extension table, the Events ones inactive
2accounting.save_product (database function)Within Membership’s transaction, save the common product and then its extension.CAP-ACC-PRD-007The documented workflow places both records within one commit boundary and attributes the product to the acting person.documented
3createProductAttempt Membership package creation or correction as Commerce.CAP-ACC-PRD-007Ownership refusals identify Membership.test
services-accounting:modules/products/tests/integration/services/persistence/products.shared-base.integration.spec.js#refuses another service replacing, retiring, reactivating or deleting the package, and lets its owner
4accounting.retire_product (database function)Retire the common product at Membership’s read version.CAP-ACC-PRD-005The product becomes retired at the next version.test

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate2A person edits the package through a console host.Run product, setup and domain stages in sequence.Successful stages remain committed when a later stage fails.observed
failure2Membership’s extension write fails after saving the product.The documented transaction rolls back.No common product should remain; executable cross-domain proof is open.documented
failure2Product configuration violates a saving rule.Return the matching function validation sentence.No product write survives.test
services-accounting:modules/products/tests/integration/db/save-product-function.integration.spec.js#refuses a fixed-priced product without a standard price in the base currency with one sentence

Assertions

IdStatementProvenance
01Function-saved product information agrees with Accounting retrieval.test
02Unauthorized Commerce attempts leave Membership product data unchanged.test
services-accounting:modules/products/tests/integration/services/persistence/products.shared-base.integration.spec.js#refuses another service replacing, retiring, reactivating or deleting the package, and lets its owner

End-to-end policy: none: The domain transaction requires database execution rather than a browser.

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.