master
json 487 lines 10.9 KB
Raw
1 {
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "type": "object",
4 "title": "Generated Netdata collector taxonomy artifact.",
5 "additionalProperties": false,
6 "properties": {
7 "taxonomy_schema_version": {
8 "type": "integer",
9 "const": 1
10 },
11 "source": {
12 "type": "object",
13 "additionalProperties": false,
14 "properties": {
15 "netdata_commit": {
16 "type": "string",
17 "minLength": 1
18 },
19 "generated_at": {
20 "type": "string",
21 "minLength": 1
22 }
23 },
24 "required": [
25 "netdata_commit",
26 "generated_at"
27 ]
28 },
29 "sections": {
30 "type": "array",
31 "items": {
32 "$ref": "#/$defs/section"
33 }
34 },
35 "placements": {
36 "type": "array",
37 "items": {
38 "$ref": "#/$defs/placement"
39 }
40 },
41 "opted_out_collectors": {
42 "type": "array",
43 "items": {
44 "$ref": "#/$defs/optout"
45 }
46 }
47 },
48 "required": [
49 "taxonomy_schema_version",
50 "source",
51 "sections",
52 "placements",
53 "opted_out_collectors"
54 ],
55 "$defs": {
56 "section": {
57 "type": "object",
58 "additionalProperties": false,
59 "properties": {
60 "id": {
61 "type": "string"
62 },
63 "parent_id": {
64 "type": "string"
65 },
66 "path": {
67 "type": "string"
68 },
69 "title": {
70 "type": "string"
71 },
72 "short_name": {
73 "type": "string"
74 },
75 "icon": {
76 "type": "string"
77 },
78 "section_order": {
79 "type": "integer"
80 },
81 "status": {
82 "type": "string",
83 "enum": [
84 "active",
85 "deprecated"
86 ]
87 },
88 "deprecation": {
89 "type": "object"
90 },
91 "_extra": {
92 "type": "object"
93 }
94 },
95 "required": [
96 "id",
97 "path",
98 "title",
99 "section_order",
100 "status"
101 ]
102 },
103 "snapshot": {
104 "type": "array",
105 "items": {
106 "type": "string"
107 },
108 "uniqueItems": true
109 },
110 "unresolved_reference": {
111 "type": "object",
112 "additionalProperties": false,
113 "properties": {
114 "context": {
115 "type": "string"
116 },
117 "reason": {
118 "type": "string"
119 },
120 "owner": {
121 "type": "string"
122 },
123 "expires": {
124 "type": "string",
125 "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
126 },
127 "item_path": {
128 "type": "string"
129 }
130 },
131 "required": [
132 "context",
133 "reason",
134 "owner",
135 "expires",
136 "item_path"
137 ]
138 },
139 "unresolved_references": {
140 "type": "array",
141 "items": {
142 "$ref": "#/$defs/unresolved_reference"
143 }
144 },
145 "node": {
146 "type": "object",
147 "additionalProperties": false,
148 "properties": {
149 "type": {
150 "type": "string",
151 "enum": [
152 "owned_context",
153 "group",
154 "flatten",
155 "selector",
156 "context",
157 "grid",
158 "first_available",
159 "view_switch"
160 ]
161 },
162 "id": {
163 "type": "string"
164 },
165 "title": {
166 "type": "string"
167 },
168 "short_name": {
169 "type": "string"
170 },
171 "icon": {
172 "type": "string"
173 },
174 "priority": {
175 "type": "integer"
176 },
177 "families": {},
178 "tooltip": {
179 "type": "string"
180 },
181 "menu_pattern": {
182 "type": "string"
183 },
184 "hide_sub_icon": {
185 "type": "boolean"
186 },
187 "force_visibility": {
188 "type": "boolean"
189 },
190 "fallback_icon": {
191 "type": "string"
192 },
193 "include_grand_parents": {
194 "type": "boolean"
195 },
196 "properties": {
197 "type": "object"
198 },
199 "section_filters": {
200 "type": "object"
201 },
202 "dyncfg": {
203 "type": "object"
204 },
205 "context": {
206 "type": "string"
207 },
208 "contexts": {
209 "type": "array",
210 "items": {}
211 },
212 "context_prefix": {
213 "type": "array",
214 "items": {
215 "type": "string"
216 }
217 },
218 "context_prefix_exclude": {
219 "type": "array",
220 "items": {
221 "type": "string"
222 }
223 },
224 "collect_plugin": {
225 "type": "array",
226 "items": {
227 "type": "string"
228 }
229 },
230 "chart_library": {
231 "type": "string"
232 },
233 "group_by": {
234 "type": "array",
235 "items": {
236 "type": "string"
237 }
238 },
239 "group_by_label": {
240 "type": "array",
241 "items": {
242 "type": "string"
243 }
244 },
245 "aggregation_method": {
246 "type": "string"
247 },
248 "selected_dimensions": {
249 "type": "array",
250 "items": {
251 "type": "string"
252 }
253 },
254 "dimensions_sort": {
255 "type": "string"
256 },
257 "colors": {
258 "type": "array",
259 "items": {
260 "type": "string"
261 }
262 },
263 "layout": {
264 "type": "object"
265 },
266 "table_columns": {
267 "type": "array",
268 "items": {
269 "type": "string"
270 }
271 },
272 "table_sort_by": {
273 "type": "array",
274 "items": {
275 "type": "object"
276 }
277 },
278 "labels": {
279 "type": "object"
280 },
281 "value_range": {
282 "type": "array"
283 },
284 "eliminate_zero_dimensions": {
285 "type": "boolean"
286 },
287 "context_items": {
288 "type": "array",
289 "items": {
290 "type": "object"
291 }
292 },
293 "post_group_by": {
294 "type": "array",
295 "items": {
296 "type": "string"
297 }
298 },
299 "show_post_aggregations": {
300 "type": "boolean"
301 },
302 "grouping_method": {
303 "type": "string"
304 },
305 "sparkline": {
306 "type": "boolean"
307 },
308 "renderer": {
309 "type": "object"
310 },
311 "single_node": {
312 "anyOf": [
313 {
314 "type": "object"
315 },
316 {
317 "$ref": "#/$defs/node"
318 }
319 ]
320 },
321 "multi_node": {
322 "$ref": "#/$defs/node"
323 },
324 "items": {
325 "type": "array",
326 "items": {
327 "$ref": "#/$defs/node"
328 }
329 },
330 "resolved_contexts": {
331 "$ref": "#/$defs/snapshot",
332 "description": "Literal metric contexts owned by this node after selector expansion and child aggregation. FE consumers use this as the node's owned/renderable context snapshot."
333 },
334 "referenced_contexts": {
335 "$ref": "#/$defs/snapshot",
336 "description": "Metric contexts referenced by display widgets under this node but owned elsewhere in the structural tree. FE consumers use this for widget context wiring, not ownership."
337 },
338 "unresolved_references": {
339 "$ref": "#/$defs/unresolved_references",
340 "description": "Explicit staged widget references that do not resolve yet, with owner/reason/expiry metadata preserved for downstream consumers."
341 },
342 "_extra": {
343 "type": "object"
344 }
345 },
346 "required": [
347 "type",
348 "resolved_contexts",
349 "referenced_contexts",
350 "unresolved_references"
351 ]
352 },
353 "placement": {
354 "type": "object",
355 "additionalProperties": false,
356 "properties": {
357 "collector_ids": {
358 "type": "array",
359 "items": {
360 "type": "string"
361 }
362 },
363 "plugin_name": {
364 "type": "string"
365 },
366 "module_name": {
367 "type": "string"
368 },
369 "source_path": {
370 "type": "string"
371 },
372 "id": {
373 "type": "string"
374 },
375 "section_id": {
376 "type": "string"
377 },
378 "section_path": {
379 "type": "string"
380 },
381 "title": {
382 "type": "string"
383 },
384 "short_name": {
385 "type": "string"
386 },
387 "icon": {
388 "type": "string"
389 },
390 "priority": {
391 "type": "integer"
392 },
393 "families": {},
394 "tooltip": {
395 "type": "string"
396 },
397 "menu_pattern": {
398 "type": "string"
399 },
400 "hide_sub_icon": {
401 "type": "boolean"
402 },
403 "force_visibility": {
404 "type": "boolean"
405 },
406 "fallback_icon": {
407 "type": "string"
408 },
409 "include_grand_parents": {
410 "type": "boolean"
411 },
412 "properties": {
413 "type": "object"
414 },
415 "items": {
416 "type": "array",
417 "items": {
418 "$ref": "#/$defs/node"
419 }
420 },
421 "resolved_contexts": {
422 "$ref": "#/$defs/snapshot",
423 "description": "Literal metric contexts owned by this placement after selector expansion and item aggregation. FE consumers use this as the placement's owned/renderable context snapshot."
424 },
425 "referenced_contexts": {
426 "$ref": "#/$defs/snapshot",
427 "description": "Metric contexts referenced by display widgets under this placement but owned elsewhere in the structural tree. FE consumers use this for widget context wiring, not ownership."
428 },
429 "unresolved_references": {
430 "$ref": "#/$defs/unresolved_references",
431 "description": "Explicit staged widget references in this placement that do not resolve yet, with owner/reason/expiry metadata preserved for downstream consumers."
432 },
433 "single_node": {
434 "type": "object"
435 },
436 "_extra": {
437 "type": "object"
438 }
439 },
440 "required": [
441 "collector_ids",
442 "plugin_name",
443 "module_name",
444 "source_path",
445 "id",
446 "section_id",
447 "section_path",
448 "title",
449 "items",
450 "resolved_contexts",
451 "referenced_contexts",
452 "unresolved_references"
453 ]
454 },
455 "optout": {
456 "type": "object",
457 "additionalProperties": false,
458 "properties": {
459 "collector_ids": {
460 "type": "array",
461 "items": {
462 "type": "string"
463 }
464 },
465 "plugin_name": {
466 "type": "string"
467 },
468 "module_name": {
469 "type": "string"
470 },
471 "source_path": {
472 "type": "string"
473 },
474 "reason": {
475 "type": "string"
476 }
477 },
478 "required": [
479 "collector_ids",
480 "plugin_name",
481 "module_name",
482 "source_path",
483 "reason"
484 ]
485 }
486 }
487 }