@mdbase-dev/connect-protocol 0.1.0-beta.100

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.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/dist/application-authorization.d.ts +32 -0
  3. package/dist/application-authorization.js +207 -0
  4. package/dist/capabilities.d.ts +73 -0
  5. package/dist/capabilities.js +92 -0
  6. package/dist/collection-setup.d.ts +90 -0
  7. package/dist/collection-setup.js +1 -0
  8. package/dist/compatibility.d.ts +37 -0
  9. package/dist/compatibility.js +65 -0
  10. package/dist/connect-problems.generated.d.ts +1388 -0
  11. package/dist/connect-problems.generated.js +574 -0
  12. package/dist/files.d.ts +269 -0
  13. package/dist/files.js +426 -0
  14. package/dist/index.d.ts +878 -0
  15. package/dist/index.js +94 -0
  16. package/dist/manifest.d.ts +62 -0
  17. package/dist/manifest.js +527 -0
  18. package/dist/mutation-fingerprint.d.ts +6 -0
  19. package/dist/mutation-fingerprint.js +116 -0
  20. package/dist/operations.d.ts +15 -0
  21. package/dist/operations.js +194 -0
  22. package/dist/type-packs.d.ts +133 -0
  23. package/dist/type-packs.js +30 -0
  24. package/package.json +42 -0
  25. package/schemas/application-capability-catalog.v1.json +40 -0
  26. package/schemas/application-capability-catalog.v2.json +68 -0
  27. package/schemas/catalog.json +17 -0
  28. package/schemas/connect-problem.v1.schema.json +5132 -0
  29. package/schemas/connect-problems.v1.catalog.json +351 -0
  30. package/schemas/connect-protocol.v1.schema.json +800 -0
  31. package/schemas/data-contract.schema.json +163 -0
  32. package/schemas/encrypted-relay.v1.schema.json +63 -0
  33. package/schemas/encrypted-relay.v2.schema.json +63 -0
  34. package/schemas/encrypted-relay.v3.schema.json +64 -0
  35. package/schemas/files.v1.schema.json +507 -0
  36. package/schemas/interop/v0.1/action-cancellation.schema.json +6 -0
  37. package/schemas/interop/v0.1/action-invocation.schema.json +6 -0
  38. package/schemas/interop/v0.1/action-outcome.schema.json +6 -0
  39. package/schemas/interop/v0.1/action-provider-declaration.schema.json +6 -0
  40. package/schemas/interop/v0.1/action-request.schema.json +6 -0
  41. package/schemas/interop/v0.1/conformance-claim.schema.json +6 -0
  42. package/schemas/interop/v0.1/event-source-declaration.schema.json +6 -0
  43. package/schemas/interop/v0.1/event.schema.json +6 -0
  44. package/schemas/interop/v0.1/profile.schema.json +456 -0
  45. package/schemas/mdbase-app.legacy-v1.schema.json +405 -0
  46. package/schemas/mdbase-app.schema.json +381 -0
  47. package/schemas/mdbase-query.v0.3.schema.json +171 -0
  48. package/schemas/notification-webhook.v1.schema.json +56 -0
  49. package/schemas/operation-catalog.v1.json +42 -0
  50. package/schemas/operation-mutation-classification.v1.json +537 -0
  51. package/schemas/sync.v1.schema.json +483 -0
