@quiltdata/benchling-webhook 0.9.9 → 0.10.0-20251224T233317Z

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 (74) hide show
  1. package/README.md +0 -132
  2. package/dist/bin/benchling-webhook.d.ts +29 -5
  3. package/dist/bin/benchling-webhook.d.ts.map +1 -1
  4. package/dist/bin/benchling-webhook.js +28 -132
  5. package/dist/bin/benchling-webhook.js.map +1 -1
  6. package/dist/bin/commands/deploy.d.ts +7 -1
  7. package/dist/bin/commands/deploy.d.ts.map +1 -1
  8. package/dist/bin/commands/deploy.js +49 -152
  9. package/dist/bin/commands/deploy.js.map +1 -1
  10. package/dist/bin/commands/infer-quilt-config.d.ts +0 -2
  11. package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
  12. package/dist/bin/commands/infer-quilt-config.js +0 -11
  13. package/dist/bin/commands/infer-quilt-config.js.map +1 -1
  14. package/dist/bin/commands/setup-wizard.d.ts +0 -1
  15. package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
  16. package/dist/bin/commands/setup-wizard.js +0 -1
  17. package/dist/bin/commands/setup-wizard.js.map +1 -1
  18. package/dist/bin/commands/status.d.ts.map +1 -1
  19. package/dist/bin/commands/status.js +0 -4
  20. package/dist/bin/commands/status.js.map +1 -1
  21. package/dist/bin/commands/sync-secrets.d.ts.map +1 -1
  22. package/dist/bin/commands/sync-secrets.js +0 -4
  23. package/dist/bin/commands/sync-secrets.js.map +1 -1
  24. package/dist/bin/xdg-launch.d.ts.map +1 -1
  25. package/dist/bin/xdg-launch.js +0 -2
  26. package/dist/bin/xdg-launch.js.map +1 -1
  27. package/dist/lib/benchling-webhook-stack.d.ts +8 -7
  28. package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
  29. package/dist/lib/benchling-webhook-stack.js +6 -31
  30. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  31. package/dist/lib/fargate-service.d.ts +4 -6
  32. package/dist/lib/fargate-service.d.ts.map +1 -1
  33. package/dist/lib/fargate-service.js +16 -19
  34. package/dist/lib/fargate-service.js.map +1 -1
  35. package/dist/lib/rest-api-gateway.d.ts +2 -2
  36. package/dist/lib/rest-api-gateway.d.ts.map +1 -1
  37. package/dist/lib/rest-api-gateway.js +2 -9
  38. package/dist/lib/rest-api-gateway.js.map +1 -1
  39. package/dist/lib/types/config.d.ts +0 -28
  40. package/dist/lib/types/config.d.ts.map +1 -1
  41. package/dist/lib/types/config.js +0 -2
  42. package/dist/lib/types/config.js.map +1 -1
  43. package/dist/lib/types/stack-config.d.ts +170 -0
  44. package/dist/lib/types/stack-config.d.ts.map +1 -0
  45. package/dist/lib/types/stack-config.js +17 -0
  46. package/dist/lib/types/stack-config.js.map +1 -0
  47. package/dist/lib/utils/config-transform.d.ts +92 -0
  48. package/dist/lib/utils/config-transform.d.ts.map +1 -0
  49. package/dist/lib/utils/config-transform.js +263 -0
  50. package/dist/lib/utils/config-transform.js.map +1 -0
  51. package/dist/lib/utils/service-resolver.d.ts +1 -15
  52. package/dist/lib/utils/service-resolver.d.ts.map +1 -1
  53. package/dist/lib/utils/service-resolver.js +2 -11
  54. package/dist/lib/utils/service-resolver.js.map +1 -1
  55. package/dist/lib/utils/stack-inference.d.ts +1 -7
  56. package/dist/lib/utils/stack-inference.d.ts.map +1 -1
  57. package/dist/lib/utils/stack-inference.js +1 -5
  58. package/dist/lib/utils/stack-inference.js.map +1 -1
  59. package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -1
  60. package/dist/lib/wizard/phase2-stack-query.js +0 -11
  61. package/dist/lib/wizard/phase2-stack-query.js.map +1 -1
  62. package/dist/lib/wizard/phase3-parameter-collection.d.ts.map +1 -1
  63. package/dist/lib/wizard/phase3-parameter-collection.js +12 -113
  64. package/dist/lib/wizard/phase3-parameter-collection.js.map +1 -1
  65. package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
  66. package/dist/lib/wizard/phase6-integrated-mode.js +0 -9
  67. package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
  68. package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
  69. package/dist/lib/wizard/phase7-standalone-mode.js +0 -9
  70. package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
  71. package/dist/lib/wizard/types.d.ts +1 -6
  72. package/dist/lib/wizard/types.d.ts.map +1 -1
  73. package/dist/package.json +1 -1
  74. package/package.json +1 -1
