1{
2  "title": "JSON schema for app_startup.json",
3  "$schema": "http://json-schema.org/draft-07/schema#",
4  "type": "object",
5  "additionalProperties": false,
6  "required": [
7    "startupTasks",
8    "configEntry"
9  ],
10  "propertyNames": {
11    "enum": [
12      "startupTasks",
13      "configEntry"
14    ]
15  },
16  "properties": {
17    "startupTasks": {
18      "type": "array",
19      "uniqueItems": true,
20      "items": {
21        "type": "object",
22        "propertyNames": {
23          "enum": [
24            "name",
25            "srcEntry",
26            "dependencies",
27            "excludeFromAutoStart",
28            "runOnThread",
29            "waitOnMainThread"
30          ]
31        },
32        "required": [
33          "name",
34          "srcEntry"
35        ],
36        "properties": {
37          "name": {
38            "description": "Indicates the name of the startup task.",
39            "type": "string",
40            "pattern": "^[a-zA-Z][0-9a-zA-Z_.]+$",
41            "maxLength": 127
42          },
43          "srcEntry": {
44            "description": "Indicates the js code path corresponding to the startup task.",
45            "type": "string",
46            "maxLength": 127
47          },
48          "dependencies": {
49            "description": "Indicates the dependencies of the startup task.",
50            "type": "array",
51            "uniqueItems": true,
52            "items": {
53              "type": "string"
54            },
55            "default": []
56          },
57          "excludeFromAutoStart": {
58            "description": "Indicates whether the startup task is excluded from automatic start.",
59            "type": "boolean",
60            "default": false
61          },
62          "runOnThread": {
63            "description": "Indicates the running thread of the startup task.",
64            "type": "string",
65            "enum": [
66              "mainThread",
67              "taskPool"
68            ],
69            "default": "mainThread"
70          },
71          "waitOnMainThread": {
72            "description": "Indicates whether the startup task block the main thread.",
73            "type": "boolean",
74            "default": true
75          }
76        }
77      }
78    },
79    "configEntry": {
80      "description": "Indicates the js code path corresponding to the startup config.",
81      "type": "string",
82      "maxLength": 127
83    }
84  }
85}