35 lines
1.7 KiB
JSON
35 lines
1.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://example.org/schema/license-v1.json",
|
|
"title": "Universal Product Licence Claims",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "licenseId", "issuer", "customer", "product", "edition", "issuedAt", "expiresAt", "verification"],
|
|
"properties": {
|
|
"version": {"const": 1},
|
|
"licenseId": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"issuer": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"customer": {"type": "string", "minLength": 1, "maxLength": 300},
|
|
"product": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"edition": {"type": "string", "minLength": 1, "maxLength": 100},
|
|
"features": {"type": "array", "items": {"type": "string", "minLength": 1}, "uniqueItems": true},
|
|
"limits": {"type": "object", "additionalProperties": {"type": "integer", "minimum": 0}},
|
|
"domains": {"type": "array", "items": {"type": "string", "minLength": 1}, "uniqueItems": true},
|
|
"instanceIds": {"type": "array", "items": {"type": "string", "minLength": 1}, "uniqueItems": true},
|
|
"issuedAt": {"type": "integer", "minimum": 1},
|
|
"notBefore": {"type": "integer", "minimum": 1},
|
|
"expiresAt": {"type": "integer", "minimum": 1},
|
|
"verification": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["mode"],
|
|
"properties": {
|
|
"mode": {"enum": ["offline", "hybrid", "online"]},
|
|
"leaseTtlSeconds": {"type": "integer", "minimum": 0},
|
|
"offlineGraceSeconds": {"type": "integer", "minimum": 0}
|
|
}
|
|
},
|
|
"metadata": {"type": "object", "additionalProperties": {"type": "string"}}
|
|
}
|
|
}
|