83 lines
2.6 KiB
JSON
83 lines
2.6 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://releases.hololake.invalid/contracts/release-broadcast.schema.json",
|
|
"title": "HoloLake signed opt-in release broadcast",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema",
|
|
"releaseId",
|
|
"version",
|
|
"publishedAt",
|
|
"features",
|
|
"compatibility",
|
|
"restart",
|
|
"platforms",
|
|
"rollback"
|
|
],
|
|
"properties": {
|
|
"schema": { "const": "hololake.release-broadcast/v1" },
|
|
"releaseId": { "type": "string", "minLength": 1 },
|
|
"version": {
|
|
"type": "string",
|
|
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
|
|
},
|
|
"publishedAt": { "type": "string", "format": "date-time" },
|
|
"features": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": { "type": "string", "minLength": 1 }
|
|
},
|
|
"fixes": {
|
|
"type": "array",
|
|
"items": { "type": "string", "minLength": 1 }
|
|
},
|
|
"compatibility": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["minimumVersion", "dataMigrationRequired"],
|
|
"properties": {
|
|
"minimumVersion": { "type": "string", "minLength": 1 },
|
|
"dataMigrationRequired": { "type": "boolean" },
|
|
"notes": { "type": "string" }
|
|
}
|
|
},
|
|
"restart": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["required", "automaticAllowed"],
|
|
"properties": {
|
|
"required": { "const": true },
|
|
"automaticAllowed": { "const": false },
|
|
"message": { "type": "string" }
|
|
}
|
|
},
|
|
"platforms": {
|
|
"type": "object",
|
|
"minProperties": 1,
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["url", "size", "sha256", "tauriSignature"],
|
|
"properties": {
|
|
"url": { "type": "string", "pattern": "^https://" },
|
|
"size": { "type": "integer", "minimum": 1 },
|
|
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
"tauriSignature": { "type": "string", "minLength": 1 },
|
|
"platformCodeSignatureReceipt": { "type": "string", "minLength": 1 },
|
|
"notarizationReceipt": { "type": "string", "minLength": 1 }
|
|
}
|
|
}
|
|
},
|
|
"rollback": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["supported", "healthReceiptRequired"],
|
|
"properties": {
|
|
"supported": { "const": true },
|
|
"healthReceiptRequired": { "const": true },
|
|
"previousVersion": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
}
|