emissary/internal/agent/controller/app/spec/schema.json

160 lines
6.1 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
2023-03-22 18:15:22 +01:00
"$id": "https://app.edge.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"
]
},
"storage": {
"type": "object",
"properties": {
"blobStoreDsn": {
"type": "string"
},
"documentStoreDsn": {
"type": "string"
},
"shareStoreDsn": {
"type": "string"
}
},
"required": [
"blobStoreDsn",
"documentStoreDsn",
"shareStoreDsn"
],
"additionalProperties": false
}
},
2023-03-21 15:21:19 +01:00
"required": [
"url",
"sha256sum",
"address",
"format",
"storage"
2023-03-21 15:21:19 +01:00
],
"additionalProperties": false
}
}
2023-03-21 13:28:41 +01:00
},
"config": {
2023-03-21 13:28:41 +01:00
"type": "object",
"properties": {
"appUrlResolving": {
2023-03-21 15:21:19 +01:00
"type": "object",
"properties": {
"ifaceMappings": {
"type": "object",
"patternProperties": {
".*": {
"type": "string"
}
}
2023-03-21 15:21:19 +01:00
},
"defaultUrlTemplate": {
"type": "string"
}
},
"required": ["defaultUrlTemplate"],
"additionalProperties": false
},
"unexpectedHostRedirect": {
"type": "object",
"properties": {
"acceptedHostPatterns": {
2023-03-21 15:21:19 +01:00
"type": "array",
"items": {
"type": "string"
2023-03-21 15:21:19 +01:00
}
2023-03-28 20:43:45 +02:00
},
"hostTarget": {
2023-03-28 20:43:45 +02:00
"type": "string"
2023-03-21 15:21:19 +01:00
}
},
"required": ["acceptedHostPatterns", "hostTarget"],
"additionalProperties": false
},
"auth": {
"type": "object",
"properties": {
"local": {
"type": "object",
"properties": {
"key": {
"type": ["object", "string"]
},
"signingAlgorithm": {
"type": "string"
},
"accounts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"algo": {
"type": "string"
},
"claims": {
"type": "object"
}
},
"required": [
"username",
"password",
"algo"
]
}
},
"cookieDomain": {
"type": "string"
},
"cookieDuration": {
"type": "string"
}
},
"required": [
"key",
"signingAlgorithm"
],
"additionalProperties": false
}
},
"additionalProperties": false
2023-03-21 13:28:41 +01:00
}
},
"additionalProperties": false
}
},
2023-03-21 15:21:19 +01:00
"required": [
"apps"
],
"additionalProperties": false
}