@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
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ /**
3
+ * Service Resolver for Deployment-Time Configuration
4
+ *
5
+ * Resolves Quilt service endpoints from CloudFormation stack outputs at deployment time.
6
+ * These values are then passed as explicit environment variables to the container,
7
+ * eliminating the need for runtime CloudFormation API calls.
8
+ *
9
+ * **Breaking Change (v1.0.0)**: Replaces runtime config-resolver with deployment-time resolution.
10
+ *
11
+ * @module utils/service-resolver
12
+ * @version 1.0.0
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ServiceResolverError = void 0;
16
+ exports.parseStackArn = parseStackArn;
17
+ exports.normalizeCatalogUrl = normalizeCatalogUrl;
18
+ exports.validateQueueUrl = validateQueueUrl;
19
+ exports.resolveQuiltServices = resolveQuiltServices;
20
+ const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
21
+ /**
22
+ * Custom error for service resolution failures
23
+ */
24
+ class ServiceResolverError extends Error {
25
+ constructor(message, suggestion, details) {
26
+ super(message);
27
+ this.suggestion = suggestion;
28
+ this.details = details;
29
+ this.name = "ServiceResolverError";
30
+ if (Error.captureStackTrace) {
31
+ Error.captureStackTrace(this, ServiceResolverError);
32
+ }
33
+ }
34
+ format() {
35
+ let output = `❌ Service Resolution Error: ${this.message}`;
36
+ if (this.suggestion) {
37
+ output += `\n 💡 ${this.suggestion}`;
38
+ }
39
+ if (this.details) {
40
+ output += `\n 📝 ${this.details}`;
41
+ }
42
+ return output;
43
+ }
44
+ }
45
+ exports.ServiceResolverError = ServiceResolverError;
46
+ /**
47
+ * Parse CloudFormation stack ARN into components
48
+ *
49
+ * @param arn - CloudFormation stack ARN
50
+ * @returns Parsed ARN components
51
+ * @throws ServiceResolverError if ARN is invalid
52
+ *
53
+ * @example
54
+ * parseStackArn('arn:aws:cloudformation:us-east-1:123456789012:stack/QuiltStack/abc-123')
55
+ * // Returns: { region: 'us-east-1', account: '123456789012', stackName: 'QuiltStack', stackId: 'abc-123' }
56
+ */
57
+ function parseStackArn(arn) {
58
+ const pattern = /^arn:aws:cloudformation:([a-z0-9-]+):(\d{12}):stack\/([^/]+)\/(.+)$/;
59
+ const match = arn.match(pattern);
60
+ if (!match) {
61
+ throw new ServiceResolverError(`Invalid CloudFormation stack ARN format: ${arn}`, "Stack ARN should match pattern: arn:aws:cloudformation:REGION:ACCOUNT:stack/STACK_NAME/STACK_ID");
62
+ }
63
+ return {
64
+ region: match[1],
65
+ account: match[2],
66
+ stackName: match[3],
67
+ stackId: match[4],
68
+ };
69
+ }
70
+ /**
71
+ * Normalize catalog URL to hostname only
72
+ *
73
+ * Removes protocol prefix (http:// or https://) and trailing slashes.
74
+ *
75
+ * @param url - Catalog URL or hostname
76
+ * @returns Normalized hostname
77
+ *
78
+ * @example
79
+ * normalizeCatalogUrl('https://quilt.example.com/') // Returns: 'quilt.example.com'
80
+ * normalizeCatalogUrl('quilt.example.com') // Returns: 'quilt.example.com'
81
+ */
82
+ function normalizeCatalogUrl(url) {
83
+ return url.replace(/^https?:\/\//, "").replace(/\/$/, "");
84
+ }
85
+ /**
86
+ * Validate SQS queue URL format
87
+ *
88
+ * @param url - SQS queue URL
89
+ * @returns true if valid
90
+ * @throws ServiceResolverError if invalid
91
+ */
92
+ function validateQueueUrl(url) {
93
+ const pattern = /^https:\/\/sqs\.[a-z0-9-]+\.amazonaws\.com\/\d{12}\/.+$/;
94
+ if (!pattern.test(url)) {
95
+ throw new ServiceResolverError(`Invalid SQS queue URL format: ${url}`, "Queue URL should match pattern: https://sqs.REGION.amazonaws.com/ACCOUNT/QUEUE_NAME");
96
+ }
97
+ return true;
98
+ }
99
+ /**
100
+ * Resolve Quilt service endpoints from CloudFormation stack outputs
101
+ *
102
+ * Queries the CloudFormation stack at deployment time to extract service endpoints.
103
+ * These are then passed as explicit environment variables to the container.
104
+ *
105
+ * **Required Stack Outputs**:
106
+ * - `PackagerQueueUrl`: SQS queue URL for package creation
107
+ * - `UserAthenaDatabaseName`: Athena database name for catalog
108
+ * - `QuiltWebHost`: Quilt catalog web host (e.g., catalog.example.com)
109
+ *
110
+ * **Optional Stack Outputs**:
111
+ * - `IcebergDatabase`: Iceberg database name (if available)
112
+ * - `UserAthenaWorkgroupName`: Athena workgroup for user queries
113
+ * - `AthenaResultsBucketName`: S3 bucket for Athena query results
114
+ * - `IcebergWorkgroupName`: Iceberg workgroup name
115
+ *
116
+ * @param options - Service resolver options
117
+ * @returns Resolved service endpoints
118
+ * @throws ServiceResolverError if required outputs are missing or invalid
119
+ *
120
+ * @example
121
+ * const services = await resolveQuiltServices({
122
+ * stackArn: 'arn:aws:cloudformation:us-east-1:123:stack/QuiltStack/id'
123
+ * });
124
+ * // Returns:
125
+ * // {
126
+ * // packagerQueueUrl: 'https://sqs.us-east-1.amazonaws.com/123/quilt-queue',
127
+ * // athenaUserDatabase: 'quilt_catalog',
128
+ * // quiltWebHost: 'quilt.example.com',
129
+ * // icebergDatabase: 'quilt_iceberg' (optional),
130
+ * // athenaUserWorkgroup: 'quilt-user-workgroup' (optional),
131
+ * // athenaResultsBucket: 'aws-athena-query-results-...' (optional),
132
+ * // icebergWorkgroup: 'quilt-iceberg-workgroup' (optional)
133
+ * // }
134
+ */
135
+ async function resolveQuiltServices(options) {
136
+ // Step 1: Parse stack ARN
137
+ const parsed = parseStackArn(options.stackArn);
138
+ // Step 2: Create CloudFormation client
139
+ const cfnClient = options.mockCloudFormation ||
140
+ new client_cloudformation_1.CloudFormationClient({ region: parsed.region });
141
+ // Step 3: Query stack outputs
142
+ const command = new client_cloudformation_1.DescribeStacksCommand({
143
+ StackName: options.stackArn,
144
+ });
145
+ let response;
146
+ try {
147
+ response = await cfnClient.send(command);
148
+ }
149
+ catch (error) {
150
+ throw new ServiceResolverError(`Failed to describe CloudFormation stack: ${options.stackArn}`, "Verify the stack ARN is correct and your AWS credentials have cloudformation:DescribeStacks permission", error instanceof Error ? error.message : String(error));
151
+ }
152
+ if (!response.Stacks || response.Stacks.length === 0) {
153
+ throw new ServiceResolverError(`CloudFormation stack not found: ${options.stackArn}`, "Verify the stack exists and has not been deleted");
154
+ }
155
+ const stack = response.Stacks[0];
156
+ const outputs = {};
157
+ if (stack.Outputs) {
158
+ for (const output of stack.Outputs) {
159
+ if (output.OutputKey && output.OutputValue) {
160
+ outputs[output.OutputKey] = output.OutputValue;
161
+ }
162
+ }
163
+ }
164
+ // Step 4: Extract and validate required services
165
+ const packagerQueueUrl = outputs.PackagerQueueUrl;
166
+ if (!packagerQueueUrl) {
167
+ throw new ServiceResolverError("Required stack output 'PackagerQueueUrl' not found", "Verify the Quilt CloudFormation stack includes PackagerQueueUrl output", `Available outputs: ${Object.keys(outputs).join(", ")}`);
168
+ }
169
+ validateQueueUrl(packagerQueueUrl);
170
+ const athenaUserDatabase = outputs.UserAthenaDatabaseName;
171
+ if (!athenaUserDatabase) {
172
+ throw new ServiceResolverError("Required stack output 'UserAthenaDatabaseName' not found", "Verify the Quilt CloudFormation stack includes UserAthenaDatabaseName output", `Available outputs: ${Object.keys(outputs).join(", ")}`);
173
+ }
174
+ // Step 5: Resolve catalog URL from QuiltWebHost output
175
+ if (!outputs.QuiltWebHost) {
176
+ throw new ServiceResolverError("No QuiltWebHost output found", "Quilt stack must provide QuiltWebHost output", `Available outputs: ${Object.keys(outputs).join(", ")}`);
177
+ }
178
+ const quiltWebHost = normalizeCatalogUrl(outputs.QuiltWebHost);
179
+ // Step 6: Extract optional Iceberg database
180
+ const icebergDatabase = outputs.IcebergDatabase;
181
+ // Step 7: Extract optional Athena resources (NEW - from Quilt stack discovery)
182
+ const athenaUserWorkgroup = outputs.UserAthenaWorkgroupName;
183
+ const athenaResultsBucket = outputs.AthenaResultsBucketName;
184
+ const icebergWorkgroup = outputs.IcebergWorkgroupName;
185
+ return {
186
+ packagerQueueUrl,
187
+ athenaUserDatabase,
188
+ quiltWebHost,
189
+ ...(icebergDatabase && { icebergDatabase }),
190
+ ...(athenaUserWorkgroup && { athenaUserWorkgroup }),
191
+ ...(athenaResultsBucket && { athenaResultsBucket }),
192
+ ...(icebergWorkgroup && { icebergWorkgroup }),
193
+ };
194
+ }
195
+ //# sourceMappingURL=service-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-resolver.js","sourceRoot":"","sources":["../../../lib/utils/service-resolver.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,64 @@ export interface StackSummary {
32
32
  CreationTime: string;
33
33
  LastUpdatedTime?: string;
34
34
  }
