Skip to content

FAS-PFM-SEC-04Access Definitions and Authorization acceptance

Markdown

FAS-PFM-SEC-04

Access Definitions and Authorization acceptance

Markdown
  • DocumentProposed
  • Product intentProposed

Product areaPlatformModuleSecurity, Customers and WorkspacesRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

Scenarios

5 scenarios proving FEAT-PFM-SEC-04 as a whole.

01 A custom role remains usable through its full administrative life behaviour proposed
Exercises
CAP-PFM-SEC-012
Relies on
ATS-PFM-SEC-012-13
Preconditions
A customer administrator can compose an unreferenced custom role.
Steps
[object Object]
Expected
The saved definition persists and its archived identity leaves the active list.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
react-console:e2e/security/roles.spec.ts#is created from a name and a permission,react-console:e2e/security/roles.spec.ts#is on the Roles list, searchable, and marked custom,react-console:e2e/security/roles.spec.ts#is edited, and the change survives a reload,react-console:e2e/security/roles.spec.ts#is given to a person, who then shows on its Members tab,react-console:e2e/security/roles.spec.ts#is archived once nobody holds it, and leaves the active list,react-console:e2e/security/roles.spec.ts#refuses to archive a role somebody still holds, and names them,react-console:e2e/security/roles.spec.ts#shows a built-in role read-only, and duplicates it into one that can be changed
02 Role composition changes effective request authority interaction proposed
Exercises
CAP-PFM-SEC-012 CAP-PFM-SEC-013 CAP-PFM-SEC-015
Relies on
ATS-PFM-SEC-012-05 ATS-PFM-SEC-013-05 ATS-PFM-SEC-015-06
Preconditions
A role references a policy and an active member holds it.
Steps
[object Object]
Expected
The new materialized permissions constrain requests while shared definitions retain their ownership.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/security/tests/integration/services/definitions/manage-roles.integration.spec.js#refuses a reference to another customer's policy, and writes no role at all,services-platform:modules/security/tests/integration/services/catalog/reconcile-catalog.integration.spec.js#grants a newly shipped built-in to nobody: no role references it,services-platform:modules/security/tests/unit/authorizer/authorize.spec.ts#lists only the tenants a grant could reach, not every tenant of the customer
03 A withdrawn built-in returns with the same identity lifecycle proposed
Exercises
CAP-PFM-SEC-012 CAP-PFM-SEC-013 CAP-PFM-SEC-015
Relies on
ATS-PFM-SEC-012-02 ATS-PFM-SEC-013-06 ATS-PFM-SEC-015-05
Preconditions
A published built-in has holders and a separate customer copy.
Steps
[object Object]
Expected
The built-in identity returns, the customer copy stays separate, and fresh requests follow the currently published content.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/security/tests/e2e/definitions.e2e.spec.js#refuses a write against a built-in as read-only rather than as a record that is not there,services-platform:modules/security/tests/integration/services/catalog/reconcile-catalog.integration.spec.js#renames a key through formerKeys, keeping the row and every reference to it,services-platform:modules/security/tests/unit/authorizer/registry-manifest.spec.ts#refuses a staffOnly key below a system route
04 Customer edits cannot alter staff or source-owned authority permissionnegative proposed
Exercises
CAP-PFM-SEC-012 CAP-PFM-SEC-014 CAP-PFM-SEC-015
Relies on
ATS-PFM-SEC-012-12 ATS-PFM-SEC-014-04 ATS-PFM-SEC-015-04
Preconditions
A customer administrator can edit customer roles and has a derived assignment in view.
Steps
[object Object]
Expected
Each operation is refused within its distinct authority boundary.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/security/tests/e2e/definitions.e2e.spec.js#lists every role but the staff-only ones, the built-ins a customer assigns among them,services-platform:modules/security/tests/integration/services/persistence/assignments.derived.integration.spec.js#refuses an amendment 409 derived_assignment, naming where to change it,services-platform:modules/security/tests/e2e/staff-separation.e2e.spec.js#refuses the widest grant Rhythm holds, every one of them
05 Expired derived access cannot survive in an earlier context regressionnegative proposed
Exercises
CAP-PFM-SEC-014 CAP-PFM-SEC-015
Relies on
ATS-PFM-SEC-014-05 ATS-PFM-SEC-015-07
Preconditions
A portal contact has a derived assignment whose end precedes the retained context expiry.
Steps
[object Object]
Expected
The stored validity boundary stops derived authority even while the context remains otherwise valid.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/security/tests/e2e/derived-assignments.e2e.spec.js#refuses the same still-unexpired context once valid_until has passed, because validity is read per request,services-platform:modules/security/tests/unit/authorizer/authorize.spec.ts#the context expires at iat + the gateway TTL + 30 s and carries no IP address

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.