master
json 225 lines 5.57 KB
Raw
1 {
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "title": "Netdata secretstore backend metadata.",
4 "oneOf": [
5 {
6 "$ref": "#/$defs/entry"
7 },
8 {
9 "type": "array",
10 "minItems": 1,
11 "items": {
12 "$ref": "#/$defs/entry"
13 }
14 }
15 ],
16 "$defs": {
17 "meta": {
18 "type": "object",
19 "description": "Information about the secretstore backend.",
20 "properties": {
21 "kind": {
22 "type": "string",
23 "description": "Runtime secretstore kind used in ${store:<kind>:...} references and UI paths."
24 },
25 "name": {
26 "type": "string",
27 "description": "Secretstore display name."
28 },
29 "link": {
30 "type": "string",
31 "description": "Official provider or product page."
32 },
33 "icon_filename": {
34 "type": "string",
35 "description": "The filename of the integration icon."
36 }
37 },
38 "required": [
39 "kind",
40 "name",
41 "link",
42 "icon_filename"
43 ]
44 },
45 "overview": {
46 "type": "object",
47 "description": "General information about the secretstore backend.",
48 "properties": {
49 "description": {
50 "type": "string",
51 "description": "General description of what the secretstore backend does."
52 },
53 "limitations": {
54 "type": "string",
55 "description": "Optional explanation of notable limitations or behavior."
56 }
57 },
58 "required": [
59 "description"
60 ]
61 },
62 "collector_configs_part": {
63 "type": "object",
64 "properties": {
65 "name": {
66 "type": "string",
67 "description": "Part of the secret reference syntax."
68 },
69 "description": {
70 "type": "string",
71 "description": "What this part means."
72 }
73 },
74 "required": [
75 "name",
76 "description"
77 ]
78 },
79 "collector_configs_example": {
80 "type": "object",
81 "properties": {
82 "name": {
83 "type": "string",
84 "description": "Example name."
85 },
86 "description": {
87 "type": "string",
88 "description": "Example description."
89 },
90 "language": {
91 "type": "string",
92 "description": "Code fence language. Defaults to text if omitted."
93 },
94 "content": {
95 "type": "string",
96 "description": "Reference or collector configuration snippet."
97 }
98 },
99 "required": [
100 "name",
101 "description",
102 "content"
103 ]
104 },
105 "collector_configs_summary": {
106 "type": "object",
107 "description": "Short backend summary fields used by the shared SECRETS.md page.",
108 "properties": {
109 "operand_format": {
110 "type": "string",
111 "description": "Short backend operand format summary."
112 },
113 "example_operand": {
114 "type": "string",
115 "description": "Short backend operand example."
116 }
117 },
118 "required": [
119 "operand_format",
120 "example_operand"
121 ]
122 },
123 "collector_configs": {
124 "type": "object",
125 "description": "How to use the secretstore backend from collector configurations.",
126 "properties": {
127 "description": {
128 "type": "string",
129 "description": "Introductory text for collector usage."
130 },
131 "summary": {
132 "$ref": "#/$defs/collector_configs_summary"
133 },
134 "format": {
135 "type": "object",
136 "properties": {
137 "description": {
138 "type": "string",
139 "description": "Optional text explaining backend-specific operand behavior."
140 },
141 "syntax": {
142 "type": "string",
143 "description": "Secret reference syntax."
144 },
145 "parts": {
146 "type": "object",
147 "properties": {
148 "list": {
149 "type": "array",
150 "items": {
151 "$ref": "#/$defs/collector_configs_part"
152 }
153 }
154 },
155 "required": [
156 "list"
157 ]
158 }
159 },
160 "required": [
161 "syntax",
162 "parts"
163 ]
164 },
165 "examples": {
166 "type": "object",
167 "properties": {
168 "list": {
169 "type": "array",
170 "minItems": 1,
171 "items": {
172 "$ref": "#/$defs/collector_configs_example"
173 }
174 }
175 },
176 "required": [
177 "list"
178 ]
179 }
180 },
181 "required": [
182 "description",
183 "summary",
184 "format",
185 "examples"
186 ]
187 },
188 "entry": {
189 "type": "object",
190 "description": "Data for a single secretstore backend.",
191 "properties": {
192 "id": {
193 "$ref": "./shared.json#/$defs/id"
194 },
195 "meta": {
196 "$ref": "#/$defs/meta"
197 },
198 "keywords": {
199 "$ref": "./shared.json#/$defs/keywords"
200 },
201 "overview": {
202 "$ref": "#/$defs/overview"
203 },
204 "setup": {
205 "$ref": "./shared.json#/$defs/full_setup"
206 },
207 "collector_configs": {
208 "$ref": "#/$defs/collector_configs"
209 },
210 "troubleshooting": {
211 "$ref": "./shared.json#/$defs/troubleshooting"
212 }
213 },
214 "required": [
215 "id",
216 "meta",
217 "keywords",
218 "overview",
219 "setup",
220 "collector_configs",
221 "troubleshooting"
222 ]
223 }
224 }
225 }