@oas-tools/oas-telemetry 0.7.1 → 0.8.0-alpha.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.
Files changed (194) hide show
  1. package/.env.example +17 -3
  2. package/README.md +1 -2
  3. package/dist/cjs/config/bootConfig.cjs +16 -14
  4. package/dist/cjs/config/config.cjs +120 -125
  5. package/dist/cjs/config/config.types.cjs +1 -4
  6. package/dist/cjs/docs/openapi.yaml +158 -4
  7. package/dist/cjs/index.cjs +27 -30
  8. package/dist/cjs/routesManager.cjs +62 -70
  9. package/dist/cjs/telemetry/custom-implementations/exporters/DiskLogExporter.cjs +121 -0
  10. package/dist/cjs/telemetry/custom-implementations/exporters/DiskMetricExporter.cjs +101 -0
  11. package/dist/cjs/telemetry/custom-implementations/exporters/DiskTraceExporter.cjs +103 -0
  12. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.cjs +194 -190
  13. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.cjs +147 -99
  14. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.cjs +143 -116
  15. package/dist/cjs/telemetry/custom-implementations/exporters/MultiMetricExporter.cjs +57 -0
  16. package/dist/cjs/telemetry/custom-implementations/instrumentations/logsInstrumentation.cjs +92 -0
  17. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Chunk.cjs +159 -0
  18. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Series.cjs +168 -0
  19. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.cjs +392 -0
  20. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/types.cjs +2 -0
  21. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/utils.cjs +77 -0
  22. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.cjs +65 -63
  23. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.cjs +63 -62
  24. package/dist/cjs/telemetry/custom-implementations/utils/circular.cjs +47 -47
  25. package/dist/cjs/telemetry/custom-implementations/wrappers.cjs +209 -138
  26. package/dist/cjs/telemetry/initializeTelemetry.cjs +35 -91
  27. package/dist/cjs/telemetry/persistence/DiskImporter.cjs +85 -0
  28. package/dist/cjs/telemetry/persistence/DiskUtils.cjs +61 -0
  29. package/dist/cjs/telemetry/persistence/DiskWriter.cjs +66 -0
  30. package/dist/cjs/telemetry/telemetryConfigurator.cjs +139 -72
  31. package/dist/cjs/telemetry/telemetryRegistry.cjs +45 -31
  32. package/dist/cjs/tlm-ai/agent.cjs +49 -64
  33. package/dist/cjs/tlm-ai/aiController.cjs +54 -76
  34. package/dist/cjs/tlm-ai/aiRoutes.cjs +17 -20
  35. package/dist/cjs/tlm-ai/aiService.cjs +91 -95
  36. package/dist/cjs/tlm-ai/tools.cjs +177 -174
  37. package/dist/cjs/tlm-auth/authController.cjs +80 -123
  38. package/dist/cjs/tlm-auth/authMiddleware.cjs +25 -30
  39. package/dist/cjs/tlm-auth/authRoutes.cjs +11 -14
  40. package/dist/cjs/tlm-log/logController.cjs +135 -116
  41. package/dist/cjs/tlm-log/logRoutes.cjs +19 -20
  42. package/dist/cjs/tlm-log/logService.cjs +29 -0
  43. package/dist/cjs/tlm-metric/metricsController.cjs +154 -122
  44. package/dist/cjs/tlm-metric/metricsRoutes.cjs +22 -20
  45. package/dist/cjs/tlm-metric/metricsService.cjs +26 -0
  46. package/dist/cjs/tlm-plugin/pluginController.cjs +128 -140
  47. package/dist/cjs/tlm-plugin/pluginProcess.cjs +89 -94
  48. package/dist/cjs/tlm-plugin/pluginRoutes.cjs +11 -14
  49. package/dist/cjs/tlm-plugin/pluginService.cjs +73 -74
  50. package/dist/cjs/tlm-trace/traceController.cjs +140 -123
  51. package/dist/cjs/tlm-trace/traceRoutes.cjs +19 -20
  52. package/dist/cjs/tlm-trace/traceService.cjs +29 -0
  53. package/dist/cjs/tlm-ui/uiRoutes.cjs +63 -32
  54. package/dist/cjs/tlm-util/utilController.cjs +68 -70
  55. package/dist/cjs/tlm-util/utilRoutes.cjs +51 -63
  56. package/dist/cjs/types/index.cjs +2 -5
  57. package/dist/cjs/utils/logger.cjs +38 -43
  58. package/dist/cjs/utils/regexUtils.cjs +22 -22
  59. package/dist/esm/config/bootConfig.js +5 -2
  60. package/dist/esm/config/config.js +9 -2
  61. package/dist/esm/docs/openapi.yaml +158 -4
  62. package/dist/esm/index.js +9 -8
  63. package/dist/esm/routesManager.js +6 -10
  64. package/dist/esm/telemetry/custom-implementations/exporters/DiskLogExporter.js +114 -0
  65. package/dist/esm/telemetry/custom-implementations/exporters/DiskMetricExporter.js +94 -0
  66. package/dist/esm/telemetry/custom-implementations/exporters/DiskTraceExporter.js +96 -0
  67. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.js +38 -7
  68. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.js +107 -48
  69. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.js +60 -29
  70. package/dist/esm/telemetry/custom-implementations/exporters/MultiMetricExporter.js +53 -0
  71. package/dist/esm/telemetry/custom-implementations/instrumentations/logsInstrumentation.js +85 -0
  72. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Chunk.js +155 -0
  73. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Series.js +164 -0
  74. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.js +385 -0
  75. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/types.js +1 -0
  76. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/utils.js +74 -0
  77. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.js +2 -1
  78. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.js +1 -1
  79. package/dist/esm/telemetry/custom-implementations/wrappers.js +77 -6
  80. package/dist/esm/telemetry/initializeTelemetry.js +27 -69
  81. package/dist/esm/telemetry/persistence/DiskImporter.js +78 -0
  82. package/dist/esm/telemetry/persistence/DiskUtils.js +51 -0
  83. package/dist/esm/telemetry/persistence/DiskWriter.js +59 -0
  84. package/dist/esm/telemetry/telemetryConfigurator.js +110 -39
  85. package/dist/esm/telemetry/telemetryRegistry.js +12 -1
  86. package/dist/esm/tlm-ai/agent.js +5 -3
  87. package/dist/esm/tlm-ai/aiController.js +3 -3
  88. package/dist/esm/tlm-ai/aiService.js +6 -2
  89. package/dist/esm/tlm-ai/tools.js +5 -9
  90. package/dist/esm/tlm-auth/authController.js +3 -2
  91. package/dist/esm/tlm-log/logController.js +62 -18
  92. package/dist/esm/tlm-log/logRoutes.js +3 -1
  93. package/dist/esm/tlm-log/logService.js +25 -0
  94. package/dist/esm/tlm-metric/metricsController.js +116 -50
  95. package/dist/esm/tlm-metric/metricsRoutes.js +8 -3
  96. package/dist/esm/tlm-metric/metricsService.js +22 -0
  97. package/dist/esm/tlm-plugin/pluginController.js +6 -11
  98. package/dist/esm/tlm-plugin/pluginService.js +2 -4
  99. package/dist/esm/tlm-trace/traceController.js +87 -36
  100. package/dist/esm/tlm-trace/traceRoutes.js +3 -1
  101. package/dist/esm/tlm-trace/traceService.js +25 -0
  102. package/dist/esm/tlm-ui/uiRoutes.js +5 -5
  103. package/dist/esm/tlm-util/utilController.js +3 -9
  104. package/dist/esm/tlm-util/utilRoutes.js +2 -2
  105. package/dist/types/config/bootConfig.d.ts +3 -0
  106. package/dist/types/config/config.d.ts +48 -7
  107. package/dist/types/config/config.types.d.ts +7 -0
  108. package/dist/types/index.d.ts +2 -3
  109. package/dist/types/telemetry/custom-implementations/exporters/DiskLogExporter.d.ts +24 -0
  110. package/dist/types/telemetry/custom-implementations/exporters/DiskMetricExporter.d.ts +23 -0
  111. package/dist/types/telemetry/custom-implementations/exporters/DiskTraceExporter.d.ts +23 -0
  112. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.d.ts +3 -1
  113. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.d.ts +56 -15
  114. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.d.ts +8 -4
  115. package/dist/types/telemetry/custom-implementations/exporters/MultiMetricExporter.d.ts +9 -0
  116. package/dist/types/telemetry/custom-implementations/instrumentations/logsInstrumentation.d.ts +23 -0
  117. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Chunk.d.ts +49 -0
  118. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Series.d.ts +67 -0
  119. package/dist/types/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.d.ts +69 -0
  120. package/dist/types/telemetry/custom-implementations/metrics/tsdb/types.d.ts +68 -0
  121. package/dist/types/telemetry/custom-implementations/metrics/tsdb/utils.d.ts +21 -0
  122. package/dist/types/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.d.ts +2 -2
  123. package/dist/types/telemetry/custom-implementations/wrappers.d.ts +2 -1
  124. package/dist/types/telemetry/persistence/DiskImporter.d.ts +17 -0
  125. package/dist/types/telemetry/persistence/DiskUtils.d.ts +11 -0
  126. package/dist/types/telemetry/persistence/DiskWriter.d.ts +21 -0
  127. package/dist/types/telemetry/telemetryConfigurator.d.ts +1 -1
  128. package/dist/types/telemetry/telemetryRegistry.d.ts +8 -0
  129. package/dist/types/tlm-ai/agent.d.ts +1 -1
  130. package/dist/types/tlm-ai/aiService.d.ts +1 -1
  131. package/dist/types/tlm-log/logController.d.ts +2 -0
  132. package/dist/types/tlm-log/logService.d.ts +4 -0
  133. package/dist/types/tlm-metric/metricsController.d.ts +11 -2
  134. package/dist/types/tlm-metric/metricsService.d.ts +6 -0
  135. package/dist/types/tlm-trace/traceController.d.ts +9 -7
  136. package/dist/types/tlm-trace/traceService.d.ts +4 -0
  137. package/dist/types/types/index.d.ts +2 -2
  138. package/dist/ui/assets/{ApiDocsPage-C_VVPPHa.js → ApiDocsPage-DTCgVbW2.js} +2 -2
  139. package/dist/ui/assets/CollapsibleCard-lWgfsaAn.js +1 -0
  140. package/dist/ui/assets/DevToolsPage-DEhf8CBy.js +1 -0
  141. package/dist/ui/assets/LandingPage-CfEHCDxY.js +6 -0
  142. package/dist/ui/assets/LogsPage-DFDKRuGH.js +1 -0
  143. package/dist/ui/assets/{NotFoundPage-B3quk3P1.js → NotFoundPage-DCy0DcV7.js} +1 -1
  144. package/dist/ui/assets/PluginCreatePage-BawZ5_-h.js +50 -0
  145. package/dist/ui/assets/PluginPage-D3FmgU7d.js +27 -0
  146. package/dist/ui/assets/TraceSpansPage-D0_L45Rb.js +6 -0
  147. package/dist/ui/assets/VirtualizedListPanel-q605n9He.js +16 -0
  148. package/dist/ui/assets/alert-DBAFshSi.js +1133 -0
  149. package/dist/ui/assets/badge-DGNBtnxU.js +1 -0
  150. package/dist/ui/assets/{chevron-down-CPsvsmqj.js → chevron-down-CFEqYzGC.js} +1 -1
  151. package/dist/ui/assets/{chevron-up-Df9jMo1X.js → chevron-up-lDnFwAJq.js} +1 -1
  152. package/dist/ui/assets/{circle-alert-DOPQPvU8.js → circle-alert-BpYUuRs7.js} +1 -1
  153. package/dist/ui/assets/dialog-1dRyI6SC.js +15 -0
  154. package/dist/ui/assets/index-C7RfU6hR.js +1 -0
  155. package/dist/ui/assets/index-C9dDYIpd.js +305 -0
  156. package/dist/ui/assets/index-D6f1KjWV.css +1 -0
  157. package/dist/ui/assets/info-CuJQWoBU.js +6 -0
  158. package/dist/ui/assets/{input-Dzvg_ZEZ.js → input-BLXaar0X.js} +1 -1
  159. package/dist/ui/assets/label-DfAcltsl.js +1 -0
  160. package/dist/ui/assets/{loader-circle-CrvlRy5o.js → loader-circle-B7oLyPsi.js} +1 -1
  161. package/dist/ui/assets/{loginPage-qa4V-B70.js → loginPage-DswZvOJ-.js} +1 -1
  162. package/dist/ui/assets/metrics-page-BhtXrfUW.js +31 -0
  163. package/dist/ui/assets/metrics-page-D1GxaB_c.css +1 -0
  164. package/dist/ui/assets/popover-IDker85U.js +11 -0
  165. package/dist/ui/assets/select-B8y5IidE.js +6 -0
  166. package/dist/ui/assets/separator-B6EzrxYY.js +6 -0
  167. package/dist/ui/assets/severityOptions-DtCsaAZK.js +11 -0
  168. package/dist/ui/assets/square-pen-D_oecB1x.js +6 -0
  169. package/dist/ui/assets/switch-Dqo0XkRD.js +1 -0
  170. package/dist/ui/assets/trace-DJq1miYa.js +1 -0
  171. package/dist/ui/assets/upload-prIohEdY.js +11 -0
  172. package/dist/ui/assets/{utilService-DNyqzwj0.js → utilService-C8TJKLqs.js} +1 -1
  173. package/dist/ui/assets/wand-sparkles-OgXuzsSx.js +6 -0
  174. package/dist/ui/index.html +2 -2
  175. package/package.json +44 -49
  176. package/dist/ui/assets/CollapsibleCard-B3KR_8mL.js +0 -1
  177. package/dist/ui/assets/DevToolsPage-OyZcDcmw.js +0 -1
  178. package/dist/ui/assets/LandingPage-CppFBA6K.js +0 -6
  179. package/dist/ui/assets/LogsPage-9Fq8GArS.js +0 -26
  180. package/dist/ui/assets/PluginCreatePage-X_aCH4t4.js +0 -50
  181. package/dist/ui/assets/PluginPage-DMDSihrZ.js +0 -27
  182. package/dist/ui/assets/alert-jQ9HCPIf.js +0 -1133
  183. package/dist/ui/assets/badge-CNq0-mH5.js +0 -1
  184. package/dist/ui/assets/card-DFAwwhN3.js +0 -1
  185. package/dist/ui/assets/index-BkD6DijD.js +0 -15
  186. package/dist/ui/assets/index-CERGVYZK.js +0 -292
  187. package/dist/ui/assets/index-CSIPf9qw.css +0 -1
  188. package/dist/ui/assets/label-DuVnkZ4q.js +0 -1
  189. package/dist/ui/assets/select-DhS8YUtJ.js +0 -1
  190. package/dist/ui/assets/separator-isK4chBP.js +0 -6
  191. package/dist/ui/assets/severityOptions-O38dSOfk.js +0 -11
  192. package/dist/ui/assets/switch-Z3mImG9n.js +0 -1
  193. package/dist/ui/assets/tabs-_77MUUQe.js +0 -16
  194. package/dist/ui/assets/upload-C1LT4Gkb.js +0 -16
