@quiltdata/benchling-webhook 0.7.7 → 0.7.9

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 (102) hide show
  1. package/README.md +73 -11
  2. package/dist/bin/cli.js +159 -5
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/bin/commands/config-show.d.ts +14 -0
  5. package/dist/bin/commands/config-show.d.ts.map +1 -0
  6. package/dist/bin/commands/config-show.js +24 -0
  7. package/dist/bin/commands/config-show.js.map +1 -0
  8. package/dist/bin/commands/deploy.d.ts +14 -0
  9. package/dist/bin/commands/deploy.d.ts.map +1 -1
  10. package/dist/bin/commands/deploy.js +1 -0
  11. package/dist/bin/commands/deploy.js.map +1 -1
  12. package/dist/bin/commands/infer-quilt-config.d.ts +4 -0
  13. package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
  14. package/dist/bin/commands/infer-quilt-config.js +87 -8
  15. package/dist/bin/commands/infer-quilt-config.js.map +1 -1
  16. package/dist/bin/commands/install.d.ts.map +1 -1
  17. package/dist/bin/commands/install.js +42 -7
  18. package/dist/bin/commands/install.js.map +1 -1
  19. package/dist/bin/commands/logs.d.ts +30 -0
  20. package/dist/bin/commands/logs.d.ts.map +1 -0
  21. package/dist/bin/commands/logs.js +276 -0
  22. package/dist/bin/commands/logs.js.map +1 -0
  23. package/dist/bin/commands/manifest.d.ts +20 -3
  24. package/dist/bin/commands/manifest.d.ts.map +1 -1
  25. package/dist/bin/commands/manifest.js +23 -7
  26. package/dist/bin/commands/manifest.js.map +1 -1
  27. package/dist/bin/commands/setup-wizard.d.ts +67 -13
  28. package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
  29. package/dist/bin/commands/setup-wizard.js +240 -742
  30. package/dist/bin/commands/setup-wizard.js.map +1 -1
  31. package/dist/bin/commands/status.d.ts +38 -0
  32. package/dist/bin/commands/status.d.ts.map +1 -0
  33. package/dist/bin/commands/status.js +171 -0
  34. package/dist/bin/commands/status.js.map +1 -0
  35. package/dist/bin/commands/sync-secrets.d.ts +7 -7
  36. package/dist/bin/commands/sync-secrets.d.ts.map +1 -1
  37. package/dist/bin/commands/sync-secrets.js +55 -15
  38. package/dist/bin/commands/sync-secrets.js.map +1 -1
  39. package/dist/bin/commands/validate.d.ts +18 -3
  40. package/dist/bin/commands/validate.d.ts.map +1 -1
  41. package/dist/bin/commands/validate.js +103 -69
  42. package/dist/bin/commands/validate.js.map +1 -1
  43. package/dist/lib/fargate-service.d.ts.map +1 -1
  44. package/dist/lib/fargate-service.js +3 -1
  45. package/dist/lib/fargate-service.js.map +1 -1
  46. package/dist/lib/next-steps-generator.js +25 -4
  47. package/dist/lib/next-steps-generator.js.map +1 -1
  48. package/dist/lib/types/config.d.ts +13 -0
  49. package/dist/lib/types/config.d.ts.map +1 -1
  50. package/dist/lib/types/config.js +1 -0
  51. package/dist/lib/types/config.js.map +1 -1
  52. package/dist/lib/utils/config.d.ts +14 -17
  53. package/dist/lib/utils/config.d.ts.map +1 -1
  54. package/dist/lib/utils/config.js +6 -88
  55. package/dist/lib/utils/config.js.map +1 -1
  56. package/dist/lib/utils/stack-parameter-update.d.ts +37 -0
  57. package/dist/lib/utils/stack-parameter-update.d.ts.map +1 -0
  58. package/dist/lib/utils/stack-parameter-update.js +129 -0
  59. package/dist/lib/utils/stack-parameter-update.js.map +1 -0
  60. package/dist/lib/wizard/phase1-catalog-discovery.d.ts +41 -0
  61. package/dist/lib/wizard/phase1-catalog-discovery.d.ts.map +1 -0
  62. package/dist/lib/wizard/phase1-catalog-discovery.js +206 -0
  63. package/dist/lib/wizard/phase1-catalog-discovery.js.map +1 -0
  64. package/dist/lib/wizard/phase2-stack-query.d.ts +35 -0
  65. package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -0
  66. package/dist/lib/wizard/phase2-stack-query.js +105 -0
  67. package/dist/lib/wizard/phase2-stack-query.js.map +1 -0
  68. package/dist/lib/wizard/phase3-parameter-collection.d.ts +24 -0
  69. package/dist/lib/wizard/phase3-parameter-collection.d.ts.map +1 -0
  70. package/dist/lib/wizard/phase3-parameter-collection.js +389 -0
  71. package/dist/lib/wizard/phase3-parameter-collection.js.map +1 -0
  72. package/dist/lib/wizard/phase4-validation.d.ts +22 -0
  73. package/dist/lib/wizard/phase4-validation.d.ts.map +1 -0
  74. package/dist/lib/wizard/phase4-validation.js +294 -0
  75. package/dist/lib/wizard/phase4-validation.js.map +1 -0
  76. package/dist/lib/wizard/phase5-mode-decision.d.ts +22 -0
  77. package/dist/lib/wizard/phase5-mode-decision.d.ts.map +1 -0
  78. package/dist/lib/wizard/phase5-mode-decision.js +65 -0
  79. package/dist/lib/wizard/phase5-mode-decision.js.map +1 -0
  80. package/dist/lib/wizard/phase6-integrated-mode.d.ts +25 -0
  81. package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -0
  82. package/dist/lib/wizard/phase6-integrated-mode.js +230 -0
  83. package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -0
  84. package/dist/lib/wizard/phase7-standalone-mode.d.ts +25 -0
  85. package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -0
  86. package/dist/lib/wizard/phase7-standalone-mode.js +210 -0
  87. package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -0
  88. package/dist/lib/wizard/types.d.ts +178 -0
  89. package/dist/lib/wizard/types.d.ts.map +1 -0
  90. package/dist/lib/wizard/types.js +11 -0
  91. package/dist/lib/wizard/types.js.map +1 -0
  92. package/dist/package.json +3 -4
  93. package/dist/scripts/check-logs.d.ts +9 -2
  94. package/dist/scripts/check-logs.d.ts.map +1 -1
  95. package/dist/scripts/check-logs.js +26 -2
  96. package/dist/scripts/check-logs.js.map +1 -1
  97. package/package.json +3 -4
  98. package/dist/bin/commands/get-env.d.ts +0 -16
  99. package/dist/bin/commands/get-env.d.ts.map +0 -1
  100. package/dist/bin/commands/get-env.js +0 -210
  101. package/dist/bin/commands/get-env.js.map +0 -1
  102. package/env.template +0 -79
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
+ /**
3
+ * Configuration Utilities
4
+ *
5
+ * Legacy configuration types and utility functions.
6
+ * Most configuration loading now happens via XDG profiles (see lib/xdg-config.ts).
7
+ */
2
8
  Object.defineProperty(exports, "__esModule", { value: true });
