forked from pingcap/ossinsight
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparams.schema.json
159 lines (159 loc) · 4.19 KB
/
params.schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "QuerySchema",
"type": "object",
"properties": {
"name": {
"description": "Query name, default is generated base on the file path.",
"type": "string"
},
"cacheProvider": {
"description": "Specify how to implement caching, NORMAL_TABLE are used by default.",
"enum": ["NORMAL_TABLE", "CACHED_TABLE"]
},
"cacheHours": {
"description": "Cache time in hours, -1 indicates that the query cache will not expire.",
"type": "number"
},
"refreshHours": {
"description": "Refresh cache time in hours, -1 indicates not to refresh.",
"oneOf": [
{
"type": "number"
},
{
"$ref": "#/definitions/ConditionalHours"
}
]
},
"onlyFromCache": {
"description": "Only return data from the cache.",
"type": "boolean"
},
"params": {
"description": "Query params declaration.",
"type": "array",
"items": {
"$ref": "#/definitions/Params"
}
},
"restrictions": {
"description": "Special restrictions for params.",
"type": "array",
"items": {
"$ref": "#/definitions/Restriction"
}
}
},
"additionalProperties": false,
"required": [
"cacheHours",
"params"
],
"definitions": {
"Params": {
"type": "object",
"properties": {
"name": {
"description": "URL Search param name for the query.",
"type": "string"
},
"type": {
"description": "Define the parameter type.",
"type": "string",
"enum": ["array", "date-range", "collection", "employees"]
},
"column": {
"description": "Define the parameter corresponding column name.",
"type": "string"
},
"dateRangeTo": {
"description": "Set in date-range should use that moment as `to` time.",
"type": "string",
"enum": ["now", "last-valid-datetime"],
"default": "last-valid-datetime"
},
"replaces": {
"description": "Define substring in the query sql template. Replacing uses `String.replaceAll`, please make sure the replacing substring is not substring of other texts.",
"type": "string"
},
"template": {
"description": "Replacing templates, mapped by search value",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"default": {
"description": "Default input value.",
"type": ["number", "string"]
},
"enums": {
"description": "Enums for prefetching and validating, default is no prefetching and validating.",
"oneOf": [
{
"description": "Predefined query params name.",
"type": "string"
},
{
"description": "The allowed values and should be prefetched.",
"type": "array",
"items": {
"type": "string"
}
}
]
},
"pattern": {
"description": "Regular expression for validating parameter value.",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"name",
"replaces"
]
},
"Restriction": {
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"type": "string"
}
},
"enums": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"additionalProperties": false,
"required": ["fields", "enums"]
},
"ConditionalHours": {
"type": "object",
"properties": {
"param": {
"type": "string"
},
"on": {
"type": "object",
"patternProperties": {
".*": {
"type": "number"
}
}
}
},
"required": ["param", "on"],
"additionalProperties": false
}
}
}