@quiltdata/benchling-webhook 0.5.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +273 -10
  2. package/dist/bin/benchling-webhook.d.ts +1 -1
  3. package/dist/bin/benchling-webhook.d.ts.map +1 -1
  4. package/dist/bin/benchling-webhook.js +8 -22
  5. package/dist/bin/benchling-webhook.js.map +1 -1
  6. package/dist/bin/cdk-dev.js +59 -3
  7. package/dist/bin/cli.js +16 -6
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/bin/commands/deploy.d.ts +6 -2
  10. package/dist/bin/commands/deploy.d.ts.map +1 -1
  11. package/dist/bin/commands/deploy.js +149 -90
  12. package/dist/bin/commands/deploy.js.map +1 -1
  13. package/dist/bin/config-profiles.d.ts +59 -0
  14. package/dist/bin/config-profiles.d.ts.map +1 -0
  15. package/dist/bin/config-profiles.js +272 -0
  16. package/dist/bin/config-profiles.js.map +1 -0
  17. package/dist/bin/create-secret.d.ts +25 -0
  18. package/dist/bin/create-secret.d.ts.map +1 -0
  19. package/dist/bin/create-secret.js +239 -0
  20. package/dist/bin/create-secret.js.map +1 -0
  21. package/dist/lib/benchling-auth-validator.d.ts +65 -0
  22. package/dist/lib/benchling-auth-validator.d.ts.map +1 -0
  23. package/dist/lib/benchling-auth-validator.js +213 -0
  24. package/dist/lib/benchling-auth-validator.js.map +1 -0
  25. package/dist/lib/benchling-webhook-stack.d.ts +13 -10
  26. package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
  27. package/dist/lib/benchling-webhook-stack.js +25 -69
  28. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  29. package/dist/lib/config-logger.d.ts +191 -0
  30. package/dist/lib/config-logger.d.ts.map +1 -0
  31. package/dist/lib/config-logger.js +372 -0
  32. package/dist/lib/config-logger.js.map +1 -0
  33. package/dist/lib/configuration-saver.d.ts +75 -0
  34. package/dist/lib/configuration-saver.d.ts.map +1 -0
  35. package/dist/lib/configuration-saver.js +145 -0
  36. package/dist/lib/configuration-saver.js.map +1 -0
  37. package/dist/lib/configuration-validator.d.ts +63 -0
  38. package/dist/lib/configuration-validator.d.ts.map +1 -0
  39. package/dist/lib/configuration-validator.js +136 -0
  40. package/dist/lib/configuration-validator.js.map +1 -0
  41. package/dist/lib/configuration-wizard.d.ts +52 -0
  42. package/dist/lib/configuration-wizard.d.ts.map +1 -0
  43. package/dist/lib/configuration-wizard.js +193 -0
  44. package/dist/lib/configuration-wizard.js.map +1 -0
  45. package/dist/lib/fargate-service.d.ts +18 -9
  46. package/dist/lib/fargate-service.d.ts.map +1 -1
  47. package/dist/lib/fargate-service.js +177 -61
  48. package/dist/lib/fargate-service.js.map +1 -1
  49. package/dist/lib/quilt-config-resolver.d.ts +53 -0
  50. package/dist/lib/quilt-config-resolver.d.ts.map +1 -0
  51. package/dist/lib/quilt-config-resolver.js +100 -0
  52. package/dist/lib/quilt-config-resolver.js.map +1 -0
  53. package/dist/lib/s3-bucket-validator.d.ts +76 -0
  54. package/dist/lib/s3-bucket-validator.d.ts.map +1 -0
  55. package/dist/lib/s3-bucket-validator.js +237 -0
  56. package/dist/lib/s3-bucket-validator.js.map +1 -0
  57. package/dist/lib/types/config.d.ts +398 -0
  58. package/dist/lib/types/config.d.ts.map +1 -0
  59. package/dist/lib/types/config.js +11 -0
  60. package/dist/lib/types/config.js.map +1 -0
  61. package/dist/lib/utils/config-loader.d.ts +48 -0
  62. package/dist/lib/utils/config-loader.d.ts.map +1 -0
  63. package/dist/lib/utils/config-loader.js +109 -0
  64. package/dist/lib/utils/config-loader.js.map +1 -0
  65. package/dist/lib/utils/config-resolver.d.ts +138 -0
  66. package/dist/lib/utils/config-resolver.d.ts.map +1 -0
  67. package/dist/lib/utils/config-resolver.js +272 -0
  68. package/dist/lib/utils/config-resolver.js.map +1 -0
  69. package/dist/lib/utils/config.d.ts +50 -0
  70. package/dist/lib/utils/config.d.ts.map +1 -1
  71. package/dist/lib/utils/config.js +86 -0
  72. package/dist/lib/utils/config.js.map +1 -1
  73. package/dist/lib/utils/secrets.d.ts +174 -0
  74. package/dist/lib/utils/secrets.d.ts.map +1 -0
  75. package/dist/lib/utils/secrets.js +351 -0
  76. package/dist/lib/utils/secrets.js.map +1 -0
  77. package/dist/lib/xdg-cli-wrapper.d.ts +113 -0
  78. package/dist/lib/xdg-cli-wrapper.d.ts.map +1 -0
  79. package/dist/lib/xdg-cli-wrapper.js +288 -0
  80. package/dist/lib/xdg-cli-wrapper.js.map +1 -0
  81. package/dist/lib/xdg-config.d.ts +187 -0
  82. package/dist/lib/xdg-config.d.ts.map +1 -0
  83. package/dist/lib/xdg-config.js +562 -0
  84. package/dist/lib/xdg-config.js.map +1 -0
  85. package/dist/package.json +33 -25
  86. package/dist/scripts/config-health-check.d.ts +78 -0
  87. package/dist/scripts/config-health-check.d.ts.map +1 -0
  88. package/dist/scripts/config-health-check.js +559 -0
  89. package/dist/scripts/config-health-check.js.map +1 -0
  90. package/dist/scripts/infer-quilt-config.d.ts +50 -0
  91. package/dist/scripts/infer-quilt-config.d.ts.map +1 -0
  92. package/dist/scripts/infer-quilt-config.js +353 -0
  93. package/dist/scripts/infer-quilt-config.js.map +1 -0
  94. package/dist/scripts/install-wizard.d.ts +34 -0
  95. package/dist/scripts/install-wizard.d.ts.map +1 -0
  96. package/dist/scripts/install-wizard.js +719 -0
  97. package/dist/scripts/install-wizard.js.map +1 -0
  98. package/dist/scripts/sync-secrets.d.ts +63 -0
  99. package/dist/scripts/sync-secrets.d.ts.map +1 -0
  100. package/dist/scripts/sync-secrets.js +424 -0
  101. package/dist/scripts/sync-secrets.js.map +1 -0
  102. package/env.template +60 -47
  103. package/package.json +33 -25
