@quiltdata/benchling-webhook 0.9.7-20251218T232525Z → 0.9.9

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.
Files changed (35) hide show
  1. package/README.md +4 -2
  2. package/dist/bin/cli.js +36 -0
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/bin/commands/clean.d.ts +27 -0
  5. package/dist/bin/commands/clean.d.ts.map +1 -0
  6. package/dist/bin/commands/clean.js +114 -0
  7. package/dist/bin/commands/clean.js.map +1 -0
  8. package/dist/bin/commands/deploy.d.ts.map +1 -1
  9. package/dist/bin/commands/deploy.js +186 -101
  10. package/dist/bin/commands/deploy.js.map +1 -1
  11. package/dist/bin/commands/test.d.ts.map +1 -1
  12. package/dist/bin/commands/test.js +11 -3
  13. package/dist/bin/commands/test.js.map +1 -1
  14. package/dist/lib/benchling-webhook-stack.js +1 -1
  15. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  16. package/dist/lib/fargate-service.js +5 -5
  17. package/dist/lib/fargate-service.js.map +1 -1
  18. package/dist/lib/network-load-balancer.d.ts.map +1 -1
  19. package/dist/lib/network-load-balancer.js +4 -3
  20. package/dist/lib/network-load-balancer.js.map +1 -1
  21. package/dist/lib/rest-api-gateway.d.ts.map +1 -1
  22. package/dist/lib/rest-api-gateway.js +6 -36
  23. package/dist/lib/rest-api-gateway.js.map +1 -1
  24. package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
  25. package/dist/lib/wizard/phase6-integrated-mode.js +0 -3
  26. package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
  27. package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
  28. package/dist/lib/wizard/phase7-standalone-mode.js +0 -15
  29. package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
  30. package/dist/package.json +4 -3
  31. package/dist/scripts/send-event.d.ts +1 -0
  32. package/dist/scripts/send-event.d.ts.map +1 -1
  33. package/dist/scripts/send-event.js +21 -1
  34. package/dist/scripts/send-event.js.map +1 -1
  35. package/package.json +4 -3
package/README.md CHANGED
@@ -133,8 +133,10 @@ S3 + SQS → Quilt Package
133
133
  **Optional Network Filtering:**
134
134
 
135
135
  - **Resource Policy IP Filtering** - Free alternative to AWS WAF ($7/month saved)
136
- - Blocks unknown IPs at API Gateway edge
137
- - Health endpoints always exempt from IP filtering
136
+ - Blocks unknown IPs at API Gateway edge (applies to all endpoints)
137
+ - **BREAKING CHANGE (v1.1.0+)**: Health endpoints NO LONGER exempt from IP filtering
138
+ - External monitoring services must be added to allowlist or IP filtering disabled
139
+ - NLB health checks unaffected (bypass API Gateway)
138
140
  - IP filtering does NOT replace authentication (it's defense-in-depth)
139
141
 
140
142
  **Infrastructure Security:**
package/dist/bin/cli.js CHANGED
@@ -51,6 +51,7 @@ const config_show_1 = require("./commands/config-show");
51
51
  const install_1 = require("./commands/install");
52
52
  const status_1 = require("./commands/status");
53
53
  const logs_1 = require("./commands/logs");
54
+ const clean_1 = require("./commands/clean");
54
55
  const package_json_1 = __importDefault(require("../package.json"));
55
56
  const DEFAULT_LOG_LIMIT = 5; // Number of log entries to show per log group (health checks dominate, so keep this small)
56
57
  const program = new commander_1.Command();
@@ -416,6 +417,41 @@ program
416
417
  process.exit(1);
417
418
  }
418
419
  });
