Skip to content

ATS-PFM-MTD-011Control Custom Record Audiences: Capability Test Specification

Markdown

ATS-PFM-MTD-011

Control Custom Record Audiences: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleMetadata and Organization-defined RecordsRevision2

Read atservices-platform ad3f6a65react-console baf6dae3

Coverage

  • Rule covered
  • Transition gap: FND-PFM-MTD-073
  • Validation covered
  • Permission covered
  • Edge gap: FND-PFM-MTD-073
  • Failure gap: FND-PFM-MTD-073
  • Boundary gap: FND-PFM-MTD-073
  • Concurrency gap: FND-PFM-MTD-073
  • Invariant gap: FND-PFM-MTD-073
  • Interaction covered

Test Scenarios

8 scenarios proving CAP-PFM-MTD-011; 7 bound to an existing test.

01 One-object grants do not widen to other typespermissionapinegativetest
Proves
BR-CAP-PFM-MTD-011-01
Preconditions
A role is scoped to Boat.
Steps
[ { "do": "List Boat and Manufacturer records.", "provenance": "test", "source": "services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#refuses the same role another object’s records, answering as if the object were not there" } ]
Expected
Boats are available while manufacturers return not found.
Data
A role is scoped to Boat.
Bound to
services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#refuses the same role another object’s records, answering as if the object were not there
Source
services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#refuses the same role another object’s records, answering as if the object were not there
02 Roles-only access needs the object assignmentpermissionbrowsernegativetest
Proves
BR-CAP-PFM-MTD-011-02 INV-DOM-PFM-MTD-004-09
Preconditions
Enforcement Actions is restricted to Investigators.
Steps
[ { "do": "Read and browse as broad staff and as a scoped investigator.", "provenance": "test", "source": "react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts#PLAT-M5-S14: restricted to the Investigators role and granted in Security: only investigators see and edit" } ]
Expected
Broad staff receive not found and no entry point; investigators can view and edit.
Data
Enforcement Actions is restricted to Investigators.
Bound to
services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#keeps a roles-only object from a customer-wide assignment, answering as if it were not there
services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#lets an assignment scoped to the roles-only object reach it
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts#PLAT-M5-S14: restricted to the Investigators role and granted in Security: only investigators see and edit
Source
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S14.spec.ts#PLAT-M5-S14: restricted to the Investigators role and granted in Security: only investigators see and edit
03 Built-in tiers carry their intended keysruleunittest
Proves
BR-CAP-PFM-MTD-011-03
Preconditions
Generated tier policies are available.
Steps
[ { "do": "Inspect Administrator, User and Read Only grants.", "provenance": "test", "source": "services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#gives Platform User reading, querying, creating and updating records and their history, and reading definitions" } ]
Expected
Their definition and record permissions match the corresponding tiers.
Data
Generated tier policies are available.
Bound to
services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#gives Platform Administrator every key of the two resources
services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#gives Platform User reading, querying, creating and updating records and their history, and reading definitions
services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#gives Platform Read Only reading and querying records and their history, and reading definitions
Source
services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#gives Platform User reading, querying, creating and updating records and their history, and reading definitions
04 Lifecycle removal uses delete permissionpermissionunittest
Proves
BR-CAP-PFM-MTD-011-04
Preconditions
Record routes are declared.
Steps
[ { "do": "Inspect archive and restore authorization.", "provenance": "test", "source": "services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#requires one key per route, each a console route, the health route public, every record route scoped to its object" } ]
Expected
Both actions require object-scoped delete permission.
Data
Record routes are declared.
Bound to
services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#requires one key per route, each a console route, the health route public, every record route scoped to its object
Source
services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#requires one key per route, each a console route, the health route public, every record route scoped to its object
05 Exposure projections narrow property readershippermissionunittest
Proves
BR-CAP-PFM-MTD-011-06
Preconditions
The record contains properties at each exposure level.
Steps
[ { "do": "Project it for staff, owner, portal and public audiences.", "provenance": "test", "source": "services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows a portal member the portal and public properties" } ]
Expected
The visible property sets narrow by audience while retaining record standard fields.
Data
The record contains properties at each exposure level.
Bound to
services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows staff every property, a property with no exposure rule included
services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows the owner the owner, portal and public properties
services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows a portal member the portal and public properties
Source
services-platform:modules/custom-objects/tests/unit/exposure.spec.ts#shows a portal member the portal and public properties
06 Portal predicates evaluate allowed tiesvalidationapinegativetest
Proves
BR-CAP-PFM-MTD-011-07
Preconditions
Owners, crew, role holders and publication and eligibility fixtures exist.
Steps
[ { "do": "Evaluate operation predicates for current, expired, archived and foreign-workspace cases.", "provenance": "test", "source": "services-platform:modules/custom-objects/tests/integration/services/persistence/portal-ownership-predicates.integration.spec.js#grants the owner the boat it owns now, and neither an ended ownership nor an archived boat" } ]
Expected
Only the supported local access conditions grant records and archived records remain unavailable.
Data
Owners, crew, role holders and publication and eligibility fixtures exist.
Bound to
services-platform:modules/custom-objects/tests/integration/services/persistence/portal-ownership-predicates.integration.spec.js#grants the owner the boat it owns now, and neither an ended ownership nor an archived boat
Source
services-platform:modules/custom-objects/tests/integration/services/persistence/portal-ownership-predicates.integration.spec.js#grants the owner the boat it owns now, and neither an ended ownership nor an archived boat
07 Readers receive no edit actionspermissionbrowsernegativetest
Proves
BR-CAP-PFM-MTD-011-08
Preconditions
Read-only and inaccessible-object users exist.
Steps
[ { "do": "Open the boat list, boat page and linked contact page.", "provenance": "test", "source": "react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts#PLAT-M5-S08: a read-only volunteer is offered no edit actions; a person without access sees no menu and no card" } ]
Expected
Readers have no edit controls and inaccessible users receive no object menu or card.
Data
Read-only and inaccessible-object users exist.
Bound to
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts#PLAT-M5-S08: a read-only volunteer is offered no edit actions; a person without access sees no menu and no card
Source
react-console:acceptance/custom-objects/playwright/journeys/PLAT-M5-S08.spec.ts#PLAT-M5-S08: a read-only volunteer is offered no edit actions; a person without access sees no menu and no card
08 An object-specific grant controls independent action permissionsinteractionapiproposed
Proves
BR-CAP-PFM-MTD-011-02 BR-CAP-PFM-MTD-011-04 BR-CAP-PFM-MTD-014-03
Preconditions
Two objects have records; one uses roles-only reach.
Steps
[ { "do": "Use an object-scoped reader with history permission to open navigation, records and history; attempt update, archive and publication without their grants.", "provenance": "proposed", "source": [ "services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#keeps a roles-only object from a customer-wide assignment, answering as if it were not there", "services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#requires one key per route, each a console route, the health route public, every record route scoped to its object", "services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#refuses a caller who may read boats but not their history" ] } ]
Expected
Inspect visible objects, history access and each refused action.
Data
Two objects have records; one uses roles-only reach.
Source
services-platform:modules/custom-objects/tests/e2e/custom-object-records.e2e.spec.js#keeps a roles-only object from a customer-wide assignment, answering as if it were not there,services-platform:modules/custom-objects/tests/unit/custom-object-permission-keys.spec.ts#requires one key per route, each a console route, the health route public, every record route scoped to its object,services-platform:modules/custom-objects/tests/integration/services/history/custom-object-record-history.integration.spec.js#refuses a caller who may read boats but not their history

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.