@@ -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
- // Grant S3 bucket access to task role
82
- props.bucket.grantReadWrite(taskRole);
83
- // Grant SQS access to task role using the actual ARN
84
- taskRole.addToPolicy(new iam.PolicyStatement({
85
- actions: [
86
- "sqs:SendMessage",
87
- "sqs:GetQueueUrl",
88
- "sqs:GetQueueAttributes",
89
- ],
90
- resources: [props.queueArn],
91
- }));
92
- // Grant Athena access to task role for package querying
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 Glue Data Catalog access (required for Athena queries)
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,18 +192,46 @@ class FargateService extends constructs_1.Construct {
130
192
  `${athenaResultsBucketArn}/*`,
131
193
  ],
132
194
  }));
133
- // Create or reference Secrets Manager secret for Benchling credentials
134
- // In production, this should be created separately and referenced
135
- const benchlingSecret = new secretsmanager.Secret(this, "BenchlingCredentials", {
136
- secretName: "benchling-webhook/credentials",
137
- description: "Benchling API credentials for webhook processor",
138
- secretObjectValue: {
139
- client_id: cdk.SecretValue.unsafePlainText(props.benchlingClientId),
140
- client_secret: cdk.SecretValue.unsafePlainText(props.benchlingClientSecret),
141
- },
142
- });
143
- // Grant read access to secrets
144
- benchlingSecret.grantRead(taskRole);
195
+ // Determine which parameter mode to use for legacy Benchling secrets
196
+ // Check if the benchlingSecrets prop is provided and non-empty
197
+ const useNewParam = !useSecretsOnlyMode && props.benchlingSecrets !== undefined &&
198
+ props.benchlingSecrets !== null &&
199
+ props.benchlingSecrets.trim() !== "";
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),
229
+ });
230
+ // Grant read access to secrets
231
+ benchlingSecret.grantRead(taskRole);
232
+ }
233
+ // In secrets-only mode, no CDK-created secret is needed
234
+ // The container will read the secret directly using the benchlingSecret parameter
145
235
  // Create Fargate Task Definition
