mongodb-mcp-server 0.1.2 → 0.1.3
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/.github/pull_request_template.md +5 -0
- package/.github/workflows/code_health.yaml +3 -3
- package/.github/workflows/docker.yaml +1 -1
- package/.smithery/smithery.yaml +10 -0
- package/README.md +15 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/errors.js +1 -0
- package/dist/errors.js.map +1 -1
- package/dist/helpers/indexCheck.js +63 -0
- package/dist/helpers/indexCheck.js.map +1 -0
- package/dist/logger.js +0 -1
- package/dist/logger.js.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/telemetry/telemetry.js +78 -115
- package/dist/telemetry/telemetry.js.map +1 -1
- package/dist/tools/mongodb/delete/deleteMany.js +18 -0
- package/dist/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/tools/mongodb/metadata/explain.js +1 -1
- package/dist/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/tools/mongodb/mongodbTool.js +10 -0
- package/dist/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/tools/mongodb/read/aggregate.js +9 -0
- package/dist/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/tools/mongodb/read/count.js +13 -0
- package/dist/tools/mongodb/read/count.js.map +1 -1
- package/dist/tools/mongodb/read/find.js +7 -0
- package/dist/tools/mongodb/read/find.js.map +1 -1
- package/dist/tools/mongodb/update/updateMany.js +20 -0
- package/dist/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/tools/tool.js +4 -4
- package/dist/tools/tool.js.map +1 -1
- package/package.json +2 -2
- package/src/config.ts +2 -0
- package/src/errors.ts +1 -0
- package/src/helpers/indexCheck.ts +83 -0
- package/src/logger.ts +0 -1
- package/src/server.ts +1 -1
- package/src/telemetry/telemetry.ts +98 -150
- package/src/telemetry/types.ts +0 -1
- package/src/tools/mongodb/delete/deleteMany.ts +20 -0
- package/src/tools/mongodb/metadata/explain.ts +1 -1
- package/src/tools/mongodb/mongodbTool.ts +10 -0
- package/src/tools/mongodb/read/aggregate.ts +11 -0
- package/src/tools/mongodb/read/count.ts +15 -0
- package/src/tools/mongodb/read/find.ts +9 -0
- package/src/tools/mongodb/update/updateMany.ts +22 -0
- package/src/tools/tool.ts +5 -5
- package/tests/integration/indexCheck.test.ts +463 -0
- package/tests/integration/server.test.ts +5 -4
- package/tests/integration/telemetry.test.ts +28 -0
- package/tests/integration/tools/mongodb/mongodbHelpers.ts +1 -0
- package/tests/unit/indexCheck.test.ts +149 -0
- package/tests/unit/telemetry.test.ts +58 -106
|
@@ -11,7 +11,7 @@ permissions: {}
|
|
|
11
11
|
jobs:
|
|
12
12
|
run-tests:
|
|
13
13
|
name: Run MongoDB tests
|
|
14
|
-
if: github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository
|
|
14
|
+
if: github.event_name == 'push' || (github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository)
|
|
15
15
|
strategy:
|
|
16
16
|
matrix:
|
|
17
17
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
|
|
39
39
|
run-atlas-tests:
|
|
40
40
|
name: Run Atlas tests
|
|
41
|
-
if: github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository
|
|
41
|
+
if: github.event_name == 'push' || (github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository)
|
|
42
42
|
runs-on: ubuntu-latest
|
|
43
43
|
steps:
|
|
44
44
|
- uses: GitHubSecurityLab/actions-permissions/monitor@v1
|
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
|
|
65
65
|
coverage:
|
|
66
66
|
name: Report Coverage
|
|
67
|
-
if: always() && github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository
|
|
67
|
+
if: always() && (github.event_name == 'push' || (github.event.pull_request.user.login != 'dependabot[bot]' && github.event.pull_request.head.repo.full_name == github.repository))
|
|
68
68
|
runs-on: ubuntu-latest
|
|
69
69
|
needs: [run-tests, run-atlas-tests]
|
|
70
70
|
steps:
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
- name: Check out code
|
|
17
17
|
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
|
18
18
|
- name: Set up Docker Buildx
|
|
19
|
-
uses: docker/setup-buildx-action@
|
|
19
|
+
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
|
|
20
20
|
- name: Login to Docker Hub
|
|
21
21
|
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
|
|
22
22
|
with:
|
package/.smithery/smithery.yaml
CHANGED
|
@@ -24,11 +24,17 @@ startCommand:
|
|
|
24
24
|
title: Read-only
|
|
25
25
|
description: When set to true, only allows read and metadata operation types, disabling create/update/delete operations.
|
|
26
26
|
default: false
|
|
27
|
+
indexCheck:
|
|
28
|
+
type: boolean
|
|
29
|
+
title: Index Check
|
|
30
|
+
description: When set to true, enforces that query operations must use an index, rejecting queries that would perform a collection scan.
|
|
31
|
+
default: false
|
|
27
32
|
exampleConfig:
|
|
28
33
|
atlasClientId: YOUR_ATLAS_CLIENT_ID
|
|
29
34
|
atlasClientSecret: YOUR_ATLAS_CLIENT_SECRET
|
|
30
35
|
connectionString: mongodb+srv://USERNAME:PASSWORD@YOUR_CLUSTER.mongodb.net
|
|
31
36
|
readOnly: true
|
|
37
|
+
indexCheck: false
|
|
32
38
|
|
|
33
39
|
commandFunction:
|
|
34
40
|
# A function that produces the CLI command to start the MCP on stdio.
|
|
@@ -54,6 +60,10 @@ startCommand:
|
|
|
54
60
|
args.push('--connectionString');
|
|
55
61
|
args.push(config.connectionString);
|
|
56
62
|
}
|
|
63
|
+
|
|
64
|
+
if (config.indexCheck) {
|
|
65
|
+
args.push('--indexCheck');
|
|
66
|
+
}
|
|
57
67
|
}
|
|
58
68
|
|
|
59
69
|
return {
|
package/README.md
CHANGED
|
@@ -267,6 +267,7 @@ The MongoDB MCP Server can be configured using multiple methods, with the follow
|
|
|
267
267
|
| `logPath` | Folder to store logs. |
|
|
268
268
|
| `disabledTools` | An array of tool names, operation types, and/or categories of tools that will be disabled. |
|
|
269
269
|
| `readOnly` | When set to true, only allows read and metadata operation types, disabling create/update/delete operations. |
|
|
270
|
+
| `indexCheck` | When set to true, enforces that query operations must use an index, rejecting queries that perform a collection scan. |
|
|
270
271
|
| `telemetry` | When set to disabled, disables telemetry collection. |
|
|
271
272
|
|
|
272
273
|
#### Log Path
|
|
@@ -312,6 +313,19 @@ You can enable read-only mode using:
|
|
|
312
313
|
|
|
313
314
|
When read-only mode is active, you'll see a message in the server logs indicating which tools were prevented from registering due to this restriction.
|
|
314
315
|
|
|
316
|
+
#### Index Check Mode
|
|
317
|
+
|
|
318
|
+
The `indexCheck` configuration option allows you to enforce that query operations must use an index. When enabled, queries that perform a collection scan will be rejected to ensure better performance.
|
|
319
|
+
|
|
320
|
+
This is useful for scenarios where you want to ensure that database queries are optimized.
|
|
321
|
+
|
|
322
|
+
You can enable index check mode using:
|
|
323
|
+
|
|
324
|
+
- **Environment variable**: `export MDB_MCP_INDEX_CHECK=true`
|
|
325
|
+
- **Command-line argument**: `--indexCheck`
|
|
326
|
+
|
|
327
|
+
When index check mode is active, you'll see an error message if a query is rejected due to not using an index.
|
|
328
|
+
|
|
315
329
|
#### Telemetry
|
|
316
330
|
|
|
317
331
|
The `telemetry` configuration option allows you to disable telemetry collection. When enabled, the MCP server will collect usage data and send it to MongoDB.
|
|
@@ -430,7 +444,7 @@ export MDB_MCP_LOG_PATH="/path/to/logs"
|
|
|
430
444
|
Pass configuration options as command-line arguments when starting the server:
|
|
431
445
|
|
|
432
446
|
```shell
|
|
433
|
-
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --logPath=/path/to/logs
|
|
447
|
+
npx -y mongodb-mcp-server --apiClientId="your-atlas-service-accounts-client-id" --apiClientSecret="your-atlas-service-accounts-client-secret" --connectionString="mongodb+srv://username:password@cluster.mongodb.net/myDatabase" --logPath=/path/to/logs --readOnly --indexCheck
|
|
434
448
|
```
|
|
435
449
|
|
|
436
450
|
#### MCP configuration file examples
|
package/dist/config.js
CHANGED
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -2,6 +2,7 @@ export var ErrorCodes;
|
|
|
2
2
|
(function (ErrorCodes) {
|
|
3
3
|
ErrorCodes[ErrorCodes["NotConnectedToMongoDB"] = 1000000] = "NotConnectedToMongoDB";
|
|
4
4
|
ErrorCodes[ErrorCodes["MisconfiguredConnectionString"] = 1000001] = "MisconfiguredConnectionString";
|
|
5
|
+
ErrorCodes[ErrorCodes["ForbiddenCollscan"] = 1000002] = "ForbiddenCollscan";
|
|
5
6
|
})(ErrorCodes || (ErrorCodes = {}));
|
|
6
7
|
export class MongoDBError extends Error {
|
|
7
8
|
constructor(code, message) {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,mFAAiC,CAAA;IACjC,mGAAyC,CAAA;IACzC,2EAA6B,CAAA;AACjC,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACnC,YACW,IAAgB,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAY;IAI3B,CAAC;CACJ"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { ErrorCodes, MongoDBError } from "../errors.js";
|
|
2
|
+
/**
|
|
3
|
+
* Check if the query plan uses an index
|
|
4
|
+
* @param explainResult The result of the explain query
|
|
5
|
+
* @returns true if an index is used, false if it's a full collection scan
|
|
6
|
+
*/
|
|
7
|
+
export function usesIndex(explainResult) {
|
|
8
|
+
const queryPlanner = explainResult?.queryPlanner;
|
|
9
|
+
const winningPlan = queryPlanner?.winningPlan;
|
|
10
|
+
const stage = winningPlan?.stage;
|
|
11
|
+
const inputStage = winningPlan?.inputStage;
|
|
12
|
+
// Check for index scan stages (including MongoDB 8.0+ stages)
|
|
13
|
+
const indexScanStages = [
|
|
14
|
+
"IXSCAN",
|
|
15
|
+
"COUNT_SCAN",
|
|
16
|
+
"EXPRESS_IXSCAN",
|
|
17
|
+
"EXPRESS_CLUSTERED_IXSCAN",
|
|
18
|
+
"EXPRESS_UPDATE",
|
|
19
|
+
"EXPRESS_DELETE",
|
|
20
|
+
"IDHACK",
|
|
21
|
+
];
|
|
22
|
+
if (stage && indexScanStages.includes(stage)) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (inputStage && inputStage.stage && indexScanStages.includes(inputStage.stage)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
// Recursively check deeper stages
|
|
29
|
+
if (inputStage && inputStage.inputStage) {
|
|
30
|
+
return usesIndex({ queryPlanner: { winningPlan: inputStage } });
|
|
31
|
+
}
|
|
32
|
+
if (stage === "COLLSCAN") {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Default to false (conservative approach)
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generate an error message for index check failure
|
|
40
|
+
*/
|
|
41
|
+
export function getIndexCheckErrorMessage(database, collection, operation) {
|
|
42
|
+
return `Index check failed: The ${operation} operation on "${database}.${collection}" performs a collection scan (COLLSCAN) instead of using an index. Consider adding an index for better performance. Use 'explain' tool for query plan analysis or 'collection-indexes' to view existing indexes. To disable this check, set MDB_MCP_INDEX_CHECK to false.`;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Generic function to perform index usage check
|
|
46
|
+
*/
|
|
47
|
+
export async function checkIndexUsage(provider, database, collection, operation, explainCallback) {
|
|
48
|
+
try {
|
|
49
|
+
const explainResult = await explainCallback();
|
|
50
|
+
if (!usesIndex(explainResult)) {
|
|
51
|
+
throw new MongoDBError(ErrorCodes.ForbiddenCollscan, getIndexCheckErrorMessage(database, collection, operation));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (error instanceof MongoDBError && error.code === ErrorCodes.ForbiddenCollscan) {
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
// If explain itself fails, log but do not prevent query execution
|
|
59
|
+
// This avoids blocking normal queries in special cases (e.g., permission issues)
|
|
60
|
+
console.warn(`Index check failed to execute explain for ${operation} on ${database}.${collection}:`, error);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=indexCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexCheck.js","sourceRoot":"","sources":["../../src/helpers/indexCheck.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAExD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,aAAuB;IAC7C,MAAM,YAAY,GAAG,aAAa,EAAE,YAAoC,CAAC;IACzE,MAAM,WAAW,GAAG,YAAY,EAAE,WAAmC,CAAC;IACtE,MAAM,KAAK,GAAG,WAAW,EAAE,KAA2B,CAAC;IACvD,MAAM,UAAU,GAAG,WAAW,EAAE,UAAkC,CAAC;IAEnE,8DAA8D;IAC9D,MAAM,eAAe,GAAG;QACpB,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,0BAA0B;QAC1B,gBAAgB;QAChB,gBAAgB;QAChB,QAAQ;KACX,CAAC;IAEF,IAAI,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAe,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,2CAA2C;IAC3C,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAgB,EAAE,UAAkB,EAAE,SAAiB;IAC7F,OAAO,2BAA2B,SAAS,kBAAkB,QAAQ,IAAI,UAAU,2QAA2Q,CAAC;AACnW,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,QAAmC,EACnC,QAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,eAAwC;IAExC,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,eAAe,EAAE,CAAC;QAE9C,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,YAAY,CAClB,UAAU,CAAC,iBAAiB,EAC5B,yBAAyB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAC7D,CAAC;QACN,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC/E,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,kEAAkE;QAClE,iFAAiF;QACjF,OAAO,CAAC,IAAI,CAAC,6CAA6C,SAAS,OAAO,QAAQ,IAAI,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;IAChH,CAAC;AACL,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -18,7 +18,6 @@ export const LogId = {
|
|
|
18
18
|
telemetryMetadataError: mongoLogId(1002005),
|
|
19
19
|
telemetryDeviceIdFailure: mongoLogId(1002006),
|
|
20
20
|
telemetryDeviceIdTimeout: mongoLogId(1002007),
|
|
21
|
-
telemetryContainerEnvFailure: mongoLogId(1002008),
|
|
22
21
|
toolExecute: mongoLogId(1003001),
|
|
23
22
|
toolExecuteFailure: mongoLogId(1003002),
|
|
24
23
|
toolDisabled: mongoLogId(1003003),
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAc,eAAe,EAAkB,MAAM,oBAAoB,CAAC;AAC7F,OAAO,MAAM,MAAM,gBAAgB,CAAC;AAMpC,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,kBAAkB,EAAE,UAAU,CAAC,OAAS,CAAC;IACzC,iBAAiB,EAAE,UAAU,CAAC,OAAS,CAAC;IACxC,oBAAoB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC3C,YAAY,EAAE,UAAU,CAAC,OAAS,CAAC;IACnC,kBAAkB,EAAE,UAAU,CAAC,OAAS,CAAC;IAEzC,qBAAqB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC5C,8BAA8B,EAAE,UAAU,CAAC,OAAS,CAAC;IACrD,mBAAmB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC1C,mBAAmB,EAAE,UAAU,CAAC,OAAS,CAAC;IAE1C,iBAAiB,EAAE,UAAU,CAAC,OAAS,CAAC;IACxC,oBAAoB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC3C,kBAAkB,EAAE,UAAU,CAAC,OAAS,CAAC;IACzC,oBAAoB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC3C,sBAAsB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC7C,wBAAwB,EAAE,UAAU,CAAC,OAAS,CAAC;IAC/C,wBAAwB,EAAE,UAAU,CAAC,OAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKnC,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oCAAoC,CAAC;AAC3F,OAAO,MAAM,MAAM,QAAQ,CAAC;AAS5B,MAAM,OAAO,MAAM;IAOf,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAiB;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAoB;QAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,sHAAsH;QACtH,mHAAmH;QACnH,gEAAgE;QAChE,EAAE;QACF,mIAAmI;QACnI,oGAAoG;QACpG,MAAM,eAAe,GACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAI3C,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAC;QAE/E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,KAAK,EAA2B,EAAE;YACvG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;YAClC,CAAC;YAED,OAAO,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;YAEnD,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,iBAAiB,EACvB,QAAQ,EACR,iCAAiC,SAAS,CAAC,WAAW,CAAC,IAAI,qBAAqB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CACnH,CAAC;YAEF,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/D,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,OAAsB,EAAE,eAAuB,EAAE,KAAa;QAClF,MAAM,KAAK,GAAgB;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE;gBACR,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,OAAO;aACnB;SACJ,CAAC;QAEF,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;YACnD,KAAK,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC;YACpE,KAAK,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,EAAE,CAAC;QAC1E,CAAC;QACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACrB,KAAK,CAAC,UAAU,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACnE,IAAI,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;gBACpC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5C,CAAC;QACL,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAEO,aAAa;QACjB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;YAClD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,CACnB,QAAQ,EACR,iBAAiB,EACjB;YACI,WAAW,EACP,oGAAoG;SAC3G,EACD,CAAC,GAAG,EAAE,EAAE;YACJ,MAAM,MAAM,GAAG;gBACX,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;gBACpC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;gBAChC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB;oBAC9C,CAAC,CAAC,6DAA6D;oBAC/D,CAAC,CAAC,uMAAuM;gBAC7M,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc;gBAC9C,KAAK,EACD,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe;oBAC1D,CAAC,CAAC,yDAAyD;oBAC3D,CAAC,CAAC,iPAAiP;aAC9P,CAAC;YACF,OAAO;gBACH,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;wBAC5B,QAAQ,EAAE,kBAAkB;wBAC5B,GAAG,EAAE,GAAG,CAAC,IAAI;qBAChB;iBACJ;aACJ,CAAC;QACN,CAAC,CACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,cAAc;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACnC,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC1G,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACT,qFAAqF,EACrF,KAAK,CACR,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;YACzG,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YACjE,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;YACvD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBACjD,OAAO,CAAC,KAAK,CAAC,oEAAoE,EAAE,KAAK,CAAC,CAAC;oBAE3F,MAAM,IAAI,KAAK,CACX,mFAAmF,CACtF,CAAC;gBACN,CAAC;gBACD,OAAO,CAAC,KAAK,CACT,wGAAwG,CAC3G,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -3,106 +3,80 @@ import { MACHINE_METADATA } from "./constants.js";
|
|
|
3
3
|
import { EventCache } from "./eventCache.js";
|
|
4
4
|
import nodeMachineId from "node-machine-id";
|
|
5
5
|
import { getDeviceId } from "@mongodb-js/device-id";
|
|
6
|
-
|
|
7
|
-
async function fileExists(filePath) {
|
|
8
|
-
try {
|
|
9
|
-
await fs.access(filePath, fs.constants.F_OK);
|
|
10
|
-
return true; // File exists
|
|
11
|
-
}
|
|
12
|
-
catch (e) {
|
|
13
|
-
if (e instanceof Error &&
|
|
14
|
-
e.code === "ENOENT") {
|
|
15
|
-
return false; // File does not exist
|
|
16
|
-
}
|
|
17
|
-
throw e; // Re-throw unexpected errors
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
async function isContainerized() {
|
|
21
|
-
if (process.env.container) {
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
const exists = await Promise.all(["/.dockerenv", "/run/.containerenv", "/var/run/.containerenv"].map(fileExists));
|
|
25
|
-
return exists.includes(true);
|
|
26
|
-
}
|
|
6
|
+
export const DEVICE_ID_TIMEOUT = 3000;
|
|
27
7
|
export class Telemetry {
|
|
28
|
-
constructor(session, userConfig, { eventCache, getRawMachineId
|
|
8
|
+
constructor(session, userConfig, commonProperties, { eventCache, getRawMachineId }) {
|
|
29
9
|
this.session = session;
|
|
30
10
|
this.userConfig = userConfig;
|
|
11
|
+
this.commonProperties = commonProperties;
|
|
12
|
+
this.isBufferingEvents = true;
|
|
31
13
|
this.deviceIdAbortController = new AbortController();
|
|
32
|
-
this.flushing = false;
|
|
33
14
|
this.eventCache = eventCache;
|
|
34
15
|
this.getRawMachineId = getRawMachineId;
|
|
35
|
-
this.getContainerEnv = getContainerEnv;
|
|
36
16
|
}
|
|
37
|
-
static create(session, userConfig, { eventCache = EventCache.getInstance(), getRawMachineId = () => nodeMachineId.machineId(true),
|
|
38
|
-
const instance = new Telemetry(session, userConfig, {
|
|
39
|
-
|
|
40
|
-
getRawMachineId,
|
|
41
|
-
getContainerEnv,
|
|
42
|
-
});
|
|
17
|
+
static create(session, userConfig, { commonProperties = { ...MACHINE_METADATA }, eventCache = EventCache.getInstance(), getRawMachineId = () => nodeMachineId.machineId(true), } = {}) {
|
|
18
|
+
const instance = new Telemetry(session, userConfig, commonProperties, { eventCache, getRawMachineId });
|
|
19
|
+
void instance.start();
|
|
43
20
|
return instance;
|
|
44
21
|
}
|
|
22
|
+
async start() {
|
|
23
|
+
if (!this.isTelemetryEnabled()) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
this.deviceIdPromise = getDeviceId({
|
|
27
|
+
getMachineId: () => this.getRawMachineId(),
|
|
28
|
+
onError: (reason, error) => {
|
|
29
|
+
switch (reason) {
|
|
30
|
+
case "resolutionError":
|
|
31
|
+
logger.debug(LogId.telemetryDeviceIdFailure, "telemetry", String(error));
|
|
32
|
+
break;
|
|
33
|
+
case "timeout":
|
|
34
|
+
logger.debug(LogId.telemetryDeviceIdTimeout, "telemetry", "Device ID retrieval timed out");
|
|
35
|
+
break;
|
|
36
|
+
case "abort":
|
|
37
|
+
// No need to log in the case of aborts
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
abortSignal: this.deviceIdAbortController.signal,
|
|
42
|
+
});
|
|
43
|
+
this.commonProperties.device_id = await this.deviceIdPromise;
|
|
44
|
+
this.isBufferingEvents = false;
|
|
45
|
+
}
|
|
45
46
|
async close() {
|
|
46
47
|
this.deviceIdAbortController.abort();
|
|
47
|
-
|
|
48
|
+
this.isBufferingEvents = false;
|
|
49
|
+
await this.emitEvents(this.eventCache.getEvents());
|
|
48
50
|
}
|
|
49
51
|
/**
|
|
50
52
|
* Emits events through the telemetry pipeline
|
|
51
53
|
* @param events - The events to emit
|
|
52
54
|
*/
|
|
53
|
-
emitEvents(events) {
|
|
54
|
-
|
|
55
|
+
async emitEvents(events) {
|
|
56
|
+
try {
|
|
57
|
+
if (!this.isTelemetryEnabled()) {
|
|
58
|
+
logger.info(LogId.telemetryEmitFailure, "telemetry", `Telemetry is disabled.`);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
await this.emit(events);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
logger.debug(LogId.telemetryEmitFailure, "telemetry", `Error emitting telemetry events.`);
|
|
65
|
+
}
|
|
55
66
|
}
|
|
56
67
|
/**
|
|
57
68
|
* Gets the common properties for events
|
|
58
69
|
* @returns Object containing common properties for all events
|
|
59
70
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
switch (reason) {
|
|
70
|
-
case "resolutionError":
|
|
71
|
-
logger.debug(LogId.telemetryDeviceIdFailure, "telemetry", String(error));
|
|
72
|
-
break;
|
|
73
|
-
case "timeout":
|
|
74
|
-
logger.debug(LogId.telemetryDeviceIdTimeout, "telemetry", "Device ID retrieval timed out");
|
|
75
|
-
break;
|
|
76
|
-
case "abort":
|
|
77
|
-
// No need to log in the case of aborts
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
abortSignal: this.deviceIdAbortController.signal,
|
|
82
|
-
}).then((id) => {
|
|
83
|
-
deviceId = id;
|
|
84
|
-
}),
|
|
85
|
-
this.getContainerEnv().then((env) => {
|
|
86
|
-
containerEnv = env;
|
|
87
|
-
}),
|
|
88
|
-
]);
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
92
|
-
logger.debug(LogId.telemetryDeviceIdFailure, "telemetry", err.message);
|
|
93
|
-
}
|
|
94
|
-
this.cachedCommonProperties = {
|
|
95
|
-
...MACHINE_METADATA,
|
|
96
|
-
mcp_client_version: this.session.agentRunner?.version,
|
|
97
|
-
mcp_client_name: this.session.agentRunner?.name,
|
|
98
|
-
session_id: this.session.sessionId,
|
|
99
|
-
config_atlas_auth: this.session.apiClient.hasCredentials() ? "true" : "false",
|
|
100
|
-
config_connection_string: this.userConfig.connectionString ? "true" : "false",
|
|
101
|
-
is_container_env: containerEnv ? "true" : "false",
|
|
102
|
-
device_id: deviceId,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
return this.cachedCommonProperties;
|
|
71
|
+
getCommonProperties() {
|
|
72
|
+
return {
|
|
73
|
+
...this.commonProperties,
|
|
74
|
+
mcp_client_version: this.session.agentRunner?.version,
|
|
75
|
+
mcp_client_name: this.session.agentRunner?.name,
|
|
76
|
+
session_id: this.session.sessionId,
|
|
77
|
+
config_atlas_auth: this.session.apiClient.hasCredentials() ? "true" : "false",
|
|
78
|
+
config_connection_string: this.userConfig.connectionString ? "true" : "false",
|
|
79
|
+
};
|
|
106
80
|
}
|
|
107
81
|
/**
|
|
108
82
|
* Checks if telemetry is currently enabled
|
|
@@ -120,54 +94,43 @@ export class Telemetry {
|
|
|
120
94
|
return !doNotTrack;
|
|
121
95
|
}
|
|
122
96
|
/**
|
|
123
|
-
* Attempts to
|
|
97
|
+
* Attempts to emit events through authenticated and unauthenticated clients
|
|
124
98
|
* Falls back to caching if both attempts fail
|
|
125
99
|
*/
|
|
126
|
-
async
|
|
127
|
-
if (
|
|
128
|
-
|
|
100
|
+
async emit(events) {
|
|
101
|
+
if (this.isBufferingEvents) {
|
|
102
|
+
this.eventCache.appendEvents(events);
|
|
129
103
|
return;
|
|
130
104
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
});
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
this.flushing = true;
|
|
140
|
-
try {
|
|
141
|
-
const cachedEvents = this.eventCache.getEvents();
|
|
142
|
-
const allEvents = [...cachedEvents, ...(events ?? [])];
|
|
143
|
-
if (allEvents.length <= 0) {
|
|
144
|
-
this.flushing = false;
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
logger.debug(LogId.telemetryEmitStart, "telemetry", `Attempting to send ${allEvents.length} events (${cachedEvents.length} cached)`);
|
|
148
|
-
await this.sendEvents(this.session.apiClient, allEvents);
|
|
105
|
+
const cachedEvents = this.eventCache.getEvents();
|
|
106
|
+
const allEvents = [...cachedEvents, ...events];
|
|
107
|
+
logger.debug(LogId.telemetryEmitStart, "telemetry", `Attempting to send ${allEvents.length} events (${cachedEvents.length} cached)`);
|
|
108
|
+
const result = await this.sendEvents(this.session.apiClient, allEvents);
|
|
109
|
+
if (result.success) {
|
|
149
110
|
this.eventCache.clearEvents();
|
|
150
111
|
logger.debug(LogId.telemetryEmitSuccess, "telemetry", `Sent ${allEvents.length} events successfully: ${JSON.stringify(allEvents, null, 2)}`);
|
|
112
|
+
return;
|
|
151
113
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
this.eventCache.appendEvents(events ?? []);
|
|
155
|
-
process.nextTick(async () => {
|
|
156
|
-
// try again
|
|
157
|
-
await this.flush();
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
this.flushing = false;
|
|
114
|
+
logger.debug(LogId.telemetryEmitFailure, "telemetry", `Error sending event to client: ${result.error instanceof Error ? result.error.message : String(result.error)}`);
|
|
115
|
+
this.eventCache.appendEvents(events);
|
|
161
116
|
}
|
|
162
117
|
/**
|
|
163
118
|
* Attempts to send events through the provided API client
|
|
164
119
|
*/
|
|
165
120
|
async sendEvents(client, events) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
121
|
+
try {
|
|
122
|
+
await client.sendEvents(events.map((event) => ({
|
|
123
|
+
...event,
|
|
124
|
+
properties: { ...this.getCommonProperties(), ...event.properties },
|
|
125
|
+
})));
|
|
126
|
+
return { success: true };
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return {
|
|
130
|
+
success: false,
|
|
131
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
171
134
|
}
|
|
172
135
|
}
|
|
173
136
|
//# sourceMappingURL=telemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
3
|
+
import { checkIndexUsage } from "../../../helpers/indexCheck.js";
|
|
3
4
|
export class DeleteManyTool extends MongoDBToolBase {
|
|
4
5
|
constructor() {
|
|
5
6
|
super(...arguments);
|
|
@@ -16,6 +17,23 @@ export class DeleteManyTool extends MongoDBToolBase {
|
|
|
16
17
|
}
|
|
17
18
|
async execute({ database, collection, filter, }) {
|
|
18
19
|
const provider = await this.ensureConnected();
|
|
20
|
+
// Check if delete operation uses an index if enabled
|
|
21
|
+
if (this.config.indexCheck) {
|
|
22
|
+
await checkIndexUsage(provider, database, collection, "deleteMany", async () => {
|
|
23
|
+
return provider.runCommandWithCheck(database, {
|
|
24
|
+
explain: {
|
|
25
|
+
delete: collection,
|
|
26
|
+
deletes: [
|
|
27
|
+
{
|
|
28
|
+
q: filter || {},
|
|
29
|
+
limit: 0, // 0 means delete all matching documents
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
verbosity: "queryPlanner",
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
19
37
|
const result = await provider.deleteMany(database, collection, filter);
|
|
20
38
|
return {
|
|
21
39
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteMany.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/delete/deleteMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"deleteMany.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/delete/deleteMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,OAAO,cAAe,SAAQ,eAAe;IAAnD;;QACc,SAAI,GAAG,aAAa,CAAC;QACrB,gBAAW,GAAG,uEAAuE,CAAC;QACtF,cAAS,GAAG;YAClB,GAAG,eAAe;YAClB,MAAM,EAAE,CAAC;iBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B,QAAQ,EAAE;iBACV,QAAQ,CACL,6HAA6H,CAChI;SACR,CAAC;QACQ,kBAAa,GAAkB,QAAQ,CAAC;IAsCtD,CAAC;IApCa,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,GACwB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;gBAC3E,OAAO,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBAC1C,OAAO,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE;4BACL;gCACI,CAAC,EAAE,MAAM,IAAI,EAAE;gCACf,KAAK,EAAE,CAAC,EAAE,wCAAwC;6BACrD;yBACJ;qBACJ;oBACD,SAAS,EAAE,cAAc;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEvE,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,aAAa,MAAM,CAAC,YAAY,mCAAmC,UAAU,GAAG;oBACtF,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -56,7 +56,7 @@ export class ExplainTool extends MongoDBToolBase {
|
|
|
56
56
|
}
|
|
57
57
|
case "count": {
|
|
58
58
|
const { query } = method.arguments;
|
|
59
|
-
result = await provider.
|
|
59
|
+
result = await provider.runCommandWithCheck(database, {
|
|
60
60
|
explain: {
|
|
61
61
|
count: collection,
|
|
62
62
|
query,
|