@bsb/registry 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -0
- package/bsb-plugin.json +47 -0
- package/lib/.bsb/clients/service-bsb-registry.d.ts +1118 -0
- package/lib/.bsb/clients/service-bsb-registry.d.ts.map +1 -0
- package/lib/.bsb/clients/service-bsb-registry.js +393 -0
- package/lib/.bsb/clients/service-bsb-registry.js.map +1 -0
- package/lib/plugins/service-bsb-registry/auth.d.ts +87 -0
- package/lib/plugins/service-bsb-registry/auth.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry/auth.js +197 -0
- package/lib/plugins/service-bsb-registry/auth.js.map +1 -0
- package/lib/plugins/service-bsb-registry/db/file.d.ts +73 -0
- package/lib/plugins/service-bsb-registry/db/file.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry/db/file.js +588 -0
- package/lib/plugins/service-bsb-registry/db/file.js.map +1 -0
- package/lib/plugins/service-bsb-registry/db/index.d.ts +75 -0
- package/lib/plugins/service-bsb-registry/db/index.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry/db/index.js +24 -0
- package/lib/plugins/service-bsb-registry/db/index.js.map +1 -0
- package/lib/plugins/service-bsb-registry/index.d.ts +1228 -0
- package/lib/plugins/service-bsb-registry/index.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry/index.js +661 -0
- package/lib/plugins/service-bsb-registry/index.js.map +1 -0
- package/lib/plugins/service-bsb-registry/types.d.ts +559 -0
- package/lib/plugins/service-bsb-registry/types.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry/types.js +235 -0
- package/lib/plugins/service-bsb-registry/types.js.map +1 -0
- package/lib/plugins/service-bsb-registry-ui/http-server.d.ts +138 -0
- package/lib/plugins/service-bsb-registry-ui/http-server.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry-ui/http-server.js +1660 -0
- package/lib/plugins/service-bsb-registry-ui/http-server.js.map +1 -0
- package/lib/plugins/service-bsb-registry-ui/index.d.ts +62 -0
- package/lib/plugins/service-bsb-registry-ui/index.d.ts.map +1 -0
- package/lib/plugins/service-bsb-registry-ui/index.js +101 -0
- package/lib/plugins/service-bsb-registry-ui/index.js.map +1 -0
- package/lib/plugins/service-bsb-registry-ui/static/assets/images/apple-touch-icon.png +0 -0
- package/lib/plugins/service-bsb-registry-ui/static/assets/images/favicon-16x16.png +0 -0
- package/lib/plugins/service-bsb-registry-ui/static/assets/images/favicon-32x32.png +0 -0
- package/lib/plugins/service-bsb-registry-ui/static/assets/images/favicon.ico +0 -0
- package/lib/plugins/service-bsb-registry-ui/static/css/style.css +1849 -0
- package/lib/plugins/service-bsb-registry-ui/static/js/app.js +336 -0
- package/lib/plugins/service-bsb-registry-ui/templates/layouts/main.hbs +39 -0
- package/lib/plugins/service-bsb-registry-ui/templates/pages/error.hbs +13 -0
- package/lib/plugins/service-bsb-registry-ui/templates/pages/home.hbs +62 -0
- package/lib/plugins/service-bsb-registry-ui/templates/pages/not-found.hbs +13 -0
- package/lib/plugins/service-bsb-registry-ui/templates/pages/plugin-detail.hbs +537 -0
- package/lib/plugins/service-bsb-registry-ui/templates/pages/plugins.hbs +40 -0
- package/lib/plugins/service-bsb-registry-ui/templates/partials/pagination.hbs +41 -0
- package/lib/plugins/service-bsb-registry-ui/templates/partials/plugin-card.hbs +40 -0
- package/lib/plugins/service-bsb-registry-ui/templates/partials/search-form.hbs +31 -0
- package/lib/schemas/service-bsb-registry-ui.json +57 -0
- package/lib/schemas/service-bsb-registry-ui.plugin.json +73 -0
- package/lib/schemas/service-bsb-registry.json +1883 -0
- package/lib/schemas/service-bsb-registry.plugin.json +68 -0
- package/package.json +60 -0
|
@@ -0,0 +1,1883 @@
|
|
|
1
|
+
{
|
|
2
|
+
"pluginName": "BSB Registry Core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"events": {
|
|
5
|
+
"registry.plugin.publish": {
|
|
6
|
+
"type": "returnable",
|
|
7
|
+
"category": "onReturnableEvents",
|
|
8
|
+
"description": "Publish a new plugin or version",
|
|
9
|
+
"inputSchema": {
|
|
10
|
+
"description": "Request body for publishing a plugin",
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"org": {
|
|
14
|
+
"description": "Organization name",
|
|
15
|
+
"type": "string",
|
|
16
|
+
"minLength": 1,
|
|
17
|
+
"maxLength": 100
|
|
18
|
+
},
|
|
19
|
+
"name": {
|
|
20
|
+
"description": "Plugin name",
|
|
21
|
+
"type": "string",
|
|
22
|
+
"minLength": 1,
|
|
23
|
+
"maxLength": 100
|
|
24
|
+
},
|
|
25
|
+
"version": {
|
|
26
|
+
"description": "Semantic version",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"minLength": 1,
|
|
29
|
+
"maxLength": 50
|
|
30
|
+
},
|
|
31
|
+
"language": {
|
|
32
|
+
"description": "Programming language",
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": [
|
|
35
|
+
"nodejs",
|
|
36
|
+
"csharp",
|
|
37
|
+
"go",
|
|
38
|
+
"java",
|
|
39
|
+
"python"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"metadata": {
|
|
43
|
+
"description": "Plugin metadata",
|
|
44
|
+
"type": "object",
|
|
45
|
+
"properties": {
|
|
46
|
+
"displayName": {
|
|
47
|
+
"description": "Human-readable name",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"maxLength": 200
|
|
51
|
+
},
|
|
52
|
+
"description": {
|
|
53
|
+
"description": "Short description",
|
|
54
|
+
"type": "string",
|
|
55
|
+
"minLength": 1,
|
|
56
|
+
"maxLength": 1000
|
|
57
|
+
},
|
|
58
|
+
"category": {
|
|
59
|
+
"description": "Plugin category",
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": [
|
|
62
|
+
"service",
|
|
63
|
+
"observable",
|
|
64
|
+
"events",
|
|
65
|
+
"config"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"tags": {
|
|
69
|
+
"description": "Searchable keywords",
|
|
70
|
+
"type": "array",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"maxLength": 50
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"author": {
|
|
77
|
+
"description": "Author - either a string or { name, email?, url? }",
|
|
78
|
+
"oneOf": [
|
|
79
|
+
{
|
|
80
|
+
"description": "Author name as a string",
|
|
81
|
+
"type": "string",
|
|
82
|
+
"maxLength": 200
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"description": "Author as an object (npm-style)",
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"name": {
|
|
89
|
+
"description": "Author name",
|
|
90
|
+
"type": "string",
|
|
91
|
+
"maxLength": 200
|
|
92
|
+
},
|
|
93
|
+
"email": {
|
|
94
|
+
"description": "Author email",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"maxLength": 200
|
|
97
|
+
},
|
|
98
|
+
"url": {
|
|
99
|
+
"description": "Author homepage",
|
|
100
|
+
"type": "string",
|
|
101
|
+
"format": "uri"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"name"
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
"license": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"maxLength": 50
|
|
113
|
+
},
|
|
114
|
+
"homepage": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"format": "uri"
|
|
117
|
+
},
|
|
118
|
+
"repository": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"format": "uri"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"required": [
|
|
124
|
+
"displayName",
|
|
125
|
+
"description",
|
|
126
|
+
"category",
|
|
127
|
+
"tags"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"eventSchema": {
|
|
131
|
+
"description": "EventSchemaExport object (parsed at HTTP boundary, transported as object)",
|
|
132
|
+
"oneOf": []
|
|
133
|
+
},
|
|
134
|
+
"capabilities": {
|
|
135
|
+
"description": "Plugin capabilities object (parsed at HTTP boundary, optional top-level override)",
|
|
136
|
+
"oneOf": []
|
|
137
|
+
},
|
|
138
|
+
"configSchema": {
|
|
139
|
+
"description": "Configuration JSON Schema object (parsed at HTTP boundary)",
|
|
140
|
+
"oneOf": []
|
|
141
|
+
},
|
|
142
|
+
"typeDefinitions": {
|
|
143
|
+
"description": "Language-specific type definitions",
|
|
144
|
+
"type": "object",
|
|
145
|
+
"properties": {
|
|
146
|
+
"nodejs": {
|
|
147
|
+
"description": "TypeScript .d.ts definitions",
|
|
148
|
+
"type": "string"
|
|
149
|
+
},
|
|
150
|
+
"csharp": {
|
|
151
|
+
"description": "C# interface definitions",
|
|
152
|
+
"type": "string"
|
|
153
|
+
},
|
|
154
|
+
"go": {
|
|
155
|
+
"description": "Go type definitions",
|
|
156
|
+
"type": "string"
|
|
157
|
+
},
|
|
158
|
+
"java": {
|
|
159
|
+
"description": "Java interface definitions",
|
|
160
|
+
"type": "string"
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"required": []
|
|
164
|
+
},
|
|
165
|
+
"documentation": {
|
|
166
|
+
"description": "Array of markdown documentation files (at least 1 required)",
|
|
167
|
+
"type": "array",
|
|
168
|
+
"items": {
|
|
169
|
+
"description": "Markdown file content (title extracted from first # heading)",
|
|
170
|
+
"type": "string"
|
|
171
|
+
},
|
|
172
|
+
"minItems": 1
|
|
173
|
+
},
|
|
174
|
+
"dependencies": {
|
|
175
|
+
"description": "Plugin dependencies",
|
|
176
|
+
"type": "array",
|
|
177
|
+
"items": {
|
|
178
|
+
"description": "Plugin dependency declaration",
|
|
179
|
+
"type": "object",
|
|
180
|
+
"properties": {
|
|
181
|
+
"id": {
|
|
182
|
+
"description": "Plugin ID (org/name or just name for _ org)",
|
|
183
|
+
"type": "string",
|
|
184
|
+
"minLength": 1,
|
|
185
|
+
"maxLength": 200
|
|
186
|
+
},
|
|
187
|
+
"version": {
|
|
188
|
+
"description": "Semver range constraint (e.g. ^1.0.0, ~2.1, >=3.0.0)",
|
|
189
|
+
"type": "string",
|
|
190
|
+
"minLength": 1,
|
|
191
|
+
"maxLength": 50
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"required": [
|
|
195
|
+
"id",
|
|
196
|
+
"version"
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
"package": {
|
|
201
|
+
"description": "Language-specific package information",
|
|
202
|
+
"type": "object",
|
|
203
|
+
"properties": {
|
|
204
|
+
"nodejs": {
|
|
205
|
+
"description": "NPM package name",
|
|
206
|
+
"type": "string"
|
|
207
|
+
},
|
|
208
|
+
"csharp": {
|
|
209
|
+
"description": "NuGet package name",
|
|
210
|
+
"type": "string"
|
|
211
|
+
},
|
|
212
|
+
"go": {
|
|
213
|
+
"description": "Go module path",
|
|
214
|
+
"type": "string"
|
|
215
|
+
},
|
|
216
|
+
"java": {
|
|
217
|
+
"description": "Maven coordinates",
|
|
218
|
+
"type": "string"
|
|
219
|
+
},
|
|
220
|
+
"python": {
|
|
221
|
+
"description": "PyPI package name",
|
|
222
|
+
"type": "string"
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
"required": []
|
|
226
|
+
},
|
|
227
|
+
"runtime": {
|
|
228
|
+
"description": "Runtime version requirements",
|
|
229
|
+
"type": "object",
|
|
230
|
+
"properties": {
|
|
231
|
+
"nodejs": {
|
|
232
|
+
"description": "Node.js version requirement",
|
|
233
|
+
"type": "string"
|
|
234
|
+
},
|
|
235
|
+
"dotnet": {
|
|
236
|
+
"description": ".NET version requirement",
|
|
237
|
+
"type": "string"
|
|
238
|
+
},
|
|
239
|
+
"go": {
|
|
240
|
+
"description": "Go version requirement",
|
|
241
|
+
"type": "string"
|
|
242
|
+
},
|
|
243
|
+
"java": {
|
|
244
|
+
"description": "Java version requirement",
|
|
245
|
+
"type": "string"
|
|
246
|
+
},
|
|
247
|
+
"python": {
|
|
248
|
+
"description": "Python version requirement",
|
|
249
|
+
"type": "string"
|
|
250
|
+
}
|
|
251
|
+
},
|
|
252
|
+
"required": []
|
|
253
|
+
},
|
|
254
|
+
"visibility": {
|
|
255
|
+
"description": "Visibility level (default: public)",
|
|
256
|
+
"type": "string",
|
|
257
|
+
"enum": [
|
|
258
|
+
"public",
|
|
259
|
+
"private"
|
|
260
|
+
]
|
|
261
|
+
},
|
|
262
|
+
"publishedBy": {
|
|
263
|
+
"description": "User ID of the publisher (set by HTTP layer)",
|
|
264
|
+
"type": "string",
|
|
265
|
+
"maxLength": 200
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"required": [
|
|
269
|
+
"org",
|
|
270
|
+
"name",
|
|
271
|
+
"version",
|
|
272
|
+
"language",
|
|
273
|
+
"metadata",
|
|
274
|
+
"eventSchema",
|
|
275
|
+
"documentation"
|
|
276
|
+
]
|
|
277
|
+
},
|
|
278
|
+
"outputSchema": {
|
|
279
|
+
"description": "Response for publish operation",
|
|
280
|
+
"type": "object",
|
|
281
|
+
"properties": {
|
|
282
|
+
"success": {
|
|
283
|
+
"description": "Operation success status",
|
|
284
|
+
"type": "boolean"
|
|
285
|
+
},
|
|
286
|
+
"pluginId": {
|
|
287
|
+
"description": "Full plugin ID (org/name)",
|
|
288
|
+
"type": "string"
|
|
289
|
+
},
|
|
290
|
+
"version": {
|
|
291
|
+
"description": "Published version",
|
|
292
|
+
"type": "string"
|
|
293
|
+
},
|
|
294
|
+
"message": {
|
|
295
|
+
"description": "Success or error message",
|
|
296
|
+
"type": "string"
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
"required": [
|
|
300
|
+
"success",
|
|
301
|
+
"pluginId",
|
|
302
|
+
"version"
|
|
303
|
+
]
|
|
304
|
+
}
|
|
305
|
+
},
|
|
306
|
+
"registry.plugin.get": {
|
|
307
|
+
"type": "returnable",
|
|
308
|
+
"category": "onReturnableEvents",
|
|
309
|
+
"description": "Get plugin details by org/name",
|
|
310
|
+
"inputSchema": {
|
|
311
|
+
"type": "object",
|
|
312
|
+
"properties": {
|
|
313
|
+
"org": {
|
|
314
|
+
"description": "Organization name",
|
|
315
|
+
"type": "string"
|
|
316
|
+
},
|
|
317
|
+
"name": {
|
|
318
|
+
"description": "Plugin name",
|
|
319
|
+
"type": "string"
|
|
320
|
+
},
|
|
321
|
+
"version": {
|
|
322
|
+
"description": "Version (defaults to latest)",
|
|
323
|
+
"type": "string"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"required": [
|
|
327
|
+
"org",
|
|
328
|
+
"name"
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"outputSchema": {
|
|
332
|
+
"description": "Registry entry for a plugin",
|
|
333
|
+
"type": "object",
|
|
334
|
+
"properties": {
|
|
335
|
+
"id": {
|
|
336
|
+
"description": "Full ID: org/plugin-name",
|
|
337
|
+
"type": "string",
|
|
338
|
+
"minLength": 1,
|
|
339
|
+
"maxLength": 200
|
|
340
|
+
},
|
|
341
|
+
"org": {
|
|
342
|
+
"description": "Organization or user name",
|
|
343
|
+
"type": "string",
|
|
344
|
+
"minLength": 1,
|
|
345
|
+
"maxLength": 100
|
|
346
|
+
},
|
|
347
|
+
"name": {
|
|
348
|
+
"description": "Plugin name",
|
|
349
|
+
"type": "string",
|
|
350
|
+
"minLength": 1,
|
|
351
|
+
"maxLength": 100
|
|
352
|
+
},
|
|
353
|
+
"displayName": {
|
|
354
|
+
"description": "Human-readable name",
|
|
355
|
+
"type": "string",
|
|
356
|
+
"minLength": 1,
|
|
357
|
+
"maxLength": 200
|
|
358
|
+
},
|
|
359
|
+
"description": {
|
|
360
|
+
"description": "Short description",
|
|
361
|
+
"type": "string",
|
|
362
|
+
"minLength": 1,
|
|
363
|
+
"maxLength": 1000
|
|
364
|
+
},
|
|
365
|
+
"version": {
|
|
366
|
+
"description": "Semantic version (1.0.0)",
|
|
367
|
+
"type": "string",
|
|
368
|
+
"minLength": 1,
|
|
369
|
+
"maxLength": 50
|
|
370
|
+
},
|
|
371
|
+
"majorMinor": {
|
|
372
|
+
"description": "Major.minor only (1.0)",
|
|
373
|
+
"type": "string",
|
|
374
|
+
"minLength": 1,
|
|
375
|
+
"maxLength": 20
|
|
376
|
+
},
|
|
377
|
+
"language": {
|
|
378
|
+
"description": "Programming language",
|
|
379
|
+
"type": "string",
|
|
380
|
+
"enum": [
|
|
381
|
+
"nodejs",
|
|
382
|
+
"csharp",
|
|
383
|
+
"go",
|
|
384
|
+
"java",
|
|
385
|
+
"python"
|
|
386
|
+
]
|
|
387
|
+
},
|
|
388
|
+
"package": {
|
|
389
|
+
"description": "Language-specific package information",
|
|
390
|
+
"type": "object",
|
|
391
|
+
"properties": {
|
|
392
|
+
"nodejs": {
|
|
393
|
+
"description": "NPM package name",
|
|
394
|
+
"type": "string"
|
|
395
|
+
},
|
|
396
|
+
"csharp": {
|
|
397
|
+
"description": "NuGet package name",
|
|
398
|
+
"type": "string"
|
|
399
|
+
},
|
|
400
|
+
"go": {
|
|
401
|
+
"description": "Go module path",
|
|
402
|
+
"type": "string"
|
|
403
|
+
},
|
|
404
|
+
"java": {
|
|
405
|
+
"description": "Maven coordinates",
|
|
406
|
+
"type": "string"
|
|
407
|
+
},
|
|
408
|
+
"python": {
|
|
409
|
+
"description": "PyPI package name",
|
|
410
|
+
"type": "string"
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
"required": []
|
|
414
|
+
},
|
|
415
|
+
"category": {
|
|
416
|
+
"description": "Plugin category",
|
|
417
|
+
"type": "string",
|
|
418
|
+
"enum": [
|
|
419
|
+
"service",
|
|
420
|
+
"observable",
|
|
421
|
+
"events",
|
|
422
|
+
"config"
|
|
423
|
+
]
|
|
424
|
+
},
|
|
425
|
+
"tags": {
|
|
426
|
+
"description": "Searchable keywords",
|
|
427
|
+
"type": "array",
|
|
428
|
+
"items": {
|
|
429
|
+
"type": "string",
|
|
430
|
+
"maxLength": 50
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
"author": {
|
|
434
|
+
"description": "Author - either a string or { name, email?, url? }",
|
|
435
|
+
"oneOf": [
|
|
436
|
+
{
|
|
437
|
+
"description": "Author name as a string",
|
|
438
|
+
"type": "string",
|
|
439
|
+
"maxLength": 200
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
"description": "Author as an object (npm-style)",
|
|
443
|
+
"type": "object",
|
|
444
|
+
"properties": {
|
|
445
|
+
"name": {
|
|
446
|
+
"description": "Author name",
|
|
447
|
+
"type": "string",
|
|
448
|
+
"maxLength": 200
|
|
449
|
+
},
|
|
450
|
+
"email": {
|
|
451
|
+
"description": "Author email",
|
|
452
|
+
"type": "string",
|
|
453
|
+
"maxLength": 200
|
|
454
|
+
},
|
|
455
|
+
"url": {
|
|
456
|
+
"description": "Author homepage",
|
|
457
|
+
"type": "string",
|
|
458
|
+
"format": "uri"
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"required": [
|
|
462
|
+
"name"
|
|
463
|
+
]
|
|
464
|
+
}
|
|
465
|
+
]
|
|
466
|
+
},
|
|
467
|
+
"license": {
|
|
468
|
+
"description": "License identifier",
|
|
469
|
+
"type": "string",
|
|
470
|
+
"maxLength": 50
|
|
471
|
+
},
|
|
472
|
+
"homepage": {
|
|
473
|
+
"description": "Documentation URL",
|
|
474
|
+
"type": "string",
|
|
475
|
+
"format": "uri"
|
|
476
|
+
},
|
|
477
|
+
"repository": {
|
|
478
|
+
"description": "Source repository URL",
|
|
479
|
+
"type": "string",
|
|
480
|
+
"format": "uri"
|
|
481
|
+
},
|
|
482
|
+
"visibility": {
|
|
483
|
+
"description": "Visibility level",
|
|
484
|
+
"type": "string",
|
|
485
|
+
"enum": [
|
|
486
|
+
"public",
|
|
487
|
+
"private"
|
|
488
|
+
]
|
|
489
|
+
},
|
|
490
|
+
"eventSchema": {
|
|
491
|
+
"description": "Events map (Record<eventName, EventExportEntry>)",
|
|
492
|
+
"oneOf": []
|
|
493
|
+
},
|
|
494
|
+
"capabilities": {
|
|
495
|
+
"description": "Plugin capabilities object",
|
|
496
|
+
"oneOf": []
|
|
497
|
+
},
|
|
498
|
+
"configSchema": {
|
|
499
|
+
"description": "Configuration JSON Schema object",
|
|
500
|
+
"oneOf": []
|
|
501
|
+
},
|
|
502
|
+
"typeDefinitions": {
|
|
503
|
+
"description": "Language-specific type definitions",
|
|
504
|
+
"type": "object",
|
|
505
|
+
"properties": {
|
|
506
|
+
"nodejs": {
|
|
507
|
+
"description": "TypeScript .d.ts definitions",
|
|
508
|
+
"type": "string"
|
|
509
|
+
},
|
|
510
|
+
"csharp": {
|
|
511
|
+
"description": "C# interface definitions",
|
|
512
|
+
"type": "string"
|
|
513
|
+
},
|
|
514
|
+
"go": {
|
|
515
|
+
"description": "Go type definitions",
|
|
516
|
+
"type": "string"
|
|
517
|
+
},
|
|
518
|
+
"java": {
|
|
519
|
+
"description": "Java interface definitions",
|
|
520
|
+
"type": "string"
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"required": []
|
|
524
|
+
},
|
|
525
|
+
"documentation": {
|
|
526
|
+
"description": "Array of markdown documentation files (at least 1 required)",
|
|
527
|
+
"type": "array",
|
|
528
|
+
"items": {
|
|
529
|
+
"description": "Markdown file content (title extracted from first # heading)",
|
|
530
|
+
"type": "string"
|
|
531
|
+
},
|
|
532
|
+
"minItems": 1
|
|
533
|
+
},
|
|
534
|
+
"dependencies": {
|
|
535
|
+
"description": "Plugins this plugin depends on",
|
|
536
|
+
"type": "array",
|
|
537
|
+
"items": {
|
|
538
|
+
"description": "Plugin dependency declaration",
|
|
539
|
+
"type": "object",
|
|
540
|
+
"properties": {
|
|
541
|
+
"id": {
|
|
542
|
+
"description": "Plugin ID (org/name or just name for _ org)",
|
|
543
|
+
"type": "string",
|
|
544
|
+
"minLength": 1,
|
|
545
|
+
"maxLength": 200
|
|
546
|
+
},
|
|
547
|
+
"version": {
|
|
548
|
+
"description": "Semver range constraint (e.g. ^1.0.0, ~2.1, >=3.0.0)",
|
|
549
|
+
"type": "string",
|
|
550
|
+
"minLength": 1,
|
|
551
|
+
"maxLength": 50
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"required": [
|
|
555
|
+
"id",
|
|
556
|
+
"version"
|
|
557
|
+
]
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
"permissions": {
|
|
561
|
+
"description": "Per-package user permissions",
|
|
562
|
+
"type": "array",
|
|
563
|
+
"items": {
|
|
564
|
+
"description": "Per-package permission entry (overrides org-level)",
|
|
565
|
+
"type": "object",
|
|
566
|
+
"properties": {
|
|
567
|
+
"userId": {
|
|
568
|
+
"description": "User ID",
|
|
569
|
+
"type": "string",
|
|
570
|
+
"format": "uuid"
|
|
571
|
+
},
|
|
572
|
+
"permission": {
|
|
573
|
+
"description": "Resource-level permission",
|
|
574
|
+
"type": "string",
|
|
575
|
+
"enum": [
|
|
576
|
+
"read",
|
|
577
|
+
"write"
|
|
578
|
+
]
|
|
579
|
+
}
|
|
580
|
+
},
|
|
581
|
+
"required": [
|
|
582
|
+
"userId",
|
|
583
|
+
"permission"
|
|
584
|
+
]
|
|
585
|
+
}
|
|
586
|
+
},
|
|
587
|
+
"eventCount": {
|
|
588
|
+
"description": "Total event count",
|
|
589
|
+
"type": "integer",
|
|
590
|
+
"format": "int32",
|
|
591
|
+
"minimum": 0,
|
|
592
|
+
"maximum": 2147483647
|
|
593
|
+
},
|
|
594
|
+
"emitEventCount": {
|
|
595
|
+
"description": "Fire-and-forget emit events",
|
|
596
|
+
"type": "integer",
|
|
597
|
+
"format": "int32",
|
|
598
|
+
"minimum": 0,
|
|
599
|
+
"maximum": 2147483647
|
|
600
|
+
},
|
|
601
|
+
"onEventCount": {
|
|
602
|
+
"description": "Fire-and-forget on events",
|
|
603
|
+
"type": "integer",
|
|
604
|
+
"format": "int32",
|
|
605
|
+
"minimum": 0,
|
|
606
|
+
"maximum": 2147483647
|
|
607
|
+
},
|
|
608
|
+
"returnableEventCount": {
|
|
609
|
+
"description": "Returnable events",
|
|
610
|
+
"type": "integer",
|
|
611
|
+
"format": "int32",
|
|
612
|
+
"minimum": 0,
|
|
613
|
+
"maximum": 2147483647
|
|
614
|
+
},
|
|
615
|
+
"broadcastEventCount": {
|
|
616
|
+
"description": "Broadcast events",
|
|
617
|
+
"type": "integer",
|
|
618
|
+
"format": "int32",
|
|
619
|
+
"minimum": 0,
|
|
620
|
+
"maximum": 2147483647
|
|
621
|
+
},
|
|
622
|
+
"publishedBy": {
|
|
623
|
+
"description": "User ID who published",
|
|
624
|
+
"type": "string",
|
|
625
|
+
"maxLength": 200
|
|
626
|
+
},
|
|
627
|
+
"publishedAt": {
|
|
628
|
+
"description": "First publish timestamp",
|
|
629
|
+
"type": "string",
|
|
630
|
+
"format": "datetime"
|
|
631
|
+
},
|
|
632
|
+
"updatedAt": {
|
|
633
|
+
"description": "Last update timestamp",
|
|
634
|
+
"type": "string",
|
|
635
|
+
"format": "datetime"
|
|
636
|
+
},
|
|
637
|
+
"downloads": {
|
|
638
|
+
"description": "Download count",
|
|
639
|
+
"type": "integer",
|
|
640
|
+
"format": "int32",
|
|
641
|
+
"minimum": 0,
|
|
642
|
+
"maximum": 2147483647
|
|
643
|
+
},
|
|
644
|
+
"runtime": {
|
|
645
|
+
"description": "Runtime version requirements",
|
|
646
|
+
"type": "object",
|
|
647
|
+
"properties": {
|
|
648
|
+
"nodejs": {
|
|
649
|
+
"description": "Node.js version requirement",
|
|
650
|
+
"type": "string"
|
|
651
|
+
},
|
|
652
|
+
"dotnet": {
|
|
653
|
+
"description": ".NET version requirement",
|
|
654
|
+
"type": "string"
|
|
655
|
+
},
|
|
656
|
+
"go": {
|
|
657
|
+
"description": "Go version requirement",
|
|
658
|
+
"type": "string"
|
|
659
|
+
},
|
|
660
|
+
"java": {
|
|
661
|
+
"description": "Java version requirement",
|
|
662
|
+
"type": "string"
|
|
663
|
+
},
|
|
664
|
+
"python": {
|
|
665
|
+
"description": "Python version requirement",
|
|
666
|
+
"type": "string"
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
"required": []
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
"required": [
|
|
673
|
+
"id",
|
|
674
|
+
"org",
|
|
675
|
+
"name",
|
|
676
|
+
"displayName",
|
|
677
|
+
"description",
|
|
678
|
+
"version",
|
|
679
|
+
"majorMinor",
|
|
680
|
+
"language",
|
|
681
|
+
"category",
|
|
682
|
+
"tags",
|
|
683
|
+
"visibility",
|
|
684
|
+
"eventSchema",
|
|
685
|
+
"eventCount",
|
|
686
|
+
"emitEventCount",
|
|
687
|
+
"onEventCount",
|
|
688
|
+
"returnableEventCount",
|
|
689
|
+
"broadcastEventCount",
|
|
690
|
+
"publishedBy",
|
|
691
|
+
"publishedAt",
|
|
692
|
+
"updatedAt"
|
|
693
|
+
]
|
|
694
|
+
}
|
|
695
|
+
},
|
|
696
|
+
"registry.plugin.list": {
|
|
697
|
+
"type": "returnable",
|
|
698
|
+
"category": "onReturnableEvents",
|
|
699
|
+
"description": "List plugins with filtering",
|
|
700
|
+
"inputSchema": {
|
|
701
|
+
"description": "Query parameters for listing plugins",
|
|
702
|
+
"type": "object",
|
|
703
|
+
"properties": {
|
|
704
|
+
"org": {
|
|
705
|
+
"description": "Filter by organization",
|
|
706
|
+
"type": "string",
|
|
707
|
+
"maxLength": 100
|
|
708
|
+
},
|
|
709
|
+
"language": {
|
|
710
|
+
"description": "Filter by language",
|
|
711
|
+
"type": "string",
|
|
712
|
+
"enum": [
|
|
713
|
+
"nodejs",
|
|
714
|
+
"csharp",
|
|
715
|
+
"go",
|
|
716
|
+
"java",
|
|
717
|
+
"python"
|
|
718
|
+
]
|
|
719
|
+
},
|
|
720
|
+
"category": {
|
|
721
|
+
"description": "Filter by category",
|
|
722
|
+
"type": "string",
|
|
723
|
+
"enum": [
|
|
724
|
+
"service",
|
|
725
|
+
"observable",
|
|
726
|
+
"events",
|
|
727
|
+
"config"
|
|
728
|
+
]
|
|
729
|
+
},
|
|
730
|
+
"limit": {
|
|
731
|
+
"description": "Results per page (default: 50)",
|
|
732
|
+
"type": "integer",
|
|
733
|
+
"format": "int32",
|
|
734
|
+
"minimum": 1,
|
|
735
|
+
"maximum": 100
|
|
736
|
+
},
|
|
737
|
+
"offset": {
|
|
738
|
+
"description": "Pagination offset (default: 0)",
|
|
739
|
+
"type": "integer",
|
|
740
|
+
"format": "int32",
|
|
741
|
+
"minimum": 0,
|
|
742
|
+
"maximum": 2147483647
|
|
743
|
+
}
|
|
744
|
+
},
|
|
745
|
+
"required": []
|
|
746
|
+
},
|
|
747
|
+
"outputSchema": {
|
|
748
|
+
"description": "List results response",
|
|
749
|
+
"type": "object",
|
|
750
|
+
"properties": {
|
|
751
|
+
"results": {
|
|
752
|
+
"description": "Plugin list",
|
|
753
|
+
"type": "array",
|
|
754
|
+
"items": {
|
|
755
|
+
"description": "Registry entry for a plugin",
|
|
756
|
+
"type": "object",
|
|
757
|
+
"properties": {
|
|
758
|
+
"id": {
|
|
759
|
+
"description": "Full ID: org/plugin-name",
|
|
760
|
+
"type": "string",
|
|
761
|
+
"minLength": 1,
|
|
762
|
+
"maxLength": 200
|
|
763
|
+
},
|
|
764
|
+
"org": {
|
|
765
|
+
"description": "Organization or user name",
|
|
766
|
+
"type": "string",
|
|
767
|
+
"minLength": 1,
|
|
768
|
+
"maxLength": 100
|
|
769
|
+
},
|
|
770
|
+
"name": {
|
|
771
|
+
"description": "Plugin name",
|
|
772
|
+
"type": "string",
|
|
773
|
+
"minLength": 1,
|
|
774
|
+
"maxLength": 100
|
|
775
|
+
},
|
|
776
|
+
"displayName": {
|
|
777
|
+
"description": "Human-readable name",
|
|
778
|
+
"type": "string",
|
|
779
|
+
"minLength": 1,
|
|
780
|
+
"maxLength": 200
|
|
781
|
+
},
|
|
782
|
+
"description": {
|
|
783
|
+
"description": "Short description",
|
|
784
|
+
"type": "string",
|
|
785
|
+
"minLength": 1,
|
|
786
|
+
"maxLength": 1000
|
|
787
|
+
},
|
|
788
|
+
"version": {
|
|
789
|
+
"description": "Semantic version (1.0.0)",
|
|
790
|
+
"type": "string",
|
|
791
|
+
"minLength": 1,
|
|
792
|
+
"maxLength": 50
|
|
793
|
+
},
|
|
794
|
+
"majorMinor": {
|
|
795
|
+
"description": "Major.minor only (1.0)",
|
|
796
|
+
"type": "string",
|
|
797
|
+
"minLength": 1,
|
|
798
|
+
"maxLength": 20
|
|
799
|
+
},
|
|
800
|
+
"language": {
|
|
801
|
+
"description": "Programming language",
|
|
802
|
+
"type": "string",
|
|
803
|
+
"enum": [
|
|
804
|
+
"nodejs",
|
|
805
|
+
"csharp",
|
|
806
|
+
"go",
|
|
807
|
+
"java",
|
|
808
|
+
"python"
|
|
809
|
+
]
|
|
810
|
+
},
|
|
811
|
+
"package": {
|
|
812
|
+
"description": "Language-specific package information",
|
|
813
|
+
"type": "object",
|
|
814
|
+
"properties": {
|
|
815
|
+
"nodejs": {
|
|
816
|
+
"description": "NPM package name",
|
|
817
|
+
"type": "string"
|
|
818
|
+
},
|
|
819
|
+
"csharp": {
|
|
820
|
+
"description": "NuGet package name",
|
|
821
|
+
"type": "string"
|
|
822
|
+
},
|
|
823
|
+
"go": {
|
|
824
|
+
"description": "Go module path",
|
|
825
|
+
"type": "string"
|
|
826
|
+
},
|
|
827
|
+
"java": {
|
|
828
|
+
"description": "Maven coordinates",
|
|
829
|
+
"type": "string"
|
|
830
|
+
},
|
|
831
|
+
"python": {
|
|
832
|
+
"description": "PyPI package name",
|
|
833
|
+
"type": "string"
|
|
834
|
+
}
|
|
835
|
+
},
|
|
836
|
+
"required": []
|
|
837
|
+
},
|
|
838
|
+
"category": {
|
|
839
|
+
"description": "Plugin category",
|
|
840
|
+
"type": "string",
|
|
841
|
+
"enum": [
|
|
842
|
+
"service",
|
|
843
|
+
"observable",
|
|
844
|
+
"events",
|
|
845
|
+
"config"
|
|
846
|
+
]
|
|
847
|
+
},
|
|
848
|
+
"tags": {
|
|
849
|
+
"description": "Searchable keywords",
|
|
850
|
+
"type": "array",
|
|
851
|
+
"items": {
|
|
852
|
+
"type": "string",
|
|
853
|
+
"maxLength": 50
|
|
854
|
+
}
|
|
855
|
+
},
|
|
856
|
+
"author": {
|
|
857
|
+
"description": "Author - either a string or { name, email?, url? }",
|
|
858
|
+
"oneOf": [
|
|
859
|
+
{
|
|
860
|
+
"description": "Author name as a string",
|
|
861
|
+
"type": "string",
|
|
862
|
+
"maxLength": 200
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"description": "Author as an object (npm-style)",
|
|
866
|
+
"type": "object",
|
|
867
|
+
"properties": {
|
|
868
|
+
"name": {
|
|
869
|
+
"description": "Author name",
|
|
870
|
+
"type": "string",
|
|
871
|
+
"maxLength": 200
|
|
872
|
+
},
|
|
873
|
+
"email": {
|
|
874
|
+
"description": "Author email",
|
|
875
|
+
"type": "string",
|
|
876
|
+
"maxLength": 200
|
|
877
|
+
},
|
|
878
|
+
"url": {
|
|
879
|
+
"description": "Author homepage",
|
|
880
|
+
"type": "string",
|
|
881
|
+
"format": "uri"
|
|
882
|
+
}
|
|
883
|
+
},
|
|
884
|
+
"required": [
|
|
885
|
+
"name"
|
|
886
|
+
]
|
|
887
|
+
}
|
|
888
|
+
]
|
|
889
|
+
},
|
|
890
|
+
"license": {
|
|
891
|
+
"description": "License identifier",
|
|
892
|
+
"type": "string",
|
|
893
|
+
"maxLength": 50
|
|
894
|
+
},
|
|
895
|
+
"homepage": {
|
|
896
|
+
"description": "Documentation URL",
|
|
897
|
+
"type": "string",
|
|
898
|
+
"format": "uri"
|
|
899
|
+
},
|
|
900
|
+
"repository": {
|
|
901
|
+
"description": "Source repository URL",
|
|
902
|
+
"type": "string",
|
|
903
|
+
"format": "uri"
|
|
904
|
+
},
|
|
905
|
+
"visibility": {
|
|
906
|
+
"description": "Visibility level",
|
|
907
|
+
"type": "string",
|
|
908
|
+
"enum": [
|
|
909
|
+
"public",
|
|
910
|
+
"private"
|
|
911
|
+
]
|
|
912
|
+
},
|
|
913
|
+
"eventSchema": {
|
|
914
|
+
"description": "Events map (Record<eventName, EventExportEntry>)",
|
|
915
|
+
"oneOf": []
|
|
916
|
+
},
|
|
917
|
+
"capabilities": {
|
|
918
|
+
"description": "Plugin capabilities object",
|
|
919
|
+
"oneOf": []
|
|
920
|
+
},
|
|
921
|
+
"configSchema": {
|
|
922
|
+
"description": "Configuration JSON Schema object",
|
|
923
|
+
"oneOf": []
|
|
924
|
+
},
|
|
925
|
+
"typeDefinitions": {
|
|
926
|
+
"description": "Language-specific type definitions",
|
|
927
|
+
"type": "object",
|
|
928
|
+
"properties": {
|
|
929
|
+
"nodejs": {
|
|
930
|
+
"description": "TypeScript .d.ts definitions",
|
|
931
|
+
"type": "string"
|
|
932
|
+
},
|
|
933
|
+
"csharp": {
|
|
934
|
+
"description": "C# interface definitions",
|
|
935
|
+
"type": "string"
|
|
936
|
+
},
|
|
937
|
+
"go": {
|
|
938
|
+
"description": "Go type definitions",
|
|
939
|
+
"type": "string"
|
|
940
|
+
},
|
|
941
|
+
"java": {
|
|
942
|
+
"description": "Java interface definitions",
|
|
943
|
+
"type": "string"
|
|
944
|
+
}
|
|
945
|
+
},
|
|
946
|
+
"required": []
|
|
947
|
+
},
|
|
948
|
+
"documentation": {
|
|
949
|
+
"description": "Array of markdown documentation files (at least 1 required)",
|
|
950
|
+
"type": "array",
|
|
951
|
+
"items": {
|
|
952
|
+
"description": "Markdown file content (title extracted from first # heading)",
|
|
953
|
+
"type": "string"
|
|
954
|
+
},
|
|
955
|
+
"minItems": 1
|
|
956
|
+
},
|
|
957
|
+
"dependencies": {
|
|
958
|
+
"description": "Plugins this plugin depends on",
|
|
959
|
+
"type": "array",
|
|
960
|
+
"items": {
|
|
961
|
+
"description": "Plugin dependency declaration",
|
|
962
|
+
"type": "object",
|
|
963
|
+
"properties": {
|
|
964
|
+
"id": {
|
|
965
|
+
"description": "Plugin ID (org/name or just name for _ org)",
|
|
966
|
+
"type": "string",
|
|
967
|
+
"minLength": 1,
|
|
968
|
+
"maxLength": 200
|
|
969
|
+
},
|
|
970
|
+
"version": {
|
|
971
|
+
"description": "Semver range constraint (e.g. ^1.0.0, ~2.1, >=3.0.0)",
|
|
972
|
+
"type": "string",
|
|
973
|
+
"minLength": 1,
|
|
974
|
+
"maxLength": 50
|
|
975
|
+
}
|
|
976
|
+
},
|
|
977
|
+
"required": [
|
|
978
|
+
"id",
|
|
979
|
+
"version"
|
|
980
|
+
]
|
|
981
|
+
}
|
|
982
|
+
},
|
|
983
|
+
"permissions": {
|
|
984
|
+
"description": "Per-package user permissions",
|
|
985
|
+
"type": "array",
|
|
986
|
+
"items": {
|
|
987
|
+
"description": "Per-package permission entry (overrides org-level)",
|
|
988
|
+
"type": "object",
|
|
989
|
+
"properties": {
|
|
990
|
+
"userId": {
|
|
991
|
+
"description": "User ID",
|
|
992
|
+
"type": "string",
|
|
993
|
+
"format": "uuid"
|
|
994
|
+
},
|
|
995
|
+
"permission": {
|
|
996
|
+
"description": "Resource-level permission",
|
|
997
|
+
"type": "string",
|
|
998
|
+
"enum": [
|
|
999
|
+
"read",
|
|
1000
|
+
"write"
|
|
1001
|
+
]
|
|
1002
|
+
}
|
|
1003
|
+
},
|
|
1004
|
+
"required": [
|
|
1005
|
+
"userId",
|
|
1006
|
+
"permission"
|
|
1007
|
+
]
|
|
1008
|
+
}
|
|
1009
|
+
},
|
|
1010
|
+
"eventCount": {
|
|
1011
|
+
"description": "Total event count",
|
|
1012
|
+
"type": "integer",
|
|
1013
|
+
"format": "int32",
|
|
1014
|
+
"minimum": 0,
|
|
1015
|
+
"maximum": 2147483647
|
|
1016
|
+
},
|
|
1017
|
+
"emitEventCount": {
|
|
1018
|
+
"description": "Fire-and-forget emit events",
|
|
1019
|
+
"type": "integer",
|
|
1020
|
+
"format": "int32",
|
|
1021
|
+
"minimum": 0,
|
|
1022
|
+
"maximum": 2147483647
|
|
1023
|
+
},
|
|
1024
|
+
"onEventCount": {
|
|
1025
|
+
"description": "Fire-and-forget on events",
|
|
1026
|
+
"type": "integer",
|
|
1027
|
+
"format": "int32",
|
|
1028
|
+
"minimum": 0,
|
|
1029
|
+
"maximum": 2147483647
|
|
1030
|
+
},
|
|
1031
|
+
"returnableEventCount": {
|
|
1032
|
+
"description": "Returnable events",
|
|
1033
|
+
"type": "integer",
|
|
1034
|
+
"format": "int32",
|
|
1035
|
+
"minimum": 0,
|
|
1036
|
+
"maximum": 2147483647
|
|
1037
|
+
},
|
|
1038
|
+
"broadcastEventCount": {
|
|
1039
|
+
"description": "Broadcast events",
|
|
1040
|
+
"type": "integer",
|
|
1041
|
+
"format": "int32",
|
|
1042
|
+
"minimum": 0,
|
|
1043
|
+
"maximum": 2147483647
|
|
1044
|
+
},
|
|
1045
|
+
"publishedBy": {
|
|
1046
|
+
"description": "User ID who published",
|
|
1047
|
+
"type": "string",
|
|
1048
|
+
"maxLength": 200
|
|
1049
|
+
},
|
|
1050
|
+
"publishedAt": {
|
|
1051
|
+
"description": "First publish timestamp",
|
|
1052
|
+
"type": "string",
|
|
1053
|
+
"format": "datetime"
|
|
1054
|
+
},
|
|
1055
|
+
"updatedAt": {
|
|
1056
|
+
"description": "Last update timestamp",
|
|
1057
|
+
"type": "string",
|
|
1058
|
+
"format": "datetime"
|
|
1059
|
+
},
|
|
1060
|
+
"downloads": {
|
|
1061
|
+
"description": "Download count",
|
|
1062
|
+
"type": "integer",
|
|
1063
|
+
"format": "int32",
|
|
1064
|
+
"minimum": 0,
|
|
1065
|
+
"maximum": 2147483647
|
|
1066
|
+
},
|
|
1067
|
+
"runtime": {
|
|
1068
|
+
"description": "Runtime version requirements",
|
|
1069
|
+
"type": "object",
|
|
1070
|
+
"properties": {
|
|
1071
|
+
"nodejs": {
|
|
1072
|
+
"description": "Node.js version requirement",
|
|
1073
|
+
"type": "string"
|
|
1074
|
+
},
|
|
1075
|
+
"dotnet": {
|
|
1076
|
+
"description": ".NET version requirement",
|
|
1077
|
+
"type": "string"
|
|
1078
|
+
},
|
|
1079
|
+
"go": {
|
|
1080
|
+
"description": "Go version requirement",
|
|
1081
|
+
"type": "string"
|
|
1082
|
+
},
|
|
1083
|
+
"java": {
|
|
1084
|
+
"description": "Java version requirement",
|
|
1085
|
+
"type": "string"
|
|
1086
|
+
},
|
|
1087
|
+
"python": {
|
|
1088
|
+
"description": "Python version requirement",
|
|
1089
|
+
"type": "string"
|
|
1090
|
+
}
|
|
1091
|
+
},
|
|
1092
|
+
"required": []
|
|
1093
|
+
}
|
|
1094
|
+
},
|
|
1095
|
+
"required": [
|
|
1096
|
+
"id",
|
|
1097
|
+
"org",
|
|
1098
|
+
"name",
|
|
1099
|
+
"displayName",
|
|
1100
|
+
"description",
|
|
1101
|
+
"version",
|
|
1102
|
+
"majorMinor",
|
|
1103
|
+
"language",
|
|
1104
|
+
"category",
|
|
1105
|
+
"tags",
|
|
1106
|
+
"visibility",
|
|
1107
|
+
"eventSchema",
|
|
1108
|
+
"eventCount",
|
|
1109
|
+
"emitEventCount",
|
|
1110
|
+
"onEventCount",
|
|
1111
|
+
"returnableEventCount",
|
|
1112
|
+
"broadcastEventCount",
|
|
1113
|
+
"publishedBy",
|
|
1114
|
+
"publishedAt",
|
|
1115
|
+
"updatedAt"
|
|
1116
|
+
]
|
|
1117
|
+
}
|
|
1118
|
+
},
|
|
1119
|
+
"total": {
|
|
1120
|
+
"description": "Total count",
|
|
1121
|
+
"type": "integer",
|
|
1122
|
+
"format": "int32",
|
|
1123
|
+
"minimum": 0,
|
|
1124
|
+
"maximum": 2147483647
|
|
1125
|
+
},
|
|
1126
|
+
"page": {
|
|
1127
|
+
"description": "Current page number",
|
|
1128
|
+
"type": "integer",
|
|
1129
|
+
"format": "int32",
|
|
1130
|
+
"minimum": 1,
|
|
1131
|
+
"maximum": 2147483647
|
|
1132
|
+
}
|
|
1133
|
+
},
|
|
1134
|
+
"required": [
|
|
1135
|
+
"results",
|
|
1136
|
+
"total",
|
|
1137
|
+
"page"
|
|
1138
|
+
]
|
|
1139
|
+
}
|
|
1140
|
+
},
|
|
1141
|
+
"registry.plugin.search": {
|
|
1142
|
+
"type": "returnable",
|
|
1143
|
+
"category": "onReturnableEvents",
|
|
1144
|
+
"description": "Search plugins by query",
|
|
1145
|
+
"inputSchema": {
|
|
1146
|
+
"description": "Query parameters for searching plugins",
|
|
1147
|
+
"type": "object",
|
|
1148
|
+
"properties": {
|
|
1149
|
+
"query": {
|
|
1150
|
+
"description": "Search query string",
|
|
1151
|
+
"type": "string",
|
|
1152
|
+
"minLength": 1,
|
|
1153
|
+
"maxLength": 200
|
|
1154
|
+
},
|
|
1155
|
+
"language": {
|
|
1156
|
+
"description": "Filter by language",
|
|
1157
|
+
"type": "string",
|
|
1158
|
+
"enum": [
|
|
1159
|
+
"nodejs",
|
|
1160
|
+
"csharp",
|
|
1161
|
+
"go",
|
|
1162
|
+
"java",
|
|
1163
|
+
"python"
|
|
1164
|
+
]
|
|
1165
|
+
},
|
|
1166
|
+
"category": {
|
|
1167
|
+
"description": "Filter by category",
|
|
1168
|
+
"type": "string",
|
|
1169
|
+
"enum": [
|
|
1170
|
+
"service",
|
|
1171
|
+
"observable",
|
|
1172
|
+
"events",
|
|
1173
|
+
"config"
|
|
1174
|
+
]
|
|
1175
|
+
},
|
|
1176
|
+
"limit": {
|
|
1177
|
+
"description": "Results per page (default: 20)",
|
|
1178
|
+
"type": "integer",
|
|
1179
|
+
"format": "int32",
|
|
1180
|
+
"minimum": 1,
|
|
1181
|
+
"maximum": 100
|
|
1182
|
+
},
|
|
1183
|
+
"offset": {
|
|
1184
|
+
"description": "Pagination offset (default: 0)",
|
|
1185
|
+
"type": "integer",
|
|
1186
|
+
"format": "int32",
|
|
1187
|
+
"minimum": 0,
|
|
1188
|
+
"maximum": 2147483647
|
|
1189
|
+
}
|
|
1190
|
+
},
|
|
1191
|
+
"required": [
|
|
1192
|
+
"query"
|
|
1193
|
+
]
|
|
1194
|
+
},
|
|
1195
|
+
"outputSchema": {
|
|
1196
|
+
"description": "Search results response",
|
|
1197
|
+
"type": "object",
|
|
1198
|
+
"properties": {
|
|
1199
|
+
"results": {
|
|
1200
|
+
"description": "Matching plugins",
|
|
1201
|
+
"type": "array",
|
|
1202
|
+
"items": {
|
|
1203
|
+
"description": "Registry entry for a plugin",
|
|
1204
|
+
"type": "object",
|
|
1205
|
+
"properties": {
|
|
1206
|
+
"id": {
|
|
1207
|
+
"description": "Full ID: org/plugin-name",
|
|
1208
|
+
"type": "string",
|
|
1209
|
+
"minLength": 1,
|
|
1210
|
+
"maxLength": 200
|
|
1211
|
+
},
|
|
1212
|
+
"org": {
|
|
1213
|
+
"description": "Organization or user name",
|
|
1214
|
+
"type": "string",
|
|
1215
|
+
"minLength": 1,
|
|
1216
|
+
"maxLength": 100
|
|
1217
|
+
},
|
|
1218
|
+
"name": {
|
|
1219
|
+
"description": "Plugin name",
|
|
1220
|
+
"type": "string",
|
|
1221
|
+
"minLength": 1,
|
|
1222
|
+
"maxLength": 100
|
|
1223
|
+
},
|
|
1224
|
+
"displayName": {
|
|
1225
|
+
"description": "Human-readable name",
|
|
1226
|
+
"type": "string",
|
|
1227
|
+
"minLength": 1,
|
|
1228
|
+
"maxLength": 200
|
|
1229
|
+
},
|
|
1230
|
+
"description": {
|
|
1231
|
+
"description": "Short description",
|
|
1232
|
+
"type": "string",
|
|
1233
|
+
"minLength": 1,
|
|
1234
|
+
"maxLength": 1000
|
|
1235
|
+
},
|
|
1236
|
+
"version": {
|
|
1237
|
+
"description": "Semantic version (1.0.0)",
|
|
1238
|
+
"type": "string",
|
|
1239
|
+
"minLength": 1,
|
|
1240
|
+
"maxLength": 50
|
|
1241
|
+
},
|
|
1242
|
+
"majorMinor": {
|
|
1243
|
+
"description": "Major.minor only (1.0)",
|
|
1244
|
+
"type": "string",
|
|
1245
|
+
"minLength": 1,
|
|
1246
|
+
"maxLength": 20
|
|
1247
|
+
},
|
|
1248
|
+
"language": {
|
|
1249
|
+
"description": "Programming language",
|
|
1250
|
+
"type": "string",
|
|
1251
|
+
"enum": [
|
|
1252
|
+
"nodejs",
|
|
1253
|
+
"csharp",
|
|
1254
|
+
"go",
|
|
1255
|
+
"java",
|
|
1256
|
+
"python"
|
|
1257
|
+
]
|
|
1258
|
+
},
|
|
1259
|
+
"package": {
|
|
1260
|
+
"description": "Language-specific package information",
|
|
1261
|
+
"type": "object",
|
|
1262
|
+
"properties": {
|
|
1263
|
+
"nodejs": {
|
|
1264
|
+
"description": "NPM package name",
|
|
1265
|
+
"type": "string"
|
|
1266
|
+
},
|
|
1267
|
+
"csharp": {
|
|
1268
|
+
"description": "NuGet package name",
|
|
1269
|
+
"type": "string"
|
|
1270
|
+
},
|
|
1271
|
+
"go": {
|
|
1272
|
+
"description": "Go module path",
|
|
1273
|
+
"type": "string"
|
|
1274
|
+
},
|
|
1275
|
+
"java": {
|
|
1276
|
+
"description": "Maven coordinates",
|
|
1277
|
+
"type": "string"
|
|
1278
|
+
},
|
|
1279
|
+
"python": {
|
|
1280
|
+
"description": "PyPI package name",
|
|
1281
|
+
"type": "string"
|
|
1282
|
+
}
|
|
1283
|
+
},
|
|
1284
|
+
"required": []
|
|
1285
|
+
},
|
|
1286
|
+
"category": {
|
|
1287
|
+
"description": "Plugin category",
|
|
1288
|
+
"type": "string",
|
|
1289
|
+
"enum": [
|
|
1290
|
+
"service",
|
|
1291
|
+
"observable",
|
|
1292
|
+
"events",
|
|
1293
|
+
"config"
|
|
1294
|
+
]
|
|
1295
|
+
},
|
|
1296
|
+
"tags": {
|
|
1297
|
+
"description": "Searchable keywords",
|
|
1298
|
+
"type": "array",
|
|
1299
|
+
"items": {
|
|
1300
|
+
"type": "string",
|
|
1301
|
+
"maxLength": 50
|
|
1302
|
+
}
|
|
1303
|
+
},
|
|
1304
|
+
"author": {
|
|
1305
|
+
"description": "Author - either a string or { name, email?, url? }",
|
|
1306
|
+
"oneOf": [
|
|
1307
|
+
{
|
|
1308
|
+
"description": "Author name as a string",
|
|
1309
|
+
"type": "string",
|
|
1310
|
+
"maxLength": 200
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
"description": "Author as an object (npm-style)",
|
|
1314
|
+
"type": "object",
|
|
1315
|
+
"properties": {
|
|
1316
|
+
"name": {
|
|
1317
|
+
"description": "Author name",
|
|
1318
|
+
"type": "string",
|
|
1319
|
+
"maxLength": 200
|
|
1320
|
+
},
|
|
1321
|
+
"email": {
|
|
1322
|
+
"description": "Author email",
|
|
1323
|
+
"type": "string",
|
|
1324
|
+
"maxLength": 200
|
|
1325
|
+
},
|
|
1326
|
+
"url": {
|
|
1327
|
+
"description": "Author homepage",
|
|
1328
|
+
"type": "string",
|
|
1329
|
+
"format": "uri"
|
|
1330
|
+
}
|
|
1331
|
+
},
|
|
1332
|
+
"required": [
|
|
1333
|
+
"name"
|
|
1334
|
+
]
|
|
1335
|
+
}
|
|
1336
|
+
]
|
|
1337
|
+
},
|
|
1338
|
+
"license": {
|
|
1339
|
+
"description": "License identifier",
|
|
1340
|
+
"type": "string",
|
|
1341
|
+
"maxLength": 50
|
|
1342
|
+
},
|
|
1343
|
+
"homepage": {
|
|
1344
|
+
"description": "Documentation URL",
|
|
1345
|
+
"type": "string",
|
|
1346
|
+
"format": "uri"
|
|
1347
|
+
},
|
|
1348
|
+
"repository": {
|
|
1349
|
+
"description": "Source repository URL",
|
|
1350
|
+
"type": "string",
|
|
1351
|
+
"format": "uri"
|
|
1352
|
+
},
|
|
1353
|
+
"visibility": {
|
|
1354
|
+
"description": "Visibility level",
|
|
1355
|
+
"type": "string",
|
|
1356
|
+
"enum": [
|
|
1357
|
+
"public",
|
|
1358
|
+
"private"
|
|
1359
|
+
]
|
|
1360
|
+
},
|
|
1361
|
+
"eventSchema": {
|
|
1362
|
+
"description": "Events map (Record<eventName, EventExportEntry>)",
|
|
1363
|
+
"oneOf": []
|
|
1364
|
+
},
|
|
1365
|
+
"capabilities": {
|
|
1366
|
+
"description": "Plugin capabilities object",
|
|
1367
|
+
"oneOf": []
|
|
1368
|
+
},
|
|
1369
|
+
"configSchema": {
|
|
1370
|
+
"description": "Configuration JSON Schema object",
|
|
1371
|
+
"oneOf": []
|
|
1372
|
+
},
|
|
1373
|
+
"typeDefinitions": {
|
|
1374
|
+
"description": "Language-specific type definitions",
|
|
1375
|
+
"type": "object",
|
|
1376
|
+
"properties": {
|
|
1377
|
+
"nodejs": {
|
|
1378
|
+
"description": "TypeScript .d.ts definitions",
|
|
1379
|
+
"type": "string"
|
|
1380
|
+
},
|
|
1381
|
+
"csharp": {
|
|
1382
|
+
"description": "C# interface definitions",
|
|
1383
|
+
"type": "string"
|
|
1384
|
+
},
|
|
1385
|
+
"go": {
|
|
1386
|
+
"description": "Go type definitions",
|
|
1387
|
+
"type": "string"
|
|
1388
|
+
},
|
|
1389
|
+
"java": {
|
|
1390
|
+
"description": "Java interface definitions",
|
|
1391
|
+
"type": "string"
|
|
1392
|
+
}
|
|
1393
|
+
},
|
|
1394
|
+
"required": []
|
|
1395
|
+
},
|
|
1396
|
+
"documentation": {
|
|
1397
|
+
"description": "Array of markdown documentation files (at least 1 required)",
|
|
1398
|
+
"type": "array",
|
|
1399
|
+
"items": {
|
|
1400
|
+
"description": "Markdown file content (title extracted from first # heading)",
|
|
1401
|
+
"type": "string"
|
|
1402
|
+
},
|
|
1403
|
+
"minItems": 1
|
|
1404
|
+
},
|
|
1405
|
+
"dependencies": {
|
|
1406
|
+
"description": "Plugins this plugin depends on",
|
|
1407
|
+
"type": "array",
|
|
1408
|
+
"items": {
|
|
1409
|
+
"description": "Plugin dependency declaration",
|
|
1410
|
+
"type": "object",
|
|
1411
|
+
"properties": {
|
|
1412
|
+
"id": {
|
|
1413
|
+
"description": "Plugin ID (org/name or just name for _ org)",
|
|
1414
|
+
"type": "string",
|
|
1415
|
+
"minLength": 1,
|
|
1416
|
+
"maxLength": 200
|
|
1417
|
+
},
|
|
1418
|
+
"version": {
|
|
1419
|
+
"description": "Semver range constraint (e.g. ^1.0.0, ~2.1, >=3.0.0)",
|
|
1420
|
+
"type": "string",
|
|
1421
|
+
"minLength": 1,
|
|
1422
|
+
"maxLength": 50
|
|
1423
|
+
}
|
|
1424
|
+
},
|
|
1425
|
+
"required": [
|
|
1426
|
+
"id",
|
|
1427
|
+
"version"
|
|
1428
|
+
]
|
|
1429
|
+
}
|
|
1430
|
+
},
|
|
1431
|
+
"permissions": {
|
|
1432
|
+
"description": "Per-package user permissions",
|
|
1433
|
+
"type": "array",
|
|
1434
|
+
"items": {
|
|
1435
|
+
"description": "Per-package permission entry (overrides org-level)",
|
|
1436
|
+
"type": "object",
|
|
1437
|
+
"properties": {
|
|
1438
|
+
"userId": {
|
|
1439
|
+
"description": "User ID",
|
|
1440
|
+
"type": "string",
|
|
1441
|
+
"format": "uuid"
|
|
1442
|
+
},
|
|
1443
|
+
"permission": {
|
|
1444
|
+
"description": "Resource-level permission",
|
|
1445
|
+
"type": "string",
|
|
1446
|
+
"enum": [
|
|
1447
|
+
"read",
|
|
1448
|
+
"write"
|
|
1449
|
+
]
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
"required": [
|
|
1453
|
+
"userId",
|
|
1454
|
+
"permission"
|
|
1455
|
+
]
|
|
1456
|
+
}
|
|
1457
|
+
},
|
|
1458
|
+
"eventCount": {
|
|
1459
|
+
"description": "Total event count",
|
|
1460
|
+
"type": "integer",
|
|
1461
|
+
"format": "int32",
|
|
1462
|
+
"minimum": 0,
|
|
1463
|
+
"maximum": 2147483647
|
|
1464
|
+
},
|
|
1465
|
+
"emitEventCount": {
|
|
1466
|
+
"description": "Fire-and-forget emit events",
|
|
1467
|
+
"type": "integer",
|
|
1468
|
+
"format": "int32",
|
|
1469
|
+
"minimum": 0,
|
|
1470
|
+
"maximum": 2147483647
|
|
1471
|
+
},
|
|
1472
|
+
"onEventCount": {
|
|
1473
|
+
"description": "Fire-and-forget on events",
|
|
1474
|
+
"type": "integer",
|
|
1475
|
+
"format": "int32",
|
|
1476
|
+
"minimum": 0,
|
|
1477
|
+
"maximum": 2147483647
|
|
1478
|
+
},
|
|
1479
|
+
"returnableEventCount": {
|
|
1480
|
+
"description": "Returnable events",
|
|
1481
|
+
"type": "integer",
|
|
1482
|
+
"format": "int32",
|
|
1483
|
+
"minimum": 0,
|
|
1484
|
+
"maximum": 2147483647
|
|
1485
|
+
},
|
|
1486
|
+
"broadcastEventCount": {
|
|
1487
|
+
"description": "Broadcast events",
|
|
1488
|
+
"type": "integer",
|
|
1489
|
+
"format": "int32",
|
|
1490
|
+
"minimum": 0,
|
|
1491
|
+
"maximum": 2147483647
|
|
1492
|
+
},
|
|
1493
|
+
"publishedBy": {
|
|
1494
|
+
"description": "User ID who published",
|
|
1495
|
+
"type": "string",
|
|
1496
|
+
"maxLength": 200
|
|
1497
|
+
},
|
|
1498
|
+
"publishedAt": {
|
|
1499
|
+
"description": "First publish timestamp",
|
|
1500
|
+
"type": "string",
|
|
1501
|
+
"format": "datetime"
|
|
1502
|
+
},
|
|
1503
|
+
"updatedAt": {
|
|
1504
|
+
"description": "Last update timestamp",
|
|
1505
|
+
"type": "string",
|
|
1506
|
+
"format": "datetime"
|
|
1507
|
+
},
|
|
1508
|
+
"downloads": {
|
|
1509
|
+
"description": "Download count",
|
|
1510
|
+
"type": "integer",
|
|
1511
|
+
"format": "int32",
|
|
1512
|
+
"minimum": 0,
|
|
1513
|
+
"maximum": 2147483647
|
|
1514
|
+
},
|
|
1515
|
+
"runtime": {
|
|
1516
|
+
"description": "Runtime version requirements",
|
|
1517
|
+
"type": "object",
|
|
1518
|
+
"properties": {
|
|
1519
|
+
"nodejs": {
|
|
1520
|
+
"description": "Node.js version requirement",
|
|
1521
|
+
"type": "string"
|
|
1522
|
+
},
|
|
1523
|
+
"dotnet": {
|
|
1524
|
+
"description": ".NET version requirement",
|
|
1525
|
+
"type": "string"
|
|
1526
|
+
},
|
|
1527
|
+
"go": {
|
|
1528
|
+
"description": "Go version requirement",
|
|
1529
|
+
"type": "string"
|
|
1530
|
+
},
|
|
1531
|
+
"java": {
|
|
1532
|
+
"description": "Java version requirement",
|
|
1533
|
+
"type": "string"
|
|
1534
|
+
},
|
|
1535
|
+
"python": {
|
|
1536
|
+
"description": "Python version requirement",
|
|
1537
|
+
"type": "string"
|
|
1538
|
+
}
|
|
1539
|
+
},
|
|
1540
|
+
"required": []
|
|
1541
|
+
}
|
|
1542
|
+
},
|
|
1543
|
+
"required": [
|
|
1544
|
+
"id",
|
|
1545
|
+
"org",
|
|
1546
|
+
"name",
|
|
1547
|
+
"displayName",
|
|
1548
|
+
"description",
|
|
1549
|
+
"version",
|
|
1550
|
+
"majorMinor",
|
|
1551
|
+
"language",
|
|
1552
|
+
"category",
|
|
1553
|
+
"tags",
|
|
1554
|
+
"visibility",
|
|
1555
|
+
"eventSchema",
|
|
1556
|
+
"eventCount",
|
|
1557
|
+
"emitEventCount",
|
|
1558
|
+
"onEventCount",
|
|
1559
|
+
"returnableEventCount",
|
|
1560
|
+
"broadcastEventCount",
|
|
1561
|
+
"publishedBy",
|
|
1562
|
+
"publishedAt",
|
|
1563
|
+
"updatedAt"
|
|
1564
|
+
]
|
|
1565
|
+
}
|
|
1566
|
+
},
|
|
1567
|
+
"total": {
|
|
1568
|
+
"description": "Total result count",
|
|
1569
|
+
"type": "integer",
|
|
1570
|
+
"format": "int32",
|
|
1571
|
+
"minimum": 0,
|
|
1572
|
+
"maximum": 2147483647
|
|
1573
|
+
},
|
|
1574
|
+
"query": {
|
|
1575
|
+
"description": "Search query used",
|
|
1576
|
+
"type": "string"
|
|
1577
|
+
}
|
|
1578
|
+
},
|
|
1579
|
+
"required": [
|
|
1580
|
+
"results",
|
|
1581
|
+
"total",
|
|
1582
|
+
"query"
|
|
1583
|
+
]
|
|
1584
|
+
}
|
|
1585
|
+
},
|
|
1586
|
+
"registry.plugin.delete": {
|
|
1587
|
+
"type": "returnable",
|
|
1588
|
+
"category": "onReturnableEvents",
|
|
1589
|
+
"description": "Delete a plugin or specific version",
|
|
1590
|
+
"inputSchema": {
|
|
1591
|
+
"type": "object",
|
|
1592
|
+
"properties": {
|
|
1593
|
+
"org": {
|
|
1594
|
+
"description": "Organization name",
|
|
1595
|
+
"type": "string"
|
|
1596
|
+
},
|
|
1597
|
+
"name": {
|
|
1598
|
+
"description": "Plugin name",
|
|
1599
|
+
"type": "string"
|
|
1600
|
+
},
|
|
1601
|
+
"version": {
|
|
1602
|
+
"description": "Version (or all if not provided)",
|
|
1603
|
+
"type": "string"
|
|
1604
|
+
}
|
|
1605
|
+
},
|
|
1606
|
+
"required": [
|
|
1607
|
+
"org",
|
|
1608
|
+
"name"
|
|
1609
|
+
]
|
|
1610
|
+
},
|
|
1611
|
+
"outputSchema": {
|
|
1612
|
+
"type": "object",
|
|
1613
|
+
"properties": {
|
|
1614
|
+
"success": {
|
|
1615
|
+
"description": "Success status",
|
|
1616
|
+
"type": "boolean"
|
|
1617
|
+
},
|
|
1618
|
+
"deleted": {
|
|
1619
|
+
"description": "Number of versions deleted",
|
|
1620
|
+
"type": "integer",
|
|
1621
|
+
"format": "int32",
|
|
1622
|
+
"minimum": 0,
|
|
1623
|
+
"maximum": 2147483647
|
|
1624
|
+
}
|
|
1625
|
+
},
|
|
1626
|
+
"required": [
|
|
1627
|
+
"success",
|
|
1628
|
+
"deleted"
|
|
1629
|
+
]
|
|
1630
|
+
}
|
|
1631
|
+
},
|
|
1632
|
+
"registry.plugin.versions": {
|
|
1633
|
+
"type": "returnable",
|
|
1634
|
+
"category": "onReturnableEvents",
|
|
1635
|
+
"description": "Get all versions of a plugin",
|
|
1636
|
+
"inputSchema": {
|
|
1637
|
+
"type": "object",
|
|
1638
|
+
"properties": {
|
|
1639
|
+
"org": {
|
|
1640
|
+
"description": "Organization name",
|
|
1641
|
+
"type": "string"
|
|
1642
|
+
},
|
|
1643
|
+
"name": {
|
|
1644
|
+
"description": "Plugin name",
|
|
1645
|
+
"type": "string"
|
|
1646
|
+
},
|
|
1647
|
+
"majorMinor": {
|
|
1648
|
+
"description": "Filter by major.minor",
|
|
1649
|
+
"type": "string"
|
|
1650
|
+
}
|
|
1651
|
+
},
|
|
1652
|
+
"required": [
|
|
1653
|
+
"org",
|
|
1654
|
+
"name"
|
|
1655
|
+
]
|
|
1656
|
+
},
|
|
1657
|
+
"outputSchema": {
|
|
1658
|
+
"description": "Version list response",
|
|
1659
|
+
"type": "object",
|
|
1660
|
+
"properties": {
|
|
1661
|
+
"versions": {
|
|
1662
|
+
"description": "All available versions",
|
|
1663
|
+
"type": "array",
|
|
1664
|
+
"items": {
|
|
1665
|
+
"description": "Version information",
|
|
1666
|
+
"type": "object",
|
|
1667
|
+
"properties": {
|
|
1668
|
+
"version": {
|
|
1669
|
+
"description": "Full semantic version",
|
|
1670
|
+
"type": "string"
|
|
1671
|
+
},
|
|
1672
|
+
"majorMinor": {
|
|
1673
|
+
"description": "Major.minor version",
|
|
1674
|
+
"type": "string"
|
|
1675
|
+
},
|
|
1676
|
+
"publishedAt": {
|
|
1677
|
+
"description": "Publication timestamp",
|
|
1678
|
+
"type": "string",
|
|
1679
|
+
"format": "datetime"
|
|
1680
|
+
}
|
|
1681
|
+
},
|
|
1682
|
+
"required": [
|
|
1683
|
+
"version",
|
|
1684
|
+
"majorMinor",
|
|
1685
|
+
"publishedAt"
|
|
1686
|
+
]
|
|
1687
|
+
}
|
|
1688
|
+
},
|
|
1689
|
+
"latest": {
|
|
1690
|
+
"description": "Latest version",
|
|
1691
|
+
"type": "string"
|
|
1692
|
+
},
|
|
1693
|
+
"latestForMajorMinor": {
|
|
1694
|
+
"description": "JSON map of major.minor to latest patch",
|
|
1695
|
+
"type": "string"
|
|
1696
|
+
}
|
|
1697
|
+
},
|
|
1698
|
+
"required": [
|
|
1699
|
+
"versions",
|
|
1700
|
+
"latest",
|
|
1701
|
+
"latestForMajorMinor"
|
|
1702
|
+
]
|
|
1703
|
+
}
|
|
1704
|
+
},
|
|
1705
|
+
"registry.stats.get": {
|
|
1706
|
+
"type": "returnable",
|
|
1707
|
+
"category": "onReturnableEvents",
|
|
1708
|
+
"description": "Get registry statistics",
|
|
1709
|
+
"inputSchema": {
|
|
1710
|
+
"type": "object",
|
|
1711
|
+
"properties": {},
|
|
1712
|
+
"required": []
|
|
1713
|
+
},
|
|
1714
|
+
"outputSchema": {
|
|
1715
|
+
"description": "Registry statistics",
|
|
1716
|
+
"type": "object",
|
|
1717
|
+
"properties": {
|
|
1718
|
+
"totalPlugins": {
|
|
1719
|
+
"description": "Total plugin count",
|
|
1720
|
+
"type": "integer",
|
|
1721
|
+
"format": "int32",
|
|
1722
|
+
"minimum": 0,
|
|
1723
|
+
"maximum": 2147483647
|
|
1724
|
+
},
|
|
1725
|
+
"byLanguage": {
|
|
1726
|
+
"description": "JSON map of language to count",
|
|
1727
|
+
"type": "string"
|
|
1728
|
+
},
|
|
1729
|
+
"byCategory": {
|
|
1730
|
+
"description": "JSON map of category to count",
|
|
1731
|
+
"type": "string"
|
|
1732
|
+
},
|
|
1733
|
+
"totalDownloads": {
|
|
1734
|
+
"description": "Total downloads across all plugins",
|
|
1735
|
+
"type": "integer",
|
|
1736
|
+
"format": "int32",
|
|
1737
|
+
"minimum": 0,
|
|
1738
|
+
"maximum": 2147483647
|
|
1739
|
+
}
|
|
1740
|
+
},
|
|
1741
|
+
"required": [
|
|
1742
|
+
"totalPlugins",
|
|
1743
|
+
"byLanguage",
|
|
1744
|
+
"byCategory",
|
|
1745
|
+
"totalDownloads"
|
|
1746
|
+
]
|
|
1747
|
+
}
|
|
1748
|
+
},
|
|
1749
|
+
"registry.auth.login": {
|
|
1750
|
+
"type": "returnable",
|
|
1751
|
+
"category": "onReturnableEvents",
|
|
1752
|
+
"description": "Authenticate user and get token",
|
|
1753
|
+
"inputSchema": {
|
|
1754
|
+
"type": "object",
|
|
1755
|
+
"properties": {
|
|
1756
|
+
"username": {
|
|
1757
|
+
"description": "Username",
|
|
1758
|
+
"type": "string"
|
|
1759
|
+
},
|
|
1760
|
+
"password": {
|
|
1761
|
+
"description": "Encrypted password",
|
|
1762
|
+
"type": "string"
|
|
1763
|
+
}
|
|
1764
|
+
},
|
|
1765
|
+
"required": [
|
|
1766
|
+
"username",
|
|
1767
|
+
"password"
|
|
1768
|
+
]
|
|
1769
|
+
},
|
|
1770
|
+
"outputSchema": {
|
|
1771
|
+
"type": "object",
|
|
1772
|
+
"properties": {
|
|
1773
|
+
"success": {
|
|
1774
|
+
"description": "Login success",
|
|
1775
|
+
"type": "boolean"
|
|
1776
|
+
},
|
|
1777
|
+
"token": {
|
|
1778
|
+
"description": "Auth token",
|
|
1779
|
+
"type": "string"
|
|
1780
|
+
},
|
|
1781
|
+
"expiresAt": {
|
|
1782
|
+
"description": "Expiration",
|
|
1783
|
+
"type": "string",
|
|
1784
|
+
"format": "datetime"
|
|
1785
|
+
},
|
|
1786
|
+
"message": {
|
|
1787
|
+
"description": "Error message",
|
|
1788
|
+
"type": "string"
|
|
1789
|
+
}
|
|
1790
|
+
},
|
|
1791
|
+
"required": [
|
|
1792
|
+
"success"
|
|
1793
|
+
]
|
|
1794
|
+
}
|
|
1795
|
+
},
|
|
1796
|
+
"registry.auth.verify": {
|
|
1797
|
+
"type": "returnable",
|
|
1798
|
+
"category": "onReturnableEvents",
|
|
1799
|
+
"description": "Verify authentication token",
|
|
1800
|
+
"inputSchema": {
|
|
1801
|
+
"type": "object",
|
|
1802
|
+
"properties": {
|
|
1803
|
+
"token": {
|
|
1804
|
+
"description": "Token to verify",
|
|
1805
|
+
"type": "string"
|
|
1806
|
+
}
|
|
1807
|
+
},
|
|
1808
|
+
"required": [
|
|
1809
|
+
"token"
|
|
1810
|
+
]
|
|
1811
|
+
},
|
|
1812
|
+
"outputSchema": {
|
|
1813
|
+
"type": "object",
|
|
1814
|
+
"properties": {
|
|
1815
|
+
"valid": {
|
|
1816
|
+
"description": "Token validity",
|
|
1817
|
+
"type": "boolean"
|
|
1818
|
+
},
|
|
1819
|
+
"userId": {
|
|
1820
|
+
"description": "User ID",
|
|
1821
|
+
"type": "string"
|
|
1822
|
+
},
|
|
1823
|
+
"permissions": {
|
|
1824
|
+
"type": "array",
|
|
1825
|
+
"items": {
|
|
1826
|
+
"type": "string"
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
},
|
|
1830
|
+
"required": [
|
|
1831
|
+
"valid"
|
|
1832
|
+
]
|
|
1833
|
+
}
|
|
1834
|
+
}
|
|
1835
|
+
},
|
|
1836
|
+
"configSchema": {
|
|
1837
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1838
|
+
"type": "object",
|
|
1839
|
+
"properties": {
|
|
1840
|
+
"database": {
|
|
1841
|
+
"type": "object",
|
|
1842
|
+
"properties": {
|
|
1843
|
+
"type": {
|
|
1844
|
+
"default": "file",
|
|
1845
|
+
"type": "string",
|
|
1846
|
+
"enum": [
|
|
1847
|
+
"file",
|
|
1848
|
+
"postgres"
|
|
1849
|
+
]
|
|
1850
|
+
},
|
|
1851
|
+
"path": {
|
|
1852
|
+
"default": "./.temp/data",
|
|
1853
|
+
"type": "string"
|
|
1854
|
+
}
|
|
1855
|
+
},
|
|
1856
|
+
"required": [
|
|
1857
|
+
"type",
|
|
1858
|
+
"path"
|
|
1859
|
+
],
|
|
1860
|
+
"additionalProperties": false
|
|
1861
|
+
},
|
|
1862
|
+
"auth": {
|
|
1863
|
+
"type": "object",
|
|
1864
|
+
"properties": {
|
|
1865
|
+
"requireAuth": {
|
|
1866
|
+
"default": true,
|
|
1867
|
+
"type": "boolean"
|
|
1868
|
+
}
|
|
1869
|
+
},
|
|
1870
|
+
"required": [
|
|
1871
|
+
"requireAuth"
|
|
1872
|
+
],
|
|
1873
|
+
"additionalProperties": false
|
|
1874
|
+
}
|
|
1875
|
+
},
|
|
1876
|
+
"required": [
|
|
1877
|
+
"database",
|
|
1878
|
+
"auth"
|
|
1879
|
+
],
|
|
1880
|
+
"additionalProperties": false
|
|
1881
|
+
},
|
|
1882
|
+
"pluginType": "service"
|
|
1883
|
+
}
|