emissary/internal/spec/app/schema.json

87 lines
2.9 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://app.emissary.cadoles.com/spec.json",
"title": "AppSpec",
"description": "Emissary 'App' specification",
"type": "object",
"properties": {
"apps": {
"type": "object",
"patternProperties": {
".*": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"sha256sum": {
"type": "string"
},
"address": {
"type": "string"
},
"format": {
"type": "string",
2023-03-21 15:21:19 +01:00
"enum": [
"zip",
"tar.gz"
]
}
},
2023-03-21 15:21:19 +01:00
"required": [
"url",
"sha256sum",
"address",
"format"
],
"additionalProperties": false
}
}
2023-03-21 13:28:41 +01:00
},
"auth": {
"type": "object",
"properties": {
2023-03-21 15:21:19 +01:00
"local": {
"type": "object",
"properties": {
"key": {
"type": ["object", "string"]
},
"accounts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"algo": {
"type": "string"
},
"claims": {
"type": "object"
}
},
"required": [
"username",
"password",
"algo"
]
}
}
},
"required": [
"key"
]
2023-03-21 13:28:41 +01:00
}
2023-03-21 15:21:19 +01:00
}
}
},
2023-03-21 15:21:19 +01:00
"required": [
"apps"
],
"additionalProperties": false
}