@@ -1,98 +1,93 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.tools = exports.availableTools = void 0;
7
- var _logger = _interopRequireDefault(require("../utils/logger.cjs"));
8
- var _telemetryRegistry = require("../telemetry/telemetryRegistry.cjs");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- const getTraces = async searchInput => {
11
- _logger.default.debug("getTraces called with searchInput:", searchInput);
12
- try {
13
- const search = searchInput || {};
14
- const traces = await new Promise((resolve, reject) => {
15
- _telemetryRegistry.inMemoryDbSpanExporter.find(search, (err, docs) => {
16
- if (err) reject(err);else resolve(docs);
17
- });
18
- });
19
- const simplifiedTraces = getSimplifiedTraces(traces);
20
- _logger.default.debug(`Searching for traces with searchInput: ${JSON.stringify(search)}`);
21
- _logger.default.debug(`Traces found: ${JSON.stringify(simplifiedTraces.length)}`);
22
- return {
23
- traces: simplifiedTraces
24
- };
25
- } catch (error) {
26
- _logger.default.error('Error fetching traces:', error);
27
- throw error;
28
- }
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.availableTools = exports.tools = void 0;
7
+ const logger_js_1 = __importDefault(require("../utils/logger.cjs"));
8
+ const telemetryRegistry_js_1 = require("../telemetry/telemetryRegistry.cjs");
9
+ const getTraces = async (searchInput) => {
10
+ logger_js_1.default.debug("getTraces called with searchInput:", searchInput);
11
+ try {
12
+ const search = searchInput ? JSON.parse(searchInput) : {};
13
+ const traces = await telemetryRegistry_js_1.inMemoryDbSpanExporter.find({
14
+ query: search,
15
+ limit: 1000
16
+ });
17
+ const simplifiedTraces = getSimplifiedTraces(traces);
18
+ logger_js_1.default.debug(`Searching for traces with searchInput: ${JSON.stringify(search)}`);
19
+ logger_js_1.default.debug(`Traces found: ${JSON.stringify(simplifiedTraces.length)}`);
20
+ return { traces: simplifiedTraces };
21
+ }
22
+ catch (error) {
23
+ logger_js_1.default.error('Error fetching traces:', error);
24
+ throw error;
25
+ }
29
26
  };
30
27
  const getLogs = async (startDate, endDate) => {
31
- _logger.default.debug("getLogs called with startDate:", startDate, "endDate:", endDate);
32
- try {
33
- // Timestamps are stored in microseconds in the DB (must multiply by 1000)
34
- const startEpoch = startDate ? new Date(startDate).getTime() * 1000 : 0;
35
- const endEpoch = endDate ? new Date(endDate).getTime() * 1000 : Date.now() * 1000;
36
- _logger.default.debug(`Fetching logs from ${startEpoch} to ${endEpoch}`);
37
- const nedbQuery = {
38
- timestamp: {
39
- $gte: startEpoch,
40
- $lte: endEpoch
41
- }
42
- };
43
- const logs = (await _telemetryRegistry.inMemoryDbLogExporter.find({
44
- query: nedbQuery,
45
- messageSearch: null,
46
- limit: 50 // or any appropriate limit
47
- })) || [];
48
- _logger.default.debug(`Found ${logs.length} logs in the specified range.`);
49
- const simplifiedLogs = getSimplifiedLogs(logs);
50
- return {
51
- logs: simplifiedLogs
52
- };
53
- } catch (error) {
54
- _logger.default.error('Error fetching logs:', error);
55
- throw error;
56
- }
28
+ logger_js_1.default.debug("getLogs called with startDate:", startDate, "endDate:", endDate);
29
+ try {
30
+ // Timestamps are stored in microseconds in the DB (must multiply by 1000)
31
+ const startEpoch = startDate ? new Date(startDate).getTime() * 1000 : 0;
32
+ const endEpoch = endDate ? new Date(endDate).getTime() * 1000 : Date.now() * 1000;
33
+ logger_js_1.default.debug(`Fetching logs from ${startEpoch} to ${endEpoch}`);
34
+ const nedbQuery = {
35
+ timestamp: {
36
+ $gte: startEpoch,
37
+ $lte: endEpoch
38
+ }
39
+ };
40
+ const logs = (await telemetryRegistry_js_1.inMemoryDbLogExporter.find({
41
+ query: nedbQuery,
42
+ messageSearch: null,
43
+ limit: 1000 // or any appropriate limit
44
+ })) || [];
45
+ logger_js_1.default.debug(`Found ${logs.length} logs in the specified range.`);
46
+ const simplifiedLogs = getSimplifiedLogs(logs);
47
+ return { logs: simplifiedLogs };
48
+ }
49
+ catch (error) {
50
+ logger_js_1.default.error('Error fetching logs:', error);
51
+ throw error;
52
+ }
57
53
  };
58
54
  const startTelemetry = () => {
59
- _logger.default.debug("Starting telemetry...");
60
- _telemetryRegistry.inMemoryDbSpanExporter.enable();
61
- _telemetryRegistry.inMemoryDbLogExporter.enable();
62
- _telemetryRegistry.inMemoryDbMetricExporter.enable();
55
+ logger_js_1.default.debug("Starting telemetry...");
56
+ telemetryRegistry_js_1.inMemoryDbSpanExporter.enable();
57
+ telemetryRegistry_js_1.inMemoryDbLogExporter.enable();
58
+ telemetryRegistry_js_1.inMemoryDbMetricExporter.enable();
63
59
  };
64
60
  const stopTelemetry = () => {
65
- _logger.default.debug("Stopping telemetry...");
66
- _telemetryRegistry.inMemoryDbSpanExporter.disable();
67
- _telemetryRegistry.inMemoryDbLogExporter.disable();
68
- _telemetryRegistry.inMemoryDbMetricExporter.disable();
61
+ logger_js_1.default.debug("Stopping telemetry...");
62
+ telemetryRegistry_js_1.inMemoryDbSpanExporter.disable();
63
+ telemetryRegistry_js_1.inMemoryDbLogExporter.disable();
64
+ telemetryRegistry_js_1.inMemoryDbMetricExporter.disable();
69
65
  };
70
66
  const resetTelemetry = () => {
71
- _logger.default.debug("Resetting telemetry...");
72
- _telemetryRegistry.inMemoryDbSpanExporter.reset();
73
- _telemetryRegistry.inMemoryDbLogExporter.reset();
74
- _telemetryRegistry.inMemoryDbMetricExporter.reset();
67
+ logger_js_1.default.debug("Resetting telemetry...");
68
+ telemetryRegistry_js_1.inMemoryDbSpanExporter.reset();
69
+ telemetryRegistry_js_1.inMemoryDbLogExporter.reset();
70
+ telemetryRegistry_js_1.inMemoryDbMetricExporter.reset();
75
71
  };
76
72
  const getTelemetryStatus = () => {
77
- _logger.default.debug("Getting telemetry status...");
78
- return {
79
- spansEnabled: _telemetryRegistry.inMemoryDbSpanExporter.isEnabled(),
80
- logsEnabled: _telemetryRegistry.inMemoryDbLogExporter.isEnabled(),
81
- metricsEnabled: _telemetryRegistry.inMemoryDbMetricExporter.isEnabled()
82
- };
73
+ logger_js_1.default.debug("Getting telemetry status...");
74
+ return {
75
+ spansEnabled: telemetryRegistry_js_1.inMemoryDbSpanExporter.isEnabled(),
76
+ logsEnabled: telemetryRegistry_js_1.inMemoryDbLogExporter.isEnabled(),
77
+ metricsEnabled: telemetryRegistry_js_1.inMemoryDbMetricExporter.isEnabled()
78
+ };
83
79
  };
84
80
  const getCurrentDate = () => {
85
- _logger.default.debug("Getting the current date in ISO format...");
86
- const now = new Date();
87
- return {
88
- currentDateISO: now.toISOString()
89
- };
81
+ logger_js_1.default.debug("Getting the current date in ISO format...");
82
+ const now = new Date();
83
+ return { currentDateISO: now.toISOString() };
90
84
  };
91
- const tools = exports.tools = [{
92
- type: "function",
93
- function: {
94
- name: "getTraces",
95
- description: `Fetches trace data for the microservice.
85
+ const tools = [
86
+ {
87
+ type: "function",
88
+ function: {
89
+ name: "getTraces",
90
+ description: `Fetches trace data for the microservice.
96
91
  Traces provide detailed information about requests and their lifecycle, including HTTP attributes (e.g., URL, method, status code),
97
92
  network details (e.g., peer IP, port), and timing information.
98
93
  The 'searchInput' parameter is an object used to filter traces based on specific criteria.
@@ -154,26 +149,27 @@ const tools = exports.tools = [{
154
149
  you must give a {searchInput: query} object to the function
155
150
 
156
151
  `,
157
- parameters: {
158
- type: "object",
159
- properties: {
160
- searchInput: {
161
- type: "object",
162
- description: `Optional search criteria for filtering traces.
152
+ parameters: {
153
+ type: "object",
154
+ properties: {
155
+ searchInput: {
156
+ type: "object",
157
+ description: `Optional search criteria for filtering traces.
163
158
  This is a NeDB query using MongoDB-like (neDB) syntax.
164
159
  For example, you can filter by HTTP attributes, timestamps, or duration.
165
160
  If null, all traces will be returned.`,
166
- additionalProperties: true
161
+ additionalProperties: true
162
+ }
163
+ },
164
+ required: ["searchInput"]
165
+ }
167
166
  }
168
- },
169
- required: ["searchInput"]
170
- }
171
- }
172
- }, {
173
- type: "function",
174
- function: {
175
- name: "getLogs",
176
- description: `Fetches log data for the microservice.
167
+ },
168
+ {
169
+ type: "function",
170
+ function: {
171
+ name: "getLogs",
172
+ description: `Fetches log data for the microservice.
177
173
  Logs provide information about system events, including timestamps, log levels (e.g., info, error), and messages.
178
174
  The 'startDate' and 'endDate' parameters define the time range for fetching logs.
179
175
  If you need a date, you MUST first call the "getCurrentDate" tool to obtain the current date in ISO format, and then use it as a parameter.
@@ -184,90 +180,97 @@ const tools = exports.tools = [{
184
180
  "endDate": "2023-10-02T00:00:00Z"
185
181
  }
186
182
  Common filters include timestamps or log levels.`,
187
- parameters: {
188
- type: "object",
189
- properties: {
190
- startDate: {
191
- type: "string"
192
- },
193
- endDate: {
194
- type: "string"
183
+ parameters: {
184
+ type: "object",
185
+ properties: {
186
+ startDate: {
187
+ type: "string"
188
+ },
189
+ endDate: {
190
+ type: "string"
191
+ }
192
+ },
193
+ }
195
194
  }
196
- }
197
- }
198
- }
199
- }, {
200
- type: "function",
201
- function: {
202
- name: "startTelemetry",
203
- description: `Starts the telemetry data collection process.
195
+ },
196
+ {
197
+ type: "function",
198
+ function: {
199
+ name: "startTelemetry",
200
+ description: `Starts the telemetry data collection process.
204
201
  This function initializes the telemetry system and begins capturing trace, log, and metric data.`,
205
- parameters: {}
206
- }
207
- }, {
208
- type: "function",
209
- function: {
210
- name: "stopTelemetry",
211
- description: `Stops the telemetry data collection process.
202
+ parameters: {}
203
+ }
204
+ },
205
+ {
206
+ type: "function",
207
+ function: {
208
+ name: "stopTelemetry",
209
+ description: `Stops the telemetry data collection process.
212
210
  This function halts the telemetry system and stops capturing trace, log, and metric data.`,
213
- parameters: {}
214
- }
215
- }, {
216
- type: "function",
217
- function: {
218
- name: "resetTelemetry",
219
- description: `Resets the telemetry data collection process.
211
+ parameters: {}
212
+ }
213
+ },
214
+ {
215
+ type: "function",
216
+ function: {
217
+ name: "resetTelemetry",
218
+ description: `Resets the telemetry data collection process.
220
219
  This function clears any existing telemetry data and prepares the system for a fresh start.`,
221
- parameters: {}
222
- }
223
- }, {
224
- type: "function",
225
- function: {
226
- name: "getTelemetryStatus",
227
- description: `Retrieves the current status of the telemetry system.
220
+ parameters: {}
221
+ }
222
+ },
223
+ {
224
+ type: "function",
225
+ function: {
226
+ name: "getTelemetryStatus",
227
+ description: `Retrieves the current status of the telemetry system.
228
228
  This function checks whether the telemetry system is currently active or inactive.`,
229
- parameters: {}
230
- }
231
- }, {
232
- type: "function",
233
- function: {
234
- name: "getCurrentDate",
235
- description: `Returns the current date in ISO 8601 format (e.g., "2024-06-07T12:34:56.789Z").
229
+ parameters: {}
230
+ }
231
+ },
232
+ {
233
+ type: "function",
234
+ function: {
235
+ name: "getCurrentDate",
236
+ description: `Returns the current date in ISO 8601 format (e.g., "2024-06-07T12:34:56.789Z").
236
237
  Use this tool to obtain the current date when you need to specify a date for other tools, such as "getLogs".`,
237
- parameters: {}
238
- }
239
- }];
240
- const availableTools = exports.availableTools = {
241
- getTraces,
242
- getLogs,
243
- startTelemetry,
244
- stopTelemetry,
245
- resetTelemetry,
246
- getTelemetryStatus,
247
- getCurrentDate
238
+ parameters: {}
239
+ }
240
+ }
241
+ ];
242
+ exports.tools = tools;
243
+ const availableTools = {
244
+ getTraces,
245
+ getLogs,
246
+ startTelemetry,
247
+ stopTelemetry,
248
+ resetTelemetry,
249
+ getTelemetryStatus,
250
+ getCurrentDate
248
251
  };