35
+ /**
36
+ * Stack resource metadata
37
+ *
38
+ * Maps logical resource ID to physical resource information
39
+ */
40
+ export interface StackResourceMap {
41
+ [logicalId: string]: {
42
+ physicalResourceId: string;
43
+ resourceType: string;
44
+ resourceStatus: string;
45
+ };
46
+ }
47
+ /**
48
+ * Discovered Quilt resources from stack
49
+ *
50
+ * Target resources:
51
+ * - UserAthenaNonManagedRoleWorkgroup (AWS::Athena::WorkGroup)
52
+ * - UserAthenaNonManagedRolePolicy (AWS::IAM::Policy)
53
+ * - IcebergWorkGroup (AWS::Athena::WorkGroup)
54
+ * - IcebergDatabase (AWS::Glue::Database)
55
+ * - UserAthenaResultsBucket (AWS::S3::Bucket)
56
+ * - UserAthenaResultsBucketPolicy (AWS::S3::BucketPolicy)
57
+ */
58
+ export interface DiscoveredQuiltResources {
59
+ athenaUserWorkgroup?: string;
60
+ athenaUserPolicy?: string;
61
+ icebergWorkgroup?: string;
62
+ icebergDatabase?: string;
63
+ athenaResultsBucket?: string;
64
+ athenaResultsBucketPolicy?: string;
65
+ }
66
+ /**
67
+ * Get stack resources (physical resource IDs)
68
+ *
69
+ * Unlike outputs (which are user-defined exports), resources are the actual
70
+ * AWS resources created by the stack.
71
+ *
72
+ * @param region AWS region
73
+ * @param stackName CloudFormation stack name or ARN
74
+ * @param awsProvider Optional AWS provider for testing
75
+ * @returns Stack resources with logical and physical IDs
76
+ */
77
+ export declare function getStackResources(region: string, stackName: string, _awsProvider?: IAwsProvider): Promise<StackResourceMap>;
78
+ /**
79
+ * Extract Athena workgroups, IAM policies, Glue databases, and S3 buckets from stack resources
80
+ *
81
+ * Target resources:
82
+ * - UserAthenaNonManagedRoleWorkgroup (AWS::Athena::WorkGroup)
83
+ * - UserAthenaNonManagedRolePolicy (AWS::IAM::Policy)
84
+ * - IcebergWorkGroup (AWS::Athena::WorkGroup)
85
+ * - IcebergDatabase (AWS::Glue::Database)
86
+ * - UserAthenaResultsBucket (AWS::S3::Bucket)
87
+ * - UserAthenaResultsBucket Policy (AWS::S3::BucketPolicy)
88
+ *
89
+ * @param resources Stack resource map from getStackResources
90
+ * @returns Discovered Quilt resources
91
+ */
92
+ export declare function extractQuiltResources(resources: StackResourceMap): DiscoveredQuiltResources;
35
93
  /**
36
94
  * Fetch JSON from a URL using native Node.js modules
37
95
  */
