server-devtools 0.1.5 → 0.1.6

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 (53) hide show
  1. package/README.md +83 -3
  2. package/dist/dashboard/assets/index-CmrEW8P5.css +2 -0
  3. package/dist/dashboard/assets/index-DMrAmgB9.js +61 -0
  4. package/dist/dashboard/index.html +20 -2
  5. package/dist/src/config/index.d.ts +4 -0
  6. package/dist/src/config/index.d.ts.map +1 -1
  7. package/dist/src/config/index.js +11 -1
  8. package/dist/src/config/index.js.map +1 -1
  9. package/dist/src/dashboard/dashboard-server.d.ts.map +1 -1
  10. package/dist/src/dashboard/dashboard-server.js +84 -3
  11. package/dist/src/dashboard/dashboard-server.js.map +1 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +6 -1
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/instrumentation/exporter.d.ts +2 -1
  16. package/dist/src/instrumentation/exporter.d.ts.map +1 -1
  17. package/dist/src/instrumentation/exporter.js +3 -2
  18. package/dist/src/instrumentation/exporter.js.map +1 -1
  19. package/dist/src/instrumentation/instrumentation.d.ts +2 -1
  20. package/dist/src/instrumentation/instrumentation.d.ts.map +1 -1
  21. package/dist/src/instrumentation/instrumentation.js +4 -3
  22. package/dist/src/instrumentation/instrumentation.js.map +1 -1
  23. package/dist/src/instrumentation/outbound-http/outbound-http-capture.d.ts +8 -1
  24. package/dist/src/instrumentation/outbound-http/outbound-http-capture.d.ts.map +1 -1
  25. package/dist/src/instrumentation/outbound-http/outbound-http-capture.js +158 -32
  26. package/dist/src/instrumentation/outbound-http/outbound-http-capture.js.map +1 -1
  27. package/dist/src/instrumentation/span-mapper.d.ts +4 -0
  28. package/dist/src/instrumentation/span-mapper.d.ts.map +1 -1
  29. package/dist/src/instrumentation/span-mapper.js +25 -3
  30. package/dist/src/instrumentation/span-mapper.js.map +1 -1
  31. package/dist/src/security/redaction.service.d.ts +8 -0
  32. package/dist/src/security/redaction.service.d.ts.map +1 -0
  33. package/dist/src/security/redaction.service.js +35 -0
  34. package/dist/src/security/redaction.service.js.map +1 -0
  35. package/dist/src/storage/sqlite-storage.d.ts +5 -2
  36. package/dist/src/storage/sqlite-storage.d.ts.map +1 -1
  37. package/dist/src/storage/sqlite-storage.js +94 -6
  38. package/dist/src/storage/sqlite-storage.js.map +1 -1
  39. package/dist/src/types/dashboard.d.ts +17 -0
  40. package/dist/src/types/dashboard.d.ts.map +1 -1
  41. package/dist/src/types/index.d.ts +1 -0
  42. package/dist/src/types/index.d.ts.map +1 -1
  43. package/dist/src/types/index.js +1 -0
  44. package/dist/src/types/index.js.map +1 -1
  45. package/dist/src/types/misc.d.ts +3 -0
  46. package/dist/src/types/misc.d.ts.map +1 -1
  47. package/dist/src/types/outbound-http.d.ts +9 -0
  48. package/dist/src/types/outbound-http.d.ts.map +1 -0
  49. package/dist/src/types/outbound-http.js +3 -0
  50. package/dist/src/types/outbound-http.js.map +1 -0
  51. package/package.json +1 -1
  52. package/dist/dashboard/assets/index-BXbomG5W.js +0 -9
  53. package/dist/dashboard/assets/index-DYvJ5RTl.css +0 -2
@@ -1,15 +1,45 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.OutboundHttpCapture = void 0;
4
7
  const node_async_hooks_1 = require("node:async_hooks");
5
8
  const logger_1 = require("../../utils/logger");