146
236
  const taskDefinition = new ecs.FargateTaskDefinition(this, "TaskDefinition", {
147
237
  memoryLimitMiB: 2048,
@@ -150,34 +240,60 @@ class FargateService extends constructs_1.Construct {
150
240
  taskRole: taskRole,
151
241
  family: "benchling-webhook-task",
152
242
  });
153
- // Add container to task definition
243
+ // Build environment variables based on mode
244
+ const environmentVars = {
245
+ AWS_REGION: props.region,
246
+ AWS_DEFAULT_REGION: props.region,
247
+ FLASK_ENV: "production",
248
+ LOG_LEVEL: props.logLevel || "INFO",
249
+ ENABLE_WEBHOOK_VERIFICATION: props.enableWebhookVerification || "true",
250
+ BENCHLING_WEBHOOK_VERSION: props.stackVersion || props.imageTag || "latest",
251
+ };
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;
257
+ }
258
+ else {
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
+ }
276
+ }
277
+ // Build secrets configuration (only for legacy mode with individual secrets)
278
+ let secretsConfig = undefined;
279
+ if (!useSecretsOnlyMode && !useNewParam && benchlingSecret) {
280
+ // Old mode: Individual secrets from Secrets Manager
281
+ secretsConfig = {
282
+ BENCHLING_CLIENT_ID: ecs.Secret.fromSecretsManager(benchlingSecret, "client_id"),
283
+ BENCHLING_CLIENT_SECRET: ecs.Secret.fromSecretsManager(benchlingSecret, "client_secret"),
284
+ BENCHLING_APP_DEFINITION_ID: ecs.Secret.fromSecretsManager(benchlingSecret, "app_definition_id"),
285
+ };
286
+ }
287
+ // In secrets-only mode, no ECS secrets are needed (container reads from Secrets Manager directly)
288
+ // Add container with configured environment
154
289
  const container = taskDefinition.addContainer("BenchlingWebhookContainer", {
155
290
  image: ecs.ContainerImage.fromEcrRepository(props.ecrRepository, props.imageTag || "latest"),
156
291
  logging: ecs.LogDriver.awsLogs({
157
292
  streamPrefix: "benchling-webhook",
158
293
  logGroup: this.logGroup,
159
294
  }),
160
- environment: {
161
- QUILT_USER_BUCKET: props.bucket.bucketName,
162
- QUEUE_ARN: props.queueArn,
163
- PKG_PREFIX: props.prefix,
164
- PKG_KEY: props.pkgKey,
165
- BENCHLING_TENANT: props.benchlingTenant,
166
- QUILT_CATALOG: props.quiltCatalog,
167
- QUILT_DATABASE: props.quiltDatabase,
168
- WEBHOOK_ALLOW_LIST: props.webhookAllowList,
169
- AWS_REGION: props.region,
170
- AWS_DEFAULT_REGION: props.region,
171
- FLASK_ENV: "production",
172
- LOG_LEVEL: props.logLevel || "INFO",
173
- ENABLE_WEBHOOK_VERIFICATION: props.enableWebhookVerification || "true",
174
- BENCHLING_WEBHOOK_VERSION: props.stackVersion || props.imageTag || "latest",
175
- },
176
- secrets: {
177
- BENCHLING_CLIENT_ID: ecs.Secret.fromSecretsManager(benchlingSecret, "client_id"),
178
- BENCHLING_CLIENT_SECRET: ecs.Secret.fromSecretsManager(benchlingSecret, "client_secret"),
179
- BENCHLING_APP_DEFINITION_ID: ecs.Secret.fromSecretsManager(benchlingSecret, "app_definition_id"),
180
- },
295
+ environment: environmentVars,
296
+ secrets: secretsConfig,
181
297
  healthCheck: {
182
298
  command: ["CMD-SHELL", "curl -f http://localhost:5000/health || exit 1"],
183
299
  interval: cdk.Duration.seconds(30),
@@ -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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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Quilt Configuration Resolver
3
+ *
4
+ * Automatically infers Quilt configuration from the quilt3 CLI.
5
+ * Extracts catalog URL, S3 bucket, and region information.
6
+ *
7
+ * @module quilt-config-resolver
8
+ */
9
+ /**
10
+ * Quilt configuration structure
11
+ */
12
+ export interface QuiltConfig {
13
+ catalogUrl?: string;
14
+ userBucket?: string;
15
+ defaultRegion?: string;
16
+ }
17
+ /**
18
+ * Quilt Configuration Resolver
19
+ *
20
+ * Resolves Quilt configuration from the quilt3 CLI or user overrides.
21
+ */
22
+ export declare class QuiltConfigResolver {
23
+ /**
24
+ * Resolves Quilt configuration with optional manual overrides
25
+ *
26
+ * @param manualConfig - Optional manual configuration overrides
27
+ * @returns Resolved Quilt configuration
28
+ */
29
+ static resolve(manualConfig?: Partial<QuiltConfig>): Promise<QuiltConfig>;
30
+ /**
31
+ * Resolves configuration from quilt3 CLI
32
+ *
33
+ * @returns Resolved Quilt configuration
34
+ * @throws {Error} If quilt3 is not installed or configured
35
+ */
36
+ resolveFromQuilt3(): Promise<QuiltConfig>;
37
+ /**
38
+ * Resolves configuration using a custom command
39
+ *
40
+ * @param command - Command to execute
41
+ * @returns Resolved Quilt configuration
42
+ * @throws {Error} If command fails
43
+ */
44
+ resolveWithCommand(command: string): Promise<QuiltConfig>;
45
+ /**
46
+ * Parses quilt3 config output
47
+ *
48
+ * @param output - Raw output from quilt3 config command
49
+ * @returns Parsed Quilt configuration
50
+ */
51
+ parseQuilt3Config(output: string): QuiltConfig;
52
+ }
53
+ //# sourceMappingURL=quilt-config-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quilt-config-resolver.d.ts","sourceRoot":"","sources":["../../lib/quilt-config-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC5B;;;;;OAKG;WACiB,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAoBtF;;;;;OAKG;IACU,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;IAItD;;;;;;OAMG;IACU,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAatE;;;;;OAKG;IACI,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;CAuBxD"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * Quilt Configuration Resolver
4
+ *
5
+ * Automatically infers Quilt configuration from the quilt3 CLI.
6
+ * Extracts catalog URL, S3 bucket, and region information.
7
+ *
8
+ * @module quilt-config-resolver
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.QuiltConfigResolver = void 0;
12
+ const child_process_1 = require("child_process");
13
+ /**
14
+ * Quilt Configuration Resolver
15
+ *
16
+ * Resolves Quilt configuration from the quilt3 CLI or user overrides.
17
+ */
18
+ class QuiltConfigResolver {
19
+ /**
20
+ * Resolves Quilt configuration with optional manual overrides
21
+ *
22
+ * @param manualConfig - Optional manual configuration overrides
23
+ * @returns Resolved Quilt configuration
24
+ */
25
+ static async resolve(manualConfig) {
26
+ const resolver = new QuiltConfigResolver();
27
+ // If manual config is provided, return it
28
+ if (manualConfig) {
29
+ return {
30
+ catalogUrl: manualConfig.catalogUrl,
31
+ userBucket: manualConfig.userBucket,
32
+ defaultRegion: manualConfig.defaultRegion,
33
+ };
34
+ }
35
+ // Try to infer from quilt3 CLI
36
+ try {
37
+ return await resolver.resolveFromQuilt3();
38
+ }
39
+ catch (error) {
40
+ throw new Error(`Quilt configuration not found: ${error.message}`);
41
+ }
42
+ }
43
+ /**
44
+ * Resolves configuration from quilt3 CLI
45
+ *
46
+ * @returns Resolved Quilt configuration
47
+ * @throws {Error} If quilt3 is not installed or configured
48
+ */
49
+ async resolveFromQuilt3() {
50
+ return this.resolveWithCommand("quilt3 config");
51
+ }
52
+ /**
53
+ * Resolves configuration using a custom command
54
+ *
55
+ * @param command - Command to execute
56
+ * @returns Resolved Quilt configuration
57
+ * @throws {Error} If command fails
58
+ */
59
+ async resolveWithCommand(command) {
60
+ try {
61
+ const output = (0, child_process_1.execSync)(command, {
62
+ encoding: "utf-8",
63
+ stdio: ["pipe", "pipe", "pipe"],
64
+ }).trim();
65
+ return this.parseQuilt3Config(output);
66
+ }
67
+ catch (error) {
68
+ throw new Error(`Failed to execute command: ${command}. ${error.message}`);
69
+ }
70
+ }
71
+ /**
72
+ * Parses quilt3 config output
73
+ *
74
+ * @param output - Raw output from quilt3 config command
75
+ * @returns Parsed Quilt configuration
76
+ */
77
+ parseQuilt3Config(output) {
78
+ if (!output) {
79
+ throw new Error("Empty quilt3 config output");
80
+ }
81
+ // quilt3 config returns the full URL (e.g., https://nightly.quilttest.com)
82
+ // We want just the domain
83
+ let catalogUrl = output.trim();
84
+ // Remove protocol if present
85
+ if (catalogUrl.startsWith("http://") || catalogUrl.startsWith("https://")) {
86
+ try {
87
+ const url = new URL(catalogUrl);
88
+ catalogUrl = url.hostname;
89
+ }
90
+ catch {
91
+ // If URL parsing fails, use as-is
92
+ }
93
+ }
94
+ return {
95
+ catalogUrl,
96
+ };
97
+ }
98
+ }
99
+ exports.QuiltConfigResolver = QuiltConfigResolver;
100
+ //# sourceMappingURL=quilt-config-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quilt-config-resolver.js","sourceRoot":"","sources":["../../lib/quilt-config-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iDAAyC;AAWzC;;;;GAIG;AACH,MAAa,mBAAmB;IAC5B;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAmC;QAC3D,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAE3C,0CAA0C;QAC1C,IAAI,YAAY,EAAE,CAAC;YACf,OAAO;gBACH,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,aAAa,EAAE,YAAY,CAAC,aAAa;aAC5C,CAAC;QACN,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC;YACD,OAAO,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kCAAmC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC3C,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE;gBAC7B,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAClC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,MAAc;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,2EAA2E;QAC3E,0BAA0B;QAC1B,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAE/B,6BAA6B;QAC7B,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBAChC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACL,kCAAkC;YACtC,CAAC;QACL,CAAC;QAED,OAAO;YACH,UAAU;SACb,CAAC;IACN,CAAC;CACJ;AAtFD,kDAsFC"}
@@ -0,0 +1,76 @@
1
+ import { S3Client } from "@aws-sdk/client-s3";
2
+ /**
3
+ * S3 bucket configuration
4
+ */
5
+ export interface S3BucketConfig {
6
+ bucketName: string;
7
+ region: string;
8
+ }
9
+ /**
10
+ * S3 bucket validation result
11
+ */
12
+ export interface S3ValidationResult {
13
+ hasAccess: boolean;
14
+ isConfigured: boolean;
15
+ hasWritePermission?: boolean;
16
+ hasReadPermission?: boolean;
17
+ errors: string[];
18
+ }
19
+ /**
20
+ * S3 bucket access validator
21
+ *
22
+ * Validates S3 bucket access and permissions required for the webhook integration.
23
+ */
24
+ export declare class S3BucketValidator {
25
+ /**
26
+ * Valid AWS region patterns
27
+ */
28
+ private static readonly VALID_REGIONS;
29
+ /**
30
+ * Validate S3 bucket access and permissions
31
+ *
32
+ * @param config - S3 bucket configuration
33
+ * @returns Validation result with access status and errors
34
+ */
35
+ static validate(config: S3BucketConfig): Promise<S3ValidationResult>;
36
+ /**
37
+ * Validate S3 bucket name format
38
+ *
39
+ * @param bucketName - Bucket name to validate
40
+ * @returns True if bucket name is valid
41
+ */
42
+ static validateBucketName(bucketName: string): boolean;
43
+ /**
44
+ * Validate AWS region format
45
+ *
46
+ * @param region - AWS region to validate
47
+ * @returns True if region format is valid
48
+ */
49
+ static validateRegion(region: string): boolean;
50
+ /**
51
+ * Check if S3 bucket exists
52
+ *
53
+ * @param bucketName - Name of the bucket
54
+ * @param region - AWS region
55
+ * @param s3Client - Optional S3 client instance
56
+ * @returns True if bucket exists
57
+ */
58
+ static checkBucketExists(bucketName: string, region: string, s3Client?: S3Client): Promise<boolean>;
59
+ /**
60
+ * Test write permissions on S3 bucket
61
+ *
62
+ * @param bucketName - Name of the bucket
63
+ * @param s3Client - S3 client instance
64
+ * @returns True if write permission is granted
65
+ */
66
+ private static testWritePermission;
67
+ /**
68
+ * Test read permissions on S3 bucket
69
+ *
70
+ * @param bucketName - Name of the bucket
71
+ * @param s3Client - S3 client instance
72
+ * @returns True if read permission is granted
73
+ */
74
+ private static testReadPermission;
75
+ }
76
+ //# sourceMappingURL=s3-bucket-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-bucket-validator.d.ts","sourceRoot":"","sources":["../../lib/s3-bucket-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA8E,MAAM,oBAAoB,CAAC;AAE1H;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAC1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAoH;IAEzJ;;;;;OAKG;WACiB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6FjF;;;;;OAKG;WACW,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAmB7D;;;;;OAKG;WACW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQrD;;;;;;;OAOG;WACiB,iBAAiB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,QAAQ,GACpB,OAAO,CAAC,OAAO,CAAC;IAiBnB;;;;;;OAMG;mBACkB,mBAAmB;IAgCxC;;;;;;OAMG;mBACkB,kBAAkB;CAgD1C"}