@platformatic/runtime 2.0.0-alpha.8 → 2.0.0

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/schema.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://schemas.platformatic.dev/@platformatic/runtime/2.0.0-alpha.8.json",
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/runtime/2.0.0.json",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "type": "object",
5
5
  "properties": {
@@ -10,6 +10,9 @@
10
10
  "type": "string",
11
11
  "resolvePath": true
12
12
  },
13
+ "entrypoint": {
14
+ "type": "string"
15
+ },
13
16
  "autoload": {
14
17
  "type": "object",
15
18
  "additionalProperties": false,
@@ -51,357 +54,184 @@
51
54
  }
52
55
  }
53
56
  },
54
- "telemetry": {
55
- "$id": "/OpenTelemetry",
56
- "type": "object",
57
- "properties": {
58
- "serviceName": {
59
- "type": "string",
60
- "description": "The name of the service. Defaults to the folder name if not specified."
61
- },
62
- "version": {
63
- "type": "string",
64
- "description": "The version of the service (optional)"
65
- },
66
- "skip": {
67
- "type": "array",
68
- "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
69
- "items": {
70
- "type": "object",
71
- "properties": {
72
- "path": {
73
- "type": "string",
74
- "description": "The path to skip. Can be a string or a regex."
75
- },
76
- "method": {
77
- "description": "HTTP method to skip",
78
- "type": "string",
79
- "enum": [
80
- "GET",
81
- "POST",
82
- "PUT",
83
- "DELETE",
84
- "PATCH",
85
- "HEAD",
86
- "OPTIONS"
87
- ]
88
- }
89
- }
57
+ "services": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "object",
61
+ "anyOf": [
62
+ {
63
+ "required": [
64
+ "id",
65
+ "path"
66
+ ]
67
+ },
68
+ {
69
+ "required": [
70
+ "id",
71
+ "url"
72
+ ]
73
+ }
74
+ ],
75
+ "properties": {
76
+ "id": {
77
+ "type": "string"
78
+ },
79
+ "path": {
80
+ "type": "string",
81
+ "resolvePath": true
82
+ },
83
+ "config": {
84
+ "type": "string"
85
+ },
86
+ "url": {
87
+ "type": "string"
88
+ },
89
+ "useHttp": {
90
+ "type": "boolean"
90
91
  }
91
- },
92
- "exporter": {
93
- "anyOf": [
94
- {
95
- "type": "array",
96
- "items": {
97
- "type": "object",
98
- "properties": {
99
- "type": {
100
- "type": "string",
101
- "enum": [
102
- "console",
103
- "otlp",
104
- "zipkin",
105
- "memory"
106
- ],
107
- "default": "console"
108
- },
109
- "options": {
110
- "type": "object",
111
- "description": "Options for the exporter. These are passed directly to the exporter.",
112
- "properties": {
113
- "url": {
114
- "type": "string",
115
- "description": "The URL to send the traces to. Not used for console or memory exporters."
116
- },
117
- "headers": {
118
- "type": "object",
119
- "description": "Headers to send to the exporter. Not used for console or memory exporters."
120
- }
121
- }
122
- },
123
- "additionalProperties": false
124
- }
125
- }
126
- },
127
- {
128
- "type": "object",
129
- "properties": {
130
- "type": {
131
- "type": "string",
132
- "enum": [
133
- "console",
134
- "otlp",
135
- "zipkin",
136
- "memory"
137
- ],
138
- "default": "console"
139
- },
140
- "options": {
141
- "type": "object",
142
- "description": "Options for the exporter. These are passed directly to the exporter.",
143
- "properties": {
144
- "url": {
145
- "type": "string",
146
- "description": "The URL to send the traces to. Not used for console or memory exporters."
147
- },
148
- "headers": {
149
- "type": "object",
150
- "description": "Headers to send to the exporter. Not used for console or memory exporters."
151
- }
152
- }
153
- },
154
- "additionalProperties": false
155
- }
156
- }
157
- ]
158
92
  }
159
- },
160
- "required": [
161
- "serviceName"
162
- ],
163
- "additionalProperties": false
93
+ }
164
94
  },
165
- "server": {
95
+ "web": {
96
+ "type": "array",
97
+ "items": {
98
+ "type": "object",
99
+ "anyOf": [
100
+ {
101
+ "required": [
102
+ "id",
103
+ "path"
104
+ ]
105
+ },
106
+ {
107
+ "required": [
108
+ "id",
109
+ "url"
110
+ ]
111
+ }
112
+ ],
113
+ "properties": {
114
+ "id": {
115
+ "type": "string"
116
+ },
117
+ "path": {
118
+ "type": "string",
119
+ "resolvePath": true
120
+ },
121
+ "config": {
122
+ "type": "string"
123
+ },
124
+ "url": {
125
+ "type": "string"
126
+ },
127
+ "useHttp": {
128
+ "type": "boolean"
129
+ }
130
+ }
131
+ }
132
+ },
133
+ "logger": {
166
134
  "type": "object",
167
135
  "properties": {
168
- "hostname": {
169
- "type": "string"
170
- },
171
- "port": {
172
- "anyOf": [
136
+ "level": {
137
+ "type": "string",
138
+ "default": "info",
139
+ "oneOf": [
173
140
  {
174
- "type": "integer"
141
+ "enum": [
142
+ "fatal",
143
+ "error",
144
+ "warn",
145
+ "info",
146
+ "debug",
147
+ "trace",
148
+ "silent"
149
+ ]
175
150
  },
176
151
  {
177
- "type": "string"
152
+ "pattern": "^\\{.+\\}$"
178
153
  }
179
154
  ]
180
155
  },
181
- "pluginTimeout": {
182
- "type": "integer"
183
- },
184
- "healthCheck": {
156
+ "transport": {
185
157
  "anyOf": [
186
- {
187
- "type": "boolean"
188
- },
189
158
  {
190
159
  "type": "object",
191
160
  "properties": {
192
- "enabled": {
193
- "type": "boolean"
161
+ "target": {
162
+ "type": "string",
163
+ "resolveModule": true
194
164
  },
195
- "interval": {
196
- "type": "integer"
165
+ "options": {
166
+ "type": "object"
197
167
  }
198
168
  },
199
- "additionalProperties": true
200
- }
201
- ]
202
- },
203
- "ignoreTrailingSlash": {
204
- "type": "boolean"
205
- },
206
- "ignoreDuplicateSlashes": {
207
- "type": "boolean"
208
- },
209
- "connectionTimeout": {
210
- "type": "integer"
211
- },
212
- "keepAliveTimeout": {
213
- "type": "integer",
214
- "default": 5000
215
- },
216
- "maxRequestsPerSocket": {
217
- "type": "integer"
218
- },
219
- "forceCloseConnections": {
220
- "anyOf": [
221
- {
222
- "type": "boolean"
223
- },
224
- {
225
- "type": "string",
226
- "pattern": "^idle$"
227
- }
228
- ]
229
- },
230
- "requestTimeout": {
231
- "type": "integer"
232
- },
233
- "bodyLimit": {
234
- "type": "integer"
235
- },
236
- "maxParamLength": {
237
- "type": "integer"
238
- },
239
- "disableRequestLogging": {
240
- "type": "boolean"
241
- },
242
- "exposeHeadRoutes": {
243
- "type": "boolean"
244
- },
245
- "logger": {
246
- "anyOf": [
247
- {
248
- "type": "boolean"
169
+ "additionalProperties": false
249
170
  },
250
171
  {
251
172
  "type": "object",
252
173
  "properties": {
253
- "level": {
254
- "type": "string"
255
- },
256
- "transport": {
257
- "anyOf": [
258
- {
259
- "type": "object",
260
- "properties": {
261
- "target": {
262
- "type": "string",
263
- "resolveModule": true
264
- },
265
- "options": {
266
- "type": "object"
267
- }
174
+ "targets": {
175
+ "type": "array",
176
+ "items": {
177
+ "type": "object",
178
+ "properties": {
179
+ "target": {
180
+ "type": "string",
181
+ "resolveModule": true
268
182
  },
269
- "additionalProperties": false
270
- },
271
- {
272
- "type": "object",
273
- "properties": {
274
- "targets": {
275
- "type": "array",
276
- "items": {
277
- "type": "object",
278
- "properties": {
279
- "target": {
280
- "type": "string",
281
- "resolveModule": true
282
- },
283
- "options": {
284
- "type": "object"
285
- },
286
- "level": {
287
- "type": "string"
288
- },
289
- "additionalProperties": false
290
- }
291
- }
292
- },
293
- "options": {
294
- "type": "object"
295
- }
183
+ "options": {
184
+ "type": "object"
185
+ },
186
+ "level": {
187
+ "type": "string"
296
188
  },
297
189
  "additionalProperties": false
298
190
  }
299
- ]
191
+ }
300
192
  },
301
- "pipeline": {
302
- "type": "object",
303
- "properties": {
304
- "target": {
305
- "type": "string",
306
- "resolveModule": true
307
- },
308
- "options": {
309
- "type": "object"
310
- }
311
- },
312
- "additionalProperties": false
193
+ "options": {
194
+ "type": "object"
313
195
  }
314
196
  },
315
- "additionalProperties": true
197
+ "additionalProperties": false
316
198
  }
317
199
  ]
318
200
  },
319
- "serializerOpts": {
201
+ "pipeline": {
320
202
  "type": "object",
321
203
  "properties": {
322
- "schema": {
323
- "type": "object"
324
- },
325
- "ajv": {
326
- "type": "object"
327
- },
328
- "rounding": {
204
+ "target": {
329
205
  "type": "string",
330
- "enum": [
331
- "floor",
332
- "ceil",
333
- "round",
334
- "trunc"
335
- ],
336
- "default": "trunc"
337
- },
338
- "debugMode": {
339
- "type": "boolean"
206
+ "resolveModule": true
340
207
  },
341
- "mode": {
342
- "type": "string",
343
- "enum": [
344
- "debug",
345
- "standalone"
346
- ]
347
- },
348
- "largeArraySize": {
349
- "anyOf": [
350
- {
351
- "type": "integer"
352
- },
353
- {
354
- "type": "string"
355
- }
356
- ],
357
- "default": 20000
358
- },
359
- "largeArrayMechanism": {
360
- "type": "string",
361
- "enum": [
362
- "default",
363
- "json-stringify"
364
- ],
365
- "default": "default"
366
- }
367
- }
368
- },
369
- "caseSensitive": {
370
- "type": "boolean"
371
- },
372
- "requestIdHeader": {
373
- "anyOf": [
374
- {
375
- "type": "string"
376
- },
377
- {
378
- "type": "boolean",
379
- "const": false
208
+ "options": {
209
+ "type": "object"
380
210
  }
381
- ]
382
- },
383
- "requestIdLogLabel": {
384
- "type": "string"
385
- },
386
- "jsonShorthand": {
387
- "type": "boolean"
211
+ },
212
+ "additionalProperties": false
213
+ }
214
+ },
215
+ "required": [
216
+ "level"
217
+ ],
218
+ "default": {},
219
+ "additionalProperties": true
220
+ },
221
+ "server": {
222
+ "type": "object",
223
+ "properties": {
224
+ "hostname": {
225
+ "type": "string",
226
+ "default": "127.0.0.1"
388
227
  },
389
- "trustProxy": {
228
+ "port": {
390
229
  "anyOf": [
391
230
  {
392
- "type": "boolean"
231
+ "type": "integer"
393
232
  },
394
233
  {
395
234
  "type": "string"
396
- },
397
- {
398
- "type": "array",
399
- "items": {
400
- "type": "string"
401
- }
402
- },
403
- {
404
- "type": "integer"
405
235
  }
406
236
  ]
407
237
  },
@@ -411,9 +241,6 @@
411
241
  "https": {
412
242
  "type": "object",
413
243
  "properties": {
414
- "allowHTTP1": {
415
- "type": "boolean"
416
- },
417
244
  "key": {
418
245
  "anyOf": [
419
246
  {
@@ -463,55 +290,8 @@
463
290
  "type": "string",
464
291
  "resolvePath": true
465
292
  }
466
- },
467
- "additionalProperties": false
468
- },
469
- {
470
- "type": "array",
471
- "items": {
472
- "anyOf": [
473
- {
474
- "type": "string"
475
- },
476
- {
477
- "type": "object",
478
- "properties": {
479
- "path": {
480
- "type": "string",
481
- "resolvePath": true
482
- }
483
- },
484
- "additionalProperties": false
485
- }
486
- ]
487
- }
488
- }
489
- ]
490
- },
491
- "requestCert": {
492
- "type": "boolean"
493
- },
494
- "rejectUnauthorized": {
495
- "type": "boolean"
496
- }
497
- },
498
- "additionalProperties": false,
499
- "required": [
500
- "key",
501
- "cert"
502
- ]
503
- },
504
- "cors": {
505
- "type": "object",
506
- "$comment": "See https://github.com/fastify/fastify-cors",
507
- "properties": {
508
- "origin": {
509
- "anyOf": [
510
- {
511
- "type": "boolean"
512
- },
513
- {
514
- "type": "string"
293
+ },
294
+ "additionalProperties": false
515
295
  },
516
296
  {
517
297
  "type": "array",
@@ -523,116 +303,40 @@
523
303
  {
524
304
  "type": "object",
525
305
  "properties": {
526
- "regexp": {
527
- "type": "string"
306
+ "path": {
307
+ "type": "string",
308
+ "resolvePath": true
528
309
  }
529
310
  },
530
- "required": [
531
- "regexp"
532
- ]
311
+ "additionalProperties": false
533
312
  }
534
313
  ]
535
314
  }
536
- },
537
- {
538
- "type": "object",
539
- "properties": {
540
- "regexp": {
541
- "type": "string"
542
- }
543
- },
544
- "required": [
545
- "regexp"
546
- ]
547
- }
548
- ]
549
- },
550
- "methods": {
551
- "type": "array",
552
- "items": {
553
- "type": "string"
554
- }
555
- },
556
- "allowedHeaders": {
557
- "type": "string",
558
- "description": "Comma separated string of allowed headers."
559
- },
560
- "exposedHeaders": {
561
- "anyOf": [
562
- {
563
- "type": "array",
564
- "items": {
565
- "type": "string"
566
- }
567
- },
568
- {
569
- "type": "string",
570
- "description": "Comma separated string of exposed headers."
571
315
  }
572
316
  ]
573
- },
574
- "credentials": {
575
- "type": "boolean"
576
- },
577
- "maxAge": {
578
- "type": "integer"
579
- },
580
- "preflightContinue": {
581
- "type": "boolean",
582
- "default": false
583
- },
584
- "optionsSuccessStatus": {
585
- "type": "integer",
586
- "default": 204
587
- },
588
- "preflight": {
589
- "type": "boolean",
590
- "default": true
591
- },
592
- "strictPreflight": {
593
- "type": "boolean",
594
- "default": true
595
- },
596
- "hideOptionsRoute": {
597
- "type": "boolean",
598
- "default": true
599
317
  }
600
318
  },
601
- "additionalProperties": false
319
+ "additionalProperties": false,
320
+ "required": [
321
+ "key",
322
+ "cert"
323
+ ]
602
324
  }
603
325
  },
604
326
  "additionalProperties": false
605
327
  },
606
- "entrypoint": {
607
- "type": "string"
608
- },
609
- "watch": {
328
+ "restartOnError": {
329
+ "default": true,
610
330
  "anyOf": [
611
331
  {
612
332
  "type": "boolean"
613
333
  },
614
334
  {
615
- "type": "string"
335
+ "type": "number",
336
+ "minimum": 100
616
337
  }
617
338
  ]
618
339
  },
619
- "inspectorOptions": {
620
- "type": "object",
621
- "properties": {
622
- "host": {
623
- "type": "string"
624
- },
625
- "port": {
626
- "type": "number"
627
- },
628
- "breakFirstLine": {
629
- "type": "boolean"
630
- },
631
- "watchDisabled": {
632
- "type": "boolean"
633
- }
634
- }
635
- },
636
340
  "undici": {
637
341
  "type": "object",
638
342
  "properties": {
@@ -675,6 +379,16 @@
675
379
  }
676
380
  }
677
381
  },
382
+ "watch": {
383
+ "anyOf": [
384
+ {
385
+ "type": "boolean"
386
+ },
387
+ {
388
+ "type": "string"
389
+ }
390
+ ]
391
+ },
678
392
  "managementApi": {
679
393
  "anyOf": [
680
394
  {
@@ -687,11 +401,15 @@
687
401
  "type": "object",
688
402
  "properties": {
689
403
  "logs": {
690
- "maxSize": {
691
- "type": "number",
692
- "minimum": 5,
693
- "default": 200
694
- }
404
+ "type": "object",
405
+ "properties": {
406
+ "maxSize": {
407
+ "type": "number",
408
+ "minimum": 5,
409
+ "default": 200
410
+ }
411
+ },
412
+ "additionalProperties": false
695
413
  }
696
414
  },
697
415
  "additionalProperties": false
@@ -750,53 +468,131 @@
750
468
  }
751
469
  ]
752
470
  },
753
- "restartOnError": {
754
- "default": true,
755
- "anyOf": [
756
- {
757
- "type": "boolean"
471
+ "telemetry": {
472
+ "$id": "/OpenTelemetry",
473
+ "type": "object",
474
+ "properties": {
475
+ "serviceName": {
476
+ "type": "string",
477
+ "description": "The name of the service. Defaults to the folder name if not specified."
758
478
  },
759
- {
760
- "type": "number",
761
- "minimum": 100
479
+ "version": {
480
+ "type": "string",
481
+ "description": "The version of the service (optional)"
482
+ },
483
+ "skip": {
484
+ "type": "array",
485
+ "description": "An array of paths to skip when creating spans. Useful for health checks and other endpoints that do not need to be traced.",
486
+ "items": {
487
+ "type": "object",
488
+ "properties": {
489
+ "path": {
490
+ "type": "string",
491
+ "description": "The path to skip. Can be a string or a regex."
492
+ },
493
+ "method": {
494
+ "description": "HTTP method to skip",
495
+ "type": "string",
496
+ "enum": [
497
+ "GET",
498
+ "POST",
499
+ "PUT",
500
+ "DELETE",
501
+ "PATCH",
502
+ "HEAD",
503
+ "OPTIONS"
504
+ ]
505
+ }
506
+ }
507
+ }
508
+ },
509
+ "exporter": {
510
+ "anyOf": [
511
+ {
512
+ "type": "array",
513
+ "items": {
514
+ "type": "object",
515
+ "properties": {
516
+ "type": {
517
+ "type": "string",
518
+ "enum": [
519
+ "console",
520
+ "otlp",
521
+ "zipkin",
522
+ "memory"
523
+ ],
524
+ "default": "console"
525
+ },
526
+ "options": {
527
+ "type": "object",
528
+ "description": "Options for the exporter. These are passed directly to the exporter.",
529
+ "properties": {
530
+ "url": {
531
+ "type": "string",
532
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
533
+ },
534
+ "headers": {
535
+ "type": "object",
536
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
537
+ }
538
+ }
539
+ },
540
+ "additionalProperties": false
541
+ }
542
+ }
543
+ },
544
+ {
545
+ "type": "object",
546
+ "properties": {
547
+ "type": {
548
+ "type": "string",
549
+ "enum": [
550
+ "console",
551
+ "otlp",
552
+ "zipkin",
553
+ "memory"
554
+ ],
555
+ "default": "console"
556
+ },
557
+ "options": {
558
+ "type": "object",
559
+ "description": "Options for the exporter. These are passed directly to the exporter.",
560
+ "properties": {
561
+ "url": {
562
+ "type": "string",
563
+ "description": "The URL to send the traces to. Not used for console or memory exporters."
564
+ },
565
+ "headers": {
566
+ "type": "object",
567
+ "description": "Headers to send to the exporter. Not used for console or memory exporters."
568
+ }
569
+ }
570
+ },
571
+ "additionalProperties": false
572
+ }
573
+ }
574
+ ]
762
575
  }
763
- ]
576
+ },
577
+ "required": [
578
+ "serviceName"
579
+ ],
580
+ "additionalProperties": false
764
581
  },
765
- "services": {
766
- "type": "array",
767
- "items": {
768
- "type": "object",
769
- "anyOf": [
770
- {
771
- "required": [
772
- "id",
773
- "path"
774
- ]
775
- },
776
- {
777
- "required": [
778
- "id",
779
- "url"
780
- ]
781
- }
782
- ],
783
- "properties": {
784
- "id": {
785
- "type": "string"
786
- },
787
- "path": {
788
- "type": "string",
789
- "resolvePath": true
790
- },
791
- "config": {
792
- "type": "string"
793
- },
794
- "url": {
795
- "type": "string"
796
- },
797
- "useHttp": {
798
- "type": "boolean"
799
- }
582
+ "inspectorOptions": {
583
+ "type": "object",
584
+ "properties": {
585
+ "host": {
586
+ "type": "string"
587
+ },
588
+ "port": {
589
+ "type": "number"
590
+ },
591
+ "breakFirstLine": {
592
+ "type": "boolean"
593
+ },
594
+ "watchDisabled": {
595
+ "type": "boolean"
800
596
  }
801
597
  }
802
598
  }
@@ -813,6 +609,12 @@
813
609
  "services",
814
610
  "entrypoint"
815
611
  ]
612
+ },
613
+ {
614
+ "required": [
615
+ "web",
616
+ "entrypoint"
617
+ ]
816
618
  }
817
619
  ],
818
620
  "additionalProperties": false,