@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,272 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration Profile Management CLI
|
|
5
|
+
*
|
|
6
|
+
* Provides commands for creating, listing, and managing configuration profiles.
|
|
7
|
+
* Supports AWS profile integration and profile validation.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* npx ts-node bin/config-profiles.ts list
|
|
11
|
+
* npx ts-node bin/config-profiles.ts create <profile-name>
|
|
12
|
+
* npx ts-node bin/config-profiles.ts show <profile-name>
|
|
13
|
+
* npx ts-node bin/config-profiles.ts validate <profile-name>
|
|
14
|
+
*
|
|
15
|
+
* @module bin/config-profiles
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ProfileManager = void 0;
|
|
19
|
+
const xdg_config_1 = require("../lib/xdg-config");
|
|
20
|
+
const commander_1 = require("commander");
|
|
21
|
+
/**
|
|
22
|
+
* Profile Manager
|
|
23
|
+
*
|
|
24
|
+
* Manages configuration profiles with validation and AWS integration.
|
|
25
|
+
*/
|
|
26
|
+
class ProfileManager {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.xdgConfig = new xdg_config_1.XDGConfig();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Lists all available profiles
|
|
32
|
+
*/
|
|
33
|
+
listProfiles() {
|
|
34
|
+
console.log("Available configuration profiles:\n");
|
|
35
|
+
const profiles = this.xdgConfig.listProfiles();
|
|
36
|
+
if (profiles.length === 0) {
|
|
37
|
+
console.log(" No profiles found.");
|
|
38
|
+
console.log("\n Run 'config-profiles create <name>' to create a new profile.");
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
profiles.forEach((profileName) => {
|
|
42
|
+
const exists = this.xdgConfig.profileExists(profileName);
|
|
43
|
+
const status = exists ? "✓" : "✗";
|
|
44
|
+
const marker = profileName === "default" ? " (default)" : "";
|
|
45
|
+
console.log(` ${status} ${profileName}${marker}`);
|
|
46
|
+
// Show configuration status
|
|
47
|
+
if (exists) {
|
|
48
|
+
const profile = this.xdgConfig.loadProfile(profileName);
|
|
49
|
+
const hasUser = profile.user ? "user" : "";
|
|
50
|
+
const hasDerived = profile.derived ? "derived" : "";
|
|
51
|
+
const hasDeploy = profile.deploy ? "deploy" : "";
|
|
52
|
+
const configs = [hasUser, hasDerived, hasDeploy].filter(Boolean).join(", ");
|
|
53
|
+
if (configs) {
|
|
54
|
+
console.log(` Configs: ${configs}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
console.log();
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates a new profile
|
|
62
|
+
*
|
|
63
|
+
* @param profileName - Name of the profile to create
|
|
64
|
+
* @param options - Creation options
|
|
65
|
+
*/
|
|
66
|
+
createProfile(profileName, options = {}) {
|
|
67
|
+
console.log(`Creating profile: ${profileName}\n`);
|
|
68
|
+
// Check if profile already exists
|
|
69
|
+
if (this.xdgConfig.profileExists(profileName)) {
|
|
70
|
+
console.error(`Error: Profile '${profileName}' already exists.`);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
// Ensure directories exist
|
|
74
|
+
this.xdgConfig.ensureProfileDirectories(profileName);
|
|
75
|
+
// Create initial user configuration
|
|
76
|
+
const userConfig = {
|
|
77
|
+
awsProfile: options.awsProfile,
|
|
78
|
+
_metadata: {
|
|
79
|
+
savedAt: new Date().toISOString(),
|
|
80
|
+
source: "cli",
|
|
81
|
+
version: "0.6.0",
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
// Write user configuration
|
|
85
|
+
this.xdgConfig.writeProfileConfig("user", userConfig, profileName);
|
|
86
|
+
const paths = this.xdgConfig.getProfilePaths(profileName);
|
|
87
|
+
console.log(`Profile '${profileName}' created successfully!`);
|
|
88
|
+
console.log("\nConfiguration files:");
|
|
89
|
+
console.log(` User config: ${paths.userConfig}`);
|
|
90
|
+
console.log(` Derived config: ${paths.derivedConfig}`);
|
|
91
|
+
console.log(` Deploy config: ${paths.deployConfig}`);
|
|
92
|
+
console.log();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Shows detailed information about a profile
|
|
96
|
+
*
|
|
97
|
+
* @param profileName - Name of the profile to show
|
|
98
|
+
*/
|
|
99
|
+
showProfile(profileName) {
|
|
100
|
+
if (!this.xdgConfig.profileExists(profileName)) {
|
|
101
|
+
console.error(`Error: Profile '${profileName}' does not exist.`);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
console.log(`Profile: ${profileName}\n`);
|
|
105
|
+
const profile = this.xdgConfig.loadProfile(profileName);
|
|
106
|
+
const paths = this.xdgConfig.getProfilePaths(profileName);
|
|
107
|
+
// Show paths
|
|
108
|
+
console.log("Configuration files:");
|
|
109
|
+
console.log(` User config: ${paths.userConfig}`);
|
|
110
|
+
console.log(` Derived config: ${paths.derivedConfig}`);
|
|
111
|
+
console.log(` Deploy config: ${paths.deployConfig}`);
|
|
112
|
+
console.log();
|
|
113
|
+
// Show user configuration
|
|
114
|
+
if (profile.user) {
|
|
115
|
+
console.log("User Configuration:");
|
|
116
|
+
this.printConfig(profile.user);
|
|
117
|
+
console.log();
|
|
118
|
+
}
|
|
119
|
+
// Show derived configuration
|
|
120
|
+
if (profile.derived) {
|
|
121
|
+
console.log("Derived Configuration:");
|
|
122
|
+
this.printConfig(profile.derived);
|
|
123
|
+
console.log();
|
|
124
|
+
}
|
|
125
|
+
// Show deployment configuration
|
|
126
|
+
if (profile.deploy) {
|
|
127
|
+
console.log("Deployment Configuration:");
|
|
128
|
+
this.printConfig(profile.deploy);
|
|
129
|
+
console.log();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Validates a profile configuration
|
|
134
|
+
*
|
|
135
|
+
* @param profileName - Name of the profile to validate
|
|
136
|
+
*/
|
|
137
|
+
validateProfile(profileName) {
|
|
138
|
+
console.log(`Validating profile: ${profileName}\n`);
|
|
139
|
+
if (!this.xdgConfig.profileExists(profileName)) {
|
|
140
|
+
console.error(`Error: Profile '${profileName}' does not exist.`);
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
const profile = this.xdgConfig.loadProfile(profileName);
|
|
144
|
+
const errors = [];
|
|
145
|
+
const warnings = [];
|
|
146
|
+
// Validate user configuration
|
|
147
|
+
if (!profile.user) {
|
|
148
|
+
errors.push("Missing user configuration");
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// Check required fields
|
|
152
|
+
const required = [
|
|
153
|
+
"benchlingTenant",
|
|
154
|
+
"benchlingClientId",
|
|
155
|
+
"quiltCatalog",
|
|
156
|
+
"quiltUserBucket",
|
|
157
|
+
];
|
|
158
|
+
required.forEach((field) => {
|
|
159
|
+
if (!profile.user[field]) {
|
|
160
|
+
errors.push(`Missing required field in user config: ${field}`);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
// Check AWS profile
|
|
164
|
+
if (!profile.user.awsProfile) {
|
|
165
|
+
warnings.push("No AWS profile specified");
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
// Validate derived configuration
|
|
169
|
+
if (profile.derived) {
|
|
170
|
+
if (!profile.derived.catalogUrl) {
|
|
171
|
+
warnings.push("Derived config missing catalogUrl");
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
warnings.push("No derived configuration found");
|
|
176
|
+
}
|
|
177
|
+
// Report results
|
|
178
|
+
if (errors.length === 0 && warnings.length === 0) {
|
|
179
|
+
console.log("✓ Profile validation passed!");
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
if (errors.length > 0) {
|
|
183
|
+
console.log("Errors:");
|
|
184
|
+
errors.forEach((error) => console.log(` ✗ ${error}`));
|
|
185
|
+
console.log();
|
|
186
|
+
}
|
|
187
|
+
if (warnings.length > 0) {
|
|
188
|
+
console.log("Warnings:");
|
|
189
|
+
warnings.forEach((warning) => console.log(` ⚠ ${warning}`));
|
|
190
|
+
console.log();
|
|
191
|
+
}
|
|
192
|
+
if (errors.length > 0) {
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Prints configuration object in a readable format
|
|
198
|
+
*
|
|
199
|
+
* @param config - Configuration object to print
|
|
200
|
+
*/
|
|
201
|
+
printConfig(config) {
|
|
202
|
+
const entries = Object.entries(config).filter(([key]) => key !== "_metadata");
|
|
203
|
+
if (entries.length === 0) {
|
|
204
|
+
console.log(" (empty)");
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
entries.forEach(([key, value]) => {
|
|
208
|
+
if (key.toLowerCase().includes("secret") && typeof value === "string") {
|
|
209
|
+
// Mask secrets
|
|
210
|
+
console.log(` ${key}: ${value.substring(0, 4)}****`);
|
|
211
|
+
}
|
|
212
|
+
else if (typeof value === "object") {
|
|
213
|
+
console.log(` ${key}: ${JSON.stringify(value, null, 2)}`);
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
console.log(` ${key}: ${value}`);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.ProfileManager = ProfileManager;
|
|
222
|
+
/**
|
|
223
|
+
* Main CLI program
|
|
224
|
+
*/
|
|
225
|
+
function main() {
|
|
226
|
+
const program = new commander_1.Command();
|
|
227
|
+
const manager = new ProfileManager();
|
|
228
|
+
program
|
|
229
|
+
.name("config-profiles")
|
|
230
|
+
.description("Configuration Profile Management for Benchling Webhook")
|
|
231
|
+
.version("0.6.0");
|
|
232
|
+
// List command
|
|
233
|
+
program
|
|
234
|
+
.command("list")
|
|
235
|
+
.description("List all available configuration profiles")
|
|
236
|
+
.action(() => {
|
|
237
|
+
manager.listProfiles();
|
|
238
|
+
});
|
|
239
|
+
// Create command
|
|
240
|
+
program
|
|
241
|
+
.command("create <profile-name>")
|
|
242
|
+
.description("Create a new configuration profile")
|
|
243
|
+
.option("--aws-profile <profile>", "AWS profile to associate with this configuration")
|
|
244
|
+
.option("--description <text>", "Profile description")
|
|
245
|
+
.action((profileName, options) => {
|
|
246
|
+
manager.createProfile(profileName, options);
|
|
247
|
+
});
|
|
248
|
+
// Show command
|
|
249
|
+
program
|
|
250
|
+
.command("show <profile-name>")
|
|
251
|
+
.description("Show detailed information about a profile")
|
|
252
|
+
.action((profileName) => {
|
|
253
|
+
manager.showProfile(profileName);
|
|
254
|
+
});
|
|
255
|
+
// Validate command
|
|
256
|
+
program
|
|
257
|
+
.command("validate <profile-name>")
|
|
258
|
+
.description("Validate a profile configuration")
|
|
259
|
+
.action((profileName) => {
|
|
260
|
+
manager.validateProfile(profileName);
|
|
261
|
+
});
|
|
262
|
+
program.parse(process.argv);
|
|
263
|
+
// Show help if no command provided
|
|
264
|
+
if (!process.argv.slice(2).length) {
|
|
265
|
+
program.outputHelp();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// Run CLI
|
|
269
|
+
if (require.main === module) {
|
|
270
|
+
main();
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=config-profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-profiles.js","sourceRoot":"","sources":["../../bin/config-profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
* Create or update Benchling webhook secret in AWS Secrets Manager
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
|
+
* npm run config
|
|
6
7
|
* npm run config -- --secret-name benchling-webhook-dev --region us-east-1
|
|
7
8
|
* npm run config -- --secret-name benchling-webhook-prod --region us-east-1 --env-file .env.prod
|
|
8
9
|
*
|
|
10
|
+
* Default secret name: @quiltdata/benchling-webhook (package name)
|
|
11
|
+
*
|
|
9
12
|
* Required parameters (from .env file or environment):
|
|
10
13
|
* BENCHLING_TENANT
|
|
11
14
|
* BENCHLING_CLIENT_ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-secret.d.ts","sourceRoot":"","sources":["../../bin/create-secret.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"create-secret.d.ts","sourceRoot":"","sources":["../../bin/create-secret.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
|
@@ -4,9 +4,12 @@
|
|
|
4
4
|
* Create or update Benchling webhook secret in AWS Secrets Manager
|
|
5
5
|
*
|
|
6
6
|
* Usage:
|
|
7
|
+
* npm run config
|
|
7
8
|
* npm run config -- --secret-name benchling-webhook-dev --region us-east-1
|
|
8
9
|
* npm run config -- --secret-name benchling-webhook-prod --region us-east-1 --env-file .env.prod
|
|
9
10
|
*
|
|
11
|
+
* Default secret name: @quiltdata/benchling-webhook (package name)
|
|
12
|
+
*
|
|
10
13
|
* Required parameters (from .env file or environment):
|
|
11
14
|
* BENCHLING_TENANT
|
|
12
15
|
* BENCHLING_CLIENT_ID
|
|
@@ -63,20 +66,20 @@ const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
|
63
66
|
const fs = __importStar(require("fs"));
|
|
64
67
|
const chalk_1 = __importDefault(require("chalk"));
|
|
65
68
|
const REQUIRED_PARAMS = [
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
"BENCHLING_TENANT",
|
|
70
|
+
"BENCHLING_CLIENT_ID",
|
|
71
|
+
"BENCHLING_CLIENT_SECRET",
|
|
72
|
+
"BENCHLING_APP_DEFINITION_ID",
|
|
73
|
+
"BENCHLING_PKG_PREFIX",
|
|
74
|
+
"BENCHLING_PKG_KEY",
|
|
75
|
+
"BENCHLING_USER_BUCKET",
|
|
76
|
+
"BENCHLING_LOG_LEVEL",
|
|
77
|
+
"BENCHLING_ENABLE_WEBHOOK_VERIFICATION",
|
|
78
|
+
"BENCHLING_WEBHOOK_ALLOW_LIST",
|
|
76
79
|
];
|
|
77
|
-
const VALID_LOG_LEVELS = [
|
|
80
|
+
const VALID_LOG_LEVELS = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"];
|
|
78
81
|
function loadEnvFile(envFile) {
|
|
79
|
-
const envPath = envFile ||
|
|
82
|
+
const envPath = envFile || ".env";
|
|
80
83
|
if (!fs.existsSync(envPath)) {
|
|
81
84
|
console.log(chalk_1.default.yellow(`ℹ️ No .env file found at ${envPath}, using environment variables only`));
|
|
82
85
|
return;
|
|
@@ -89,17 +92,17 @@ function validateParameters(params) {
|
|
|
89
92
|
// WEBHOOK_ALLOW_LIST can be empty string (no restrictions)
|
|
90
93
|
// All others must be non-empty
|
|
91
94
|
const missing = REQUIRED_PARAMS.filter(param => {
|
|
92
|
-
if (param ===
|
|
95
|
+
if (param === "BENCHLING_WEBHOOK_ALLOW_LIST") {
|
|
93
96
|
return params[param] === undefined; // Only fail if undefined, not empty string
|
|
94
97
|
}
|
|
95
98
|
return !params[param];
|
|
96
99
|
});
|
|
97
100
|
if (missing.length > 0) {
|
|
98
|
-
console.error(chalk_1.default.red(`❌ Missing required parameters: ${missing.join(
|
|
99
|
-
console.log(chalk_1.default.yellow(
|
|
101
|
+
console.error(chalk_1.default.red(`❌ Missing required parameters: ${missing.join(", ")}`));
|
|
102
|
+
console.log(chalk_1.default.yellow("\nExpected parameters (from .env or environment):"));
|
|
100
103
|
REQUIRED_PARAMS.forEach(param => {
|
|
101
104
|
const value = params[param];
|
|
102
|
-
const status = value !== undefined ?
|
|
105
|
+
const status = value !== undefined ? "✓" : "✗";
|
|
103
106
|
console.log(chalk_1.default.yellow(` ${param}=${status}`));
|
|
104
107
|
});
|
|
105
108
|
process.exit(1);
|
|
@@ -108,14 +111,14 @@ function validateParameters(params) {
|
|
|
108
111
|
const logLevel = params.BENCHLING_LOG_LEVEL.toUpperCase();
|
|
109
112
|
if (!VALID_LOG_LEVELS.includes(logLevel)) {
|
|
110
113
|
console.error(chalk_1.default.red(`❌ Invalid log level: ${params.BENCHLING_LOG_LEVEL}`));
|
|
111
|
-
console.log(chalk_1.default.yellow(`Valid levels: ${VALID_LOG_LEVELS.join(
|
|
114
|
+
console.log(chalk_1.default.yellow(`Valid levels: ${VALID_LOG_LEVELS.join(", ")}`));
|
|
112
115
|
process.exit(1);
|
|
113
116
|
}
|
|
114
117
|
// Validate boolean
|
|
115
118
|
const verification = params.BENCHLING_ENABLE_WEBHOOK_VERIFICATION.toLowerCase();
|
|
116
|
-
if (![
|
|
119
|
+
if (!["true", "false", "1", "0"].includes(verification)) {
|
|
117
120
|
console.error(chalk_1.default.red(`❌ Invalid boolean value for BENCHLING_ENABLE_WEBHOOK_VERIFICATION: ${params.BENCHLING_ENABLE_WEBHOOK_VERIFICATION}`));
|
|
118
|
-
console.log(chalk_1.default.yellow(
|
|
121
|
+
console.log(chalk_1.default.yellow("Valid values: true, false, 1, 0"));
|
|
119
122
|
process.exit(1);
|
|
120
123
|
}
|
|
121
124
|
// Build secret data (convert SCREAMING_SNAKE_CASE to snake_case)
|
|
@@ -148,10 +151,10 @@ async function createOrUpdateSecret(secretName, region, secretData, dryRun) {
|
|
|
148
151
|
const client = new client_secrets_manager_1.SecretsManagerClient({ region });
|
|
149
152
|
const secretString = JSON.stringify(secretData, null, 2);
|
|
150
153
|
if (dryRun) {
|
|
151
|
-
console.log(chalk_1.default.blue(
|
|
152
|
-
console.log(chalk_1.default.cyan(
|
|
153
|
-
console.log(chalk_1.default.cyan(
|
|
154
|
-
console.log(chalk_1.default.cyan(
|
|
154
|
+
console.log(chalk_1.default.blue("\n🔍 DRY RUN MODE - No changes will be made\n"));
|
|
155
|
+
console.log(chalk_1.default.cyan("Secret Name:"), secretName);
|
|
156
|
+
console.log(chalk_1.default.cyan("Region:"), region);
|
|
157
|
+
console.log(chalk_1.default.cyan("Secret Content:"));
|
|
155
158
|
console.log(chalk_1.default.gray(secretString));
|
|
156
159
|
return;
|
|
157
160
|
}
|
|
@@ -162,36 +165,36 @@ async function createOrUpdateSecret(secretName, region, secretData, dryRun) {
|
|
|
162
165
|
SecretId: secretName,
|
|
163
166
|
SecretString: secretString,
|
|
164
167
|
}));
|
|
165
|
-
console.log(chalk_1.default.green(
|
|
168
|
+
console.log(chalk_1.default.green("✅ Secret updated successfully"));
|
|
166
169
|
}
|
|
167
170
|
else {
|
|
168
171
|
console.log(chalk_1.default.blue(`🆕 Creating new secret: ${secretName}`));
|
|
169
172
|
const result = await client.send(new client_secrets_manager_1.CreateSecretCommand({
|
|
170
173
|
Name: secretName,
|
|
171
|
-
Description:
|
|
174
|
+
Description: "Benchling webhook runtime configuration (10 parameters)",
|
|
172
175
|
SecretString: secretString,
|
|
173
176
|
}));
|
|
174
|
-
console.log(chalk_1.default.green(
|
|
177
|
+
console.log(chalk_1.default.green("✅ Secret created successfully"));
|
|
175
178
|
console.log(chalk_1.default.cyan(`ARN: ${result.ARN}`));
|
|
176
179
|
}
|
|
177
|
-
console.log(chalk_1.default.green(`\n✨ Secret ${exists ?
|
|
178
|
-
console.log(chalk_1.default.yellow(
|
|
179
|
-
console.log(chalk_1.default.gray(
|
|
180
|
-
console.log(chalk_1.default.gray(
|
|
180
|
+
console.log(chalk_1.default.green(`\n✨ Secret ${exists ? "updated" : "created"}: ${secretName}`));
|
|
181
|
+
console.log(chalk_1.default.yellow("\nTo use this secret in deployment:"));
|
|
182
|
+
console.log(chalk_1.default.gray(" npm run cli -- deploy \\"));
|
|
183
|
+
console.log(chalk_1.default.gray(" --quilt-stack-arn <your-quilt-stack-arn> \\"));
|
|
181
184
|
console.log(chalk_1.default.gray(` --benchling-secret ${secretName}`));
|
|
182
185
|
}
|
|
183
186
|
async function main() {
|
|
184
187
|
const program = new commander_1.Command();
|
|
185
188
|
program
|
|
186
|
-
.name(
|
|
187
|
-
.description(
|
|
188
|
-
.
|
|
189
|
-
.option(
|
|
190
|
-
.option(
|
|
191
|
-
.option(
|
|
189
|
+
.name("npm run config")
|
|
190
|
+
.description("Create or update Benchling webhook secret in AWS Secrets Manager")
|
|
191
|
+
.option("-s, --secret-name <name>", "Secret name (defaults to package name)", "@quiltdata/benchling-webhook")
|
|
192
|
+
.option("-r, --region <region>", "AWS region", "us-east-1")
|
|
193
|
+
.option("-e, --env-file <path>", ".env file path", ".env")
|
|
194
|
+
.option("-d, --dry-run", "Show what would be created without making changes", false)
|
|
192
195
|
.parse(process.argv);
|
|
193
196
|
const options = program.opts();
|
|
194
|
-
console.log(chalk_1.default.bold.blue(
|
|
197
|
+
console.log(chalk_1.default.bold.blue("\n🔐 Benchling Webhook Secret Configuration\n"));
|
|
195
198
|
// Load environment
|
|
196
199
|
loadEnvFile(options.envFile);
|
|
197
200
|
// Gather parameters from environment
|
|
@@ -199,37 +202,37 @@ async function main() {
|
|
|
199
202
|
REQUIRED_PARAMS.forEach(param => {
|
|
200
203
|
const value = process.env[param];
|
|
201
204
|
// Special handling for WEBHOOK_ALLOW_LIST - allow empty string
|
|
202
|
-
if (param ===
|
|
203
|
-
params[param] =
|
|
205
|
+
if (param === "BENCHLING_WEBHOOK_ALLOW_LIST" && value === undefined) {
|
|
206
|
+
params[param] = ""; // Default to empty string for allowlist
|
|
204
207
|
}
|
|
205
208
|
else {
|
|
206
|
-
params[param] = value ||
|
|
209
|
+
params[param] = value || "";
|
|
207
210
|
}
|
|
208
211
|
});
|
|
209
212
|
// Validate and build secret data
|
|
210
213
|
const secretData = validateParameters(params);
|
|
211
|
-
console.log(chalk_1.default.green(
|
|
212
|
-
console.log(chalk_1.default.blue(
|
|
214
|
+
console.log(chalk_1.default.green("\n✓ All parameters validated"));
|
|
215
|
+
console.log(chalk_1.default.blue("\nParameters to be stored in secret:"));
|
|
213
216
|
console.log(chalk_1.default.gray(` tenant: ${secretData.tenant}`));
|
|
214
217
|
console.log(chalk_1.default.gray(` client_id: ${secretData.client_id.substring(0, 4)}***`));
|
|
215
|
-
console.log(chalk_1.default.gray(
|
|
218
|
+
console.log(chalk_1.default.gray(" client_secret: ***"));
|
|
216
219
|
console.log(chalk_1.default.gray(` app_definition_id: ${secretData.app_definition_id}`));
|
|
217
220
|
console.log(chalk_1.default.gray(` pkg_prefix: ${secretData.pkg_prefix}`));
|
|
218
221
|
console.log(chalk_1.default.gray(` pkg_key: ${secretData.pkg_key}`));
|
|
219
222
|
console.log(chalk_1.default.gray(` user_bucket: ${secretData.user_bucket}`));
|
|
220
223
|
console.log(chalk_1.default.gray(` log_level: ${secretData.log_level}`));
|
|
221
224
|
console.log(chalk_1.default.gray(` enable_webhook_verification: ${secretData.enable_webhook_verification}`));
|
|
222
|
-
console.log(chalk_1.default.gray(` webhook_allow_list: ${secretData.webhook_allow_list ||
|
|
225
|
+
console.log(chalk_1.default.gray(` webhook_allow_list: ${secretData.webhook_allow_list || "(empty)"}`));
|
|
223
226
|
// Create or update secret
|
|
224
227
|
await createOrUpdateSecret(options.secretName, options.region, secretData, options.dryRun);
|
|
225
228
|
}
|
|
226
229
|
main().catch(error => {
|
|
227
230
|
console.error(chalk_1.default.red(`\n❌ Error: ${error.message}`));
|
|
228
|
-
if (error.code ===
|
|
229
|
-
console.log(chalk_1.default.yellow(
|
|
231
|
+
if (error.code === "ResourceNotFoundException") {
|
|
232
|
+
console.log(chalk_1.default.yellow("\nMake sure the AWS region is correct and you have necessary permissions."));
|
|
230
233
|
}
|
|
231
|
-
else if (error.name ===
|
|
232
|
-
console.log(chalk_1.default.yellow(
|
|
234
|
+
else if (error.name === "CredentialsProviderError") {
|
|
235
|
+
console.log(chalk_1.default.yellow("\nAWS credentials not found. Please configure AWS CLI or set environment variables."));
|
|
233
236
|
}
|
|
234
237
|
process.exit(1);
|
|
235
238
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-secret.js","sourceRoot":"","sources":["../../bin/create-secret.ts"],"names":[],"mappings":";;AAEA
|
|
1
|
+
{"version":3,"file":"create-secret.js","sourceRoot":"","sources":["../../bin/create-secret.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchling credentials for authentication
|
|
3
|
+
*/
|
|
4
|
+
export interface BenchlingCredentials {
|
|
5
|
+
tenant: string;
|
|
6
|
+
clientId: string;
|
|
7
|
+
clientSecret: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Validation result from Benchling authentication
|
|
11
|
+
*/
|
|
12
|
+
export interface ValidationResult {
|
|
13
|
+
isValid: boolean;
|
|
14
|
+
hasRequiredPermissions?: boolean;
|
|
15
|
+
errors: string[];
|
|
16
|
+
warnings?: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Benchling authentication validator
|
|
20
|
+
*
|
|
21
|
+
* Validates Benchling credentials by attempting OAuth authentication
|
|
22
|
+
* and checking required permissions.
|
|
23
|
+
*/
|
|
24
|
+
export declare class BenchlingAuthValidator {
|
|
25
|
+
/**
|
|
26
|
+
* Required OAuth scopes for the webhook integration
|
|
27
|
+
*/
|
|
28
|
+
private static readonly REQUIRED_SCOPES;
|
|
29
|
+
/**
|
|
30
|
+
* Validate Benchling credentials
|
|
31
|
+
*
|
|
32
|
+
* @param credentials - Benchling credentials to validate
|
|
33
|
+
* @returns Validation result with errors and warnings
|
|
34
|
+
*/
|
|
35
|
+
static validate(credentials: BenchlingCredentials): Promise<ValidationResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Validate tenant format
|
|
38
|
+
*
|
|
39
|
+
* @param tenant - Benchling tenant name
|
|
40
|
+
* @returns True if tenant format is valid
|
|
41
|
+
*/
|
|
42
|
+
static validateTenant(tenant: string): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Validate credentials completeness
|
|
45
|
+
*
|
|
46
|
+
* @param credentials - Credentials to validate
|
|
47
|
+
* @returns True if all required fields are present
|
|
48
|
+
*/
|
|
49
|
+
static validateCredentials(credentials: BenchlingCredentials): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Authenticate with Benchling OAuth API
|
|
52
|
+
*
|
|
53
|
+
* @param credentials - Benchling credentials
|
|
54
|
+
* @returns Token response from Benchling
|
|
55
|
+
*/
|
|
56
|
+
private static authenticate;
|
|
57
|
+
/**
|
|
58
|
+
* Check if OAuth scopes include required permissions
|
|
59
|
+
*
|
|
60
|
+
* @param scope - OAuth scope string
|
|
61
|
+
* @returns True if all required scopes are present
|
|
62
|
+
*/
|
|
63
|
+
private static checkPermissions;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=benchling-auth-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchling-auth-validator.d.ts","sourceRoot":"","sources":["../../lib/benchling-auth-validator.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAWD;;;;;GAKG;AACH,qBAAa,sBAAsB;IAC/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAE5D;;;;;OAKG;WACiB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqE1F;;;;;OAKG;WACiB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAapE;;;;;OAKG;WACW,mBAAmB,CAAC,WAAW,EAAE,oBAAoB,GAAG,OAAO;IAW7E;;;;;OAKG;mBACkB,YAAY;IAqDjC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAMlC"}
|