---
id: CAP-MBR-STR-007
title: Describe a unit’s dated relationships with organizations
feature: FEAT-MBR-STR-02
product_area: membership
module: structure
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - react-console acceptance inventory CAP-MBR-STR-002
  - react-console acceptance inventory CAP-MBR-STR-009
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources: []
purpose: 'Staff distinguish the legal, operating and financial organizations associated with a unit over time.'
outcomes:
  - Organizational relationships retain dates and a recognizable purpose.
  - Legal-entity periods avoid simultaneous conflicting organizations.
concepts:
  - CON-MBR-STR-002
actors:
  - ACT-MBR-001
  - ACT-MBR-002
surfaces:
  - api
preconditions: []
postconditions: []
permissions:
  - key: membership.structure.read
    where_checked: api
    scope: tenant
  - key: membership.structure.manage
    where_checked: api
    scope: tenant
  - key: membership.application.access
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-MBR-STR-007-01
    proved_by: [ATS-MBR-STR-007-01, TST-MBR-STR-081]
    statement: >-
      An organization link includes an organization reference, a known workspace relationship kind and a start
      date, with optional end and notes.
    kind: validation
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-organizations.ts:linkOrganization
    origin: none
  - id: BR-CAP-MBR-STR-007-02
    proved_by: [ATS-MBR-STR-007-02, TST-MBR-STR-081]
    statement: An organization relationship cannot finish before its start date.
    kind: validation
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: observed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-organizations.ts:requireDates
    origin: none
  - id: BR-CAP-MBR-STR-007-03
    proved_by: [ATS-MBR-STR-007-03, TST-MBR-STR-080, TST-MBR-STR-100]
    statement: >-
      Legal-entity periods for one unit cannot overlap or have two open periods; other relationship kinds
      permit overlap.
    kind: invariant
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process ›
      refuses a second open legal entity, 409 legal_entity_already_open
    origin: none
  - id: BR-CAP-MBR-STR-007-04
    proved_by: [ATS-MBR-STR-004-08, ATS-MBR-STR-007-04, TST-MBR-STR-080]
    statement: >-
      Ending a link retains its history and may repeat or shorten the end date, but cannot extend it or edit
      other link details.
    kind: lifecycle
    enforced_at:
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-organizations.ts:unlinkOrganization
    origin: none
  - id: BR-CAP-MBR-STR-007-05
    proved_by: []
    statement: The organization reference accepts 1–100 characters without checking that CRM contains the organization.
    kind: validation
    enforced_at:
      - api
    must_prove: false
    provenance: observed
    source: 'services-membership:modules/structure/aws/api/structure-requests.ts:linkBody'
    origin: none
  - id: BR-CAP-MBR-STR-007-06
    proved_by: [ATS-MBR-STR-007-05, ATS-MBR-STR-007-09, ATS-MBR-STR-020-09, TST-MBR-STR-100]
    statement: >-
      Additional relationship kinds use supplied or name-derived identifiers and reject duplicate identifiers
      within the workspace.
    kind: validation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process ›
      creates a relationship type with an id derived from its name
    origin: none
  - id: BR-CAP-MBR-STR-007-07
    proved_by: [ATS-MBR-STR-007-07]
    statement: >-
      Relationship kinds have no rename, retirement or deletion operation, and an inactive kind still accepts
      links.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-relationship-types.ts:createOrganizationalUnitRelationshipType
    origin: none
  - id: BR-CAP-MBR-STR-007-08
    proved_by: [ATS-MBR-STR-007-08, TST-MBR-STR-077]
    statement: Organization links can be added to inactive and merged units.
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: observed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-organizations.ts:linkOrganization
    origin: none
  - id: BR-CAP-MBR-STR-007-09
    proved_by: [ATS-MBR-STR-006-10, ATS-MBR-STR-007-06, TST-MBR-STR-087]
    statement: Link changes retain versions identifying the actor.
    kind: invariant
    enforced_at:
      - database
    must_prove: true
    provenance: documented
    source: 'services-membership:docs/migrations/structure/README.md#Tables and migrations'
    origin: none
  - id: BR-CAP-MBR-STR-007-10
    proved_by: []
    statement: 'Link creation has no repeat-request recognition, allowing duplicate non-legal-entity links.'
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: documented
    source: 'react-console:acceptance/membership/journeys/structure/MBR-ACC-0017.json'
    origin: none
scenarios:
  - id: SC-CAP-MBR-STR-007-01
    given: Atlanta becomes incorporated at the beginning of 2024.
    when: Staff record Atlanta Chapter Inc. as legal entity from incorporation.
    then: The dated relationship begins in 2024 without identifying a legal entity for the preceding period.
    provenance: test
    source: >-
      services-membership:tests/acceptance/structure/MBR-ACC-0021.acceptance.ts#MBR-ACC-0021 scenario 11:
      Atlanta Chapter's incorporation, linked with dates
edge_cases:
  - id: SC-CAP-MBR-STR-007-02
    given: A client does not receive its first organization-link response.
    when: It repeats the same operating-organization creation.
    then: The service records a second equivalent link.
    provenance: documented
    source: 'react-console:acceptance/membership/journeys/structure/MBR-ACC-0017.json'
constraints: []
depends_on:
  - CAP-MBR-STR-006
related:
  - CAP-MBR-STR-003
  - CAP-MBR-STR-020
journeys:
  - JNY-MBR-STR-001
open_questions: []
evidence:
  - 'services-membership: Examination of link and relationship type persistence, request schemas and routes.'
  - >-
    services-membership: Examination of structure end-to-end tests and acceptance journeys MBR-ACC-0005, 0017,
    0021, 0022, 0030.
  - 'react-console:acceptance/membership/journeys/structure/MBR-ACC-0017.json'
  - 'services-membership:docs/migrations/structure/README.md'
  - 'services-membership:modules/structure/aws/api/structure-requests.ts'
  - 'services-membership:modules/structure/services/persistence/organizational-unit-organizations.ts'
  - 'services-membership:modules/structure/services/persistence/organizational-unit-relationship-types.ts'
  - 'services-membership:tests/e2e/structure-api.e2e.spec.ts'
controls: [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-002, TC-DAT-003, TC-DAT-007, TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-SEC-001, TC-SEC-004, TC-TEN-001, TC-TEN-002, TC-TEN-003]
exercised_by: [FAS-MBR-STR-02-01, FAS-MBR-STR-02-02, FAS-MBR-STR-02-03, FAS-MBR-STR-02-04, FAS-MBR-STR-02-05]
suites: [TST-MBR-STR-077, TST-MBR-STR-080, TST-MBR-STR-081, TST-MBR-STR-087, TST-MBR-STR-100]
---

# Describe a unit’s dated relationships with organizations

## Purpose

Staff distinguish the legal, operating and financial organizations associated with a unit over time.

## How It Works

An administrator chooses a relationship purpose and the CRM organization being associated with the unit. The relationship carries an effective start and optional end. Standard purposes distinguish the legal entity, operator, dues beneficiary and financial recipient. Customers can define additional purposes. Staff preserve incorporation changes by ending one legal period and beginning another. Overlapping legal periods are rejected. Other purposes can coexist over the same dates. Ending a relationship keeps the row for history and cannot extend an already recorded ending. CRM existence is not verified by these operations. Retired and merged units can still receive organization links, so staff must review the unit’s situation deliberately. The product should establish how organization verification and CRM merge handling work before presenting these links as dependable external references.

## Relationships

- The unit record provides the identity each dated relationship belongs to.
- Unit merges retain these relationships for staff to resolve.
- Provisioning supplies the standard relationship purposes.
