Skip to content

CAP-PFM-TNL-002Open a workspace after its applications are ready

Markdown

CAP-PFM-TNL-002

Open a workspace after its applications are ready

Markdown
  • DocumentDraft
  • Product intentProposed
  • 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
Participant construction follows dependency order.A missing resource prevents opening and is identified for staff.Opening preserves the requested business mode and records first activation.
Surfaces
job
Intent sources
services-platform:docs/tenants/tenant-lifecycle-plan.md#§4.2services-platform:docs/tenants/tenant-lifecycle-plan.md#§4.5services-platform:docs/tenants/tenant-lifecycle-plan.md#§6.2

Controls

23 controls apply, from the corpus control catalogue.

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

Permissions

KeyChecked atScope
hq.tenants.provisionserviceglobal

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Proposed
The provisioning plan orders enabled participants by dependency, starting with the workspace record.
no proof recorded yet
calculationservicetest
02must prove
Proposed
A difference between the live participant order and the stored plan stops execution before participant work and reports both orders.
origin: services-platform:docs/tenants/tenant-lifecycle-plan.md#§6.1 Registration (approved 2026-10-09)
no proof recorded yet
validationservicetest
services-platform:modules/tenants/tests/unit/services/provisioning/provision-tenant-workflow.spec.js#refuses a run whose participants are not the ones it was planned for, naming both plans
03must prove
Proposed
Each remote participant builds through its application’s lifecycle function; disabled or unreachable participants refuse the step.
no proof recorded yet
policyservicetest
services-platform:modules/tenants/tests/integration/services/provisioning/provision-tenant.integration.spec.js#asks the other macroservice to provision each of its participants, for the tenant being provisioned
04must prove
Proposed
Readiness checks every planned participant and prevents opening when a participant reports missing resources.
no proof recorded yet
validationservicetest
services-platform:modules/tenants/tests/integration/services/provisioning/provision-tenant.integration.spec.js#asks every participant to confirm what it made before the tenant is opened
05must prove
Proposed
Activation changes provisioning to active, preserves the first activation time and applies the requested business status; another activation has no further effect.
no proof recorded yet
lifecycleservice, databasetest
06must prove
Proposed
Retry completes outstanding work while preserving completed participant steps.
no proof recorded yet
invariantservicetest
services-platform:modules/tenants/tests/integration/services/provisioning/provision-tenant.integration.spec.js#does the missing work and not the finished work when it is provisioned again
07
Proposed
Provisioning executes participants sequentially in dependency order.
policyserviceobserved
08must prove
Proposed
Activation enables always-available applications; failures establishing founding-staff access or development grants are logged, while application-enablement errors can fail the task.
no proof recorded yet
policyserviceobserved
09
Proposed
The provisioning execution allows seven days and retries transient task failures, while treating refusals as final for that attempt.
policyservicetest
services-platform:modules/tenants/tests/unit/services/provisioning/provision-tenant-workflow.spec.js#gives the execution a week, which is longer than one attempt of every task together

Scenarios

IdGivenWhenThenProvenance
01The plan enables CRM, Accounting and Commerce participants.Provisioning invokes the plan.Calls follow dependency order, including valid not-applicable responses.test
services-platform:modules/tenants/tests/integration/services/provisioning/provision-tenant.integration.spec.js#provisions accounting.configuration after the tenant row and accepts its not_applicable
02Readiness finds a missing seed.The job attempts to open the workspace.The job reports the seed and leaves customer access closed.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.