@quiltdata/benchling-webhook 0.9.0-20251127T032721Z → 0.9.0-20251129T063536Z
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 +114 -5
- package/dist/bin/benchling-webhook.js +6 -0
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cli.js +1 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts +2 -0
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +159 -65
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/commands/logs.d.ts.map +1 -1
- package/dist/bin/commands/logs.js +29 -6
- package/dist/bin/commands/logs.js.map +1 -1
- package/dist/bin/commands/status.d.ts +1 -0
- package/dist/bin/commands/status.d.ts.map +1 -1
- package/dist/bin/commands/status.js +55 -5
- package/dist/bin/commands/status.js.map +1 -1
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +10 -7
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/configuration-saver.d.ts +1 -1
- package/dist/lib/configuration-saver.d.ts.map +1 -1
- package/dist/lib/configuration-saver.js +4 -5
- package/dist/lib/configuration-saver.js.map +1 -1
- package/dist/lib/constants.d.ts +5 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +6 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/http-api-gateway.d.ts +3 -0
- package/dist/lib/http-api-gateway.d.ts.map +1 -1
- package/dist/lib/http-api-gateway.js +149 -4
- package/dist/lib/http-api-gateway.js.map +1 -1
- package/dist/lib/index.d.ts +0 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -4
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types/config.d.ts +1 -1
- package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -1
- package/dist/lib/wizard/phase2-stack-query.js +44 -0
- package/dist/lib/wizard/phase2-stack-query.js.map +1 -1
- package/dist/lib/wizard/phase3-parameter-collection.d.ts.map +1 -1
- package/dist/lib/wizard/phase3-parameter-collection.js +62 -0
- package/dist/lib/wizard/phase3-parameter-collection.js.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.js +3 -1
- package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.js +3 -1
- package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
- package/dist/lib/wizard/types.d.ts +24 -0
- package/dist/lib/wizard/types.d.ts.map +1 -1
- package/dist/package.json +8 -3
- package/dist/scripts/discover-vpc.d.ts +69 -0
- package/dist/scripts/discover-vpc.d.ts.map +1 -0
- package/dist/scripts/discover-vpc.js +196 -0
- package/dist/scripts/discover-vpc.js.map +1 -0
- package/package.json +8 -3
- package/dist/lib/rest-api-gateway.d.ts +0 -32
- package/dist/lib/rest-api-gateway.d.ts.map +0 -1
- package/dist/lib/rest-api-gateway.js +0 -257
- package/dist/lib/rest-api-gateway.js.map +0 -1
|
@@ -41,7 +41,7 @@ const cdk = __importStar(require("aws-cdk-lib"));
|
|
|
41
41
|
const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
|
|
42
42
|
const ecr = __importStar(require("aws-cdk-lib/aws-ecr"));
|
|
43
43
|
const fargate_service_1 = require("./fargate-service");
|
|
44
|
-
const
|
|
44
|
+
const http_api_gateway_1 = require("./http-api-gateway");
|
|
45
45
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
46
46
|
class BenchlingWebhookStack extends cdk.Stack {
|
|
47
47
|
constructor(scope, id, props) {
|
|
@@ -55,7 +55,7 @@ class BenchlingWebhookStack extends cdk.Stack {
|
|
|
55
55
|
" - config.benchling.secretArn: Secrets Manager secret ARN\n\n" +
|
|
56
56
|
"Run 'npm run setup' to configure your deployment.");
|
|
57
57
|
}
|
|
58
|
-
console.log(`Deploying with profile configuration (v${
|
|
58
|
+
console.log(`Deploying with profile configuration (v${package_json_1.default.version})`);
|
|
59
59
|
console.log(` Benchling Tenant: ${config.benchling.tenant}`);
|
|
60
60
|
console.log(` Region: ${config.deployment.region}`);
|
|
61
61
|
// Create CloudFormation parameters for runtime-configurable values
|
|
@@ -215,16 +215,19 @@ class BenchlingWebhookStack extends cdk.Stack {
|
|
|
215
215
|
quiltDatabase: quiltDatabaseValue,
|
|
216
216
|
logLevel: logLevelValue,
|
|
217
217
|
});
|
|
218
|
-
// Create
|
|
219
|
-
this.api = new
|
|
218
|
+
// Create HTTP API v2 that routes through VPC Link to the service
|
|
219
|
+
this.api = new http_api_gateway_1.HttpApiGateway(this, "HttpApiGateway", {
|
|
220
220
|
vpc: vpc,
|
|
221
221
|
cloudMapService: this.fargateService.cloudMapService,
|
|
222
222
|
serviceSecurityGroup: this.fargateService.service.connections.securityGroups[0],
|
|
223
223
|
config: config,
|
|
224
|
-
ecsService: this.fargateService.service,
|
|
225
224
|
});
|
|
226
|
-
// Store webhook endpoint for easy access (
|
|
227
|
-
|
|
225
|
+
// Store webhook endpoint for easy access (HTTP API v2 default stage)
|
|
226
|
+
// HTTP API v2 URL is optional, but should always be defined after API creation
|
|
227
|
+
this.webhookEndpoint = this.api.api.url || "";
|
|
228
|
+
if (!this.webhookEndpoint) {
|
|
229
|
+
throw new Error("HTTP API URL was not generated. This should not happen.");
|
|
230
|
+
}
|
|
228
231
|
// Export webhook endpoint as a stack output
|
|
229
232
|
new cdk.CfnOutput(this, "WebhookEndpoint", {
|
|
230
233
|
value: this.webhookEndpoint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,yDAA2C;AAC3C,yDAA2C;AAE3C,uDAAmD;AACnD,yDAAoD;AAEpD,mEAA0C;AAgB1C,MAAa,qBAAsB,SAAQ,GAAG,CAAC,KAAK;IAKhD,YACI,KAAgB,EAChB,EAAU,EACV,KAAiC;QAEjC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAExB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEzB,yCAAyC;QACzC,4EAA4E;QAC5E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM,CAAC;QACrE,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACX,qDAAqD;gBACrD,gEAAgE;gBAChE,mDAAmD,CACtD,CAAC;QACN,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0CAA0C,
|
|
1
|
+
{"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-saver.d.ts","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"configuration-saver.d.ts","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA0B;IAEzD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC;;;;;;OAMG;WACiB,IAAI,CACpB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,aAAa,CAAC;IAwCzB;;;;;OAKG;WACW,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc;IAShF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;CAG5B"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ConfigurationSaver = void 0;
|
|
7
7
|
const xdg_config_1 = require("./xdg-config");
|
|
8
8
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
9
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
9
10
|
/**
|
|
10
11
|
* Configuration saver for persisting configuration to XDG files
|
|
11
12
|
*/
|
|
@@ -47,7 +48,7 @@ class ConfigurationSaver {
|
|
|
47
48
|
const configWithMetadata = {
|
|
48
49
|
...finalConfig,
|
|
49
50
|
_metadata: {
|
|
50
|
-
version: metadata.version ||
|
|
51
|
+
version: metadata.version || package_json_1.default.version,
|
|
51
52
|
createdAt: finalConfig._metadata?.createdAt || metadata.savedAt,
|
|
52
53
|
updatedAt: metadata.savedAt,
|
|
53
54
|
source: source,
|
|
@@ -72,14 +73,12 @@ class ConfigurationSaver {
|
|
|
72
73
|
};
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
|
-
* Get the current version
|
|
76
|
+
* Get the current version from package.json
|
|
76
77
|
*
|
|
77
78
|
* @returns Version string
|
|
78
79
|
*/
|
|
79
80
|
static getVersion() {
|
|
80
|
-
|
|
81
|
-
// In production, this would read from package.json
|
|
82
|
-
return "0.7.0";
|
|
81
|
+
return package_json_1.default.version;
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
exports.ConfigurationSaver = ConfigurationSaver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-saver.js","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AAEzC,gEAAiC;
|
|
1
|
+
{"version":3,"file":"configuration-saver.js","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AAEzC,gEAAiC;AACjC,mEAA0C;AAsB1C;;GAEG;AACH,MAAa,kBAAkB;IAM3B;;OAEG;IACK,MAAM,CAAC,mBAAmB;QAC9B,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;YACvC,kBAAkB,CAAC,gBAAgB,GAAG,IAAI,sBAAS,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CACpB,MAA8B,EAC9B,UAAuB,EAAE;QAEzB,MAAM,EACF,SAAS,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,EACpD,MAAM,GAAG,QAAQ,EACjB,KAAK,EAAE,WAAW,GAAG,KAAK,EAC1B,OAAO,GAAG,SAAS,GACtB,GAAG,OAAO,CAAC;QAEZ,0CAA0C;QAC1C,IAAI,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,IAAI,WAAW,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC;gBACD,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACtD,WAAW,GAAG,IAAA,sBAAK,EAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,iDAAiD;gBACjD,OAAO,CAAC,IAAI,CAAC,6DAA8D,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtG,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;gBAC7E,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAChC,CAAC;QACL,CAAC;QAED,eAAe;QACf,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,kBAAkB,GAAkB;YACtC,GAAG,WAAW;YACd,SAAS,EAAE;gBACP,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,sBAAW,CAAC,OAAO;gBAChD,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO;gBAC/D,SAAS,EAAE,QAAQ,CAAC,OAAO;gBAC3B,MAAM,EAAE,MAAqC;aAChD;SACa,CAAC;QAEnB,kBAAkB;QAClB,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAEpD,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,UAAmC,EAAE;QAC3D,OAAO;YACH,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;YACnC,OAAO,EAAE,kBAAkB,CAAC,UAAU,EAAE;YACxC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;SAChE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,UAAU;QACrB,OAAO,sBAAW,CAAC,OAAO,CAAC;IAC/B,CAAC;;AAxFL,gDAyFC;AAxFG;;GAEG;AACY,mCAAgB,GAAqB,IAAI,CAAC"}
|
package/dist/lib/constants.d.ts
CHANGED
|
@@ -25,4 +25,9 @@ export declare const MIME_TYPES: {
|
|
|
25
25
|
readonly YML: "application/yaml";
|
|
26
26
|
readonly DEFAULT: "application/octet-stream";
|
|
27
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* API Gateway integration timeout in seconds.
|
|
30
|
+
* Must be longer than backend processing time (S3 writes + SQS sends + Fargate health checks).
|
|
31
|
+
*/
|
|
32
|
+
export declare const API_GATEWAY_INTEGRATION_TIMEOUT_SECONDS = 30;
|
|
28
33
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;CAKR,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAeb,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,eAAO,MAAM,KAAK;;;;;CAKR,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAeb,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uCAAuC,KAAK,CAAC"}
|
package/dist/lib/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MIME_TYPES = exports.FILES = exports.EXPORT_STATUS = void 0;
|
|
3
|
+
exports.API_GATEWAY_INTEGRATION_TIMEOUT_SECONDS = exports.MIME_TYPES = exports.FILES = exports.EXPORT_STATUS = void 0;
|
|
4
4
|
exports.EXPORT_STATUS = {
|
|
5
5
|
RUNNING: "RUNNING",
|
|
6
6
|
SUCCEEDED: "SUCCEEDED",
|
|
@@ -28,4 +28,9 @@ exports.MIME_TYPES = {
|
|
|
28
28
|
YML: "application/yaml",
|
|
29
29
|
DEFAULT: "application/octet-stream",
|
|
30
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* API Gateway integration timeout in seconds.
|
|
33
|
+
* Must be longer than backend processing time (S3 writes + SQS sends + Fargate health checks).
|
|
34
|
+
*/
|
|
35
|
+
exports.API_GATEWAY_INTEGRATION_TIMEOUT_SECONDS = 30;
|
|
31
36
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACV,CAAC;AAEE,QAAA,KAAK,GAAG;IACjB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACd,CAAC;AAEE,QAAA,UAAU,GAAG;IACtB,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,UAAU;IACf,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,iBAAiB;IACtB,EAAE,EAAE,eAAe;IACnB,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,kBAAkB;IACvB,OAAO,EAAE,0BAA0B;CAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACV,CAAC;AAEE,QAAA,KAAK,GAAG;IACjB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACd,CAAC;AAEE,QAAA,UAAU,GAAG;IACtB,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,UAAU;IACf,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,iBAAiB;IACtB,EAAE,EAAE,eAAe;IACnB,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,kBAAkB;IACvB,OAAO,EAAE,0BAA0B;CAC7B,CAAC;AAEX;;;GAGG;AACU,QAAA,uCAAuC,GAAG,EAAE,CAAC"}
|
|
@@ -2,6 +2,7 @@ import * as apigatewayv2 from "aws-cdk-lib/aws-apigatewayv2";
|
|
|
2
2
|
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
3
3
|
import * as servicediscovery from "aws-cdk-lib/aws-servicediscovery";
|
|
4
4
|
import * as logs from "aws-cdk-lib/aws-logs";
|
|
5
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
5
6
|
import { Construct } from "constructs";
|
|
6
7
|
import { ProfileConfig } from "./types/config";
|
|
7
8
|
export interface HttpApiGatewayProps {
|
|
@@ -14,6 +15,8 @@ export declare class HttpApiGateway {
|
|
|
14
15
|
readonly api: apigatewayv2.HttpApi;
|
|
15
16
|
readonly vpcLink: apigatewayv2.VpcLink;
|
|
16
17
|
readonly logGroup: logs.ILogGroup;
|
|
18
|
+
readonly authorizer?: lambda.Function;
|
|
19
|
+
readonly authorizerLogGroup?: logs.ILogGroup;
|
|
17
20
|
constructor(scope: Construct, id: string, props: HttpApiGatewayProps);
|
|
18
21
|
}
|
|
19
22
|
//# sourceMappingURL=http-api-gateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-api-gateway.d.ts","sourceRoot":"","sources":["../../lib/http-api-gateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"http-api-gateway.d.ts","sourceRoot":"","sources":["../../lib/http-api-gateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAG7D,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC,QAAQ,CAAC;IACpD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,cAAc,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAClC;AAED,qBAAa,cAAc;IACvB,SAAgB,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC;IAC1C,SAAgB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;IAC9C,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;IACzC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC7C,SAAgB,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;gBAExC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CAmNvE"}
|
|
@@ -36,8 +36,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.HttpApiGateway = void 0;
|
|
37
37
|
const cdk = __importStar(require("aws-cdk-lib"));
|
|
38
38
|
const apigatewayv2 = __importStar(require("aws-cdk-lib/aws-apigatewayv2"));
|
|
39
|
+
const apigatewayv2Authorizers = __importStar(require("aws-cdk-lib/aws-apigatewayv2-authorizers"));
|
|
39
40
|
const apigatewayv2Integrations = __importStar(require("aws-cdk-lib/aws-apigatewayv2-integrations"));
|
|
40
41
|
const logs = __importStar(require("aws-cdk-lib/aws-logs"));
|
|
42
|
+
const lambda = __importStar(require("aws-cdk-lib/aws-lambda"));
|
|
43
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
41
44
|
class HttpApiGateway {
|
|
42
45
|
constructor(scope, id, props) {
|
|
43
46
|
// Access logs for HTTP API
|
|
@@ -46,33 +49,175 @@ class HttpApiGateway {
|
|
|
46
49
|
retention: logs.RetentionDays.ONE_WEEK,
|
|
47
50
|
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
48
51
|
});
|
|
52
|
+
// VPC Link for private integration with Cloud Map service
|
|
49
53
|
this.vpcLink = new apigatewayv2.VpcLink(scope, "VpcLink", {
|
|
50
54
|
vpc: props.vpc,
|
|
51
55
|
securityGroups: [props.serviceSecurityGroup],
|
|
52
56
|
vpcLinkName: "benchling-webhook-vpclink",
|
|
53
57
|
});
|
|
58
|
+
// Lambda authorizer for webhook verification (HTTP API v2 SIMPLE response)
|
|
59
|
+
const verificationEnabled = props.config.security?.enableVerification !== false;
|
|
60
|
+
const benchlingSecretArn = props.config.benchling.secretArn;
|
|
61
|
+
if (!benchlingSecretArn) {
|
|
62
|
+
throw new Error("Benchling secret ARN is required to configure the Lambda authorizer");
|
|
63
|
+
}
|
|
64
|
+
// Create authorizer Lambda if verification is enabled
|
|
65
|
+
let httpAuthorizer;
|
|
66
|
+
if (verificationEnabled) {
|
|
67
|
+
this.authorizerLogGroup = new logs.LogGroup(scope, "WebhookAuthorizerLogGroup", {
|
|
68
|
+
retention: logs.RetentionDays.ONE_WEEK,
|
|
69
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
70
|
+
});
|
|
71
|
+
// Lambda bundling: Install dependencies at build time
|
|
72
|
+
// NOTE: For local development, pre-build with: make lambda-bundle
|
|
73
|
+
// This reduces CDK build time by using cached wheels
|
|
74
|
+
const bundlingCommands = [
|
|
75
|
+
"set -euo pipefail",
|
|
76
|
+
"export PIP_NO_BUILD_ISOLATION=1 PIP_ONLY_BINARY=:all: PIP_DISABLE_PIP_VERSION_CHECK=1 PIP_CACHE_DIR=/tmp/pipcache",
|
|
77
|
+
"pip install -q --platform manylinux2014_x86_64 --implementation cp --python-version 3.12 --abi cp312 --only-binary=:all: -t /asset-output -r /asset-input/lambda/authorizer/requirements.txt -c /asset-input/lambda/authorizer/constraints.txt",
|
|
78
|
+
"cp /asset-input/docker/src/lambda_authorizer.py /asset-output/index.py",
|
|
79
|
+
].join(" && ");
|
|
80
|
+
const authorizerCode = process.env.NODE_ENV === "test"
|
|
81
|
+
? lambda.Code.fromInline("def handler(event, context):\n return {'isAuthorized': True}")
|
|
82
|
+
: lambda.Code.fromAsset(".", {
|
|
83
|
+
bundling: {
|
|
84
|
+
image: lambda.Runtime.PYTHON_3_12.bundlingImage,
|
|
85
|
+
command: ["bash", "-c", bundlingCommands],
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
this.authorizer = new lambda.Function(scope, "WebhookAuthorizerFunction", {
|
|
89
|
+
runtime: lambda.Runtime.PYTHON_3_12,
|
|
90
|
+
handler: "index.handler",
|
|
91
|
+
memorySize: 128,
|
|
92
|
+
timeout: cdk.Duration.seconds(10),
|
|
93
|
+
architecture: lambda.Architecture.X86_64,
|
|
94
|
+
description: "Benchling webhook signature verification (HTTP API v2)",
|
|
95
|
+
environment: {
|
|
96
|
+
BENCHLING_SECRET_ARN: benchlingSecretArn,
|
|
97
|
+
LOG_LEVEL: props.config.logging?.level || "INFO",
|
|
98
|
+
},
|
|
99
|
+
code: authorizerCode,
|
|
100
|
+
logGroup: this.authorizerLogGroup,
|
|
101
|
+
});
|
|
102
|
+
// Grant Secrets Manager access
|
|
103
|
+
this.authorizer.addToRolePolicy(new iam.PolicyStatement({
|
|
104
|
+
actions: ["secretsmanager:GetSecretValue"],
|
|
105
|
+
resources: [benchlingSecretArn],
|
|
106
|
+
}));
|
|
107
|
+
// Create HTTP Lambda Authorizer with SIMPLE response format
|
|
108
|
+
// Note: HTTP API v2 uses a simpler response format than REST API (REQUEST authorizer)
|
|
109
|
+
httpAuthorizer = new apigatewayv2Authorizers.HttpLambdaAuthorizer("WebhookAuthorizer", this.authorizer, {
|
|
110
|
+
authorizerName: "WebhookAuthorizer",
|
|
111
|
+
identitySource: [
|
|
112
|
+
"$request.header.webhook-signature",
|
|
113
|
+
"$request.header.webhook-id",
|
|
114
|
+
"$request.header.webhook-timestamp",
|
|
115
|
+
],
|
|
116
|
+
responseTypes: [apigatewayv2Authorizers.HttpLambdaResponseType.SIMPLE],
|
|
117
|
+
resultsCacheTtl: cdk.Duration.seconds(0), // No caching for HMAC signatures
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// Create HTTP API v2
|
|
54
121
|
this.api = new apigatewayv2.HttpApi(scope, "BenchlingWebhookHttpAPI", {
|
|
55
122
|
apiName: "BenchlingWebhookHttpAPI",
|
|
56
123
|
description: "HTTP API for Benchling webhook integration (v0.9.0+)",
|
|
57
124
|
});
|
|
125
|
+
// Service Discovery integration via VPC Link
|
|
58
126
|
const integration = new apigatewayv2Integrations.HttpServiceDiscoveryIntegration("CloudMapIntegration", props.cloudMapService, { vpcLink: this.vpcLink });
|
|
127
|
+
// Webhook routes - protected by Lambda authorizer
|
|
128
|
+
if (httpAuthorizer) {
|
|
129
|
+
// Event webhooks (protected)
|
|
130
|
+
this.api.addRoutes({
|
|
131
|
+
path: "/event",
|
|
132
|
+
methods: [apigatewayv2.HttpMethod.POST],
|
|
133
|
+
integration,
|
|
134
|
+
authorizer: httpAuthorizer,
|
|
135
|
+
});
|
|
136
|
+
// Lifecycle webhooks (protected)
|
|
137
|
+
this.api.addRoutes({
|
|
138
|
+
path: "/lifecycle",
|
|
139
|
+
methods: [apigatewayv2.HttpMethod.POST],
|
|
140
|
+
integration,
|
|
141
|
+
authorizer: httpAuthorizer,
|
|
142
|
+
});
|
|
143
|
+
// Canvas webhooks (protected)
|
|
144
|
+
this.api.addRoutes({
|
|
145
|
+
path: "/canvas",
|
|
146
|
+
methods: [apigatewayv2.HttpMethod.POST],
|
|
147
|
+
integration,
|
|
148
|
+
authorizer: httpAuthorizer,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// No authorizer - allow all webhook routes (for testing only)
|
|
153
|
+
this.api.addRoutes({
|
|
154
|
+
path: "/event",
|
|
155
|
+
methods: [apigatewayv2.HttpMethod.POST],
|
|
156
|
+
integration,
|
|
157
|
+
});
|
|
158
|
+
this.api.addRoutes({
|
|
159
|
+
path: "/lifecycle",
|
|
160
|
+
methods: [apigatewayv2.HttpMethod.POST],
|
|
161
|
+
integration,
|
|
162
|
+
});
|
|
163
|
+
this.api.addRoutes({
|
|
164
|
+
path: "/canvas",
|
|
165
|
+
methods: [apigatewayv2.HttpMethod.POST],
|
|
166
|
+
integration,
|
|
167
|
+
});
|
|
168
|
+
console.warn("WARNING: Webhook signature verification is DISABLED. " +
|
|
169
|
+
"This should only be used for testing. Enable it in production by setting " +
|
|
170
|
+
"config.security.enableVerification = true");
|
|
171
|
+
}
|
|
172
|
+
// Health check routes - always unauthenticated
|
|
173
|
+
this.api.addRoutes({
|
|
174
|
+
path: "/health",
|
|
175
|
+
methods: [apigatewayv2.HttpMethod.GET],
|
|
176
|
+
integration,
|
|
177
|
+
});
|
|
178
|
+
this.api.addRoutes({
|
|
179
|
+
path: "/health/ready",
|
|
180
|
+
methods: [apigatewayv2.HttpMethod.GET],
|
|
181
|
+
integration,
|
|
182
|
+
});
|
|
59
183
|
this.api.addRoutes({
|
|
60
|
-
path: "/
|
|
61
|
-
methods: [apigatewayv2.HttpMethod.
|
|
184
|
+
path: "/health/live",
|
|
185
|
+
methods: [apigatewayv2.HttpMethod.GET],
|
|
62
186
|
integration,
|
|
63
187
|
});
|
|
188
|
+
// Root path - unauthenticated (informational endpoint)
|
|
64
189
|
this.api.addRoutes({
|
|
65
190
|
path: "/",
|
|
66
|
-
methods: [apigatewayv2.HttpMethod.
|
|
191
|
+
methods: [apigatewayv2.HttpMethod.GET],
|
|
67
192
|
integration,
|
|
68
193
|
});
|
|
194
|
+
// Configure access logging on the default stage
|
|
69
195
|
const stage = this.api.defaultStage?.node.defaultChild;
|
|
70
196
|
if (stage) {
|
|
71
197
|
stage.accessLogSettings = {
|
|
72
198
|
destinationArn: this.logGroup.logGroupArn,
|
|
73
|
-
format:
|
|
199
|
+
format: JSON.stringify({
|
|
200
|
+
requestId: "$context.requestId",
|
|
201
|
+
ip: "$context.identity.sourceIp",
|
|
202
|
+
requestTime: "$context.requestTime",
|
|
203
|
+
httpMethod: "$context.httpMethod",
|
|
204
|
+
routeKey: "$context.routeKey",
|
|
205
|
+
status: "$context.status",
|
|
206
|
+
protocol: "$context.protocol",
|
|
207
|
+
responseLength: "$context.responseLength",
|
|
208
|
+
errorMessage: "$context.error.message",
|
|
209
|
+
errorType: "$context.error.messageString",
|
|
210
|
+
authorizerError: "$context.authorizer.error",
|
|
211
|
+
}),
|
|
74
212
|
};
|
|
75
213
|
}
|
|
214
|
+
// Output verification status
|
|
215
|
+
if (verificationEnabled) {
|
|
216
|
+
console.log("Webhook signature verification: ENABLED (Lambda authorizer)");
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
console.log("Webhook signature verification: DISABLED (testing mode)");
|
|
220
|
+
}
|
|
76
221
|
}
|
|
77
222
|
}
|
|
78
223
|
exports.HttpApiGateway = HttpApiGateway;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-api-gateway.js","sourceRoot":"","sources":["../../lib/http-api-gateway.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,2EAA6D;AAC7D,oGAAsF;AAGtF,2DAA6C;
|
|
1
|
+
{"version":3,"file":"http-api-gateway.js","sourceRoot":"","sources":["../../lib/http-api-gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
*/
|
|
27
27
|
export { BenchlingWebhookStack, type BenchlingWebhookStackProps } from "./benchling-webhook-stack";
|
|
28
28
|
export { FargateService } from "./fargate-service";
|
|
29
|
-
export { RestApiGateway } from "./rest-api-gateway";
|
|
30
29
|
export { HttpApiGateway } from "./http-api-gateway";
|
|
31
30
|
export { EcrRepository } from "./ecr-repository";
|
|
32
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -26,14 +26,12 @@
|
|
|
26
26
|
* @module quilt-benchling-webhook
|
|
27
27
|
*/
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.EcrRepository = exports.HttpApiGateway = exports.
|
|
29
|
+
exports.EcrRepository = exports.HttpApiGateway = exports.FargateService = exports.BenchlingWebhookStack = void 0;
|
|
30
30
|
var benchling_webhook_stack_1 = require("./benchling-webhook-stack");
|
|
31
31
|
Object.defineProperty(exports, "BenchlingWebhookStack", { enumerable: true, get: function () { return benchling_webhook_stack_1.BenchlingWebhookStack; } });
|
|
32
32
|
var fargate_service_1 = require("./fargate-service");
|
|
33
33
|
Object.defineProperty(exports, "FargateService", { enumerable: true, get: function () { return fargate_service_1.FargateService; } });
|
|
34
|
-
var
|
|
35
|
-
Object.defineProperty(exports, "RestApiGateway", { enumerable: true, get: function () { return rest_api_gateway_1.RestApiGateway; } });
|
|
36
|
-
var http_api_gateway_1 = require("./http-api-gateway"); // Deprecated: use RestApiGateway
|
|
34
|
+
var http_api_gateway_1 = require("./http-api-gateway");
|
|
37
35
|
Object.defineProperty(exports, "HttpApiGateway", { enumerable: true, get: function () { return http_api_gateway_1.HttpApiGateway; } });
|
|
38
36
|
var ecr_repository_1 = require("./ecr-repository");
|
|
39
37
|
Object.defineProperty(exports, "EcrRepository", { enumerable: true, get: function () { return ecr_repository_1.EcrRepository; } });
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAEH,qEAAmG;AAA1F,gIAAA,qBAAqB,OAAA;AAC9B,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAEH,qEAAmG;AAA1F,gIAAA,qBAAqB,OAAA;AAC9B,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase2-stack-query.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"phase2-stack-query.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,EAAqB,MAAM,SAAS,CAAC;AAG9D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA8K3B"}
|
|
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.runStackQuery = runStackQuery;
|
|
15
15
|
const chalk_1 = __importDefault(require("chalk"));
|
|
16
16
|
const infer_quilt_config_1 = require("../../bin/commands/infer-quilt-config");
|
|
17
|
+
const discover_vpc_1 = require("../../scripts/discover-vpc");
|
|
17
18
|
/**
|
|
18
19
|
* Phase 2: Stack Query
|
|
19
20
|
*
|
|
@@ -106,6 +107,48 @@ async function runStackQuery(catalogDns, options = {}) {
|
|
|
106
107
|
? chalk_1.default.green("✓ Benchling Integration: Enabled")
|
|
107
108
|
: chalk_1.default.yellow("⚠ Benchling Integration: Disabled"));
|
|
108
109
|
}
|
|
110
|
+
// Discover VPC from stack
|
|
111
|
+
let discoveredVpcInfo;
|
|
112
|
+
try {
|
|
113
|
+
const discoveredVpc = await (0, discover_vpc_1.discoverVpcFromStack)({
|
|
114
|
+
stackArn,
|
|
115
|
+
region,
|
|
116
|
+
});
|
|
117
|
+
if (discoveredVpc) {
|
|
118
|
+
const privateSubnets = discoveredVpc.subnets.filter((s) => !s.isPublic);
|
|
119
|
+
const azs = new Set(privateSubnets.map((s) => s.availabilityZone));
|
|
120
|
+
discoveredVpcInfo = {
|
|
121
|
+
vpcId: discoveredVpc.vpcId,
|
|
122
|
+
name: discoveredVpc.name,
|
|
123
|
+
cidrBlock: discoveredVpc.cidrBlock,
|
|
124
|
+
privateSubnetCount: privateSubnets.length,
|
|
125
|
+
availabilityZoneCount: azs.size,
|
|
126
|
+
isValid: discoveredVpc.isValid,
|
|
127
|
+
validationErrors: discoveredVpc.validationErrors,
|
|
128
|
+
};
|
|
129
|
+
if (discoveredVpc.isValid) {
|
|
130
|
+
console.log(chalk_1.default.green(`✓ VPC: ${discoveredVpc.vpcId}`));
|
|
131
|
+
if (discoveredVpc.name) {
|
|
132
|
+
console.log(chalk_1.default.dim(` Name: ${discoveredVpc.name}`));
|
|
133
|
+
}
|
|
134
|
+
console.log(chalk_1.default.dim(` CIDR: ${discoveredVpc.cidrBlock}`));
|
|
135
|
+
console.log(chalk_1.default.dim(` Private subnets: ${privateSubnets.length} across ${azs.size} AZs`));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
console.log(chalk_1.default.yellow(`⚠ VPC: ${discoveredVpc.vpcId} (does not meet requirements)`));
|
|
139
|
+
discoveredVpc.validationErrors.forEach((err) => {
|
|
140
|
+
console.log(chalk_1.default.dim(` - ${err}`));
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
console.log(chalk_1.default.dim(" VPC: Not found in stack"));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
const err = error;
|
|
150
|
+
console.log(chalk_1.default.dim(` VPC: Discovery failed (${err.message})`));
|
|
151
|
+
}
|
|
109
152
|
console.log("");
|
|
110
153
|
return {
|
|
111
154
|
stackArn,
|
|
@@ -124,6 +167,7 @@ async function runStackQuery(catalogDns, options = {}) {
|
|
|
124
167
|
athenaResultsBucketPolicy,
|
|
125
168
|
readRoleArn,
|
|
126
169
|
writeRoleArn,
|
|
170
|
+
discoveredVpc: discoveredVpcInfo,
|
|
127
171
|
stackQuerySucceeded: true,
|
|
128
172
|
};
|
|
129
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase2-stack-query.js","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;
|
|
1
|
+
{"version":3,"file":"phase2-stack-query.js","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;AAgCH,sCAiLC;AA/MD,kDAA0B;AAC1B,8EAAyE;AAEzE,6DAAkE;AAclE;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,aAAa,CAC/B,UAAkB,EAClB,UAA6B,EAAE;IAE/B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,8CAA8C,UAAU,OAAO,CAAC,CAAC;IAE7E,IAAI,CAAC;QACD,gFAAgF;QAChF,MAAM,eAAe,GAAG,MAAM,IAAA,qCAAgB,EAAC;YAC3C,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,KAAK,EAAE,6CAA6C;YACjE,GAAG,EAAE,IAAI,EAAE,sDAAsD;YACjE,UAAU,EAAE,UAAU,EAAE,6BAA6B;SACxD,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,kBAAkB,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnG,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEtF,IAAI,kBAAkB,KAAK,mBAAmB,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CACpB,8BAA8B,kBAAkB,uCAAuC,mBAAmB,GAAG,CAChH,CAAC,CAAC;QACP,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,eAAe,CAAC;QAC7D,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,IAAI,SAAS,IAAI,WAAW,CAAC;QAClE,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9C,MAAM,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC;QAC9D,MAAM,2BAA2B,GAAG,eAAe,CAAC,2BAA2B,CAAC;QAChF,MAAM,mBAAmB,GAAG,eAAe,CAAC,mBAAmB,CAAC;QAChE,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;QAC1D,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;QAC1D,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;QACxD,MAAM,mBAAmB,GAAG,eAAe,CAAC,mBAAmB,CAAC;QAChE,MAAM,yBAAyB,GAAG,eAAe,CAAC,yBAAyB,CAAC;QAC5E,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;QAChD,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QAElD,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACxB,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,yBAAyB,gBAAgB,EAAE,CAAC;YACxD,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC3B,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,mBAAmB,EAAE,CAAC;YAC9D,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,yBAAyB;YACjC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,mCAAmC,yBAAyB,EAAE,CAAC;YAC3E,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAEjE,mEAAmE;QACnE,IAAI,eAAe,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,eAAe,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,6EAA6E;QAE7E,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,2BAA2B,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CACP,2BAA2B;gBACvB,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC;gBACjD,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAC1D,CAAC;QACN,CAAC;QAED,0BAA0B;QAC1B,IAAI,iBAAgD,CAAC;QACrD,IAAI,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,IAAA,mCAAoB,EAAC;gBAC7C,QAAQ;gBACR,MAAM;aACT,CAAC,CAAC;YAEH,IAAI,aAAa,EAAE,CAAC;gBAChB,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACxE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAEnE,iBAAiB,GAAG;oBAChB,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,IAAI,EAAE,aAAa,CAAC,IAAI;oBACxB,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,kBAAkB,EAAE,cAAc,CAAC,MAAM;oBACzC,qBAAqB,EAAE,GAAG,CAAC,IAAI;oBAC/B,OAAO,EAAE,aAAa,CAAC,OAAO;oBAC9B,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;iBACnD,CAAC;gBAEF,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC1D,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;wBACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB,cAAc,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;gBACjG,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,UAAU,aAAa,CAAC,KAAK,+BAA+B,CAAC,CAAC,CAAC;oBACxF,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzC,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO;YACH,QAAQ;YACR,OAAO,EAAE,mBAAmB;YAC5B,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,OAAO;YACP,kBAAkB;YAClB,2BAA2B;YAC3B,mBAAmB;YACnB,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,mBAAmB;YACnB,yBAAyB;YACzB,WAAW;YACX,YAAY;YACZ,aAAa,EAAE,iBAAiB;YAChC,mBAAmB,EAAE,IAAI;SAC5B,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GAAI,KAAe,CAAC,OAAO,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,uBAAuB,YAAY,IAAI,CAAC,CAAC,CAAC;QAElE,+CAA+C;QAC/C,OAAO;YACH,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,eAAe;YACzB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,SAAS,IAAI,WAAW;YAChC,OAAO,EAAE,EAAE;YACX,kBAAkB,EAAE,SAAS;YAC7B,2BAA2B,EAAE,SAAS;YACtC,mBAAmB,EAAE,KAAK;SAC7B,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase3-parameter-collection.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase3-parameter-collection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CACxC,KAAK,EAAE,wBAAwB,GAChC,OAAO,CAAC,yBAAyB,CAAC,
|
|
1
|
+
{"version":3,"file":"phase3-parameter-collection.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase3-parameter-collection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE9E;;;;;;;;;;;;GAYG;AACH,wBAAsB,sBAAsB,CACxC,KAAK,EAAE,wBAAwB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CA6bpC"}
|