mongodb-runner 5.11.1 → 6.1.0
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 +6 -0
- package/dist/.esm-wrapper.mjs +1 -0
- package/dist/cli.js +19 -35
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/mongocluster.d.ts +3 -0
- package/dist/mongocluster.d.ts.map +1 -1
- package/dist/mongocluster.js +41 -3
- package/dist/mongocluster.js.map +1 -1
- package/dist/oidc.d.ts +12 -0
- package/dist/oidc.d.ts.map +1 -0
- package/dist/oidc.js +118 -0
- package/dist/oidc.js.map +1 -0
- package/dist/runner-helpers.d.ts +4 -0
- package/dist/runner-helpers.d.ts.map +1 -1
- package/dist/runner-helpers.js +36 -0
- package/dist/runner-helpers.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Helper for spinning up MongoDB servers and clusters for testing.
|
|
4
4
|
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
Node.js >= 20.19.5, npm >= 11.6.0. Running as `npx mongodb-runner ...`
|
|
8
|
+
is typically the easiest way to install/run this tool.
|
|
9
|
+
|
|
5
10
|
## Example usage
|
|
6
11
|
|
|
7
12
|
> Note: Version 5 of mongodb-runner is a full re-write. Many things work
|
|
@@ -11,6 +16,7 @@ Helper for spinning up MongoDB servers and clusters for testing.
|
|
|
11
16
|
$ npx mongodb-runner start -t sharded
|
|
12
17
|
$ npx mongodb-runner start -t replset -- --port 27017
|
|
13
18
|
$ npx mongodb-runner start -t replset -- --setParameter allowDiskUseByDefault=true
|
|
19
|
+
$ npx mongodb-runner start -t replset --version 8.2.x-enterprise --oidc='--payload={"groups":["x"],"sub":"y","aud":"aud"} --expiry=60 --skip-refresh-token'
|
|
14
20
|
$ npx mongodb-runner stop --all
|
|
15
21
|
$ npx mongodb-runner exec -t standalone -- sh -c 'mongosh $MONGODB_URI'
|
|
16
22
|
$ npx mongodb-runner exec -t standalone -- --setParameter allowDiskUseByDefault=true -- sh -c 'mongosh $MONGODB_URI'
|
package/dist/.esm-wrapper.mjs
CHANGED
|
@@ -3,6 +3,7 @@ import mod from "./index.js";
|
|
|
3
3
|
export default mod;
|
|
4
4
|
export const MongoCluster = mod.MongoCluster;
|
|
5
5
|
export const MongoServer = mod.MongoServer;
|
|
6
|
+
export const exec = mod.exec;
|
|
6
7
|
export const instances = mod.instances;
|
|
7
8
|
export const prune = mod.prune;
|
|
8
9
|
export const start = mod.start;
|
package/dist/cli.js
CHANGED
|
@@ -37,13 +37,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
const yargs_1 = __importDefault(require("yargs"));
|
|
40
|
-
const mongocluster_1 = require("./mongocluster");
|
|
41
40
|
const os_1 = __importDefault(require("os"));
|
|
42
41
|
const path_1 = __importDefault(require("path"));
|
|
43
|
-
const child_process_1 = require("child_process");
|
|
44
42
|
const debug_1 = __importDefault(require("debug"));
|
|
45
|
-
const events_1 = require("events");
|
|
46
43
|
const utilities = __importStar(require("./index"));
|
|
44
|
+
const mongodb_connection_string_url_1 = require("mongodb-connection-string-url");
|
|
47
45
|
(async function () {
|
|
48
46
|
const defaultRunnerDir = path_1.default.join(os_1.default.homedir(), '.mongodb', 'runner2');
|
|
49
47
|
const argv = await yargs_1.default
|
|
@@ -105,6 +103,10 @@ const utilities = __importStar(require("./index"));
|
|
|
105
103
|
.option('all', {
|
|
106
104
|
type: 'boolean',
|
|
107
105
|
describe: 'for `stop`: stop all clusters',
|
|
106
|
+
})
|
|
107
|
+
.option('oidc', {
|
|
108
|
+
type: 'string',
|
|
109
|
+
describe: 'Configure OIDC authentication on the server',
|
|
108
110
|
})
|
|
109
111
|
.option('debug', { type: 'boolean', describe: 'Enable debug output' })
|
|
110
112
|
.command('start', 'Start a MongoDB instance')
|
|
@@ -118,9 +120,21 @@ const utilities = __importStar(require("./index"));
|
|
|
118
120
|
if (argv.debug) {
|
|
119
121
|
debug_1.default.enable('mongodb-runner');
|
|
120
122
|
}
|
|
123
|
+
if (argv.oidc && process.platform !== 'linux') {
|
|
124
|
+
console.warn('OIDC authentication is currently only supported on Linux platforms.');
|
|
125
|
+
}
|
|
126
|
+
if (argv.oidc && !argv.version?.includes('enterprise')) {
|
|
127
|
+
console.warn('OIDC authentication is currently only supported on Enterprise server versions.');
|
|
128
|
+
}
|
|
121
129
|
async function start() {
|
|
122
130
|
const { cluster, id } = await utilities.start(argv, args);
|
|
123
|
-
|
|
131
|
+
const cs = new mongodb_connection_string_url_1.ConnectionString(cluster.connectionString);
|
|
132
|
+
console.log(`Server started and running at ${cs.toString()}`);
|
|
133
|
+
if (cluster.oidcIssuer) {
|
|
134
|
+
cs.typedSearchParams().set('authMechanism', 'MONGODB-OIDC');
|
|
135
|
+
console.log(`OIDC provider started and running at ${cluster.oidcIssuer}`);
|
|
136
|
+
console.log(`Server connection string with OIDC auth: ${cs.toString()}`);
|
|
137
|
+
}
|
|
124
138
|
console.log('Run the following command to stop the instance:');
|
|
125
139
|
console.log(`${argv.$0} stop --id=${id}` +
|
|
126
140
|
(argv.runnerDir !== defaultRunnerDir
|
|
@@ -143,37 +157,7 @@ const utilities = __importStar(require("./index"));
|
|
|
143
157
|
await utilities.prune(argv);
|
|
144
158
|
}
|
|
145
159
|
async function exec() {
|
|
146
|
-
|
|
147
|
-
let execArgs;
|
|
148
|
-
const doubleDashIndex = args.indexOf('--');
|
|
149
|
-
if (doubleDashIndex !== -1) {
|
|
150
|
-
mongodArgs = args.slice(0, doubleDashIndex);
|
|
151
|
-
execArgs = args.slice(doubleDashIndex + 1);
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
mongodArgs = [];
|
|
155
|
-
execArgs = args;
|
|
156
|
-
}
|
|
157
|
-
const cluster = await mongocluster_1.MongoCluster.start({
|
|
158
|
-
...argv,
|
|
159
|
-
args: mongodArgs,
|
|
160
|
-
});
|
|
161
|
-
try {
|
|
162
|
-
const [prog, ...progArgs] = execArgs;
|
|
163
|
-
const child = (0, child_process_1.spawn)(prog, progArgs, {
|
|
164
|
-
stdio: 'inherit',
|
|
165
|
-
env: {
|
|
166
|
-
...process.env,
|
|
167
|
-
MONGODB_URI: cluster.connectionString,
|
|
168
|
-
MONGODB_URL: cluster.connectionString,
|
|
169
|
-
MONGODB_HOSTPORT: cluster.hostport,
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
[process.exitCode] = await (0, events_1.once)(child, 'exit');
|
|
173
|
-
}
|
|
174
|
-
finally {
|
|
175
|
-
await cluster.close();
|
|
176
|
-
}
|
|
160
|
+
await utilities.exec(argv, args);
|
|
177
161
|
}
|
|
178
162
|
async function unknown() {
|
|
179
163
|
throw new Error(`Unknown command: ${command}. See '${argv.$0} --help' for more information.`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { MongoServer, MongoServerOptions } from './mongoserver';
|
|
2
2
|
export { MongoCluster, MongoClusterOptions } from './mongocluster';
|
|
3
3
|
export type { ConnectionString } from 'mongodb-connection-string-url';
|
|
4
|
-
export { prune, start, stop, instances } from './runner-helpers';
|
|
4
|
+
export { prune, start, stop, exec, instances } from './runner-helpers';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.instances = exports.start = exports.prune = exports.MongoCluster = exports.MongoServer = void 0;
|
|
3
|
+
exports.instances = exports.exec = exports.start = exports.prune = exports.MongoCluster = exports.MongoServer = void 0;
|
|
4
4
|
var mongoserver_1 = require("./mongoserver");
|
|
5
5
|
Object.defineProperty(exports, "MongoServer", { enumerable: true, get: function () { return mongoserver_1.MongoServer; } });
|
|
6
6
|
var mongocluster_1 = require("./mongocluster");
|
|
@@ -9,5 +9,6 @@ var runner_helpers_1 = require("./runner-helpers");
|
|
|
9
9
|
Object.defineProperty(exports, "prune", { enumerable: true, get: function () { return runner_helpers_1.prune; } });
|
|
10
10
|
Object.defineProperty(exports, "start", { enumerable: true, get: function () { return runner_helpers_1.start; } });
|
|
11
11
|
Object.defineProperty(exports, "stop", { enumerable: true, get: function () { return runner_helpers_1.stop; } });
|
|
12
|
+
Object.defineProperty(exports, "exec", { enumerable: true, get: function () { return runner_helpers_1.exec; } });
|
|
12
13
|
Object.defineProperty(exports, "instances", { enumerable: true, get: function () { return runner_helpers_1.instances; } });
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAgE;AAAvD,0GAAA,WAAW,OAAA;AAEpB,+CAAmE;AAA1D,4GAAA,YAAY,OAAA;AAErB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAAgE;AAAvD,0GAAA,WAAW,OAAA;AAEpB,+CAAmE;AAA1D,4GAAA,YAAY,OAAA;AAErB,mDAAuE;AAA9D,uGAAA,KAAK,OAAA;AAAE,uGAAA,KAAK,OAAA;AAAE,sGAAA,IAAI,OAAA;AAAE,sGAAA,IAAI,OAAA;AAAE,2GAAA,SAAS,OAAA"}
|
package/dist/mongocluster.d.ts
CHANGED
|
@@ -11,12 +11,14 @@ export interface MongoClusterOptions extends Pick<MongoServerOptions, 'logDir' |
|
|
|
11
11
|
version?: string;
|
|
12
12
|
downloadDir?: string;
|
|
13
13
|
downloadOptions?: DownloadOptions;
|
|
14
|
+
oidc?: string;
|
|
14
15
|
}
|
|
15
16
|
export declare class MongoCluster {
|
|
16
17
|
private topology;
|
|
17
18
|
private replSetName?;
|
|
18
19
|
private servers;
|
|
19
20
|
private shards;
|
|
21
|
+
private oidcMockProviderProcess?;
|
|
20
22
|
private constructor();
|
|
21
23
|
private static downloadMongoDb;
|
|
22
24
|
serialize(): unknown;
|
|
@@ -24,6 +26,7 @@ export declare class MongoCluster {
|
|
|
24
26
|
static deserialize(serialized: any): Promise<MongoCluster>;
|
|
25
27
|
get hostport(): string;
|
|
26
28
|
get connectionString(): string;
|
|
29
|
+
get oidcIssuer(): string | undefined;
|
|
27
30
|
get connectionStringUrl(): ConnectionString;
|
|
28
31
|
get serverVersion(): string;
|
|
29
32
|
get serverVariant(): 'enterprise' | 'community';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongocluster.d.ts","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"mongocluster.d.ts","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CACnD;IACD,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,uBAAuB,CAAC,CAA0B;IAE1D,OAAO;IAIP,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B,SAAS,IAAI,OAAO;IAUpB,QAAQ,IAAI,OAAO;WAIN,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAgBhE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAQ7B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,IAAI,mBAAmB,IAAI,gBAAgB,CAE1C;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,WAAW,CAE9C;WAEY,KAAK,CAAC,EACjB,GAAG,OAAO,EACX,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAkKxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,KAAK,GAAG,EACtD,EAAE,EAAE,EAAE,EACN,aAAa,GAAE,kBAAuB,GACrC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAY1B,GAAG,IAAI,IAAI;IAIX,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/mongocluster.js
CHANGED
|
@@ -6,6 +6,7 @@ const mongodb_connection_string_url_1 = require("mongodb-connection-string-url")
|
|
|
6
6
|
const mongodb_downloader_1 = require("@mongodb-js/mongodb-downloader");
|
|
7
7
|
const mongodb_1 = require("mongodb");
|
|
8
8
|
const util_1 = require("./util");
|
|
9
|
+
const oidc_1 = require("./oidc");
|
|
9
10
|
class MongoCluster {
|
|
10
11
|
constructor() {
|
|
11
12
|
this.topology = 'standalone';
|
|
@@ -13,7 +14,12 @@ class MongoCluster {
|
|
|
13
14
|
this.shards = [];
|
|
14
15
|
}
|
|
15
16
|
static downloadMongoDb(tmpdir, targetVersionSemverSpecifier, options) {
|
|
16
|
-
return (0, mongodb_downloader_1.downloadMongoDb)(
|
|
17
|
+
return (0, mongodb_downloader_1.downloadMongoDb)({
|
|
18
|
+
directory: tmpdir,
|
|
19
|
+
version: targetVersionSemverSpecifier,
|
|
20
|
+
downloadOptions: options,
|
|
21
|
+
useLockfile: true,
|
|
22
|
+
});
|
|
17
23
|
}
|
|
18
24
|
serialize() {
|
|
19
25
|
return {
|
|
@@ -21,6 +27,7 @@ class MongoCluster {
|
|
|
21
27
|
replSetName: this.replSetName,
|
|
22
28
|
servers: this.servers.map((srv) => srv.serialize()),
|
|
23
29
|
shards: this.shards.map((shard) => shard.serialize()),
|
|
30
|
+
oidcMockProviderProcess: this.oidcMockProviderProcess?.serialize(),
|
|
24
31
|
};
|
|
25
32
|
}
|
|
26
33
|
isClosed() {
|
|
@@ -32,13 +39,22 @@ class MongoCluster {
|
|
|
32
39
|
cluster.replSetName = serialized.replSetName;
|
|
33
40
|
cluster.servers = await Promise.all(serialized.servers.map((srv) => mongoserver_1.MongoServer.deserialize(srv)));
|
|
34
41
|
cluster.shards = await Promise.all(serialized.shards.map((shard) => MongoCluster.deserialize(shard)));
|
|
42
|
+
cluster.oidcMockProviderProcess = serialized.oidcMockProviderProcess
|
|
43
|
+
? oidc_1.OIDCMockProviderProcess.deserialize(serialized.oidcMockProviderProcess)
|
|
44
|
+
: undefined;
|
|
35
45
|
return cluster;
|
|
36
46
|
}
|
|
37
47
|
get hostport() {
|
|
38
48
|
return this.servers.map((srv) => srv.hostport).join(',');
|
|
39
49
|
}
|
|
40
50
|
get connectionString() {
|
|
41
|
-
|
|
51
|
+
const cs = new mongodb_connection_string_url_1.ConnectionString(`mongodb://${this.hostport}/`);
|
|
52
|
+
if (this.replSetName)
|
|
53
|
+
cs.typedSearchParams().set('replicaSet', this.replSetName);
|
|
54
|
+
return cs.toString();
|
|
55
|
+
}
|
|
56
|
+
get oidcIssuer() {
|
|
57
|
+
return this.oidcMockProviderProcess?.issuer;
|
|
42
58
|
}
|
|
43
59
|
get connectionStringUrl() {
|
|
44
60
|
return new mongodb_connection_string_url_1.ConnectionString(this.connectionString);
|
|
@@ -55,6 +71,28 @@ class MongoCluster {
|
|
|
55
71
|
if (!options.binDir) {
|
|
56
72
|
options.binDir = await this.downloadMongoDb(options.downloadDir ?? options.tmpDir, options.version, options.downloadOptions);
|
|
57
73
|
}
|
|
74
|
+
if (options.oidc !== undefined) {
|
|
75
|
+
cluster.oidcMockProviderProcess = await oidc_1.OIDCMockProviderProcess.start(options.oidc || '--port=0');
|
|
76
|
+
const oidcServerConfig = [
|
|
77
|
+
{
|
|
78
|
+
issuer: cluster.oidcMockProviderProcess.issuer,
|
|
79
|
+
audience: cluster.oidcMockProviderProcess.audience,
|
|
80
|
+
authNamePrefix: 'dev',
|
|
81
|
+
clientId: 'cid',
|
|
82
|
+
authorizationClaim: 'groups',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
delete options.oidc;
|
|
86
|
+
options.args = [
|
|
87
|
+
...(options.args ?? []),
|
|
88
|
+
'--setParameter',
|
|
89
|
+
`oidcIdentityProviders=${JSON.stringify(oidcServerConfig)}`,
|
|
90
|
+
'--setParameter',
|
|
91
|
+
'authenticationMechanisms=SCRAM-SHA-256,MONGODB-OIDC',
|
|
92
|
+
'--setParameter',
|
|
93
|
+
'enableTestCommands=true',
|
|
94
|
+
];
|
|
95
|
+
}
|
|
58
96
|
if (options.topology === 'standalone') {
|
|
59
97
|
cluster.servers.push(await mongoserver_1.MongoServer.start({
|
|
60
98
|
...options,
|
|
@@ -162,7 +200,7 @@ class MongoCluster {
|
|
|
162
200
|
return cluster;
|
|
163
201
|
}
|
|
164
202
|
async close() {
|
|
165
|
-
await Promise.all([...this.servers, ...this.shards].map((closable) => closable
|
|
203
|
+
await Promise.all([...this.servers, ...this.shards, this.oidcMockProviderProcess].map((closable) => closable?.close()));
|
|
166
204
|
this.servers = [];
|
|
167
205
|
this.shards = [];
|
|
168
206
|
}
|
package/dist/mongocluster.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongocluster.js","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAC5C,iFAAiE;AAEjE,uEAAiE;AAEjE,qCAAsC;AACtC,iCAAmD;
|
|
1
|
+
{"version":3,"file":"mongocluster.js","sourceRoot":"","sources":["../src/mongocluster.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAC5C,iFAAiE;AAEjE,uEAAiE;AAEjE,qCAAsC;AACtC,iCAAmD;AACnD,iCAAiD;AAiBjD,MAAa,YAAY;IAOvB;QANQ,aAAQ,GAAoC,YAAY,CAAC;QAEzD,YAAO,GAAkB,EAAE,CAAC;QAC5B,WAAM,GAAmB,EAAE,CAAC;IAKpC,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,MAAc,EACd,4BAAiD,EACjD,OAAqC;QAErC,OAAO,IAAA,oCAAe,EAAC;YACrB,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,4BAA4B;YACrC,eAAe,EAAE,OAAO;YACxB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrD,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,EAAE;SACnE,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAe;QACtC,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACvC,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC7C,OAAO,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,yBAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CACnE,CAAC;QACF,OAAO,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CACvE,CAAC;QACF,OAAO,CAAC,uBAAuB,GAAG,UAAU,CAAC,uBAAuB;YAClE,CAAC,CAAC,8BAAuB,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC;YACzE,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,gBAAgB;QAClB,MAAM,EAAE,GAAG,IAAI,gDAAgB,CAAC,aAAa,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,WAAW;YAClB,EAAE,CAAC,iBAAiB,EAAsB,CAAC,GAAG,CAC5C,YAAY,EACZ,IAAI,CAAC,WAAW,CACjB,CAAC;QACJ,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAC9C,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,gDAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EACjB,GAAG,OAAO,EACU;QACpB,MAAM,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CACzC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,EACrC,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,eAAe,CACxB,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,uBAAuB,GAAG,MAAM,8BAAuB,CAAC,KAAK,CACnE,OAAO,CAAC,IAAI,IAAI,UAAU,CAC3B,CAAC;YACF,MAAM,gBAAgB,GAAG;gBACvB;oBACE,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,MAAM;oBAC9C,QAAQ,EAAE,OAAO,CAAC,uBAAuB,CAAC,QAAQ;oBAClD,cAAc,EAAE,KAAK;oBACrB,QAAQ,EAAE,KAAK;oBACf,kBAAkB,EAAE,QAAQ;iBAC7B;aACF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC;YACpB,OAAO,CAAC,IAAI,GAAG;gBACb,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;gBACvB,gBAAgB;gBAChB,yBAAyB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;gBAC3D,gBAAgB;gBAChB,qDAAqD;gBACrD,gBAAgB;gBAChB,yBAAyB;aAC1B,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;YACtC,OAAO,CAAC,OAAO,CAAC,IAAI,CAClB,MAAM,yBAAW,CAAC,KAAK,CAAC;gBACtB,GAAG,OAAO;gBACV,MAAM,EAAE,QAAQ;aACjB,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;YAElD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,WAAmB,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChC,WAAW,GAAG,WAAW,IAAA,WAAI,GAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,IAAA,YAAK,EAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,yBAAW,CAAC,KAAK,CAAC;gBACtC,GAAG,OAAO;gBACV,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;YAED,IAAA,YAAK,EAAC,mCAAmC,EAAE;gBACzC,WAAW;gBACX,QAAQ;gBACR,IAAI;aACL,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,IAAI,CAClB,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CACnB,IAAA,YAAK,EAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CACrC,yBAAW,CAAC,KAAK,CAAC;gBAChB,GAAG,OAAO;gBACV,IAAI;gBACJ,MAAM,EAAE,QAAQ;aACjB,CAAC,CACH,CACF,CAAC,CACH,CAAC;YAEF,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxC,IAAA,YAAK,EAAC,qBAAqB,CAAC,CAAC;gBAC7B,MAAM,MAAM,GAAG;oBACb,GAAG,EAAE,WAAW;oBAChB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;oBACvC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;wBACtC,OAAO;4BACL,GAAG,EAAE,CAAC;4BACN,IAAI,EAAE,GAAG,CAAC,QAAQ;4BAClB,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW;4BAChC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC1B,CAAC;oBACJ,CAAC,CAAC;iBACH,CAAC;gBACF,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;oBAC/B,eAAe,EAAE,MAAM;iBACxB,CAAC,CAAC;gBAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;wBAC9C,gBAAgB,EAAE,CAAC;qBACpB,CAAC,CAAC;oBACH,IACE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,EACnE,CAAC;wBACD,IAAA,YAAK,EAAC,yCAAyC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7D,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;wBACjC,MAAM;oBACR,CAAC;oBACD,IAAA,YAAK,EAAC,+CAA+C,CAAC,CAAC;oBACvD,MAAM,IAAA,YAAK,EAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;YAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YAED,IAAA,YAAK,EAAC,0CAA0C,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CACjD,IAAA,YAAK,EAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1B,YAAY,CAAC,KAAK,CAAC;gBACjB,GAAG,OAAO;gBACV,IAAI,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC1D,QAAQ,EAAE,SAAS;aACpB,CAAC,CACH,CACF,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;YAE7C,IAAA,YAAK,EAAC,iBAAiB,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,yBAAW,CAAC,KAAK,CAAC;gBACrC,GAAG,OAAO;gBACV,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE;oBACJ,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;oBACvB,YAAY;oBACZ,GAAG,SAAS,CAAC,WAAY,IAAI,SAAS,CAAC,QAAQ,EAAE;iBAClD;aACF,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACvC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;oBAC9B,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,WAAY,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC5D,IAAA,YAAK,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;oBACjC,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;wBAC/B,QAAQ,EAAE,SAAS;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,IAAA,YAAK,EAAC,cAAc,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC,GAAG,CACjE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAChC,CACF,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CACd,EAAM,EACN,gBAAoC,EAAE;QAEtC,MAAM,MAAM,GAAG,MAAM,qBAAW,CAAC,OAAO,CACtC,IAAI,CAAC,gBAAgB,EACrB,aAAa,CACd,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,GAAG;QACD,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,KAAK;QACH,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACvE,CAAC;CACF;AAxRD,oCAwRC"}
|
package/dist/oidc.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class OIDCMockProviderProcess {
|
|
2
|
+
pid?: number;
|
|
3
|
+
issuer?: string;
|
|
4
|
+
uuid?: string;
|
|
5
|
+
audience?: string;
|
|
6
|
+
serialize(): unknown;
|
|
7
|
+
static deserialize(serialized: any): OIDCMockProviderProcess;
|
|
8
|
+
private constructor();
|
|
9
|
+
static start(args: string): Promise<OIDCMockProviderProcess>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=oidc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"AA+CA,qBAAa,uBAAuB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,SAAS,IAAI,OAAO;IASpB,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,uBAAuB;IAS5D,OAAO;WAIM,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAqC5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
|
package/dist/oidc.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OIDCMockProviderProcess = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const events_1 = require("events");
|
|
6
|
+
const oidc_mock_provider_1 = require("@mongodb-js/oidc-mock-provider");
|
|
7
|
+
const util_1 = require("./util");
|
|
8
|
+
if (process.env.RUN_OIDC_MOCK_PROVIDER !== undefined) {
|
|
9
|
+
(async function main() {
|
|
10
|
+
const uuid = crypto.randomUUID();
|
|
11
|
+
(0, util_1.debug)('starting OIDC mock provider with UUID', uuid);
|
|
12
|
+
const config = (0, oidc_mock_provider_1.parseCLIArgs)(process.env.RUN_OIDC_MOCK_PROVIDER);
|
|
13
|
+
const sampleTokenConfig = await config.getTokenPayload({
|
|
14
|
+
client_id: 'cid',
|
|
15
|
+
scope: 'scope',
|
|
16
|
+
});
|
|
17
|
+
(0, util_1.debug)('sample OIDC token config', sampleTokenConfig, uuid);
|
|
18
|
+
const audience = sampleTokenConfig.payload.aud;
|
|
19
|
+
const provider = await oidc_mock_provider_1.OIDCMockProvider.create({
|
|
20
|
+
...config,
|
|
21
|
+
overrideRequestHandler(url, req, res) {
|
|
22
|
+
if (new URL(url).pathname === `/shutdown/${uuid}`) {
|
|
23
|
+
res.on('close', () => {
|
|
24
|
+
process.exit();
|
|
25
|
+
});
|
|
26
|
+
res.writeHead(200);
|
|
27
|
+
res.end();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
return config.overrideRequestHandler?.(url, req, res);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
(0, util_1.debug)('started OIDC mock provider with UUID', {
|
|
34
|
+
issuer: provider.issuer,
|
|
35
|
+
uuid,
|
|
36
|
+
audience,
|
|
37
|
+
});
|
|
38
|
+
process.send?.({
|
|
39
|
+
issuer: provider.issuer,
|
|
40
|
+
uuid,
|
|
41
|
+
audience,
|
|
42
|
+
});
|
|
43
|
+
})().catch((error) => {
|
|
44
|
+
console.error('Error starting OIDC mock identity provider server:', error);
|
|
45
|
+
process.exitCode = 1;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
class OIDCMockProviderProcess {
|
|
49
|
+
serialize() {
|
|
50
|
+
return {
|
|
51
|
+
pid: this.pid,
|
|
52
|
+
issuer: this.issuer,
|
|
53
|
+
uuid: this.uuid,
|
|
54
|
+
audience: this.audience,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
static deserialize(serialized) {
|
|
58
|
+
const process = new OIDCMockProviderProcess();
|
|
59
|
+
process.pid = serialized.pid;
|
|
60
|
+
process.issuer = serialized.issuer;
|
|
61
|
+
process.uuid = serialized.uuid;
|
|
62
|
+
process.audience = serialized.audience;
|
|
63
|
+
return process;
|
|
64
|
+
}
|
|
65
|
+
constructor() {
|
|
66
|
+
}
|
|
67
|
+
static async start(args) {
|
|
68
|
+
const oidcProc = new this();
|
|
69
|
+
(0, util_1.debug)('spawning OIDC child process', [process.execPath, __filename], args);
|
|
70
|
+
const proc = (0, child_process_1.spawn)(process.execPath, [__filename], {
|
|
71
|
+
stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
|
|
72
|
+
env: {
|
|
73
|
+
...process.env,
|
|
74
|
+
RUN_OIDC_MOCK_PROVIDER: args,
|
|
75
|
+
},
|
|
76
|
+
detached: true,
|
|
77
|
+
serialization: 'advanced',
|
|
78
|
+
});
|
|
79
|
+
await (0, events_1.once)(proc, 'spawn');
|
|
80
|
+
try {
|
|
81
|
+
oidcProc.pid = proc.pid;
|
|
82
|
+
const [msg] = await Promise.race([
|
|
83
|
+
(0, events_1.once)(proc, 'message'),
|
|
84
|
+
(0, events_1.once)(proc, 'exit').then(() => {
|
|
85
|
+
throw new Error(`OIDC mock provider process exited before sending message (${String(proc.exitCode)}, ${String(proc.signalCode)})`);
|
|
86
|
+
}),
|
|
87
|
+
]);
|
|
88
|
+
(0, util_1.debug)('received message from OIDC child process', msg);
|
|
89
|
+
oidcProc.issuer = msg.issuer;
|
|
90
|
+
oidcProc.uuid = msg.uuid;
|
|
91
|
+
oidcProc.audience = msg.audience;
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
proc.kill();
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
97
|
+
proc.unref();
|
|
98
|
+
proc.channel?.unref();
|
|
99
|
+
(0, util_1.debug)('OIDC setup complete, uuid =', oidcProc.uuid);
|
|
100
|
+
return oidcProc;
|
|
101
|
+
}
|
|
102
|
+
async close() {
|
|
103
|
+
try {
|
|
104
|
+
if (this.pid)
|
|
105
|
+
process.kill(this.pid, 0);
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
if (typeof e === 'object' && e && 'code' in e && e.code === 'ESRCH')
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!this.issuer || !this.uuid)
|
|
112
|
+
return;
|
|
113
|
+
await fetch(new URL(this.issuer, `/shutdown/${this.uuid}`));
|
|
114
|
+
this.uuid = undefined;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.OIDCMockProviderProcess = OIDCMockProviderProcess;
|
|
118
|
+
//# sourceMappingURL=oidc.js.map
|
package/dist/oidc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
|
package/dist/runner-helpers.d.ts
CHANGED
|
@@ -24,5 +24,9 @@ export declare function stop(argv: {
|
|
|
24
24
|
id?: string;
|
|
25
25
|
all?: boolean;
|
|
26
26
|
}): Promise<void>;
|
|
27
|
+
export declare function exec(argv: {
|
|
28
|
+
id?: string;
|
|
29
|
+
runnerDir: string;
|
|
30
|
+
} & MongoClusterOptions, args: string[]): Promise<void>;
|
|
27
31
|
export {};
|
|
28
32
|
//# sourceMappingURL=runner-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-helpers.d.ts","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-helpers.d.ts","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,KAAK,CACzB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,EACvB,IAAI,CAAC,EAAE,MAAM,EAAE;;;GAuBhB;AAED,wBAAuB,SAAS,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,aAAa,CAAC,cAAc,CAAC,CAYhC;AAMD,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAetE;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,iBAMA;AAED,wBAAsB,IAAI,CACxB,IAAI,EAAE;IACJ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,mBAAmB,EACvB,IAAI,EAAE,MAAM,EAAE,iBAiCf"}
|
package/dist/runner-helpers.js
CHANGED
|
@@ -40,11 +40,14 @@ exports.start = start;
|
|
|
40
40
|
exports.instances = instances;
|
|
41
41
|
exports.prune = prune;
|
|
42
42
|
exports.stop = stop;
|
|
43
|
+
exports.exec = exec;
|
|
43
44
|
const mongodb_1 = require("mongodb");
|
|
44
45
|
const path_1 = __importDefault(require("path"));
|
|
45
46
|
const mongocluster_1 = require("./mongocluster");
|
|
46
47
|
const util_1 = require("./util");
|
|
47
48
|
const fs = __importStar(require("fs/promises"));
|
|
49
|
+
const child_process_1 = require("child_process");
|
|
50
|
+
const events_1 = require("events");
|
|
48
51
|
async function start(argv, args) {
|
|
49
52
|
const id = argv.id || new mongodb_1.BSON.UUID().toHexString();
|
|
50
53
|
if (!/^[a-zA-Z0-9_-]+$/.test(id)) {
|
|
@@ -95,4 +98,37 @@ async function stop(argv) {
|
|
|
95
98
|
await fs.rm(instance.filepath);
|
|
96
99
|
});
|
|
97
100
|
}
|
|
101
|
+
async function exec(argv, args) {
|
|
102
|
+
let mongodArgs;
|
|
103
|
+
let execArgs;
|
|
104
|
+
const doubleDashIndex = args.indexOf('--');
|
|
105
|
+
if (doubleDashIndex !== -1) {
|
|
106
|
+
mongodArgs = args.slice(0, doubleDashIndex);
|
|
107
|
+
execArgs = args.slice(doubleDashIndex + 1);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
mongodArgs = [];
|
|
111
|
+
execArgs = args;
|
|
112
|
+
}
|
|
113
|
+
const cluster = await mongocluster_1.MongoCluster.start({
|
|
114
|
+
...argv,
|
|
115
|
+
args: mongodArgs,
|
|
116
|
+
});
|
|
117
|
+
try {
|
|
118
|
+
const [prog, ...progArgs] = execArgs;
|
|
119
|
+
const child = (0, child_process_1.spawn)(prog, progArgs, {
|
|
120
|
+
stdio: 'inherit',
|
|
121
|
+
env: {
|
|
122
|
+
...process.env,
|
|
123
|
+
MONGODB_URI: cluster.connectionString,
|
|
124
|
+
MONGODB_URL: cluster.connectionString,
|
|
125
|
+
MONGODB_HOSTPORT: cluster.hostport,
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
[process.exitCode] = await (0, events_1.once)(child, 'exit');
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
await cluster.close();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
98
134
|
//# sourceMappingURL=runner-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-helpers.js","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"runner-helpers.js","sourceRoot":"","sources":["../src/runner-helpers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"email": "compass@mongodb.com"
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://github.com/mongodb-js/devtools-shared",
|
|
16
|
-
"version": "
|
|
16
|
+
"version": "6.1.0",
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
19
|
"url": "https://github.com/mongodb-js/devtools-shared.git"
|
|
@@ -56,7 +56,8 @@
|
|
|
56
56
|
"reformat": "npm run prettier -- --write ."
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@mongodb-js/mongodb-downloader": "^0.
|
|
59
|
+
"@mongodb-js/mongodb-downloader": "^1.0.0",
|
|
60
|
+
"@mongodb-js/oidc-mock-provider": "^0.12.0",
|
|
60
61
|
"@mongodb-js/saslprep": "^1.3.2",
|
|
61
62
|
"debug": "^4.4.0",
|
|
62
63
|
"mongodb": "^6.9.0",
|
|
@@ -84,5 +85,5 @@
|
|
|
84
85
|
"sinon": "^9.2.3",
|
|
85
86
|
"typescript": "^5.0.4"
|
|
86
87
|
},
|
|
87
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "c39c38576926e2e17c763f91a81549a348c7da3d"
|
|
88
89
|
}
|