mirror of https://github.com/jetkvm/kvm.git
160 lines
5.0 KiB
JSON
160 lines
5.0 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "OTA Test Data Schema",
|
|
"description": "Schema for OTA update test data",
|
|
"type": "object",
|
|
"required": ["name", "remoteMetadata", "localMetadata", "updateParams"],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "Name of the test case"
|
|
},
|
|
"withoutCerts": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Whether to run the test without Root CA certificates"
|
|
},
|
|
"remoteMetadata": {
|
|
"type": "array",
|
|
"description": "Remote metadata responses",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["params", "code", "data"],
|
|
"properties": {
|
|
"params": {
|
|
"type": "object",
|
|
"description": "Query parameters used for the request",
|
|
"required": ["prerelease"],
|
|
"properties": {
|
|
"prerelease": {
|
|
"type": "string",
|
|
"description": "Whether to include pre-release versions"
|
|
},
|
|
"appVersion": {
|
|
"type": "string",
|
|
"description": "Application version string",
|
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
},
|
|
"systemVersion": {
|
|
"type": "string",
|
|
"description": "System version string",
|
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"code": {
|
|
"type": "integer",
|
|
"description": "HTTP status code"
|
|
},
|
|
"data": {
|
|
"type": "object",
|
|
"required": ["appVersion", "appUrl", "appHash", "systemVersion", "systemUrl", "systemHash"],
|
|
"properties": {
|
|
"appVersion": {
|
|
"type": "string",
|
|
"description": "Application version string",
|
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
},
|
|
"appUrl": {
|
|
"type": "string",
|
|
"description": "URL to download the application",
|
|
"format": "uri"
|
|
},
|
|
"appHash": {
|
|
"type": "string",
|
|
"description": "SHA-256 hash of the application",
|
|
"pattern": "^[a-f0-9]{64}$"
|
|
},
|
|
"systemVersion": {
|
|
"type": "string",
|
|
"description": "System version string",
|
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
},
|
|
"systemUrl": {
|
|
"type": "string",
|
|
"description": "URL to download the system",
|
|
"format": "uri"
|
|
},
|
|
"systemHash": {
|
|
"type": "string",
|
|
"description": "SHA-256 hash of the system",
|
|
"pattern": "^[a-f0-9]{64}$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"localMetadata": {
|
|
"type": "object",
|
|
"description": "Local metadata containing current installed versions",
|
|
"required": ["systemVersion", "appVersion"],
|
|
"properties": {
|
|
"systemVersion": {
|
|
"type": "string",
|
|
"description": "Currently installed system version",
|
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
},
|
|
"appVersion": {
|
|
"type": "string",
|
|
"description": "Currently installed application version",
|
|
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"updateParams": {
|
|
"type": "object",
|
|
"description": "Parameters for the update operation",
|
|
"required": ["includePreRelease"],
|
|
"properties": {
|
|
"includePreRelease": {
|
|
"type": "boolean",
|
|
"description": "Whether to include pre-release versions"
|
|
},
|
|
"components": {
|
|
"type": "object",
|
|
"description": "Component update configuration",
|
|
"properties": {
|
|
"system": {
|
|
"type": "string",
|
|
"description": "System component update configuration (empty string to update)"
|
|
},
|
|
"app": {
|
|
"type": "string",
|
|
"description": "App component update configuration (version string to update to)"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"expected": {
|
|
"type": "object",
|
|
"description": "Expected update results",
|
|
"required": [],
|
|
"properties": {
|
|
"system": {
|
|
"type": "boolean",
|
|
"description": "Whether system update is expected"
|
|
},
|
|
"app": {
|
|
"type": "boolean",
|
|
"description": "Whether app update is expected"
|
|
},
|
|
"error": {
|
|
"type": "string",
|
|
"description": "Error message if the test case is expected to fail"
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
|