package/README.md CHANGED
@@ -65,63 +65,6 @@ If the App Canvas is not already part of your standard notebook template, Benchl
65
65
 
66
66
  ![App Canvas - Insert](imgs/benchling-insert.png)
67
67
 
68
- ## Architecture
69
-
70
- AWS CDK application with simple, reliable webhook processing:
71
-
72
- ```text
73
- Benchling Webhook
74
- |
75
- | HTTPS POST
76
- v
77
- REST API Gateway v1 + Resource Policy
78
- | (optional IP filtering)
79
- v
80
- VPC Link
81
- |
82
- v
83
- Network Load Balancer
84
- | (internal)
85
- v
86
- ECS Fargate (Gunicorn + FastAPI)
87
- |
88
- | Multi-worker ASGI server
89
- | HMAC signature verification
90
- | Process webhook payload
91
- |
92
- +---> NAT Gateway ---> Internet (Benchling API, ECR)
93
- |
94
- v
95
- S3 + SQS → Quilt Package
96
- ```
97
-
98
- ### Components
99
-
100
- - **REST API Gateway v1** - Public HTTPS endpoint with CloudWatch logging and resource policies
101
- - **Resource Policy** - Free IP allowlisting (applied when `webhookAllowList` configured)
102
- - **VPC Link** - Private connection between API Gateway and VPC
103
- - **Network Load Balancer** - Internal load balancer with health checks
104
- - **ECS Fargate** - Gunicorn + FastAPI application (4 workers, auto-scales 2-10 tasks) with HMAC verification
105
- - **NAT Gateway** - Enables ECS tasks to access external services (Benchling API, ECR, Secrets Manager)
106
- - **S3** - Payload and package storage
107
- - **SQS** - Quilt package creation queue
108
- - **Secrets Manager** - Benchling OAuth credentials
109
- - **CloudWatch** - Centralized logging and monitoring
110
-
111
- ### Cost Analysis
112
-
113
- **Monthly Fixed Costs (us-east-1):**
114
-
115
- - REST API v1: $0.00
116
- - Resource Policy: $0.00 (free)
117
- - VPC Link: $0.00
118
- - Network Load Balancer: $16.20
119
- - ECS Fargate (2 tasks): $14.50
120
- - NAT Gateway: $32.40
121
- - **Total: $63.10/month**
122
-
123
- **Variable Costs:** ~$3.50 per million requests
124
-
125
68
  ### Security Features
126
69
 
127
70
  **Single Authentication Layer:**
@@ -258,78 +201,3 @@ npx @quiltdata/benchling-webhook@latest logs --profile sales
258
201
  # Destroy stack
259
202
  npx @quiltdata/benchling-webhook@latest destroy --profile sales
