Skip to content

FAS-PFM-SEC-01Customer and Workspace Administration acceptance

Markdown

FAS-PFM-SEC-01

Customer and Workspace Administration acceptance

Markdown
  • DocumentProposed
  • Product intentProposed

Product areaPlatformModuleSecurity, Customers and WorkspacesRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

Scenarios

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

01 A customer workspace reaches a usable handover behaviour proposed
Exercises
CAP-PFM-SEC-001 CAP-PFM-SEC-002 CAP-PFM-SEC-003
Relies on
ATS-PFM-SEC-001-02 ATS-PFM-SEC-002-01 ATS-PFM-SEC-003-04
Preconditions
The chosen customer and workspace identifiers are unused.
Steps
[object Object]
Expected
The intended customer owns one active reachable workspace and replay does not create another.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/customers/tests/e2e/customers.e2e.spec.js#refuses a body that names no id as 400 customer_id_required, nothing generating one,services-platform:modules/tenants/tests/e2e/tenants.e2e.spec.js#lists no tenant of another customer, which is what the reach reduction means,services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#answers a tenant that is not usable yet, because the work has only been asked for
02 Loading changes ordinary availability interactionnegative proposed
Exercises
CAP-PFM-SEC-002 CAP-PFM-SEC-003
Relies on
ATS-PFM-SEC-002-09 ATS-PFM-SEC-003-11 ATS-PFM-SEC-003-13
Preconditions
An active workspace is in implementation and has separate import and activation operators.
Steps
[object Object]
Expected
Ordinary work stops during loading and returns after activation without changing the business status.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/tenants/tests/e2e/tenant-availability-gate.e2e.spec.js#is refused 403 in a tenant whose customer has been cut off,services-platform:modules/tenants/tests/e2e/hq-tenant-loading.e2e.spec.js#refuses a live tenant, an initial import going only into an implementation tenant,services-platform:modules/tenants/tests/e2e/hq-tenant-loading.e2e.spec.js#refuses the staff member who ran the import, activation being the other key
03 Cancellation restores the lifecycle without enabling work lifecycle proposed
Exercises
CAP-PFM-SEC-002 CAP-PFM-SEC-004
Relies on
ATS-PFM-SEC-002-03 ATS-PFM-SEC-004-02 ATS-PFM-SEC-004-07
Preconditions
A disabled active workspace has no protected dependencies.
Steps
[object Object]
Expected
The workspace returns to active lifecycle and remains disabled; the retained request records cancellation.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/tenants/tests/e2e/tenants.e2e.spec.js#leaves the lifecycle state where the server put it after such a patch,services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses a tenant that is still live, because people must lose access first,services-platform:modules/tenants/tests/integration/services/deletion/deletion-holds.integration.spec.js#returns the tenant to active
04 Customer authority cannot perform staff setup or retirement permissionnegative proposed
Exercises
CAP-PFM-SEC-001 CAP-PFM-SEC-002 CAP-PFM-SEC-003 CAP-PFM-SEC-004
Relies on
ATS-PFM-SEC-001-01 ATS-PFM-SEC-002-02 ATS-PFM-SEC-003-01 ATS-PFM-SEC-004-01
Preconditions
A customer Administrator and authorized Rhythm staff can reach the same customer.
Steps
[object Object]
Expected
The customer identity is refused at each staff boundary and creates no staff-controlled changes.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/customers/tests/e2e/customers.e2e.spec.js#refuses a customer-scoped caller the system route that creates a customer,services-platform:modules/tenants/tests/e2e/tenants.e2e.spec.js#refuses a customer administrator the same change on the console route, naming where it is made,services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#may not ask for a tenant at all,services-platform:modules/tenants/tests/e2e/tenant-deletion-requests.e2e.spec.js#may not ask for a tenant to be deleted
05 Replays and competing retirement actions preserve one outcome regressionnegative proposed
Exercises
CAP-PFM-SEC-003 CAP-PFM-SEC-004
Relies on
ATS-PFM-SEC-003-03 ATS-PFM-SEC-004-03 ATS-PFM-SEC-004-09
Preconditions
A disposable workspace and a controlled destructive-boundary fixture are available.
Steps
[object Object]
Expected
Each setup submission has one result; one open retirement request remains and cancellation cannot undo destruction after it starts.
Data
A disposable customer and workspace with run-owned memberships, assignments and definitions; clock-controlled expiry fixtures where needed.
Source
services-platform:modules/tenants/tests/integration/services/provisioning/provision-tenant.integration.spec.js#answers the same tenant and the same job when the same submission is sent twice,services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#refuses a second request, naming the one that is open,services-platform:modules/tenants/tests/integration/services/deletion/begin-destruction.integration.spec.js#refuses the cancel as already executing in every round destruction won

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.