Licence
What It Models
A licence expresses whether a workspace has commercial permission for an application. It is computed from staff exceptions, company contract windows and catalogue rules. Operational readiness is evaluated separately before licensed applications become usable.
Identity and Attributes
Each override records an author, effect, reason and period, plus any later withdrawal. Complete company reads retain contracts and line items and derive application windows through the release’s product map. Individual line boundaries replace the matching contract boundaries. Adjacent or overlapping terms merge, and the resolver adds seven calendar days of grace to finite windows. Flags identify inputs that cannot produce coverage. Synchronization health records successful, failed and unconfigured attempts.
Relationships
One company’s coverage may serve production and sandbox workspaces. Security owns the workspace’s company link. Availability combines the derived licence with operational application state, and the console displays the resulting answer. Export allowances are stored alongside licensing but administered and consumed by the export owner.
Invariants
Active withholds take priority. Current and grace contract coverage precede staff grants when selecting the reported source. Override periods are evaluated at read time, and withdrawal removes their effect without deleting history. A provider failure records health while retaining the last commercial snapshot. Exact grace length comes from the resolver; database checks enforce only its permitted date shape.
How It Is Stored and Shared
Licensing owns overrides, company copies, windows, health, products and export allowances. These records have no workspace row policies because commercial coverage and authorization reads span workspaces. Staff route authority and explicit query scope protect full reads; the customer mapper removes internal commercial and personal details. No custom-field capability is declared.
Open Design Questions
Renewal warnings remain accepted but unimplemented. Later approved entitlement directions differ from this earlier model, and concurrent company replacement has no established source-order guarantee.