Skip to content

CAP-MBR-STR-011Classify memberships and configure organization flow-down

Markdown

CAP-MBR-STR-011

Classify memberships and configure organization flow-down

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaMembershipModuleOrganizational Structure, Membership Configuration and TermsRevision1

Read atservices-membership 5994c270react-console baf6dae3

The Formal Contract

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

Outcomes
Types qualify membership benefits and grace within their program.Flow-down configuration identifies target classification and selected CRM categories.
Surfaces
apijob

Controls

34 controls apply, from the corpus control catalogue.

TC-AVL-002 TC-AVL-003 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-AZ-006 TC-CHG-001 TC-CHG-002 TC-CHG-003 TC-CHG-004 TC-CRY-001 TC-CRY-002 TC-CRY-003 TC-DAT-001 TC-DAT-004 TC-DAT-007 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-PI-001 TC-PI-003 TC-PI-005 TC-SEC-001 TC-SEC-004 TC-TEN-001 TC-TEN-002 TC-TEN-003

Permissions

KeyChecked atScope
membership.configuration.readapitenant
membership.configuration.manageapitenant
membership.application.accessapitenant

Business Rules

6 rules, 5 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
A type belongs to one program, and packages and terms must use a type from their own program; package references prevent moving that type elsewhere.
invariantdatabasetest
services-membership:tests/e2e/database-refusals.e2e.spec.ts#mistakes only the database catches, through the API › DEF-MBR-0086: a configuration write a check, a foreign key or an integer column refuses › refuses moving a type a package names to another program 400 naming program_id, and leaves it where it was
02must prove
Proposed
A type records benefit eligibility and can override program grace with a value including zero.
calculationserviceobserved
03must prove
Proposed
Enabled flow-down requires an existing target type within the same program.
validationdatabasetest
services-membership:tests/e2e/database-refusals.e2e.spec.ts#mistakes only the database catches, through the API › DEF-MBR-0086: a configuration write a check, a foreign key or an integer column refuses › refuses flow-down enabled without a target type 400 naming flowdown_type_id, and writes no type
04must prove
Proposed
Flow-down role and organization-type selections accept at most 100 entries each, deduplicate them and replace only submitted lists without validating CRM existence.
policyserviceobserved
05
Proposed
Portal-specific type names and descriptions are retained without an implemented reader.
policyserviceobserved
06must prove
Proposed
Deactivating a type prevents staff-created terms of that type, while an active package product remains sellable through the Commerce participant.
lifecycleservicedocumented

Scenarios

IdGivenWhenThenProvenance
01A corporate classification selects billing contacts for flow-down.The organization’s membership is established.Selected people receive the resulting granted memberships.test
services-membership:tests/acceptance/configuration/MBR-ACC-0097.acceptance.ts#MBR-ACC-0097: A type's flow-down settings and benefits flag are configured and felt downstream: a firm's Corporate membership reaches its billing contacts, and a type without benefits makes its members active without benefits

Edge Cases

IdGivenWhenThenProvenance
02The selected flow-down role has no corresponding CRM record.Staff save the classification and establish an organization holding.The setting is retained but that role identifies no recipients.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.