Skip to content

JNY-PFM-TNL-002Staff finish an interrupted workspace build

Markdown

JNY-PFM-TNL-002

Staff finish an interrupted workspace build

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindJourneyProduct areaPlatformModuleWorkspace Lifecycle Across ApplicationsRevision2End-to-endRequired

Read atservices-platform ad3f6a65

The Formal Contract

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

Goal
A failed workspace becomes usable through an accountable replacement attempt.
Screens
/hq/jobs/tenant_provisioning/{jobId}

Steps

#SurfaceActionCapabilityExpectedProvenance
1tenant_provisioning: RecordFailureRetain the failed participant result and stop construction.CAP-PFM-TNL-003The workspace remains with its partial resources and failed lifecycle.test
services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#leaves the tenant saying its provisioning failed, which is what makes it retryable
2notifyJobRequesterRead the failure notice.CAP-PFM-TNL-003The notice explains the outcome and the available retry or deletion choices.test
3/console/{tenantId}Attempt ordinary customer entry into the failed workspace.CAP-PFM-TNL-005Availability remains closed to customer context.test
services-platform:modules/tenants/tests/unit/services/access/tenant-availability.spec.js#answers the rule for every combination of lifecycle state, status and caller
4getTenantProvisioningInspect the provisioning snapshot’s failure explanation.CAP-PFM-TNL-003The snapshot retains the participant’s summary.test
services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#says so in the snapshot too, with the failure summary the task refused with
5retryTenantProvisioningCorrect the cause and request retry.CAP-PFM-TNL-003The response identifies a new attempt linked to the failed build.test
6tenant_provisioning (retry)Complete the outstanding construction and readiness work.CAP-PFM-TNL-002Retained steps are not repeated and the workspace becomes active.test

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate5Staff decide to abandon construction.Disable the failed workspace and submit deletion.The never-opened fixture enters its shorter waiting path.test
alternate1Execution never reached a participant task.Repair the stranded workspace after job reconciliation.Staff can retry or request removal from failed lifecycle.test
services-platform:modules/tenants/tests/integration/services/provisioning/repair-stranded-provisioning.integration.spec.js#moves the stranded tenant to provisioning_failed, which makes it retryable and deletable again
failure5The existing build did not fail.Reject the retry request.Workspace and job remain unchanged.test
services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#refuses to provision a tenant again whose provisioning did not fail

Assertions

IdStatementProvenance
01Failure retains the constructed resources and a readable explanation.test
services-platform:modules/tenants/tests/e2e/tenant-provisioning.e2e.spec.js#says so in the snapshot too, with the failure summary the task refused with
02Replacement construction completes outstanding work without duplicating completed steps.test
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
03Disposal of the disabled never-opened fixture uses a one-day eligibility period.test

End-to-end policy: required: The outcome crosses lifecycle operations and warrants end-to-end verification; the current bindings establish backend fixtures, while screen and deployed-service coverage remain separate gaps.

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.