Files
P42_wssGateway/configSchema.json
T
2025-10-05 10:11:03 +00:00

157 lines
5.1 KiB
JSON

{
"$id": "https://nicsys.eu/wssGW-config.schema.json",
"title": "wssGW Configuration",
"description": "wssGateway is one of the components od Myeic's bus.",
"type": "object",
"properties": {
"serviceName": {
"type": "string"
},
"accessRights": {
"type": "array",
"items": {
"type": "object",
"properties": {
"roles": {
"type": [
"string",
"array"
],
"items": {
"type": "string"
}
},
"canPublish": {
"type": "array",
"items": {
"type": "string"
}
},
"canSubscribe": {
"type": "array",
"items": {
"type": "string"
}
},
"mustSubscribe": {
"type": "array",
"items": {
"type": "string"
}
},
"canGet": {
"type": "array",
"items": {
"type": "string"
}
},
"canSet": {
"type": "array",
"items": {
"type": "string"
}
},
"canDo": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"roles",
"canPublish",
"canSubscribe",
"mustSubscribe"
]
}
},
"redis": {
"type": "object",
"properties": {
"host": { "type": "string" },
"tls": { "type": "boolean" },
"port": { "type": "integer" },
"user": { "type": "string" },
"pass": { "type": "string" },
"basePrefix": { "type": "string" },
"challengePrefix": { "type": "string" },
"historizeMax": { "type": "integer" },
"historizePrefix": { "type": "string" },
"platformStateKey": { "type": "string" },
"storeMaxSize": { "type": "integer" },
"storePrefix": { "type": "string" },
"historizeChannels": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"basePrefix",
"challengePrefix",
"historizeChannels",
"historizeMax",
"historizePrefix",
"platformStateKey",
"storeMaxSize",
"storePrefix"
]
},
"server": {
"type": "object",
"properties": {
"certFile": { "type": "string" },
"certKeyFile": { "type": "string" },
"listenHost": { "type": "string" },
"listenPort": { "type": ["integer","null"] },
"listenPath": { "type": "string" },
"unsecure": { "type": "boolean" },
"challengeExpiration": { "type": "integer" },
"healthCheckPath": { "type": "string" },
"keepAliveInterval": { "type": "string" },
"keepAliveTimeout": { "type": "string" },
"systemChannels": {
"type": "object",
"properties": {
"onlineUsers": {
"type": "string"
}
},
"required": [
"onlineUsers"
]
}
},
"required": [
"challengeExpiration",
"healthCheckPath",
"keepAliveInterval",
"keepAliveTimeout",
"listenHost",
"listenPath",
"listenPort",
"systemChannels",
"unsecure"
],
"if": {
"properties": {
"unsecure": { "const": "false" }
}
},
"then": {
"required": [
"certFile",
"certKeyFile"
]
}
}
},
"required": [
"serviceName",
"accessRights",
"redis",
"server"
]
}