feat: establish native desktop update trust root
This commit is contained in:
parent
a2302cfd13
commit
cff488bb03
29 changed files with 8485 additions and 60 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://releases.hololake.invalid/contracts/release-broadcast.schema.json",
|
||||
"$id": "urn:hololake:release-broadcast:v1",
|
||||
"title": "HoloLake signed opt-in release broadcast",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
|
|
@ -8,12 +8,10 @@
|
|||
"schema",
|
||||
"releaseId",
|
||||
"version",
|
||||
"publishedAt",
|
||||
"features",
|
||||
"compatibility",
|
||||
"restart",
|
||||
"pub_date",
|
||||
"notes",
|
||||
"platforms",
|
||||
"rollback"
|
||||
"hololake"
|
||||
],
|
||||
"properties": {
|
||||
"schema": { "const": "hololake.release-broadcast/v1" },
|
||||
|
|
@ -22,61 +20,69 @@
|
|||
"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" }
|
||||
}
|
||||
},
|
||||
"pub_date": { "type": "string", "format": "date-time" },
|
||||
"notes": { "type": "string", "minLength": 1 },
|
||||
"platforms": {
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"additionalProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["url", "size", "sha256", "tauriSignature"],
|
||||
"required": ["url", "signature", "size", "sha256"],
|
||||
"properties": {
|
||||
"url": { "type": "string", "pattern": "^https://" },
|
||||
"url": { "type": "string", "format": "uri", "pattern": "^https://" },
|
||||
"size": { "type": "integer", "minimum": 1 },
|
||||
"sha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
||||
"tauriSignature": { "type": "string", "minLength": 1 },
|
||||
"signature": { "type": "string", "minLength": 1 },
|
||||
"platformCodeSignatureReceipt": { "type": "string", "minLength": 1 },
|
||||
"notarizationReceipt": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
}
|
||||
},
|
||||
"rollback": {
|
||||
"hololake": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["supported", "healthReceiptRequired"],
|
||||
"required": ["features", "compatibility", "restart", "rollback"],
|
||||
"properties": {
|
||||
"supported": { "const": true },
|
||||
"healthReceiptRequired": { "const": true },
|
||||
"previousVersion": { "type": "string" }
|
||||
"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" }
|
||||
}
|
||||
},
|
||||
"rollback": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["supported", "healthReceiptRequired"],
|
||||
"properties": {
|
||||
"supported": { "const": true },
|
||||
"healthReceiptRequired": { "const": true },
|
||||
"previousVersion": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue