observability-toolkit 1.8.0 → 1.8.4
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/README.md +81 -3
- package/dist/backends/index.d.ts +119 -0
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +57 -0
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/index.test.d.ts +5 -0
- package/dist/backends/index.test.d.ts.map +1 -0
- package/dist/backends/index.test.js +156 -0
- package/dist/backends/index.test.js.map +1 -0
- package/dist/backends/local-jsonl-boolean-search.test.js +8 -27
- package/dist/backends/local-jsonl-boolean-search.test.js.map +1 -1
- package/dist/backends/local-jsonl-logs.test.d.ts +2 -0
- package/dist/backends/local-jsonl-logs.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-logs.test.js +603 -0
- package/dist/backends/local-jsonl-logs.test.js.map +1 -0
- package/dist/backends/local-jsonl-traces.test.d.ts +2 -0
- package/dist/backends/local-jsonl-traces.test.d.ts.map +1 -0
- package/dist/backends/local-jsonl-traces.test.js +1723 -0
- package/dist/backends/local-jsonl-traces.test.js.map +1 -0
- package/dist/backends/local-jsonl.d.ts +4 -1
- package/dist/backends/local-jsonl.d.ts.map +1 -1
- package/dist/backends/local-jsonl.js +185 -1
- package/dist/backends/local-jsonl.js.map +1 -1
- package/dist/backends/local-jsonl.test.js +723 -46
- package/dist/backends/local-jsonl.test.js.map +1 -1
- package/dist/backends/signoz-api.d.ts +32 -0
- package/dist/backends/signoz-api.d.ts.map +1 -1
- package/dist/backends/signoz-api.js +231 -33
- package/dist/backends/signoz-api.js.map +1 -1
- package/dist/backends/signoz-api.test.js +410 -63
- package/dist/backends/signoz-api.test.js.map +1 -1
- package/dist/lib/constants.d.ts +59 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +252 -6
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/constants.test.js +357 -21
- package/dist/lib/constants.test.js.map +1 -1
- package/dist/lib/edge-cases.test.d.ts +11 -0
- package/dist/lib/edge-cases.test.d.ts.map +1 -0
- package/dist/lib/edge-cases.test.js +634 -0
- package/dist/lib/edge-cases.test.js.map +1 -0
- package/dist/lib/error-sanitizer.d.ts +57 -0
- package/dist/lib/error-sanitizer.d.ts.map +1 -0
- package/dist/lib/error-sanitizer.js +207 -0
- package/dist/lib/error-sanitizer.js.map +1 -0
- package/dist/lib/error-sanitizer.test.d.ts +8 -0
- package/dist/lib/error-sanitizer.test.d.ts.map +1 -0
- package/dist/lib/error-sanitizer.test.js +369 -0
- package/dist/lib/error-sanitizer.test.js.map +1 -0
- package/dist/lib/file-utils.d.ts +134 -0
- package/dist/lib/file-utils.d.ts.map +1 -1
- package/dist/lib/file-utils.js +395 -9
- package/dist/lib/file-utils.js.map +1 -1
- package/dist/lib/file-utils.test.js +444 -3
- package/dist/lib/file-utils.test.js.map +1 -1
- package/dist/lib/indexer.d.ts +9 -1
- package/dist/lib/indexer.d.ts.map +1 -1
- package/dist/lib/indexer.js +51 -2
- package/dist/lib/indexer.js.map +1 -1
- package/dist/lib/indexer.test.js +138 -20
- package/dist/lib/indexer.test.js.map +1 -1
- package/dist/lib/input-validator.d.ts +103 -0
- package/dist/lib/input-validator.d.ts.map +1 -0
- package/dist/lib/input-validator.js +250 -0
- package/dist/lib/input-validator.js.map +1 -0
- package/dist/lib/input-validator.test.d.ts +2 -0
- package/dist/lib/input-validator.test.d.ts.map +1 -0
- package/dist/lib/input-validator.test.js +287 -0
- package/dist/lib/input-validator.test.js.map +1 -0
- package/dist/lib/query-sanitizer.d.ts +143 -0
- package/dist/lib/query-sanitizer.d.ts.map +1 -0
- package/dist/lib/query-sanitizer.js +261 -0
- package/dist/lib/query-sanitizer.js.map +1 -0
- package/dist/lib/query-sanitizer.test.d.ts +5 -0
- package/dist/lib/query-sanitizer.test.d.ts.map +1 -0
- package/dist/lib/query-sanitizer.test.js +400 -0
- package/dist/lib/query-sanitizer.test.js.map +1 -0
- package/dist/lib/server-utils.d.ts +80 -0
- package/dist/lib/server-utils.d.ts.map +1 -0
- package/dist/lib/server-utils.js +141 -0
- package/dist/lib/server-utils.js.map +1 -0
- package/dist/lib/shared-schemas.d.ts +59 -0
- package/dist/lib/shared-schemas.d.ts.map +1 -0
- package/dist/lib/shared-schemas.js +58 -0
- package/dist/lib/shared-schemas.js.map +1 -0
- package/dist/lib/shared-schemas.test.d.ts +5 -0
- package/dist/lib/shared-schemas.test.d.ts.map +1 -0
- package/dist/lib/shared-schemas.test.js +106 -0
- package/dist/lib/shared-schemas.test.js.map +1 -0
- package/dist/lib/toon-encoder.d.ts +21 -0
- package/dist/lib/toon-encoder.d.ts.map +1 -0
- package/dist/lib/toon-encoder.js +46 -0
- package/dist/lib/toon-encoder.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +155 -81
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +363 -0
- package/dist/server.test.js.map +1 -1
- package/dist/test-helpers/env-utils.d.ts +65 -0
- package/dist/test-helpers/env-utils.d.ts.map +1 -0
- package/dist/test-helpers/env-utils.js +94 -0
- package/dist/test-helpers/env-utils.js.map +1 -0
- package/dist/test-helpers/file-utils.d.ts +93 -0
- package/dist/test-helpers/file-utils.d.ts.map +1 -0
- package/dist/test-helpers/file-utils.js +206 -0
- package/dist/test-helpers/file-utils.js.map +1 -0
- package/dist/test-helpers/index.d.ts +10 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +28 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/mock-backends.d.ts +139 -0
- package/dist/test-helpers/mock-backends.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.js +227 -0
- package/dist/test-helpers/mock-backends.js.map +1 -0
- package/dist/test-helpers/mock-backends.test.d.ts +5 -0
- package/dist/test-helpers/mock-backends.test.d.ts.map +1 -0
- package/dist/test-helpers/mock-backends.test.js +368 -0
- package/dist/test-helpers/mock-backends.test.js.map +1 -0
- package/dist/test-helpers/schema-validators.d.ts +32 -0
- package/dist/test-helpers/schema-validators.d.ts.map +1 -0
- package/dist/test-helpers/schema-validators.js +125 -0
- package/dist/test-helpers/schema-validators.js.map +1 -0
- package/dist/test-helpers/test-data-builders.d.ts +223 -0
- package/dist/test-helpers/test-data-builders.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.js +288 -0
- package/dist/test-helpers/test-data-builders.js.map +1 -0
- package/dist/test-helpers/test-data-builders.test.d.ts +2 -0
- package/dist/test-helpers/test-data-builders.test.d.ts.map +1 -0
- package/dist/test-helpers/test-data-builders.test.js +306 -0
- package/dist/test-helpers/test-data-builders.test.js.map +1 -0
- package/dist/test-helpers/tool-validators.d.ts +28 -0
- package/dist/test-helpers/tool-validators.d.ts.map +1 -0
- package/dist/test-helpers/tool-validators.js +56 -0
- package/dist/test-helpers/tool-validators.js.map +1 -0
- package/dist/tools/context-stats.d.ts +1 -0
- package/dist/tools/context-stats.d.ts.map +1 -1
- package/dist/tools/context-stats.js +9 -5
- package/dist/tools/context-stats.js.map +1 -1
- package/dist/tools/context-stats.test.js +24 -10
- package/dist/tools/context-stats.test.js.map +1 -1
- package/dist/tools/get-trace-url.js +2 -2
- package/dist/tools/get-trace-url.js.map +1 -1
- package/dist/tools/health-check.js +2 -2
- package/dist/tools/health-check.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/query-evaluations.d.ts +186 -0
- package/dist/tools/query-evaluations.d.ts.map +1 -0
- package/dist/tools/query-evaluations.js +351 -0
- package/dist/tools/query-evaluations.js.map +1 -0
- package/dist/tools/query-evaluations.test.d.ts +5 -0
- package/dist/tools/query-evaluations.test.d.ts.map +1 -0
- package/dist/tools/query-evaluations.test.js +733 -0
- package/dist/tools/query-evaluations.test.js.map +1 -0
- package/dist/tools/query-llm-events.d.ts +24 -18
- package/dist/tools/query-llm-events.d.ts.map +1 -1
- package/dist/tools/query-llm-events.js +103 -60
- package/dist/tools/query-llm-events.js.map +1 -1
- package/dist/tools/query-llm-events.test.js +271 -9
- package/dist/tools/query-llm-events.test.js.map +1 -1
- package/dist/tools/query-logs.d.ts +28 -20
- package/dist/tools/query-logs.d.ts.map +1 -1
- package/dist/tools/query-logs.js +85 -61
- package/dist/tools/query-logs.js.map +1 -1
- package/dist/tools/query-logs.test.js +74 -145
- package/dist/tools/query-logs.test.js.map +1 -1
- package/dist/tools/query-metrics.d.ts +20 -20
- package/dist/tools/query-metrics.d.ts.map +1 -1
- package/dist/tools/query-metrics.js +109 -61
- package/dist/tools/query-metrics.js.map +1 -1
- package/dist/tools/query-metrics.test.js +26 -61
- package/dist/tools/query-metrics.test.js.map +1 -1
- package/dist/tools/query-traces.d.ts +24 -22
- package/dist/tools/query-traces.d.ts.map +1 -1
- package/dist/tools/query-traces.js +95 -70
- package/dist/tools/query-traces.js.map +1 -1
- package/dist/tools/query-traces.test.js +294 -90
- package/dist/tools/query-traces.test.js.map +1 -1
- package/dist/tools/setup-claudeignore.js +7 -7
- package/dist/tools/setup-claudeignore.js.map +1 -1
- package/dist/tools/setup-claudeignore.test.js +4 -25
- package/dist/tools/setup-claudeignore.test.js.map +1 -1
- package/package.json +3 -4
|
@@ -4,45 +4,29 @@
|
|
|
4
4
|
import { describe, it, beforeEach, afterEach } from 'node:test';
|
|
5
5
|
import * as assert from 'node:assert';
|
|
6
6
|
import { queryTraces, queryTracesSchema, queryTracesTool } from './query-traces.js';
|
|
7
|
+
import { getMockOptions as getMockBackendOptions } from '../test-helpers/mock-backends.js';
|
|
8
|
+
import { validateBackendSchema, validateLimitSchema, validateDateRangeSchema } from '../test-helpers/schema-validators.js';
|
|
9
|
+
import { validateToolDefinition } from '../test-helpers/tool-validators.js';
|
|
10
|
+
import { captureEnv, restoreEnv, clearSigNozEnv } from '../test-helpers/env-utils.js';
|
|
7
11
|
// Mock data storage
|
|
8
|
-
|
|
9
|
-
let mockSignozTraces = [];
|
|
10
|
-
// Create mock backends using the TelemetryBackend interface
|
|
11
|
-
function createMockLocalBackend() {
|
|
12
|
-
return {
|
|
13
|
-
name: 'mock-local',
|
|
14
|
-
queryTraces: async () => mockLocalTraces,
|
|
15
|
-
queryLogs: async () => [],
|
|
16
|
-
queryMetrics: async () => [],
|
|
17
|
-
healthCheck: async () => ({ status: 'ok' }),
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function createMockSignozBackend() {
|
|
21
|
-
return {
|
|
22
|
-
name: 'mock-signoz',
|
|
23
|
-
queryTraces: async () => mockSignozTraces,
|
|
24
|
-
queryLogs: async () => [],
|
|
25
|
-
queryMetrics: async () => [],
|
|
26
|
-
healthCheck: async () => ({ status: 'ok' }),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
12
|
+
const mockStore = { local: [], signoz: [] };
|
|
29
13
|
// Options with mock backends
|
|
30
14
|
function getMockOptions() {
|
|
31
|
-
return
|
|
32
|
-
localBackend: createMockLocalBackend(),
|
|
33
|
-
signozBackend: createMockSignozBackend(),
|
|
34
|
-
};
|
|
15
|
+
return getMockBackendOptions(mockStore, 'traces');
|
|
35
16
|
}
|
|
36
|
-
//
|
|
37
|
-
const originalEnv =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
// Capture original env values
|
|
18
|
+
const originalEnv = captureEnv();
|
|
19
|
+
// Pure schema validation (no setup/teardown needed)
|
|
20
|
+
describe('queryTracesSchema (pure validation)', () => {
|
|
21
|
+
validateBackendSchema(queryTracesSchema, 'queryTracesSchema');
|
|
22
|
+
validateLimitSchema(queryTracesSchema, 'queryTracesSchema', 50);
|
|
23
|
+
validateDateRangeSchema(queryTracesSchema, 'queryTracesSchema');
|
|
24
|
+
});
|
|
41
25
|
describe('queryTraces', () => {
|
|
42
26
|
beforeEach(() => {
|
|
43
27
|
// Reset mock data before each test
|
|
44
|
-
|
|
45
|
-
|
|
28
|
+
mockStore.local = [];
|
|
29
|
+
mockStore.signoz = [];
|
|
46
30
|
});
|
|
47
31
|
describe('schema validation', () => {
|
|
48
32
|
it('should validate valid input', () => {
|
|
@@ -54,27 +38,6 @@ describe('queryTraces', () => {
|
|
|
54
38
|
const result = queryTracesSchema.safeParse(input);
|
|
55
39
|
assert.strictEqual(result.success, true);
|
|
56
40
|
});
|
|
57
|
-
it('should use auto backend by default', () => {
|
|
58
|
-
const input = { limit: 10 };
|
|
59
|
-
const result = queryTracesSchema.safeParse(input);
|
|
60
|
-
assert.strictEqual(result.success, true);
|
|
61
|
-
if (result.success) {
|
|
62
|
-
assert.strictEqual(result.data.backend, 'auto');
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
it('should use 50 as default limit', () => {
|
|
66
|
-
const input = { backend: 'local' };
|
|
67
|
-
const result = queryTracesSchema.safeParse(input);
|
|
68
|
-
assert.strictEqual(result.success, true);
|
|
69
|
-
if (result.success) {
|
|
70
|
-
assert.strictEqual(result.data.limit, 50);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
it('should reject invalid backend', () => {
|
|
74
|
-
const input = { backend: 'invalid' };
|
|
75
|
-
const result = queryTracesSchema.safeParse(input);
|
|
76
|
-
assert.strictEqual(result.success, false);
|
|
77
|
-
});
|
|
78
41
|
it('should accept all optional filter parameters', () => {
|
|
79
42
|
const input = {
|
|
80
43
|
backend: 'signoz',
|
|
@@ -90,6 +53,49 @@ describe('queryTraces', () => {
|
|
|
90
53
|
const result = queryTracesSchema.safeParse(input);
|
|
91
54
|
assert.strictEqual(result.success, true);
|
|
92
55
|
});
|
|
56
|
+
it('should reject serviceName exceeding 256 characters', () => {
|
|
57
|
+
const input = {
|
|
58
|
+
backend: 'local',
|
|
59
|
+
serviceName: 'a'.repeat(257),
|
|
60
|
+
};
|
|
61
|
+
const result = queryTracesSchema.safeParse(input);
|
|
62
|
+
assert.strictEqual(result.success, false);
|
|
63
|
+
});
|
|
64
|
+
it('should reject spanName exceeding 512 characters', () => {
|
|
65
|
+
const input = {
|
|
66
|
+
backend: 'local',
|
|
67
|
+
spanName: 'a'.repeat(513),
|
|
68
|
+
};
|
|
69
|
+
const result = queryTracesSchema.safeParse(input);
|
|
70
|
+
assert.strictEqual(result.success, false);
|
|
71
|
+
});
|
|
72
|
+
it('should reject agentId exceeding 128 characters', () => {
|
|
73
|
+
const input = {
|
|
74
|
+
backend: 'local',
|
|
75
|
+
agentId: 'a'.repeat(129),
|
|
76
|
+
};
|
|
77
|
+
const result = queryTracesSchema.safeParse(input);
|
|
78
|
+
assert.strictEqual(result.success, false);
|
|
79
|
+
});
|
|
80
|
+
it('should reject toolName exceeding 256 characters', () => {
|
|
81
|
+
const input = {
|
|
82
|
+
backend: 'local',
|
|
83
|
+
toolName: 'a'.repeat(257),
|
|
84
|
+
};
|
|
85
|
+
const result = queryTracesSchema.safeParse(input);
|
|
86
|
+
assert.strictEqual(result.success, false);
|
|
87
|
+
});
|
|
88
|
+
it('should accept strings at maximum allowed length', () => {
|
|
89
|
+
const input = {
|
|
90
|
+
backend: 'local',
|
|
91
|
+
serviceName: 'a'.repeat(256),
|
|
92
|
+
spanName: 'a'.repeat(512),
|
|
93
|
+
agentId: 'a'.repeat(128),
|
|
94
|
+
toolName: 'a'.repeat(256),
|
|
95
|
+
};
|
|
96
|
+
const result = queryTracesSchema.safeParse(input);
|
|
97
|
+
assert.strictEqual(result.success, true);
|
|
98
|
+
});
|
|
93
99
|
});
|
|
94
100
|
describe('local backend', () => {
|
|
95
101
|
it('should query local backend when backend=local', async () => {
|
|
@@ -257,14 +263,12 @@ describe('queryTraces', () => {
|
|
|
257
263
|
});
|
|
258
264
|
describe('auto backend selection', () => {
|
|
259
265
|
beforeEach(() => {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
process.env.SIGNOZ_API_KEY = '';
|
|
266
|
+
mockStore.local = [];
|
|
267
|
+
mockStore.signoz = [];
|
|
268
|
+
clearSigNozEnv();
|
|
264
269
|
});
|
|
265
270
|
afterEach(() => {
|
|
266
|
-
|
|
267
|
-
process.env.SIGNOZ_API_KEY = originalEnv.SIGNOZ_API_KEY;
|
|
271
|
+
restoreEnv(originalEnv);
|
|
268
272
|
});
|
|
269
273
|
it('should accept auto backend schema', async () => {
|
|
270
274
|
const input = {
|
|
@@ -286,7 +290,7 @@ describe('queryTraces', () => {
|
|
|
286
290
|
}
|
|
287
291
|
});
|
|
288
292
|
it('should use local backend when signoz not configured', async () => {
|
|
289
|
-
|
|
293
|
+
mockStore.local = [
|
|
290
294
|
{
|
|
291
295
|
traceId: 'trace-local-001',
|
|
292
296
|
spanId: 'span-001',
|
|
@@ -302,7 +306,7 @@ describe('queryTraces', () => {
|
|
|
302
306
|
assert.strictEqual(result.count, 1);
|
|
303
307
|
});
|
|
304
308
|
it('should return local traces when available', async () => {
|
|
305
|
-
|
|
309
|
+
mockStore.local = [
|
|
306
310
|
{
|
|
307
311
|
traceId: 'trace-local-002',
|
|
308
312
|
spanId: 'span-002',
|
|
@@ -319,7 +323,7 @@ describe('queryTraces', () => {
|
|
|
319
323
|
assert.strictEqual(result.traces[0].traceId, 'trace-local-002');
|
|
320
324
|
});
|
|
321
325
|
it('should return empty result with local backend when no traces found', async () => {
|
|
322
|
-
|
|
326
|
+
mockStore.local = [];
|
|
323
327
|
const result = await queryTraces({ backend: 'auto' }, getMockOptions());
|
|
324
328
|
assert.ok(result.backend);
|
|
325
329
|
assert.strictEqual(result.count, 0);
|
|
@@ -524,6 +528,228 @@ describe('queryTraces', () => {
|
|
|
524
528
|
assert.strictEqual(result.data.minDurationMs, 100);
|
|
525
529
|
}
|
|
526
530
|
});
|
|
531
|
+
// Security validation tests for attributeFilter
|
|
532
|
+
describe('attributeFilter security validation', () => {
|
|
533
|
+
it('should reject SQL injection in attribute key', () => {
|
|
534
|
+
const input = {
|
|
535
|
+
backend: 'local',
|
|
536
|
+
attributeFilter: { "'; DROP TABLE traces; --": 'value' },
|
|
537
|
+
limit: 50,
|
|
538
|
+
};
|
|
539
|
+
const result = queryTracesSchema.safeParse(input);
|
|
540
|
+
assert.strictEqual(result.success, false);
|
|
541
|
+
if (!result.success) {
|
|
542
|
+
assert.ok(result.error.message.includes('Invalid attribute name'));
|
|
543
|
+
}
|
|
544
|
+
});
|
|
545
|
+
it('should reject attribute key with spaces', () => {
|
|
546
|
+
const input = {
|
|
547
|
+
backend: 'local',
|
|
548
|
+
attributeFilter: { 'attribute with spaces': 'value' },
|
|
549
|
+
limit: 50,
|
|
550
|
+
};
|
|
551
|
+
const result = queryTracesSchema.safeParse(input);
|
|
552
|
+
assert.strictEqual(result.success, false);
|
|
553
|
+
});
|
|
554
|
+
it('should reject attribute key with special characters', () => {
|
|
555
|
+
const specialChars = ['@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '+', '=', '[', ']', '{', '}', '|', '\\', '/', ':', ';', '"', "'", '<', '>', ',', '?', '!', '~', '`'];
|
|
556
|
+
for (const char of specialChars) {
|
|
557
|
+
const input = {
|
|
558
|
+
backend: 'local',
|
|
559
|
+
attributeFilter: { [`attr${char}name`]: 'value' },
|
|
560
|
+
limit: 50,
|
|
561
|
+
};
|
|
562
|
+
const result = queryTracesSchema.safeParse(input);
|
|
563
|
+
assert.strictEqual(result.success, false, `Should reject key with '${char}'`);
|
|
564
|
+
}
|
|
565
|
+
});
|
|
566
|
+
it('should accept valid attribute key patterns', () => {
|
|
567
|
+
const validKeys = [
|
|
568
|
+
'hook.name',
|
|
569
|
+
'service_name',
|
|
570
|
+
'http.status_code',
|
|
571
|
+
'gen_ai.agent.id',
|
|
572
|
+
'mcp.server.name',
|
|
573
|
+
'attribute123',
|
|
574
|
+
'a.b.c.d.e',
|
|
575
|
+
'UPPER_CASE',
|
|
576
|
+
'mixedCase123',
|
|
577
|
+
];
|
|
578
|
+
for (const key of validKeys) {
|
|
579
|
+
const input = {
|
|
580
|
+
backend: 'local',
|
|
581
|
+
attributeFilter: { [key]: 'value' },
|
|
582
|
+
limit: 50,
|
|
583
|
+
};
|
|
584
|
+
const result = queryTracesSchema.safeParse(input);
|
|
585
|
+
assert.strictEqual(result.success, true, `Should accept key '${key}'`);
|
|
586
|
+
}
|
|
587
|
+
});
|
|
588
|
+
it('should reject attribute key exceeding 100 characters', () => {
|
|
589
|
+
const longKey = 'a'.repeat(101);
|
|
590
|
+
const input = {
|
|
591
|
+
backend: 'local',
|
|
592
|
+
attributeFilter: { [longKey]: 'value' },
|
|
593
|
+
limit: 50,
|
|
594
|
+
};
|
|
595
|
+
const result = queryTracesSchema.safeParse(input);
|
|
596
|
+
assert.strictEqual(result.success, false);
|
|
597
|
+
});
|
|
598
|
+
it('should accept attribute key at exactly 100 characters', () => {
|
|
599
|
+
const maxKey = 'a'.repeat(100);
|
|
600
|
+
const input = {
|
|
601
|
+
backend: 'local',
|
|
602
|
+
attributeFilter: { [maxKey]: 'value' },
|
|
603
|
+
limit: 50,
|
|
604
|
+
};
|
|
605
|
+
const result = queryTracesSchema.safeParse(input);
|
|
606
|
+
assert.strictEqual(result.success, true);
|
|
607
|
+
});
|
|
608
|
+
it('should reject string value exceeding 500 characters', () => {
|
|
609
|
+
const longValue = 'a'.repeat(501);
|
|
610
|
+
const input = {
|
|
611
|
+
backend: 'local',
|
|
612
|
+
attributeFilter: { 'valid.key': longValue },
|
|
613
|
+
limit: 50,
|
|
614
|
+
};
|
|
615
|
+
const result = queryTracesSchema.safeParse(input);
|
|
616
|
+
assert.strictEqual(result.success, false);
|
|
617
|
+
});
|
|
618
|
+
it('should accept string value at exactly 500 characters', () => {
|
|
619
|
+
const maxValue = 'a'.repeat(500);
|
|
620
|
+
const input = {
|
|
621
|
+
backend: 'local',
|
|
622
|
+
attributeFilter: { 'valid.key': maxValue },
|
|
623
|
+
limit: 50,
|
|
624
|
+
};
|
|
625
|
+
const result = queryTracesSchema.safeParse(input);
|
|
626
|
+
assert.strictEqual(result.success, true);
|
|
627
|
+
});
|
|
628
|
+
it('should reject non-finite number values (Infinity)', () => {
|
|
629
|
+
const input = {
|
|
630
|
+
backend: 'local',
|
|
631
|
+
attributeFilter: { 'valid.key': Infinity },
|
|
632
|
+
limit: 50,
|
|
633
|
+
};
|
|
634
|
+
const result = queryTracesSchema.safeParse(input);
|
|
635
|
+
assert.strictEqual(result.success, false);
|
|
636
|
+
});
|
|
637
|
+
it('should reject non-finite number values (NaN)', () => {
|
|
638
|
+
const input = {
|
|
639
|
+
backend: 'local',
|
|
640
|
+
attributeFilter: { 'valid.key': NaN },
|
|
641
|
+
limit: 50,
|
|
642
|
+
};
|
|
643
|
+
const result = queryTracesSchema.safeParse(input);
|
|
644
|
+
assert.strictEqual(result.success, false);
|
|
645
|
+
});
|
|
646
|
+
it('should accept finite number values', () => {
|
|
647
|
+
const finiteNumbers = [0, 1, -1, 100, 1000000, 0.5, -0.5, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER];
|
|
648
|
+
for (const num of finiteNumbers) {
|
|
649
|
+
const input = {
|
|
650
|
+
backend: 'local',
|
|
651
|
+
attributeFilter: { 'valid.key': num },
|
|
652
|
+
limit: 50,
|
|
653
|
+
};
|
|
654
|
+
const result = queryTracesSchema.safeParse(input);
|
|
655
|
+
assert.strictEqual(result.success, true, `Should accept number ${num}`);
|
|
656
|
+
}
|
|
657
|
+
});
|
|
658
|
+
it('should reject more than 20 attribute filters', () => {
|
|
659
|
+
const manyFilters = {};
|
|
660
|
+
for (let i = 0; i < 21; i++) {
|
|
661
|
+
manyFilters[`attr${i}`] = `value${i}`;
|
|
662
|
+
}
|
|
663
|
+
const input = {
|
|
664
|
+
backend: 'local',
|
|
665
|
+
attributeFilter: manyFilters,
|
|
666
|
+
limit: 50,
|
|
667
|
+
};
|
|
668
|
+
const result = queryTracesSchema.safeParse(input);
|
|
669
|
+
assert.strictEqual(result.success, false);
|
|
670
|
+
if (!result.success) {
|
|
671
|
+
assert.ok(result.error.message.includes('Maximum 20 attribute filters allowed'));
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
it('should accept exactly 20 attribute filters', () => {
|
|
675
|
+
const filters = {};
|
|
676
|
+
for (let i = 0; i < 20; i++) {
|
|
677
|
+
filters[`attr${i}`] = `value${i}`;
|
|
678
|
+
}
|
|
679
|
+
const input = {
|
|
680
|
+
backend: 'local',
|
|
681
|
+
attributeFilter: filters,
|
|
682
|
+
limit: 50,
|
|
683
|
+
};
|
|
684
|
+
const result = queryTracesSchema.safeParse(input);
|
|
685
|
+
assert.strictEqual(result.success, true);
|
|
686
|
+
});
|
|
687
|
+
it('should reject SQL injection patterns in attribute values', () => {
|
|
688
|
+
// Note: String values are allowed to contain SQL-like content,
|
|
689
|
+
// but they are length-limited. The key restriction provides the primary protection.
|
|
690
|
+
// This test verifies that long injection attempts are rejected by length limit.
|
|
691
|
+
const longInjection = "'; DROP TABLE traces; --".repeat(30);
|
|
692
|
+
const input = {
|
|
693
|
+
backend: 'local',
|
|
694
|
+
attributeFilter: { 'valid.key': longInjection },
|
|
695
|
+
limit: 50,
|
|
696
|
+
};
|
|
697
|
+
const result = queryTracesSchema.safeParse(input);
|
|
698
|
+
assert.strictEqual(result.success, false);
|
|
699
|
+
});
|
|
700
|
+
it('should reject XSS patterns in attribute key', () => {
|
|
701
|
+
const xssPatterns = [
|
|
702
|
+
'<script>alert(1)</script>',
|
|
703
|
+
'key<img onerror=alert(1)>',
|
|
704
|
+
'key"onclick="alert(1)"',
|
|
705
|
+
];
|
|
706
|
+
for (const key of xssPatterns) {
|
|
707
|
+
const input = {
|
|
708
|
+
backend: 'local',
|
|
709
|
+
attributeFilter: { [key]: 'value' },
|
|
710
|
+
limit: 50,
|
|
711
|
+
};
|
|
712
|
+
const result = queryTracesSchema.safeParse(input);
|
|
713
|
+
assert.strictEqual(result.success, false, `Should reject XSS key: ${key}`);
|
|
714
|
+
}
|
|
715
|
+
});
|
|
716
|
+
it('should reject empty attribute key', () => {
|
|
717
|
+
const input = {
|
|
718
|
+
backend: 'local',
|
|
719
|
+
attributeFilter: { '': 'value' },
|
|
720
|
+
limit: 50,
|
|
721
|
+
};
|
|
722
|
+
const result = queryTracesSchema.safeParse(input);
|
|
723
|
+
assert.strictEqual(result.success, false);
|
|
724
|
+
});
|
|
725
|
+
it('should accept empty attributeFilter object', () => {
|
|
726
|
+
const input = {
|
|
727
|
+
backend: 'local',
|
|
728
|
+
attributeFilter: {},
|
|
729
|
+
limit: 50,
|
|
730
|
+
};
|
|
731
|
+
const result = queryTracesSchema.safeParse(input);
|
|
732
|
+
assert.strictEqual(result.success, true);
|
|
733
|
+
});
|
|
734
|
+
it('should reject attribute key with newlines', () => {
|
|
735
|
+
const input = {
|
|
736
|
+
backend: 'local',
|
|
737
|
+
attributeFilter: { 'key\nwith\nnewlines': 'value' },
|
|
738
|
+
limit: 50,
|
|
739
|
+
};
|
|
740
|
+
const result = queryTracesSchema.safeParse(input);
|
|
741
|
+
assert.strictEqual(result.success, false);
|
|
742
|
+
});
|
|
743
|
+
it('should reject attribute key with tabs', () => {
|
|
744
|
+
const input = {
|
|
745
|
+
backend: 'local',
|
|
746
|
+
attributeFilter: { 'key\twith\ttabs': 'value' },
|
|
747
|
+
limit: 50,
|
|
748
|
+
};
|
|
749
|
+
const result = queryTracesSchema.safeParse(input);
|
|
750
|
+
assert.strictEqual(result.success, false);
|
|
751
|
+
});
|
|
752
|
+
});
|
|
527
753
|
});
|
|
528
754
|
describe('combined filters', () => {
|
|
529
755
|
it('should accept multiple filters together', async () => {
|
|
@@ -577,30 +803,8 @@ describe('queryTraces', () => {
|
|
|
577
803
|
}
|
|
578
804
|
});
|
|
579
805
|
});
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
assert.strictEqual(queryTracesTool.name, 'obs_query_traces');
|
|
583
|
-
});
|
|
584
|
-
it('should have description', () => {
|
|
585
|
-
assert.ok(queryTracesTool.description);
|
|
586
|
-
assert.strictEqual(typeof queryTracesTool.description, 'string');
|
|
587
|
-
assert.ok(queryTracesTool.description.length > 0);
|
|
588
|
-
});
|
|
589
|
-
it('should have inputSchema', () => {
|
|
590
|
-
assert.ok(queryTracesTool.inputSchema);
|
|
591
|
-
assert.strictEqual(queryTracesTool.inputSchema, queryTracesSchema);
|
|
592
|
-
});
|
|
593
|
-
it('should have handler function', () => {
|
|
594
|
-
assert.ok(queryTracesTool.handler);
|
|
595
|
-
assert.strictEqual(typeof queryTracesTool.handler, 'function');
|
|
596
|
-
assert.strictEqual(queryTracesTool.handler, queryTraces);
|
|
597
|
-
});
|
|
598
|
-
it('should have description mentioning key features', () => {
|
|
599
|
-
const desc = queryTracesTool.description.toLowerCase();
|
|
600
|
-
assert.ok(desc.includes('trace'));
|
|
601
|
-
assert.ok(desc.includes('filter') || desc.includes('query'));
|
|
602
|
-
});
|
|
603
|
-
});
|
|
806
|
+
// Use shared tool definition validator
|
|
807
|
+
validateToolDefinition(queryTracesTool, 'obs_query_traces', queryTracesSchema, queryTraces, ['trace']);
|
|
604
808
|
describe('error handling', () => {
|
|
605
809
|
it('should accept negative limit (schema does not restrict)', () => {
|
|
606
810
|
const input = {
|
|
@@ -817,11 +1021,11 @@ describe('queryTraces', () => {
|
|
|
817
1021
|
});
|
|
818
1022
|
describe('signoz backend with traces', () => {
|
|
819
1023
|
beforeEach(() => {
|
|
820
|
-
|
|
821
|
-
|
|
1024
|
+
mockStore.local = [];
|
|
1025
|
+
mockStore.signoz = [];
|
|
822
1026
|
});
|
|
823
1027
|
it('should return traces from signoz backend when backend=signoz', async () => {
|
|
824
|
-
|
|
1028
|
+
mockStore.signoz = [
|
|
825
1029
|
{
|
|
826
1030
|
traceId: 'signoz-trace-001',
|
|
827
1031
|
spanId: 'signoz-span-001',
|
|
@@ -854,7 +1058,7 @@ describe('queryTraces', () => {
|
|
|
854
1058
|
assert.deepStrictEqual(result.traces[0].attributes, { 'service.name': 'api-service' });
|
|
855
1059
|
});
|
|
856
1060
|
it('should return empty traces from signoz backend', async () => {
|
|
857
|
-
|
|
1061
|
+
mockStore.signoz = [];
|
|
858
1062
|
const result = await queryTraces({ backend: 'signoz' }, getMockOptions());
|
|
859
1063
|
assert.strictEqual(result.backend, 'signoz');
|
|
860
1064
|
assert.strictEqual(result.count, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-traces.test.js","sourceRoot":"","sources":["../../src/tools/query-traces.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query-traces.test.js","sourceRoot":"","sources":["../../src/tools/query-traces.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,12 +21,12 @@ const LOCAL_TELEMETRY_PATHS = [
|
|
|
21
21
|
'.telemetry/',
|
|
22
22
|
];
|
|
23
23
|
export const setupClaudeignoreSchema = z.object({
|
|
24
|
-
path: z.string().optional().describe('Custom path
|
|
25
|
-
entry: z.string().optional().describe('Single entry to add
|
|
26
|
-
entries: z.array(z.string()).optional().describe('Multiple entries to add
|
|
27
|
-
includeDefaults: z.boolean().default(true).describe('
|
|
28
|
-
includeLocal: z.boolean().default(true).describe('
|
|
29
|
-
dryRun: z.boolean().default(false).describe('Preview
|
|
24
|
+
path: z.string().optional().describe('Custom path (default: auto-detect)'),
|
|
25
|
+
entry: z.string().optional().describe('Single entry to add'),
|
|
26
|
+
entries: z.array(z.string()).optional().describe('Multiple entries to add'),
|
|
27
|
+
includeDefaults: z.boolean().default(true).describe('Add default entries'),
|
|
28
|
+
includeLocal: z.boolean().default(true).describe('Update local .claudeignore'),
|
|
29
|
+
dryRun: z.boolean().default(false).describe('Preview only'),
|
|
30
30
|
});
|
|
31
31
|
/**
|
|
32
32
|
* Update or create a single .claudeignore file
|
|
@@ -225,7 +225,7 @@ export async function setupClaudeignore(rawInput) {
|
|
|
225
225
|
}
|
|
226
226
|
export const setupClaudeignoreTool = {
|
|
227
227
|
name: 'obs_setup_claudeignore',
|
|
228
|
-
description: 'Add entries to .claudeignore
|
|
228
|
+
description: 'Add entries to .claudeignore (global and local). Defaults: telemetry/, tests, coverage/.',
|
|
229
229
|
inputSchema: setupClaudeignoreSchema,
|
|
230
230
|
handler: setupClaudeignore,
|
|
231
231
|
};
|