Skip to content

ATS-MBR-STR-019Authorize structure and configuration work: Capability Test Specification

Markdown

ATS-MBR-STR-019

Authorize structure and configuration work: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaMembershipModuleOrganizational Structure, Membership Configuration and TermsRevision2

Read atservices-membership 5994c270react-console baf6dae3

Coverage

  • Rule gap: FND-MBR-STR-072
  • Transition not-applicable
  • Validation gap: FND-MBR-STR-072
  • Permission covered
  • Edge gap: FND-MBR-STR-072
  • Failure gap: FND-MBR-STR-072
  • Boundary covered
  • Concurrency gap: FND-MBR-STR-072
  • Invariant gap: FND-MBR-STR-072
  • Interaction covered

Test Scenarios

8 scenarios proving CAP-MBR-STR-019; 5 bound to an existing test.

01 Reading and management use separate authoritypermissionapinegativetest
Proves
BR-CAP-MBR-STR-019-01
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Exercise structure operations with read-only and administrator callers.
Expected
Read authority permits inspection and fails mutations that administration permits.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/unit/route-authorization.spec.ts#route authorization: every Membership operation names its permission › requires membership.structure.read of every structure read and membership.structure.manage of every change
services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process › serves a reader the reads
services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process › refuses a reader a change, 403
Source
services-membership:tests/unit/route-authorization.spec.ts#route authorization: every Membership operation names its permission › requires membership.structure.read of every structure read and membership.structure.manage of every change
02 Configuration authority distinguishes administratorspermissionapinegativetest
Proves
BR-CAP-MBR-STR-019-02
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Compare program and configuration operations for administrators and read-only staff.
Expected
Administrators can mutate; readers can inspect only.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/acceptance/configuration/MBR-ACC-0088.acceptance.ts#MBR-ACC-0088: Who may read and who may change configuration: the administrator does both, read-only staff and a standard user only read, and a chapter officer or a portal member reaches nothing because the keys are workspace-level
Source
services-membership:tests/acceptance/configuration/MBR-ACC-0088.acceptance.ts#MBR-ACC-0088: Who may read and who may change configuration: the administrator does both, read-only staff and a standard user only read, and a chapter officer or a portal member reaches nothing because the keys are workspace-level
03 Local authority does not grant setup administrationpermissionapinegativetest
Proves
BR-CAP-MBR-STR-019-03
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Attempt the same administrative change as chapter officer, regional officer and portal member.
Expected
Each request is rejected without workspace management authority.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/acceptance/configuration/MBR-ACC-0088.acceptance.ts#MBR-ACC-0088: Who may read and who may change configuration: the administrator does both, read-only staff and a standard user only read, and a chapter officer or a portal member reaches nothing because the keys are workspace-level
Source
services-membership:tests/acceptance/structure/MBR-ACC-0025.acceptance.ts#MBR-ACC-0025 one structure change, seven people
04 Application admission precedes operation workpermissionapinegativetest
Proves
BR-CAP-MBR-STR-019-04
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Use a caller lacking application access, an unlicensed workspace and an unavailable workspace.
Expected
Each context is rejected before the operation’s work begins.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › answers the tenant health route to a caller holding membership.application.access there
services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › refuses a caller who holds no key in the tenant
services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › refuses a caller whose tenant is not licensed for Membership, as app_unlicensed
services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › refuses a disabled tenant to its own people, as TenantUnavailable
Source
services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › answers the tenant health route to a caller holding membership.application.access there
05 Row isolation hides foreign workspace databoundaryapinegativetest
Proves
BR-CAP-MBR-STR-019-05
Preconditions
An isolated Membership-licensed workspace contains the relevant records, with caller permissions selected for the case.
Steps
Read structure and configuration with a different workspace context.
Expected
Foreign workspace records do not appear in the result.
Data
The FAA example records or equivalent records prepared within the isolated workspace.
Bound to
services-membership:modules/structure/tests/integration/services/persistence/organizational-units.integration.spec.ts#organizational units in the database › row-level security › shows another tenant none of the units
services-membership:tests/acceptance/structure/MBR-ACC-0026.acceptance.ts#MBR-ACC-0026 another association's structure does not exist
services-membership:tests/acceptance/configuration/MBR-ACC-0089.acceptance.ts#MBR-ACC-0089: Two associations with identically named configuration never see each other: the same ids live in both workspaces and a cross-workspace read, update or delete answers not found
Source
services-membership:modules/structure/tests/integration/services/persistence/organizational-units.integration.spec.ts#organizational units in the database › row-level security › shows another tenant none of the units
06 Console authority needs a verified service mappinginteractionapiproposed
Proves
BR-CAP-MBR-STR-019-07
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
Compare every console setup permission with the service’s published setup keys and the mappings used by an administration caller.
Expected
The comparison identifies unmapped keys; it cannot declare the two vocabularies equivalent without a verified translation.
Data
Separate fixture records for the accepted and refused operations.
Source
react-console:lib/authz/permissions.ts:82
07 Reader access preserves the workspace boundaryinteractionapiproposed
Proves
BR-CAP-MBR-STR-005-11 BR-CAP-MBR-STR-019-01
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
As a structure reader request own and foreign unit identities, then attempt a mutation.
Expected
Own reads succeed, foreign rows stay hidden and management is refused.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:modules/structure/tests/integration/services/persistence/organizational-units.integration.spec.ts#organizational units in the database › row-level security › reads nothing of another tenant’s unit by id,services-membership:tests/unit/route-authorization.spec.ts#route authorization: every Membership operation names its permission › requires membership.structure.read of every structure read and membership.structure.manage of every change
08 Setup authority cannot bypass foreign-record isolationinteractionapiproposed
Proves
BR-CAP-MBR-STR-018-09 BR-CAP-MBR-STR-019-02
Preconditions
An isolated workspace contains the records and current versions needed for the case.
Steps
Use a workspace administrator to read, update and delete a record owned by another workspace.
Expected
All three requests treat that record as absent and leave it unchanged.
Data
Separate fixture records for the accepted and refused operations.
Source
services-membership:aws/api/route-inputs.ts:found,services-membership:modules/configuration/aws/api/configuration.routes.ts:configurationModuleRoutes

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.