{ "$schema": "https://json-schema.org/draft/2019-09/schema", "$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", "enum": [ "zip", "tar.gz", "zim" ] }, "storage": { "type": "object", "properties": { "blobStoreDsn": { "type": "string" }, "documentStoreDsn": { "type": "string" }, "shareStoreDsn": { "type": "string" } }, "required": [ "blobStoreDsn", "documentStoreDsn", "shareStoreDsn" ], "additionalProperties": false } }, "required": [ "url", "sha256sum", "address", "format", "storage" ], "additionalProperties": false } } }, "config": { "type": "object", "properties": { "appUrlResolving": { "type": "object", "properties": { "ifaceMappings": { "type": "object", "patternProperties": { ".*": { "type": "string" } } }, "defaultUrlTemplate": { "type": "string" } }, "required": [ "defaultUrlTemplate" ], "additionalProperties": false }, "unexpectedHostRedirect": { "type": "object", "properties": { "acceptedHostPatterns": { "type": "array", "items": { "type": "string" } }, "hostTarget": { "type": "string" } }, "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 } }, "additionalProperties": false } }, "required": [ "apps" ], "additionalProperties": false }