Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit db4f70e

Browse files
committedSep 13, 2024·
cleanup(falco): use header file for json schema
Signed-off-by: Luca Guerra <[email protected]>
1 parent cd0d607 commit db4f70e

File tree

2 files changed

+723
-10
lines changed

2 files changed

+723
-10
lines changed
 

‎userspace/falco/configuration.cpp

+2-10
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ limitations under the License.
3636
#include "configuration.h"
3737
#include "logger.h"
3838

39+
#include "json_schema.h"
40+
3941
#include <re2/re2.h>
4042

4143
namespace fs = std::filesystem;
@@ -47,16 +49,6 @@ static re2::RE2 ip_address_re("((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|
4749
#define DEFAULT_CPUS_FOR_EACH_SYSCALL_BUFFER 2
4850
#define DEFAULT_DROP_FAILED_EXIT false
4951

50-
// Since MSVC compiler has some weird limitations for the
51-
// string size limit, this code would throw:
52-
// "error C2026: string too big, trailing characters truncate" if not minified:
53-
// https://learn.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=msvc-170#size-of-string-literals
54-
// Just use any available online tool, eg: https://jsonformatter.org/json-minify
55-
// to format the json, add the new fields, and then minify it again.
56-
static const std::string config_schema_string = R"(
57-
{"$schema":"http://json-schema.org/draft-06/schema#","$ref":"#/definitions/FalcoConfig","definitions":{"FalcoConfig":{"type":"object","additionalProperties":false,"properties":{"append_output":{"type":"array","items":{"$ref":"#/definitions/AppendOutput"}},"config_files":{"type":"array","items":{"type":"string"}},"watch_config_files":{"type":"boolean"},"rules_files":{"type":"array","items":{"type":"string"}},"rule_files":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"$ref":"#/definitions/Rule"}},"engine":{"$ref":"#/definitions/Engine"},"load_plugins":{"type":"array","items":{"type":"string"}},"plugins":{"type":"array","items":{"$ref":"#/definitions/Plugin"}},"time_format_iso_8601":{"type":"boolean"},"priority":{"type":"string"},"json_output":{"type":"boolean"},"json_include_output_property":{"type":"boolean"},"json_include_message_property":{"type":"boolean"},"json_include_tags_property":{"type":"boolean"},"buffered_outputs":{"type":"boolean"},"rule_matching":{"type":"string"},"outputs_queue":{"$ref":"#/definitions/OutputsQueue"},"stdout_output":{"$ref":"#/definitions/Output"},"syslog_output":{"$ref":"#/definitions/Output"},"file_output":{"$ref":"#/definitions/FileOutput"},"http_output":{"$ref":"#/definitions/HTTPOutput"},"program_output":{"$ref":"#/definitions/ProgramOutput"},"grpc_output":{"$ref":"#/definitions/Output"},"grpc":{"$ref":"#/definitions/Grpc"},"webserver":{"$ref":"#/definitions/Webserver"},"log_stderr":{"type":"boolean"},"log_syslog":{"type":"boolean"},"log_level":{"type":"string"},"libs_logger":{"$ref":"#/definitions/LibsLogger"},"output_timeout":{"type":"integer"},"syscall_event_timeouts":{"$ref":"#/definitions/SyscallEventTimeouts"},"syscall_event_drops":{"$ref":"#/definitions/SyscallEventDrops"},"metrics":{"$ref":"#/definitions/Metrics"},"base_syscalls":{"$ref":"#/definitions/BaseSyscalls"},"falco_libs":{"$ref":"#/definitions/FalcoLibs"},"container_engines":{"type":"object","additionalProperties":false,"properties":{"docker":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}}},"cri":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"sockets":{"type":"array","items":{"type":"string"}},"disable_async":{"type":"boolean"}}},"podman":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}}},"lxc":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}}},"libvirt_lxc":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}}},"bpm":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}}}}}},"title":"FalcoConfig"},"AppendOutput":{"type":"object","additionalProperties":false,"properties":{"match":{"type":"object","additionalProperties":false,"properties":{"source":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"rule":{"type":"string"}}},"extra_output":{"type":"string"},"extra_fields":{"type":"array","items":{"anyOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"string"}]}}}},"BaseSyscalls":{"type":"object","additionalProperties":false,"properties":{"custom_set":{"type":"array","items":{"type":"string"}},"repair":{"type":"boolean"}},"minProperties":1,"title":"BaseSyscalls"},"Engine":{"type":"object","additionalProperties":false,"properties":{"kind":{"type":"string"},"kmod":{"$ref":"#/definitions/Kmod"},"ebpf":{"$ref":"#/definitions/Ebpf"},"modern_ebpf":{"$ref":"#/definitions/ModernEbpf"},"replay":{"$ref":"#/definitions/Replay"},"gvisor":{"$ref":"#/definitions/Gvisor"}},"required":["kind"],"title":"Engine"},"Ebpf":{"type":"object","additionalProperties":false,"properties":{"probe":{"type":"string"},"buf_size_preset":{"type":"integer"},"drop_failed_exit":{"type":"boolean"}},"required":["probe"],"title":"Ebpf"},"Gvisor":{"type":"object","additionalProperties":false,"properties":{"config":{"type":"string"},"root":{"type":"string"}},"required":["config","root"],"title":"Gvisor"},"Kmod":{"type":"object","additionalProperties":false,"properties":{"buf_size_preset":{"type":"integer"},"drop_failed_exit":{"type":"boolean"}},"minProperties":1,"title":"Kmod"},"ModernEbpf":{"type":"object","additionalProperties":false,"properties":{"cpus_for_each_buffer":{"type":"integer"},"buf_size_preset":{"type":"integer"},"drop_failed_exit":{"type":"boolean"}},"title":"ModernEbpf"},"Replay":{"type":"object","additionalProperties":false,"properties":{"capture_file":{"type":"string"}},"required":["capture_file"],"title":"Replay"},"FalcoLibs":{"type":"object","additionalProperties":false,"properties":{"thread_table_size":{"type":"integer"}},"minProperties":1,"title":"FalcoLibs"},"FileOutput":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"keep_alive":{"type":"boolean"},"filename":{"type":"string"}},"minProperties":1,"title":"FileOutput"},"Grpc":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"bind_address":{"type":"string"},"threadiness":{"type":"integer"}},"minProperties":1,"title":"Grpc"},"Output":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"}},"minProperties":1,"title":"Output"},"HTTPOutput":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"url":{"type":"string","format":"uri","qt-uri-protocols":["http"]},"user_agent":{"type":"string"},"insecure":{"type":"boolean"},"ca_cert":{"type":"string"},"ca_bundle":{"type":"string"},"ca_path":{"type":"string"},"mtls":{"type":"boolean"},"client_cert":{"type":"string"},"client_key":{"type":"string"},"echo":{"type":"boolean"},"compress_uploads":{"type":"boolean"},"keep_alive":{"type":"boolean"}},"minProperties":1,"title":"HTTPOutput"},"LibsLogger":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"severity":{"type":"string"}},"minProperties":1,"title":"LibsLogger"},"Metrics":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"interval":{"type":"string"},"output_rule":{"type":"boolean"},"output_file":{"type":"string"},"rules_counters_enabled":{"type":"boolean"},"resource_utilization_enabled":{"type":"boolean"},"state_counters_enabled":{"type":"boolean"},"kernel_event_counters_enabled":{"type":"boolean"},"kernel_event_counters_per_cpu_enabled":{"type":"boolean"},"libbpf_stats_enabled":{"type":"boolean"},"plugins_metrics_enabled":{"type":"boolean"},"convert_memory_to_mb":{"type":"boolean"},"include_empty_values":{"type":"boolean"}},"minProperties":1,"title":"Metrics"},"OutputsQueue":{"type":"object","additionalProperties":false,"properties":{"capacity":{"type":"integer"}},"minProperties":1,"title":"OutputsQueue"},"Plugin":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"library_path":{"type":"string"},"init_config":{"type":"string"},"open_params":{"type":"string"}},"required":["library_path","name"],"title":"Plugin"},"ProgramOutput":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"keep_alive":{"type":"boolean"},"program":{"type":"string"}},"required":["program"],"title":"ProgramOutput"},"Rule":{"type":"object","additionalProperties":false,"properties":{"disable":{"$ref":"#/definitions/Able"},"enable":{"$ref":"#/definitions/Able"}},"minProperties":1,"title":"Rule"},"Able":{"type":"object","additionalProperties":false,"properties":{"rule":{"type":"string"},"tag":{"type":"string"}},"minProperties":1,"title":"Able"},"SyscallEventDrops":{"type":"object","additionalProperties":false,"properties":{"threshold":{"type":"number"},"actions":{"type":"array","items":{"type":"string"}},"rate":{"type":"number"},"max_burst":{"type":"integer"},"simulate_drops":{"type":"boolean"}},"minProperties":1,"title":"SyscallEventDrops"},"SyscallEventTimeouts":{"type":"object","additionalProperties":false,"properties":{"max_consecutives":{"type":"integer"}},"minProperties":1,"title":"SyscallEventTimeouts"},"Webserver":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean"},"threadiness":{"type":"integer"},"listen_port":{"type":"integer"},"listen_address":{"type":"string"},"k8s_healthz_endpoint":{"type":"string"},"prometheus_metrics_enabled":{"type":"boolean"},"ssl_enabled":{"type":"boolean"},"ssl_certificate":{"type":"string"}},"minProperties":1,"title":"Webserver"}}}
58-
)";
59-
6052
falco_configuration::falco_configuration():
6153
m_json_output(false),
6254
m_json_include_output_property(true),

‎userspace/falco/json_schema.h

+721
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,721 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
/*
3+
Copyright (C) 2024 The Falco Authors.
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
*/
17+
18+
#pragma once
19+
20+
#define LONG_STRING_CONST(...) #__VA_ARGS__
21+
22+
const char config_schema_string[] = LONG_STRING_CONST(
23+
24+
{
25+
"$schema": "http://json-schema.org/draft-06/schema#",
26+
"$ref": "#/definitions/FalcoConfig",
27+
"definitions": {
28+
"FalcoConfig": {
29+
"type": "object",
30+
"additionalProperties": false,
31+
"properties": {
32+
"append_output": {
33+
"type": "array",
34+
"items": {
35+
"$ref": "#/definitions/AppendOutput"
36+
}
37+
},
38+
"config_files": {
39+
"type": "array",
40+
"items": {
41+
"type": "string"
42+
}
43+
},
44+
"watch_config_files": {
45+
"type": "boolean"
46+
},
47+
"rules_files": {
48+
"type": "array",
49+
"items": {
50+
"type": "string"
51+
}
52+
},
53+
"rule_files": {
54+
"type": "array",
55+
"items": {
56+
"type": "string"
57+
}
58+
},
59+
"rules": {
60+
"type": "array",
61+
"items": {
62+
"$ref": "#/definitions/Rule"
63+
}
64+
},
65+
"engine": {
66+
"$ref": "#/definitions/Engine"
67+
},
68+
"load_plugins": {
69+
"type": "array",
70+
"items": {
71+
"type": "string"
72+
}
73+
},
74+
"plugins": {
75+
"type": "array",
76+
"items": {
77+
"$ref": "#/definitions/Plugin"
78+
}
79+
},
80+
"time_format_iso_8601": {
81+
"type": "boolean"
82+
},
83+
"priority": {
84+
"type": "string"
85+
},
86+
"json_output": {
87+
"type": "boolean"
88+
},
89+
"json_include_output_property": {
90+
"type": "boolean"
91+
},
92+
"json_include_message_property": {
93+
"type": "boolean"
94+
},
95+
"json_include_tags_property": {
96+
"type": "boolean"
97+
},
98+
"buffered_outputs": {
99+
"type": "boolean"
100+
},
101+
"rule_matching": {
102+
"type": "string"
103+
},
104+
"outputs_queue": {
105+
"$ref": "#/definitions/OutputsQueue"
106+
},
107+
"stdout_output": {
108+
"$ref": "#/definitions/Output"
109+
},
110+
"syslog_output": {
111+
"$ref": "#/definitions/Output"
112+
},
113+
"file_output": {
114+
"$ref": "#/definitions/FileOutput"
115+
},
116+
"http_output": {
117+
"$ref": "#/definitions/HTTPOutput"
118+
},
119+
"program_output": {
120+
"$ref": "#/definitions/ProgramOutput"
121+
},
122+
"grpc_output": {
123+
"$ref": "#/definitions/Output"
124+
},
125+
"grpc": {
126+
"$ref": "#/definitions/Grpc"
127+
},
128+
"webserver": {
129+
"$ref": "#/definitions/Webserver"
130+
},
131+
"log_stderr": {
132+
"type": "boolean"
133+
},
134+
"log_syslog": {
135+
"type": "boolean"
136+
},
137+
"log_level": {
138+
"type": "string"
139+
},
140+
"libs_logger": {
141+
"$ref": "#/definitions/LibsLogger"
142+
},
143+
"output_timeout": {
144+
"type": "integer"
145+
},
146+
"syscall_event_timeouts": {
147+
"$ref": "#/definitions/SyscallEventTimeouts"
148+
},
149+
"syscall_event_drops": {
150+
"$ref": "#/definitions/SyscallEventDrops"
151+
},
152+
"metrics": {
153+
"$ref": "#/definitions/Metrics"
154+
},
155+
"base_syscalls": {
156+
"$ref": "#/definitions/BaseSyscalls"
157+
},
158+
"falco_libs": {
159+
"$ref": "#/definitions/FalcoLibs"
160+
},
161+
"container_engines": {
162+
"type": "object",
163+
"additionalProperties": false,
164+
"properties": {
165+
"docker": {
166+
"type": "object",
167+
"additionalProperties": false,
168+
"properties": {
169+
"enabled": {
170+
"type": "boolean"
171+
}
172+
}
173+
},
174+
"cri": {
175+
"type": "object",
176+
"additionalProperties": false,
177+
"properties": {
178+
"enabled": {
179+
"type": "boolean"
180+
},
181+
"sockets": {
182+
"type": "array",
183+
"items": {
184+
"type": "string"
185+
}
186+
},
187+
"disable_async": {
188+
"type": "boolean"
189+
}
190+
}
191+
},
192+
"podman": {
193+
"type": "object",
194+
"additionalProperties": false,
195+
"properties": {
196+
"enabled": {
197+
"type": "boolean"
198+
}
199+
}
200+
},
201+
"lxc": {
202+
"type": "object",
203+
"additionalProperties": false,
204+
"properties": {
205+
"enabled": {
206+
"type": "boolean"
207+
}
208+
}
209+
},
210+
"libvirt_lxc": {
211+
"type": "object",
212+
"additionalProperties": false,
213+
"properties": {
214+
"enabled": {
215+
"type": "boolean"
216+
}
217+
}
218+
},
219+
"bpm": {
220+
"type": "object",
221+
"additionalProperties": false,
222+
"properties": {
223+
"enabled": {
224+
"type": "boolean"
225+
}
226+
}
227+
}
228+
}
229+
}
230+
},
231+
"title": "FalcoConfig"
232+
},
233+
"AppendOutput": {
234+
"type": "object",
235+
"additionalProperties": false,
236+
"properties": {
237+
"match": {
238+
"type": "object",
239+
"additionalProperties": false,
240+
"properties": {
241+
"source": {
242+
"type": "string"
243+
},
244+
"tags": {
245+
"type": "array",
246+
"items": {
247+
"type": "string"
248+
}
249+
},
250+
"rule": {
251+
"type": "string"
252+
}
253+
}
254+
},
255+
"extra_output": {
256+
"type": "string"
257+
},
258+
"extra_fields": {
259+
"type": "array",
260+
"items": {
261+
"anyOf": [
262+
{
263+
"type": "object",
264+
"additionalProperties": {
265+
"type": "string"
266+
}
267+
},
268+
{
269+
"type": "string"
270+
}
271+
]
272+
}
273+
}
274+
}
275+
},
276+
"BaseSyscalls": {
277+
"type": "object",
278+
"additionalProperties": false,
279+
"properties": {
280+
"custom_set": {
281+
"type": "array",
282+
"items": {
283+
"type": "string"
284+
}
285+
},
286+
"repair": {
287+
"type": "boolean"
288+
}
289+
},
290+
"minProperties": 1,
291+
"title": "BaseSyscalls"
292+
},
293+
"Engine": {
294+
"type": "object",
295+
"additionalProperties": false,
296+
"properties": {
297+
"kind": {
298+
"type": "string"
299+
},
300+
"kmod": {
301+
"$ref": "#/definitions/Kmod"
302+
},
303+
"ebpf": {
304+
"$ref": "#/definitions/Ebpf"
305+
},
306+
"modern_ebpf": {
307+
"$ref": "#/definitions/ModernEbpf"
308+
},
309+
"replay": {
310+
"$ref": "#/definitions/Replay"
311+
},
312+
"gvisor": {
313+
"$ref": "#/definitions/Gvisor"
314+
}
315+
},
316+
"required": [
317+
"kind"
318+
],
319+
"title": "Engine"
320+
},
321+
"Ebpf": {
322+
"type": "object",
323+
"additionalProperties": false,
324+
"properties": {
325+
"probe": {
326+
"type": "string"
327+
},
328+
"buf_size_preset": {
329+
"type": "integer"
330+
},
331+
"drop_failed_exit": {
332+
"type": "boolean"
333+
}
334+
},
335+
"required": [
336+
"probe"
337+
],
338+
"title": "Ebpf"
339+
},
340+
"Gvisor": {
341+
"type": "object",
342+
"additionalProperties": false,
343+
"properties": {
344+
"config": {
345+
"type": "string"
346+
},
347+
"root": {
348+
"type": "string"
349+
}
350+
},
351+
"required": [
352+
"config",
353+
"root"
354+
],
355+
"title": "Gvisor"
356+
},
357+
"Kmod": {
358+
"type": "object",
359+
"additionalProperties": false,
360+
"properties": {
361+
"buf_size_preset": {
362+
"type": "integer"
363+
},
364+
"drop_failed_exit": {
365+
"type": "boolean"
366+
}
367+
},
368+
"minProperties": 1,
369+
"title": "Kmod"
370+
},
371+
"ModernEbpf": {
372+
"type": "object",
373+
"additionalProperties": false,
374+
"properties": {
375+
"cpus_for_each_buffer": {
376+
"type": "integer"
377+
},
378+
"buf_size_preset": {
379+
"type": "integer"
380+
},
381+
"drop_failed_exit": {
382+
"type": "boolean"
383+
}
384+
},
385+
"title": "ModernEbpf"
386+
},
387+
"Replay": {
388+
"type": "object",
389+
"additionalProperties": false,
390+
"properties": {
391+
"capture_file": {
392+
"type": "string"
393+
}
394+
},
395+
"required": [
396+
"capture_file"
397+
],
398+
"title": "Replay"
399+
},
400+
"FalcoLibs": {
401+
"type": "object",
402+
"additionalProperties": false,
403+
"properties": {
404+
"thread_table_size": {
405+
"type": "integer"
406+
}
407+
},
408+
"minProperties": 1,
409+
"title": "FalcoLibs"
410+
},
411+
"FileOutput": {
412+
"type": "object",
413+
"additionalProperties": false,
414+
"properties": {
415+
"enabled": {
416+
"type": "boolean"
417+
},
418+
"keep_alive": {
419+
"type": "boolean"
420+
},
421+
"filename": {
422+
"type": "string"
423+
}
424+
},
425+
"minProperties": 1,
426+
"title": "FileOutput"
427+
},
428+
"Grpc": {
429+
"type": "object",
430+
"additionalProperties": false,
431+
"properties": {
432+
"enabled": {
433+
"type": "boolean"
434+
},
435+
"bind_address": {
436+
"type": "string"
437+
},
438+
"threadiness": {
439+
"type": "integer"
440+
}
441+
},
442+
"minProperties": 1,
443+
"title": "Grpc"
444+
},
445+
"Output": {
446+
"type": "object",
447+
"additionalProperties": false,
448+
"properties": {
449+
"enabled": {
450+
"type": "boolean"
451+
}
452+
},
453+
"minProperties": 1,
454+
"title": "Output"
455+
},
456+
"HTTPOutput": {
457+
"type": "object",
458+
"additionalProperties": false,
459+
"properties": {
460+
"enabled": {
461+
"type": "boolean"
462+
},
463+
"url": {
464+
"type": "string",
465+
"format": "uri",
466+
"qt-uri-protocols": [
467+
"http"
468+
]
469+
},
470+
"user_agent": {
471+
"type": "string"
472+
},
473+
"insecure": {
474+
"type": "boolean"
475+
},
476+
"ca_cert": {
477+
"type": "string"
478+
},
479+
"ca_bundle": {
480+
"type": "string"
481+
},
482+
"ca_path": {
483+
"type": "string"
484+
},
485+
"mtls": {
486+
"type": "boolean"
487+
},
488+
"client_cert": {
489+
"type": "string"
490+
},
491+
"client_key": {
492+
"type": "string"
493+
},
494+
"echo": {
495+
"type": "boolean"
496+
},
497+
"compress_uploads": {
498+
"type": "boolean"
499+
},
500+
"keep_alive": {
501+
"type": "boolean"
502+
}
503+
},
504+
"minProperties": 1,
505+
"title": "HTTPOutput"
506+
},
507+
"LibsLogger": {
508+
"type": "object",
509+
"additionalProperties": false,
510+
"properties": {
511+
"enabled": {
512+
"type": "boolean"
513+
},
514+
"severity": {
515+
"type": "string"
516+
}
517+
},
518+
"minProperties": 1,
519+
"title": "LibsLogger"
520+
},
521+
"Metrics": {
522+
"type": "object",
523+
"additionalProperties": false,
524+
"properties": {
525+
"enabled": {
526+
"type": "boolean"
527+
},
528+
"interval": {
529+
"type": "string"
530+
},
531+
"output_rule": {
532+
"type": "boolean"
533+
},
534+
"output_file": {
535+
"type": "string"
536+
},
537+
"rules_counters_enabled": {
538+
"type": "boolean"
539+
},
540+
"resource_utilization_enabled": {
541+
"type": "boolean"
542+
},
543+
"state_counters_enabled": {
544+
"type": "boolean"
545+
},
546+
"kernel_event_counters_enabled": {
547+
"type": "boolean"
548+
},
549+
"kernel_event_counters_per_cpu_enabled": {
550+
"type": "boolean"
551+
},
552+
"libbpf_stats_enabled": {
553+
"type": "boolean"
554+
},
555+
"plugins_metrics_enabled": {
556+
"type": "boolean"
557+
},
558+
"convert_memory_to_mb": {
559+
"type": "boolean"
560+
},
561+
"include_empty_values": {
562+
"type": "boolean"
563+
}
564+
},
565+
"minProperties": 1,
566+
"title": "Metrics"
567+
},
568+
"OutputsQueue": {
569+
"type": "object",
570+
"additionalProperties": false,
571+
"properties": {
572+
"capacity": {
573+
"type": "integer"
574+
}
575+
},
576+
"minProperties": 1,
577+
"title": "OutputsQueue"
578+
},
579+
"Plugin": {
580+
"type": "object",
581+
"additionalProperties": false,
582+
"properties": {
583+
"name": {
584+
"type": "string"
585+
},
586+
"library_path": {
587+
"type": "string"
588+
},
589+
"init_config": {
590+
"type": "string"
591+
},
592+
"open_params": {
593+
"type": "string"
594+
}
595+
},
596+
"required": [
597+
"library_path",
598+
"name"
599+
],
600+
"title": "Plugin"
601+
},
602+
"ProgramOutput": {
603+
"type": "object",
604+
"additionalProperties": false,
605+
"properties": {
606+
"enabled": {
607+
"type": "boolean"
608+
},
609+
"keep_alive": {
610+
"type": "boolean"
611+
},
612+
"program": {
613+
"type": "string"
614+
}
615+
},
616+
"required": [
617+
"program"
618+
],
619+
"title": "ProgramOutput"
620+
},
621+
"Rule": {
622+
"type": "object",
623+
"additionalProperties": false,
624+
"properties": {
625+
"disable": {
626+
"$ref": "#/definitions/Able"
627+
},
628+
"enable": {
629+
"$ref": "#/definitions/Able"
630+
}
631+
},
632+
"minProperties": 1,
633+
"title": "Rule"
634+
},
635+
"Able": {
636+
"type": "object",
637+
"additionalProperties": false,
638+
"properties": {
639+
"rule": {
640+
"type": "string"
641+
},
642+
"tag": {
643+
"type": "string"
644+
}
645+
},
646+
"minProperties": 1,
647+
"title": "Able"
648+
},
649+
"SyscallEventDrops": {
650+
"type": "object",
651+
"additionalProperties": false,
652+
"properties": {
653+
"threshold": {
654+
"type": "number"
655+
},
656+
"actions": {
657+
"type": "array",
658+
"items": {
659+
"type": "string"
660+
}
661+
},
662+
"rate": {
663+
"type": "number"
664+
},
665+
"max_burst": {
666+
"type": "integer"
667+
},
668+
"simulate_drops": {
669+
"type": "boolean"
670+
}
671+
},
672+
"minProperties": 1,
673+
"title": "SyscallEventDrops"
674+
},
675+
"SyscallEventTimeouts": {
676+
"type": "object",
677+
"additionalProperties": false,
678+
"properties": {
679+
"max_consecutives": {
680+
"type": "integer"
681+
}
682+
},
683+
"minProperties": 1,
684+
"title": "SyscallEventTimeouts"
685+
},
686+
"Webserver": {
687+
"type": "object",
688+
"additionalProperties": false,
689+
"properties": {
690+
"enabled": {
691+
"type": "boolean"
692+
},
693+
"threadiness": {
694+
"type": "integer"
695+
},
696+
"listen_port": {
697+
"type": "integer"
698+
},
699+
"listen_address": {
700+
"type": "string"
701+
},
702+
"k8s_healthz_endpoint": {
703+
"type": "string"
704+
},
705+
"prometheus_metrics_enabled": {
706+
"type": "boolean"
707+
},
708+
"ssl_enabled": {
709+
"type": "boolean"
710+
},
711+
"ssl_certificate": {
712+
"type": "string"
713+
}
714+
},
715+
"minProperties": 1,
716+
"title": "Webserver"
717+
}
718+
}
719+
}
720+
721+
); // LONG_STRING_CONST macro

0 commit comments

Comments
 (0)
Please sign in to comment.