260
203
  ```
261
-
262
- ### Migration from Single Stack
263
-
264
- Existing "default" profile deployments continue to use `BenchlingWebhookStack` with no changes required. New profiles automatically get unique stack names.
265
-
266
- ## Monitoring
267
-
268
- ### CloudWatch Logs
269
-
270
- - `/aws/apigateway/benchling-webhook-rest` - API Gateway access logs
271
- - `/ecs/benchling-webhook` - ECS container logs (includes HMAC verification)
272
-
273
- **Note**: Resource Policy filtering happens at the API Gateway edge and is visible in access logs (403 responses for blocked IPs).
274
-
275
- ### View Logs
276
-
277
- ```bash
278
- # Via AWS CLI
279
- aws logs tail /aws/apigateway/benchling-webhook-rest --follow
280
- aws logs tail /ecs/benchling-webhook --follow
281
-
282
- # Via NPX (all logs combined)
283
- npx @quiltdata/benchling-webhook@latest logs --profile default
284
- ```
285
-
286
- ## Additional Commands
287
-
288
- ```bash
289
- # Deploy without re-running setup
290
- npx @quiltdata/benchling-webhook@latest deploy [--profile <name>]
291
-
292
- # Check CloudFormation stack status
293
- npx @quiltdata/benchling-webhook@latest status [--profile <name>]
294
-
295
- # View CloudWatch logs
296
- npx @quiltdata/benchling-webhook@latest logs [--profile <name>]
297
-
298
- # Destroy stack
299
- npx @quiltdata/benchling-webhook@latest destroy [--profile <name>]
300
-
301
- # Show all available commands
302
- npx @quiltdata/benchling-webhook@latest --help
303
- ```
304
-
305
- ## Upgrading
306
-
307
- ### From v1.0.0 (HTTP API v2 + Lambda Authorizer)
308
-
309
- Version 0.8.9+ uses REST API v1 + Resource Policy architecture instead of HTTP API v2. This is a **breaking change that requires stack recreation**.
310
-
311
- **Why the change?** REST API v1 + Resource Policy saves $5.10/month by eliminating AWS WAF costs while maintaining the same security model.
312
-
313
- **Quick migration:**
314
-
315
- ```bash
316
- # 1. Backup configuration
317
- cp ~/.config/benchling-webhook/{profile}/config.json ~/backup-config.json
318
-
319
- # 2. Destroy old stack
320
- npx cdk destroy --profile {profile} --context stage={stage}
321
-
322
- # 3. Deploy new stack
323
- npm run deploy:{stage} -- --profile {profile} --yes
324
-
325
- # 4. Update webhook URL in Benchling (now includes stage prefix: /prod/webhook)
326
-
327
- # 5. Test
328
- npm run test:{stage} -- --profile {profile}
329
- ```
330
-
331
- See [MIGRATION.md](./MIGRATION.md) for detailed upgrade instructions.
332
-
333
- ## License
334
-
335
- Apache-2.0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import * as cdk from "aws-cdk-lib";
3
3
  import { BenchlingWebhookStack } from "../lib/benchling-webhook-stack";
4
- import type { Config } from "../lib/utils/config";
4
+ import type { StackConfig } from "../lib/types/stack-config";
5
5
  /**
6
6
  * Result of CDK bootstrap check
7
7
  */
@@ -28,9 +28,33 @@ export interface DeploymentResult {
28
28
  export declare function checkCdkBootstrap(account: string, region: string): Promise<BootstrapStatus>;
29
29
  /**
30
30
  * Create CDK app and stack (synthesis only, no deployment)
31
- * Accepts legacy Config for backward compatibility with existing deployment scripts.
32
- * v0.7.0: Uses ProfileConfig internally
33
- * v0.9.8: Supports profile-based stack names for multi-stack deployments
31
+ *
32
+ * v0.10.0: Clean library API - accepts minimal StackConfig interface
33
+ *
34
+ * This function is called directly by deploy.ts - no subprocess, no environment variables.
35
+ *
36
+ * @param config - Minimal stack configuration (transformed from ProfileConfig)
37
+ * @param options - Deployment options (account, region, profile name)
38
+ * @returns Deployment result with synthesized app and stack
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * import { createStack } from "@quiltdata/benchling-webhook";
43
+ * import { profileToStackConfig } from "./lib/utils/config-transform";
44
+ *
45
+ * const profile = XDGConfig.readProfile("default");
46
+ * const stackConfig = profileToStackConfig(profile);
47
+ *
48
+ * const result = createStack(stackConfig, {
49
+ * account: "123456789012",
50
+ * region: "us-east-1",
51
+ * profileName: "default"
52
+ * });
53
+ * ```
34
54
  */
