@quiltdata/benchling-webhook 0.5.4-20251102T020826Z → 0.5.4-20251103T180145Z
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -17
- package/dist/bin/benchling-webhook.d.ts +1 -1
- package/dist/bin/benchling-webhook.d.ts.map +1 -1
- package/dist/bin/benchling-webhook.js +8 -23
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cdk-dev.js +51 -0
- package/dist/bin/cli.js +8 -22
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts +4 -2
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +88 -300
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/config-profiles.d.ts +59 -0
- package/dist/bin/config-profiles.d.ts.map +1 -0
- package/dist/bin/config-profiles.js +272 -0
- package/dist/bin/config-profiles.js.map +1 -0
- package/dist/bin/create-secret.d.ts +3 -0
- package/dist/bin/create-secret.d.ts.map +1 -1
- package/dist/bin/create-secret.js +51 -48
- package/dist/bin/create-secret.js.map +1 -1
- package/dist/lib/benchling-auth-validator.d.ts +65 -0
- package/dist/lib/benchling-auth-validator.d.ts.map +1 -0
- package/dist/lib/benchling-auth-validator.js +213 -0
- package/dist/lib/benchling-auth-validator.js.map +1 -0
- package/dist/lib/benchling-webhook-stack.d.ts +5 -23
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +25 -145
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/config-logger.d.ts +191 -0
- package/dist/lib/config-logger.d.ts.map +1 -0
- package/dist/lib/config-logger.js +372 -0
- package/dist/lib/config-logger.js.map +1 -0
- package/dist/lib/configuration-saver.d.ts +75 -0
- package/dist/lib/configuration-saver.d.ts.map +1 -0
- package/dist/lib/configuration-saver.js +145 -0
- package/dist/lib/configuration-saver.js.map +1 -0
- package/dist/lib/configuration-validator.d.ts +63 -0
- package/dist/lib/configuration-validator.d.ts.map +1 -0
- package/dist/lib/configuration-validator.js +136 -0
- package/dist/lib/configuration-validator.js.map +1 -0
- package/dist/lib/configuration-wizard.d.ts +52 -0
- package/dist/lib/configuration-wizard.d.ts.map +1 -0
- package/dist/lib/configuration-wizard.js +193 -0
- package/dist/lib/configuration-wizard.js.map +1 -0
- package/dist/lib/quilt-config-resolver.d.ts +53 -0
- package/dist/lib/quilt-config-resolver.d.ts.map +1 -0
- package/dist/lib/quilt-config-resolver.js +100 -0
- package/dist/lib/quilt-config-resolver.js.map +1 -0
- package/dist/lib/s3-bucket-validator.d.ts +76 -0
- package/dist/lib/s3-bucket-validator.d.ts.map +1 -0
- package/dist/lib/s3-bucket-validator.js +237 -0
- package/dist/lib/s3-bucket-validator.js.map +1 -0
- package/dist/lib/types/config.d.ts +398 -0
- package/dist/lib/types/config.d.ts.map +1 -0
- package/dist/lib/types/config.js +11 -0
- package/dist/lib/types/config.js.map +1 -0
- package/dist/lib/utils/config-loader.js.map +1 -1
- package/dist/lib/utils/config-resolver.d.ts +26 -26
- package/dist/lib/utils/config-resolver.d.ts.map +1 -1
- package/dist/lib/utils/config-resolver.js +29 -29
- package/dist/lib/utils/config-resolver.js.map +1 -1
- package/dist/lib/utils/config.d.ts +2 -0
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/xdg-cli-wrapper.d.ts +113 -0
- package/dist/lib/xdg-cli-wrapper.d.ts.map +1 -0
- package/dist/lib/xdg-cli-wrapper.js +288 -0
- package/dist/lib/xdg-cli-wrapper.js.map +1 -0
- package/dist/lib/xdg-config.d.ts +187 -0
- package/dist/lib/xdg-config.d.ts.map +1 -0
- package/dist/lib/xdg-config.js +562 -0
- package/dist/lib/xdg-config.js.map +1 -0
- package/dist/package.json +38 -26
- package/dist/scripts/config-health-check.d.ts +78 -0
- package/dist/scripts/config-health-check.d.ts.map +1 -0
- package/dist/scripts/config-health-check.js +559 -0
- package/dist/scripts/config-health-check.js.map +1 -0
- package/dist/scripts/infer-quilt-config.d.ts +50 -0
- package/dist/scripts/infer-quilt-config.d.ts.map +1 -0
- package/dist/scripts/infer-quilt-config.js +353 -0
- package/dist/scripts/infer-quilt-config.js.map +1 -0
- package/dist/scripts/install-wizard.d.ts +34 -0
- package/dist/scripts/install-wizard.d.ts.map +1 -0
- package/dist/scripts/install-wizard.js +719 -0
- package/dist/scripts/install-wizard.js.map +1 -0
- package/dist/scripts/sync-secrets.d.ts +63 -0
- package/dist/scripts/sync-secrets.d.ts.map +1 -0
- package/dist/scripts/sync-secrets.js +424 -0
- package/dist/scripts/sync-secrets.js.map +1 -0
- package/env.template +60 -47
- package/package.json +38 -26
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comprehensive Type Definitions for XDG Configuration System
|
|
3
|
+
*
|
|
4
|
+
* This module defines all TypeScript types and interfaces for the
|
|
5
|
+
* XDG-compliant configuration management system.
|
|
6
|
+
*
|
|
7
|
+
* @module types/config
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Configuration profile identifier
|
|
11
|
+
* Profiles allow multiple named configurations (e.g., "default", "dev", "prod")
|
|
12
|
+
*/
|
|
13
|
+
export type ProfileName = string;
|
|
14
|
+
/**
|
|
15
|
+
* Configuration type identifier
|
|
16
|
+
*/
|
|
17
|
+
export type ConfigType = "user" | "derived" | "deploy" | "complete";
|
|
18
|
+
/**
|
|
19
|
+
* User Configuration
|
|
20
|
+
*
|
|
21
|
+
* User-provided settings that define the core configuration.
|
|
22
|
+
* This is the primary configuration file edited by users.
|
|
23
|
+
*/
|
|
24
|
+
export interface UserConfig {
|
|
25
|
+
/**
|
|
26
|
+
* Quilt catalog URL (e.g., "https://quilt.example.com")
|
|
27
|
+
*/
|
|
28
|
+
quiltCatalog?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Quilt user bucket name for package storage
|
|
31
|
+
*/
|
|
32
|
+
quiltUserBucket?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Quilt database (Athena/Glue) identifier
|
|
35
|
+
*/
|
|
36
|
+
quiltDatabase?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Quilt CloudFormation stack ARN
|
|
39
|
+
*/
|
|
40
|
+
quiltStackArn?: string;
|
|
41
|
+
/**
|
|
42
|
+
* AWS region for Quilt resources
|
|
43
|
+
*/
|
|
44
|
+
quiltRegion?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Benchling tenant identifier
|
|
47
|
+
*/
|
|
48
|
+
benchlingTenant?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Benchling OAuth client ID
|
|
51
|
+
*/
|
|
52
|
+
benchlingClientId?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Benchling OAuth client secret (stored in Secrets Manager in production)
|
|
55
|
+
*/
|
|
56
|
+
benchlingClientSecret?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Benchling app definition ID
|
|
59
|
+
*/
|
|
60
|
+
benchlingAppDefinitionId?: string;
|
|
61
|
+
/**
|
|
62
|
+
* S3 bucket for Benchling package storage
|
|
63
|
+
*/
|
|
64
|
+
benchlingPkgBucket?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Benchling test entry ID (optional, for validation)
|
|
67
|
+
*/
|
|
68
|
+
benchlingTestEntry?: string;
|
|
69
|
+
/**
|
|
70
|
+
* AWS Secrets Manager secret ARN for Benchling credentials
|
|
71
|
+
*/
|
|
72
|
+
benchlingSecretArn?: string;
|
|
73
|
+
/**
|
|
74
|
+
* AWS account ID for CDK deployment
|
|
75
|
+
*/
|
|
76
|
+
cdkAccount?: string;
|
|
77
|
+
/**
|
|
78
|
+
* AWS region for CDK deployment
|
|
79
|
+
*/
|
|
80
|
+
cdkRegion?: string;
|
|
81
|
+
/**
|
|
82
|
+
* AWS profile to use for deployment operations
|
|
83
|
+
*/
|
|
84
|
+
awsProfile?: string;
|
|
85
|
+
/**
|
|
86
|
+
* SQS queue ARN for package creation
|
|
87
|
+
*/
|
|
88
|
+
queueArn?: string;
|
|
89
|
+
/**
|
|
90
|
+
* S3 key prefix for Benchling packages
|
|
91
|
+
*/
|
|
92
|
+
pkgPrefix?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Package metadata key (e.g., "experiment_id")
|
|
95
|
+
*/
|
|
96
|
+
pkgKey?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Logging level (DEBUG, INFO, WARNING, ERROR)
|
|
99
|
+
*/
|
|
100
|
+
logLevel?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Comma-separated IP allowlist for webhook access
|
|
103
|
+
*/
|
|
104
|
+
webhookAllowList?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Enable webhook signature verification
|
|
107
|
+
*/
|
|
108
|
+
enableWebhookVerification?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Create ECR repository flag
|
|
111
|
+
*/
|
|
112
|
+
createEcrRepository?: string;
|
|
113
|
+
/**
|
|
114
|
+
* ECR repository name
|
|
115
|
+
*/
|
|
116
|
+
ecrRepositoryName?: string;
|
|
117
|
+
/**
|
|
118
|
+
* Docker image tag
|
|
119
|
+
*/
|
|
120
|
+
imageTag?: string;
|
|
121
|
+
/**
|
|
122
|
+
* Configuration metadata (optional)
|
|
123
|
+
*/
|
|
124
|
+
_metadata?: ConfigMetadata;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Derived Configuration
|
|
128
|
+
*
|
|
129
|
+
* Configuration values inferred from CLI tools (e.g., quilt3 config)
|
|
130
|
+
* or computed from user configuration.
|
|
131
|
+
*/
|
|
132
|
+
export interface DerivedConfig extends UserConfig {
|
|
133
|
+
/**
|
|
134
|
+
* Catalog URL inferred from quilt3 CLI
|
|
135
|
+
*/
|
|
136
|
+
catalogUrl?: string;
|
|
137
|
+
/**
|
|
138
|
+
* Metadata tracking inference source and timestamp
|
|
139
|
+
*/
|
|
140
|
+
_metadata?: ConfigMetadata & {
|
|
141
|
+
inferredAt?: string;
|
|
142
|
+
inferredFrom?: string;
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Deployment Configuration
|
|
147
|
+
*
|
|
148
|
+
* Configuration artifacts generated during deployment.
|
|
149
|
+
* Contains deployment-specific values like webhook URLs and stack ARNs.
|
|
150
|
+
*/
|
|
151
|
+
export interface DeploymentConfig extends DerivedConfig {
|
|
152
|
+
/**
|
|
153
|
+
* Deployed webhook endpoint URL
|
|
154
|
+
*/
|
|
155
|
+
webhookEndpoint?: string;
|
|
156
|
+
/**
|
|
157
|
+
* Deployed webhook URL (alias for webhookEndpoint)
|
|
158
|
+
*/
|
|
159
|
+
webhookUrl?: string;
|
|
160
|
+
/**
|
|
161
|
+
* CloudFormation stack ARN
|
|
162
|
+
*/
|
|
163
|
+
stackArn?: string;
|
|
164
|
+
/**
|
|
165
|
+
* Deployment timestamp
|
|
166
|
+
*/
|
|
167
|
+
deploymentTimestamp?: string;
|
|
168
|
+
/**
|
|
169
|
+
* ISO timestamp of deployment
|
|
170
|
+
*/
|
|
171
|
+
deployedAt?: string;
|
|
172
|
+
/**
|
|
173
|
+
* Metadata tracking deployment details
|
|
174
|
+
*/
|
|
175
|
+
_metadata?: ConfigMetadata & {
|
|
176
|
+
deployedAt?: string;
|
|
177
|
+
deployedBy?: string;
|
|
178
|
+
stackName?: string;
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Configuration Metadata
|
|
183
|
+
*
|
|
184
|
+
* Tracks configuration provenance, timestamps, and versioning.
|
|
185
|
+
*/
|
|
186
|
+
export interface ConfigMetadata {
|
|
187
|
+
/**
|
|
188
|
+
* ISO timestamp when configuration was saved
|
|
189
|
+
*/
|
|
190
|
+
savedAt?: string;
|
|
191
|
+
/**
|
|
192
|
+
* Source of configuration (e.g., "cli", "wizard", "manual")
|
|
193
|
+
*/
|
|
194
|
+
source?: string;
|
|
195
|
+
/**
|
|
196
|
+
* Configuration version
|
|
197
|
+
*/
|
|
198
|
+
version?: string;
|
|
199
|
+
/**
|
|
200
|
+
* Additional metadata fields
|
|
201
|
+
*/
|
|
202
|
+
[key: string]: string | undefined;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Complete Configuration
|
|
206
|
+
*
|
|
207
|
+
* Merged configuration from all sources (user + derived + deploy).
|
|
208
|
+
*/
|
|
209
|
+
export type CompleteConfig = DeploymentConfig;
|
|
210
|
+
/**
|
|
211
|
+
* Configuration Set
|
|
212
|
+
*
|
|
213
|
+
* Collection of configurations for merging operations.
|
|
214
|
+
*/
|
|
215
|
+
export interface ConfigSet {
|
|
216
|
+
user?: UserConfig;
|
|
217
|
+
derived?: DerivedConfig;
|
|
218
|
+
deploy?: DeploymentConfig;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Configuration Profile
|
|
222
|
+
*
|
|
223
|
+
* Named configuration with metadata for profile management.
|
|
224
|
+
*/
|
|
225
|
+
export interface ConfigProfile {
|
|
226
|
+
/**
|
|
227
|
+
* Profile name (e.g., "default", "dev", "prod")
|
|
228
|
+
*/
|
|
229
|
+
name: ProfileName;
|
|
230
|
+
/**
|
|
231
|
+
* User configuration for this profile
|
|
232
|
+
*/
|
|
233
|
+
user?: UserConfig;
|
|
234
|
+
/**
|
|
235
|
+
* Derived configuration for this profile
|
|
236
|
+
*/
|
|
237
|
+
derived?: DerivedConfig;
|
|
238
|
+
/**
|
|
239
|
+
* Deployment configuration for this profile
|
|
240
|
+
*/
|
|
241
|
+
deploy?: DeploymentConfig;
|
|
242
|
+
/**
|
|
243
|
+
* Profile metadata
|
|
244
|
+
*/
|
|
245
|
+
metadata?: {
|
|
246
|
+
createdAt?: string;
|
|
247
|
+
updatedAt?: string;
|
|
248
|
+
description?: string;
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Configuration Validation Result
|
|
253
|
+
*
|
|
254
|
+
* Result of configuration validation operations.
|
|
255
|
+
*/
|
|
256
|
+
export interface ValidationResult {
|
|
257
|
+
/**
|
|
258
|
+
* Whether the configuration is valid
|
|
259
|
+
*/
|
|
260
|
+
isValid: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* Validation errors (if any)
|
|
263
|
+
*/
|
|
264
|
+
errors: string[];
|
|
265
|
+
/**
|
|
266
|
+
* Validation warnings (non-fatal issues)
|
|
267
|
+
*/
|
|
268
|
+
warnings?: string[];
|
|
269
|
+
/**
|
|
270
|
+
* Additional validation details
|
|
271
|
+
*/
|
|
272
|
+
details?: Record<string, unknown>;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* XDG Configuration Paths
|
|
276
|
+
*
|
|
277
|
+
* File paths for XDG-compliant configuration storage.
|
|
278
|
+
*/
|
|
279
|
+
export interface XDGConfigPaths {
|
|
280
|
+
/**
|
|
281
|
+
* Path to user configuration file
|
|
282
|
+
*/
|
|
283
|
+
userConfig: string;
|
|
284
|
+
/**
|
|
285
|
+
* Path to derived configuration file
|
|
286
|
+
*/
|
|
287
|
+
derivedConfig: string;
|
|
288
|
+
/**
|
|
289
|
+
* Path to deployment configuration file
|
|
290
|
+
*/
|
|
291
|
+
deployConfig: string;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Profile Management Options
|
|
295
|
+
*/
|
|
296
|
+
export interface ProfileOptions {
|
|
297
|
+
/**
|
|
298
|
+
* Base configuration directory (defaults to ~/.config/benchling-webhook)
|
|
299
|
+
*/
|
|
300
|
+
baseDir?: string;
|
|
301
|
+
/**
|
|
302
|
+
* Profile name to use
|
|
303
|
+
*/
|
|
304
|
+
profile?: ProfileName;
|
|
305
|
+
/**
|
|
306
|
+
* Create profile if it doesn't exist
|
|
307
|
+
*/
|
|
308
|
+
createIfMissing?: boolean;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Configuration Read Options
|
|
312
|
+
*/
|
|
313
|
+
export interface ConfigReadOptions {
|
|
314
|
+
/**
|
|
315
|
+
* Configuration type to read
|
|
316
|
+
*/
|
|
317
|
+
type: ConfigType;
|
|
318
|
+
/**
|
|
319
|
+
* Profile name (defaults to "default")
|
|
320
|
+
*/
|
|
321
|
+
profile?: ProfileName;
|
|
322
|
+
/**
|
|
323
|
+
* Throw error if file doesn't exist
|
|
324
|
+
*/
|
|
325
|
+
throwIfMissing?: boolean;
|
|
326
|
+
/**
|
|
327
|
+
* Validate schema after reading
|
|
328
|
+
*/
|
|
329
|
+
validate?: boolean;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Configuration Write Options
|
|
333
|
+
*/
|
|
334
|
+
export interface ConfigWriteOptions {
|
|
335
|
+
/**
|
|
336
|
+
* Configuration type to write
|
|
337
|
+
*/
|
|
338
|
+
type: ConfigType;
|
|
339
|
+
/**
|
|
340
|
+
* Profile name (defaults to "default")
|
|
341
|
+
*/
|
|
342
|
+
profile?: ProfileName;
|
|
343
|
+
/**
|
|
344
|
+
* Create backup before writing
|
|
345
|
+
*/
|
|
346
|
+
backup?: boolean;
|
|
347
|
+
/**
|
|
348
|
+
* Validate schema before writing
|
|
349
|
+
*/
|
|
350
|
+
validate?: boolean;
|
|
351
|
+
/**
|
|
352
|
+
* Add metadata to configuration
|
|
353
|
+
*/
|
|
354
|
+
addMetadata?: boolean;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* AWS Profile Configuration
|
|
358
|
+
*
|
|
359
|
+
* Integration with AWS credentials and profiles.
|
|
360
|
+
*/
|
|
361
|
+
export interface AWSProfileConfig {
|
|
362
|
+
/**
|
|
363
|
+
* AWS profile name from ~/.aws/credentials
|
|
364
|
+
*/
|
|
365
|
+
profileName: string;
|
|
366
|
+
/**
|
|
367
|
+
* AWS region
|
|
368
|
+
*/
|
|
369
|
+
region?: string;
|
|
370
|
+
/**
|
|
371
|
+
* AWS account ID
|
|
372
|
+
*/
|
|
373
|
+
accountId?: string;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Quilt CLI Configuration
|
|
377
|
+
*
|
|
378
|
+
* Configuration inferred from quilt3 CLI.
|
|
379
|
+
*/
|
|
380
|
+
export interface QuiltCLIConfig {
|
|
381
|
+
/**
|
|
382
|
+
* Catalog URL from quilt3 config
|
|
383
|
+
*/
|
|
384
|
+
catalog?: string;
|
|
385
|
+
/**
|
|
386
|
+
* Default bucket from quilt3 config
|
|
387
|
+
*/
|
|
388
|
+
defaultBucket?: string;
|
|
389
|
+
/**
|
|
390
|
+
* AWS region from quilt3 config
|
|
391
|
+
*/
|
|
392
|
+
region?: string;
|
|
393
|
+
/**
|
|
394
|
+
* Registry URL from quilt3 config
|
|
395
|
+
*/
|
|
396
|
+
registryUrl?: string;
|
|
397
|
+
}
|
|
398
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Comprehensive Type Definitions for XDG Configuration System
|
|
4
|
+
*
|
|
5
|
+
* This module defines all TypeScript types and interfaces for the
|
|
6
|
+
* XDG-compliant configuration management system.
|
|
7
|
+
*
|
|
8
|
+
* @module types/config
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../lib/utils/config-loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAmBH,gCAyBC;AAkBD,oDAgCC;AAQD,8CAUC;AA9GD,uDAA6F;AAE7F;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,UAAU;
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../lib/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,8 +57,8 @@ export declare class ConfigResolverError extends Error {
|
|
|
57
57
|
readonly details?: string | undefined;
|
|
58
58
|
constructor(message: string, suggestion?: string | undefined, details?: string | undefined);
|
|
59
59
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
* Format error for CLI/logs with suggestions
|
|
61
|
+
*/
|
|
62
62
|
format(): string;
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
@@ -101,38 +101,38 @@ export declare function resolveAndFetchSecret(client: SecretsManagerClient, regi
|
|
|
101
101
|
export declare class ConfigResolver {
|
|
102
102
|
private cache;
|
|
103
103
|
/**
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
* Resolve complete configuration from AWS
|
|
105
|
+
*
|
|
106
|
+
* @param options - Configuration resolver options
|
|
107
|
+
* @returns Complete resolved configuration
|
|
108
|
+
* @throws ConfigResolverError if resolution fails
|
|
109
|
+
*/
|
|
110
110
|
resolve(options: ConfigResolverOptions): Promise<ResolvedConfig>;
|
|
111
111
|
/**
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
* Validate that required CloudFormation outputs are present
|
|
113
|
+
*
|
|
114
|
+
* @param outputs - Stack outputs
|
|
115
|
+
* @throws ConfigResolverError if required outputs are missing
|
|
116
|
+
*/
|
|
117
117
|
private validateRequiredOutputs;
|
|
118
118
|
/**
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
119
|
+
* Resolve catalog URL from stack outputs
|
|
120
|
+
*
|
|
121
|
+
* @param outputs - Stack outputs
|
|
122
|
+
* @returns Normalized catalog URL (hostname only)
|
|
123
|
+
* @throws ConfigResolverError if catalog URL cannot be determined
|
|
124
|
+
*/
|
|
125
125
|
private resolveCatalogUrl;
|
|
126
126
|
/**
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
* Normalize catalog URL to hostname only (remove protocol and trailing slash)
|
|
128
|
+
*
|
|
129
|
+
* @param url - Catalog URL
|
|
130
|
+
* @returns Normalized hostname
|
|
131
|
+
*/
|
|
132
132
|
private normalizeCatalogUrl;
|
|
133
133
|
/**
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
* Clear cached configuration (for testing only)
|
|
135
|
+
*/
|
|
136
136
|
clearCache(): void;
|
|
137
137
|
}
|
|
138
138
|
//# sourceMappingURL=config-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../../lib/utils/config-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"config-resolver.d.ts","sourceRoot":"","sources":["../../../lib/utils/config-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACH,oBAAoB,EAEvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACH,oBAAoB,EAEvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAEH,KAAK,mBAAmB,EAC3B,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,cAAc;IAE7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAGnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IAExB,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;aAG1B,UAAU,CAAC,EAAE,MAAM;aACnB,OAAO,CAAC,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACH,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,OAAO,CAAC,EAAE,MAAM,YAAA;IAUhC;;KAEC;IACD,MAAM,IAAI,MAAM;CAanB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAqBzD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiCjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAiE9B;AAED;;;;;GAKG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAA+B;IAE5C;;;;;;KAMC;IACK,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAkEtE;;;;;KAKC;IACD,OAAO,CAAC,uBAAuB;IAmB/B;;;;;;KAMC;IACD,OAAO,CAAC,iBAAiB;IA0BzB;;;;;KAKC;IACD,OAAO,CAAC,mBAAmB;IAI3B;;KAEC;IACD,UAAU,IAAI,IAAI;CAGrB"}
|
|
@@ -30,8 +30,8 @@ class ConfigResolverError extends Error {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
* Format error for CLI/logs with suggestions
|
|
34
|
+
*/
|
|
35
35
|
format() {
|
|
36
36
|
let output = `❌ Configuration Error: ${this.message}`;
|
|
37
37
|
if (this.suggestion) {
|
|
@@ -56,7 +56,7 @@ exports.ConfigResolverError = ConfigResolverError;
|
|
|
56
56
|
* // Returns: { region: 'us-east-1', account: '123456789012', stackName: 'QuiltStack', stackId: 'abc-123' }
|
|
57
57
|
*/
|
|
58
58
|
function parseStackArn(arn) {
|
|
59
|
-
const pattern = /^arn:aws:cloudformation:([a-z0-9-]+):(\d{12}):stack\/([
|
|
59
|
+
const pattern = /^arn:aws:cloudformation:([a-z0-9-]+):(\d{12}):stack\/([^/]+)\/(.+)$/;
|
|
60
60
|
const match = arn.match(pattern);
|
|
61
61
|
if (!match) {
|
|
62
62
|
throw new ConfigResolverError("Invalid CloudFormation stack ARN format", "ARN must match: arn:aws:cloudformation:region:account:stack/name/id", `Received: ${arn}`);
|
|
@@ -128,7 +128,7 @@ async function resolveAndFetchSecret(client, region, secretIdentifier) {
|
|
|
128
128
|
const errors = validation.errors
|
|
129
129
|
.map((e) => `${e.field}: ${e.message}`)
|
|
130
130
|
.join("; ");
|
|
131
|
-
throw new ConfigResolverError("Invalid secret structure", errors,
|
|
131
|
+
throw new ConfigResolverError("Invalid secret structure", errors, "Expected format: {\"client_id\":\"...\",\"client_secret\":\"...\",\"tenant\":\"...\"}");
|
|
132
132
|
}
|
|
133
133
|
return data;
|
|
134
134
|
}
|
|
@@ -156,12 +156,12 @@ class ConfigResolver {
|
|
|
156
156
|
this.cache = null;
|
|
157
157
|
}
|
|
158
158
|
/**
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
159
|
+
* Resolve complete configuration from AWS
|
|
160
|
+
*
|
|
161
|
+
* @param options - Configuration resolver options
|
|
162
|
+
* @returns Complete resolved configuration
|
|
163
|
+
* @throws ConfigResolverError if resolution fails
|
|
164
|
+
*/
|
|
165
165
|
async resolve(options) {
|
|
166
166
|
// Return cached config if available
|
|
167
167
|
if (this.cache) {
|
|
@@ -209,11 +209,11 @@ class ConfigResolver {
|
|
|
209
209
|
return config;
|
|
210
210
|
}
|
|
211
211
|
/**
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
212
|
+
* Validate that required CloudFormation outputs are present
|
|
213
|
+
*
|
|
214
|
+
* @param outputs - Stack outputs
|
|
215
|
+
* @throws ConfigResolverError if required outputs are missing
|
|
216
|
+
*/
|
|
217
217
|
validateRequiredOutputs(outputs) {
|
|
218
218
|
const required = ["UserAthenaDatabaseName", "PackagerQueueArn"];
|
|
219
219
|
// UserBucket or BucketName (at least one required)
|
|
@@ -226,12 +226,12 @@ class ConfigResolver {
|
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
/**
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
* Resolve catalog URL from stack outputs
|
|
230
|
+
*
|
|
231
|
+
* @param outputs - Stack outputs
|
|
232
|
+
* @returns Normalized catalog URL (hostname only)
|
|
233
|
+
* @throws ConfigResolverError if catalog URL cannot be determined
|
|
234
|
+
*/
|
|
235
235
|
resolveCatalogUrl(outputs) {
|
|
236
236
|
// Option 1: Direct from Catalog or CatalogDomain output
|
|
237
237
|
if (outputs.Catalog) {
|
|
@@ -250,20 +250,20 @@ class ConfigResolver {
|
|
|
250
250
|
// Invalid URL, fall through to error
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
|
-
throw new ConfigResolverError("Cannot determine catalog URL",
|
|
253
|
+
throw new ConfigResolverError("Cannot determine catalog URL", "Stack must export \"Catalog\", \"CatalogDomain\", or \"ApiGatewayEndpoint\"");
|
|
254
254
|
}
|
|
255
255
|
/**
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
256
|
+
* Normalize catalog URL to hostname only (remove protocol and trailing slash)
|
|
257
|
+
*
|
|
258
|
+
* @param url - Catalog URL
|
|
259
|
+
* @returns Normalized hostname
|
|
260
|
+
*/
|
|
261
261
|
normalizeCatalogUrl(url) {
|
|
262
262
|
return url.replace(/^https?:\/\//, "").replace(/\/$/, "");
|
|
263
263
|
}
|
|
264
264
|
/**
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
* Clear cached configuration (for testing only)
|
|
266
|
+
*/
|
|
267
267
|
clearCache() {
|
|
268
268
|
this.cache = null;
|
|
269
269
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../../lib/utils/config-resolver.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA+GH,sCAqBC;AAUD,kDAoCC;AAWD,sDAqEC;AAhQD,0EAGwC;AACxC,4EAGyC;AACzC,uCAGmB;AAoDnB;;GAEG;AACH,MAAa,mBAAoB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"config-resolver.js","sourceRoot":"","sources":["../../../lib/utils/config-resolver.ts"],"names":[],"mappings":"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"}
|