Skip to content

CAP-PFM-TNL-013Schedule deliberate workspace deletion

Markdown

CAP-PFM-TNL-013

Schedule deliberate workspace deletion

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleWorkspace Lifecycle Across ApplicationsRevision2

Read atservices-platform ad3f6a65

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Deletion starts from a disabled, eligible workspace with typed name confirmation.Later configuration changes do not shorten the recorded waiting period.Only one request remains open and cancellation is retained as history.
Surfaces
consoleapijob
Intent sources
services-platform:docs/tenants/tenant-lifecycle-plan.md#§5.1services-platform:docs/tenants/tenant-lifecycle-plan.md#§5.2services-platform:docs/tenants/tenant-lifecycle-plan.md#§5.3services-platform:docs/tenants/tenant-lifecycle-plan.md#§5.7services-platform:docs/tenants/tenant-lifecycle-plan.md#§13 D1, D2, D3

Controls

29 controls apply, from the corpus control catalogue.

TC-AVL-001 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-DAT-001 TC-DAT-003 TC-DAT-004 TC-IAM-001 TC-IAM-002 TC-IAM-003 TC-IAM-004 TC-IAM-005 TC-IAM-006 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003 TC-PI-005 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
platform.tenants.deletion-requestapiglobal

Business Rules

12 rules, 10 to be proved before approval. A rule's product intent is derived from its origin: 12 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Deletion requests require Rhythm staff with deletion-request authority and are unavailable to customer administrators.
no proof recorded yet
permissionapi, servicetest
02
Confirmed
The requesting staff member is the sole approver; deletion requires no second authorization person.
origin: services-platform:docs/tenants/tenant-lifecycle-plan.md#§13 D2 (Andrew, 2026-10-09)
policyservicedocumented
03must prove
Confirmed
A request repeats the workspace name, supplies a reason of ten to two thousand characters and includes the version staff reviewed.
no proof recorded yet
validationapi, servicetest
services-platform:modules/tenants/tests/e2e/tenant-deletion-requests.e2e.spec.js#refuses a confirmation that does not repeat the tenant's name as 400
04must prove
Confirmed
Deletion accepts a disabled active or provisioning-failed workspace that is unlocked, has no children and is not a protected development workspace.
no proof recorded yet
validationservicetest
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
05must prove
Confirmed
Only one deletion request may remain open per workspace; service and database checks reject another and identify the existing request.
no proof recorded yet
invariantservice, databasetest
06must prove
Confirmed
After cancellation, another deletion request creates a fresh history entry and waiting period rather than reviving the cancelled request.
no proof recorded yet
lifecycleservicetest
services-platform:modules/tenants/tests/integration/services/deletion/request-deletion.integration.spec.js#allows a new request, with a new waiting period, once the first is cancelled
07must prove
Confirmed
Standard eligibility is fixed when requested, defaults to thirty days and refuses a Production setting below fourteen days.
origin: services-platform:docs/tenants/tenant-lifecycle-plan.md#§13 D1 (Andrew, 2026-10-09)
no proof recorded yet
calculationservicetest
services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#refuses a configured period below fourteen days rather than quietly raising it
08must prove
Confirmed
A workspace without a first activation time waits one day, including in Production.
no proof recorded yet
calculationservicetest
services-platform:modules/tenants/tests/unit/services/deletion/waiting-period.spec.js#waits one day in Production too, where the fourteen-day floor does not apply to it
09must prove
Confirmed
Outside Production, disposable test workspaces default to ten minutes and may request a shorter wait; the shortcut is refused for other workspaces and in Production.
origin: services-platform:docs/tenants/tenant-lifecycle-plan.md#§5.3 Disposable test tenants (approved)
no proof recorded yet
calculationservicetest
10must prove
Confirmed
The request transaction copies workspace and customer identity, records the actor, reason and time, schedules notices and the watcher job, and moves the workspace to deletion pending.
no proof recorded yet
lifecycleservice, databasetest
11must prove
Confirmed
Staff may request deletion of the customer with its final workspace; omission keeps the customer record.
origin: services-platform:docs/tenants/tenant-lifecycle-plan.md#§6.4 shared, platform.customers (approved)
no proof recorded yet
policyservicetest
12
Confirmed
Long-disabled workspaces appear in a staff report rather than entering deletion automatically.
policyserviceobserved

Scenarios

IdGivenWhenThenProvenance
01A departed association’s workspace is disabled.Staff confirm its name and request deletion.A standard request fixes eligibility thirty days later and records the request notice.test
services-platform:modules/tenants/tests/e2e/tenant-deletion-requests.e2e.spec.js#answers a scheduled request against the tenant asked about
02A failed build has no first activation time.Staff request its deletion after disabling it.Eligibility is recorded one day after the request.test

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.