420
+ // Clean command
421
+ program
422
+ .command("clean")
423
+ .description("Remove a configuration profile (does not destroy AWS resources)")
424
+ .option("--profile <name>", "Configuration profile to delete (default: default)")
425
+ .option("--yes", "Skip confirmation prompt")
426
+ .addHelpText("after", `
427
+
428
+ Examples:
429
+ Remove the default profile:
430
+ $ npx @quiltdata/benchling-webhook clean
431
+
432
+ Remove a specific profile:
433
+ $ npx @quiltdata/benchling-webhook clean --profile dev
434
+
435
+ Remove without confirmation:
436
+ $ npx @quiltdata/benchling-webhook clean --profile dev --yes
437
+
438
+ Important Notes:
439
+ - This command only removes local configuration files
440
+ - AWS resources (CloudFormation stacks) are NOT destroyed
441
+ - To destroy AWS resources, use the 'destroy' command first
442
+ - If you have active deployments, you should destroy them before cleaning
443
+
444
+ For more information: https://github.com/quiltdata/benchling-webhook#configuration
445
+ `)
446
+ .action(async (options) => {
447
+ try {
448
+ await (0, clean_1.cleanCommand)(options);
449
+ }
450
+ catch (error) {
451
+ console.error(chalk_1.default.red(error.message));
452
+ process.exit(1);
453
+ }
454
+ });
419
455
  // Run install command when no command provided (but not for help/version flags)
420
456
  const args = process.argv.slice(2);
421
457
  const isHelpOrVersion = args.some((arg) => arg === "--help" || arg === "-h" || arg === "--version" || arg === "-v");
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Clean Command - Remove Configuration Profile
3
+ *
4
+ * Deletes a configuration profile and all associated data including:
5
+ * - Profile configuration (~/.config/benchling-webhook/{profile}/config.json)
6
+ * - Deployment tracking (~/.config/benchling-webhook/{profile}/deployments.json)
7
+ * - Profile directory
8
+ *
9
+ * IMPORTANT: This command does NOT destroy AWS resources. To destroy the deployed
10
+ * CloudFormation stack, use the 'destroy' command first.
11
+ *
12
+ * @module bin/commands/clean
13
+ */
14
+ import type { XDGBase } from "../../lib/xdg-base";
15
+ interface CleanOptions {
16
+ profile?: string;
17
+ yes?: boolean;
18
+ xdg?: XDGBase;
19
+ }
20
+ /**
21
+ * Clean command: Remove a configuration profile
22
+ *
23
+ * @param options - Command options
24
+ */
25
+ export declare function cleanCommand(options: CleanOptions): Promise<void>;
26
+ export {};
27
+ //# sourceMappingURL=clean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../../bin/commands/clean.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,UAAU,YAAY;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FvE"}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * Clean Command - Remove Configuration Profile
4
+ *
5
+ * Deletes a configuration profile and all associated data including:
6
+ * - Profile configuration (~/.config/benchling-webhook/{profile}/config.json)
7
+ * - Deployment tracking (~/.config/benchling-webhook/{profile}/deployments.json)
8
+ * - Profile directory
9
+ *
10
+ * IMPORTANT: This command does NOT destroy AWS resources. To destroy the deployed
11
+ * CloudFormation stack, use the 'destroy' command first.
12
+ *
13
+ * @module bin/commands/clean
14
+ */
15
+ var __importDefault = (this && this.__importDefault) || function (mod) {
16
+ return (mod && mod.__esModule) ? mod : { "default": mod };
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.cleanCommand = cleanCommand;
20
+ const chalk_1 = __importDefault(require("chalk"));
21
+ const xdg_config_1 = require("../../lib/xdg-config");
22
+ const inquirer_1 = __importDefault(require("inquirer"));
23
+ /**
24
+ * Clean command: Remove a configuration profile
25
+ *
26
+ * @param options - Command options
27
+ */
28
+ async function cleanCommand(options) {
29
+ const xdg = options.xdg || new xdg_config_1.XDGConfig();
30
+ const profile = options.profile || "default";
31
+ // Check if profile exists
32
+ if (!xdg.profileExists(profile)) {
33
+ console.log(chalk_1.default.yellow(`Profile '${profile}' does not exist.`));
34
+ console.log();
35
+ console.log(chalk_1.default.dim("Available profiles:"));
36
+ const profiles = xdg.listProfiles();
37
+ if (profiles.length === 0) {
38
+ console.log(chalk_1.default.dim(" (none)"));
39
+ }
40
+ else {
41
+ profiles.forEach((p) => {
42
+ console.log(chalk_1.default.dim(` - ${p}`));
43
+ });
44
+ }
45
+ return;
46
+ }
47
+ // Load profile to check for active deployments
48
+ let hasDeployments = false;
49
+ let activeStages = [];
50
+ try {
51
+ xdg.readProfile(profile); // Verify profile can be read
52
+ const deployments = xdg.getDeployments(profile);
53
+ if (deployments && deployments.active) {
54
+ activeStages = Object.keys(deployments.active);
55
+ hasDeployments = activeStages.length > 0;
56
+ }
57
+ }
58
+ catch (error) {
59
+ console.log(chalk_1.default.yellow(`Warning: Could not read profile '${profile}' details: ${error.message}`));
60
+ }
61
+ // Show warning about active deployments
62
+ if (hasDeployments) {
63
+ console.log();
64
+ console.log(chalk_1.default.yellow.bold("⚠️ WARNING: Active Deployments Detected"));
65
+ console.log();
66
+ console.log(chalk_1.default.yellow(`The profile '${profile}' has active deployments for the following stages:`));
67
+ activeStages.forEach((stage) => {
68
+ console.log(chalk_1.default.yellow(` - ${stage}`));
69
+ });
70
+ console.log();
71
+ console.log(chalk_1.default.yellow("This command will ONLY remove the local configuration."));
72
+ console.log(chalk_1.default.yellow("AWS resources (CloudFormation stacks, etc.) will NOT be destroyed."));
73
+ console.log();
74
+ console.log(chalk_1.default.cyan("To destroy AWS resources first, run:"));
75
+ activeStages.forEach((stage) => {
76
+ console.log(chalk_1.default.cyan(` npx @quiltdata/benchling-webhook destroy --profile ${profile} --stage ${stage}`));
77
+ });
78
+ console.log();
79
+ }
80
+ // Confirm deletion
81
+ if (!options.yes) {
82
+ console.log();
83
+ console.log(chalk_1.default.bold(`About to delete profile: ${profile}`));
84
+ console.log();
85
+ console.log(chalk_1.default.dim("This will remove:"));
86
+ console.log(chalk_1.default.dim(` - Configuration: ~/.config/benchling-webhook/${profile}/config.json`));
87
+ console.log(chalk_1.default.dim(` - Deployment tracking: ~/.config/benchling-webhook/${profile}/deployments.json`));
88
+ console.log(chalk_1.default.dim(` - Profile directory: ~/.config/benchling-webhook/${profile}/`));
89
+ console.log();
90
+ const response = await inquirer_1.default.prompt([
91
+ {
92
+ type: "confirm",
93
+ name: "confirmed",
94
+ message: `Are you sure you want to delete profile '${profile}'?`,
95
+ default: false,
96
+ },
97
+ ]);
98
+ if (!response.confirmed) {
99
+ console.log(chalk_1.default.yellow("Operation cancelled."));
100
+ return;
101
+ }
102
+ }
103
+ // Delete the profile
104
+ try {
105
+ xdg.deleteProfile(profile);
106
+ console.log();
107
+ console.log(chalk_1.default.green(`✓ Profile '${profile}' deleted successfully.`));
108
+ console.log();
109
+ }
110
+ catch (error) {
111
+ throw new Error(`Failed to delete profile '${profile}': ${error.message}`);
112
+ }
113
+ }
114
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../../bin/commands/clean.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../bin/commands/deploy.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AA6GrE;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FhB;AAED;;GAEG;AACH,wBAAsB,MAAM,CACxB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE;IACL,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GACF,OAAO,CAAC,IAAI,CAAC,CA8gBf"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../bin/commands/deploy.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AAuNrE;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IACzC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8FhB;AAED;;GAEG;AACH,wBAAsB,MAAM,CACxB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE;IACL,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,GACF,OAAO,CAAC,IAAI,CAAC,CAuhBf"}
@@ -61,6 +61,93 @@ function suggestSetup(profileName, message) {
61
61
  console.log(chalk_1.default.cyan(` npm run setup -- --profile ${profileName}`));
62
62
  console.log();
63
63
  }
