mongodb-mcp-server 2.0.1-alpha.3 → 2.0.1-alpha.5
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 +5 -1
- package/dist/cjs/common/errors.d.ts +2 -1
- package/dist/cjs/common/errors.d.ts.map +1 -1
- package/dist/cjs/common/errors.js +1 -0
- package/dist/cjs/common/errors.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +1 -1
- package/dist/cjs/helpers/mqlGuards.d.ts +28 -0
- package/dist/cjs/helpers/mqlGuards.d.ts.map +1 -1
- package/dist/cjs/helpers/mqlGuards.js +75 -1
- package/dist/cjs/helpers/mqlGuards.js.map +1 -1
- package/dist/cjs/helpers/writeStageConfirmation.d.ts +12 -0
- package/dist/cjs/helpers/writeStageConfirmation.d.ts.map +1 -0
- package/dist/cjs/helpers/writeStageConfirmation.js +30 -0
- package/dist/cjs/helpers/writeStageConfirmation.js.map +1 -0
- package/dist/cjs/tools/atlas/create/createAccessList.d.ts +1 -0
- package/dist/cjs/tools/atlas/create/createAccessList.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.js +5 -0
- package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts +7 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +15 -0
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +5 -2
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.js +5 -2
- package/dist/cjs/tools/mongodb/read/aggregateDB.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +23 -12
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js +51 -56
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/esm/common/errors.d.ts +2 -1
- package/dist/esm/common/errors.d.ts.map +1 -1
- package/dist/esm/common/errors.js +1 -0
- package/dist/esm/common/errors.js.map +1 -1
- package/dist/esm/common/packageInfo.js +1 -1
- package/dist/esm/helpers/mqlGuards.d.ts +28 -0
- package/dist/esm/helpers/mqlGuards.d.ts.map +1 -1
- package/dist/esm/helpers/mqlGuards.js +74 -1
- package/dist/esm/helpers/mqlGuards.js.map +1 -1
- package/dist/esm/helpers/writeStageConfirmation.d.ts +12 -0
- package/dist/esm/helpers/writeStageConfirmation.d.ts.map +1 -0
- package/dist/esm/helpers/writeStageConfirmation.js +27 -0
- package/dist/esm/helpers/writeStageConfirmation.js.map +1 -0
- package/dist/esm/tools/atlas/create/createAccessList.d.ts +1 -0
- package/dist/esm/tools/atlas/create/createAccessList.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.js +5 -0
- package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts +7 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +15 -0
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +6 -3
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.js +6 -3
- package/dist/esm/tools/mongodb/read/aggregateDB.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +23 -12
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js +51 -56
- package/dist/esm/tools/tool.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -528,7 +528,11 @@ If your client supports [elicitation](https://modelcontextprotocol.io/specificat
|
|
|
528
528
|
|
|
529
529
|
When a tool is marked as requiring confirmation, the server will send an elicitation request to the client. The client with elicitation support will then prompt the user for confirmation and send the response back to the server. If the client does not support elicitation, the tool will execute without confirmation.
|
|
530
530
|
|
|
531
|
-
You can set the `confirmationRequiredTools` configuration option to specify the names of tools which require confirmation. By default, the following tools have this setting enabled: `drop-database`, `drop-collection`, `delete-many`, `atlas-create-db-user`, `atlas-create-access-list`.
|
|
531
|
+
You can set the `confirmationRequiredTools` configuration option to specify the names of tools which require confirmation. By default, the following tools have this setting enabled: `drop-database`, `drop-collection`, `delete-many`, `drop-index`, `atlas-create-db-user`, `atlas-create-access-list`, `atlas-streams-manage`, `atlas-streams-teardown`.
|
|
532
|
+
|
|
533
|
+
In addition, the `aggregate` and `aggregate-db` tools always request confirmation before running a pipeline that contains a `$out` or `$merge` stage, regardless of whether they appear in `confirmationRequiredTools`. Those stages write to a collection — `$out` replaces its contents entirely — so this confirmation names the affected collection and what will happen to it. Pipelines without a write stage are not confirmed.
|
|
534
|
+
|
|
535
|
+
Adding either tool to `confirmationRequiredTools` is broader: every call is then confirmed up front with the standard tool-level message, and a write stage does not raise a second prompt.
|
|
532
536
|
|
|
533
537
|
#### Read-Only Mode
|
|
534
538
|
|
|
@@ -8,7 +8,8 @@ export declare enum ErrorCodes {
|
|
|
8
8
|
AtlasVectorSearchInvalidQuery = 1000007,
|
|
9
9
|
InvalidPipeline = 1000008,
|
|
10
10
|
ForbiddenServerSideJS = 1000009,
|
|
11
|
-
UnknownConnectionId = 1000010
|
|
11
|
+
UnknownConnectionId = 1000010,
|
|
12
|
+
ConfirmationDeclined = 1000011
|
|
12
13
|
}
|
|
13
14
|
export declare class MongoDBError<ErrorCode extends ErrorCodes = ErrorCodes> extends Error {
|
|
14
15
|
code: ErrorCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,qBAAqB,UAAY;IACjC,6BAA6B,UAAY;IACzC,iBAAiB,UAAY;IAC7B,uBAAuB,UAAY;IACnC,uBAAuB,UAAY;IACnC,8BAA8B,UAAY;IAC1C,6BAA6B,UAAY;IACzC,eAAe,UAAY;IAC3B,qBAAqB,UAAY;IACjC,mBAAmB,UAAY;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,qBAAqB,UAAY;IACjC,6BAA6B,UAAY;IACzC,iBAAiB,UAAY;IAC7B,uBAAuB,UAAY;IACnC,uBAAuB,UAAY;IACnC,8BAA8B,UAAY;IAC1C,6BAA6B,UAAY;IACzC,eAAe,UAAY;IAC3B,qBAAqB,UAAY;IACjC,mBAAmB,UAAY;IAC/B,oBAAoB,UAAY;CACnC;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,KAAK;IAEnE,IAAI,EAAE,SAAS;gBAAf,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM;CAItB"}
|
|
@@ -13,6 +13,7 @@ var ErrorCodes;
|
|
|
13
13
|
ErrorCodes[ErrorCodes["InvalidPipeline"] = 1000008] = "InvalidPipeline";
|
|
14
14
|
ErrorCodes[ErrorCodes["ForbiddenServerSideJS"] = 1000009] = "ForbiddenServerSideJS";
|
|
15
15
|
ErrorCodes[ErrorCodes["UnknownConnectionId"] = 1000010] = "UnknownConnectionId";
|
|
16
|
+
ErrorCodes[ErrorCodes["ConfirmationDeclined"] = 1000011] = "ConfirmationDeclined";
|
|
16
17
|
})(ErrorCodes || (exports.ErrorCodes = ErrorCodes = {}));
|
|
17
18
|
class MongoDBError extends Error {
|
|
18
19
|
constructor(code, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAYX;AAZD,WAAY,UAAU;IAClB,mFAAiC,CAAA;IACjC,mGAAyC,CAAA;IACzC,2EAA6B,CAAA;IAC7B,uFAAmC,CAAA;IACnC,uFAAmC,CAAA;IACnC,qGAA0C,CAAA;IAC1C,mGAAyC,CAAA;IACzC,uEAA2B,CAAA;IAC3B,mFAAiC,CAAA;IACjC,+EAA+B,CAAA;IAC/B,iFAAgC,CAAA;AACpC,CAAC,EAZW,UAAU,0BAAV,UAAU,QAYrB;AAED,MAAa,YAAwD,SAAQ,KAAK;IAC9E,YACW,IAAe,EACtB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAW;IAI1B,CAAC;CACJ;AAPD,oCAOC"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.packageInfo = void 0;
|
|
4
4
|
// This file was generated by scripts/updatePackageVersion.ts - Do not edit it manually.
|
|
5
5
|
exports.packageInfo = {
|
|
6
|
-
version: "2.0.1-alpha.
|
|
6
|
+
version: "2.0.1-alpha.5",
|
|
7
7
|
mcpServerName: "MongoDB MCP Server",
|
|
8
8
|
engines: {
|
|
9
9
|
node: "^20.19.0 || ^22.13.0 || >= 24.0.0",
|
|
@@ -9,4 +9,32 @@ export declare function assertNoServerSideJS(value: unknown): void;
|
|
|
9
9
|
* i.e. it is a `$out` or `$merge` stage.
|
|
10
10
|
*/
|
|
11
11
|
export declare function isWriteStage(stage: Record<string, unknown>): boolean;
|
|
12
|
+
/** The collection a write stage targets, along with how it will write to it. */
|
|
13
|
+
export type WriteStageTarget = {
|
|
14
|
+
namespace: string | undefined;
|
|
15
|
+
} & ({
|
|
16
|
+
operator: "$out";
|
|
17
|
+
} | {
|
|
18
|
+
operator: "$merge";
|
|
19
|
+
/** The `whenMatched` mode, when the stage names one of the documented modes. */
|
|
20
|
+
whenMatched?: string;
|
|
21
|
+
/** The `whenNotMatched` mode, when the stage names one of the documented modes. */
|
|
22
|
+
whenNotMatched?: string;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Describes the collections that the write stages of a pipeline target, so that
|
|
26
|
+
* the user can be told what a `$out` or `$merge` is about to affect before it
|
|
27
|
+
* runs.
|
|
28
|
+
*
|
|
29
|
+
* Only top-level stages are inspected, matching {@link isWriteStage}: `$out` and
|
|
30
|
+
* `$merge` are not permitted inside sub-pipelines. MongoDB also requires them to
|
|
31
|
+
* be the last stage, so in practice at most one target is returned; the array
|
|
32
|
+
* shape means a malformed pipeline is still described in full rather than
|
|
33
|
+
* partially.
|
|
34
|
+
*
|
|
35
|
+
* @param pipeline - The aggregation pipeline to inspect.
|
|
36
|
+
* @param defaultDatabase - The database the aggregation runs against, used to
|
|
37
|
+
* qualify stages that name only a collection.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getWriteStageTargets(pipeline: Record<string, unknown>[], defaultDatabase: string): WriteStageTarget[];
|
|
12
40
|
//# sourceMappingURL=mqlGuards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqlGuards.d.ts","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAUzD;
|
|
1
|
+
{"version":3,"file":"mqlGuards.d.ts","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAUzD;AAkBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEpE;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,CAC7D;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IACI,QAAQ,EAAE,QAAQ,CAAC;IACnB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CACN,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA4BrH"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.assertNoServerSideJS = assertNoServerSideJS;
|
|
4
4
|
exports.isWriteStage = isWriteStage;
|
|
5
|
+
exports.getWriteStageTargets = getWriteStageTargets;
|
|
5
6
|
const errors_js_1 = require("../common/errors.js");
|
|
6
7
|
/**
|
|
7
8
|
* Operators that execute server-side JavaScript. These can be used to run
|
|
@@ -43,11 +44,84 @@ function assertNoServerSideJS(value) {
|
|
|
43
44
|
throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.ForbiddenServerSideJS, `The use of server-side JavaScript operators (such as ${SERVER_SIDE_JS_OPERATORS.join(", ")}) is disabled. The "${operator}" operator is not allowed. To enable it, set the "disableServerSideJs" configuration option to false.`);
|
|
44
45
|
}
|
|
45
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* The write operator of an aggregation stage, or `undefined` when the stage
|
|
49
|
+
* does not write to a collection.
|
|
50
|
+
*/
|
|
51
|
+
function writeStageOperator(stage) {
|
|
52
|
+
if ("$out" in stage) {
|
|
53
|
+
return "$out";
|
|
54
|
+
}
|
|
55
|
+
if ("$merge" in stage) {
|
|
56
|
+
return "$merge";
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
46
60
|
/**
|
|
47
61
|
* Returns true when the given aggregation stage writes data to a collection,
|
|
48
62
|
* i.e. it is a `$out` or `$merge` stage.
|
|
49
63
|
*/
|
|
50
64
|
function isWriteStage(stage) {
|
|
51
|
-
return
|
|
65
|
+
return writeStageOperator(stage) !== undefined;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Describes the collections that the write stages of a pipeline target, so that
|
|
69
|
+
* the user can be told what a `$out` or `$merge` is about to affect before it
|
|
70
|
+
* runs.
|
|
71
|
+
*
|
|
72
|
+
* Only top-level stages are inspected, matching {@link isWriteStage}: `$out` and
|
|
73
|
+
* `$merge` are not permitted inside sub-pipelines. MongoDB also requires them to
|
|
74
|
+
* be the last stage, so in practice at most one target is returned; the array
|
|
75
|
+
* shape means a malformed pipeline is still described in full rather than
|
|
76
|
+
* partially.
|
|
77
|
+
*
|
|
78
|
+
* @param pipeline - The aggregation pipeline to inspect.
|
|
79
|
+
* @param defaultDatabase - The database the aggregation runs against, used to
|
|
80
|
+
* qualify stages that name only a collection.
|
|
81
|
+
*/
|
|
82
|
+
function getWriteStageTargets(pipeline, defaultDatabase) {
|
|
83
|
+
const targets = [];
|
|
84
|
+
for (const stage of pipeline) {
|
|
85
|
+
switch (writeStageOperator(stage)) {
|
|
86
|
+
case "$out":
|
|
87
|
+
targets.push({ operator: "$out", namespace: resolveNamespace(stage.$out, defaultDatabase) });
|
|
88
|
+
break;
|
|
89
|
+
case "$merge": {
|
|
90
|
+
// The stage is either the target itself (`$merge: "coll"`) or a
|
|
91
|
+
// document describing it. `whenMatched` also accepts a custom
|
|
92
|
+
// update pipeline, which has no concise description, so only the
|
|
93
|
+
// documented string modes are reported.
|
|
94
|
+
const spec = isRecord(stage.$merge) ? stage.$merge : undefined;
|
|
95
|
+
targets.push({
|
|
96
|
+
operator: "$merge",
|
|
97
|
+
namespace: resolveNamespace(spec ? spec.into : stage.$merge, defaultDatabase),
|
|
98
|
+
...(typeof spec?.whenMatched === "string" ? { whenMatched: spec.whenMatched } : {}),
|
|
99
|
+
...(typeof spec?.whenNotMatched === "string" ? { whenNotMatched: spec.whenNotMatched } : {}),
|
|
100
|
+
});
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
case undefined:
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return targets;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Resolves the target of a `$out` stage or the `into` of a `$merge` stage to a
|
|
111
|
+
* fully qualified namespace. Returns `undefined` for any other shape, such as
|
|
112
|
+
* the `{ s3: ... }` target supported by Atlas Data Federation.
|
|
113
|
+
*/
|
|
114
|
+
function resolveNamespace(target, defaultDatabase) {
|
|
115
|
+
if (typeof target === "string") {
|
|
116
|
+
return `${defaultDatabase}.${target}`;
|
|
117
|
+
}
|
|
118
|
+
if (isRecord(target) && typeof target.coll === "string") {
|
|
119
|
+
const database = typeof target.db === "string" ? target.db : defaultDatabase;
|
|
120
|
+
return `${database}.${target.coll}`;
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
function isRecord(value) {
|
|
125
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
52
126
|
}
|
|
53
127
|
//# sourceMappingURL=mqlGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqlGuards.js","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":";;AA2CA,oDAUC;
|
|
1
|
+
{"version":3,"file":"mqlGuards.js","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WriteStageTarget } from "./mqlGuards.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds the message shown to the user before an aggregation containing a
|
|
4
|
+
* `$out` or `$merge` stage runs. The two operators differ in blast radius --
|
|
5
|
+
* `$out` replaces a collection wholesale while `$merge` modifies an existing
|
|
6
|
+
* one -- so each is described in its own terms, naming the affected namespace
|
|
7
|
+
* whenever it could be resolved.
|
|
8
|
+
*
|
|
9
|
+
* @param targets - The write stage targets, as returned by `getWriteStageTargets`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildWriteStageConfirmationMessage(targets: WriteStageTarget[]): string;
|
|
12
|
+
//# sourceMappingURL=writeStageConfirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeStageConfirmation.d.ts","sourceRoot":"","sources":["../../../src/helpers/writeStageConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAEtF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildWriteStageConfirmationMessage = buildWriteStageConfirmationMessage;
|
|
4
|
+
/**
|
|
5
|
+
* Builds the message shown to the user before an aggregation containing a
|
|
6
|
+
* `$out` or `$merge` stage runs. The two operators differ in blast radius --
|
|
7
|
+
* `$out` replaces a collection wholesale while `$merge` modifies an existing
|
|
8
|
+
* one -- so each is described in its own terms, naming the affected namespace
|
|
9
|
+
* whenever it could be resolved.
|
|
10
|
+
*
|
|
11
|
+
* @param targets - The write stage targets, as returned by `getWriteStageTargets`.
|
|
12
|
+
*/
|
|
13
|
+
function buildWriteStageConfirmationMessage(targets) {
|
|
14
|
+
return `This aggregation contains ${targets.map(describeTarget).join(" and ")}. Proceed?`;
|
|
15
|
+
}
|
|
16
|
+
function describeTarget(target) {
|
|
17
|
+
const collection = target.namespace ? `\`${target.namespace}\`` : "its target collection";
|
|
18
|
+
switch (target.operator) {
|
|
19
|
+
case "$out":
|
|
20
|
+
return `a \`$out\` stage that will replace the entire contents of ${collection} with the pipeline output, permanently discarding any documents already there`;
|
|
21
|
+
case "$merge": {
|
|
22
|
+
const modes = [
|
|
23
|
+
target.whenMatched !== undefined ? `whenMatched: ${target.whenMatched}` : undefined,
|
|
24
|
+
target.whenNotMatched !== undefined ? `whenNotMatched: ${target.whenNotMatched}` : undefined,
|
|
25
|
+
].filter((mode) => mode !== undefined);
|
|
26
|
+
return `a \`$merge\` stage that will write the pipeline output into ${collection}, modifying data already in that collection${modes.length > 0 ? ` (${modes.join(", ")})` : ""}`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=writeStageConfirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeStageConfirmation.js","sourceRoot":"","sources":["../../../src/helpers/writeStageConfirmation.ts"],"names":[],"mappings":";;AAWA,gFAEC;AAXD;;;;;;;;GAQG;AACH,SAAgB,kCAAkC,CAAC,OAA2B;IAC1E,OAAO,6BAA6B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE1F,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,6DAA6D,UAAU,+EAA+E,CAAC;QAClK,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG;gBACV,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnF,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS;aAC/F,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAEvC,OAAO,+DAA+D,UAAU,8CAA8C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrL,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -16,6 +16,7 @@ export declare class CreateAccessListTool extends AtlasToolBase {
|
|
|
16
16
|
outputSchema: {
|
|
17
17
|
projectId: z.ZodString;
|
|
18
18
|
};
|
|
19
|
+
protected schemaVariantKey(): string;
|
|
19
20
|
protected execute({ projectId, ipAddresses, cidrBlocks, comment, currentIpAddress }: ToolArgs<typeof this.argsShape>, context: ToolExecutionContext): Promise<ToolResult<typeof this.outputSchema>>;
|
|
20
21
|
protected getConfirmationMessage({ projectId, ipAddresses, cidrBlocks, comment, currentIpAddress, }: ToolArgs<typeof this.argsShape>): string;
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAccessList.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createAccessList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,eAAO,MAAM,oBAAoB;;;;;;CAShC,CAAC;AAMF,qBAAa,oBAAqB,SAAQ,aAAa;IACnD,MAAM,CAAC,QAAQ,SAA8B;IACtC,WAAW,SAAiE;IACnF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAY;IAK/C,IAAW,SAAS,IAAI,OAAO,oBAAoB,CAQlD;IACe,YAAY;;MAAgC;
|
|
1
|
+
{"version":3,"file":"createAccessList.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createAccessList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,eAAO,MAAM,oBAAoB;;;;;;CAShC,CAAC;AAMF,qBAAa,oBAAqB,SAAQ,aAAa;IACnD,MAAM,CAAC,QAAQ,SAA8B;IACtC,WAAW,SAAiE;IACnF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAY;IAK/C,IAAW,SAAS,IAAI,OAAO,oBAAoB,CAQlD;IACe,YAAY;;MAAgC;cAIzC,gBAAgB,IAAI,MAAM;cAI7B,OAAO,CACnB,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAClG,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAyDhD,SAAS,CAAC,sBAAsB,CAAC,EAC7B,SAAS,EACT,WAAW,EACX,UAAU,EACV,OAAO,EACP,gBAAgB,GACnB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM;CAoB9C"}
|
|
@@ -36,6 +36,11 @@ class CreateAccessListTool extends atlasTool_js_1.AtlasToolBase {
|
|
|
36
36
|
}
|
|
37
37
|
return exports.CreateAccessListArgs;
|
|
38
38
|
}
|
|
39
|
+
// argsShape drops currentIpAddress when IP lookup is unsupported, so the two
|
|
40
|
+
// shapes must be cached and shared separately.
|
|
41
|
+
schemaVariantKey() {
|
|
42
|
+
return this.session.apiClient?.supportsCurrentIpLookup === false ? "no-current-ip" : "current-ip";
|
|
43
|
+
}
|
|
39
44
|
async execute({ projectId, ipAddresses, cidrBlocks, comment, currentIpAddress }, context) {
|
|
40
45
|
if (!ipAddresses?.length && !cidrBlocks?.length && !currentIpAddress) {
|
|
41
46
|
if (!this.apiClient.supportsCurrentIpLookup) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAccessList.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createAccessList.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,kDAAgD;AAChD,iFAAqH;AACrH,2CAAsD;AAEzC,QAAA,oBAAoB,GAAG;IAChC,SAAS,EAAE,mBAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7D,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAS,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,QAAQ,EAAE;IACpG,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,mBAAS,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,QAAQ,EAAE;IAClG,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACnF,OAAO,EAAE,oBAAU,CAAC,MAAM,EAAE;SACvB,QAAQ,CAAC,qCAAqC,CAAC;SAC/C,OAAO,CAAC,gDAA2B,CAAC;SACpC,QAAQ,EAAE;CAClB,CAAC;AAEF,MAAM,4BAA4B,GAAG;IACjC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;CACxB,CAAC;AAEF,MAAa,oBAAqB,SAAQ,4BAAa;IAAvD;;QAEW,gBAAW,GAAG,6DAA6D,CAAC;QAenE,iBAAY,GAAG,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"createAccessList.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createAccessList.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { ToolArgs, ToolCategory } from "../tool.js";
|
|
2
|
+
import type { ToolArgs, ToolCategory, ToolExecutionContext } from "../tool.js";
|
|
3
3
|
import { ToolBase } from "../tool.js";
|
|
4
4
|
import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
|
|
5
5
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
6
6
|
import type { ConnectionEntry } from "../../common/connectionRegistry.js";
|
|
7
7
|
import type { Server } from "../../server.js";
|
|
8
8
|
import type { ConnectionMetadata } from "../../telemetry/types.js";
|
|
9
|
+
import { type WriteStageTarget } from "../../helpers/mqlGuards.js";
|
|
9
10
|
export declare const DBOperationArgs: {
|
|
10
11
|
database: z.ZodString;
|
|
11
12
|
};
|
|
@@ -57,6 +58,11 @@ export declare abstract class MongoDBToolBase extends ToolBase {
|
|
|
57
58
|
* and projection for a find), since each is validated independently.
|
|
58
59
|
*/
|
|
59
60
|
protected assertMqlIsAllowed(...values: (Record<string, unknown> | Record<string, unknown>[] | undefined)[]): void;
|
|
61
|
+
/**
|
|
62
|
+
* Asks the user to confirm the write stages of an aggregation pipeline,
|
|
63
|
+
* throwing when they decline so that the pipeline never runs.
|
|
64
|
+
*/
|
|
65
|
+
protected confirmWriteStages(targets: WriteStageTarget[], context: ToolExecutionContext): Promise<void>;
|
|
60
66
|
private assertSingleMqlValueIsAllowed;
|
|
61
67
|
/**
|
|
62
68
|
* The connectionId description varies by whether a connection string is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodbTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAiB,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mongodbTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAiB,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAIvG,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AASF,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAQF,8BAAsB,eAAgB,SAAQ,QAAQ;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAa;IAE1C,SAAS,KAAK,qBAAqB,IAAI,OAAO,CAI7C;IAED;;;;OAIG;cACa,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI3F,iGAAiG;cACjF,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAItF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAKzD,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAOjG;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI;IAMlH;;;OAGG;cACa,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7G,OAAO,CAAC,6BAA6B;IAgCrC;;;OAGG;cACgB,gBAAgB,IAAI,MAAM;IAOtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;cAaxB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAoD3G;;;;;;;;OAQG;cACa,wBAAwB,CACpC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAErC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,GACvC,OAAO,CAAC,kBAAkB,CAAC;CAOjC"}
|
|
@@ -5,6 +5,7 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const tool_js_1 = require("../tool.js");
|
|
6
6
|
const errors_js_1 = require("../../common/errors.js");
|
|
7
7
|
const mqlGuards_js_1 = require("../../helpers/mqlGuards.js");
|
|
8
|
+
const writeStageConfirmation_js_1 = require("../../helpers/writeStageConfirmation.js");
|
|
8
9
|
const constants_js_1 = require("../../helpers/constants.js");
|
|
9
10
|
exports.DBOperationArgs = {
|
|
10
11
|
database: zod_1.z.string().describe("Database name"),
|
|
@@ -87,6 +88,19 @@ class MongoDBToolBase extends tool_js_1.ToolBase {
|
|
|
87
88
|
this.assertSingleMqlValueIsAllowed(value);
|
|
88
89
|
}
|
|
89
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Asks the user to confirm the write stages of an aggregation pipeline,
|
|
93
|
+
* throwing when they decline so that the pipeline never runs.
|
|
94
|
+
*/
|
|
95
|
+
async confirmWriteStages(targets, context) {
|
|
96
|
+
if (this.requiresConfirmation()) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (await this.requestConfirmation((0, writeStageConfirmation_js_1.buildWriteStageConfirmationMessage)(targets), context)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.ConfirmationDeclined, "User did not confirm the write stages of the aggregation pipeline so the aggregation was not performed.");
|
|
103
|
+
}
|
|
90
104
|
assertSingleMqlValueIsAllowed(value) {
|
|
91
105
|
if (this.config.disableServerSideJs) {
|
|
92
106
|
(0, mqlGuards_js_1.assertNoServerSideJS)(value);
|
|
@@ -152,6 +166,7 @@ class MongoDBToolBase extends tool_js_1.ToolBase {
|
|
|
152
166
|
}
|
|
153
167
|
return super.handleError(error, args);
|
|
154
168
|
}
|
|
169
|
+
case errors_js_1.ErrorCodes.ConfirmationDeclined:
|
|
155
170
|
case errors_js_1.ErrorCodes.ForbiddenCollscan:
|
|
156
171
|
return {
|
|
157
172
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,wCAAsC;AAGtC,sDAAkE;AAIlE,
|
|
1
|
+
{"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ export declare class AggregateTool extends MongoDBToolBase {
|
|
|
77
77
|
"tool.responseBytesLimit": "tool.responseBytesLimit";
|
|
78
78
|
}>>;
|
|
79
79
|
};
|
|
80
|
-
protected execute({ connectionId, database, collection, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>,
|
|
80
|
+
protected execute({ connectionId, database, collection, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>, context: ToolExecutionContext): Promise<ToolResult<typeof this.outputSchema>>;
|
|
81
81
|
private safeCloseCursor;
|
|
82
82
|
private assertOnlyUsesPermittedStages;
|
|
83
83
|
private countAggregationResultDocuments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuB/F,eAAO,MAAM,mCAAmC,kvKAiG/C,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IAC9C,MAAM,CAAC,QAAQ,SAAe;IACvB,WAAW,SAAqD;IAChE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAAyB;cAErC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrG,
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuB/F,eAAO,MAAM,mCAAmC,kvKAiG/C,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IAC9C,MAAM,CAAC,QAAQ,SAAe;IACvB,WAAW,SAAqD;IAChE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAAyB;cAErC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrG,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAyJlC,eAAe;IAY7B,OAAO,CAAC,6BAA6B;YAkBvB,+BAA+B;YAuC/B,uBAAuB;IA+CrC,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;CAGxB"}
|
|
@@ -139,7 +139,8 @@ class AggregateTool extends mongodbTool_js_1.MongoDBToolBase {
|
|
|
139
139
|
};
|
|
140
140
|
this.outputSchema = AggregateOutputSchema;
|
|
141
141
|
}
|
|
142
|
-
async execute({ connectionId, database, collection, pipeline, responseBytesLimit },
|
|
142
|
+
async execute({ connectionId, database, collection, pipeline, responseBytesLimit }, context) {
|
|
143
|
+
const { signal } = context;
|
|
143
144
|
let aggregationCursor = undefined;
|
|
144
145
|
try {
|
|
145
146
|
const provider = await this.resolveConnection(connectionId);
|
|
@@ -199,7 +200,9 @@ class AggregateTool extends mongodbTool_js_1.MongoDBToolBase {
|
|
|
199
200
|
let documents;
|
|
200
201
|
let count;
|
|
201
202
|
let appliedLimits = [];
|
|
202
|
-
|
|
203
|
+
const writeStageTargets = (0, mqlGuards_js_1.getWriteStageTargets)(pipeline, database);
|
|
204
|
+
if (writeStageTargets.length > 0) {
|
|
205
|
+
await this.confirmWriteStages(writeStageTargets, context);
|
|
203
206
|
// This is a write pipeline, so special-case it and don't attempt to apply limits or caps
|
|
204
207
|
aggregationCursor = provider.aggregate(database, collection, pipeline, {
|
|
205
208
|
signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAGxB,sDAAyF;AAEzF,2CAAoD;AACpD,kEAAiE;AAEjE,yDAAqE;AACrE,kGAAiG;AACjG,wFAAkF;AAClF,gEAMuC;AACvC,+DAAyD;AACzD,4DAA4E;AAC5E,8HAGsE;AACtE,
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ export declare class AggregateDBTool extends MongoDBToolBase {
|
|
|
23
23
|
"tool.responseBytesLimit": "tool.responseBytesLimit";
|
|
24
24
|
}>>;
|
|
25
25
|
};
|
|
26
|
-
protected execute({ connectionId, database, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>,
|
|
26
|
+
protected execute({ connectionId, database, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>, context: ToolExecutionContext): Promise<ToolResult<typeof this.outputSchema>>;
|
|
27
27
|
private safeCloseCursor;
|
|
28
28
|
private assertOnlyUsesPermittedStages;
|
|
29
29
|
private countAggregationResultDocuments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateDB.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregateDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2B/F,eAAO,MAAM,aAAa;;CAOzB,CAAC;AAEF,qBAAa,eAAgB,SAAQ,eAAe;IAChD,MAAM,CAAC,QAAQ,SAAkB;IAC1B,WAAW,SAAmD;IAC9D,SAAS;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAA2B;cAEvC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACzF,
|
|
1
|
+
{"version":3,"file":"aggregateDB.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregateDB.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AA2B/F,eAAO,MAAM,aAAa;;CAOzB,CAAC;AAEF,qBAAa,eAAgB,SAAQ,eAAe;IAChD,MAAM,CAAC,QAAQ,SAAkB;IAC1B,WAAW,SAAmD;IAC9D,SAAS;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAA2B;cAEvC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACzF,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAuFlC,eAAe;IAY7B,OAAO,CAAC,6BAA6B;YAYvB,+BAA+B;IAqC7C,OAAO,CAAC,eAAe;CA0B1B"}
|
|
@@ -42,7 +42,8 @@ class AggregateDBTool extends mongodbTool_js_1.MongoDBToolBase {
|
|
|
42
42
|
};
|
|
43
43
|
this.outputSchema = AggregateDBOutputSchema;
|
|
44
44
|
}
|
|
45
|
-
async execute({ connectionId, database, pipeline, responseBytesLimit },
|
|
45
|
+
async execute({ connectionId, database, pipeline, responseBytesLimit }, context) {
|
|
46
|
+
const { signal } = context;
|
|
46
47
|
let aggregationCursor = undefined;
|
|
47
48
|
try {
|
|
48
49
|
const provider = await this.resolveConnection(connectionId);
|
|
@@ -51,7 +52,9 @@ class AggregateDBTool extends mongodbTool_js_1.MongoDBToolBase {
|
|
|
51
52
|
let documents;
|
|
52
53
|
let aggResultsCount;
|
|
53
54
|
let appliedLimits = [];
|
|
54
|
-
|
|
55
|
+
const writeStageTargets = (0, mqlGuards_js_1.getWriteStageTargets)(pipeline, database);
|
|
56
|
+
if (writeStageTargets.length > 0) {
|
|
57
|
+
await this.confirmWriteStages(writeStageTargets, context);
|
|
55
58
|
// This is a write pipeline, so special-case it and don't attempt to apply limits or caps
|
|
56
59
|
aggregationCursor = provider.aggregateDb(database, pipeline, {
|
|
57
60
|
...this.getOperationOptions(signal),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateDB.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregateDB.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAGxB,sDAAuF;AAEvF,2CAAoD;AAEpD,yDAAqE;AACrE,kGAAiG;AACjG,wFAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"aggregateDB.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregateDB.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAGxB,sDAAuF;AAEvF,2CAAoD;AAEpD,yDAAqE;AACrE,kGAAiG;AACjG,wFAAkF;AAClF,gEAAqE;AACrE,gEAMuC;AACvC,+DAAyD;AACzD,4DAAuF;AACvF,kEAA4D;AAE5D,MAAM,uBAAuB,GAAG;IAC5B,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IAC9F,eAAe,EAAE,OAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oEAAoE,CAAC;IACnF,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,gCAAiB,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CACvG,CAAC;AAEW,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE,OAAC;SACN,KAAK,CAAC,qCAAiB,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACL,iHAAiH,gDAA4B,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gGAAgG,CACpR;CACR,CAAC;AAEF,MAAa,eAAgB,SAAQ,gCAAe;IAApD;;QAEW,gBAAW,GAAG,+CAA+C,CAAC;QAC9D,cAAS,GAAG;YACf,GAAG,iCAAgB;YACnB,GAAG,gCAAe;YAClB,GAAG,qBAAa;YAChB,kBAAkB,EAAE,OAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,OAAO,CAAC,qBAAM,CAAC;iBACf,QAAQ,CACL,wIAAwI,CAC3I;SACR,CAAC;QAGc,iBAAY,GAAG,uBAAuB,CAAC;IAmL3D,CAAC;IAjLa,KAAK,CAAC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAmC,EACzF,OAA6B;QAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,IAAI,iBAAiB,GAAkC,SAAS,CAAC;QACjE,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC5D,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAI,cAAsB,CAAC;YAC3B,IAAI,SAAoB,CAAC;YACzB,IAAI,eAAmC,CAAC;YACxC,IAAI,aAAa,GAAqB,EAAE,CAAC;YAEzC,MAAM,iBAAiB,GAAG,IAAA,mCAAoB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBAE1D,yFAAyF;gBACzF,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE;oBACzD,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;iBACtC,CAAC,CAAC;gBAEH,SAAS,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC9C,cAAc,GAAG,iDAAiD,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACJ,MAAM,qBAAqB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;oBACvC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBACD,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE;oBACtE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;iBACtC,CAAC,CAAC;gBAEH,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACtD,IAAI,CAAC,+BAA+B,CAAC;wBACjC,QAAQ;wBACR,QAAQ;wBACR,QAAQ;wBACR,WAAW,EAAE,MAAM;qBACtB,CAAC;oBACF,IAAA,+DAA+B,EAAC;wBAC5B,MAAM,EAAE,iBAAiB;wBACzB,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;wBACxD,sBAAsB,EAAE,kBAAkB;wBAC1C,WAAW,EAAE,MAAM;qBACtB,CAAC;iBACL,CAAC,CAAC;gBAEH,iEAAiE;gBACjE,mDAAmD;gBACnD,mEAAmE;gBACnE,UAAU;gBACV,MAAM,2CAA2C,GAC7C,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC;oBACpC,CAAC,CAAC,cAAc;oBAChB,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBAEtD,SAAS,GAAG,IAAA,0BAAU,EAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAChD,eAAe,GAAG,cAAc,CAAC;gBACjC,aAAa,GAAG;oBACZ,2CAA2C,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS;oBACvF,aAAa,CAAC,QAAQ;iBACzB,CAAC,MAAM,CAAC,CAAC,KAAK,EAA2B,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtD,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;oBAClC,eAAe;oBACf,SAAS;oBACT,aAAa;iBAChB,CAAC,CAAC;YACP,CAAC;YAED,OAAO;gBACH,OAAO,EAAE,IAAA,6BAAmB,EACxB,cAAc,EACd,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAC/D;gBACD,iBAAiB,EAAE;oBACf,SAAS;oBACT,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7D,aAAa;iBAChB;aACJ,CAAC;QACN,CAAC;gBAAS,CAAC;YACP,IAAI,iBAAiB,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACjD,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAkC;QAC5D,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxB,EAAE,EAAE,gBAAK,CAAC,uBAAuB;gBACjC,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACvG,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,6BAA6B,CAAC,QAAmC;QACrE,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,IAAI,CAAC,gDAA4B,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,wBAAY,CAClB,sBAAU,CAAC,eAAe,EAC1B,sFAAsF,gDAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnI,CAAC;QACN,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,EAC1C,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GAMd;QACG,MAAM,uBAAuB,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5E,OAAO,MAAM,IAAA,gDAAqB,EAAC,KAAK,IAAiC,EAAE;YACvE,MAAM,kBAAkB,GAAG,MAAM,QAAQ;iBACpC,WAAW,CAAC,QAAQ,EAAE,uBAAuB,EAAE;gBAC5C,MAAM,EAAE,WAAW;aACtB,CAAC;iBACD,SAAS,CACN,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,wCAAyB,CAAC;gBAC5D,CAAC,CAAC,wCAAyB,CAClC;iBACA,OAAO,EAAE,CAAC;YAEf,MAAM,iBAAiB,GAAY,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,cAAc,GAChB,iBAAiB;gBACjB,OAAO,iBAAiB,KAAK,QAAQ;gBACrC,gBAAgB,IAAI,iBAAiB;gBACrC,OAAO,iBAAiB,CAAC,cAAc,KAAK,QAAQ;gBAChD,CAAC,CAAC,iBAAiB,CAAC,cAAc;gBAClC,CAAC,CAAC,CAAC,CAAC;YAEZ,OAAO,cAAc,CAAC;QAC1B,CAAC,EAAE,SAAS,CAAC,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,EACpB,eAAe,EACf,SAAS,EACT,aAAa,GAKhB;QACG,IAAI,OAAO,GAAG,+BAA+B,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,eAAe,aAAa,CAAC;QAEvI,qFAAqF;QACrF,8DAA8D;QAC9D,IAAI,SAAS,CAAC,MAAM,KAAK,eAAe,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YAC/D,OAAO,IAAI,cAAc,SAAS,CAAC,MAAM,YAAY,CAAC;YACtD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,IAAI,2CAA2C,aAAa;qBAC9D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wCAAyB,CAAC,KAAK,CAAC,CAAC;qBAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,CAAC;YAED,OAAO,IAAI,GAAG,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;;AAnML,0CAoMC;AAnMU,wBAAQ,GAAG,cAAc,AAAjB,CAAkB;AAc1B,6BAAa,GAAkB,MAAM,AAAxB,CAAyB"}
|