@@ -1 +1 @@
1
- {"version":3,"file":"stack-inference.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-inference.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,8 @@ var __importStar = (this && this.__importStar) || (function () {
37
37
  };
38
38
  })();
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.getStackResources = getStackResources;
41
+ exports.extractQuiltResources = extractQuiltResources;
40
42
  exports.fetchJson = fetchJson;
41
43
  exports.findStackByResource = findStackByResource;
42
44
  exports.getStackDetails = getStackDetails;
@@ -49,15 +51,87 @@ exports.findAllQuiltStacks = findAllQuiltStacks;
49
51
  exports.buildInferredConfig = buildInferredConfig;
50
52
  exports.inferStackConfig = inferStackConfig;
51
53
  const child_process_1 = require("child_process");
54
+ const https = __importStar(require("https"));
55
+ const http = __importStar(require("http"));
56
+ const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
52
57
  const sqs_1 = require("./sqs");
53
58
  const exec_sync_aws_provider_1 = require("../providers/exec-sync-aws-provider");
54
59
  const node_http_client_1 = require("../providers/node-http-client");
60
+ /**
61
+ * Get stack resources (physical resource IDs)
62
+ *
63
+ * Unlike outputs (which are user-defined exports), resources are the actual
64
+ * AWS resources created by the stack.
65
+ *
66
+ * @param region AWS region
67
+ * @param stackName CloudFormation stack name or ARN
68
+ * @param awsProvider Optional AWS provider for testing
69
+ * @returns Stack resources with logical and physical IDs
70
+ */
71
+ async function getStackResources(region, stackName, _awsProvider) {
72
+ // FAIL LOUDLY - don't swallow errors silently
73
+ const client = new client_cloudformation_1.CloudFormationClient({ region });
74
+ const resourceMap = {};
75
+ // Handle pagination to fetch all resources (not just first 100)
76
+ // Use ListStackResourcesCommand instead of DescribeStackResourcesCommand
77
+ // because DescribeStackResources only returns first 100 resources
78
+ let nextToken;
79
+ do {
80
+ const command = new client_cloudformation_1.ListStackResourcesCommand({
81
+ StackName: stackName,
82
+ ...(nextToken && { NextToken: nextToken }),
83
+ });
84
+ const response = await client.send(command);
85
+ for (const resource of response.StackResourceSummaries || []) {
86
+ if (resource.LogicalResourceId && resource.PhysicalResourceId) {
87
+ resourceMap[resource.LogicalResourceId] = {
88
+ physicalResourceId: resource.PhysicalResourceId,
89
+ resourceType: resource.ResourceType || "Unknown",
90
+ resourceStatus: resource.ResourceStatus || "Unknown",
91
+ };
92
+ }
93
+ }
94
+ nextToken = response.NextToken;
95
+ } while (nextToken);
96
+ return resourceMap;
97
+ }
98
+ /**
99
+ * Extract Athena workgroups, IAM policies, Glue databases, and S3 buckets from stack resources
100
+ *
101
+ * Target resources:
102
+ * - UserAthenaNonManagedRoleWorkgroup (AWS::Athena::WorkGroup)
103
+ * - UserAthenaNonManagedRolePolicy (AWS::IAM::Policy)
104
+ * - IcebergWorkGroup (AWS::Athena::WorkGroup)
105
+ * - IcebergDatabase (AWS::Glue::Database)
106
+ * - UserAthenaResultsBucket (AWS::S3::Bucket)
107
+ * - UserAthenaResultsBucket Policy (AWS::S3::BucketPolicy)
108
+ *
109
+ * @param resources Stack resource map from getStackResources
110
+ * @returns Discovered Quilt resources
111
+ */
112
+ function extractQuiltResources(resources) {
113
+ // Map logical resource IDs to discovered resource properties
114
+ const resourceMapping = {
115
+ UserAthenaNonManagedRoleWorkgroup: "athenaUserWorkgroup",
116
+ UserAthenaNonManagedRolePolicy: "athenaUserPolicy",
117
+ IcebergWorkGroup: "icebergWorkgroup",
118
+ IcebergDatabase: "icebergDatabase",
119
+ UserAthenaResultsBucket: "athenaResultsBucket",
120
+ UserAthenaResultsBucketPolicy: "athenaResultsBucketPolicy",
121
+ };
122
+ const discovered = {};
123
+ // Extract physical resource IDs for each target resource
124
+ for (const [logicalId, propertyName] of Object.entries(resourceMapping)) {
125
+ if (resources[logicalId]) {
126
+ discovered[propertyName] = resources[logicalId].physicalResourceId;
127
+ }
128
+ }
129
+ return discovered;
130
+ }
55
131
  /**
56
132
  * Fetch JSON from a URL using native Node.js modules
57
133
  */
