@platformatic/nest 3.58.1 → 3.60.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.
Files changed (3) hide show
  1. package/config.d.ts +61 -1
  2. package/package.json +7 -7
  3. package/schema.json +174 -2
package/config.d.ts CHANGED
@@ -262,7 +262,40 @@ export interface PlatformaticNestJSConfig {
262
262
  bufferPoolSize?: number | string;
263
263
  defaultHighWaterMark?: number | string;
264
264
  };
265
- healthProbes?: boolean | string;
265
+ healthProbes?:
266
+ | boolean
267
+ | string
268
+ | {
269
+ enabled?: boolean | string;
270
+ hostname?: string;
271
+ port?: number | string;
272
+ readiness?:
273
+ | boolean
274
+ | {
275
+ endpoint?: string;
276
+ success?: {
277
+ statusCode?: number;
278
+ body?: string;
279
+ };
280
+ fail?: {
281
+ statusCode?: number;
282
+ body?: string;
283
+ };
284
+ };
285
+ liveness?:
286
+ | boolean
287
+ | {
288
+ endpoint?: string;
289
+ success?: {
290
+ statusCode?: number;
291
+ body?: string;
292
+ };
293
+ fail?: {
294
+ statusCode?: number;
295
+ body?: string;
296
+ };
297
+ };
298
+ };
266
299
  undici?: {
267
300
  agentOptions?: {
268
301
  [k: string]: unknown;
@@ -421,6 +454,10 @@ export interface PlatformaticNestJSConfig {
421
454
  body?: string;
422
455
  };
423
456
  };
457
+ /**
458
+ * @deprecated
459
+ * Deprecated. Health probe timeout configuration is no longer used.
460
+ */
424
461
  healthChecksTimeouts?: number | string;
425
462
  plugins?: string[];
426
463
  timeout?: number | string;
@@ -455,6 +492,29 @@ export interface PlatformaticNestJSConfig {
455
492
  */
456
493
  serviceVersion?: string;
457
494
  };
495
+ /**
496
+ * Configuration for forwarding user OpenTelemetry metrics to an OTLP endpoint
497
+ */
498
+ opentelemetry?: {
499
+ /**
500
+ * Enable or disable OpenTelemetry metrics forwarding
501
+ */
502
+ enabled?: boolean | string;
503
+ /**
504
+ * OTLP metrics endpoint URL (e.g., http://collector:4318/v1/metrics)
505
+ */
506
+ endpoint: string;
507
+ /**
508
+ * Interval in milliseconds between metric forwards
509
+ */
510
+ interval?: number | string;
511
+ /**
512
+ * Additional HTTP headers for authentication
513
+ */
514
+ headers?: {
515
+ [k: string]: string;
516
+ };
517
+ };
458
518
  /**
459
519
  * Custom labels to add to HTTP metrics (http_request_all_duration_seconds). Each label extracts its value from an HTTP request header.
460
520
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformatic/nest",
3
- "version": "3.58.1",
3
+ "version": "3.60.0",
4
4
  "description": "Platformatic Nest.js Capability",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -18,10 +18,10 @@
18
18
  "get-port": "^7.1.0",
19
19
  "light-my-request": "^6.0.0",
20
20
  "pino-http": "^10.2.0",
21
- "@platformatic/basic": "3.58.1",
22
- "@platformatic/foundation": "3.58.1",
23
- "@platformatic/generators": "3.58.1",
24
- "@platformatic/globals": "3.58.1"
21
+ "@platformatic/basic": "3.60.0",
22
+ "@platformatic/foundation": "3.60.0",
23
+ "@platformatic/globals": "3.60.0",
24
+ "@platformatic/generators": "3.60.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@nestjs/cli": "^11.0.7",
@@ -35,8 +35,8 @@
35
35
  "tstyche": "^6.2.0",
36
36
  "tsx": "^4.19.0",
37
37
  "typescript": "^5.5.4",
38
- "@platformatic/gateway": "3.58.1",
39
- "@platformatic/service": "3.58.1"
38
+ "@platformatic/service": "3.60.0",
39
+ "@platformatic/gateway": "3.60.0"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=22.19.0"
package/schema.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://schemas.platformatic.dev/@platformatic/nest/3.58.1.json",
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/nest/3.60.0.json",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Platformatic NestJS Config",
5
5
  "type": "object",
@@ -444,6 +444,23 @@
444
444
  "id": {
445
445
  "type": "string"
446
446
  },
447
+ "enabled": {
448
+ "anyOf": [
449
+ {
450
+ "type": "boolean"
451
+ },
452
+ {
453
+ "type": "string"
454
+ },
455
+ {
456
+ "type": "object",
457
+ "additionalProperties": {
458
+ "type": "boolean"
459
+ }
460
+ }
461
+ ],
462
+ "default": true
463
+ },
447
464
  "path": {
448
465
  "type": "string",
449
466
  "allowEmptyPaths": true,
@@ -1379,6 +1396,115 @@
1379
1396
  },
1380
1397
  {
1381
1398
  "type": "string"
1399
+ },
1400
+ {
1401
+ "type": "object",
1402
+ "properties": {
1403
+ "enabled": {
1404
+ "anyOf": [
1405
+ {
1406
+ "type": "boolean"
1407
+ },
1408
+ {
1409
+ "type": "string"
1410
+ }
1411
+ ]
1412
+ },
1413
+ "hostname": {
1414
+ "type": "string"
1415
+ },
1416
+ "port": {
1417
+ "anyOf": [
1418
+ {
1419
+ "type": "integer"
1420
+ },
1421
+ {
1422
+ "type": "string"
1423
+ }
1424
+ ]
1425
+ },
1426
+ "readiness": {
1427
+ "anyOf": [
1428
+ {
1429
+ "type": "boolean"
1430
+ },
1431
+ {
1432
+ "type": "object",
1433
+ "properties": {
1434
+ "endpoint": {
1435
+ "type": "string"
1436
+ },
1437
+ "success": {
1438
+ "type": "object",
1439
+ "properties": {
1440
+ "statusCode": {
1441
+ "type": "number"
1442
+ },
1443
+ "body": {
1444
+ "type": "string"
1445
+ }
1446
+ },
1447
+ "additionalProperties": false
1448
+ },
1449
+ "fail": {
1450
+ "type": "object",
1451
+ "properties": {
1452
+ "statusCode": {
1453
+ "type": "number"
1454
+ },
1455
+ "body": {
1456
+ "type": "string"
1457
+ }
1458
+ },
1459
+ "additionalProperties": false
1460
+ }
1461
+ },
1462
+ "additionalProperties": false
1463
+ }
1464
+ ]
1465
+ },
1466
+ "liveness": {
1467
+ "anyOf": [
1468
+ {
1469
+ "type": "boolean"
1470
+ },
1471
+ {
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "endpoint": {
1475
+ "type": "string"
1476
+ },
1477
+ "success": {
1478
+ "type": "object",
1479
+ "properties": {
1480
+ "statusCode": {
1481
+ "type": "number"
1482
+ },
1483
+ "body": {
1484
+ "type": "string"
1485
+ }
1486
+ },
1487
+ "additionalProperties": false
1488
+ },
1489
+ "fail": {
1490
+ "type": "object",
1491
+ "properties": {
1492
+ "statusCode": {
1493
+ "type": "number"
1494
+ },
1495
+ "body": {
1496
+ "type": "string"
1497
+ }
1498
+ },
1499
+ "additionalProperties": false
1500
+ }
1501
+ },
1502
+ "additionalProperties": false
1503
+ }
1504
+ ]
1505
+ }
1506
+ },
1507
+ "additionalProperties": false
1382
1508
  }
1383
1509
  ],
1384
1510
  "default": true
@@ -1855,7 +1981,9 @@
1855
1981
  "type": "string"
1856
1982
  }
1857
1983
  ],
1858
- "default": 5000
1984
+ "default": 5000,
1985
+ "deprecated": true,
1986
+ "description": "Deprecated. Health probe timeout configuration is no longer used."
1859
1987
  },
1860
1988
  "plugins": {
1861
1989
  "type": "array",
@@ -1931,6 +2059,50 @@
1931
2059
  ],
1932
2060
  "additionalProperties": false
1933
2061
  },
2062
+ "opentelemetry": {
2063
+ "type": "object",
2064
+ "description": "Configuration for forwarding user OpenTelemetry metrics to an OTLP endpoint",
2065
+ "properties": {
2066
+ "enabled": {
2067
+ "anyOf": [
2068
+ {
2069
+ "type": "boolean"
2070
+ },
2071
+ {
2072
+ "type": "string"
2073
+ }
2074
+ ],
2075
+ "description": "Enable or disable OpenTelemetry metrics forwarding"
2076
+ },
2077
+ "endpoint": {
2078
+ "type": "string",
2079
+ "description": "OTLP metrics endpoint URL (e.g., http://collector:4318/v1/metrics)"
2080
+ },
2081
+ "interval": {
2082
+ "anyOf": [
2083
+ {
2084
+ "type": "integer"
2085
+ },
2086
+ {
2087
+ "type": "string"
2088
+ }
2089
+ ],
2090
+ "default": 60000,
2091
+ "description": "Interval in milliseconds between metric forwards"
2092
+ },
2093
+ "headers": {
2094
+ "type": "object",
2095
+ "additionalProperties": {
2096
+ "type": "string"
2097
+ },
2098
+ "description": "Additional HTTP headers for authentication"
2099
+ }
2100
+ },
2101
+ "required": [
2102
+ "endpoint"
2103
+ ],
2104
+ "additionalProperties": false
2105
+ },
1934
2106
  "httpCustomLabels": {
1935
2107
  "type": "array",
1936
2108
  "description": "Custom labels to add to HTTP metrics (http_request_all_duration_seconds). Each label extracts its value from an HTTP request header.",