252
+ exports.availableTools = availableTools;
249
253
  function getSimplifiedTraces(spans) {
250
- return spans.map(span => {
251
- return {
252
- name: span.name,
253
- kind: span.kind,
254
- attributes: span.attributes,
255
- resource: span.resource,
256
- _spanContext: span._spanContext,
257
- startTime: span.startTime,
258
- endTime: span.endTime,
259
- _duration: span._duration
260
- };
261
- });
254
+ return spans.map((span) => {
255
+ return {
256
+ name: span.name,
257
+ kind: span.kind,
258
+ attributes: span.attributes,
259
+ resource: span.resource,
260
+ _spanContext: span._spanContext,
261
+ startTime: span.startTime,
262
+ endTime: span.endTime,
263
+ _duration: span._duration
264
+ };
265
+ });
262
266
  }
263
267
  function getSimplifiedLogs(logs) {
264
- return logs.map(log => ({
265
- service: log.resource?.attributes?.service?.name || undefined,
266
- timestamp: new Date(log.timestamp / 1000).toISOString(),
267
- // converting microseconds to milliseconds
268
- severityText: log.severityText,
269
- message: log.body,
270
- traceId: log.traceId,
271
- source: log.attributes?.source || undefined
272
- }));
273
- }
268
+ return logs.map((log) => ({
269
+ service: log.resource?.attributes?.service?.name || undefined,
270
+ timestamp: new Date(log.timestamp / 1000).toISOString(), // converting microseconds to milliseconds
271
+ severityText: log.severityText,
272
+ message: log.body,
273
+ traceId: log.traceId,
274
+ source: log.attributes?.source || undefined,
275
+ }));
276
+ }
@@ -1,136 +1,93 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getRefresh = exports.getLogout = exports.getLogin = exports.getAuthEnabled = void 0;
7
- var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
8
- var _logger = _interopRequireDefault(require("../utils/logger.cjs"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAuthEnabled = exports.getRefresh = exports.getLogout = exports.getLogin = void 0;
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ const logger_js_1 = __importDefault(require("../utils/logger.cjs"));
9
+ const bootConfig_js_1 = require("../config/bootConfig.cjs");
10
10
  function generateAccessToken(secret, expiresIn) {
11
- return _jsonwebtoken.default.sign({
12
- type: "access"
13
- }, secret, {
14
- expiresIn: Math.floor(expiresIn / 1000)
15
- });
11
+ return jsonwebtoken_1.default.sign({ type: "access" }, secret, { expiresIn: Math.floor(expiresIn / 1000) });
16
12
  }
17
13
  function generateRefreshToken(secret, expiresIn) {
18
- return _jsonwebtoken.default.sign({
19
- type: "refresh"
20
- }, secret, {
21
- expiresIn: Math.floor(expiresIn / 1000)
22
- });
14
+ return jsonwebtoken_1.default.sign({ type: "refresh" }, secret, { expiresIn: Math.floor(expiresIn / 1000) });
23
15
  }
24
- const getLogin = oasTlmConfig => (req, res) => {
25
- if (!oasTlmConfig.auth.enabled) {
26
- res.status(200).json({
27
- valid: true,
28
- message: "Auth disabled"
29
- });
30
- return;
31
- }
32
- try {
33
- const {
34
- password
35
- } = req.body;
36
- if (password === oasTlmConfig.auth.password) {
37
- const accessToken = generateAccessToken(oasTlmConfig.auth.jwtSecret, oasTlmConfig.auth.accessTokenMaxAge);
38
- const refreshToken = generateRefreshToken(oasTlmConfig.auth.jwtSecret, oasTlmConfig.auth.refreshTokenMaxAge);
39
- res.cookie("oas-tlm-access-token", accessToken, {
40
- maxAge: oasTlmConfig.auth.accessTokenMaxAge,
41
- httpOnly: true,
42
- secure: process.env.NODE_ENV === "production",
43
- sameSite: "lax",
44
- path: "/"
45
- });
46
- res.cookie("oas-tlm-refresh-token", refreshToken, {
47
- maxAge: oasTlmConfig.auth.refreshTokenMaxAge,
48
- httpOnly: true,
49
- secure: process.env.NODE_ENV === "production",
50
- sameSite: "lax",
51
- path: oasTlmConfig.general.baseUrl + "/auth/refresh"
52
- });
53
- res.status(200).json({
54
- valid: true,
55
- message: "Login successful"
56
- });
57
- return;
16
+ const getLogin = (oasTlmConfig) => (req, res) => {
17
+ if (!oasTlmConfig.auth.enabled) {
18
+ res.status(200).json({ valid: true, message: "Auth disabled" });
19
+ return;
20
+ }
21
+ try {
22
+ const { password } = req.body;
23
+ if (password === oasTlmConfig.auth.password) {
24
+ const accessToken = generateAccessToken(oasTlmConfig.auth.jwtSecret, oasTlmConfig.auth.accessTokenMaxAge);
25
+ const refreshToken = generateRefreshToken(oasTlmConfig.auth.jwtSecret, oasTlmConfig.auth.refreshTokenMaxAge);
26
+ res.cookie("oas-tlm-access-token", accessToken, {
27
+ maxAge: oasTlmConfig.auth.accessTokenMaxAge,
28
+ httpOnly: true,
29
+ secure: process.env.NODE_ENV === "production",
30
+ sameSite: "lax",
31
+ path: "/"
32
+ });
33
+ res.cookie("oas-tlm-refresh-token", refreshToken, {
34
+ maxAge: oasTlmConfig.auth.refreshTokenMaxAge,
35
+ httpOnly: true,
36
+ secure: process.env.NODE_ENV === "production",
37
+ sameSite: "lax",
38
+ path: bootConfig_js_1.bootEnvVariables.OASTLM_BOOT_BASE_URL + "/auth/refresh"
39
+ });
40
+ res.status(200).json({ valid: true, message: "Login successful" });
41
+ return;
42
+ }
43
+ res.status(400).json({ valid: false, message: "Invalid password" });
44
+ }
45
+ catch (error) {
46
+ logger_js_1.default.error("Login error: ", error);
47
+ res.status(500).json({ valid: false, message: "Internal server error" });
58
48
  }
59
- res.status(400).json({
60
- valid: false,
61
- message: "Invalid password"
62
- });
63
- } catch (error) {
64
- _logger.default.error("Login error: ", error);
65
- res.status(500).json({
66
- valid: false,
67
- message: "Internal server error"
68
- });
69
- }
70
49
  };
71
50
  exports.getLogin = getLogin;
72
- const getLogout = oasTlmConfig => (req, res) => {
73
- if (!oasTlmConfig.auth.enabled) {
74
- res.status(200).json({
75
- valid: true,
76
- message: "Auth disabled"
77
- });
78
- return;
79
- }
80
- res.clearCookie('oas-tlm-access-token', {
81
- path: '/'
82
- });
83
- res.clearCookie('oas-tlm-refresh-token', {
84
- path: oasTlmConfig.general.baseUrl + '/auth/refresh'
85
- });
86
- res.status(200).json({
87
- valid: true,
88
- message: "Logged out"
89
- });
51
+ const getLogout = (oasTlmConfig) => (req, res) => {
52
+ if (!oasTlmConfig.auth.enabled) {
53
+ res.status(200).json({ valid: true, message: "Auth disabled" });
54
+ return;
55
+ }
56
+ res.clearCookie('oas-tlm-access-token', { path: '/' });
57
+ res.clearCookie('oas-tlm-refresh-token', { path: bootConfig_js_1.bootEnvVariables.OASTLM_BOOT_BASE_URL + '/auth/refresh' });
58
+ res.status(200).json({ valid: true, message: "Logged out" });
90
59
  };
91
60
  exports.getLogout = getLogout;
92
- const getRefresh = oasTlmConfig => (req, res) => {
93
- if (!oasTlmConfig.auth.enabled) {
94
- res.status(200).json({
95
- valid: true,
96
- message: "Auth disabled"
97
- });
98
- return;
99
- }
100
- const refreshToken = req.cookies["oas-tlm-refresh-token"];
101
- if (!refreshToken) {
102
- res.status(401).json({
103
- valid: false,
104
- message: "No refresh token"
105
- });
106
- return;
107
- }
108
- try {
109
- const payload = _jsonwebtoken.default.verify(refreshToken, oasTlmConfig.auth.jwtSecret);
110
- if (payload.type !== "refresh") throw new Error("Invalid token type");
111
- const accessToken = generateAccessToken(oasTlmConfig.auth.jwtSecret, oasTlmConfig.auth.accessTokenMaxAge);
112
- res.cookie("oas-tlm-access-token", accessToken, {
113
- maxAge: oasTlmConfig.auth.accessTokenMaxAge,
114
- httpOnly: true,
115
- secure: process.env.NODE_ENV === "production",
116
- sameSite: "lax",
117
- path: "/"
118
- });
119
- res.status(200).json({
120
- valid: true,
121
- message: "Refreshed"
122
- });
123
- } catch {
124
- res.status(401).json({
125
- valid: false,
126
- message: "Invalid refresh token"
127
- });
128
- }
61
+ const getRefresh = (oasTlmConfig) => (req, res) => {
62
+ if (!oasTlmConfig.auth.enabled) {
63
+ res.status(200).json({ valid: true, message: "Auth disabled" });
64
+ return;
65
+ }
66
+ const refreshToken = req.cookies["oas-tlm-refresh-token"];
67
+ if (!refreshToken) {
68
+ res.status(401).json({ valid: false, message: "No refresh token" });
69
+ return;
70
+ }
71
+ try {
72
+ const payload = jsonwebtoken_1.default.verify(refreshToken, oasTlmConfig.auth.jwtSecret);
73
+ if (payload.type !== "refresh")
74
+ throw new Error("Invalid token type");
75
+ const accessToken = generateAccessToken(oasTlmConfig.auth.jwtSecret, oasTlmConfig.auth.accessTokenMaxAge);
76
+ res.cookie("oas-tlm-access-token", accessToken, {
77
+ maxAge: oasTlmConfig.auth.accessTokenMaxAge,
78
+ httpOnly: true,
79
+ secure: process.env.NODE_ENV === "production",
80
+ sameSite: "lax",
81
+ path: "/"
82
+ });
83
+ res.status(200).json({ valid: true, message: "Refreshed" });
84
+ }
85
+ catch {
86
+ res.status(401).json({ valid: false, message: "Invalid refresh token" });
87
+ }
129
88
  };
130
89
  exports.getRefresh = getRefresh;
131
- const getAuthEnabled = oasTlmConfig => (req, res) => {
132
- res.status(200).json({
133
- enabled: !!oasTlmConfig.auth.enabled
134
- });
90
+ const getAuthEnabled = (oasTlmConfig) => (req, res) => {
91
+ res.status(200).json({ enabled: !!oasTlmConfig.auth.enabled });
135
92
  };
136
- exports.getAuthEnabled = getAuthEnabled;
93
+ exports.getAuthEnabled = getAuthEnabled;