58
134
  async function fetchJson(url) {
59
- const https = await Promise.resolve().then(() => __importStar(require("https")));
60
- const http = await Promise.resolve().then(() => __importStar(require("http")));
61
135
  return new Promise((resolve, reject) => {
62
136
  const parsedUrl = new URL(url);
63
137
  const client = parsedUrl.protocol === "https:" ? https : http;
@@ -1 +1 @@
1
- {"version":3,"file":"stack-inference.js","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-inference.js","sourceRoot":"","sources":["../../../lib/utils/stack-inference.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Queries CloudFormation stack for the confirmed catalog and extracts
5
5
  * all available parameters including BenchlingSecret ARN.
6
+ * ALSO resolves and caches Quilt services for deployment-time usage.
6
7
  *
7
8
  * @module wizard/phase2-stack-query
8
9
  */
@@ -24,12 +25,13 @@ export interface StackQueryOptions {
24
25
  * Responsibilities:
25
26
  * - Query CloudFormation stack for the confirmed catalog
26
27
  * - Extract ALL available parameters from stack
28
+ * - Resolve and cache Quilt services for deployment
27
29
  * - Handle stack query failures gracefully
28
- * - Return stack configuration
30
+ * - Return stack configuration with cached services
29
31
  *
30
32
  * @param catalogDns - Confirmed catalog DNS name
31
33
  * @param options - Stack query options
32
- * @returns Stack query result
34
+ * @returns Stack query result with cached resolved services
33
35
  */
34
36
  export declare function runStackQuery(catalogDns: string, options?: StackQueryOptions): Promise<StackQueryResult>;
35
37
  //# sourceMappingURL=phase2-stack-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phase2-stack-query.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAsF3B"}
1
+ {"version":3,"file":"phase2-stack-query.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CA0K3B"}
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * Queries CloudFormation stack for the confirmed catalog and extracts
6
6
  * all available parameters including BenchlingSecret ARN.
7
+ * ALSO resolves and caches Quilt services for deployment-time usage.
7
8
  *
8
9
  * @module wizard/phase2-stack-query
9
10
  */
@@ -14,18 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
15
  exports.runStackQuery = runStackQuery;
15
16
  const chalk_1 = __importDefault(require("chalk"));
16
17
  const infer_quilt_config_1 = require("../../bin/commands/infer-quilt-config");
18
+ const service_resolver_1 = require("../utils/service-resolver");
17
19
  /**
18
20
  * Phase 2: Stack Query
19
21
  *
20
22
  * Responsibilities:
21
23
  * - Query CloudFormation stack for the confirmed catalog
22
24
  * - Extract ALL available parameters from stack
25
+ * - Resolve and cache Quilt services for deployment
23
26
  * - Handle stack query failures gracefully
24
- * - Return stack configuration
27
+ * - Return stack configuration with cached services
25
28
  *
26
29
  * @param catalogDns - Confirmed catalog DNS name
27
30
  * @param options - Stack query options
28
- * @returns Stack query result
31
+ * @returns Stack query result with cached resolved services
29
32
  */
30
33
  async function runStackQuery(catalogDns, options = {}) {
31
34
  const { awsProfile, awsRegion } = options;
@@ -56,23 +59,95 @@ async function runStackQuery(catalogDns, options = {}) {
56
59
  const account = inferenceResult.account || "";
57
60
  const benchlingSecretArn = inferenceResult.benchlingSecretArn;
58
61
  const benchlingIntegrationEnabled = inferenceResult.benchlingIntegrationEnabled;
62
+ const athenaUserWorkgroup = inferenceResult.athenaUserWorkgroup;
63
+ const athenaUserPolicy = inferenceResult.athenaUserPolicy;
64
+ const icebergWorkgroup = inferenceResult.icebergWorkgroup;
65
+ const icebergDatabase = inferenceResult.icebergDatabase;
66
+ const athenaResultsBucket = inferenceResult.athenaResultsBucket;
67
+ const athenaResultsBucketPolicy = inferenceResult.athenaResultsBucketPolicy;
59
68
  // Log what we found
60
69
  console.log(chalk_1.default.green("✓ Stack query succeeded\n"));
61
- console.log(chalk_1.default.dim(`Stack ARN: ${stackArn}`));
62
- console.log(chalk_1.default.dim(`Database: ${database}`));
63
- console.log(chalk_1.default.dim(`Queue URL: ${queueUrl}`));
64
- console.log(chalk_1.default.dim(`Region: ${region}`));
65
- console.log(chalk_1.default.dim(`Account: ${account}`));
70
+ console.log(chalk_1.default.dim(`✓ Stack ARN: ${stackArn}`));
71
+ console.log(chalk_1.default.dim(`✓ Database: ${database}`));
72
+ console.log(chalk_1.default.dim(`✓ Workgroup: ${athenaUserWorkgroup}`));
73
+ console.log(chalk_1.default.dim(`✓ Queue URL: ${queueUrl}`));
74
+ console.log(chalk_1.default.dim(`✓ Region: ${region}`));
75
+ console.log(chalk_1.default.dim(`✓ Account: ${account}`));
76
+ console.log(athenaUserPolicy
77
+ ? chalk_1.default.dim(`✓ Athena User Policy: ${athenaUserPolicy}`)
78
+ : chalk_1.default.yellow("⚠ Athena User Policy: NOT FOUND"));
79
+ console.log(athenaResultsBucket
80
+ ? chalk_1.default.dim(`✓ Athena Results Bucket: ${athenaResultsBucket}`)
81
+ : chalk_1.default.yellow("⚠ Athena Results Bucket: NOT FOUND"));
82
+ console.log(athenaResultsBucketPolicy
83
+ ? chalk_1.default.dim(`✓ Athena Results Bucket Policy: ${athenaResultsBucketPolicy}`)
84
+ : chalk_1.default.yellow("⚠ Athena Results Bucket Policy: NOT FOUND"));
85
+ // Iceberg resources are optional (recent addition to Quilt stacks)
86
+ if (icebergWorkgroup) {
87
+ console.log(chalk_1.default.green(`✓ Iceberg Workgroup: ${icebergWorkgroup}`));
88
+ }
89
+ else {
90
+ console.log(chalk_1.default.dim(" Iceberg Workgroup: Not available (optional)"));
91
+ }
92
+ if (icebergDatabase) {
93
+ console.log(chalk_1.default.green(`✓ Iceberg Database: ${icebergDatabase}`));
94
+ }
95
+ else {
96
+ console.log(chalk_1.default.dim(" Iceberg Database: Not available (optional)"));
97
+ }
66
98
  if (benchlingSecretArn) {
67
- console.log(chalk_1.default.dim(`BenchlingSecret: ${benchlingSecretArn}`));
99
+ console.log(chalk_1.default.green(`✓ BenchlingSecret: ${benchlingSecretArn}`));
68
100
  }
69
101
  else {
70
- console.log(chalk_1.default.dim("BenchlingSecret: Not found in stack"));
102
+ console.log(chalk_1.default.dim("BenchlingSecret: Not found in stack"));
71
103
  }
72
104
  if (benchlingIntegrationEnabled !== undefined) {
73
- console.log(chalk_1.default.dim(`BenchlingIntegration: ${benchlingIntegrationEnabled ? "Enabled" : "Disabled"}`));
105
+ console.log(benchlingIntegrationEnabled
106
+ ? chalk_1.default.green("✓ Benchling Integration: Enabled")
107
+ : chalk_1.default.yellow("⚠ Benchling Integration: Disabled"));
74
108
  }
75
109
  console.log("");
110
+ // NEW: Resolve Quilt services and cache them for deployment
111
+ console.log(chalk_1.default.cyan("Resolving Quilt services from CloudFormation stack...\n"));
112
+ let resolvedServices;
113
+ try {
114
+ const services = await (0, service_resolver_1.resolveQuiltServices)({ stackArn });
115
+ // Build ResolvedQuiltServices with timestamp and source
116
+ resolvedServices = {
117
+ packagerQueueUrl: services.packagerQueueUrl,
118
+ athenaUserDatabase: services.athenaUserDatabase,
119
+ quiltWebHost: services.quiltWebHost,
120
+ icebergDatabase: services.icebergDatabase,
121
+ athenaUserWorkgroup: services.athenaUserWorkgroup,
122
+ athenaResultsBucket: services.athenaResultsBucket,
123
+ icebergWorkgroup: services.icebergWorkgroup,
124
+ resolvedAt: new Date().toISOString(),
125
+ sourceStackArn: stackArn,
126
+ };
127
+ console.log(chalk_1.default.green("✓ Services resolved and cached for deployment\n"));
128
+ console.log(chalk_1.default.dim(` Packager Queue: ${resolvedServices.packagerQueueUrl}`));
129
+ console.log(chalk_1.default.dim(` Athena Database: ${resolvedServices.athenaUserDatabase}`));
130
+ console.log(chalk_1.default.dim(` Quilt Web Host: ${resolvedServices.quiltWebHost}`));
131
+ if (resolvedServices.icebergDatabase) {
132
+ console.log(chalk_1.default.dim(` Iceberg Database: ${resolvedServices.icebergDatabase}`));
133
+ }
134
+ if (resolvedServices.icebergWorkgroup) {
135
+ console.log(chalk_1.default.dim(` Iceberg Workgroup: ${resolvedServices.icebergWorkgroup}`));
136
+ }
137
+ if (resolvedServices.athenaUserWorkgroup) {
138
+ console.log(chalk_1.default.dim(` Athena Workgroup: ${resolvedServices.athenaUserWorkgroup}`));
139
+ }
140
+ if (resolvedServices.athenaResultsBucket) {
141
+ console.log(chalk_1.default.dim(` Athena Results Bucket: ${resolvedServices.athenaResultsBucket}`));
142
+ }
143
+ console.log("");
144
+ }
145
+ catch (error) {
146
+ // Service resolution failed - log warning but don't fail setup
147
+ // This allows setup to continue even if service resolution has issues
148
+ console.log(chalk_1.default.yellow(`⚠ Service resolution failed: ${error.message}`));
149
+ console.log(chalk_1.default.yellow(" Setup will continue, but deployment may require manual configuration\n"));
150
+ }
76
151
  return {
77
152
  stackArn,
78
153
  catalog: normalizedConfirmed,
@@ -82,7 +157,14 @@ async function runStackQuery(catalogDns, options = {}) {
82
157
  account,
83
158
  benchlingSecretArn,
84
159
  benchlingIntegrationEnabled,
160
+ athenaUserWorkgroup,
161
+ athenaUserPolicy,
162
+ icebergWorkgroup,
163
+ icebergDatabase,
164
+ athenaResultsBucket,
165
+ athenaResultsBucketPolicy,
85
166
  stackQuerySucceeded: true,
167
+ resolvedServices, // Include cached services
86
168
  };
87
169
  }
88
170
  catch (error) {
@@ -99,6 +181,7 @@ async function runStackQuery(catalogDns, options = {}) {
99
181
  benchlingSecretArn: undefined,
100
182
  benchlingIntegrationEnabled: undefined,
101
183
  stackQuerySucceeded: false,
184
+ resolvedServices: undefined, // No services if stack query failed
102
185
  };
103
186
  }
104
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"phase2-stack-query.js","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase2-stack-query.js","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"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"}