@quiltdata/benchling-webhook 0.7.10 → 0.8.0-20251118T003132Z
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 +1 -0
- package/dist/bin/benchling-webhook.d.ts.map +1 -1
- package/dist/bin/benchling-webhook.js +14 -0
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cli.js +8 -5
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/config-profiles.d.ts.map +1 -1
- package/dist/bin/commands/config-profiles.js +7 -0
- package/dist/bin/commands/config-profiles.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +90 -8
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/commands/health-check.d.ts.map +1 -1
- package/dist/bin/commands/health-check.js +2 -35
- package/dist/bin/commands/health-check.js.map +1 -1
- package/dist/bin/commands/infer-quilt-config.d.ts +6 -0
- package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
- package/dist/bin/commands/infer-quilt-config.js +50 -2
- package/dist/bin/commands/infer-quilt-config.js.map +1 -1
- package/dist/bin/commands/install.d.ts.map +1 -1
- package/dist/bin/commands/install.js +10 -2
- package/dist/bin/commands/install.js.map +1 -1
- package/dist/bin/commands/manifest.d.ts.map +1 -1
- package/dist/bin/commands/manifest.js +2 -3
- package/dist/bin/commands/manifest.js.map +1 -1
- package/dist/bin/commands/setup-profile.d.ts.map +1 -1
- package/dist/bin/commands/setup-profile.js +5 -0
- package/dist/bin/commands/setup-profile.js.map +1 -1
- package/dist/bin/commands/setup-wizard.d.ts +2 -0
- package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
- package/dist/bin/commands/setup-wizard.js +3 -1
- package/dist/bin/commands/setup-wizard.js.map +1 -1
- package/dist/bin/commands/status.d.ts +2 -0
- package/dist/bin/commands/status.d.ts.map +1 -1
- package/dist/bin/commands/status.js +44 -13
- package/dist/bin/commands/status.js.map +1 -1
- package/dist/bin/commands/sync-secrets.d.ts.map +1 -1
- package/dist/bin/commands/sync-secrets.js +2 -35
- package/dist/bin/commands/sync-secrets.js.map +1 -1
- package/dist/bin/commands/validate.js +1 -1
- package/dist/bin/commands/validate.js.map +1 -1
- package/dist/bin/xdg-launch.d.ts +74 -0
- package/dist/bin/xdg-launch.d.ts.map +1 -0
- package/dist/bin/xdg-launch.js +588 -0
- package/dist/bin/xdg-launch.js.map +1 -0
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +57 -7
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/fargate-service.d.ts +24 -4
- package/dist/lib/fargate-service.d.ts.map +1 -1
- package/dist/lib/fargate-service.js +75 -27
- package/dist/lib/fargate-service.js.map +1 -1
- package/dist/lib/types/config.d.ts +261 -6
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/lib/types/config.js +20 -2
- package/dist/lib/types/config.js.map +1 -1
- package/dist/lib/utils/service-resolver.d.ts +155 -0
- package/dist/lib/utils/service-resolver.d.ts.map +1 -0
- package/dist/lib/utils/service-resolver.js +195 -0
- package/dist/lib/utils/service-resolver.js.map +1 -0
- package/dist/lib/utils/stack-inference.d.ts +58 -0
- package/dist/lib/utils/stack-inference.d.ts.map +1 -1
- package/dist/lib/utils/stack-inference.js +76 -2
- package/dist/lib/utils/stack-inference.js.map +1 -1
- package/dist/lib/wizard/phase2-stack-query.d.ts +4 -2
- package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -1
- package/dist/lib/wizard/phase2-stack-query.js +93 -10
- package/dist/lib/wizard/phase2-stack-query.js.map +1 -1
- package/dist/lib/wizard/phase4-validation.d.ts.map +1 -1
- package/dist/lib/wizard/phase4-validation.js +3 -4
- package/dist/lib/wizard/phase4-validation.js.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.js +26 -0
- package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.js +31 -10
- package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
- package/dist/lib/wizard/types.d.ts +23 -1
- package/dist/lib/wizard/types.d.ts.map +1 -1
- package/dist/lib/xdg-base.d.ts.map +1 -1
- package/dist/lib/xdg-base.js +4 -2
- package/dist/lib/xdg-base.js.map +1 -1
- package/dist/package.json +16 -7
- package/package.json +16 -7
- package/dist/lib/utils/config-loader.d.ts +0 -48
- package/dist/lib/utils/config-loader.d.ts.map +0 -1
- package/dist/lib/utils/config-loader.js +0 -110
- package/dist/lib/utils/config-loader.js.map +0 -1
- package/dist/lib/utils/config-resolver.d.ts +0 -138
- package/dist/lib/utils/config-resolver.d.ts.map +0 -1
- package/dist/lib/utils/config-resolver.js +0 -279
- package/dist/lib/utils/config-resolver.js.map +0 -1
|
@@ -16,6 +16,108 @@
|
|
|
16
16
|
* @example "prod"
|
|
17
17
|
*/
|
|
18
18
|
export type ProfileName = string;
|
|
19
|
+
/**
|
|
20
|
+
* Resolved Quilt Services (Cached at Setup Time)
|
|
21
|
+
*
|
|
22
|
+
* These values are resolved from the Quilt CloudFormation stack during setup
|
|
23
|
+
* and cached in the profile configuration. At deployment time, these cached
|
|
24
|
+
* values are passed directly to the container without re-querying AWS.
|
|
25
|
+
*
|
|
26
|
+
* **Architecture**: Setup resolves once → Deploy reads from config
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```json
|
|
30
|
+
* {
|
|
31
|
+
* "packagerQueueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/quilt-queue",
|
|
32
|
+
* "athenaUserDatabase": "quilt_catalog",
|
|
33
|
+
* "quiltWebHost": "quilt.example.com",
|
|
34
|
+
* "icebergDatabase": "quilt_iceberg",
|
|
35
|
+
* "athenaUserWorkgroup": "quilt-user-workgroup",
|
|
36
|
+
* "athenaResultsBucket": "aws-athena-query-results-123456789012-us-east-1",
|
|
37
|
+
* "icebergWorkgroup": "quilt-iceberg-workgroup",
|
|
38
|
+
* "resolvedAt": "2025-11-17T10:00:00Z",
|
|
39
|
+
* "sourceStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/QuiltStack/abc-123"
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export interface ResolvedQuiltServices {
|
|
44
|
+
/**
|
|
45
|
+
* SQS queue URL for package creation jobs
|
|
46
|
+
*
|
|
47
|
+
* Resolved from stack output `PackagerQueueUrl`.
|
|
48
|
+
* Passed to container as `PACKAGER_SQS_URL` environment variable.
|
|
49
|
+
*
|
|
50
|
+
* @example "https://sqs.us-east-1.amazonaws.com/123456789012/quilt-queue"
|
|
51
|
+
*/
|
|
52
|
+
packagerQueueUrl: string;
|
|
53
|
+
/**
|
|
54
|
+
* Athena/Glue database name for catalog metadata
|
|
55
|
+
*
|
|
56
|
+
* Resolved from stack output `UserAthenaDatabaseName`.
|
|
57
|
+
* Passed to container as `ATHENA_USER_DATABASE` environment variable.
|
|
58
|
+
*
|
|
59
|
+
* @example "quilt_catalog"
|
|
60
|
+
*/
|
|
61
|
+
athenaUserDatabase: string;
|
|
62
|
+
/**
|
|
63
|
+
* Quilt catalog web host (without protocol)
|
|
64
|
+
*
|
|
65
|
+
* Resolved from stack output `QuiltWebHost`.
|
|
66
|
+
* Passed to container as `QUILT_WEB_HOST` environment variable.
|
|
67
|
+
*
|
|
68
|
+
* @example "quilt.example.com"
|
|
69
|
+
*/
|
|
70
|
+
quiltWebHost: string;
|
|
71
|
+
/**
|
|
72
|
+
* Iceberg database name (optional)
|
|
73
|
+
*
|
|
74
|
+
* Resolved from stack output `IcebergDatabase` if available.
|
|
75
|
+
* Passed to container as `ICEBERG_DATABASE` environment variable.
|
|
76
|
+
*
|
|
77
|
+
* @example "quilt_iceberg"
|
|
78
|
+
*/
|
|
79
|
+
icebergDatabase?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Athena workgroup for user queries (optional)
|
|
82
|
+
*
|
|
83
|
+
* Resolved from stack output `UserAthenaWorkgroupName` if available.
|
|
84
|
+
*
|
|
85
|
+
* @example "quilt-user-workgroup"
|
|
86
|
+
*/
|
|
87
|
+
athenaUserWorkgroup?: string;
|
|
88
|
+
/**
|
|
89
|
+
* S3 bucket for Athena query results (optional)
|
|
90
|
+
*
|
|
91
|
+
* Resolved from stack output `AthenaResultsBucketName` if available.
|
|
92
|
+
*
|
|
93
|
+
* @example "aws-athena-query-results-123456789012-us-east-1"
|
|
94
|
+
*/
|
|
95
|
+
athenaResultsBucket?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Iceberg workgroup name (optional)
|
|
98
|
+
*
|
|
99
|
+
* Resolved from stack output `IcebergWorkgroupName` if available.
|
|
100
|
+
*
|
|
101
|
+
* @example "quilt-iceberg-workgroup"
|
|
102
|
+
*/
|
|
103
|
+
icebergWorkgroup?: string;
|
|
104
|
+
/**
|
|
105
|
+
* ISO 8601 timestamp when services were resolved
|
|
106
|
+
*
|
|
107
|
+
* Used to detect stale configuration (warn if > 30 days old).
|
|
108
|
+
*
|
|
109
|
+
* @example "2025-11-17T10:00:00Z"
|
|
110
|
+
*/
|
|
111
|
+
resolvedAt: string;
|
|
112
|
+
/**
|
|
113
|
+
* Quilt CloudFormation stack ARN used for resolution
|
|
114
|
+
*
|
|
115
|
+
* Must match `quilt.stackArn` for validation.
|
|
116
|
+
*
|
|
117
|
+
* @example "arn:aws:cloudformation:us-east-1:123456789012:stack/QuiltStack/abc-123"
|
|
118
|
+
*/
|
|
119
|
+
sourceStackArn: string;
|
|
120
|
+
}
|
|
19
121
|
/**
|
|
20
122
|
* Profile Configuration (Single Source of Truth)
|
|
21
123
|
*
|
|
@@ -27,7 +129,6 @@ export type ProfileName = string;
|
|
|
27
129
|
* ```json
|
|
28
130
|
* {
|
|
29
131
|
* "quilt": {
|
|
30
|
-
* "stackArn": "arn:aws:cloudformation:...",
|
|
31
132
|
* "catalog": "https://quilt.example.com",
|
|
32
133
|
* "bucket": "my-quilt-bucket",
|
|
33
134
|
* "database": "quilt_catalog",
|
|
@@ -49,6 +150,13 @@ export type ProfileName = string;
|
|
|
49
150
|
* "region": "us-east-1",
|
|
50
151
|
* "imageTag": "latest"
|
|
51
152
|
* },
|
|
153
|
+
* "resolvedServices": {
|
|
154
|
+
* "packagerQueueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/quilt-queue",
|
|
155
|
+
* "athenaUserDatabase": "quilt_catalog",
|
|
156
|
+
* "quiltWebHost": "quilt.example.com",
|
|
157
|
+
* "resolvedAt": "2025-11-17T10:00:00Z",
|
|
158
|
+
* "sourceStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/QuiltStack/abc-123"
|
|
159
|
+
* },
|
|
52
160
|
* "integratedStack": true,
|
|
53
161
|
* "_metadata": {
|
|
54
162
|
* "version": "0.7.0",
|
|
@@ -76,6 +184,16 @@ export interface ProfileConfig {
|
|
|
76
184
|
* AWS deployment configuration (CDK)
|
|
77
185
|
*/
|
|
78
186
|
deployment: DeploymentConfig;
|
|
187
|
+
/**
|
|
188
|
+
* Resolved Quilt services (cached at setup time)
|
|
189
|
+
*
|
|
190
|
+
* These values are passed directly to deployment without re-querying AWS.
|
|
191
|
+
* Setup wizard resolves services from CloudFormation stack and caches them here.
|
|
192
|
+
*
|
|
193
|
+
* **REQUIRED**: Must be present for deployment to succeed.
|
|
194
|
+
* If missing, user must re-run setup wizard.
|
|
195
|
+
*/
|
|
196
|
+
resolvedServices: ResolvedQuiltServices;
|
|
79
197
|
/**
|
|
80
198
|
* Deployment mode flag
|
|
81
199
|
*
|
|
@@ -110,31 +228,58 @@ export interface ProfileConfig {
|
|
|
110
228
|
/**
|
|
111
229
|
* Quilt Catalog Configuration
|
|
112
230
|
*
|
|
113
|
-
* Configuration for Quilt data catalog integration, including
|
|
231
|
+
* Configuration for Quilt data catalog integration, including service endpoints
|
|
114
232
|
* and SQS queue for package creation.
|
|
233
|
+
*
|
|
234
|
+
* **Breaking Change (v1.0.0)**: `stackArn` is used at deployment time only to resolve services.
|
|
235
|
+
* Services are passed as explicit environment variables to the container.
|
|
236
|
+
* No runtime CloudFormation API calls are made.
|
|
237
|
+
*
|
|
238
|
+
* **Usage**:
|
|
239
|
+
* - **Deployment time**: `stackArn` used to resolve service endpoints from stack outputs
|
|
240
|
+
* - **Runtime**: Explicit environment variables are used (no CloudFormation API calls)
|
|
115
241
|
*/
|
|
116
242
|
export interface QuiltConfig {
|
|
117
243
|
/**
|
|
118
|
-
* Quilt CloudFormation stack ARN
|
|
244
|
+
* Quilt CloudFormation stack ARN (optional)
|
|
245
|
+
*
|
|
246
|
+
* Used at deployment time to resolve service endpoints from stack outputs.
|
|
247
|
+
* The resolved services are then passed as explicit environment variables to the container.
|
|
248
|
+
*
|
|
249
|
+
* **Deployment usage only** - not passed to container runtime.
|
|
250
|
+
* **Breaking Change (v1.0.0)**: No longer passed as environment variable or CloudFormation parameter.
|
|
119
251
|
*
|
|
120
252
|
* @example "arn:aws:cloudformation:us-east-1:123456789012:stack/quilt-stack/..."
|
|
121
253
|
*/
|
|
122
|
-
stackArn
|
|
254
|
+
stackArn?: string;
|
|
123
255
|
/**
|
|
124
256
|
* Quilt catalog domain (without protocol)
|
|
125
257
|
*
|
|
258
|
+
* Resolved from stack outputs at deployment time:
|
|
259
|
+
* - Priority 1: `Catalog` output
|
|
260
|
+
* - Priority 2: `CatalogDomain` output
|
|
261
|
+
* - Priority 3: Extract from `ApiGatewayEndpoint` output
|
|
262
|
+
*
|
|
263
|
+
* Passed to container as `QUILT_WEB_HOST` environment variable.
|
|
264
|
+
*
|
|
126
265
|
* @example "quilt.example.com"
|
|
127
266
|
*/
|
|
128
267
|
catalog: string;
|
|
129
268
|
/**
|
|
130
269
|
* Athena/Glue database name for catalog metadata
|
|
131
270
|
*
|
|
271
|
+
* Resolved from stack output `UserAthenaDatabaseName` at deployment time.
|
|
272
|
+
* Passed to container as `ATHENA_USER_DATABASE` environment variable.
|
|
273
|
+
*
|
|
132
274
|
* @example "quilt_catalog"
|
|
133
275
|
*/
|
|
134
276
|
database: string;
|
|
135
277
|
/**
|
|
136
278
|
* SQS queue URL for package creation jobs
|
|
137
279
|
*
|
|
280
|
+
* Resolved from stack output `PackagerQueueUrl` at deployment time.
|
|
281
|
+
* Passed to container as `PACKAGER_SQS_URL` environment variable.
|
|
282
|
+
*
|
|
138
283
|
* @example "https://sqs.us-east-1.amazonaws.com/123456789012/quilt-package-queue"
|
|
139
284
|
*/
|
|
140
285
|
queueUrl: string;
|
|
@@ -144,6 +289,62 @@ export interface QuiltConfig {
|
|
|
144
289
|
* @example "us-east-1"
|
|
145
290
|
*/
|
|
146
291
|
region: string;
|
|
292
|
+
/**
|
|
293
|
+
* Iceberg database name (optional)
|
|
294
|
+
*
|
|
295
|
+
* If available, use Iceberg database instead of Athena for package* tables.
|
|
296
|
+
* Resolved from stack output `IcebergDatabase` at deployment time if present.
|
|
297
|
+
*
|
|
298
|
+
* Passed to container as `ICEBERG_DATABASE` environment variable.
|
|
299
|
+
*
|
|
300
|
+
* @example "quilt_iceberg"
|
|
301
|
+
*/
|
|
302
|
+
icebergDatabase?: string;
|
|
303
|
+
/**
|
|
304
|
+
* Athena workgroup for user queries (non-managed role)
|
|
305
|
+
*
|
|
306
|
+
* Resolved from UserAthenaNonManagedRoleWorkgroup stack resource
|
|
307
|
+
* This is a RESOURCE (not an output) - requires DescribeStackResources API
|
|
308
|
+
*
|
|
309
|
+
* @example "quilt-user-workgroup-prod"
|
|
310
|
+
*/
|
|
311
|
+
athenaUserWorkgroup?: string;
|
|
312
|
+
/**
|
|
313
|
+
* IAM policy for Athena user workgroup (non-managed role)
|
|
314
|
+
*
|
|
315
|
+
* Resolved from UserAthenaNonManagedRolePolicy stack resource
|
|
316
|
+
* This is a RESOURCE (not an output) - requires DescribeStackResources API
|
|
317
|
+
*
|
|
318
|
+
* @example "quilt-prod-UserAthenaNonManagedRolePolicy-ABC123"
|
|
319
|
+
*/
|
|
320
|
+
athenaUserPolicy?: string;
|
|
321
|
+
/**
|
|
322
|
+
* Athena workgroup for Iceberg queries
|
|
323
|
+
*
|
|
324
|
+
* Resolved from IcebergWorkGroup stack resource
|
|
325
|
+
* This is a RESOURCE (not an output) - requires DescribeStackResources API
|
|
326
|
+
*
|
|
327
|
+
* @example "quilt-iceberg-workgroup-prod"
|
|
328
|
+
*/
|
|
329
|
+
icebergWorkgroup?: string;
|
|
330
|
+
/**
|
|
331
|
+
* User Athena results bucket (S3 bucket for query results)
|
|
332
|
+
*
|
|
333
|
+
* Resolved from UserAthenaResultsBucket stack resource
|
|
334
|
+
* This is a RESOURCE (not an output) - requires DescribeStackResources API
|
|
335
|
+
*
|
|
336
|
+
* @example "my-stack-userathenar-abc123"
|
|
337
|
+
*/
|
|
338
|
+
athenaResultsBucket?: string;
|
|
339
|
+
/**
|
|
340
|
+
* User Athena results bucket policy ARN
|
|
341
|
+
*
|
|
342
|
+
* Resolved from UserAthenaResultsBucketPolicy stack resource
|
|
343
|
+
* This is a RESOURCE (not an output) - requires DescribeStackResources API
|
|
344
|
+
*
|
|
345
|
+
* @example "arn:aws:s3:::my-stack-userathenar-abc123"
|
|
346
|
+
*/
|
|
347
|
+
athenaResultsBucketPolicy?: string;
|
|
147
348
|
}
|
|
148
349
|
/**
|
|
149
350
|
* Benchling Configuration
|
|
@@ -487,11 +688,11 @@ export declare const ProfileConfigSchema: {
|
|
|
487
688
|
readonly title: "ProfileConfig";
|
|
488
689
|
readonly description: "Benchling Webhook Profile Configuration (v0.7.0)";
|
|
489
690
|
readonly type: "object";
|
|
490
|
-
readonly required: readonly ["quilt", "benchling", "packages", "deployment", "_metadata"];
|
|
691
|
+
readonly required: readonly ["quilt", "benchling", "packages", "deployment", "resolvedServices", "_metadata"];
|
|
491
692
|
readonly properties: {
|
|
492
693
|
readonly quilt: {
|
|
493
694
|
readonly type: "object";
|
|
494
|
-
readonly required: readonly ["
|
|
695
|
+
readonly required: readonly ["catalog", "database", "queueUrl", "region"];
|
|
495
696
|
readonly properties: {
|
|
496
697
|
readonly stackArn: {
|
|
497
698
|
readonly type: "string";
|
|
@@ -513,6 +714,18 @@ export declare const ProfileConfigSchema: {
|
|
|
513
714
|
readonly type: "string";
|
|
514
715
|
readonly pattern: "^[a-z]{2}-[a-z]+-[0-9]$";
|
|
515
716
|
};
|
|
717
|
+
readonly icebergDatabase: {
|
|
718
|
+
readonly type: "string";
|
|
719
|
+
readonly minLength: 1;
|
|
720
|
+
};
|
|
721
|
+
readonly athenaUserWorkgroup: {
|
|
722
|
+
readonly type: "string";
|
|
723
|
+
readonly minLength: 1;
|
|
724
|
+
};
|
|
725
|
+
readonly icebergWorkgroup: {
|
|
726
|
+
readonly type: "string";
|
|
727
|
+
readonly minLength: 1;
|
|
728
|
+
};
|
|
516
729
|
};
|
|
517
730
|
};
|
|
518
731
|
readonly benchling: {
|
|
@@ -581,6 +794,48 @@ export declare const ProfileConfigSchema: {
|
|
|
581
794
|
};
|
|
582
795
|
};
|
|
583
796
|
};
|
|
797
|
+
readonly resolvedServices: {
|
|
798
|
+
readonly type: "object";
|
|
799
|
+
readonly required: readonly ["packagerQueueUrl", "athenaUserDatabase", "quiltWebHost", "resolvedAt", "sourceStackArn"];
|
|
800
|
+
readonly properties: {
|
|
801
|
+
readonly packagerQueueUrl: {
|
|
802
|
+
readonly type: "string";
|
|
803
|
+
readonly pattern: "^https://sqs\\.[a-z0-9-]+\\.amazonaws\\.com/\\d{12}/.+";
|
|
804
|
+
};
|
|
805
|
+
readonly athenaUserDatabase: {
|
|
806
|
+
readonly type: "string";
|
|
807
|
+
readonly minLength: 1;
|
|
808
|
+
};
|
|
809
|
+
readonly quiltWebHost: {
|
|
810
|
+
readonly type: "string";
|
|
811
|
+
readonly minLength: 1;
|
|
812
|
+
};
|
|
813
|
+
readonly icebergDatabase: {
|
|
814
|
+
readonly type: "string";
|
|
815
|
+
readonly minLength: 1;
|
|
816
|
+
};
|
|
817
|
+
readonly athenaUserWorkgroup: {
|
|
818
|
+
readonly type: "string";
|
|
819
|
+
readonly minLength: 1;
|
|
820
|
+
};
|
|
821
|
+
readonly athenaResultsBucket: {
|
|
822
|
+
readonly type: "string";
|
|
823
|
+
readonly minLength: 1;
|
|
824
|
+
};
|
|
825
|
+
readonly icebergWorkgroup: {
|
|
826
|
+
readonly type: "string";
|
|
827
|
+
readonly minLength: 1;
|
|
828
|
+
};
|
|
829
|
+
readonly resolvedAt: {
|
|
830
|
+
readonly type: "string";
|
|
831
|
+
readonly format: "date-time";
|
|
832
|
+
};
|
|
833
|
+
readonly sourceStackArn: {
|
|
834
|
+
readonly type: "string";
|
|
835
|
+
readonly pattern: "^arn:aws:cloudformation:";
|
|
836
|
+
};
|
|
837
|
+
};
|
|
838
|
+
};
|
|
584
839
|
readonly integratedStack: {
|
|
585
840
|
readonly type: "boolean";
|
|
586
841
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types/config.js
CHANGED
|
@@ -20,17 +20,20 @@ exports.ProfileConfigSchema = {
|
|
|
20
20
|
title: "ProfileConfig",
|
|
21
21
|
description: "Benchling Webhook Profile Configuration (v0.7.0)",
|
|
22
22
|
type: "object",
|
|
23
|
-
required: ["quilt", "benchling", "packages", "deployment", "_metadata"],
|
|
23
|
+
required: ["quilt", "benchling", "packages", "deployment", "resolvedServices", "_metadata"],
|
|
24
24
|
properties: {
|
|
25
25
|
quilt: {
|
|
26
26
|
type: "object",
|
|
27
|
-
required: ["
|
|
27
|
+
required: ["catalog", "database", "queueUrl", "region"],
|
|
28
28
|
properties: {
|
|
29
29
|
stackArn: { type: "string", pattern: "^arn:aws:cloudformation:" },
|
|
30
30
|
catalog: { type: "string", minLength: 1 },
|
|
31
31
|
database: { type: "string", minLength: 1 },
|
|
32
32
|
queueUrl: { type: "string", pattern: "^https://sqs\\.[a-z0-9-]+\\.amazonaws\\.com/\\d{12}/.+" },
|
|
33
33
|
region: { type: "string", pattern: "^[a-z]{2}-[a-z]+-[0-9]$" },
|
|
34
|
+
icebergDatabase: { type: "string", minLength: 1 },
|
|
35
|
+
athenaUserWorkgroup: { type: "string", minLength: 1 },
|
|
36
|
+
icebergWorkgroup: { type: "string", minLength: 1 },
|
|
34
37
|
},
|
|
35
38
|
},
|
|
36
39
|
benchling: {
|
|
@@ -64,6 +67,21 @@ exports.ProfileConfigSchema = {
|
|
|
64
67
|
imageTag: { type: "string" },
|
|
65
68
|
},
|
|
66
69
|
},
|
|
70
|
+
resolvedServices: {
|
|
71
|
+
type: "object",
|
|
72
|
+
required: ["packagerQueueUrl", "athenaUserDatabase", "quiltWebHost", "resolvedAt", "sourceStackArn"],
|
|
73
|
+
properties: {
|
|
74
|
+
packagerQueueUrl: { type: "string", pattern: "^https://sqs\\.[a-z0-9-]+\\.amazonaws\\.com/\\d{12}/.+" },
|
|
75
|
+
athenaUserDatabase: { type: "string", minLength: 1 },
|
|
76
|
+
quiltWebHost: { type: "string", minLength: 1 },
|
|
77
|
+
icebergDatabase: { type: "string", minLength: 1 },
|
|
78
|
+
athenaUserWorkgroup: { type: "string", minLength: 1 },
|
|
79
|
+
athenaResultsBucket: { type: "string", minLength: 1 },
|
|
80
|
+
icebergWorkgroup: { type: "string", minLength: 1 },
|
|
81
|
+
resolvedAt: { type: "string", format: "date-time" },
|
|
82
|
+
sourceStackArn: { type: "string", pattern: "^arn:aws:cloudformation:" },
|
|
83
|
+
},
|
|
84
|
+
},
|
|
67
85
|
integratedStack: { type: "boolean" },
|
|
68
86
|
logging: {
|
|
69
87
|
type: "object",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Resolver for Deployment-Time Configuration
|
|
3
|
+
*
|
|
4
|
+
* Resolves Quilt service endpoints from CloudFormation stack outputs at deployment time.
|
|
5
|
+
* These values are then passed as explicit environment variables to the container,
|
|
6
|
+
* eliminating the need for runtime CloudFormation API calls.
|
|
7
|
+
*
|
|
8
|
+
* **Breaking Change (v1.0.0)**: Replaces runtime config-resolver with deployment-time resolution.
|
|
9
|
+
*
|
|
10
|
+
* @module utils/service-resolver
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
import { CloudFormationClient } from "@aws-sdk/client-cloudformation";
|
|
14
|
+
/**
|
|
15
|
+
* Resolved Quilt service endpoints
|
|
16
|
+
*/
|
|
17
|
+
export interface QuiltServices {
|
|
18
|
+
/**
|
|
19
|
+
* SQS queue URL for package creation jobs
|
|
20
|
+
* @example "https://sqs.us-east-1.amazonaws.com/123456789012/quilt-packager-queue"
|
|
21
|
+
*/
|
|
22
|
+
packagerQueueUrl: string;
|
|
23
|
+
/**
|
|
24
|
+
* Athena/Glue database name for catalog metadata
|
|
25
|
+
* @example "quilt_catalog"
|
|
26
|
+
*/
|
|
27
|
+
athenaUserDatabase: string;
|
|
28
|
+
/**
|
|
29
|
+
* Quilt catalog domain (without protocol or trailing slash)
|
|
30
|
+
* @example "quilt.example.com"
|
|
31
|
+
*/
|
|
32
|
+
quiltWebHost: string;
|
|
33
|
+
/**
|
|
34
|
+
* Iceberg database name (optional)
|
|
35
|
+
* @example "quilt_iceberg"
|
|
36
|
+
*/
|
|
37
|
+
icebergDatabase?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Athena workgroup for user queries (optional, from Quilt stack discovery)
|
|
40
|
+
* @example "quilt-user-workgroup"
|
|
41
|
+
*/
|
|
42
|
+
athenaUserWorkgroup?: string;
|
|
43
|
+
/**
|
|
44
|
+
* S3 bucket for Athena query results (optional, from Quilt stack discovery)
|
|
45
|
+
* @example "aws-athena-query-results-123456789012-us-east-1"
|
|
46
|
+
*/
|
|
47
|
+
athenaResultsBucket?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Iceberg workgroup name (optional, from Quilt stack discovery)
|
|
50
|
+
* @example "quilt-iceberg-workgroup"
|
|
51
|
+
*/
|
|
52
|
+
icebergWorkgroup?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Options for service resolution
|
|
56
|
+
*/
|
|
57
|
+
export interface ServiceResolverOptions {
|
|
58
|
+
/**
|
|
59
|
+
* CloudFormation stack ARN
|
|
60
|
+
*/
|
|
61
|
+
stackArn: string;
|
|
62
|
+
/**
|
|
63
|
+
* Mock CloudFormation client for testing
|
|
64
|
+
*/
|
|
65
|
+
mockCloudFormation?: CloudFormationClient;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parsed CloudFormation stack ARN
|
|
69
|
+
*/
|
|
70
|
+
export interface ParsedStackArn {
|
|
71
|
+
region: string;
|
|
72
|
+
account: string;
|
|
73
|
+
stackName: string;
|
|
74
|
+
stackId: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Custom error for service resolution failures
|
|
78
|
+
*/
|
|
79
|
+
export declare class ServiceResolverError extends Error {
|
|
80
|
+
readonly suggestion?: string | undefined;
|
|
81
|
+
readonly details?: string | undefined;
|
|
82
|
+
constructor(message: string, suggestion?: string | undefined, details?: string | undefined);
|
|
83
|
+
format(): string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Parse CloudFormation stack ARN into components
|
|
87
|
+
*
|
|
88
|
+
* @param arn - CloudFormation stack ARN
|
|
89
|
+
* @returns Parsed ARN components
|
|
90
|
+
* @throws ServiceResolverError if ARN is invalid
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* parseStackArn('arn:aws:cloudformation:us-east-1:123456789012:stack/QuiltStack/abc-123')
|
|
94
|
+
* // Returns: { region: 'us-east-1', account: '123456789012', stackName: 'QuiltStack', stackId: 'abc-123' }
|
|
95
|
+
*/
|
|
96
|
+
export declare function parseStackArn(arn: string): ParsedStackArn;
|
|
97
|
+
/**
|
|
98
|
+
* Normalize catalog URL to hostname only
|
|
99
|
+
*
|
|
100
|
+
* Removes protocol prefix (http:// or https://) and trailing slashes.
|
|
101
|
+
*
|
|
102
|
+
* @param url - Catalog URL or hostname
|
|
103
|
+
* @returns Normalized hostname
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* normalizeCatalogUrl('https://quilt.example.com/') // Returns: 'quilt.example.com'
|
|
107
|
+
* normalizeCatalogUrl('quilt.example.com') // Returns: 'quilt.example.com'
|
|
108
|
+
*/
|
|
109
|
+
export declare function normalizeCatalogUrl(url: string): string;
|
|
110
|
+
/**
|
|
111
|
+
* Validate SQS queue URL format
|
|
112
|
+
*
|
|
113
|
+
* @param url - SQS queue URL
|
|
114
|
+
* @returns true if valid
|
|
115
|
+
* @throws ServiceResolverError if invalid
|
|
116
|
+
*/
|
|
117
|
+
export declare function validateQueueUrl(url: string): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Resolve Quilt service endpoints from CloudFormation stack outputs
|
|
120
|
+
*
|
|
121
|
+
* Queries the CloudFormation stack at deployment time to extract service endpoints.
|
|
122
|
+
* These are then passed as explicit environment variables to the container.
|
|
123
|
+
*
|
|
124
|
+
* **Required Stack Outputs**:
|
|
125
|
+
* - `PackagerQueueUrl`: SQS queue URL for package creation
|
|
126
|
+
* - `UserAthenaDatabaseName`: Athena database name for catalog
|
|
127
|
+
* - `QuiltWebHost`: Quilt catalog web host (e.g., catalog.example.com)
|
|
128
|
+
*
|
|
129
|
+
* **Optional Stack Outputs**:
|
|
130
|
+
* - `IcebergDatabase`: Iceberg database name (if available)
|
|
131
|
+
* - `UserAthenaWorkgroupName`: Athena workgroup for user queries
|
|
132
|
+
* - `AthenaResultsBucketName`: S3 bucket for Athena query results
|
|
133
|
+
* - `IcebergWorkgroupName`: Iceberg workgroup name
|
|
134
|
+
*
|
|
135
|
+
* @param options - Service resolver options
|
|
136
|
+
* @returns Resolved service endpoints
|
|
137
|
+
* @throws ServiceResolverError if required outputs are missing or invalid
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* const services = await resolveQuiltServices({
|
|
141
|
+
* stackArn: 'arn:aws:cloudformation:us-east-1:123:stack/QuiltStack/id'
|
|
142
|
+
* });
|
|
143
|
+
* // Returns:
|
|
144
|
+
* // {
|
|
145
|
+
* // packagerQueueUrl: 'https://sqs.us-east-1.amazonaws.com/123/quilt-queue',
|
|
146
|
+
* // athenaUserDatabase: 'quilt_catalog',
|
|
147
|
+
* // quiltWebHost: 'quilt.example.com',
|
|
148
|
+
* // icebergDatabase: 'quilt_iceberg' (optional),
|
|
149
|
+
* // athenaUserWorkgroup: 'quilt-user-workgroup' (optional),
|
|
150
|
+
* // athenaResultsBucket: 'aws-athena-query-results-...' (optional),
|
|
151
|
+
* // icebergWorkgroup: 'quilt-iceberg-workgroup' (optional)
|
|
152
|
+
* // }
|
|
153
|
+
*/
|
|
154
|
+
export declare function resolveQuiltServices(options: ServiceResolverOptions): Promise<QuiltServices>;
|
|
155
|
+
//# sourceMappingURL=service-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-resolver.d.ts","sourceRoot":"","sources":["../../../lib/utils/service-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACH,oBAAoB,EAEvB,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;aAGvB,UAAU,CAAC,EAAE,MAAM;aACnB,OAAO,CAAC,EAAE,MAAM;gBAFhC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,OAAO,CAAC,EAAE,MAAM,YAAA;IAUpC,MAAM,IAAI,MAAM;CAanB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAkBzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAYrD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,oBAAoB,CACtC,OAAO,EAAE,sBAAsB,GAChC,OAAO,CAAC,aAAa,CAAC,CA4FxB"}
|