120 lines
3.8 KiB
JSON
120 lines
3.8 KiB
JSON
{
|
|
"$id": "https://nicsys.eu/god-daemons-config.schema.json",
|
|
"title": "P42 God Daemons Configuration",
|
|
"description": "Shared configuration for P42 God Daemons",
|
|
"type": "object",
|
|
"definitions": {
|
|
"redisConnection": {
|
|
"type": "object",
|
|
"properties": {
|
|
"redisId": { "type": "string" },
|
|
"role": { "type": "string", "enum": ["primary", "shard"] },
|
|
"host": { "type": "string" },
|
|
"tls": { "type": "boolean" },
|
|
"port": { "type": "integer" },
|
|
"user": { "type": "string" },
|
|
"pass": { "type": "string" },
|
|
"chansNamespace": { "type": "string" },
|
|
"basePrefix": { "type": "string" }
|
|
},
|
|
"required": [
|
|
"redisId",
|
|
"chansNamespace",
|
|
"basePrefix"
|
|
]
|
|
},
|
|
"redisArray": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/definitions/redisConnection" },
|
|
"minItems": 1
|
|
}
|
|
},
|
|
"properties": {
|
|
"accessRights": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"roles": {
|
|
"type": [
|
|
"string",
|
|
"array"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"canDo": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"roles",
|
|
"canDo"
|
|
]
|
|
}
|
|
},
|
|
"gps": {
|
|
"type": "object",
|
|
"properties": {
|
|
"gpsActionsChannel": { "type": "string" },
|
|
"gpsActionsReply": { "type": "string" },
|
|
"storage": {
|
|
"type": "object",
|
|
"properties": {
|
|
"agentHashKey": { "type": "string" },
|
|
"agentsIndexKey": { "type": "string" },
|
|
"positionsStream": { "type": "string" },
|
|
"streamMaxLen": { "type": "integer", "minimum": 0 }
|
|
},
|
|
"required": [
|
|
"agentHashKey",
|
|
"agentsIndexKey",
|
|
"positionsStream"
|
|
]
|
|
},
|
|
"agentVectorChangeChannel": { "type": "string" },
|
|
"collisionsChannel": { "type": "string" },
|
|
"nearMissDistance": { "type": "number", "minimum": 0 },
|
|
"prismTimeHeight": { "type": "number", "minimum": 0 },
|
|
"collisionTickMs": { "type": "integer", "minimum": 1 },
|
|
"prismRefreshLeadSeconds": { "type": "number", "minimum": 0 }
|
|
},
|
|
"required": [
|
|
"gpsActionsChannel",
|
|
"gpsActionsReply",
|
|
"storage",
|
|
"agentVectorChangeChannel",
|
|
"collisionsChannel"
|
|
]
|
|
},
|
|
"systemMesh": {
|
|
"type": "object",
|
|
"properties": {
|
|
"redis": { "$ref": "#/definitions/redisArray" }
|
|
},
|
|
"required": [
|
|
"redis"
|
|
]
|
|
},
|
|
"arenaMesh": {
|
|
"type": "object",
|
|
"properties": {
|
|
"redis": { "$ref": "#/definitions/redisArray" }
|
|
},
|
|
"required": [
|
|
"redis"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"accessRights",
|
|
"systemMesh",
|
|
"arenaMesh"
|
|
],
|
|
"additionalProperties": true
|
|
}
|