Workspace Application
What It Models
A workspace application records the operational readiness of one application in one workspace. Licence and readiness together produce the availability answer used by the console and request authorization. A missing operational record means preparation has never been recorded.
Identity and Attributes
The catalogue supplies the application key, name, optional description, display order and licensing mode. Participant declarations identify preparation work. Operational records hold state, any required reason, change attribution and first enablement. The service preserves first enablement; the database prohibits a non-null first-enablement time with provisioning but does not enforce immutability of that time.
Relationships
A staff grant prepares an application only when its workspace has no operational record. Workspace activation and deployment backfill insert missing core rows. Applications needing no licence bypass readiness in availability calculation, while an active withhold still refuses them. HQ is available by rule outside this catalogue.
Invariants
The primary key permits one row per workspace and application. Failed preparation and suspension need reasons. Staff controls check their starting state before the persistence writer locks the row, so concurrent actions are not protected from stale decisions. Outcome writes after preparation do not compare the starting state again.
How It Is Stored and Shared
Licensing stores catalogue and operational records without workspace row policies and retains explicit scope in its statements. Security uses their availability in authorization. The workspace administrative read is declared with workspace routes and provisionally documented by Console Shell. Workspace deletion removes the operational records, and no custom fields are declared.
Open Design Questions
An interrupted preparation can remain provisioning indefinitely. Staff retry admits failed preparation only, so a recovery mechanism still needs a decision.