@quiltdata/benchling-webhook 0.5.4-20251031T234720Z → 0.5.4-20251101T185415Z
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 +77 -36
- package/dist/bin/benchling-webhook.d.ts.map +1 -1
- package/dist/bin/benchling-webhook.js +1 -0
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cli.js +20 -14
- 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 +186 -0
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/lib/benchling-webhook-stack.d.ts +22 -8
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +71 -26
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/fargate-service.d.ts +17 -14
- package/dist/lib/fargate-service.d.ts.map +1 -1
- package/dist/lib/fargate-service.js +150 -70
- package/dist/lib/fargate-service.js.map +1 -1
- package/dist/lib/utils/config-loader.d.ts +48 -0
- package/dist/lib/utils/config-loader.d.ts.map +1 -0
- package/dist/lib/utils/config-loader.js +109 -0
- package/dist/lib/utils/config-loader.js.map +1 -0
- package/dist/lib/utils/config-resolver.d.ts +138 -0
- package/dist/lib/utils/config-resolver.d.ts.map +1 -0
- package/dist/lib/utils/config-resolver.js +272 -0
- package/dist/lib/utils/config-resolver.js.map +1 -0
- package/dist/package.json +3 -1
- package/package.json +3 -1
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
import * as cdk from "aws-cdk-lib";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
export interface BenchlingWebhookStackProps extends cdk.StackProps {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly
|
|
4
|
+
/**
|
|
5
|
+
* ARN of the Quilt CloudFormation stack.
|
|
6
|
+
* When provided with benchlingSecret, enables secrets-only mode where all configuration
|
|
7
|
+
* is resolved from AWS (CloudFormation outputs + Secrets Manager).
|
|
8
|
+
* Format: arn:aws:cloudformation:{region}:{account}:stack/{name}/{id}
|
|
9
|
+
*/
|
|
10
|
+
readonly quiltStackArn?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Name or ARN of the AWS Secrets Manager secret containing Benchling credentials.
|
|
13
|
+
* When provided with quiltStackArn, enables secrets-only mode.
|
|
14
|
+
* Secret must contain: client_id, client_secret, tenant, app_definition_id (optional)
|
|
15
|
+
*/
|
|
16
|
+
readonly benchlingSecret?: string;
|
|
17
|
+
readonly bucketName?: string;
|
|
18
|
+
readonly environment?: string;
|
|
19
|
+
readonly prefix?: string;
|
|
20
|
+
readonly queueArn?: string;
|
|
21
|
+
readonly benchlingClientId?: string;
|
|
22
|
+
readonly benchlingClientSecret?: string;
|
|
23
|
+
readonly benchlingTenant?: string;
|
|
24
|
+
readonly benchlingAppDefinitionId?: string;
|
|
11
25
|
/**
|
|
12
26
|
* Consolidated Benchling secrets as JSON string.
|
|
13
27
|
* When provided, this takes precedence over individual secret parameters.
|
|
@@ -16,7 +30,7 @@ export interface BenchlingWebhookStackProps extends cdk.StackProps {
|
|
|
16
30
|
*/
|
|
17
31
|
readonly benchlingSecrets?: string;
|
|
18
32
|
readonly quiltCatalog?: string;
|
|
19
|
-
readonly quiltDatabase
|
|
33
|
+
readonly quiltDatabase?: string;
|
|
20
34
|
readonly webhookAllowList?: string;
|
|
21
35
|
readonly createEcrRepository?: boolean;
|
|
22
36
|
readonly ecrRepositoryName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchling-webhook-stack.d.ts","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAInC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,MAAM,WAAW,0BAA2B,SAAQ,GAAG,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"benchling-webhook-stack.d.ts","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAInC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMvC,MAAM,WAAW,0BAA2B,SAAQ,GAAG,CAAC,UAAU;IAE9D;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGlC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAGnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,qBAAsB,SAAQ,GAAG,CAAC,KAAK;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,SAAgB,eAAe,EAAE,MAAM,CAAC;gBAGpC,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,0BAA0B;CAgRxC"}
|
|
@@ -48,13 +48,39 @@ const package_json_1 = __importDefault(require("../package.json"));
|
|
|
48
48
|
class BenchlingWebhookStack extends cdk.Stack {
|
|
49
49
|
constructor(scope, id, props) {
|
|
50
50
|
super(scope, id, props);
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
// Determine which mode we're operating in
|
|
52
|
+
const useSecretsOnlyMode = !!(props.quiltStackArn && props.benchlingSecret);
|
|
53
|
+
// Validation
|
|
54
|
+
if (useSecretsOnlyMode) {
|
|
55
|
+
// Secrets-only mode: only quiltStackArn and benchlingSecret are required
|
|
56
|
+
console.log("✓ Using secrets-only mode (v0.6.0+)");
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Legacy mode: validate required legacy props
|
|
60
|
+
if (!props.bucketName || !props.prefix || !props.queueArn || !props.quiltDatabase) {
|
|
61
|
+
throw new Error("Legacy mode requires: bucketName, prefix, queueArn, quiltDatabase.\n" +
|
|
62
|
+
"Or use secrets-only mode with: quiltStackArn, benchlingSecret");
|
|
63
|
+
}
|
|
64
|
+
if (props.prefix.includes("/")) {
|
|
65
|
+
throw new Error("Prefix should not contain a '/' character.");
|
|
66
|
+
}
|
|
67
|
+
console.log("⚠️ Using legacy mode (DEPRECATED - consider migrating to secrets-only mode)");
|
|
53
68
|
}
|
|
54
69
|
// Create CloudFormation parameters for runtime-configurable values
|
|
55
70
|
// Note: Use actual values from props during initial deployment to avoid empty string issues
|
|
56
71
|
// Parameters can be updated later via CloudFormation stack updates
|
|
57
|
-
//
|
|
72
|
+
// ===== Secrets-Only Mode Parameters (NEW) =====
|
|
73
|
+
const quiltStackArnParam = new cdk.CfnParameter(this, "QuiltStackARN", {
|
|
74
|
+
type: "String",
|
|
75
|
+
description: "[v0.6.0+] ARN of Quilt CloudFormation stack (enables secrets-only mode with BenchlingSecret)",
|
|
76
|
+
default: props.quiltStackArn || "",
|
|
77
|
+
});
|
|
78
|
+
const benchlingSecretParam = new cdk.CfnParameter(this, "BenchlingSecret", {
|
|
79
|
+
type: "String",
|
|
80
|
+
description: "[v0.6.0+] Name/ARN of Secrets Manager secret with Benchling credentials (enables secrets-only mode with QuiltStackARN)",
|
|
81
|
+
default: props.benchlingSecret || "",
|
|
82
|
+
});
|
|
83
|
+
// ===== Legacy Mode Parameters (DEPRECATED) =====
|
|
58
84
|
const webhookAllowListParam = new cdk.CfnParameter(this, "WebhookAllowList", {
|
|
59
85
|
type: "String",
|
|
60
86
|
description: "Comma-separated list of IP addresses allowed to send webhooks (leave empty to allow all IPs)",
|
|
@@ -68,13 +94,13 @@ class BenchlingWebhookStack extends cdk.Stack {
|
|
|
68
94
|
// Infrastructure parameters - these can be updated without redeploying
|
|
69
95
|
const bucketNameParam = new cdk.CfnParameter(this, "BucketName", {
|
|
70
96
|
type: "String",
|
|
71
|
-
description: "S3 bucket name for storing packages",
|
|
72
|
-
default: props.bucketName,
|
|
97
|
+
description: "[LEGACY] S3 bucket name for storing packages (not used in secrets-only mode)",
|
|
98
|
+
default: props.bucketName || "",
|
|
73
99
|
});
|
|
74
100
|
const prefixParam = new cdk.CfnParameter(this, "PackagePrefix", {
|
|
75
101
|
type: "String",
|
|
76
|
-
description: "Prefix for package names (
|
|
77
|
-
default: props.prefix,
|
|
102
|
+
description: "[LEGACY] Prefix for package names (not used in secrets-only mode)",
|
|
103
|
+
default: props.prefix || "benchling",
|
|
78
104
|
});
|
|
79
105
|
const pkgKeyParam = new cdk.CfnParameter(this, "PackageKey", {
|
|
80
106
|
type: "String",
|
|
@@ -83,13 +109,13 @@ class BenchlingWebhookStack extends cdk.Stack {
|
|
|
83
109
|
});
|
|
84
110
|
const queueArnParam = new cdk.CfnParameter(this, "QueueArn", {
|
|
85
111
|
type: "String",
|
|
86
|
-
description: "SQS queue ARN for package notifications",
|
|
87
|
-
default: props.queueArn,
|
|
112
|
+
description: "[LEGACY] SQS queue ARN for package notifications (not used in secrets-only mode)",
|
|
113
|
+
default: props.queueArn || "",
|
|
88
114
|
});
|
|
89
115
|
const quiltDatabaseParam = new cdk.CfnParameter(this, "QuiltDatabase", {
|
|
90
116
|
type: "String",
|
|
91
|
-
description: "Quilt database name (
|
|
92
|
-
default: props.quiltDatabase,
|
|
117
|
+
description: "[LEGACY] Quilt database name (not used in secrets-only mode)",
|
|
118
|
+
default: props.quiltDatabase || "",
|
|
93
119
|
});
|
|
94
120
|
// DEPRECATED: Benchling tenant parameter (kept for backward compatibility)
|
|
95
121
|
const benchlingTenantParam = new cdk.CfnParameter(this, "BenchlingTenant", {
|
|
@@ -154,7 +180,15 @@ class BenchlingWebhookStack extends cdk.Stack {
|
|
|
154
180
|
const benchlingClientIdValue = benchlingClientIdParam.valueAsString;
|
|
155
181
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
156
182
|
const benchlingClientSecretValue = benchlingClientSecretParam.valueAsString;
|
|
157
|
-
|
|
183
|
+
// New secrets-only mode parameter values
|
|
184
|
+
const quiltStackArnValue = quiltStackArnParam.valueAsString;
|
|
185
|
+
const benchlingSecretValue = benchlingSecretParam.valueAsString;
|
|
186
|
+
// In secrets-only mode, bucket name will be resolved at runtime from CloudFormation outputs
|
|
187
|
+
// For CDK purposes, we still need a bucket reference for IAM permissions
|
|
188
|
+
// Use a placeholder that will be overridden at runtime
|
|
189
|
+
this.bucket = useSecretsOnlyMode
|
|
190
|
+
? s3.Bucket.fromBucketName(this, "BWBucket", "placeholder-bucket-resolved-at-runtime")
|
|
191
|
+
: s3.Bucket.fromBucketName(this, "BWBucket", bucketNameValue);
|
|
158
192
|
// Get the default VPC or create a new one
|
|
159
193
|
const vpc = ec2.Vpc.fromLookup(this, "DefaultVPC", {
|
|
160
194
|
isDefault: true,
|
|
@@ -181,29 +215,40 @@ class BenchlingWebhookStack extends cdk.Stack {
|
|
|
181
215
|
// (e.g., "0.5.3-20251031T000139Z"), otherwise use package.json version
|
|
182
216
|
const isDevVersion = imageTagValue.match(/^\d+\.\d+\.\d+-\d{8}T\d{6}Z$/);
|
|
183
217
|
const stackVersion = isDevVersion ? imageTagValue : package_json_1.default.version;
|
|
184
|
-
|
|
218
|
+
// Build Fargate Service props based on mode
|
|
219
|
+
const fargateProps = {
|
|
185
220
|
vpc,
|
|
186
221
|
bucket: this.bucket,
|
|
187
|
-
queueArn: queueArnValue,
|
|
188
222
|
region: this.region,
|
|
189
223
|
account: this.account,
|
|
190
|
-
prefix: prefixValue,
|
|
191
|
-
pkgKey: pkgKeyValue,
|
|
192
|
-
benchlingClientId: props.benchlingClientId,
|
|
193
|
-
benchlingClientSecret: props.benchlingClientSecret,
|
|
194
|
-
benchlingTenant: benchlingTenantValue,
|
|
195
|
-
// Use props.benchlingSecrets (original value) to determine mode
|
|
196
|
-
// The CloudFormation parameter value (benchlingSecretsValue) is a token that can't be evaluated at synth time
|
|
197
|
-
benchlingSecrets: props.benchlingSecrets,
|
|
198
|
-
quiltCatalog: quiltCatalogValue,
|
|
199
|
-
quiltDatabase: quiltDatabaseValue,
|
|
200
|
-
webhookAllowList: webhookAllowListValue,
|
|
201
224
|
ecrRepository: ecrRepo,
|
|
202
225
|
imageTag: imageTagValue,
|
|
203
226
|
stackVersion: stackVersion,
|
|
204
227
|
logLevel: logLevelValue,
|
|
205
228
|
enableWebhookVerification: enableWebhookVerificationValue,
|
|
206
|
-
}
|
|
229
|
+
};
|
|
230
|
+
if (useSecretsOnlyMode) {
|
|
231
|
+
// Secrets-only mode: Pass only the 2 required parameters
|
|
232
|
+
fargateProps.quiltStackArn = quiltStackArnValue;
|
|
233
|
+
fargateProps.benchlingSecret = benchlingSecretValue;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
// Legacy mode: Pass all individual parameters
|
|
237
|
+
fargateProps.queueArn = queueArnValue;
|
|
238
|
+
fargateProps.prefix = prefixValue;
|
|
239
|
+
fargateProps.pkgKey = pkgKeyValue;
|
|
240
|
+
fargateProps.benchlingClientId = props.benchlingClientId;
|
|
241
|
+
fargateProps.benchlingClientSecret = props.benchlingClientSecret;
|
|
242
|
+
fargateProps.benchlingTenant = benchlingTenantValue;
|
|
243
|
+
fargateProps.benchlingAppDefinitionId = props.benchlingAppDefinitionId;
|
|
244
|
+
// Use props.benchlingSecrets (original value) to determine mode
|
|
245
|
+
// The CloudFormation parameter value (benchlingSecretsValue) is a token that can't be evaluated at synth time
|
|
246
|
+
fargateProps.benchlingSecrets = props.benchlingSecrets;
|
|
247
|
+
fargateProps.quiltCatalog = quiltCatalogValue;
|
|
248
|
+
fargateProps.quiltDatabase = quiltDatabaseValue;
|
|
249
|
+
fargateProps.webhookAllowList = webhookAllowListValue;
|
|
250
|
+
}
|
|
251
|
+
this.fargateService = new fargate_service_1.FargateService(this, "FargateService", fargateProps);
|
|
207
252
|
// Create API Gateway that routes to the ALB
|
|
208
253
|
this.api = new alb_api_gateway_1.AlbApiGateway(this, "ApiGateway", {
|
|
209
254
|
loadBalancer: this.fargateService.loadBalancer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,uDAAyC;AACzC,yDAA2C;AAC3C,yDAA2C;AAE3C,uDAAmD;AACnD,uDAAkD;AAClD,qDAAiD;AACjD,mEAA0C;
|
|
1
|
+
{"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,28 +8,31 @@ import { Construct } from "constructs";
|
|
|
8
8
|
export interface FargateServiceProps {
|
|
9
9
|
readonly vpc: ec2.IVpc;
|
|
10
10
|
readonly bucket: s3.IBucket;
|
|
11
|
-
readonly queueArn: string;
|
|
12
11
|
readonly region: string;
|
|
13
12
|
readonly account: string;
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
13
|
+
readonly ecrRepository: ecr.IRepository;
|
|
14
|
+
readonly imageTag?: string;
|
|
15
|
+
readonly stackVersion?: string;
|
|
16
|
+
readonly logLevel?: string;
|
|
17
|
+
readonly enableWebhookVerification?: string;
|
|
18
|
+
readonly quiltStackArn?: string;
|
|
19
|
+
readonly benchlingSecret?: string;
|
|
20
|
+
readonly queueArn?: string;
|
|
21
|
+
readonly prefix?: string;
|
|
22
|
+
readonly pkgKey?: string;
|
|
23
|
+
readonly benchlingClientId?: string;
|
|
24
|
+
readonly benchlingClientSecret?: string;
|
|
25
|
+
readonly benchlingTenant?: string;
|
|
26
|
+
readonly benchlingAppDefinitionId?: string;
|
|
19
27
|
/**
|
|
20
28
|
* Consolidated Benchling secrets as JSON string.
|
|
21
29
|
* When provided and non-empty, the container will receive BENCHLING_SECRETS environment variable.
|
|
22
30
|
* Otherwise, individual environment variables (BENCHLING_TENANT) and secrets (BENCHLING_CLIENT_ID, BENCHLING_CLIENT_SECRET) are used.
|
|
23
31
|
*/
|
|
24
32
|
readonly benchlingSecrets?: string;
|
|
25
|
-
readonly quiltCatalog
|
|
26
|
-
readonly quiltDatabase
|
|
27
|
-
readonly webhookAllowList
|
|
28
|
-
readonly ecrRepository: ecr.IRepository;
|
|
29
|
-
readonly imageTag?: string;
|
|
30
|
-
readonly stackVersion?: string;
|
|
31
|
-
readonly logLevel?: string;
|
|
32
|
-
readonly enableWebhookVerification?: string;
|
|
33
|
+
readonly quiltCatalog?: string;
|
|
34
|
+
readonly quiltDatabase?: string;
|
|
35
|
+
readonly webhookAllowList?: string;
|
|
33
36
|
}
|
|
34
37
|
export declare class FargateService extends Construct {
|
|
35
38
|
readonly service: ecs.FargateService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fargate-service.d.ts","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAEhE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"fargate-service.d.ts","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAEhE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAG5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGlC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,qBAAa,cAAe,SAAQ,SAAS;IACzC,SAAgB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,SAAgB,YAAY,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAC5D,SAAgB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrC,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;gBAE7B,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CA0bvE"}
|
|
@@ -74,22 +74,98 @@ class FargateService extends constructs_1.Construct {
|
|
|
74
74
|
],
|
|
75
75
|
});
|
|
76
76
|
// Note: ECR pull permissions will be automatically granted by fromEcrRepository()
|
|
77
|
+
// Determine which mode we're using
|
|
78
|
+
const useSecretsOnlyMode = !!(props.quiltStackArn && props.benchlingSecret);
|
|
77
79
|
// Create IAM Task Role (for the container to access AWS services)
|
|
78
80
|
const taskRole = new iam.Role(this, "TaskRole", {
|
|
79
81
|
assumedBy: new iam.ServicePrincipal("ecs-tasks.amazonaws.com"),
|
|
80
82
|
});
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
// In secrets-only mode, grant permissions for CloudFormation and Secrets Manager
|
|
84
|
+
if (useSecretsOnlyMode) {
|
|
85
|
+
// Grant CloudFormation read access (to query stack outputs)
|
|
86
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
87
|
+
actions: [
|
|
88
|
+
"cloudformation:DescribeStacks",
|
|
89
|
+
"cloudformation:DescribeStackResources",
|
|
90
|
+
],
|
|
91
|
+
resources: [props.quiltStackArn],
|
|
92
|
+
}));
|
|
93
|
+
// Grant Secrets Manager read access (to fetch Benchling credentials)
|
|
94
|
+
// Allow both name and ARN formats
|
|
95
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
96
|
+
actions: [
|
|
97
|
+
"secretsmanager:GetSecretValue",
|
|
98
|
+
"secretsmanager:DescribeSecret",
|
|
99
|
+
],
|
|
100
|
+
resources: [
|
|
101
|
+
// Support both secret name and ARN
|
|
102
|
+
`arn:aws:secretsmanager:${props.region}:${props.account}:secret:${props.benchlingSecret}*`,
|
|
103
|
+
],
|
|
104
|
+
}));
|
|
105
|
+
// Grant wildcard S3 access (bucket name will be resolved at runtime)
|
|
106
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
107
|
+
actions: [
|
|
108
|
+
"s3:GetObject",
|
|
109
|
+
"s3:PutObject",
|
|
110
|
+
"s3:ListBucket",
|
|
111
|
+
],
|
|
112
|
+
resources: [
|
|
113
|
+
"arn:aws:s3:::*",
|
|
114
|
+
],
|
|
115
|
+
}));
|
|
116
|
+
// Grant wildcard SQS access (queue ARN will be resolved at runtime)
|
|
117
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
118
|
+
actions: [
|
|
119
|
+
"sqs:SendMessage",
|
|
120
|
+
"sqs:GetQueueUrl",
|
|
121
|
+
"sqs:GetQueueAttributes",
|
|
122
|
+
],
|
|
123
|
+
resources: [
|
|
124
|
+
`arn:aws:sqs:${props.region}:${props.account}:*`,
|
|
125
|
+
],
|
|
126
|
+
}));
|
|
127
|
+
// Grant wildcard Glue access (database name will be resolved at runtime)
|
|
128
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
129
|
+
actions: [
|
|
130
|
+
"glue:GetDatabase",
|
|
131
|
+
"glue:GetTable",
|
|
132
|
+
"glue:GetPartitions",
|
|
133
|
+
],
|
|
134
|
+
resources: [
|
|
135
|
+
`arn:aws:glue:${props.region}:${props.account}:catalog`,
|
|
136
|
+
`arn:aws:glue:${props.region}:${props.account}:database/*`,
|
|
137
|
+
`arn:aws:glue:${props.region}:${props.account}:table/*`,
|
|
138
|
+
],
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Legacy mode: Grant specific resource access
|
|
143
|
+
// Grant S3 bucket access to task role
|
|
144
|
+
props.bucket.grantReadWrite(taskRole);
|
|
145
|
+
// Grant SQS access to task role using the actual ARN
|
|
146
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
147
|
+
actions: [
|
|
148
|
+
"sqs:SendMessage",
|
|
149
|
+
"sqs:GetQueueUrl",
|
|
150
|
+
"sqs:GetQueueAttributes",
|
|
151
|
+
],
|
|
152
|
+
resources: [props.queueArn],
|
|
153
|
+
}));
|
|
154
|
+
// Grant Glue Data Catalog access (required for Athena queries)
|
|
155
|
+
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
156
|
+
actions: [
|
|
157
|
+
"glue:GetDatabase",
|
|
158
|
+
"glue:GetTable",
|
|
159
|
+
"glue:GetPartitions",
|
|
160
|
+
],
|
|
161
|
+
resources: [
|
|
162
|
+
`arn:aws:glue:${props.region}:${props.account}:catalog`,
|
|
163
|
+
`arn:aws:glue:${props.region}:${props.account}:database/${props.quiltDatabase}`,
|
|
164
|
+
`arn:aws:glue:${props.region}:${props.account}:table/${props.quiltDatabase}/*`,
|
|
165
|
+
],
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
// Grant Athena access to task role for package querying (both modes)
|
|
93
169
|
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
94
170
|
actions: [
|
|
95
171
|
"athena:StartQueryExecution",
|
|
@@ -102,21 +178,7 @@ class FargateService extends constructs_1.Construct {
|
|
|
102
178
|
`arn:aws:athena:${props.region}:${props.account}:workgroup/primary`,
|
|
103
179
|
],
|
|
104
180
|
}));
|
|
105
|
-
// Grant
|
|
106
|
-
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
107
|
-
actions: [
|
|
108
|
-
"glue:GetDatabase",
|
|
109
|
-
"glue:GetTable",
|
|
110
|
-
"glue:GetPartitions",
|
|
111
|
-
],
|
|
112
|
-
resources: [
|
|
113
|
-
`arn:aws:glue:${props.region}:${props.account}:catalog`,
|
|
114
|
-
`arn:aws:glue:${props.region}:${props.account}:database/${props.quiltDatabase}`,
|
|
115
|
-
`arn:aws:glue:${props.region}:${props.account}:table/${props.quiltDatabase}/*`,
|
|
116
|
-
],
|
|
117
|
-
}));
|
|
118
|
-
// Grant S3 access for Athena query results
|
|
119
|
-
// Athena needs to write query results to an S3 bucket
|
|
181
|
+
// Grant S3 access for Athena query results (both modes)
|
|
120
182
|
const athenaResultsBucketArn = `arn:aws:s3:::aws-athena-query-results-${props.account}-${props.region}`;
|
|
121
183
|
taskRole.addToPolicy(new iam.PolicyStatement({
|
|
122
184
|
actions: [
|
|
@@ -130,35 +192,46 @@ class FargateService extends constructs_1.Construct {
|
|
|
130
192
|
`${athenaResultsBucketArn}/*`,
|
|
131
193
|
],
|
|
132
194
|
}));
|
|
133
|
-
// Determine which parameter mode to use
|
|
195
|
+
// Determine which parameter mode to use for legacy Benchling secrets
|
|
134
196
|
// Check if the benchlingSecrets prop is provided and non-empty
|
|
135
|
-
const useNewParam = props.benchlingSecrets !== undefined &&
|
|
197
|
+
const useNewParam = !useSecretsOnlyMode && props.benchlingSecrets !== undefined &&
|
|
136
198
|
props.benchlingSecrets !== null &&
|
|
137
199
|
props.benchlingSecrets.trim() !== "";
|
|
138
|
-
//
|
|
139
|
-
let
|
|
140
|
-
if (
|
|
141
|
-
//
|
|
142
|
-
secretValue
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
200
|
+
// In legacy mode, create Secrets Manager secret for Benchling credentials
|
|
201
|
+
let benchlingSecret = undefined;
|
|
202
|
+
if (!useSecretsOnlyMode) {
|
|
203
|
+
// Legacy mode: Create or reference Secrets Manager secret
|
|
204
|
+
let secretValue;
|
|
205
|
+
if (useNewParam) {
|
|
206
|
+
// New approach: Use consolidated secrets JSON
|
|
207
|
+
secretValue = props.benchlingSecrets;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
// Old approach: Build JSON from individual parameters
|
|
211
|
+
const secretData = {
|
|
212
|
+
client_id: props.benchlingClientId,
|
|
213
|
+
client_secret: props.benchlingClientSecret,
|
|
214
|
+
tenant: props.benchlingTenant,
|
|
215
|
+
};
|
|
216
|
+
// Include app_definition_id if provided
|
|
217
|
+
if (props.benchlingAppDefinitionId) {
|
|
218
|
+
secretData.app_definition_id = props.benchlingAppDefinitionId;
|
|
219
|
+
}
|
|
220
|
+
secretValue = JSON.stringify(secretData);
|
|
221
|
+
}
|
|
222
|
+
// Create Secrets Manager secret for Benchling credentials
|
|
223
|
+
// Note: We still use unsafePlainText() because CloudFormation parameters are strings.
|
|
224
|
+
// The actual secret values are protected by noEcho in the parameters.
|
|
225
|
+
benchlingSecret = new secretsmanager.Secret(this, "BenchlingCredentials", {
|
|
226
|
+
secretName: "benchling-webhook/credentials",
|
|
227
|
+
description: "Benchling API credentials for webhook processor",
|
|
228
|
+
secretStringValue: cdk.SecretValue.unsafePlainText(secretValue),
|
|
150
229
|
});
|
|
230
|
+
// Grant read access to secrets
|
|
231
|
+
benchlingSecret.grantRead(taskRole);
|
|
151
232
|
}
|
|
152
|
-
//
|
|
153
|
-
//
|
|
154
|
-
// The actual secret values are protected by noEcho in the parameters.
|
|
155
|
-
const benchlingSecret = new secretsmanager.Secret(this, "BenchlingCredentials", {
|
|
156
|
-
secretName: "benchling-webhook/credentials",
|
|
157
|
-
description: "Benchling API credentials for webhook processor",
|
|
158
|
-
secretStringValue: cdk.SecretValue.unsafePlainText(secretValue),
|
|
159
|
-
});
|
|
160
|
-
// Grant read access to secrets
|
|
161
|
-
benchlingSecret.grantRead(taskRole);
|
|
233
|
+
// In secrets-only mode, no CDK-created secret is needed
|
|
234
|
+
// The container will read the secret directly using the benchlingSecret parameter
|
|
162
235
|
// Create Fargate Task Definition
|
|
163
236
|
const taskDefinition = new ecs.FargateTaskDefinition(this, "TaskDefinition", {
|
|
164
237
|
memoryLimitMiB: 2048,
|
|
@@ -167,16 +240,8 @@ class FargateService extends constructs_1.Construct {
|
|
|
167
240
|
taskRole: taskRole,
|
|
168
241
|
family: "benchling-webhook-task",
|
|
169
242
|
});
|
|
170
|
-
// Build environment variables based on
|
|
171
|
-
// Note: BENCHLING_TENANT is set conditionally below based on parameter mode
|
|
243
|
+
// Build environment variables based on mode
|
|
172
244
|
const environmentVars = {
|
|
173
|
-
QUILT_USER_BUCKET: props.bucket.bucketName,
|
|
174
|
-
QUEUE_ARN: props.queueArn,
|
|
175
|
-
PKG_PREFIX: props.prefix,
|
|
176
|
-
PKG_KEY: props.pkgKey,
|
|
177
|
-
QUILT_CATALOG: props.quiltCatalog,
|
|
178
|
-
QUILT_DATABASE: props.quiltDatabase,
|
|
179
|
-
WEBHOOK_ALLOW_LIST: props.webhookAllowList,
|
|
180
245
|
AWS_REGION: props.region,
|
|
181
246
|
AWS_DEFAULT_REGION: props.region,
|
|
182
247
|
FLASK_ENV: "production",
|
|
@@ -184,20 +249,34 @@ class FargateService extends constructs_1.Construct {
|
|
|
184
249
|
ENABLE_WEBHOOK_VERIFICATION: props.enableWebhookVerification || "true",
|
|
185
250
|
BENCHLING_WEBHOOK_VERSION: props.stackVersion || props.imageTag || "latest",
|
|
186
251
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
//
|
|
190
|
-
|
|
191
|
-
environmentVars.
|
|
252
|
+
if (useSecretsOnlyMode) {
|
|
253
|
+
// Secrets-only mode: Only pass 2 environment variables
|
|
254
|
+
// Container will query CloudFormation and Secrets Manager for everything else
|
|
255
|
+
environmentVars.QuiltStackARN = props.quiltStackArn;
|
|
256
|
+
environmentVars.BenchlingSecret = props.benchlingSecret;
|
|
192
257
|
}
|
|
193
258
|
else {
|
|
194
|
-
//
|
|
195
|
-
|
|
196
|
-
environmentVars.
|
|
259
|
+
// Legacy mode: Pass all configuration as environment variables
|
|
260
|
+
environmentVars.QUILT_USER_BUCKET = props.bucket.bucketName;
|
|
261
|
+
environmentVars.QUEUE_ARN = props.queueArn;
|
|
262
|
+
environmentVars.PKG_PREFIX = props.prefix;
|
|
263
|
+
environmentVars.PKG_KEY = props.pkgKey;
|
|
264
|
+
environmentVars.QUILT_CATALOG = props.quiltCatalog;
|
|
265
|
+
environmentVars.QUILT_DATABASE = props.quiltDatabase;
|
|
266
|
+
environmentVars.WEBHOOK_ALLOW_LIST = props.webhookAllowList;
|
|
267
|
+
// Add Benchling configuration based on parameter mode
|
|
268
|
+
if (useNewParam) {
|
|
269
|
+
// New mode: Single consolidated secrets parameter
|
|
270
|
+
environmentVars.BENCHLING_SECRETS = props.benchlingSecrets;
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
// Old mode: Individual tenant parameter
|
|
274
|
+
environmentVars.BENCHLING_TENANT = props.benchlingTenant;
|
|
275
|
+
}
|
|
197
276
|
}
|
|
198
|
-
// Build secrets configuration (only for
|
|
277
|
+
// Build secrets configuration (only for legacy mode with individual secrets)
|
|
199
278
|
let secretsConfig = undefined;
|
|
200
|
-
if (!useNewParam) {
|
|
279
|
+
if (!useSecretsOnlyMode && !useNewParam && benchlingSecret) {
|
|
201
280
|
// Old mode: Individual secrets from Secrets Manager
|
|
202
281
|
secretsConfig = {
|
|
203
282
|
BENCHLING_CLIENT_ID: ecs.Secret.fromSecretsManager(benchlingSecret, "client_id"),
|
|
@@ -205,6 +284,7 @@ class FargateService extends constructs_1.Construct {
|
|
|
205
284
|
BENCHLING_APP_DEFINITION_ID: ecs.Secret.fromSecretsManager(benchlingSecret, "app_definition_id"),
|
|
206
285
|
};
|
|
207
286
|
}
|
|
287
|
+
// In secrets-only mode, no ECS secrets are needed (container reads from Secrets Manager directly)
|
|
208
288
|
// Add container with configured environment
|
|
209
289
|
const container = taskDefinition.addContainer("BenchlingWebhookContainer", {
|
|
210
290
|
image: ecs.ContainerImage.fromEcrRepository(props.ecrRepository, props.imageTag || "latest"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fargate-service.js","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fargate-service.js","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"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"}
|