@quiltdata/benchling-webhook 0.6.3-20251104T170954Z → 0.7.2-20251106T003353Z

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 (141) hide show
  1. package/README.md +166 -5
  2. package/dist/bin/benchling-webhook.d.ts +2 -16
  3. package/dist/bin/benchling-webhook.d.ts.map +1 -1
  4. package/dist/bin/benchling-webhook.js +98 -158
  5. package/dist/bin/benchling-webhook.js.map +1 -1
  6. package/dist/bin/cli.js +96 -8
  7. package/dist/bin/cli.js.map +1 -1
  8. package/dist/bin/{config-profiles.d.ts → commands/config-profiles.d.ts} +10 -9
  9. package/dist/bin/commands/config-profiles.d.ts.map +1 -0
  10. package/dist/bin/{config-profiles.js → commands/config-profiles.js} +110 -102
  11. package/dist/bin/commands/config-profiles.js.map +1 -0
  12. package/dist/bin/commands/create-secret.d.ts.map +1 -0
  13. package/dist/bin/commands/create-secret.js.map +1 -0
  14. package/dist/bin/commands/deploy.d.ts +11 -0
  15. package/dist/bin/commands/deploy.d.ts.map +1 -1
  16. package/dist/bin/commands/deploy.js +65 -110
  17. package/dist/bin/commands/deploy.js.map +1 -1
  18. package/dist/bin/{get-env.d.ts → commands/get-env.d.ts} +1 -1
  19. package/dist/bin/commands/get-env.d.ts.map +1 -0
  20. package/dist/bin/{get-env.js → commands/get-env.js} +2 -2
  21. package/dist/bin/commands/get-env.js.map +1 -0
  22. package/dist/bin/commands/health-check.d.ts +47 -0
  23. package/dist/bin/commands/health-check.d.ts.map +1 -0
  24. package/dist/bin/commands/health-check.js +357 -0
  25. package/dist/bin/commands/health-check.js.map +1 -0
  26. package/dist/bin/commands/infer-quilt-config.d.ts +50 -0
  27. package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -0
  28. package/dist/bin/commands/infer-quilt-config.js +356 -0
  29. package/dist/bin/commands/infer-quilt-config.js.map +1 -0
  30. package/dist/bin/commands/init.d.ts.map +1 -1
  31. package/dist/bin/commands/init.js +2 -32
  32. package/dist/bin/commands/init.js.map +1 -1
  33. package/dist/bin/commands/manifest.d.ts +11 -0
  34. package/dist/bin/commands/manifest.d.ts.map +1 -1
  35. package/dist/bin/commands/manifest.js +22 -8
  36. package/dist/bin/commands/manifest.js.map +1 -1
  37. package/dist/bin/commands/publish.d.ts.map +1 -0
  38. package/dist/bin/{publish.js → commands/publish.js} +2 -2
  39. package/dist/bin/commands/publish.js.map +1 -0
  40. package/dist/bin/commands/setup-profile.d.ts +29 -0
  41. package/dist/bin/commands/setup-profile.d.ts.map +1 -0
  42. package/dist/bin/commands/setup-profile.js +220 -0
  43. package/dist/bin/commands/setup-profile.js.map +1 -0
  44. package/dist/bin/commands/setup-wizard.d.ts +26 -11
  45. package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
  46. package/dist/bin/commands/setup-wizard.js +844 -46
  47. package/dist/bin/commands/setup-wizard.js.map +1 -1
  48. package/dist/{scripts → bin/commands}/sync-secrets.d.ts +6 -1
  49. package/dist/bin/commands/sync-secrets.d.ts.map +1 -0
  50. package/dist/{scripts → bin/commands}/sync-secrets.js +159 -55
  51. package/dist/bin/commands/sync-secrets.js.map +1 -0
  52. package/dist/bin/commands/validate.d.ts.map +1 -1
  53. package/dist/bin/commands/validate.js +2 -12
  54. package/dist/bin/commands/validate.js.map +1 -1
  55. package/dist/lib/alb-api-gateway.d.ts +7 -1
  56. package/dist/lib/alb-api-gateway.d.ts.map +1 -1
  57. package/dist/lib/alb-api-gateway.js +9 -6
  58. package/dist/lib/alb-api-gateway.js.map +1 -1
  59. package/dist/lib/benchling-webhook-stack.d.ts +13 -12
  60. package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
  61. package/dist/lib/benchling-webhook-stack.js +43 -30
  62. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  63. package/dist/lib/configuration-saver.d.ts +4 -16
  64. package/dist/lib/configuration-saver.d.ts.map +1 -1
  65. package/dist/lib/configuration-saver.js +14 -54
  66. package/dist/lib/configuration-saver.js.map +1 -1
  67. package/dist/lib/fargate-service.d.ts +11 -21
  68. package/dist/lib/fargate-service.d.ts.map +1 -1
  69. package/dist/lib/fargate-service.js +79 -176
  70. package/dist/lib/fargate-service.js.map +1 -1
  71. package/dist/lib/types/config.d.ts +591 -224
  72. package/dist/lib/types/config.d.ts.map +1 -1
  73. package/dist/lib/types/config.js +134 -3
  74. package/dist/lib/types/config.js.map +1 -1
  75. package/dist/lib/utils/config.d.ts.map +1 -1
  76. package/dist/lib/utils/config.js.map +1 -1
  77. package/dist/lib/xdg-config.d.ts +222 -106
  78. package/dist/lib/xdg-config.d.ts.map +1 -1
  79. package/dist/lib/xdg-config.js +448 -387
  80. package/dist/lib/xdg-config.js.map +1 -1
  81. package/dist/package.json +16 -13
  82. package/dist/scripts/check-logs.d.ts +12 -0
  83. package/dist/scripts/check-logs.d.ts.map +1 -0
  84. package/dist/{bin → scripts}/check-logs.js +65 -15
  85. package/dist/scripts/check-logs.js.map +1 -0
  86. package/dist/scripts/check-webhook-verification.d.ts +3 -0
  87. package/dist/scripts/check-webhook-verification.d.ts.map +1 -0
  88. package/dist/{bin/test-invalid-signature.js → scripts/check-webhook-verification.js} +1 -1
  89. package/dist/scripts/check-webhook-verification.js.map +1 -0
  90. package/dist/scripts/infer-quilt-config.d.ts +23 -26
  91. package/dist/scripts/infer-quilt-config.d.ts.map +1 -1
  92. package/dist/scripts/infer-quilt-config.js +58 -96
  93. package/dist/scripts/infer-quilt-config.js.map +1 -1
  94. package/dist/scripts/send-event.d.ts.map +1 -0
  95. package/dist/scripts/send-event.js.map +1 -0
  96. package/dist/{bin → scripts}/version.d.ts +3 -1
  97. package/dist/scripts/version.d.ts.map +1 -0
  98. package/dist/{bin → scripts}/version.js +95 -9
  99. package/dist/scripts/version.js.map +1 -0
  100. package/package.json +16 -13
  101. package/dist/bin/check-logs.d.ts +0 -7
  102. package/dist/bin/check-logs.d.ts.map +0 -1
  103. package/dist/bin/check-logs.js.map +0 -1
  104. package/dist/bin/config-profiles.d.ts.map +0 -1
  105. package/dist/bin/config-profiles.js.map +0 -1
  106. package/dist/bin/create-secret.d.ts.map +0 -1
  107. package/dist/bin/create-secret.js.map +0 -1
  108. package/dist/bin/dev-deploy.d.ts +0 -20
  109. package/dist/bin/dev-deploy.d.ts.map +0 -1
  110. package/dist/bin/dev-deploy.js +0 -289
  111. package/dist/bin/dev-deploy.js.map +0 -1
  112. package/dist/bin/get-env.d.ts.map +0 -1
  113. package/dist/bin/get-env.js.map +0 -1
  114. package/dist/bin/publish.d.ts.map +0 -1
  115. package/dist/bin/publish.js.map +0 -1
  116. package/dist/bin/release.d.ts +0 -11
  117. package/dist/bin/release.d.ts.map +0 -1
  118. package/dist/bin/release.js +0 -141
  119. package/dist/bin/release.js.map +0 -1
  120. package/dist/bin/send-event.d.ts.map +0 -1
  121. package/dist/bin/send-event.js.map +0 -1
  122. package/dist/bin/test-invalid-signature.d.ts +0 -3
  123. package/dist/bin/test-invalid-signature.d.ts.map +0 -1
  124. package/dist/bin/test-invalid-signature.js.map +0 -1
  125. package/dist/bin/version.d.ts.map +0 -1
  126. package/dist/bin/version.js.map +0 -1
  127. package/dist/scripts/config-health-check.d.ts +0 -84
  128. package/dist/scripts/config-health-check.d.ts.map +0 -1
  129. package/dist/scripts/config-health-check.js +0 -659
  130. package/dist/scripts/config-health-check.js.map +0 -1
  131. package/dist/scripts/install-wizard.d.ts +0 -34
  132. package/dist/scripts/install-wizard.d.ts.map +0 -1
  133. package/dist/scripts/install-wizard.js +0 -719
  134. package/dist/scripts/install-wizard.js.map +0 -1
  135. package/dist/scripts/sync-secrets.d.ts.map +0 -1
  136. package/dist/scripts/sync-secrets.js.map +0 -1
  137. /package/dist/bin/{create-secret.d.ts → commands/create-secret.d.ts} +0 -0
  138. /package/dist/bin/{create-secret.js → commands/create-secret.js} +0 -0
  139. /package/dist/bin/{publish.d.ts → commands/publish.d.ts} +0 -0
  140. /package/dist/{bin → scripts}/send-event.d.ts +0 -0
  141. /package/dist/{bin → scripts}/send-event.js +0 -0
