@quiltdata/benchling-webhook 0.5.4 → 0.6.1-20251104T043302Z
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 +295 -12
- 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 +12 -22
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cdk-dev.js +59 -3
- package/dist/bin/cli.js +27 -9
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts +6 -2
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +151 -90
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/commands/setup-wizard.d.ts +22 -0
- package/dist/bin/commands/setup-wizard.d.ts.map +1 -0
- package/dist/bin/commands/setup-wizard.js +47 -0
- package/dist/bin/commands/setup-wizard.js.map +1 -0
- 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 +25 -0
- package/dist/bin/create-secret.d.ts.map +1 -0
- package/dist/bin/create-secret.js +239 -0
- package/dist/bin/create-secret.js.map +1 -0
- 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 +13 -10
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +25 -69
- 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/fargate-service.d.ts +18 -9
- package/dist/lib/fargate-service.d.ts.map +1 -1
- package/dist/lib/fargate-service.js +177 -61
- package/dist/lib/fargate-service.js.map +1 -1
- 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.d.ts +48 -0
- package/dist/lib/utils/config-loader.d.ts.map +1 -0
- package/dist/lib/utils/config-loader.js +109 -0
- package/dist/lib/utils/config-loader.js.map +1 -0
- package/dist/lib/utils/config-resolver.d.ts +138 -0
- package/dist/lib/utils/config-resolver.d.ts.map +1 -0
- package/dist/lib/utils/config-resolver.js +272 -0
- package/dist/lib/utils/config-resolver.js.map +1 -0
- package/dist/lib/utils/config.d.ts +50 -0
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js +86 -0
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/utils/secrets.d.ts +174 -0
- package/dist/lib/utils/secrets.d.ts.map +1 -0
- package/dist/lib/utils/secrets.js +351 -0
- package/dist/lib/utils/secrets.js.map +1 -0
- 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 +34 -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 +34 -26
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigurationValidator = void 0;
|
|
4
|
+
const benchling_auth_validator_1 = require("./benchling-auth-validator");
|
|
5
|
+
const s3_bucket_validator_1 = require("./s3-bucket-validator");
|
|
6
|
+
/**
|
|
7
|
+
* Comprehensive configuration validator
|
|
8
|
+
*
|
|
9
|
+
* Combines all validation checks (Benchling + S3) and provides
|
|
10
|
+
* comprehensive validation results with aggregated errors.
|
|
11
|
+
*/
|
|
12
|
+
class ConfigurationValidator {
|
|
13
|
+
/**
|
|
14
|
+
* Validate entire configuration
|
|
15
|
+
*
|
|
16
|
+
* @param config - Configuration to validate
|
|
17
|
+
* @param options - Validation options
|
|
18
|
+
* @returns Comprehensive validation result
|
|
19
|
+
*/
|
|
20
|
+
static async validate(config, options = {}) {
|
|
21
|
+
const errors = [];
|
|
22
|
+
const warnings = [];
|
|
23
|
+
// Check required fields
|
|
24
|
+
const missingFields = ConfigurationValidator.checkRequiredFields(config);
|
|
25
|
+
if (missingFields.length > 0) {
|
|
26
|
+
errors.push(`Missing required fields: ${missingFields.join(", ")}`);
|
|
27
|
+
}
|
|
28
|
+
// Validate catalog URL format
|
|
29
|
+
if (config.catalogUrl && !ConfigurationValidator.validateCatalogUrl(config.catalogUrl)) {
|
|
30
|
+
errors.push("Invalid catalog URL");
|
|
31
|
+
}
|
|
32
|
+
else if (!config.catalogUrl) {
|
|
33
|
+
errors.push("Invalid catalog URL");
|
|
34
|
+
}
|
|
35
|
+
// If basic validation fails, return early
|
|
36
|
+
if (errors.length > 0 && (options.skipBenchlingValidation || options.skipS3Validation)) {
|
|
37
|
+
return {
|
|
38
|
+
isValid: false,
|
|
39
|
+
errors,
|
|
40
|
+
warnings: warnings.length > 0 ? warnings : undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// Validate Benchling authentication
|
|
44
|
+
if (!options.skipBenchlingValidation && config.benchlingTenant && config.benchlingClientId && config.benchlingClientSecret) {
|
|
45
|
+
try {
|
|
46
|
+
const benchlingCredentials = {
|
|
47
|
+
tenant: config.benchlingTenant,
|
|
48
|
+
clientId: config.benchlingClientId,
|
|
49
|
+
clientSecret: config.benchlingClientSecret,
|
|
50
|
+
};
|
|
51
|
+
const benchlingResult = await benchling_auth_validator_1.BenchlingAuthValidator.validate(benchlingCredentials);
|
|
52
|
+
if (!benchlingResult.isValid) {
|
|
53
|
+
errors.push(...benchlingResult.errors);
|
|
54
|
+
}
|
|
55
|
+
if (benchlingResult.warnings) {
|
|
56
|
+
warnings.push(...benchlingResult.warnings);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (error instanceof Error) {
|
|
61
|
+
errors.push(`Benchling validation failed: ${error.message}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Validate S3 bucket access
|
|
66
|
+
if (!options.skipS3Validation && config.quiltUserBucket && config.quiltRegion) {
|
|
67
|
+
try {
|
|
68
|
+
const s3Config = {
|
|
69
|
+
bucketName: config.quiltUserBucket,
|
|
70
|
+
region: config.quiltRegion,
|
|
71
|
+
};
|
|
72
|
+
const s3Result = await s3_bucket_validator_1.S3BucketValidator.validate(s3Config);
|
|
73
|
+
if (!s3Result.hasAccess) {
|
|
74
|
+
errors.push(...s3Result.errors);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error instanceof Error) {
|
|
79
|
+
errors.push(`S3 validation failed: ${error.message}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
isValid: errors.length === 0,
|
|
85
|
+
errors,
|
|
86
|
+
warnings: warnings.length > 0 ? warnings : undefined,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Validate catalog URL format
|
|
91
|
+
*
|
|
92
|
+
* @param catalogUrl - Catalog URL to validate
|
|
93
|
+
* @returns True if URL format is valid
|
|
94
|
+
*/
|
|
95
|
+
static validateCatalogUrl(catalogUrl) {
|
|
96
|
+
if (!catalogUrl || catalogUrl.trim() === "") {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const url = new URL(catalogUrl);
|
|
101
|
+
return url.protocol === "http:" || url.protocol === "https:";
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Check for missing required fields
|
|
109
|
+
*
|
|
110
|
+
* @param config - Configuration to check
|
|
111
|
+
* @returns Array of missing field names
|
|
112
|
+
*/
|
|
113
|
+
static checkRequiredFields(config) {
|
|
114
|
+
const missing = [];
|
|
115
|
+
for (const field of ConfigurationValidator.REQUIRED_FIELDS) {
|
|
116
|
+
if (!config[field] || config[field]?.trim() === "") {
|
|
117
|
+
missing.push(field);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return missing;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.ConfigurationValidator = ConfigurationValidator;
|
|
124
|
+
/**
|
|
125
|
+
* Required configuration fields
|
|
126
|
+
*/
|
|
127
|
+
ConfigurationValidator.REQUIRED_FIELDS = [
|
|
128
|
+
"catalogUrl",
|
|
129
|
+
"benchlingTenant",
|
|
130
|
+
"benchlingClientId",
|
|
131
|
+
"benchlingClientSecret",
|
|
132
|
+
"benchlingAppDefinitionId",
|
|
133
|
+
"quiltUserBucket",
|
|
134
|
+
"quiltRegion",
|
|
135
|
+
];
|
|
136
|
+
//# sourceMappingURL=configuration-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-validator.js","sourceRoot":"","sources":["../../lib/configuration-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration wizard options
|
|
3
|
+
*/
|
|
4
|
+
export interface WizardOptions {
|
|
5
|
+
partialConfig?: Record<string, string | number | boolean>;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Interactive configuration wizard for completing missing configuration details
|
|
9
|
+
*/
|
|
10
|
+
export declare class ConfigurationWizard {
|
|
11
|
+
/**
|
|
12
|
+
* Required configuration fields
|
|
13
|
+
*/
|
|
14
|
+
private static readonly REQUIRED_FIELDS;
|
|
15
|
+
/**
|
|
16
|
+
* Optional configuration fields
|
|
17
|
+
*/
|
|
18
|
+
private static readonly OPTIONAL_FIELDS;
|
|
19
|
+
/**
|
|
20
|
+
* Run the configuration wizard
|
|
21
|
+
*/
|
|
22
|
+
static run(options: WizardOptions): Promise<Record<string, string | number | boolean>>;
|
|
23
|
+
/**
|
|
24
|
+
* Get missing required fields from partial configuration
|
|
25
|
+
*/
|
|
26
|
+
static getMissingFields(partialConfig: Record<string, string | number | boolean | undefined>): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Create inquirer questions for missing fields
|
|
29
|
+
*/
|
|
30
|
+
private static createQuestions;
|
|
31
|
+
/**
|
|
32
|
+
* Validate answers after prompting
|
|
33
|
+
*/
|
|
34
|
+
private static validateAnswers;
|
|
35
|
+
/**
|
|
36
|
+
* Validate Benchling tenant format
|
|
37
|
+
*/
|
|
38
|
+
static validateTenant(value: string): boolean | string;
|
|
39
|
+
/**
|
|
40
|
+
* Validate Benchling client ID format
|
|
41
|
+
*/
|
|
42
|
+
static validateClientId(value: string): boolean | string;
|
|
43
|
+
/**
|
|
44
|
+
* Validate Benchling client secret format
|
|
45
|
+
*/
|
|
46
|
+
static validateClientSecret(value: string): boolean | string;
|
|
47
|
+
/**
|
|
48
|
+
* Validate Benchling app definition ID format
|
|
49
|
+
*/
|
|
50
|
+
static validateAppDefinitionId(value: string): boolean | string;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=configuration-wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-wizard.d.ts","sourceRoot":"","sources":["../../lib/configuration-wizard.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC7D;AAaD;;GAEG;AACH,qBAAa,mBAAmB;IAC5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAyBrC;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAOrC;IAEF;;OAEG;WACiB,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAwCnG;;OAEG;WACW,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE;IAY9G;;OAEG;IAEH,OAAO,CAAC,MAAM,CAAC,eAAe;IA+B9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAuB9B;;OAEG;WACW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAO7D;;OAEG;WACW,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAO/D;;OAEG;WACW,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAUnE;;OAEG;WACW,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;CAMzE"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ConfigurationWizard = void 0;
|
|
7
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
+
/**
|
|
9
|
+
* Interactive configuration wizard for completing missing configuration details
|
|
10
|
+
*/
|
|
11
|
+
class ConfigurationWizard {
|
|
12
|
+
/**
|
|
13
|
+
* Run the configuration wizard
|
|
14
|
+
*/
|
|
15
|
+
static async run(options) {
|
|
16
|
+
const { partialConfig = {} } = options;
|
|
17
|
+
try {
|
|
18
|
+
// Identify missing required fields
|
|
19
|
+
const missingFields = ConfigurationWizard.getMissingFields(partialConfig);
|
|
20
|
+
// If no fields are missing, return the partial config
|
|
21
|
+
if (missingFields.length === 0) {
|
|
22
|
+
return partialConfig;
|
|
23
|
+
}
|
|
24
|
+
// Create prompt questions for missing fields
|
|
25
|
+
const questions = ConfigurationWizard.createQuestions(missingFields);
|
|
26
|
+
// Prompt the user for missing fields
|
|
27
|
+
const answers = await inquirer_1.default.prompt(questions);
|
|
28
|
+
// Validate the answers
|
|
29
|
+
ConfigurationWizard.validateAnswers(answers);
|
|
30
|
+
// Merge answers with partial config
|
|
31
|
+
const completeConfig = { ...partialConfig };
|
|
32
|
+
// Add non-empty answers
|
|
33
|
+
for (const [key, value] of Object.entries(answers)) {
|
|
34
|
+
if (value && typeof value === "string" && value.trim() !== "") {
|
|
35
|
+
completeConfig[key] = value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return completeConfig;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error instanceof Error && error.message === "User cancelled") {
|
|
42
|
+
throw new Error("Configuration wizard cancelled");
|
|
43
|
+
}
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get missing required fields from partial configuration
|
|
49
|
+
*/
|
|
50
|
+
static getMissingFields(partialConfig) {
|
|
51
|
+
const missingFields = [];
|
|
52
|
+
for (const field of ConfigurationWizard.REQUIRED_FIELDS) {
|
|
53
|
+
if (!partialConfig[field.name] || partialConfig[field.name] === "") {
|
|
54
|
+
missingFields.push(field.name);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return missingFields;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create inquirer questions for missing fields
|
|
61
|
+
*/
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
+
static createQuestions(missingFields) {
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
const questions = [];
|
|
66
|
+
// Add questions for missing required fields
|
|
67
|
+
for (const field of ConfigurationWizard.REQUIRED_FIELDS) {
|
|
68
|
+
if (missingFields.includes(field.name)) {
|
|
69
|
+
questions.push({
|
|
70
|
+
type: field.type,
|
|
71
|
+
name: field.name,
|
|
72
|
+
message: field.message,
|
|
73
|
+
validate: field.validate ? (input) => {
|
|
74
|
+
const result = field.validate(input);
|
|
75
|
+
return result === true ? true : result;
|
|
76
|
+
} : undefined,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Add optional fields
|
|
81
|
+
for (const field of ConfigurationWizard.OPTIONAL_FIELDS) {
|
|
82
|
+
questions.push({
|
|
83
|
+
type: field.type,
|
|
84
|
+
name: field.name,
|
|
85
|
+
message: field.message,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return questions;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Validate answers after prompting
|
|
92
|
+
*/
|
|
93
|
+
static validateAnswers(answers) {
|
|
94
|
+
// Check for empty tenant
|
|
95
|
+
if (answers.benchlingTenant !== undefined &&
|
|
96
|
+
(answers.benchlingTenant === "" || answers.benchlingTenant.trim() === "")) {
|
|
97
|
+
throw new Error("Benchling tenant cannot be empty");
|
|
98
|
+
}
|
|
99
|
+
// Check for empty client ID
|
|
100
|
+
if (answers.benchlingClientId !== undefined && answers.benchlingClientId === "") {
|
|
101
|
+
throw new Error("Benchling client ID cannot be empty");
|
|
102
|
+
}
|
|
103
|
+
// Check for empty client secret
|
|
104
|
+
if (answers.benchlingClientSecret !== undefined && answers.benchlingClientSecret === "") {
|
|
105
|
+
throw new Error("Benchling client secret cannot be empty");
|
|
106
|
+
}
|
|
107
|
+
// Check for empty app definition ID
|
|
108
|
+
if (answers.benchlingAppDefinitionId !== undefined && answers.benchlingAppDefinitionId === "") {
|
|
109
|
+
throw new Error("Benchling app definition ID cannot be empty");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Validate Benchling tenant format
|
|
114
|
+
*/
|
|
115
|
+
static validateTenant(value) {
|
|
116
|
+
if (!value || value.trim() === "") {
|
|
117
|
+
return "Benchling tenant cannot be empty";
|
|
118
|
+
}
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Validate Benchling client ID format
|
|
123
|
+
*/
|
|
124
|
+
static validateClientId(value) {
|
|
125
|
+
if (!value || value.trim() === "") {
|
|
126
|
+
return "Client ID cannot be empty";
|
|
127
|
+
}
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Validate Benchling client secret format
|
|
132
|
+
*/
|
|
133
|
+
static validateClientSecret(value) {
|
|
134
|
+
if (!value || value.trim() === "") {
|
|
135
|
+
return "Client secret cannot be empty";
|
|
136
|
+
}
|
|
137
|
+
if (value.length < 6) {
|
|
138
|
+
return "Client secret must be at least 6 characters";
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Validate Benchling app definition ID format
|
|
144
|
+
*/
|
|
145
|
+
static validateAppDefinitionId(value) {
|
|
146
|
+
if (!value || value.trim() === "") {
|
|
147
|
+
return "App definition ID cannot be empty";
|
|
148
|
+
}
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.ConfigurationWizard = ConfigurationWizard;
|
|
153
|
+
/**
|
|
154
|
+
* Required configuration fields
|
|
155
|
+
*/
|
|
156
|
+
ConfigurationWizard.REQUIRED_FIELDS = [
|
|
157
|
+
{
|
|
158
|
+
name: "benchlingTenant",
|
|
159
|
+
message: "Enter your Benchling tenant name (e.g., 'acme' for acme.benchling.com):",
|
|
160
|
+
type: "input",
|
|
161
|
+
validate: ConfigurationWizard.validateTenant,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: "benchlingClientId",
|
|
165
|
+
message: "Enter your Benchling OAuth client ID:",
|
|
166
|
+
type: "input",
|
|
167
|
+
validate: ConfigurationWizard.validateClientId,
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
name: "benchlingClientSecret",
|
|
171
|
+
message: "Enter your Benchling OAuth client secret:",
|
|
172
|
+
type: "password",
|
|
173
|
+
validate: ConfigurationWizard.validateClientSecret,
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
name: "benchlingAppDefinitionId",
|
|
177
|
+
message: "Enter your Benchling app definition ID:",
|
|
178
|
+
type: "input",
|
|
179
|
+
validate: ConfigurationWizard.validateAppDefinitionId,
|
|
180
|
+
},
|
|
181
|
+
];
|
|
182
|
+
/**
|
|
183
|
+
* Optional configuration fields
|
|
184
|
+
*/
|
|
185
|
+
ConfigurationWizard.OPTIONAL_FIELDS = [
|
|
186
|
+
{
|
|
187
|
+
name: "benchlingTestEntry",
|
|
188
|
+
message: "Enter a Benchling test entry ID (optional, press Enter to skip):",
|
|
189
|
+
type: "input",
|
|
190
|
+
optional: true,
|
|
191
|
+
},
|
|
192
|
+
];
|
|
193
|
+
//# sourceMappingURL=configuration-wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration-wizard.js","sourceRoot":"","sources":["../../lib/configuration-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,22 +8,31 @@ import { Construct } from "constructs";
|
|
|
8
8
|
export interface FargateServiceProps {
|
|
9
9
|
readonly vpc: ec2.IVpc;
|
|
10
10
|
readonly bucket: s3.IBucket;
|
|
11
|
-
readonly queueArn: string;
|
|
12
11
|
readonly region: string;
|
|
13
12
|
readonly account: string;
|
|
14
|
-
readonly prefix: string;
|
|
15
|
-
readonly pkgKey: string;
|
|
16
|
-
readonly benchlingClientId: string;
|
|
17
|
-
readonly benchlingClientSecret: string;
|
|
18
|
-
readonly benchlingTenant: string;
|
|
19
|
-
readonly quiltCatalog: string;
|
|
20
|
-
readonly quiltDatabase: string;
|
|
21
|
-
readonly webhookAllowList: string;
|
|
22
13
|
readonly ecrRepository: ecr.IRepository;
|
|
23
14
|
readonly imageTag?: string;
|
|
24
15
|
readonly stackVersion?: string;
|
|
25
16
|
readonly logLevel?: string;
|
|
26
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;
|
|
27
36
|
}
|
|
28
37
|
export declare class FargateService extends Construct {
|
|
29
38
|
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,
|
|
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"}
|