---
id: TST-PFM-OPS-087
title: Provision workspace application
kind: integration
product_area: platform
module: operations
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - >-
    modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js
implements:
  - ATS-PFM-OPS-011-05
  - ATS-PFM-OPS-011-06
  - ATS-PFM-OPS-011-11
  - ATS-PFM-OPS-015-02
  - ATS-PFM-OPS-015-14
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
estimate_basis: Scheduling estimate only; no duration is measured during this documentation pass.
isolation: >-
  The prepared local test database and suite-owned identifiers; existing hooks control rollback or
  cleanup.
evidence:
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js
    at ad3f6a6582843008ed0f5a17b131878d15829af1: existing suite body, setup, assertions and cleanup.
binding_note: Bindings apply only to the listed specification scenarios.
assertion_sources:
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#enables
    it, because an application with no participants has nothing that can fail
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#writes
    the operational row the resolver reads
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#records
    the grant in the audit trail as a widening, under the licence_override entity type
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#records
    the reason the staff member gave, which is the whole point of requiring one
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#records
    the operational change as its own event, under the tenant_application entity type
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#leaves
    the operational row exactly as it was, because the licence does not decide the state
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#provisions
    nothing, because withholding an application is not a reason to build it
  - >-
    services-platform:modules/licensing/tests/integration/services/enablement/provision-tenant-application.integration.spec.js#leaves
    the tenant with no operational row at all
---

# Provision workspace application

## Verification Boundary

This suite exercises application licensing through production operations against the local database. Its implementation is present at the pinned source revision, and this register records no execution result.

## What This Suite Proves

The checks prepare applications, retain participant-specific failures, enforce operational starting states and inspect security-history and refresh effects. The scenario bindings name the attributed outcomes.

## What It Does Not Prove

Local execution does not establish deployed infrastructure, live commercial-provider configuration or authorization-cache completion. Registration and an implemented suite do not establish a passing result.

## Real Dependencies and Test Doubles

The prepared PostgreSQL database and production operations under test are real. Execution startup or probing uses a test channel where the suite declares one.

## Must Not Be Doubled

The persistence operations, database constraints and reads under assertion remain real.
