Skip to content

DOM-PFM-OPS-003Licence

Markdown

DOM-PFM-OPS-003

Licence

Markdown
  • DocumentDraft
  • ImplementationObserved

Planning

Specified by
CON-PFM-OPS-003

Design

Owned by
SVC-PFM-OPS-licensing

KindDomain objectProduct areaPlatformModuleOperational RecordsRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

Relationships

ToCardinalityOwnershipCrosses a serviceOn archive or delete
DOM-PFM-OPS-004one licence per workspace and application to one operational recordThe related owner maintains the link; availability combines the licence with the operational stateno
DOM-PFM-CSH-004one licence answer to one console application entryThe related owner maintains the link; the console presents the answer it is givenno

Invariants

InvariantProtectsEnforced atProvenance
INV-DOM-PFM-OPS-003-01
Override creation validates a workspace, an application, a permitted effect and a nonblank reason.
service, databasetest
services-platform:modules/licensing/tests/e2e/licensing.e2e.spec.js#refuses an override with no reason, with 400 naming the field
INV-DOM-PFM-OPS-003-02
A supplied end must follow the start; customer-workspace grants require an end through service validation.
service, databasetest
services-platform:modules/licensing/tests/e2e/licensing.e2e.spec.js#refuses a grant on a customer tenant that does not say when it ends, with 400
INV-DOM-PFM-OPS-003-03
Supported operations retain the decision and permit a single withdrawal recording author and time together.
servicetest
INV-DOM-PFM-OPS-003-04
An unrevoked override applies from its start inclusive until its end exclusive.
service, databasetest
services-platform:modules/licensing/tests/unit/availability/application-availability.spec.ts#is not in force at the instant it ends, so a replacement starting there leaves no overlap
INV-DOM-PFM-OPS-003-05
Any active withhold denies the application despite other grants or contract coverage.
service, databasetest
services-platform:modules/licensing/tests/unit/availability/application-availability.spec.ts#lets a withhold beat always_available, which is the only way to take one of those away
INV-DOM-PFM-OPS-003-06
The resolver adds exactly seven calendar days of grace to finite windows and none to open-ended windows.
servicetest
INV-DOM-PFM-OPS-003-07
Readable in-force contracts with mapped products supply coverage; unresolved inputs produce flags instead.
servicetest
services-platform:modules/licensing/tests/unit/licences/resolve-licence-windows.spec.ts#resolves nothing for a status it has never heard of, and flags it so the vocabulary can be confirmed
INV-DOM-PFM-OPS-003-08
Successful reads replace contracts, lines, windows and success health together; provider failures update failure health while preserving coverage.
servicetest
INV-DOM-PFM-OPS-003-09
Failed synchronization health must carry an error, which the service redacts before storage.
database, serviceobserved
INV-DOM-PFM-OPS-003-10
Unique partial indexes permit one unrevoked allowance at customer scope and one per customer-workspace pair.
databaseobserved
services-platform:modules/licensing/db/data-export-entitlements.table.ts (data_export_entitlements_customer_uidx, data_export_entitlements_tenant_uidx)
INV-DOM-PFM-OPS-003-11
Deleting a workspace retains commercial-company copies and windows for other workspaces that share them.
serviceobserved

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.