Entitlement Certificate Contract v1

Contract: stella.ops/entitlementCertificate@v1 (CONTRACT-ENTITLEMENT-CERTIFICATE-V1-072). Schema: entitlement-certificate.v1.schema.json (JSON Schema 2020-12, the payload). DSSE payload type: application/vnd.stellaops.entitlement-certificate.v1+json. Signature algorithm: ES256 (ECDSA P-256 with SHA-256; the signature is the 64-byte r || s concatenation). Examples: valid payload, invalid payload. Sprint: SPRINT_20261027_004 ENT-2. Import and storage: ENT-4. Implementation: src/__Libraries/StellaOps.Entitlements/ (EntitlementVerifier, EntitlementCertificateParser, EntitlementTrustRoot, IEntitlementTrustRootSource); tests in src/__Libraries/__Tests/StellaOps.Entitlements.Tests/, which also hold the published examples and schema to this contract. Posture: advisory only; see the Platform dossier, Installation entitlements: advisory posture.


Purpose

An entitlement certificate is a record, signed by the Licensor, of the production-use placement capacity authorised for one Installation under an accepted order, for a stated period. An operator imports it into the Installation and can verify it at any time without a connection to Stella Ops.

The certificate evidences capacity. It never enforces it: expiry, or a placement count above the authorised capacity, produces status and warnings only. Deployments, scans, evidence and running workloads are never blocked by it.

What a valid certificate establishes

A certificate that verifies against a pinned vendor root establishes, and only establishes:

It does not establish:

Its expiry does not disable delivered software or customer workloads, and does not withdraw the authorisation it recorded for its own period. Billing expiry is separate from key compromise: an expired certificate remains a valid record of its term.

Envelope

The certificate is a DSSE envelope (JSON):

{
  "payloadType": "application/vnd.stellaops.entitlement-certificate.v1+json",
  "payload": "<base64 of the canonical payload bytes>",
  "signatures": [
    { "keyid": "<issuerKeyId>", "sig": "<base64 of the ES256 signature>" }
  ]
}

Payload fields

All fields are required, and no other field is allowed.

FieldTypeMeaning
schemaVersionstringstella.ops/entitlementCertificate@v1.
serialstringThe subscription, for its whole life: ^[A-Z0-9][A-Z0-9-]{2,63}$.
revisionintegerRevision of the serial, from 1.
issuerstringLegal name of the Licensor.
issuerKeyIdstringKey identifier of the vendor entitlement key that signs this revision: in an installation, the key id of a root of purpose vendor-entitlement in the vendor trust-root set (sha256: and the SHA-256 of the key’s SubjectPublicKeyInfo).
customerOrganisationstringLegal name of the customer organisation in the order.
installationIdstringThe Installation identifier from GET /api/v1/platform/installation, lowercase UUID.
authorisedPlacementsintegerThe whole authorised placement capacity, from 1. The free allowance of 20 is not added to it.
permittedUsestringinternal-production. Use as a service for third parties needs an express order and a later contract version.
orderReferencestringReference of the accepted order under the Customer Agreement.
validFromstringStart of the authorised period, UTC, inclusive, YYYY-MM-DDTHH:MM:SSZ.
validTostringEnd of the authorised period, UTC, exclusive, later than validFrom.
issuedAtstringTime the issuer signed this revision, UTC.

Verification rules

A verifier holds only vendor public roots. It refuses, with a stated reason:

  1. an envelope that is not valid JSON, has a payload type other than the one above, or has no signature;
  2. a payload that is not canonical JSON, does not match the schema, or has validTo not later than validFrom;
  3. an envelope with no signature that verifies under a pinned vendor root, including a signature by an unknown key identifier or a key identifier that differs from issuerKeyId;
  4. a certificate whose installationId is not the verifying Installation’s identifier;
  5. a revision lower than the highest revision of the same serial that the Installation already accepted, or an equal revision whose payload bytes differ from the accepted one (rollback). An equal revision with identical bytes is the same certificate imported again;
  6. any input that contains private key material where a public root is expected.

A certificate past validTo still verifies: it is reported as expired, not as invalid. Verification fails closed: an error in any step refuses the certificate.

Supersede rules

Examples

The examples are payloads only. A real certificate is signed by the vendor entitlement key, which is never present in the product or in this repository; tests sign with ephemeral keys they generate.