@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.
Files changed (92) hide show
  1. package/README.md +1 -0
  2. package/dist/bin/benchling-webhook.d.ts.map +1 -1
  3. package/dist/bin/benchling-webhook.js +14 -0
  4. package/dist/bin/benchling-webhook.js.map +1 -1
  5. package/dist/bin/cli.js +8 -5
  6. package/dist/bin/cli.js.map +1 -1
  7. package/dist/bin/commands/config-profiles.d.ts.map +1 -1
  8. package/dist/bin/commands/config-profiles.js +7 -0
  9. package/dist/bin/commands/config-profiles.js.map +1 -1
  10. package/dist/bin/commands/deploy.d.ts.map +1 -1
  11. package/dist/bin/commands/deploy.js +90 -8
  12. package/dist/bin/commands/deploy.js.map +1 -1
  13. package/dist/bin/commands/health-check.d.ts.map +1 -1
  14. package/dist/bin/commands/health-check.js +2 -35
  15. package/dist/bin/commands/health-check.js.map +1 -1
  16. package/dist/bin/commands/infer-quilt-config.d.ts +6 -0
  17. package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
  18. package/dist/bin/commands/infer-quilt-config.js +50 -2
  19. package/dist/bin/commands/infer-quilt-config.js.map +1 -1
  20. package/dist/bin/commands/install.d.ts.map +1 -1
  21. package/dist/bin/commands/install.js +10 -2
  22. package/dist/bin/commands/install.js.map +1 -1
  23. package/dist/bin/commands/manifest.d.ts.map +1 -1
  24. package/dist/bin/commands/manifest.js +2 -3
  25. package/dist/bin/commands/manifest.js.map +1 -1
  26. package/dist/bin/commands/setup-profile.d.ts.map +1 -1
  27. package/dist/bin/commands/setup-profile.js +5 -0
  28. package/dist/bin/commands/setup-profile.js.map +1 -1
  29. package/dist/bin/commands/setup-wizard.d.ts +2 -0
  30. package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
  31. package/dist/bin/commands/setup-wizard.js +3 -1
  32. package/dist/bin/commands/setup-wizard.js.map +1 -1
  33. package/dist/bin/commands/status.d.ts +2 -0
  34. package/dist/bin/commands/status.d.ts.map +1 -1
  35. package/dist/bin/commands/status.js +44 -13
  36. package/dist/bin/commands/status.js.map +1 -1
  37. package/dist/bin/commands/sync-secrets.d.ts.map +1 -1
  38. package/dist/bin/commands/sync-secrets.js +2 -35
  39. package/dist/bin/commands/sync-secrets.js.map +1 -1
  40. package/dist/bin/commands/validate.js +1 -1
  41. package/dist/bin/commands/validate.js.map +1 -1
  42. package/dist/bin/xdg-launch.d.ts +74 -0
  43. package/dist/bin/xdg-launch.d.ts.map +1 -0
  44. package/dist/bin/xdg-launch.js +588 -0
  45. package/dist/bin/xdg-launch.js.map +1 -0
  46. package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
  47. package/dist/lib/benchling-webhook-stack.js +57 -7
  48. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  49. package/dist/lib/fargate-service.d.ts +24 -4
  50. package/dist/lib/fargate-service.d.ts.map +1 -1
  51. package/dist/lib/fargate-service.js +75 -27
  52. package/dist/lib/fargate-service.js.map +1 -1
  53. package/dist/lib/types/config.d.ts +261 -6
  54. package/dist/lib/types/config.d.ts.map +1 -1
  55. package/dist/lib/types/config.js +20 -2
  56. package/dist/lib/types/config.js.map +1 -1
  57. package/dist/lib/utils/service-resolver.d.ts +155 -0
  58. package/dist/lib/utils/service-resolver.d.ts.map +1 -0
  59. package/dist/lib/utils/service-resolver.js +195 -0
  60. package/dist/lib/utils/service-resolver.js.map +1 -0
  61. package/dist/lib/utils/stack-inference.d.ts +58 -0
  62. package/dist/lib/utils/stack-inference.d.ts.map +1 -1
  63. package/dist/lib/utils/stack-inference.js +76 -2
  64. package/dist/lib/utils/stack-inference.js.map +1 -1
  65. package/dist/lib/wizard/phase2-stack-query.d.ts +4 -2
  66. package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -1
  67. package/dist/lib/wizard/phase2-stack-query.js +93 -10
  68. package/dist/lib/wizard/phase2-stack-query.js.map +1 -1
  69. package/dist/lib/wizard/phase4-validation.d.ts.map +1 -1
  70. package/dist/lib/wizard/phase4-validation.js +3 -4
  71. package/dist/lib/wizard/phase4-validation.js.map +1 -1
  72. package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
  73. package/dist/lib/wizard/phase6-integrated-mode.js +26 -0
  74. package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
  75. package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
  76. package/dist/lib/wizard/phase7-standalone-mode.js +31 -10
  77. package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
  78. package/dist/lib/wizard/types.d.ts +23 -1
  79. package/dist/lib/wizard/types.d.ts.map +1 -1
  80. package/dist/lib/xdg-base.d.ts.map +1 -1
  81. package/dist/lib/xdg-base.js +4 -2
  82. package/dist/lib/xdg-base.js.map +1 -1
  83. package/dist/package.json +16 -7
  84. package/package.json +16 -7
  85. package/dist/lib/utils/config-loader.d.ts +0 -48
  86. package/dist/lib/utils/config-loader.d.ts.map +0 -1
  87. package/dist/lib/utils/config-loader.js +0 -110
  88. package/dist/lib/utils/config-loader.js.map +0 -1
  89. package/dist/lib/utils/config-resolver.d.ts +0 -138
  90. package/dist/lib/utils/config-resolver.d.ts.map +0 -1
  91. package/dist/lib/utils/config-resolver.js +0 -279
  92. 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 CloudFormation stack
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: string;
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 ["stackArn", "catalog", "database", "queueUrl", "region"];
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":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"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"}
@@ -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: ["stackArn", "catalog", "database", "queueUrl", "region"],
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":"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"}
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"}