9
+ const config_1 = __importDefault(require("../../config"));
10
+ function captureNativeBodyChunk(state, chunk, encoding) {
11
+ if (state.oversized || chunk === undefined || chunk === null) {
12
+ return;
13
+ }
14
+ let buffer;
15
+ try {
16
+ buffer = typeof chunk === "string"
17
+ ? Buffer.from(chunk, encoding)
18
+ : Buffer.from(chunk);
19
+ }
20
+ catch {
21
+ state.oversized = true;
22
+ state.chunks.length = 0;
23
+ return;
24
+ }
25
+ if (state.bytes + buffer.length > config_1.default.NATIVE_HTTP_BODY_LIMIT_BYTES) {
26
+ state.oversized = true;
27
+ state.chunks.length = 0;
28
+ return;
29
+ }
30
+ state.chunks.push(buffer);
31
+ state.bytes += buffer.length;
32
+ }
6
33
  class OutboundHttpCapture {
7
34
  storage;
8
35
  fetchContext = new node_async_hooks_1.AsyncLocalStorage();
36
+ redactionService;
9
37
  originalFetch;
10
38
  fetchWrapper;
11
- constructor(storage) {
39
+ pendingFetchCaptures = new Set();
40
+ constructor(storage, redactionService) {
12
41
  this.storage = storage;
42
+ this.redactionService = redactionService;
13
43
  }
14
44
  trackNativeRequest(spanId, request) {
15
45
  (0, logger_1.debugLog)("Native HTTP request capture started", {
@@ -29,7 +59,7 @@ class OutboundHttpCapture {
29
59
  this.captureNativeResponseBody(spanId, response);
30
60
  }
31
61
  captureNativeRequestHeaders(spanId, request) {
32
- const headers = this.normalizeHeaders(request.getHeaders());
62
+ const headers = this.redactHeaders(this.normalizeHeaders(request.getHeaders()));
33
63
  try {
34
64
  this.storage.updateHttpClientDetails(spanId, {
35
65
  requestHeaders: headers,
@@ -43,23 +73,23 @@ class OutboundHttpCapture {
43
73
  }
44
74
  }
45
75
  captureNativeRequestBody(spanId, request) {
46
- const chunks = [];
76
+ const state = {
77
+ chunks: [],
78
+ bytes: 0,
79
+ oversized: false,
80
+ };
47
81
  const originalWrite = request.write.bind(request);
48
82
  const originalEnd = request.end.bind(request);
49
83
  request.write = ((chunk, ...args) => {
50
- if (chunk !== undefined && chunk !== null) {
51
- chunks.push(Buffer.from(chunk));
52
- }
84
+ captureNativeBodyChunk(state, chunk, typeof args[0] === "string" ? args[0] : undefined);
53
85
  return originalWrite(chunk, ...args);
54
86
  });
55
87
  request.end = ((chunk, ...args) => {
56
- if (chunk !== undefined && chunk !== null) {
57
- chunks.push(Buffer.from(chunk));
58
- }
59
- if (chunks.length > 0) {
88
+ captureNativeBodyChunk(state, chunk, typeof args[0] === "string" ? args[0] : undefined);
89
+ if (!state.oversized && state.chunks.length > 0) {
60
90
  try {
61
91
  this.storage.updateHttpClientDetails(spanId, {
62
- requestBody: this.parseBody(Buffer.concat(chunks), request.getHeader("content-type")),
92
+ requestBody: this.parseBody(Buffer.concat(state.chunks), request.getHeader("content-type")),
63
93
  });
64
94
  }
65
95
  catch (error) {
@@ -73,7 +103,7 @@ class OutboundHttpCapture {
73
103
  });
74
104
  }
75
105
  captureNativeResponseHeaders(spanId, response) {
76
- const headers = this.normalizeHeaders(response.headers);
106
+ const headers = this.redactHeaders(this.normalizeHeaders(response.headers));
77
107
  try {
78
108
  this.storage.updateHttpClientDetails(spanId, {
79
109
  responseHeaders: headers,
@@ -87,17 +117,21 @@ class OutboundHttpCapture {
87
117
  }
88
118
  }
89
119
  captureNativeResponseBody(spanId, response) {
90
- const chunks = [];
120
+ const state = {
121
+ chunks: [],
122
+ bytes: 0,
123
+ oversized: false,
124
+ };
91
125
  response.on("data", (chunk) => {
92
- chunks.push(Buffer.from(chunk));
126
+ captureNativeBodyChunk(state, chunk);
93
127
  });
94
128
  response.once("end", () => {
95
- if (chunks.length === 0) {
129
+ if (state.oversized || state.chunks.length === 0) {
96
130
  return;
97
131
  }
98
132
  try {
99
133
  this.storage.updateHttpClientDetails(spanId, {
100
- responseBody: this.parseBody(Buffer.concat(chunks), response.headers["content-type"]),
134
+ responseBody: this.parseBody(Buffer.concat(state.chunks), response.headers["content-type"]),
101
135
  });
102
136
  }
103
137
  catch (error) {
@@ -151,7 +185,15 @@ class OutboundHttpCapture {
151
185
  (0, logger_1.debugLog)("Fetch capture installed");
152
186
  const fetchWrapper = async (input, init) => {
153
187
  const request = new Request(input, init);
154
- const requestClone = request.clone();
188
+ let requestClone;
189
+ try {
190
+ requestClone = request.clone();
191
+ }
192
+ catch (error) {
193
+ (0, logger_1.debugLog)("Fetch request capture clone failed", {
194
+ errorName: error instanceof Error ? error.name : typeof error,
195
+ });
196
+ }
155
197
  const context = {};
156
198
  return this.fetchContext.run(context, async () => {
157
199
  const response = await originalFetch(request);
@@ -160,9 +202,24 @@ class OutboundHttpCapture {
160
202
  (0, logger_1.debugLog)("Fetch capture skipped; no outbound span was associated");
161
203
  return response;
162
204
  }
163
- const responseClone = response.clone();
164
- await this.captureFetchRequest(spanId, requestClone);
165
- await this.captureFetchResponse(spanId, responseClone);
205
+ let responseClone;
206
+ try {
207
+ responseClone = response.clone();
208
+ }
209
+ catch (error) {
210
+ (0, logger_1.debugLog)("Fetch response capture clone failed", {
211
+ spanId,
212
+ errorName: error instanceof Error ? error.name : typeof error,
213
+ });
214
+ }
215
+ const capture = this.captureFetchDetails(spanId, requestClone, responseClone).catch((error) => {
216
+ (0, logger_1.debugLog)("Fetch capture failed", {
217
+ spanId,
218
+ errorName: error instanceof Error ? error.name : typeof error,
219
+ });
220
+ });
221
+ this.pendingFetchCaptures.add(capture);
222
+ void capture.then(() => this.pendingFetchCaptures.delete(capture), () => this.pendingFetchCaptures.delete(capture));
166
223
  return response;
167
224
  });
168
225
  };
@@ -179,6 +236,11 @@ class OutboundHttpCapture {
179
236
  this.originalFetch = undefined;
180
237
  this.fetchWrapper = undefined;
181
238
  }
239
+ async waitForPendingFetchCaptures() {
240
+ while (this.pendingFetchCaptures.size > 0) {
241
+ await Promise.allSettled([...this.pendingFetchCaptures]);
242
+ }
243
+ }
182
244
  associateFetchSpan(spanId) {
183
245
  const context = this.fetchContext.getStore();
184
246
  if (!context) {
@@ -189,16 +251,11 @@ class OutboundHttpCapture {
189
251
  (0, logger_1.debugLog)("Fetch span associated", { spanId });
190
252
  }
191
253
  async captureFetchRequest(spanId, request) {
192
- const requestHeaders = this.normalizeFetchHeaders(request.headers);
254
+ const requestHeaders = this.redactHeaders(this.normalizeFetchHeaders(request.headers));
193
255
  let requestBody;
194
- if (request.body) {
195
- const body = await request.text();
196
- requestBody = this.parseBody(body, request.headers.get("content-type"));
197
- }
198
256
  try {
199
257
  this.storage.updateHttpClientDetails(spanId, {
200
258
  requestHeaders,
201
- requestBody,
202
259
  });
203
260
  }
204
261
  catch (error) {
@@ -207,19 +264,32 @@ class OutboundHttpCapture {
207
264
  errorName: error instanceof Error ? error.name : typeof error,
208
265
  });
209
266
  }
267
+ if (!request.body) {
268
+ (0, logger_1.debugLog)("Fetch request details captured", { spanId });
269
+ return;
270
+ }
271
+ try {
272
+ const body = await this.readFetchBody(request.body);
273
+ if (body === undefined) {
274
+ return;
275
+ }
276
+ requestBody = this.parseBody(body, request.headers.get("content-type"));
277
+ this.storage.updateHttpClientDetails(spanId, { requestBody });
278
+ }
279
+ catch (error) {
280
+ (0, logger_1.debugLog)("Fetch request body capture failed", {
281
+ spanId,
282
+ errorName: error instanceof Error ? error.name : typeof error,
283
+ });
284
+ }
210
285
  (0, logger_1.debugLog)("Fetch request details captured", { spanId });
211
286
  }
212
287
  async captureFetchResponse(spanId, response) {
213
- const responseHeaders = this.normalizeFetchHeaders(response.headers);
288
+ const responseHeaders = this.redactHeaders(this.normalizeFetchHeaders(response.headers));
214
289
  let responseBody;
215
- if (response.body) {
216
- const body = await response.text();
217
- responseBody = this.parseBody(body, response.headers.get("content-type"));
218
- }
219
290
  try {
220
291
  this.storage.updateHttpClientDetails(spanId, {
221
292
  responseHeaders,
222
- responseBody,
223
293
  });
224
294
  }
225
295
  catch (error) {
@@ -228,11 +298,64 @@ class OutboundHttpCapture {
228
298
  errorName: error instanceof Error ? error.name : typeof error,
229
299
  });
230
300
  }
301
+ if (!response.body) {
302
+ (0, logger_1.debugLog)("Fetch response details captured", {
303
+ spanId,
304
+ statusCode: response.status,
305
+ });
306
+ return;
307
+ }
308
+ try {
309
+ const body = await this.readFetchBody(response.body);
310
+ if (body === undefined) {
311
+ return;
312
+ }
313
+ responseBody = this.parseBody(body, response.headers.get("content-type"));
314
+ this.storage.updateHttpClientDetails(spanId, { responseBody });
315
+ }
316
+ catch (error) {
317
+ (0, logger_1.debugLog)("Fetch response body capture failed", {
318
+ spanId,
319
+ errorName: error instanceof Error ? error.name : typeof error,
320
+ });
321
+ }
231
322
  (0, logger_1.debugLog)("Fetch response details captured", {
232
323
  spanId,
233
324
  statusCode: response.status,
234
325
  });
235
326
  }
327
+ async captureFetchDetails(spanId, request, response) {
328
+ if (request) {
329
+ await this.captureFetchRequest(spanId, request);
330
+ }
331
+ if (response) {
332
+ await this.captureFetchResponse(spanId, response);
333
+ }
334
+ }
335
+ async readFetchBody(body) {
336
+ const reader = body.getReader();
337
+ const chunks = [];
338
+ let bytes = 0;
339
+ try {
340
+ while (true) {
341
+ const result = await reader.read();
342
+ if (result.done) {
343
+ return Buffer.concat(chunks, bytes);
344
+ }
345
+ const chunk = Buffer.from(result.value);
346
+ bytes += chunk.length;
347
+ if (bytes > config_1.default.NATIVE_HTTP_BODY_LIMIT_BYTES) {
348
+ chunks.length = 0;
349
+ void reader.cancel().catch(() => undefined);
350
+ return undefined;
351
+ }
352
+ chunks.push(chunk);
353
+ }
354
+ }
355
+ finally {
356
+ reader.releaseLock();
357
+ }
358
+ }
236
359
  normalizeFetchHeaders(headers) {
237
360
  const result = {};
238
361
  headers.forEach((value, key) => {
@@ -240,6 +363,9 @@ class OutboundHttpCapture {
240
363
  });
241
364
  return result;
242
365
  }
366
+ redactHeaders(headers) {
367
+ return this.redactionService.redactData(headers);
368
+ }
243
369
  }
244
370
  exports.OutboundHttpCapture = OutboundHttpCapture;
245
371
  //# sourceMappingURL=outbound-http-capture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-http-capture.js","sourceRoot":"","sources":["../../../../src/instrumentation/outbound-http/outbound-http-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbound-http-capture.js","sourceRoot":"","sources":["../../../../src/instrumentation/outbound-http/outbound-http-capture.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
2
  import { IDevToolsSpan } from "../types";
3
+ import RedactionService from "../security/redaction.service";
3
4
  export default class SpanMapper {
5
+ private readonly redactionService;
6
+ constructor(redactionService: RedactionService);
4
7
  map(span: ReadableSpan): IDevToolsSpan;
8
+ private redactHeaderAttributes;
5
9
  private getType;
6
10
  private hrTimeToMilliseconds;
7
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"span-mapper.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/span-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAI5D,MAAM,CAAC,OAAO,OAAO,UAAU;IAE3B,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAsCrC;IAED,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,oBAAoB;CAQ/B"}
1
+ {"version":3,"file":"span-mapper.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/span-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAE5D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAG7D,MAAM,CAAC,OAAO,OAAO,UAAU;IACf,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAA7C,YAA6B,gBAAgB,EAAE,gBAAgB,EAAK;IAEpE,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAoCrC;IAED,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,OAAO;IAqBf,OAAO,CAAC,oBAAoB;CAQ/B"}
@@ -2,6 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const api_1 = require("@opentelemetry/api");
4
4
  class SpanMapper {
5
+ redactionService;
6
+ constructor(redactionService) {
7
+ this.redactionService = redactionService;
8
+ }
5
9
  map(span) {
6
10
  const context = span.spanContext();
7
11
  const exceptionEvent = span?.events?.find((event) => event.name === 'exception');
@@ -13,9 +17,7 @@ class SpanMapper {
13
17
  name: span.name,
14
18
  startedAt: this.hrTimeToMilliseconds(span.startTime),
15
19
  durationMs: this.hrTimeToMilliseconds(span.duration),
16
- attributes: {
17
- ...span.attributes,
18
- },
20
+ attributes: this.redactHeaderAttributes(span.attributes),
19
21
  status: {
20
22
  code: span.status.code,
21
23
  message: span.status.message,
@@ -29,6 +31,26 @@ class SpanMapper {
29
31
  : undefined,
30
32
  };
31
33
  }
34
+ redactHeaderAttributes(attributes) {
35
+ const redactedAttributes = { ...attributes };
36
+ const headerPrefixes = [
37
+ "http.request.header.",
38
+ "http.response.header.",
39
+ ];
40
+ for (const [key, value] of Object.entries(attributes)) {
41
+ const normalizedKey = key.toLowerCase();
42
+ const prefix = headerPrefixes.find((candidate) => normalizedKey.startsWith(candidate));
43
+ if (!prefix) {
44
+ continue;
45
+ }
46
+ const headerName = key.slice(prefix.length);
47
+ const redactedHeader = this.redactionService.redactData({
48
+ [headerName]: value,
49
+ });
50
+ redactedAttributes[key] = redactedHeader[headerName];
51
+ }
52
+ return redactedAttributes;
53
+ }
32
54
  getType(span) {
33
55
  if (span.attributes['db.system.name']) {
34
56
  return 'database';
@@ -1 +1 @@
1
- {"version":3,"file":"span-mapper.js","sourceRoot":"","sources":["../../../src/instrumentation/span-mapper.ts"],"names":[],"mappings":";;AAEA,4CAA8C;AAG9C;IAEI,GAAG,CAAC,IAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnC,MAAM,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CACxC,CAAC;QAEF,OAAO;YACH,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM;YAE5C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAExB,IAAI,EAAE,IAAI,CAAC,IAAI;YAEf,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;YACpD,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAEpD,UAAU,EAAE;gBACR,GAAG,IAAI,CAAC,UAAU;aACrB;YAED,MAAM,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC/B;YACD,KAAK,EAAE,cAAc;gBACjB,CAAC,CAAC;oBACE,IAAI,EACA,cAAc,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE;oBAC7D,OAAO,EACH,cAAc,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE;oBAChE,KAAK,EACD,cAAc,CAAC,UAAU,EAAE,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE;iBACtE;gBACD,CAAC,CAAC,SAAS;SAClB,CAAA;IACL,CAAC;IAEO,OAAO,CAAC,IAAkB;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,OAAO,WAAW,CAAC;QACvB,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,cAAQ,CAAC,MAAM;gBAChB,OAAO,aAAa,CAAC;YAEzB,KAAK,cAAQ,CAAC,MAAM;gBAChB,OAAO,aAAa,CAAC;YAEzB;gBACI,OAAO,SAAS,CAAC;QACzB,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,IAAsB;QAC/C,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;QAEpC,OAAO,OAAO,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC;IACpD,CAAC;CAIJ"}
1
+ {"version":3,"file":"span-mapper.js","sourceRoot":"","sources":["../../../src/instrumentation/span-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ declare class RedactionService {
2
+ private readonly redactFields;
3
+ private readonly allowRedacting;
4
+ constructor(allowRedacting: boolean, redactFields: string[]);
5
+ redactData(data: unknown): unknown;
6
+ }
7
+ export default RedactionService;
8
+ //# sourceMappingURL=redaction.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.service.d.ts","sourceRoot":"","sources":["../../../src/security/redaction.service.ts"],"names":[],"mappings":"AAIA,cAAM,gBAAgB;IAClB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IAExC,YACI,cAAc,EAAE,OAAO,EACvB,YAAY,EAAE,MAAM,EAAE,EAQzB;IAED,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAuBjC;CAIJ;eAEc,gBAAgB"}
@@ -0,0 +1,35 @@
1
+ "use strict";
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
+ const config_1 = __importDefault(require("../config"));
7
+ class RedactionService {
8
+ redactFields;
9
+ allowRedacting;
10
+ constructor(allowRedacting, redactFields) {
11
+ this.allowRedacting = allowRedacting;
12
+ this.redactFields = new Set(redactFields
13
+ .map(field => field?.trim().toLowerCase())
14
+ .filter(Boolean));
15
+ }
16
+ redactData(data) {
17
+ if (!this.allowRedacting)
18
+ return data;
19
+ if (Array.isArray(data)) {
20
+ return data.map(item => this.redactData(item));
21
+ }
22
+ if (data !== null && typeof data === "object") {
23
+ return Object.fromEntries(Object.entries(data).map(([key, value]) => {
24
+ if (this.redactFields.has(key.toLowerCase()) &&
25
+ value !== undefined) {
26
+ return [key, config_1.default.REDACTED_KEY];
27
+ }
28
+ return [key, this.redactData(value)];
29
+ }));
30
+ }
31
+ return data;
32
+ }
33
+ }
34
+ exports.default = RedactionService;
35
+ //# sourceMappingURL=redaction.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.service.js","sourceRoot":"","sources":["../../../src/security/redaction.service.ts"],"names":[],"mappings":";;;;;AAAA,uDAA+B;AAI/B,MAAM,gBAAgB;IACD,YAAY,CAAc;IAC1B,cAAc,CAAS;IAExC,YACI,cAAuB,EACvB,YAAsB;QAEtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CACvB,YAAY;aACP,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACzC,MAAM,CAAC,OAAO,CAAC,CACvB,CAAC;IACN,CAAC;IAED,UAAU,CAAC,IAAa;QACpB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACtC,IACI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACxC,KAAK,KAAK,SAAS,EACrB,CAAC;oBACC,OAAO,CAAC,GAAG,EAAE,gBAAM,CAAC,YAAY,CAAC,CAAC;gBACtC,CAAC;gBAED,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,CACL,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CAIJ;kBAEc,gBAAgB"}
@@ -1,5 +1,7 @@
1
- import { IDevToolsCurrentUser, IDevToolsSpan, IDevToolsTrace, IHttpClientDetails, ISession, ITraceMetadata, ITraceSummary } from "../types";
1
+ import { DashboardOverviewRange, IDevToolsCurrentUser, IDevToolsSpan, IDevToolsTrace, IHttpClientDetails, IOverviewMetrics, ISession, ITraceMetadata, ITraceSummary } from "../types";
2
2
  import EncryptDecryptService from "../security/encrypt-decrypt.service";
3
+ export type TraceSummarySortField = "startedAt" | "durationMs" | "statusCode" | "method" | "path";
4
+ export type TraceSummarySortDirection = "asc" | "desc";
3
5
  export default class SQLiteStorage {
4
6
  private readonly encryptionService?;
5
7
  private readonly db;
@@ -15,10 +17,11 @@ export default class SQLiteStorage {
15
17
  getTrace(traceId: string): IDevToolsTrace | undefined;
16
18
  saveTraceSummary(span: IDevToolsSpan): void;
17
19
  getTraceSummaries(): ITraceSummary[];
18
- getPaginatedTraceSummaries(page: number, limit: number, search?: string, method?: string, statusCode?: number): {
20
+ getPaginatedTraceSummaries(page: number, limit: number, search?: string, method?: string, statusCode?: number, startedAtFrom?: number, startedAtTo?: number, sortField?: TraceSummarySortField, sortDirection?: TraceSummarySortDirection): {
19
21
  summaries: ITraceSummary[];
20
22
  total: number;
21
23
  };
24
+ getOverview(range: DashboardOverviewRange, now?: number): IOverviewMetrics;
22
25
  saveRequestBody(traceId: string, body: unknown): void;
23
26
  saveResponseBody(traceId: string, body: unknown): void;
24
27
  getTraceMetadata(traceId: string): ITraceMetadata | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite-storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5I,OAAO,qBAAqB,MAAM,qCAAqC,CAAC;AAUxE,MAAM,CAAC,OAAO,OAAO,aAAa;IAI1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAHvC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAElC,YAAY,IAAI,EAAE,MAAM,EACH,iBAAiB,CAAC,EAAE,qBAAqB,YAAA,EAK7D;IAED,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IA0E1B,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAyClC;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAkClD;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAoBpD;IAED,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CA+E1C;IAED,iBAAiB,IAAI,aAAa,EAAE,CAmCnC;IAED,0BAA0B,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,SAAK,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,GACpB;QACC,SAAS,EAAE,aAAa,EAAE,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;KACjB,CAgFA;IAED,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAmBpD;IAED,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAmBrD;IAED,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAsD5D;IAED,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAuBjC;IAED,YAAY,IAAI,IAAI,CAenB;IAED,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAenC;IAED,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAmB1D;IAED,aAAa,CAAC,WAAW,EAAE,MAAM,QAKhC;IAED,eAAe,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,oBAAoB,QAiB7B;IAED,uBAAuB,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,GACrD,IAAI,CAsEN;IAED,oBAAoB,CAChB,MAAM,EAAE,MAAM,GACf,kBAAkB,GAAG,SAAS,CA6ChC;IAED,KAAK,IAAI,IAAI,CAEZ;CACJ"}
1
+ {"version":3,"file":"sqlite-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/sqlite-storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACtL,OAAO,qBAAqB,MAAM,qCAAqC,CAAC;AAGxE,MAAM,MAAM,qBAAqB,GAC3B,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,CAAC;AACb,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,MAAM,CAAC;AAQvD,MAAM,CAAC,OAAO,OAAO,aAAa;IAI1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAHvC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;IAElC,YAAY,IAAI,EAAE,MAAM,EACH,iBAAiB,CAAC,EAAE,qBAAqB,YAAA,EAK7D;IAED,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IA0E1B,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,uBAAuB;IAQ/B,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAyClC;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAkClD;IAED,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAoBpD;IAED,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAkF1C;IAED,iBAAiB,IAAI,aAAa,EAAE,CAmCnC;IAED,0BAA0B,CACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,SAAK,EACX,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,GAAE,qBAAmC,EAC9C,aAAa,GAAE,yBAAkC,GAClD;QACC,SAAS,EAAE,aAAa,EAAE,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC;KACjB,CA6GA;IAED,WAAW,CACP,KAAK,EAAE,sBAAsB,EAC7B,GAAG,SAAa,GACjB,gBAAgB,CAsElB;IAED,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAmBpD;IAED,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAmBrD;IAED,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAsD5D;IAED,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAuBjC;IAED,YAAY,IAAI,IAAI,CAenB;IAED,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAenC;IAED,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAmB1D;IAED,aAAa,CAAC,WAAW,EAAE,MAAM,QAKhC;IAED,eAAe,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,oBAAoB,QAiB7B;IAED,uBAAuB,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,GACrD,IAAI,CAsEN;IAED,oBAAoB,CAChB,MAAM,EAAE,MAAM,GACf,kBAAkB,GAAG,SAAS,CA6ChC;IAED,KAAK,IAAI,IAAI,CAEZ;CACJ"}