64
+ /**
65
+ * Build CDK app path
66
+ */
67
+ function getCdkAppPath() {
68
+ let moduleDir;
69
+ if (__dirname.includes("/dist/")) {
70
+ moduleDir = path.resolve(__dirname, "../../..");
71
+ }
72
+ else {
73
+ moduleDir = path.resolve(__dirname, "../..");
74
+ }
75
+ const tsSourcePath = path.join(moduleDir, "bin/benchling-webhook.ts");
76
+ const jsDistPath = path.join(moduleDir, "dist/bin/benchling-webhook.js");
77
+ if (fs.existsSync(tsSourcePath)) {
78
+ return `npx ts-node --prefer-ts-exts "${tsSourcePath}"`;
79
+ }
80
+ else if (fs.existsSync(jsDistPath)) {
81
+ return `node "${jsDistPath}"`;
82
+ }
83
+ return "";
84
+ }
85
+ /**
86
+ * Build CDK environment variables from config
87
+ */
88
+ function buildCdkEnv(config, options) {
89
+ const env = {
90
+ ...process.env,
91
+ CDK_DEFAULT_ACCOUNT: options.deployAccount,
92
+ CDK_DEFAULT_REGION: options.deployRegion,
93
+ QUILT_STACK_ARN: options.stackArn,
94
+ BENCHLING_SECRET: options.benchlingSecret,
95
+ PROFILE: options.profileName,
96
+ STACK_NAME: options.stackName,
97
+ QUILT_CATALOG: config.quilt.catalog,
98
+ QUILT_DATABASE: config.quilt.database,
99
+ QUEUE_URL: config.quilt.queueUrl,
100
+ QUILT_USER_BUCKET: config.packages.bucket,
101
+ PKG_PREFIX: config.packages.prefix || "benchling",
102
+ PKG_KEY: config.packages.metadataKey || "experiment_id",
103
+ BENCHLING_TENANT: config.benchling.tenant,
104
+ BENCHLING_CLIENT_ID: config.benchling.clientId || "",
105
+ BENCHLING_APP_DEFINITION_ID: config.benchling.appDefinitionId || "",
106
+ LOG_LEVEL: config.logging?.level || "INFO",
107
+ IMAGE_TAG: options.imageTag,
108
+ };
109
+ // Add optional Quilt fields if present
110
+ if (config.quilt.icebergDatabase) {
111
+ env.ICEBERG_DATABASE = config.quilt.icebergDatabase;
112
+ }
113
+ if (config.quilt.icebergWorkgroup) {
114
+ env.ICEBERG_WORKGROUP = config.quilt.icebergWorkgroup;
115
+ }
116
+ if (config.quilt.athenaUserWorkgroup) {
117
+ env.ATHENA_USER_WORKGROUP = config.quilt.athenaUserWorkgroup;
118
+ }
119
+ if (config.quilt.athenaResultsBucket) {
120
+ env.ATHENA_RESULTS_BUCKET = config.quilt.athenaResultsBucket;
121
+ }
122
+ // Pass VPC configuration if specified in profile
123
+ if (config.deployment.vpc?.vpcId) {
124
+ env.VPC_ID = config.deployment.vpc.vpcId;
125
+ if (config.deployment.vpc.privateSubnetIds) {
126
+ env.VPC_PRIVATE_SUBNET_IDS = JSON.stringify(config.deployment.vpc.privateSubnetIds);
127
+ }
128
+ if (config.deployment.vpc.publicSubnetIds) {
129
+ env.VPC_PUBLIC_SUBNET_IDS = JSON.stringify(config.deployment.vpc.publicSubnetIds);
130
+ }
131
+ if (config.deployment.vpc.availabilityZones) {
132
+ env.VPC_AVAILABILITY_ZONES = JSON.stringify(config.deployment.vpc.availabilityZones);
133
+ }
134
+ if (config.deployment.vpc.vpcCidrBlock) {
135
+ env.VPC_CIDR_BLOCK = config.deployment.vpc.vpcCidrBlock;
136
+ }
137
+ }
138
+ // Pass security configuration if specified in profile
139
+ if (config.security?.webhookAllowList) {
140
+ env.WEBHOOK_ALLOW_LIST = config.security.webhookAllowList;
141
+ }
142
+ if (config.security?.enableVerification !== undefined) {
143
+ env.ENABLE_WEBHOOK_VERIFICATION = config.security.enableVerification.toString();
144
+ }
145
+ // Pass ECR repository if specified
146
+ if (config.deployment.ecrRepository) {
147
+ env.ECR_REPOSITORY_NAME = config.deployment.ecrRepository;
148
+ }
149
+ return env;
150
+ }
64
151
  /**
65
152
  * Check if the existing stack is in a problematic state (active rollback, failed, etc.)
66
153
  *
@@ -365,6 +452,64 @@ async function deploy(stackArn, benchlingSecret, config, options) {
365
452
  // Check for rollback or failed state
366
453
  spinner.start("Checking stack status...");
367
454
  const stackCheck = await checkStackStatus(deployRegion, stackName);
455
+ // REVIEW_IN_PROGRESS is unrecoverable - must destroy and recreate
456
+ if (stackCheck.stackExists && stackCheck.stackStatus === "REVIEW_IN_PROGRESS") {
457
+ spinner.fail("Stack in unrecoverable state (REVIEW_IN_PROGRESS)");
458
+ console.log();
459
+ console.log((0, boxen_1.default)(`${chalk_1.default.red.bold("Stack in Unrecoverable State")}\n\n` +
460
+ `The stack ${chalk_1.default.cyan(stackName)} is in ${chalk_1.default.yellow("REVIEW_IN_PROGRESS")} state.\n` +
461
+ "This means a CloudFormation change set failed during creation.\n\n" +
462
+ `${chalk_1.default.bold("This stack must be destroyed and recreated.")}\n`, { padding: 1, borderColor: "red", borderStyle: "round" }));
463
+ console.log();
464
+ const { shouldDestroy } = await (0, enquirer_1.prompt)([
465
+ {
466
+ type: "confirm",
467
+ name: "shouldDestroy",
468
+ message: "Destroy this stack and recreate? (Only option to proceed)",
469
+ initial: true,
470
+ },
471
+ ]);
472
+ if (!shouldDestroy) {
473
+ console.log(chalk_1.default.yellow("Deployment cancelled"));
474
+ process.exit(1);
475
+ }
476
+ // Destroy the stack
477
+ console.log();
478
+ spinner.start("Destroying stuck stack...");
479
+ try {
480
+ // REVIEW_IN_PROGRESS stacks require special handling:
481
+ // 1. Delete the failed changeset first
482
+ // 2. Then delete the stack directly (CDK destroy won't work)
483
+ // Step 1: Delete the failed changeset
484
+ spinner.text = "Deleting failed changeset...";
485
+ try {
486
+ (0, child_process_1.execSync)(`aws cloudformation delete-change-set --change-set-name cdk-deploy-change-set --stack-name ${stackName} --region ${deployRegion}`, { encoding: "utf-8" });
487
+ }
488
+ catch (_changesetError) {
489
+ // Changeset might not exist, which is fine - continue with stack deletion
490
+ }
491
+ // Step 2: Delete the stack directly using AWS CLI
492
+ spinner.text = "Deleting stack...";
493
+ (0, child_process_1.execSync)(`aws cloudformation delete-stack --stack-name ${stackName} --region ${deployRegion}`, { encoding: "utf-8" });
494
+ // Step 3: Wait for deletion to complete
495
+ spinner.text = "Waiting for stack deletion to complete...";
496
+ (0, child_process_1.execSync)(`aws cloudformation wait stack-delete-complete --stack-name ${stackName} --region ${deployRegion}`, { encoding: "utf-8", timeout: 300000 });
497
+ spinner.succeed("Stack destroyed");
498
+ console.log(chalk_1.default.blue("Proceeding with fresh deployment..."));
499
+ console.log();
500
+ }
501
+ catch (error) {
502
+ spinner.fail("Failed to destroy stack");
503
+ console.log();
504
+ console.error(chalk_1.default.red(error.message));
505
+ console.log();
506
+ console.log(chalk_1.default.yellow("You may need to manually delete the stack:"));
507
+ console.log(chalk_1.default.cyan(` aws cloudformation delete-change-set --change-set-name cdk-deploy-change-set --stack-name ${stackName} --region ${deployRegion}`));
508
+ console.log(chalk_1.default.cyan(` aws cloudformation delete-stack --stack-name ${stackName} --region ${deployRegion}`));
509
+ console.log();
510
+ process.exit(1);
511
+ }
512
+ }
368
513
  const needsAttention = ["in_progress", "failed", "rolled_back"].includes(stackCheck.statusCategory);
369
514
  if (needsAttention) {
370
515
  const isActiveRollback = stackCheck.statusCategory === "in_progress";
@@ -521,6 +666,9 @@ async function deploy(stackArn, benchlingSecret, config, options) {
521
666
  console.log();
522
667
  console.log(chalk_1.default.blue.bold("▶ Starting deployment..."));
523
668
  console.log();
669
+ // Track deployment success - we'll verify actual stack status even if CDK command fails
670
+ let deploymentSucceeded = false;
671
+ let cdkError = null;
524
672
  try {
525
673
  // Build CloudFormation parameters
526
674
  // Parameter names must match the CfnParameter IDs in BenchlingWebhookStack
@@ -542,111 +690,48 @@ async function deploy(stackArn, benchlingSecret, config, options) {
542
690
  `LogLevel=${config.logging?.level || "INFO"}`,
543
691
  ];
544
692
  const parametersArg = parameters.map(p => `--parameters ${p}`).join(" ");
545
- // Determine the CDK app entry point
546
- // The path needs to be absolute to work from any cwd
547
- // Find the package root directory
548
- // When compiled: __dirname is dist/bin/commands, so go up 3 levels
549
- // When source: __dirname is bin/commands, so go up 2 levels
550
- let moduleDir;
551
- if (__dirname.includes("/dist/")) {
552
- // Compiled: dist/bin/commands -> ../../../
553
- moduleDir = path.resolve(__dirname, "../../..");
554
- }
555
- else {
556
- // Source: bin/commands -> ../../
557
- moduleDir = path.resolve(__dirname, "../..");
558
- }
559
- let appPath;
560
- const tsSourcePath = path.join(moduleDir, "bin/benchling-webhook.ts");
561
- const jsDistPath = path.join(moduleDir, "dist/bin/benchling-webhook.js");
562
- if (fs.existsSync(tsSourcePath)) {
563
- // Development mode: TypeScript source exists, use it directly
564
- appPath = `npx ts-node --prefer-ts-exts "${tsSourcePath}"`;
565
- }
566
- else if (fs.existsSync(jsDistPath)) {
567
- // Production mode: use compiled JavaScript
568
- appPath = `node "${jsDistPath}"`;
569
- }
570
- else {
571
- // Fallback: rely on cdk.json (should not happen)
572
- console.warn(chalk_1.default.yellow("⚠️ Could not find CDK app entry point, relying on cdk.json"));
573
- appPath = "";
574
- }
693
+ const appPath = getCdkAppPath();
575
694
  const appArg = appPath ? `--app "${appPath}"` : "";
576
- const cdkCommand = `npx cdk deploy ${appArg} --require-approval ${options.requireApproval || "never"} ${parametersArg}`;
695
+ // Use --method=direct to skip changeset creation (avoids REVIEW_IN_PROGRESS state for new stacks)
696
+ const cdkCommand = `npx cdk deploy ${appArg} --require-approval ${options.requireApproval || "never"} --method=direct ${parametersArg}`;
577
697
  // Build environment variables for CDK synthesis
578
- const env = {
579
- ...process.env,
580
- CDK_DEFAULT_ACCOUNT: deployAccount,
581
- CDK_DEFAULT_REGION: deployRegion,
582
- QUILT_STACK_ARN: stackArn,
583
- BENCHLING_SECRET: benchlingSecret,
584
- // Pass profile and stack name for multi-stack support
585
- PROFILE: options.profileName,
586
- STACK_NAME: stackName,
587
- // Pass Quilt configuration (required by A07 validation)
588
- QUILT_CATALOG: config.quilt.catalog,
589
- QUILT_DATABASE: config.quilt.database,
590
- QUEUE_URL: config.quilt.queueUrl,
591
- // Pass optional Quilt fields if present
592
- ...(config.quilt.icebergDatabase && {
593
- ICEBERG_DATABASE: config.quilt.icebergDatabase,
594
- }),
595
- ...(config.quilt.icebergWorkgroup && {
596
- ICEBERG_WORKGROUP: config.quilt.icebergWorkgroup,
597
- }),
598
- ...(config.quilt.athenaUserWorkgroup && {
599
- ATHENA_USER_WORKGROUP: config.quilt.athenaUserWorkgroup,
600
- }),
601
- ...(config.quilt.athenaResultsBucket && {
602
- ATHENA_RESULTS_BUCKET: config.quilt.athenaResultsBucket,
603
- }),
604
- // Pass package configuration
605
- QUILT_USER_BUCKET: config.packages.bucket,
606
- PKG_PREFIX: config.packages.prefix || "benchling",
607
- PKG_KEY: config.packages.metadataKey || "experiment_id",
608
- // Pass Benchling configuration
609
- BENCHLING_TENANT: config.benchling.tenant,
610
- BENCHLING_CLIENT_ID: config.benchling.clientId || "",
611
- BENCHLING_APP_DEFINITION_ID: config.benchling.appDefinitionId || "",
612
- // Pass logging configuration
613
- LOG_LEVEL: config.logging?.level || "INFO",
614
- // Pass image configuration
615
- IMAGE_TAG: options.imageTag,
616
- ...(config.deployment.ecrRepository && {
617
- ECR_REPOSITORY_NAME: config.deployment.ecrRepository,
618
- }),
619
- };
620
- // Pass VPC configuration if specified in profile
621
- if (config.deployment.vpc?.vpcId) {
622
- env.VPC_ID = config.deployment.vpc.vpcId;
623
- // Serialize subnet arrays as JSON for environment variables
624
- if (config.deployment.vpc.privateSubnetIds) {
625
- env.VPC_PRIVATE_SUBNET_IDS = JSON.stringify(config.deployment.vpc.privateSubnetIds);
626
- }
627
- if (config.deployment.vpc.publicSubnetIds) {
628
- env.VPC_PUBLIC_SUBNET_IDS = JSON.stringify(config.deployment.vpc.publicSubnetIds);
629
- }
630
- if (config.deployment.vpc.availabilityZones) {
631
- env.VPC_AVAILABILITY_ZONES = JSON.stringify(config.deployment.vpc.availabilityZones);
632
- }
633
- if (config.deployment.vpc.vpcCidrBlock) {
634
- env.VPC_CIDR_BLOCK = config.deployment.vpc.vpcCidrBlock;
635
- }
636
- }
637
- // Pass security configuration if specified in profile
638
- if (config.security?.webhookAllowList) {
639
- env.WEBHOOK_ALLOW_LIST = config.security.webhookAllowList;
640
- }
641
- if (config.security?.enableVerification !== undefined) {
642
- env.ENABLE_WEBHOOK_VERIFICATION = config.security.enableVerification.toString();
643
- }
698
+ const env = buildCdkEnv(config, {
699
+ stackArn,
700
+ benchlingSecret,
701
+ profileName: options.profileName,
702
+ stackName,
703
+ imageTag: options.imageTag,
704
+ deployAccount,
705
+ deployRegion,
706
+ });
644
707
  (0, child_process_1.execSync)(cdkCommand, {
645
708
  stdio: "inherit",
646
709
  env,
647
710
  });
711
+ deploymentSucceeded = true;
648
712
  console.log();
649
713
  spinner.succeed("Stack deployed successfully");
714
+ }
715
+ catch (error) {
716
+ // CDK command failed, but the stack might have actually deployed successfully
717
+ // Check actual stack status before failing
718
+ cdkError = error;
719
+ console.log();
720
+ console.log(chalk_1.default.yellow("CDK command exited with error, checking actual stack status..."));
721
+ const finalCheck = await checkStackStatus(deployRegion, stackName);
722
+ if (finalCheck.stackExists &&
723
+ (finalCheck.stackStatus === "CREATE_COMPLETE" || finalCheck.stackStatus === "UPDATE_COMPLETE")) {
724
+ console.log(chalk_1.default.green(`✓ Stack deployment succeeded despite CDK error (${finalCheck.stackStatus})`));
725
+ deploymentSucceeded = true;
726
+ spinner.succeed("Stack deployed successfully");
727
+ }
728
+ else {
729
+ deploymentSucceeded = false;
730
+ spinner.fail("Deployment failed");
731
+ }
732
+ }
733
+ // Record deployment endpoint if stack deployed successfully
734
+ if (deploymentSucceeded) {
650
735
  // After successful deployment, store endpoint and run tests
651
736
  console.log();
652
737
  console.log("Retrieving deployment endpoint...");
@@ -701,10 +786,10 @@ async function deploy(stackArn, benchlingSecret, config, options) {
701
786
  console.warn(" Deployment succeeded but endpoint could not be recorded");
702
787
  }
703
788
  }
704
- catch (error) {
705
- spinner.fail("Deployment failed");
706
- console.error();
707
- console.error(chalk_1.default.red(error.message));
789
+ else {
790
+ // Deployment failed - report the error
791
+ console.log();
792
+ console.error(chalk_1.default.red(cdkError.message));
708
793
  process.exit(1);
709
794
  }
710
795
  }