Implement offline license verification (T-502)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://softbox.invalid/schemas/license.schema.json",
|
||||
"title": "SoftBox License v1",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"schema_version",
|
||||
"license_id",
|
||||
"machine_hash",
|
||||
"products",
|
||||
"issued_at",
|
||||
"perpetual",
|
||||
"update_policy",
|
||||
"rebind_policy",
|
||||
"signature"
|
||||
],
|
||||
"properties": {
|
||||
"schema_version": {
|
||||
"const": 1
|
||||
},
|
||||
"license_id": {
|
||||
"type": "string",
|
||||
"pattern": "^lic-[a-z0-9][a-z0-9-]{0,59}$"
|
||||
},
|
||||
"machine_hash": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9a-f]{64}$"
|
||||
},
|
||||
"products": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9-]+$"
|
||||
}
|
||||
},
|
||||
"issued_at": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
|
||||
"$comment": "Runtime validation is authoritative for calendar validity."
|
||||
},
|
||||
"perpetual": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"update_policy": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9._:-]{0,127}$"
|
||||
},
|
||||
"rebind_policy": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z0-9][a-z0-9._:-]{0,127}$"
|
||||
},
|
||||
"signature": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z0-9+/]{86}==$"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user