3
9
  exports.getQuilt3Catalog = getQuilt3Catalog;
4
- exports.loadDotenv = loadDotenv;
5
10
  exports.processBenchlingSecretsInput = processBenchlingSecretsInput;
6
11
  exports.maskArn = maskArn;
7
- exports.loadConfigSync = loadConfigSync;
8
- exports.mergeInferredConfig = mergeInferredConfig;
9
12
  exports.validateConfig = validateConfig;
10
13
  exports.formatValidationErrors = formatValidationErrors;
11
- const dotenv_1 = require("dotenv");
12
- const dotenv_expand_1 = require("dotenv-expand");
13
14
  const fs_1 = require("fs");
14
15
  const path_1 = require("path");
15
16
  const child_process_1 = require("child_process");
@@ -34,24 +35,6 @@ function getQuilt3Catalog() {
34
35
  }
35
36
  return undefined;
36
37
  }
37
- /**
38
- * Load .env file and expand variables
39
- */
40
- function loadDotenv(filePath) {
41
- const resolvedPath = (0, path_1.resolve)(filePath);
42
- if (!(0, fs_1.existsSync)(resolvedPath)) {
43
- return {};
44
- }
45
- const result = (0, dotenv_1.config)({ path: resolvedPath });
46
- if (result.error) {
47
- throw new Error(`Failed to load ${filePath}: ${result.error.message}`);
48
- }
49
- // Expand variables like ${VAR}
50
- if (result.parsed) {
51
- (0, dotenv_expand_1.expand)(result);
52
- }
53
- return result.parsed || {};
54
- }
55
38
  /**
56
39
  * Process benchling-secrets parameter, handling @file.json syntax
57
40
  *
@@ -130,71 +113,6 @@ function maskArn(arn) {
130
113
  // Return as-is if pattern doesn't match
131
114
  return arn;
132
115
  }
133
- /**
134
- * Load configuration from multiple sources with priority:
135
- * 1. CLI options (highest)
136
- * 2. Environment variables
137
- * 3. .env file
138
- * 4. quilt3 config (for catalog only)
139
- * 5. Inferred values (will be added separately)
140
- */
141
- function loadConfigSync(options = {}) {
142
- // 1. Load .env file
143
- const envFile = options.envFile || ".env";
144
- const dotenvVars = (0, fs_1.existsSync)(envFile) ? loadDotenv(envFile) : {};
145
- // 2. Merge with process.env
146
- const envVars = { ...dotenvVars, ...process.env };
147
- // 3. Try to get catalog from quilt3 config as fallback
148
- const quilt3Catalog = getQuilt3Catalog();
149
- // 4. Build config with CLI options taking priority
150
- const config = {
151
- // Quilt
152
- quiltCatalog: options.catalog || envVars.QUILT_CATALOG || quilt3Catalog,
153
- quiltUserBucket: options.bucket || envVars.QUILT_USER_BUCKET,
154
- quiltDatabase: envVars.QUILT_DATABASE,
155
- // Benchling
156
- benchlingTenant: options.tenant || envVars.BENCHLING_TENANT,
157
- benchlingClientId: options.clientId || envVars.BENCHLING_CLIENT_ID,
158
- benchlingClientSecret: options.clientSecret || envVars.BENCHLING_CLIENT_SECRET,
159
- benchlingAppDefinitionId: options.appId || envVars.BENCHLING_APP_DEFINITION_ID,
160
- // Unified secrets (priority: CLI > env > .env)
161
- // Process file input syntax (@file.json) if present
162
- benchlingSecrets: (() => {
163
- const rawSecrets = options.benchlingSecrets || envVars.BENCHLING_SECRETS;
164
- return rawSecrets ? processBenchlingSecretsInput(rawSecrets) : undefined;
165
- })(),
166
- // AWS
167
- cdkAccount: envVars.CDK_DEFAULT_ACCOUNT,
168
- cdkRegion: options.region || envVars.CDK_DEFAULT_REGION || envVars.AWS_REGION,
169
- awsProfile: options.profile || envVars.AWS_PROFILE,
170
- // SQS
171
- queueUrl: envVars.QUEUE_URL,
172
- // Optional
173
- pkgPrefix: envVars.PKG_PREFIX || "benchling",
174
- pkgKey: envVars.PKG_KEY || "experiment_id",
175
- logLevel: envVars.LOG_LEVEL || "INFO",
176
- webhookAllowList: envVars.WEBHOOK_ALLOW_LIST,
177
- enableWebhookVerification: envVars.ENABLE_WEBHOOK_VERIFICATION ?? "true",
178
- createEcrRepository: envVars.CREATE_ECR_REPOSITORY,
179
- ecrRepositoryName: envVars.ECR_REPOSITORY_NAME || "quiltdata/benchling",
180
- imageTag: options.imageTag || envVars.IMAGE_TAG || "latest",
181
- };
182
- // Remove undefined values
183
- return Object.fromEntries(Object.entries(config).filter(([, v]) => v !== undefined));
184
- }
185
- /**
186
- * Merge inferred configuration with loaded config
187
- */
188
- function mergeInferredConfig(config, inferredVars) {
189
- // Only use inferred values if not already set
190
- return {
191
- cdkAccount: config.cdkAccount || inferredVars.CDK_DEFAULT_ACCOUNT,
192
- cdkRegion: config.cdkRegion || inferredVars.CDK_DEFAULT_REGION,
193
- queueUrl: config.queueUrl || inferredVars.QUEUE_URL,
194
- quiltDatabase: config.quiltDatabase || inferredVars.QUILT_DATABASE,
195
- ...config, // User values always take precedence
196
- };
197
- }
198
116
  /**
199
117
  * Validate configuration and return detailed errors
200
118
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * CloudFormation stack parameter update utility
3
+ *
4
+ * Provides safe parameter updates with UsePreviousValue for all other parameters
5
+ *
6
+ * @module utils/stack-parameter-update
7
+ */
8
+ export interface StackParameterUpdateOptions {
9
+ stackArn: string;
10
+ region: string;
11
+ parameterKey: string;
12
+ parameterValue: string;
13
+ awsProfile?: string;
14
+ }
15
+ export interface StackParameterUpdateResult {
16
+ success: boolean;
17
+ stackId?: string;
18
+ error?: string;
19
+ }
20
+ /**
21
+ * Updates a single CloudFormation stack parameter while preserving all others
22
+ *
23
+ * @param options - Update options
24
+ * @returns Update result
25
+ */
26
+ export declare function updateStackParameter(options: StackParameterUpdateOptions): Promise<StackParameterUpdateResult>;
27
+ /**
28
+ * Gets current value of a stack parameter
29
+ *
30
+ * @param stackArn - Stack ARN
31
+ * @param region - AWS region
32
+ * @param parameterKey - Parameter key to query
33
+ * @param awsProfile - Optional AWS profile
34
+ * @returns Parameter value or undefined if not found
35
+ */
36
+ export declare function getStackParameter(stackArn: string, region: string, parameterKey: string, awsProfile?: string): Promise<string | undefined>;
37
+ //# sourceMappingURL=stack-parameter-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-parameter-update.d.ts","sourceRoot":"","sources":["../../../lib/utils/stack-parameter-update.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,0BAA0B,CAAC,CA0ErC;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACnC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8B7B"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * CloudFormation stack parameter update utility
4
+ *
5
+ * Provides safe parameter updates with UsePreviousValue for all other parameters
6
+ *
7
+ * @module utils/stack-parameter-update
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.updateStackParameter = updateStackParameter;
14
+ exports.getStackParameter = getStackParameter;
15
+ const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
16
+ const credential_providers_1 = require("@aws-sdk/credential-providers");
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ /**
19
+ * Updates a single CloudFormation stack parameter while preserving all others
20
+ *
21
+ * @param options - Update options
22
+ * @returns Update result
23
+ */
24
+ async function updateStackParameter(options) {
25
+ const { stackArn, region, parameterKey, parameterValue, awsProfile } = options;
26
+ try {
27
+ // Extract stack name from ARN
28
+ // ARN format: arn:aws:cloudformation:REGION:ACCOUNT:stack/STACK_NAME/STACK_ID
29
+ const stackNameMatch = stackArn.match(/stack\/([^\/]+)\//);
30
+ if (!stackNameMatch) {
31
+ throw new Error(`Invalid stack ARN format: ${stackArn}`);
32
+ }
33
+ const stackName = stackNameMatch[1];
34
+ // Configure AWS SDK client
35
+ const clientConfig = { region };
36
+ if (awsProfile) {
37
+ clientConfig.credentials = (0, credential_providers_1.fromIni)({ profile: awsProfile });
38
+ }
39
+ const client = new client_cloudformation_1.CloudFormationClient(clientConfig);
40
+ // Get current stack parameters
41
+ const describeCommand = new client_cloudformation_1.DescribeStacksCommand({
42
+ StackName: stackName,
43
+ });
44
+ const describeResponse = await client.send(describeCommand);
45
+ const stack = describeResponse.Stacks?.[0];
46
+ if (!stack) {
47
+ throw new Error(`Stack not found: ${stackName}`);
48
+ }
49
+ const currentParameters = stack.Parameters || [];
50
+ // Build parameter list: update target parameter, preserve all others
51
+ const parameters = currentParameters.map((param) => {
52
+ if (param.ParameterKey === parameterKey) {
53
+ return {
54
+ ParameterKey: parameterKey,
55
+ ParameterValue: parameterValue,
56
+ };
57
+ }
58
+ else {
59
+ return {
60
+ ParameterKey: param.ParameterKey,
61
+ UsePreviousValue: true,
62
+ };
63
+ }
64
+ });
65
+ // Update stack
66
+ const updateCommand = new client_cloudformation_1.UpdateStackCommand({
67
+ StackName: stackName,
68
+ Parameters: parameters,
69
+ UsePreviousTemplate: true, // CRITICAL: Don't change template
70
+ Capabilities: stack.Capabilities, // Preserve capabilities
71
+ });
72
+ const updateResponse = await client.send(updateCommand);
73
+ return {
74
+ success: true,
75
+ stackId: updateResponse.StackId,
76
+ };
77
+ }
78
+ catch (error) {
79
+ const err = error;
80
+ // CloudFormation returns specific error if no updates are needed
81
+ if (err.message?.includes("No updates are to be performed")) {
82
+ return {
83
+ success: true, // Not really an error
84
+ };
85
+ }
86
+ return {
87
+ success: false,
88
+ error: err.message,
89
+ };
90
+ }
91
+ }
92
+ /**
93
+ * Gets current value of a stack parameter
94
+ *
95
+ * @param stackArn - Stack ARN
96
+ * @param region - AWS region
97
+ * @param parameterKey - Parameter key to query
98
+ * @param awsProfile - Optional AWS profile
99
+ * @returns Parameter value or undefined if not found
100
+ */
101
+ async function getStackParameter(stackArn, region, parameterKey, awsProfile) {
102
+ try {
103
+ const stackNameMatch = stackArn.match(/stack\/([^\/]+)\//);
104
+ if (!stackNameMatch) {
105
+ throw new Error(`Invalid stack ARN format: ${stackArn}`);
106
+ }
107
+ const stackName = stackNameMatch[1];
108
+ const clientConfig = { region };
109
+ if (awsProfile) {
110
+ clientConfig.credentials = (0, credential_providers_1.fromIni)({ profile: awsProfile });
111
+ }
112
+ const client = new client_cloudformation_1.CloudFormationClient(clientConfig);
113
+ const describeCommand = new client_cloudformation_1.DescribeStacksCommand({
114
+ StackName: stackName,
115
+ });
116
+ const describeResponse = await client.send(describeCommand);
117
+ const stack = describeResponse.Stacks?.[0];
118
+ if (!stack) {
119
+ return undefined;
120
+ }
121
+ const param = stack.Parameters?.find((p) => p.ParameterKey === parameterKey);
122
+ return param?.ParameterValue;
123
+ }
124
+ catch (error) {
125
+ console.warn(chalk_1.default.yellow(`Warning: Could not get parameter ${parameterKey}: ${error.message}`));
126
+ return undefined;
127
+ }
128
+ }
129
+ //# sourceMappingURL=stack-parameter-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack-parameter-update.js","sourceRoot":"","sources":["../../../lib/utils/stack-parameter-update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Phase 1: Catalog Discovery
3
+ *
4
+ * Detects and confirms the Quilt catalog DNS name.
5
+ * Does NOT query AWS - only reads local quilt3 config.
6
+ *
7
+ * @module wizard/phase1-catalog-discovery
8
+ */
9
+ import { CatalogDiscoveryResult } from "./types";
10
+ /**
11
+ * Phase 1 options
12
+ */
13
+ export interface CatalogDiscoveryOptions {
14
+ /** Non-interactive mode (skip prompts) */
15
+ yes?: boolean;
16
+ /** Catalog URL provided via CLI */
17
+ catalogUrl?: string;
18
+ /** Existing catalog from loaded profile (takes precedence over detection) */
19
+ existingCatalog?: string;
20
+ }
21
+ /**
22
+ * Phase 1: Catalog Discovery
23
+ *
24
+ * Responsibilities:
25
+ * - Check existing config first (highest priority)
26
+ * - Read quilt3 CLI config as fallback
27
+ * - Ask user to confirm detected catalog
28
+ * - If not confirmed, prompt for manual entry
29
+ * - Return confirmed catalog DNS
30
+ *
31
+ * Priority order:
32
+ * 1. CLI argument (--catalog-url)
33
+ * 2. Existing profile config
34
+ * 3. quilt3 CLI detection
35
+ * 4. Manual entry prompt
36
+ *
37
+ * @param options - Catalog discovery options
38
+ * @returns Catalog discovery result
39
+ */
40
+ export declare function runCatalogDiscovery(options: CatalogDiscoveryOptions): Promise<CatalogDiscoveryResult>;
41
+ //# sourceMappingURL=phase1-catalog-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase1-catalog-discovery.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase1-catalog-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CA4IjC"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ /**
3
+ * Phase 1: Catalog Discovery
4
+ *
5
+ * Detects and confirms the Quilt catalog DNS name.
6
+ * Does NOT query AWS - only reads local quilt3 config.
7
+ *
8
+ * @module wizard/phase1-catalog-discovery
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.runCatalogDiscovery = runCatalogDiscovery;
15
+ const child_process_1 = require("child_process");
16
+ const inquirer_1 = __importDefault(require("inquirer"));
17
+ const chalk_1 = __importDefault(require("chalk"));
18
+ /**
19
+ * Attempts to detect catalog from quilt3 CLI config
20
+ *
21
+ * @returns Catalog URL from quilt3 config, or null if not found
22
+ */
23
+ function detectQuilt3Catalog() {
24
+ try {
25
+ const output = (0, child_process_1.execSync)("quilt3 config", {
26
+ encoding: "utf-8",
27
+ stdio: ["pipe", "pipe", "ignore"],
28
+ });
29
+ const catalogUrl = output.trim();
30
+ if (catalogUrl && catalogUrl.startsWith("http")) {
31
+ return catalogUrl;
32
+ }
33
+ return null;
34
+ }
35
+ catch {
36
+ // quilt3 command not available or failed
37
+ return null;
38
+ }
39
+ }
40
+ /**
41
+ * Normalizes catalog URL to DNS format (removes protocol, trailing slash)
42
+ *
43
+ * @param catalogUrl - Raw catalog URL
44
+ * @returns Normalized DNS name
45
+ */
46
+ function normalizeCatalogDns(catalogUrl) {
47
+ return catalogUrl.replace(/^https?:\/\//, "").replace(/\/$/, "");
48
+ }
49
+ /**
50
+ * Validates catalog DNS format
51
+ *
52
+ * @param catalogDns - Catalog DNS to validate
53
+ * @returns True if valid, error message otherwise
54
+ */
55
+ function validateCatalogDns(catalogDns) {
56
+ const trimmed = catalogDns.trim();
57
+ if (trimmed.length === 0) {
58
+ return "Catalog DNS name is required";
59
+ }
60
+ // Basic DNS validation (allow alphanumeric, dots, hyphens)
61
+ if (!/^[a-zA-Z0-9.-]+$/.test(trimmed)) {
62
+ return "Invalid DNS name format";
63
+ }
64
+ return true;
65
+ }
66
+ /**
67
+ * Phase 1: Catalog Discovery
68
+ *
69
+ * Responsibilities:
70
+ * - Check existing config first (highest priority)
71
+ * - Read quilt3 CLI config as fallback
72
+ * - Ask user to confirm detected catalog
73
+ * - If not confirmed, prompt for manual entry
74
+ * - Return confirmed catalog DNS
75
+ *
76
+ * Priority order:
77
+ * 1. CLI argument (--catalog-url)
78
+ * 2. Existing profile config
79
+ * 3. quilt3 CLI detection
80
+ * 4. Manual entry prompt
81
+ *
82
+ * @param options - Catalog discovery options
83
+ * @returns Catalog discovery result
84
+ */
85
+ async function runCatalogDiscovery(options) {
86
+ const { yes = false, catalogUrl: cliCatalogUrl, existingCatalog } = options;
87
+ // If catalog provided via CLI, use it directly
88
+ if (cliCatalogUrl) {
89
+ const catalogDns = normalizeCatalogDns(cliCatalogUrl);
90
+ console.log(chalk_1.default.blue(`Using catalog from CLI: ${catalogDns}\n`));
91
+ return {
92
+ catalogDns,
93
+ wasManuallyEntered: true,
94
+ };
95
+ }
96
+ // If existing config has a catalog, prioritize it over detection
97
+ if (existingCatalog) {
98
+ const catalogDns = normalizeCatalogDns(existingCatalog);
99
+ console.log(chalk_1.default.blue(`Using catalog from existing profile: ${catalogDns}\n`));
100
+ // In --yes mode, use existing catalog automatically
101
+ if (yes) {
102
+ return {
103
+ catalogDns,
104
+ wasManuallyEntered: false,
105
+ detectedCatalog: catalogDns,
106
+ };
107
+ }
108
+ // Ask user to confirm existing catalog
109
+ const { isCorrect } = await inquirer_1.default.prompt([
110
+ {
111
+ type: "confirm",
112
+ name: "isCorrect",
113
+ message: `Is ${catalogDns} the correct catalog?`,
114
+ default: true,
115
+ },
116
+ ]);
117
+ if (isCorrect) {
118
+ return {
119
+ catalogDns,
120
+ wasManuallyEntered: false,
121
+ detectedCatalog: catalogDns,
122
+ };
123
+ }
124
+ // User declined, ask for manual entry
125
+ const { manualCatalog } = await inquirer_1.default.prompt([
126
+ {
127
+ type: "input",
128
+ name: "manualCatalog",
129
+ message: "Enter catalog DNS name:",
130
+ validate: validateCatalogDns,
131
+ filter: normalizeCatalogDns,
132
+ },
133
+ ]);
134
+ return {
135
+ catalogDns: manualCatalog,
136
+ wasManuallyEntered: true,
137
+ detectedCatalog: catalogDns,
138
+ };
139
+ }
140
+ // Try to detect catalog from quilt3 CLI
141
+ const detectedCatalog = detectQuilt3Catalog();
142
+ if (detectedCatalog) {
143
+ const catalogDns = normalizeCatalogDns(detectedCatalog);
144
+ console.log(chalk_1.default.blue(`Detected catalog: ${catalogDns}\n`));
145
+ // In --yes mode, use detected catalog automatically
146
+ if (yes) {
147
+ return {
148
+ catalogDns,
149
+ wasManuallyEntered: false,
150
+ detectedCatalog: catalogDns,
151
+ };
152
+ }
153
+ // Ask user to confirm
154
+ const { isCorrect } = await inquirer_1.default.prompt([
155
+ {
156
+ type: "confirm",
157
+ name: "isCorrect",
158
+ message: `Is ${catalogDns} the correct catalog?`,
159
+ default: true,
160
+ },
161
+ ]);
162
+ if (isCorrect) {
163
+ return {
164
+ catalogDns,
165
+ wasManuallyEntered: false,
166
+ detectedCatalog: catalogDns,
167
+ };
168
+ }
169
+ // User declined, ask for manual entry
170
+ const { manualCatalog } = await inquirer_1.default.prompt([
171
+ {
172
+ type: "input",
173
+ name: "manualCatalog",
174
+ message: "Enter catalog DNS name:",
175
+ validate: validateCatalogDns,
176
+ filter: normalizeCatalogDns,
177
+ },
178
+ ]);
179
+ return {
180
+ catalogDns: manualCatalog,
181
+ wasManuallyEntered: true,
182
+ detectedCatalog: catalogDns,
183
+ };
184
+ }
185
+ // No catalog detected
186
+ console.log(chalk_1.default.yellow("No quilt3 CLI configuration detected.\n"));
187
+ if (yes) {
188
+ throw new Error("No catalog detected and --yes flag prevents interactive prompt. " +
189
+ "Provide catalog URL via --catalog-url argument.");
190
+ }
191
+ // Prompt for manual entry
192
+ const { manualCatalog } = await inquirer_1.default.prompt([
193
+ {
194
+ type: "input",
195
+ name: "manualCatalog",
196
+ message: "Enter Quilt Catalog DNS name (e.g., open.quiltdata.com):",
197
+ validate: validateCatalogDns,
198
+ filter: normalizeCatalogDns,
199
+ },
200
+ ]);
201
+ return {
202
+ catalogDns: manualCatalog,
203
+ wasManuallyEntered: true,
204
+ };
205
+ }
206
+ //# sourceMappingURL=phase1-catalog-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase1-catalog-discovery.js","sourceRoot":"","sources":["../../../lib/wizard/phase1-catalog-discovery.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;AA4FH,kDA8IC;AAxOD,iDAAyC;AACzC,wDAAgC;AAChC,kDAA0B;AAe1B;;;;GAIG;AACH,SAAS,mBAAmB;IACxB,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,eAAe,EAAE;YACrC,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,yCAAyC;QACzC,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,UAAkB;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,8BAA8B,CAAC;IAC1C,CAAC;IAED,2DAA2D;IAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,mBAAmB,CACrC,OAAgC;IAEhC,MAAM,EAAE,GAAG,GAAG,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAE5E,+CAA+C;IAC/C,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2BAA2B,UAAU,IAAI,CAAC,CAAC,CAAC;QACnE,OAAO;YACH,UAAU;YACV,kBAAkB,EAAE,IAAI;SAC3B,CAAC;IACN,CAAC;IAED,iEAAiE;IACjE,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wCAAwC,UAAU,IAAI,CAAC,CAAC,CAAC;QAEhF,oDAAoD;QACpD,IAAI,GAAG,EAAE,CAAC;YACN,OAAO;gBACH,UAAU;gBACV,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,UAAU;aAC9B,CAAC;QACN,CAAC;QAED,uCAAuC;QACvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACxC;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,UAAU,uBAAuB;gBAChD,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO;gBACH,UAAU;gBACV,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,UAAU;aAC9B,CAAC;QACN,CAAC;QAED,sCAAsC;QACtC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC5C;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE,mBAAmB;aAC9B;SACJ,CAAC,CAAC;QAEH,OAAO;YACH,UAAU,EAAE,aAAa;YACzB,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAE,UAAU;SAC9B,CAAC;IACN,CAAC;IAED,wCAAwC;IACxC,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;IAE9C,IAAI,eAAe,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,IAAI,CAAC,CAAC,CAAC;QAE7D,oDAAoD;QACpD,IAAI,GAAG,EAAE,CAAC;YACN,OAAO;gBACH,UAAU;gBACV,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,UAAU;aAC9B,CAAC;QACN,CAAC;QAED,sBAAsB;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACxC;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,UAAU,uBAAuB;gBAChD,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;QAEH,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO;gBACH,UAAU;gBACV,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE,UAAU;aAC9B,CAAC;QACN,CAAC;QAED,sCAAsC;QACtC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC5C;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,kBAAkB;gBAC5B,MAAM,EAAE,mBAAmB;aAC9B;SACJ,CAAC,CAAC;QAEH,OAAO;YACH,UAAU,EAAE,aAAa;YACzB,kBAAkB,EAAE,IAAI;YACxB,eAAe,EAAE,UAAU;SAC9B,CAAC;IACN,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;IAErE,IAAI,GAAG,EAAE,CAAC;QACN,MAAM,IAAI,KAAK,CACX,kEAAkE;YAClE,iDAAiD,CACpD,CAAC;IACN,CAAC;IAED,0BAA0B;IAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QAC5C;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,0DAA0D;YACnE,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,mBAAmB;SAC9B;KACJ,CAAC,CAAC;IAEH,OAAO;QACH,UAAU,EAAE,aAAa;QACzB,kBAAkB,EAAE,IAAI;KAC3B,CAAC;AACN,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Phase 2: Stack Query
3
+ *
4
+ * Queries CloudFormation stack for the confirmed catalog and extracts
5
+ * all available parameters including BenchlingSecret ARN.
6
+ *
7
+ * @module wizard/phase2-stack-query
8
+ */
9
+ import { StackQueryResult } from "./types";
10
+ /**
11
+ * Phase 2 options
12
+ */
13
+ export interface StackQueryOptions {
14
+ /** AWS profile to use for querying */
15
+ awsProfile?: string;
16
+ /** AWS region to search in */
17
+ awsRegion?: string;
18
+ /** Non-interactive mode */
19
+ yes?: boolean;
20
+ }
21
+ /**
22
+ * Phase 2: Stack Query
23
+ *
24
+ * Responsibilities:
25
+ * - Query CloudFormation stack for the confirmed catalog
26
+ * - Extract ALL available parameters from stack
27
+ * - Handle stack query failures gracefully
28
+ * - Return stack configuration
29
+ *
30
+ * @param catalogDns - Confirmed catalog DNS name
31
+ * @param options - Stack query options
32
+ * @returns Stack query result
33
+ */
34
+ export declare function runStackQuery(catalogDns: string, options?: StackQueryOptions): Promise<StackQueryResult>;
35
+ //# sourceMappingURL=phase2-stack-query.d.ts.map
@@ -0,0 +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"}