@@ -0,0 +1,381 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mdbase.dev/connect/schemas/mdbase-app.v1.json",
4
+ "title": "mdbase connect bundled application manifest v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["manifest_version", "id", "name"],
8
+ "properties": {
9
+ "manifest_version": { "const": 1 },
10
+ "distribution": {
11
+ "enum": ["web", "portable"],
12
+ "description": "Portable declarations use device authorization and do not claim a browser origin."
13
+ },
14
+ "id": {
15
+ "type": "string",
16
+ "minLength": 5,
17
+ "maxLength": 150,
18
+ "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*){2,}$",
19
+ "description": "Stable reverse-domain application identifier. This is presentation metadata, not publisher authentication."
20
+ },
21
+ "name": { "type": "string", "minLength": 1, "maxLength": 100 },
22
+ "homepage": { "type": "string", "format": "uri", "pattern": "^https://" },
23
+ "project_url": { "type": "string", "format": "uri", "pattern": "^https://" },
24
+ "icon": { "type": "string", "format": "uri", "pattern": "^https://" },
25
+ "redirect_uris": {
26
+ "type": "array",
27
+ "minItems": 1,
28
+ "maxItems": 10,
29
+ "uniqueItems": true,
30
+ "items": {
31
+ "type": "string",
32
+ "format": "uri",
33
+ "description": "An HTTPS URI on the homepage origin or a private-use scheme derived from the application ID."
34
+ }
35
+ },
36
+ "requirements": { "$ref": "#/$defs/requirements" },
37
+ "provisions": {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": ["type_packs"],
41
+ "properties": {
42
+ "configuration": {
43
+ "type": "array",
44
+ "maxItems": 50,
45
+ "items": { "$ref": "#/$defs/configurationProvision" }
46
+ },
47
+ "type_packs": {
48
+ "type": "array",
49
+ "maxItems": 20,
50
+ "items": { "$ref": "#/$defs/typePackProvision" }
51
+ }
52
+ }
53
+ },
54
+ "notifications": {
55
+ "type": "object",
56
+ "additionalProperties": false,
57
+ "required": ["criteria"],
58
+ "properties": {
59
+ "criteria": {
60
+ "type": "array",
61
+ "maxItems": 50,
62
+ "items": { "$ref": "#/$defs/notificationCriterion" }
63
+ },
64
+ "native_delivery": { "$ref": "#/$defs/nativeNotificationDelivery" }
65
+ }
66
+ }
67
+ },
68
+ "oneOf": [
69
+ {
70
+ "required": ["homepage", "redirect_uris"],
71
+ "properties": {
72
+ "distribution": { "const": "web" },
73
+ "homepage": true,
74
+ "redirect_uris": true,
75
+ "project_url": false
76
+ }
77
+ },
78
+ {
79
+ "required": ["distribution"],
80
+ "properties": {
81
+ "distribution": { "const": "portable" },
82
+ "homepage": false,
83
+ "redirect_uris": false
84
+ }
85
+ }
86
+ ],
87
+ "$defs": {
88
+ "identifier": {
89
+ "type": "string",
90
+ "minLength": 1,
91
+ "maxLength": 100,
92
+ "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
93
+ },
94
+ "duration": {
95
+ "type": "string",
96
+ "pattern": "^[0-9]+(ms|s|m|h|d)$"
97
+ },
98
+ "contract": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "required": ["id", "version", "digest"],
102
+ "properties": {
103
+ "id": { "$ref": "#/$defs/identifier" },
104
+ "version": {
105
+ "type": "string",
106
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$"
107
+ },
108
+ "digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
109
+ }
110
+ },
111
+ "requirements": {
112
+ "type": "object",
113
+ "additionalProperties": false,
114
+ "required": ["access", "contracts"],
115
+ "properties": {
116
+ "capabilities": { "$ref": "#/$defs/capabilityRequirements" },
117
+ "access": {
118
+ "const": "full_collection",
119
+ "description": "Compatibility declaration for collection-level application authorization."
120
+ },
121
+ "collection_kind": {
122
+ "const": "hosted",
123
+ "description": "Require a durable provider-backed collection with direct sync support."
124
+ },
125
+ "files": { "$ref": "#/$defs/fileRequirement" },
126
+ "configuration": {
127
+ "type": "array",
128
+ "maxItems": 50,
129
+ "items": { "$ref": "#/$defs/configurationRequirement" }
130
+ },
131
+ "contracts": {
132
+ "type": "array",
133
+ "maxItems": 20,
134
+ "uniqueItems": true,
135
+ "items": { "$ref": "#/$defs/contract" }
136
+ }
137
+ }
138
+ },
139
+ "capabilityRequirements": {
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": ["contract_version", "required"],
143
+ "properties": {
144
+ "contract_version": { "const": 2 },
145
+ "required": {
146
+ "type": "array",
147
+ "maxItems": 32,
148
+ "uniqueItems": true,
149
+ "items": { "$ref": "#/$defs/applicationCapability" }
150
+ },
151
+ "optional": {
152
+ "type": "array",
153
+ "maxItems": 32,
154
+ "uniqueItems": true,
155
+ "items": { "$ref": "#/$defs/applicationCapability" }
156
+ }
157
+ }
158
+ },
159
+ "configurationValue": {
160
+ "anyOf": [
161
+ { "type": "string" },
162
+ { "type": "number" },
163
+ { "type": "boolean" },
164
+ { "type": "null" }
165
+ ]
166
+ },
167
+ "configurationRequirement": {
168
+ "type": "object",
169
+ "additionalProperties": false,
170
+ "required": ["id", "path", "predicate", "value"],
171
+ "properties": {
172
+ "id": {
173
+ "type": "string",
174
+ "minLength": 1,
175
+ "maxLength": 100,
176
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
177
+ },
178
+ "path": { "type": "string", "minLength": 1, "maxLength": 1024 },
179
+ "predicate": { "const": "contains" },
180
+ "value": { "$ref": "#/$defs/configurationValue" }
181
+ }
182
+ },
183
+ "configurationProvision": {
184
+ "type": "object",
185
+ "additionalProperties": false,
186
+ "required": ["requirement", "operation", "path", "value"],
187
+ "properties": {
188
+ "requirement": {
189
+ "type": "string",
190
+ "minLength": 1,
191
+ "maxLength": 100,
192
+ "pattern": "^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"
193
+ },
194
+ "operation": { "const": "set_add" },
195
+ "path": { "type": "string", "minLength": 1, "maxLength": 1024 },
196
+ "value": { "$ref": "#/$defs/configurationValue" }
197
+ }
198
+ },
199
+ "applicationCapability": {
200
+ "enum": [
201
+ "collection.read",
202
+ "records.create",
203
+ "records.edit",
204
+ "records.delete",
205
+ "views.manage",
206
+ "definitions.manage",
207
+ "background.schedule",
208
+ "offline.replica"
209
+ ]
210
+ },
211
+ "fileRequirement": {
212
+ "type": "object",
213
+ "additionalProperties": false,
214
+ "required": ["required", "scope"],
215
+ "properties": {
216
+ "required": { "$ref": "#/$defs/fileActions" },
217
+ "optional": { "$ref": "#/$defs/fileActions" },
218
+ "scope": { "$ref": "#/$defs/fileScope" }
219
+ }
220
+ },
221
+ "fileActions": {
222
+ "type": "array",
223
+ "minItems": 1,
224
+ "maxItems": 6,
225
+ "uniqueItems": true,
226
+ "items": {
227
+ "enum": ["list", "read", "add", "replace", "move", "delete"]
228
+ }
229
+ },
230
+ "fileScope": {
231
+ "oneOf": [
232
+ {
233
+ "type": "object",
234
+ "additionalProperties": false,
235
+ "required": ["kind", "folders"],
236
+ "properties": {
237
+ "kind": { "const": "selected_folders" },
238
+ "folders": {
239
+ "type": "array",
240
+ "minItems": 1,
241
+ "maxItems": 100,
242
+ "uniqueItems": true,
243
+ "items": {
244
+ "type": "string",
245
+ "minLength": 1,
246
+ "maxLength": 1024,
247
+ "pattern": "^(?!/)(?!\\.)(?!.*//)(?!.*\\\\)(?!.*/\\.)(?!(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*\\/(?:_contracts|_schemas|_types|_views|node_modules)(?:/|$))(?!.*/$).+$"
248
+ }
249
+ }
250
+ }
251
+ },
252
+ {
253
+ "type": "object",
254
+ "additionalProperties": false,
255
+ "required": ["kind"],
256
+ "properties": { "kind": { "const": "collection" } }
257
+ }
258
+ ]
259
+ },
260
+ "typePackProvision": {
261
+ "type": "object",
262
+ "additionalProperties": false,
263
+ "required": ["manifest", "resources", "provides"],
264
+ "properties": {
265
+ "manifest": { "$ref": "#/$defs/typePackManifest" },
266
+ "resources": {
267
+ "type": "array",
268
+ "minItems": 1,
269
+ "maxItems": 100,
270
+ "items": { "$ref": "#/$defs/typePackSourceResource" }
271
+ },
272
+ "provides": {
273
+ "type": "array",
274
+ "maxItems": 20,
275
+ "uniqueItems": true,
276
+ "items": { "$ref": "#/$defs/contract" }
277
+ }
278
+ }
279
+ },
280
+ "typePackManifest": {
281
+ "type": "object",
282
+ "required": ["kind", "id", "version", "resources"],
283
+ "properties": {
284
+ "kind": { "const": "mdbase.type-pack" },
285
+ "id": { "$ref": "#/$defs/identifier" },
286
+ "version": { "$ref": "#/$defs/contract/properties/version" },
287
+ "name": { "type": "string", "minLength": 1, "maxLength": 100 },
288
+ "description": { "type": "string", "maxLength": 500 },
289
+ "resources": {
290
+ "type": "array",
291
+ "minItems": 1,
292
+ "maxItems": 100,
293
+ "items": { "$ref": "#/$defs/typePackManifestResource" }
294
+ }
295
+ },
296
+ "patternProperties": { "^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$": true },
297
+ "additionalProperties": false
298
+ },
299
+ "typePackManifestResource": {
300
+ "type": "object",
301
+ "additionalProperties": false,
302
+ "required": ["kind", "mode", "source", "target", "digest"],
303
+ "properties": {
304
+ "kind": { "enum": ["contract", "type", "schema"] },
305
+ "mode": { "enum": ["managed", "seed"] },
306
+ "source": { "type": "string", "minLength": 1, "maxLength": 240 },
307
+ "target": { "type": "string", "minLength": 1, "maxLength": 240 },
308
+ "digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
309
+ }
310
+ },
311
+ "typePackSourceResource": {
312
+ "type": "object",
313
+ "additionalProperties": false,
314
+ "required": ["source", "document"],
315
+ "properties": {
316
+ "source": { "type": "string", "minLength": 1, "maxLength": 240 },
317
+ "document": { "type": "string", "maxLength": 262144 }
318
+ }
319
+ },
320
+ "notificationCriterion": {
321
+ "type": "object",
322
+ "additionalProperties": false,
323
+ "required": ["id", "event", "presentation"],
324
+ "properties": {
325
+ "id": { "$ref": "#/$defs/identifier" },
326
+ "event": { "$ref": "#/$defs/contract" },
327
+ "if": {
328
+ "type": "object",
329
+ "additionalProperties": false,
330
+ "required": ["$expr"],
331
+ "properties": {
332
+ "$expr": { "type": "string", "minLength": 1, "maxLength": 4096 }
333
+ }
334
+ },
335
+ "debounce": { "$ref": "#/$defs/duration" },
336
+ "minimum_interval": { "$ref": "#/$defs/duration" },
337
+ "presentation": {
338
+ "type": "object",
339
+ "additionalProperties": false,
340
+ "required": ["title"],
341
+ "properties": {
342
+ "title": { "type": "string", "minLength": 1, "maxLength": 80 },
343
+ "body": { "type": "string", "maxLength": 160 },
344
+ "tag": { "type": "string", "minLength": 1, "maxLength": 80 }
345
+ }
346
+ }
347
+ }
348
+ },
349
+ "nativeNotificationDelivery": {
350
+ "oneOf": [
351
+ {
352
+ "type": "object",
353
+ "additionalProperties": false,
354
+ "required": ["mode", "firebase_project_id"],
355
+ "properties": {
356
+ "mode": { "const": "managed_fcm" },
357
+ "firebase_project_id": {
358
+ "type": "string",
359
+ "minLength": 6,
360
+ "maxLength": 63,
361
+ "pattern": "^[a-z][a-z0-9-]*[a-z0-9]$"
362
+ }
363
+ }
364
+ },
365
+ {
366
+ "type": "object",
367
+ "additionalProperties": false,
368
+ "required": ["mode", "url"],
369
+ "properties": {
370
+ "mode": { "const": "webhook" },
371
+ "url": {
372
+ "type": "string",
373
+ "format": "uri",
374
+ "pattern": "^https://"
375
+ }
376
+ }
377
+ }
378
+ ]
379
+ }
380
+ }
381
+ }
@@ -0,0 +1,171 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mdbase.dev/schemas/v0.3/query.schema.json",
4
+ "title": "mdbase v0.3 query object",
5
+ "type": "object",
6
+ "properties": {
7
+ "types": { "$ref": "#/$defs/typeList" },
8
+ "context": { "$ref": "#/$defs/queryContext" },
9
+ "projections": { "$ref": "#/$defs/projectionSet" },
10
+ "where": { "$ref": "#/$defs/expression" },
11
+ "select": { "$ref": "#/$defs/select" },
12
+ "order_by": { "$ref": "#/$defs/orderBy" },
13
+ "group_by": { "$ref": "#/$defs/groupBy" },
14
+ "summary_functions": { "$ref": "#/$defs/summaryFunctionSet" },
15
+ "summaries": { "$ref": "#/$defs/summaries" },
16
+ "limit": { "type": "integer", "minimum": 0 },
17
+ "offset": { "type": "integer", "minimum": 0 },
18
+ "include_body": { "type": "boolean", "default": false },
19
+ "frontmatter_mode": {
20
+ "enum": ["effective", "persisted", "both"],
21
+ "default": "effective"
22
+ }
23
+ },
24
+ "patternProperties": {
25
+ "^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$": { "$ref": "#/$defs/extension" }
26
+ },
27
+ "additionalProperties": false,
28
+ "$defs": {
29
+ "identifier": {
30
+ "type": "string",
31
+ "pattern": "^[A-Za-z][A-Za-z0-9._:-]*$"
32
+ },
33
+ "typeName": {
34
+ "type": "string",
35
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,127}$"
36
+ },
37
+ "fieldName": {
38
+ "type": "string",
39
+ "pattern": "^[A-Za-z_][A-Za-z0-9_:-]*$"
40
+ },
41
+ "expression": {
42
+ "type": "string",
43
+ "minLength": 1
44
+ },
45
+ "extension": {
46
+ "type": "object",
47
+ "additionalProperties": true
48
+ },
49
+ "typeList": {
50
+ "type": "array",
51
+ "minItems": 1,
52
+ "uniqueItems": true,
53
+ "items": { "$ref": "#/$defs/typeName" }
54
+ },
55
+ "queryContext": {
56
+ "type": "object",
57
+ "required": ["this"],
58
+ "properties": {
59
+ "this": {
60
+ "type": "object",
61
+ "required": ["path"],
62
+ "properties": {
63
+ "path": { "type": "string", "minLength": 1 }
64
+ },
65
+ "additionalProperties": false
66
+ }
67
+ },
68
+ "additionalProperties": false
69
+ },
70
+ "projectionSet": {
71
+ "type": "object",
72
+ "propertyNames": { "$ref": "#/$defs/fieldName" },
73
+ "additionalProperties": { "$ref": "#/$defs/projection" }
74
+ },
75
+ "projection": {
76
+ "type": "object",
77
+ "required": ["expr"],
78
+ "properties": {
79
+ "expr": { "$ref": "#/$defs/expression" },
80
+ "description": { "type": "string" }
81
+ },
82
+ "patternProperties": {
83
+ "^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$": { "$ref": "#/$defs/extension" }
84
+ },
85
+ "additionalProperties": false
86
+ },
87
+ "select": {
88
+ "type": "array",
89
+ "minItems": 1,
90
+ "items": {
91
+ "oneOf": [
92
+ { "type": "string", "minLength": 1 },
93
+ { "$ref": "#/$defs/selectExpression" }
94
+ ]
95
+ }
96
+ },
97
+ "selectExpression": {
98
+ "type": "object",
99
+ "required": ["name", "expr"],
100
+ "properties": {
101
+ "name": { "$ref": "#/$defs/fieldName" },
102
+ "expr": { "$ref": "#/$defs/expression" },
103
+ "label": { "type": "string" },
104
+ "description": { "type": "string" }
105
+ },
106
+ "patternProperties": {
107
+ "^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$": { "$ref": "#/$defs/extension" }
108
+ },
109
+ "additionalProperties": false
110
+ },
111
+ "orderBy": {
112
+ "type": "array",
113
+ "minItems": 1,
114
+ "items": {
115
+ "type": "object",
116
+ "required": ["field"],
117
+ "properties": {
118
+ "field": { "type": "string", "minLength": 1 },
119
+ "direction": { "enum": ["asc", "desc"], "default": "asc" }
120
+ },
121
+ "additionalProperties": false
122
+ }
123
+ },
124
+ "groupBy": {
125
+ "type": "array",
126
+ "minItems": 1,
127
+ "items": {
128
+ "type": "object",
129
+ "required": ["field"],
130
+ "properties": {
131
+ "field": { "type": "string", "minLength": 1 },
132
+ "direction": { "enum": ["asc", "desc"], "default": "asc" }
133
+ },
134
+ "additionalProperties": false
135
+ }
136
+ },
137
+ "summaryFunctionSet": {
138
+ "type": "object",
139
+ "propertyNames": { "$ref": "#/$defs/fieldName" },
140
+ "additionalProperties": { "$ref": "#/$defs/summaryFunction" }
141
+ },
142
+ "summaryFunction": {
143
+ "type": "object",
144
+ "required": ["expr"],
145
+ "properties": {
146
+ "expr": { "$ref": "#/$defs/expression" },
147
+ "description": { "type": "string" }
148
+ },
149
+ "patternProperties": {
150
+ "^x-[A-Za-z][A-Za-z0-9._:-]{0,127}$": { "$ref": "#/$defs/extension" }
151
+ },
152
+ "additionalProperties": false
153
+ },
154
+ "summaries": {
155
+ "type": "array",
156
+ "minItems": 1,
157
+ "items": { "$ref": "#/$defs/summary" }
158
+ },
159
+ "summary": {
160
+ "type": "object",
161
+ "required": ["field", "function"],
162
+ "properties": {
163
+ "field": { "type": "string", "minLength": 1 },
164
+ "function": { "$ref": "#/$defs/identifier" },
165
+ "name": { "$ref": "#/$defs/fieldName" },
166
+ "label": { "type": "string" }
167
+ },
168
+ "additionalProperties": false
169
+ }
170
+ }
171
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://mdbase.dev/connect/schemas/notification-webhook.v1.json",
4
+ "title": "mdbase notification webhook v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "type",
9
+ "version",
10
+ "delivery_id",
11
+ "connection_id",
12
+ "notification"
13
+ ],
14
+ "properties": {
15
+ "type": { "const": "mdbase.notification.webhook" },
16
+ "version": { "const": 1 },
17
+ "delivery_id": { "type": "string", "format": "uuid" },
18
+ "connection_id": {
19
+ "type": "string",
20
+ "format": "uuid",
21
+ "description": "Opaque application grant reference returned during authorization."
22
+ },
23
+ "notification": { "$ref": "#/$defs/notification" }
24
+ },
25
+ "$defs": {
26
+ "notification": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": [
30
+ "type",
31
+ "version",
32
+ "signal_id",
33
+ "criterion_id",
34
+ "cursor",
35
+ "presentation"
36
+ ],
37
+ "properties": {
38
+ "type": { "const": "mdbase.notification" },
39
+ "version": { "const": 1 },
40
+ "signal_id": { "type": "string", "minLength": 1, "maxLength": 200 },
41
+ "criterion_id": { "type": "string", "minLength": 1, "maxLength": 100 },
42
+ "cursor": { "type": "string", "minLength": 1, "maxLength": 2000 },
43
+ "presentation": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": ["title"],
47
+ "properties": {
48
+ "title": { "type": "string", "minLength": 1, "maxLength": 80 },
49
+ "body": { "type": "string", "maxLength": 160 },
50
+ "tag": { "type": "string", "minLength": 1, "maxLength": 80 }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "catalog_version": 1,
3
+ "collection_operations": [
4
+ { "id": "describe", "input_schema_version": 1, "mutation": "never" },
5
+ { "id": "changes", "input_schema_version": 1, "mutation": "never" },
6
+ { "id": "read", "input_schema_version": 1, "mutation": "never" },
7
+ { "id": "query", "input_schema_version": 1, "mutation": "never" },
8
+ { "id": "list_views", "input_schema_version": 1, "mutation": "never" },
9
+ { "id": "execute_view", "input_schema_version": 1, "mutation": "never" },
10
+ { "id": "read_view_source", "input_schema_version": 1, "mutation": "never" },
11
+ { "id": "create_view_source", "input_schema_version": 1, "mutation": "always" },
12
+ { "id": "update_view_source", "input_schema_version": 1, "mutation": "always" },
13
+ { "id": "delete_view_source", "input_schema_version": 1, "mutation": "always" },
14
+ { "id": "validate", "input_schema_version": 1, "mutation": "never" },
15
+ { "id": "create", "input_schema_version": 1, "mutation": "always" },
16
+ { "id": "update", "input_schema_version": 1, "mutation": "always" },
17
+ { "id": "delete", "input_schema_version": 1, "mutation": "always", "dry_run": "nonmutating" },
18
+ { "id": "rename", "input_schema_version": 1, "mutation": "always", "dry_run": "nonmutating" },
19
+ { "id": "read_type", "input_schema_version": 1, "mutation": "never" },
20
+ { "id": "create_type", "input_schema_version": 1, "mutation": "always" },
21
+ { "id": "update_type", "input_schema_version": 1, "mutation": "always" },
22
+ { "id": "assess_type_pack", "input_schema_version": 1, "mutation": "never" },
23
+ { "id": "apply_type_pack", "input_schema_version": 1, "mutation": "always" },
24
+ { "id": "assess_collection_setup", "input_schema_version": 1, "mutation": "never" },
25
+ { "id": "apply_collection_setup", "input_schema_version": 1, "mutation": "always" },
26
+ { "id": "list_timers", "input_schema_version": 1, "mutation": "never", "requires_timer_criterion": true },
27
+ { "id": "put_timer", "input_schema_version": 1, "mutation": "always", "requires_timer_criterion": true },
28
+ { "id": "cancel_timer", "input_schema_version": 1, "mutation": "always", "requires_timer_criterion": true },
29
+ { "id": "reconcile_timers", "input_schema_version": 1, "mutation": "always", "requires_timer_criterion": true },
30
+ { "id": "sync", "input_schema_version": 1, "mutation": "sync_action" }
31
+ ],
32
+ "file_control_messages": [
33
+ { "id": "list_files", "input_schema_version": 1, "mutation": false },
34
+ { "id": "open_file_upload", "input_schema_version": 1, "mutation": true },
35
+ { "id": "open_file_download", "input_schema_version": 1, "mutation": false },
36
+ { "id": "move_file", "input_schema_version": 1, "mutation": true },
37
+ { "id": "delete_file", "input_schema_version": 1, "mutation": true },
38
+ { "id": "get_file_transfer_status", "input_schema_version": 1, "mutation": false },
39
+ { "id": "commit_file_upload", "input_schema_version": 1, "mutation": true },
40
+ { "id": "abort_file_transfer", "input_schema_version": 1, "mutation": true }
41
+ ]
42
+ }