@@ -48,39 +48,42 @@ const package_json_1 = __importDefault(require("../package.json"));
48
48
  class BenchlingWebhookStack extends cdk.Stack {
49
49
  constructor(scope, id, props) {
50
50
  super(scope, id, props);
51
- // Validate required secrets-only mode parameters
52
- if (!props.quiltStackArn || !props.benchlingSecret) {
53
- throw new Error("Secrets-only mode (v0.6.0+) requires both:\n" +
54
- " - quiltStackArn: CloudFormation stack ARN\n" +
55
- " - benchlingSecret: Secrets Manager secret name\n\n" +
56
- "See: https://github.com/quiltdata/benchling-webhook/issues/156");
51
+ const { config } = props;
52
+ // Validate required configuration fields
53
+ if (!config.quilt.stackArn || !config.benchling.secretArn) {
54
+ throw new Error("Configuration validation failed. Required fields:\n" +
55
+ " - config.quilt.stackArn: CloudFormation stack ARN\n" +
56
+ " - config.benchling.secretArn: Secrets Manager secret ARN\n\n" +
57
+ "Run 'npm run setup' to configure your deployment.");
57
58
  }
58
- console.log("✓ Using secrets-only mode (v0.6.0+)");
59
+ console.log(`Deploying with profile configuration (v${config._metadata.version})`);
60
+ console.log(` Quilt Stack: ${config.quilt.stackArn}`);
61
+ console.log(` Benchling Tenant: ${config.benchling.tenant}`);
62
+ console.log(` Region: ${config.deployment.region}`);
59
63
  // Create CloudFormation parameters for runtime-configurable values
60
- // Parameters can be updated via CloudFormation stack updates
61
- // ===== Secrets-Only Mode Parameters (v0.6.0+) =====
64
+ // These parameters can be updated via CloudFormation stack updates
62
65
  const quiltStackArnParam = new cdk.CfnParameter(this, "QuiltStackARN", {
63
66
  type: "String",
64
67
  description: "ARN of Quilt CloudFormation stack for configuration resolution",
65
- default: props.quiltStackArn,
68
+ default: config.quilt.stackArn,
66
69
  });
67
- const benchlingSecretParam = new cdk.CfnParameter(this, "BenchlingSecret", {
70
+ const benchlingSecretParam = new cdk.CfnParameter(this, "BenchlingSecretARN", {
68
71
  type: "String",
69
- description: "Name/ARN of Secrets Manager secret with Benchling credentials",
70
- default: props.benchlingSecret,
72
+ description: "ARN of Secrets Manager secret with Benchling credentials",
73
+ default: config.benchling.secretArn,
71
74
  });
72
75
  const logLevelParam = new cdk.CfnParameter(this, "LogLevel", {
73
76
  type: "String",
74
- description: "Application log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
75
- default: props.logLevel || "INFO",
76
- allowedValues: ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"],
77
+ description: "Application log level (DEBUG, INFO, WARNING, ERROR)",
78
+ default: config.logging?.level || "INFO",
79
+ allowedValues: ["DEBUG", "INFO", "WARNING", "ERROR"],
77
80
  });
78
81
  const imageTagParam = new cdk.CfnParameter(this, "ImageTag", {
79
82
  type: "String",
80
- description: "Docker image tag to deploy (e.g., latest, 0.5.3, 0.5.3-20251030T123456Z)",
81
- default: props.imageTag || "latest",
83
+ description: "Docker image tag to deploy (e.g., latest, 0.7.0, 0.7.0-20251104T123456Z)",
84
+ default: config.deployment.imageTag || "latest",
82
85
  });
83
- // Use parameter values (which have props as defaults)
86
+ // Use parameter values (which have config as defaults)
84
87
  // This allows runtime updates via CloudFormation
85
88
  const quiltStackArnValue = quiltStackArnParam.valueAsString;
86
89
  const benchlingSecretValue = benchlingSecretParam.valueAsString;
@@ -96,43 +99,44 @@ class BenchlingWebhookStack extends cdk.Stack {
96
99
  // Get or create ECR repository
97
100
  let ecrRepo;
98
101
  let ecrImageUri;
102
+ const repoName = config.deployment.ecrRepository || "quiltdata/benchling";
99
103
  if (props.createEcrRepository) {
100
104
  const newRepo = new ecr_repository_1.EcrRepository(this, "EcrRepository", {
101
- repositoryName: props.ecrRepositoryName || "quiltdata/benchling",
105
+ repositoryName: repoName,
102
106
  publicReadAccess: true,
103
107
  });
104
108
  ecrRepo = newRepo.repository;
105
- ecrImageUri = `${newRepo.repositoryUri}:latest`;
109
+ ecrImageUri = `${newRepo.repositoryUri}:${imageTagValue}`;
106
110
  }
107
111
  else {
108
112
  // Reference existing ECR repository
109
- const repoName = props.ecrRepositoryName || "quiltdata/benchling";
110
113
  ecrRepo = ecr.Repository.fromRepositoryName(this, "ExistingEcrRepository", repoName);
111
- ecrImageUri = `${this.account}.dkr.ecr.${this.region}.amazonaws.com/${repoName}:latest`;
114
+ const account = config.deployment.account || this.account;
115
+ const region = config.deployment.region;
116
+ ecrImageUri = `${account}.dkr.ecr.${region}.amazonaws.com/${repoName}:${imageTagValue}`;
112
117
  }
113
118
  // Create the Fargate service
114
119
  // Use imageTag for stackVersion if it looks like a timestamped dev version
115
- // (e.g., "0.5.3-20251031T000139Z"), otherwise use package.json version
120
+ // (e.g., "0.7.0-20251104T000139Z"), otherwise use package.json version
116
121
  const isDevVersion = imageTagValue.match(/^\d+\.\d+\.\d+-\d{8}T\d{6}Z$/);
117
122
  const stackVersion = isDevVersion ? imageTagValue : package_json_1.default.version;
118
- // Build Fargate Service props - secrets-only mode
123
+ // Build Fargate Service props using new config structure
119
124
  this.fargateService = new fargate_service_1.FargateService(this, "FargateService", {
120
125
  vpc,
121
126
  bucket: this.bucket,
122
- region: this.region,
123
- account: this.account,
127
+ config: config,
124
128
  ecrRepository: ecrRepo,
125
129
  imageTag: imageTagValue,
126
130
  stackVersion: stackVersion,
127
- logLevel: logLevelValue,
128
- // Secrets-only mode: Only 2 required parameters
131
+ // Runtime-configurable parameters
129
132
  quiltStackArn: quiltStackArnValue,
130
133
  benchlingSecret: benchlingSecretValue,
134
+ logLevel: logLevelValue,
131
135
  });
132
136
  // Create API Gateway that routes to the ALB
133
137
  this.api = new alb_api_gateway_1.AlbApiGateway(this, "ApiGateway", {
134
138
  loadBalancer: this.fargateService.loadBalancer,
135
- webhookAllowList: "", // Empty allow list = allow all IPs
139
+ config: config,
136
140
  });
137
141
  // Store webhook endpoint for easy access
138
142
  this.webhookEndpoint = this.api.api.url;
@@ -160,6 +164,15 @@ class BenchlingWebhookStack extends cdk.Stack {
160
164
  value: this.api.logGroup.logGroupName,
161
165
  description: "CloudWatch log group for API Gateway access logs",
162
166
  });
167
+ // Export configuration metadata
168
+ new cdk.CfnOutput(this, "ConfigVersion", {
169
+ value: config._metadata.version,
170
+ description: "Configuration schema version",
171
+ });
172
+ new cdk.CfnOutput(this, "ConfigSource", {
173
+ value: config._metadata.source,
174
+ description: "Configuration source (wizard, manual, cli)",
175
+ });
163
176
  }
164
177
  }
165
178
  exports.BenchlingWebhookStack = BenchlingWebhookStack;
@@ -1 +1 @@
1
- {"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { XDGConfig } from "./xdg-config";
2
+ import { ProfileConfig } from "./types/config";
2
3
  /**
3
4
  * Configuration metadata
4
5
  */
@@ -16,6 +17,7 @@ export interface SaveOptions {
16
17
  source?: string;
17
18
  skipValidation?: boolean;
18
19
  merge?: boolean;
20
+ profile?: string;
19
21
  }
20
22
  /**
21
23
  * Configuration saver for persisting configuration to XDG files
@@ -30,27 +32,13 @@ export declare class ConfigurationSaver {
30
32
  */
31
33
  private static getDefaultXDGConfig;
32
34
  /**
33
- * Save configuration to user config file
35
+ * Save configuration to profile
34
36
  *
35
37
  * @param config - Configuration to save
36
38
  * @param options - Save options
37
39
  * @returns Saved configuration with metadata
38
40
  */
39
- static save(config: Record<string, string | number | boolean>, options?: SaveOptions): Promise<Record<string, string | number | boolean>>;
40
- /**
41
- * Save inferred configuration to derived config file
42
- *
43
- * @param config - Inferred configuration
44
- * @param options - Save options
45
- */
46
- static saveToDerived(config: Record<string, string | number | boolean>, options?: SaveOptions): Promise<void>;
47
- /**
48
- * Save deployment outputs to deployment config file
49
- *
50
- * @param config - Deployment configuration
51
- * @param options - Save options
52
- */
53
- static saveToDeployment(config: Record<string, string | number | boolean>, options?: SaveOptions): Promise<void>;
41
+ static save(config: Partial<ProfileConfig>, options?: SaveOptions): Promise<ProfileConfig>;
54
42
  /**
55
43
  * Create metadata for configuration
56
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-saver.d.ts","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA0B;IAEzD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAQlC;;;;;;OAMG;WACiB,IAAI,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IA8CrD;;;;;OAKG;WACiB,aAAa,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;;OAKG;WACiB,gBAAgB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACjD,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;OAKG;WACW,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc;IAShF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAMzB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAQhC"}
1
+ {"version":3,"file":"configuration-saver.d.ts","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG/C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAA0B;IAEzD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAOlC;;;;;;OAMG;WACiB,IAAI,CACpB,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,EAC9B,OAAO,GAAE,WAAgB,GAC1B,OAAO,CAAC,aAAa,CAAC;IA4CzB;;;;;OAKG;WACW,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,cAAc;IAShF;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IAMzB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;CAQhC"}
@@ -16,28 +16,27 @@ class ConfigurationSaver {
16
16
  static getDefaultXDGConfig() {
17
17
  if (!ConfigurationSaver.defaultXDGConfig) {
18
18
  ConfigurationSaver.defaultXDGConfig = new xdg_config_1.XDGConfig();
19
- ConfigurationSaver.defaultXDGConfig.ensureDirectories();
20
19
  }
21
20
  return ConfigurationSaver.defaultXDGConfig;
22
21
  }
23
22
  /**
24
- * Save configuration to user config file
23
+ * Save configuration to profile
25
24
  *
26
25
  * @param config - Configuration to save
27
26
  * @param options - Save options
28
27
  * @returns Saved configuration with metadata
29
28
  */
30
29
  static async save(config, options = {}) {
31
- const { xdgConfig = ConfigurationSaver.getDefaultXDGConfig(), source = "wizard", skipValidation = false, merge: shouldMerge = false, } = options;
30
+ const { xdgConfig = ConfigurationSaver.getDefaultXDGConfig(), source = "wizard", skipValidation = false, merge: shouldMerge = false, profile = "default", } = options;
32
31
  // Validate configuration if not skipped
33
32
  if (!skipValidation) {
34
33
  ConfigurationSaver.validateConfig(config);
35
34
  }
36
35
  // Merge with existing config if requested
37
36
  let finalConfig = { ...config };
38
- if (shouldMerge) {
37
+ if (shouldMerge && xdgConfig.profileExists(profile)) {
39
38
  try {
40
- const existingConfig = xdgConfig.readConfig("user");
39
+ const existingConfig = xdgConfig.readProfile(profile);
41
40
  finalConfig = (0, lodash_merge_1.default)({}, existingConfig, config);
42
41
  }
43
42
  catch {
@@ -49,55 +48,16 @@ class ConfigurationSaver {
49
48
  const metadata = ConfigurationSaver.getMetadata({ source });
50
49
  const configWithMetadata = {
51
50
  ...finalConfig,
52
- _metadata: metadata,
51
+ _metadata: {
52
+ version: metadata.version || "0.7.0",
53
+ createdAt: finalConfig._metadata?.createdAt || metadata.savedAt,
54
+ updatedAt: metadata.savedAt,
55
+ source: source,
56
+ },
53
57
  };
54
- // Save to user config
55
- xdgConfig.writeConfig("user", configWithMetadata);
56
- // If source indicates inference, also save to derived config
57
- if (source === "quilt-cli" || source === "inference") {
58
- await ConfigurationSaver.saveToDerived(config, {
59
- xdgConfig,
60
- source,
61
- });
62
- }
63
- return finalConfig;
64
- }
65
- /**
66
- * Save inferred configuration to derived config file
67
- *
68
- * @param config - Inferred configuration
69
- * @param options - Save options
70
- */
71
- static async saveToDerived(config, options = {}) {
72
- const { xdgConfig = ConfigurationSaver.getDefaultXDGConfig(), source = "inferred", } = options;
73
- // Add inference metadata
74
- const metadata = ConfigurationSaver.getMetadata({
75
- source,
76
- inferredAt: new Date().toISOString(),
77
- });
78
- const configWithMetadata = {
79
- ...config,
80
- _metadata: metadata,
81
- };
82
- // Save to derived config
83
- xdgConfig.writeConfig("derived", configWithMetadata);
84
- }
85
- /**
86
- * Save deployment outputs to deployment config file
87
- *
88
- * @param config - Deployment configuration
89
- * @param options - Save options
90
- */
91
- static async saveToDeployment(config, options = {}) {
92
- const { xdgConfig = ConfigurationSaver.getDefaultXDGConfig(), source = "deployment", } = options;
93
- // Add deployment metadata
94
- const metadata = ConfigurationSaver.getMetadata({ source });
95
- const configWithMetadata = {
96
- ...config,
97
- _metadata: metadata,
98
- };
99
- // Save to deployment config
100
- xdgConfig.writeConfig("deploy", configWithMetadata);
58
+ // Save to profile
59
+ xdgConfig.writeProfile(profile, configWithMetadata);
60
+ return configWithMetadata;
101
61
  }
102
62
  /**
103
63
  * Create metadata for configuration
@@ -121,7 +81,7 @@ class ConfigurationSaver {
121
81
  static getVersion() {
122
82
  // For now, return a static version
123
83
  // In production, this would read from package.json
124
- return "0.6.0";
84
+ return "0.7.0";
125
85
  }
126
86
  /**
127
87
  * Validate configuration before saving
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-saver.js","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration-saver.js","sourceRoot":"","sources":["../../lib/configuration-saver.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAyC;AAEzC,gEAAiC;AAuBjC;;GAEG;AACH,MAAa,kBAAkB;IAM3B;;OAEG;IACK,MAAM,CAAC,mBAAmB;QAC9B,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;YACvC,kBAAkB,CAAC,gBAAgB,GAAG,IAAI,sBAAS,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,IAAI,CACpB,MAA8B,EAC9B,UAAuB,EAAE;QAEzB,MAAM,EACF,SAAS,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,EACpD,MAAM,GAAG,QAAQ,EACjB,cAAc,GAAG,KAAK,EACtB,KAAK,EAAE,WAAW,GAAG,KAAK,EAC1B,OAAO,GAAG,SAAS,GACtB,GAAG,OAAO,CAAC;QAEZ,wCAAwC;QACxC,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,0CAA0C;QAC1C,IAAI,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,IAAI,WAAW,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC;gBACD,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACtD,WAAW,GAAG,IAAA,sBAAK,EAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACL,iDAAiD;gBACjD,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAChC,CAAC;QACL,CAAC;QAED,eAAe;QACf,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,MAAM,kBAAkB,GAAkB;YACtC,GAAG,WAAW;YACd,SAAS,EAAE;gBACP,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,OAAO;gBACpC,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO;gBAC/D,SAAS,EAAE,QAAQ,CAAC,OAAO;gBAC3B,MAAM,EAAE,MAAqC;aAChD;SACa,CAAC;QAEnB,kBAAkB;QAClB,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAEpD,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,UAAmC,EAAE;QAC3D,OAAO;YACH,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;YACnC,OAAO,EAAE,kBAAkB,CAAC,UAAU,EAAE;YACxC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;SAChE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,UAAU;QACrB,mCAAmC;QACnC,mDAAmD;QACnD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,cAAc,CAAC,MAA8B;QACxD,2BAA2B;QAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACtF,CAAC;QAED,0BAA0B;IAC9B,CAAC;;AA7GL,gDA8GC;AA7GG;;GAEG;AACY,mCAAgB,GAAqB,IAAI,CAAC"}
@@ -5,34 +5,24 @@ import * as elbv2 from "aws-cdk-lib/aws-elasticloadbalancingv2";
5
5
  import * as logs from "aws-cdk-lib/aws-logs";
6
6
  import * as s3 from "aws-cdk-lib/aws-s3";
7
7
  import { Construct } from "constructs";
8
+ import { ProfileConfig } from "./types/config";
9
+ /**
10
+ * Properties for FargateService construct (v0.7.0+)
11
+ *
12
+ * Uses ProfileConfig for structured configuration access.
13
+ * Runtime-configurable parameters (quiltStackArn, benchlingSecret, logLevel)
14
+ * can be overridden via CloudFormation parameters.
15
+ */
8
16
  export interface FargateServiceProps {
9
17
  readonly vpc: ec2.IVpc;
10
18
  readonly bucket: s3.IBucket;
11
- readonly region: string;
12
- readonly account: string;
19
+ readonly config: ProfileConfig;
13
20
  readonly ecrRepository: ecr.IRepository;
14
21
  readonly imageTag?: string;
15
22
  readonly stackVersion?: string;
23
+ readonly quiltStackArn: string;
24
+ readonly benchlingSecret: string;
16
25
  readonly logLevel?: string;
17
- readonly enableWebhookVerification?: string;
18
- readonly quiltStackArn?: string;
19
- readonly benchlingSecret?: string;
20
- readonly queueArn?: string;
21
- readonly prefix?: string;
22
- readonly pkgKey?: string;
23
- readonly benchlingClientId?: string;
24
- readonly benchlingClientSecret?: string;
25
- readonly benchlingTenant?: string;
26
- readonly benchlingAppDefinitionId?: string;
27
- /**
28
- * Consolidated Benchling secrets as JSON string.
29
- * When provided and non-empty, the container will receive BENCHLING_SECRETS environment variable.
30
- * Otherwise, individual environment variables (BENCHLING_TENANT) and secrets (BENCHLING_CLIENT_ID, BENCHLING_CLIENT_SECRET) are used.
31
- */
32
- readonly benchlingSecrets?: string;
33
- readonly quiltCatalog?: string;
34
- readonly quiltDatabase?: string;
35
- readonly webhookAllowList?: string;
36
26
  }
37
27
  export declare class FargateService extends Construct {
38
28
  readonly service: ecs.FargateService;
@@ -1 +1 @@
1
- {"version":3,"file":"fargate-service.d.ts","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAEhE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAG5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAGlC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,qBAAa,cAAe,SAAQ,SAAS;IACzC,SAAgB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,SAAgB,YAAY,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAC5D,SAAgB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrC,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;gBAE7B,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CA0bvE"}
1
+ {"version":3,"file":"fargate-service.d.ts","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAEhE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,SAAS;IACzC,SAAgB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,SAAgB,YAAY,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAC5D,SAAgB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrC,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;gBAE7B,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CAkUvE"}