aboutsummaryrefslogtreecommitdiff
path: root/config_schema.json
diff options
context:
space:
mode:
authorbodqhrohro <bodqhrohro@gmail.com>2019-10-25 21:12:38 +0300
committerbodqhrohro <bodqhrohro@gmail.com>2019-10-25 21:12:38 +0300
commit695c9fc35325d3bec3ec81bdce59f780acd74e8d (patch)
tree91754643ae5f9cdde3d6e04af5239a3a7ccababa /config_schema.json
parent72c9dac62cb6282841d22d877852bcee26bff9dd (diff)
Add config validation
Diffstat (limited to 'config_schema.json')
-rw-r--r--config_schema.json94
1 files changed, 94 insertions, 0 deletions
diff --git a/config_schema.json b/config_schema.json
new file mode 100644
index 0000000..434bde5
--- /dev/null
+++ b/config_schema.json
@@ -0,0 +1,94 @@
+{
+ "$schema": "http://json-schema.org/draft-04/schema#",
+ "type": "object",
+ "required": [":telegram", ":xmpp"],
+ "properties": {
+ ":telegram": {
+ "type": "object",
+ "required": [":loglevel", ":content", ":tdlib"],
+ "properties": {
+ ":loglevel": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":content": {
+ "type": "object",
+ "properties": {
+ ":path": {
+ "type": "string"
+ },
+ ":link": {
+ "type": "string"
+ },
+ ":upload": {
+ "type": "string"
+ }
+ }
+ },
+ ":tdlib_verbosity": {
+ "type": "integer"
+ },
+ ":tdlib": {
+ "required": [":lib_path", ":client"],
+ "type": "object",
+ "properties": {
+ ":lib_path": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":client": {
+ "type": "object",
+ "required": [":api_id", ":api_hash"],
+ "properties": {
+ ":api_id": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":api_hash": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":device_model": {
+ "type": "string"
+ },
+ ":application_version": {
+ "type": "string"
+ },
+ ":use_chat_info_database": {
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ ":xmpp": {
+ "type": "object",
+ "required": [":loglevel", ":jid", ":host", ":port", ":password", ":db"],
+ "properties": {
+ ":loglevel": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":jid": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":host": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":port": {
+ "type": "integer",
+ "minimum": 1
+ },
+ ":password": {
+ "$ref": "#/definitions/non-empty-string"
+ },
+ ":db": {
+ "$ref": "#/definitions/non-empty-string"
+ }
+ }
+ }
+ },
+ "definitions": {
+ "non-empty-string": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+}