35
- export declare function createStack(config: Config): DeploymentResult;
55
+ export declare function createStack(config: StackConfig, options: {
56
+ account: string;
57
+ region: string;
58
+ profileName: string;
59
+ }): DeploymentResult;
36
60
  //# sourceMappingURL=benchling-webhook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"benchling-webhook.d.ts","sourceRoot":"","sources":["../../bin/benchling-webhook.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IACb,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAsC1B;AAGD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAgE5D"}
1
+ {"version":3,"file":"benchling-webhook.d.ts","sourceRoot":"","sources":["../../bin/benchling-webhook.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;IACb,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACnC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAsC1B;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,WAAW,CACvB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,GACF,gBAAgB,CAoBlB"}
@@ -77,63 +77,40 @@ async function checkCdkBootstrap(account, region) {
77
77
  }
78
78
  /**
79
79
  * Create CDK app and stack (synthesis only, no deployment)
80
- * Accepts legacy Config for backward compatibility with existing deployment scripts.
81
- * v0.7.0: Uses ProfileConfig internally
82
- * v0.9.8: Supports profile-based stack names for multi-stack deployments
80
+ *
81
+ * v0.10.0: Clean library API - accepts minimal StackConfig interface
82
+ *
83
+ * This function is called directly by deploy.ts - no subprocess, no environment variables.
84
+ *
85
+ * @param config - Minimal stack configuration (transformed from ProfileConfig)
86
+ * @param options - Deployment options (account, region, profile name)
87
+ * @returns Deployment result with synthesized app and stack
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * import { createStack } from "@quiltdata/benchling-webhook";
92
+ * import { profileToStackConfig } from "./lib/utils/config-transform";
93
+ *
94
+ * const profile = XDGConfig.readProfile("default");
95
+ * const stackConfig = profileToStackConfig(profile);
96
+ *
97
+ * const result = createStack(stackConfig, {
98
+ * account: "123456789012",
99
+ * region: "us-east-1",
100
+ * profileName: "default"
101
+ * });
102
+ * ```
83
103
  */
84
- function createStack(config) {
104
+ function createStack(config, options) {
85
105
  const app = new cdk.App();
86
- // Convert legacy config to ProfileConfig for backward compatibility
87
- const profileConfig = {
88
- quilt: {
89
- stackArn: config.quiltStackArn || "",
90
- catalog: config.quiltCatalog,
91
- database: config.quiltDatabase,
92
- queueUrl: config.queueUrl,
93
- region: config.cdkRegion,
94
- },
95
- benchling: {
96
- tenant: config.benchlingTenant,
97
- clientId: config.benchlingClientId,
98
- clientSecret: config.benchlingClientSecret,
99
- secretArn: config.benchlingSecret,
100
- appDefinitionId: config.benchlingAppDefinitionId,
101
- },
102
- packages: {
103
- bucket: config.quiltUserBucket,
104
- prefix: config.pkgPrefix || "benchling",
105
- metadataKey: config.pkgKey || "experiment_id",
106
- },
107
- deployment: {
108
- region: config.cdkRegion,
109
- account: config.cdkAccount,
110
- ecrRepository: config.ecrRepositoryName || "quiltdata/benchling",
111
- imageTag: config.imageTag || "latest",
112
- },
113
- logging: {
114
- level: config.logLevel || "INFO",
115
- },
116
- security: {
117
- webhookAllowList: config.webhookAllowList || "",
118
- enableVerification: config.enableWebhookVerification !== "false",
119
- },
120
- _metadata: {
121
- version: "0.7.0-migration",
122
- createdAt: new Date().toISOString(),
123
- updatedAt: new Date().toISOString(),
124
- source: "cli",
125
- },
126
- };
127
106
  // Determine stack name: use profile-based naming with optional custom name
128
- // For legacy compatibility, assume "default" profile unless specified in deployment config
129
- const profile = "default";
130
- const stackName = (0, config_1.getStackName)(profile, profileConfig.deployment?.stackName);
107
+ const stackName = (0, config_1.getStackName)(options.profileName, config.deployment.stackName);
131
108
  const stack = new benchling_webhook_stack_1.BenchlingWebhookStack(app, stackName, {
132
109
  env: {
133
- account: config.cdkAccount,
134
- region: config.cdkRegion,
110
+ account: options.account,
111
+ region: options.region,
135
112
  },
136
- config: profileConfig,
113
+ config: config,
137
114
  });
138
115
  return {
139
116
  app,
@@ -142,85 +119,4 @@ function createStack(config) {
142
119
  stackId: stack.stackId,
143
120
  };
144
121
  }
145
- // Only run if called directly (not imported)
146
- // v0.7.0+: Uses ProfileConfig read from environment variables
147
- // This module is primarily used by CDK CLI (npx cdk deploy) which requires direct execution
148
- if (require.main === module) {
149
- const app = new cdk.App();
150
- // Minimal ProfileConfig from environment variables (for direct CDK usage)
151
- // For destroy operations, provide placeholder values if SKIP_CONFIG_VALIDATION is set
152
- const skipValidation = process.env.SKIP_CONFIG_VALIDATION === "true";
153
- const profileConfig = {
154
- quilt: {
155
- stackArn: process.env.QUILT_STACK_ARN || (skipValidation ? "placeholder" : ""),
156
- catalog: process.env.QUILT_CATALOG || "",
157
- database: process.env.QUILT_DATABASE || "",
158
- queueUrl: process.env.QUEUE_URL || "",
159
- region: process.env.CDK_DEFAULT_REGION || "us-east-1",
160
- },
161
- benchling: {
162
- tenant: process.env.BENCHLING_TENANT || "",
163
- clientId: process.env.BENCHLING_CLIENT_ID || "",
164
- secretArn: process.env.BENCHLING_SECRET || (skipValidation ? "placeholder" : undefined),
165
- appDefinitionId: process.env.BENCHLING_APP_DEFINITION_ID || "",
166
- },
167
- packages: {
168
- bucket: process.env.QUILT_USER_BUCKET || "",
169
- prefix: process.env.PKG_PREFIX || "benchling",
170
- metadataKey: process.env.PKG_KEY || "experiment_id",
171
- },
172
- deployment: {
173
- region: process.env.CDK_DEFAULT_REGION || "us-east-1",
174
- account: process.env.CDK_DEFAULT_ACCOUNT,
175
- ecrRepository: process.env.ECR_REPOSITORY_NAME || "quiltdata/benchling",
176
- imageTag: process.env.IMAGE_TAG || "latest",
177
- // Include VPC configuration if specified
178
- ...(process.env.VPC_ID && {
179
- vpc: {
180
- vpcId: process.env.VPC_ID,
181
- // Parse subnet arrays from JSON-encoded environment variables
182
- ...(process.env.VPC_PRIVATE_SUBNET_IDS && {
183
- privateSubnetIds: JSON.parse(process.env.VPC_PRIVATE_SUBNET_IDS),
184
- }),
185
- ...(process.env.VPC_PUBLIC_SUBNET_IDS && {
186
- publicSubnetIds: JSON.parse(process.env.VPC_PUBLIC_SUBNET_IDS),
187
- }),
188
- ...(process.env.VPC_AVAILABILITY_ZONES && {
189
- availabilityZones: JSON.parse(process.env.VPC_AVAILABILITY_ZONES),
190
- }),
191
- ...(process.env.VPC_CIDR_BLOCK && {
192
- vpcCidrBlock: process.env.VPC_CIDR_BLOCK,
193
- }),
194
- },
195
- }),
196
- // Include custom stack name if specified
197
- ...(process.env.STACK_NAME && {
198
- stackName: process.env.STACK_NAME,
199
- }),
200
- },
201
- logging: {
202
- level: process.env.LOG_LEVEL || "INFO",
203
- },
204
- security: {
205
- webhookAllowList: process.env.WEBHOOK_ALLOW_LIST || "",
206
- enableVerification: process.env.ENABLE_WEBHOOK_VERIFICATION !== "false",
207
- },
208
- _metadata: {
209
- version: "0.7.0",
210
- createdAt: new Date().toISOString(),
211
- updatedAt: new Date().toISOString(),
212
- source: "cli",
213
- },
214
- };
215
- // Determine stack name from environment or profile
216
- const profile = process.env.PROFILE || "default";
217
- const stackName = (0, config_1.getStackName)(profile, profileConfig.deployment.stackName);
218
- new benchling_webhook_stack_1.BenchlingWebhookStack(app, stackName, {
219
- env: {
220
- account: process.env.CDK_DEFAULT_ACCOUNT,
221
- region: process.env.CDK_DEFAULT_REGION,
222
- },
223
- config: profileConfig,
224
- });
225
- }
226
122
  //# sourceMappingURL=benchling-webhook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"benchling-webhook.js","sourceRoot":"","sources":["../../bin/benchling-webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benchling-webhook.js","sourceRoot":"","sources":["../../bin/benchling-webhook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,8CAyCC;AA6BD,kCA2BC;AAhID,iDAAmC;AACnC,4EAAuE;AACvE,iDAAyC;AACzC,gDAAmD;AAwBnD;;;GAGG;AACI,KAAK,UAAU,iBAAiB,CACnC,OAAe,EACf,MAAc;IAEd,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EACnB,+CAA+C,MAAM,6EAA6E,EAClI,EAAE,QAAQ,EAAE,OAAO,EAAE,CACxB,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAElC,IACI,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YACtC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACzC,CAAC;YACC,OAAO;gBACH,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,uCAAuC,OAAO,cAAc,MAAM,EAAE;gBAC7E,OAAO,EAAE,2BAA2B,OAAO,IAAI,MAAM,EAAE;aAC1D,CAAC;QACN,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,iCAAiC,WAAW,qCAAqC;aAC7F,CAAC;QACN,CAAC;QAED,OAAO;YACH,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,WAAW;SACtB,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,0CAA2C,KAAe,CAAC,OAAO,EAAE;SAChF,CAAC;IACN,CAAC;AACL,CAAC;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,WAAW,CACvB,MAAmB,EACnB,OAIC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;IAE1B,2EAA2E;IAC3E,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAEjF,MAAM,KAAK,GAAG,IAAI,+CAAqB,CAAC,GAAG,EAAE,SAAS,EAAE;QACpD,GAAG,EAAE;YACD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB;QACD,MAAM,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO;QACH,GAAG;QACH,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;KACzB,CAAC;AACN,CAAC"}
@@ -5,8 +5,11 @@ import { ProfileConfig } from "../../lib/types/config";
5
5
  * Uses new profile-based configuration with deployment tracking.
6
6
  * Supports independent --profile and --stage options.
7
7
  *
8
+ * v0.10.0: Refactored to call createStack() directly instead of spawning subprocess.
9
+ * This eliminates environment variable IPC complexity and simplifies testing.
10
+ *
8
11
  * @module commands/deploy
9
- * @version 0.7.0
12
+ * @version 0.10.0
10
13
  */
11
14
  export declare function deployCommand(options: {
12
15
  yes?: boolean;
@@ -23,6 +26,9 @@ export declare function deployCommand(options: {
23
26
  }): Promise<void>;
24
27
  /**
25
28
  * Deploy the Benchling webhook stack
29
+ *
30
+ * v0.10.0: Refactored to call createStack() directly instead of using environment variable IPC.
31
+ * Configuration is passed programmatically through function calls, not subprocess environment.
26
32
  */
27
33
  export declare function deploy(stackArn: string, benchlingSecret: string, config: ProfileConfig, options: {
28
34
  yes?: boolean;
@@ -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;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"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../bin/commands/deploy.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AA4GrE;;;;;;;;;;;GAWG;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;;;;;GAKG;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,CAqiBf"}