@quiltdata/benchling-webhook 0.5.4 → 0.6.0
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 +273 -10
- 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 -22
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cdk-dev.js +59 -3
- package/dist/bin/cli.js +16 -6
- 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 +149 -90
- 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 +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 +33 -25
- 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 +33 -25
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.S3BucketValidator = void 0;
|
|
4
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
5
|
+
/**
|
|
6
|
+
* S3 bucket access validator
|
|
7
|
+
*
|
|
8
|
+
* Validates S3 bucket access and permissions required for the webhook integration.
|
|
9
|
+
*/
|
|
10
|
+
class S3BucketValidator {
|
|
11
|
+
/**
|
|
12
|
+
* Validate S3 bucket access and permissions
|
|
13
|
+
*
|
|
14
|
+
* @param config - S3 bucket configuration
|
|
15
|
+
* @returns Validation result with access status and errors
|
|
16
|
+
*/
|
|
17
|
+
static async validate(config) {
|
|
18
|
+
const errors = [];
|
|
19
|
+
// Validate bucket name format
|
|
20
|
+
if (!S3BucketValidator.validateBucketName(config.bucketName)) {
|
|
21
|
+
errors.push("Invalid bucket name format");
|
|
22
|
+
return {
|
|
23
|
+
hasAccess: false,
|
|
24
|
+
isConfigured: false,
|
|
25
|
+
errors,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// Validate region format
|
|
29
|
+
if (!S3BucketValidator.validateRegion(config.region)) {
|
|
30
|
+
errors.push("Invalid AWS region");
|
|
31
|
+
return {
|
|
32
|
+
hasAccess: false,
|
|
33
|
+
isConfigured: false,
|
|
34
|
+
errors,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// Create S3 client
|
|
38
|
+
const s3Client = new client_s3_1.S3Client({ region: config.region });
|
|
39
|
+
try {
|
|
40
|
+
// Check if bucket exists
|
|
41
|
+
const bucketExists = await S3BucketValidator.checkBucketExists(config.bucketName, config.region, s3Client);
|
|
42
|
+
if (!bucketExists) {
|
|
43
|
+
errors.push("Bucket does not exist");
|
|
44
|
+
return {
|
|
45
|
+
hasAccess: false,
|
|
46
|
+
isConfigured: false,
|
|
47
|
+
errors,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Test write permissions
|
|
51
|
+
const hasWritePermission = await S3BucketValidator.testWritePermission(config.bucketName, s3Client);
|
|
52
|
+
if (!hasWritePermission) {
|
|
53
|
+
errors.push("Insufficient write permissions");
|
|
54
|
+
return {
|
|
55
|
+
hasAccess: false,
|
|
56
|
+
isConfigured: false,
|
|
57
|
+
hasWritePermission: false,
|
|
58
|
+
errors,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Test read permissions
|
|
62
|
+
const hasReadPermission = await S3BucketValidator.testReadPermission(config.bucketName, s3Client);
|
|
63
|
+
return {
|
|
64
|
+
hasAccess: true,
|
|
65
|
+
isConfigured: true,
|
|
66
|
+
hasWritePermission,
|
|
67
|
+
hasReadPermission,
|
|
68
|
+
errors: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (error instanceof Error) {
|
|
73
|
+
const errorName = error.name || "";
|
|
74
|
+
if (errorName === "NoSuchBucket") {
|
|
75
|
+
errors.push("Bucket does not exist");
|
|
76
|
+
}
|
|
77
|
+
else if (errorName === "AccessDenied" || errorName === "Forbidden") {
|
|
78
|
+
errors.push("Insufficient write permissions");
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
errors.push(`Validation error: ${error.message}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
hasAccess: false,
|
|
86
|
+
isConfigured: false,
|
|
87
|
+
errors,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Validate S3 bucket name format
|
|
93
|
+
*
|
|
94
|
+
* @param bucketName - Bucket name to validate
|
|
95
|
+
* @returns True if bucket name is valid
|
|
96
|
+
*/
|
|
97
|
+
static validateBucketName(bucketName) {
|
|
98
|
+
if (!bucketName || bucketName.trim() === "") {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
// S3 bucket naming rules:
|
|
102
|
+
// - 3-63 characters
|
|
103
|
+
// - lowercase letters, numbers, hyphens, dots
|
|
104
|
+
// - must start and end with letter or number
|
|
105
|
+
const bucketRegex = /^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/;
|
|
106
|
+
// Reject names with uppercase (invalid for S3)
|
|
107
|
+
if (bucketName !== bucketName.toLowerCase()) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
return bucketRegex.test(bucketName);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Validate AWS region format
|
|
114
|
+
*
|
|
115
|
+
* @param region - AWS region to validate
|
|
116
|
+
* @returns True if region format is valid
|
|
117
|
+
*/
|
|
118
|
+
static validateRegion(region) {
|
|
119
|
+
if (!region || region.trim() === "") {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
return S3BucketValidator.VALID_REGIONS.test(region);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Check if S3 bucket exists
|
|
126
|
+
*
|
|
127
|
+
* @param bucketName - Name of the bucket
|
|
128
|
+
* @param region - AWS region
|
|
129
|
+
* @param s3Client - Optional S3 client instance
|
|
130
|
+
* @returns True if bucket exists
|
|
131
|
+
*/
|
|
132
|
+
static async checkBucketExists(bucketName, region, s3Client) {
|
|
133
|
+
const client = s3Client || new client_s3_1.S3Client({ region });
|
|
134
|
+
try {
|
|
135
|
+
const command = new client_s3_1.HeadBucketCommand({ Bucket: bucketName });
|
|
136
|
+
await client.send(command);
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
const errorName = error.name || "";
|
|
141
|
+
if (errorName === "NoSuchBucket" || errorName === "NotFound") {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
// For other errors (like AccessDenied), bucket exists but we can't access it
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Test write permissions on S3 bucket
|
|
150
|
+
*
|
|
151
|
+
* @param bucketName - Name of the bucket
|
|
152
|
+
* @param s3Client - S3 client instance
|
|
153
|
+
* @returns True if write permission is granted
|
|
154
|
+
*/
|
|
155
|
+
static async testWritePermission(bucketName, s3Client) {
|
|
156
|
+
const testKey = `.benchling-webhook-test-${Date.now()}`;
|
|
157
|
+
try {
|
|
158
|
+
// Attempt to write a test object
|
|
159
|
+
const putCommand = new client_s3_1.PutObjectCommand({
|
|
160
|
+
Bucket: bucketName,
|
|
161
|
+
Key: testKey,
|
|
162
|
+
Body: "test",
|
|
163
|
+
});
|
|
164
|
+
await s3Client.send(putCommand);
|
|
165
|
+
// Clean up test object
|
|
166
|
+
const deleteCommand = new client_s3_1.DeleteObjectCommand({
|
|
167
|
+
Bucket: bucketName,
|
|
168
|
+
Key: testKey,
|
|
169
|
+
});
|
|
170
|
+
await s3Client.send(deleteCommand);
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
const errorName = error.name || "";
|
|
175
|
+
if (errorName === "AccessDenied" || errorName === "Forbidden") {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
throw error;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Test read permissions on S3 bucket
|
|
183
|
+
*
|
|
184
|
+
* @param bucketName - Name of the bucket
|
|
185
|
+
* @param s3Client - S3 client instance
|
|
186
|
+
* @returns True if read permission is granted
|
|
187
|
+
*/
|
|
188
|
+
static async testReadPermission(bucketName, s3Client) {
|
|
189
|
+
const testKey = `.benchling-webhook-test-${Date.now()}`;
|
|
190
|
+
try {
|
|
191
|
+
// First, write a test object
|
|
192
|
+
const putCommand = new client_s3_1.PutObjectCommand({
|
|
193
|
+
Bucket: bucketName,
|
|
194
|
+
Key: testKey,
|
|
195
|
+
Body: "test",
|
|
196
|
+
});
|
|
197
|
+
await s3Client.send(putCommand);
|
|
198
|
+
// Attempt to read the test object
|
|
199
|
+
const getCommand = new client_s3_1.GetObjectCommand({
|
|
200
|
+
Bucket: bucketName,
|
|
201
|
+
Key: testKey,
|
|
202
|
+
});
|
|
203
|
+
await s3Client.send(getCommand);
|
|
204
|
+
// Clean up test object
|
|
205
|
+
const deleteCommand = new client_s3_1.DeleteObjectCommand({
|
|
206
|
+
Bucket: bucketName,
|
|
207
|
+
Key: testKey,
|
|
208
|
+
});
|
|
209
|
+
await s3Client.send(deleteCommand);
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
const errorName = error.name || "";
|
|
214
|
+
if (errorName === "AccessDenied" || errorName === "Forbidden") {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
// If we can't read, still try to clean up
|
|
218
|
+
try {
|
|
219
|
+
const deleteCommand = new client_s3_1.DeleteObjectCommand({
|
|
220
|
+
Bucket: bucketName,
|
|
221
|
+
Key: testKey,
|
|
222
|
+
});
|
|
223
|
+
await s3Client.send(deleteCommand);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
// Ignore cleanup errors
|
|
227
|
+
}
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.S3BucketValidator = S3BucketValidator;
|
|
233
|
+
/**
|
|
234
|
+
* Valid AWS region patterns
|
|
235
|
+
*/
|
|
236
|
+
S3BucketValidator.VALID_REGIONS = /^(us|eu|ap|sa|ca|me|af|cn|us-gov)-(north|south|east|west|central|northeast|southeast|southwest|northwest)-\d+$/;
|
|
237
|
+
//# sourceMappingURL=s3-bucket-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3-bucket-validator.js","sourceRoot":"","sources":["../../lib/s3-bucket-validator.ts"],"names":[],"mappings":";;;AAAA,kDAA0H;AAqB1H;;;;GAIG;AACH,MAAa,iBAAiB;IAM1B;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAsB;QAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,KAAK;gBACnB,MAAM;aACT,CAAC;QACN,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,KAAK;gBACnB,MAAM;aACT,CAAC;QACN,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,IAAI,oBAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC;YACD,yBAAyB;YACzB,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,CAC1D,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,EACb,QAAQ,CACX,CAAC;YAEF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACrC,OAAO;oBACH,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK;oBACnB,MAAM;iBACT,CAAC;YACN,CAAC;YAED,yBAAyB;YACzB,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,CAClE,MAAM,CAAC,UAAU,EACjB,QAAQ,CACX,CAAC;YAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAC9C,OAAO;oBACH,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,KAAK;oBACnB,kBAAkB,EAAE,KAAK;oBACzB,MAAM;iBACT,CAAC;YACN,CAAC;YAED,wBAAwB;YACxB,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,kBAAkB,CAChE,MAAM,CAAC,UAAU,EACjB,QAAQ,CACX,CAAC;YAEF,OAAO;gBACH,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,IAAI;gBAClB,kBAAkB;gBAClB,iBAAiB;gBACjB,MAAM,EAAE,EAAE;aACb,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAI,KAAyB,CAAC,IAAI,IAAI,EAAE,CAAC;gBAExD,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;oBACnE,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;gBAClD,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;YACL,CAAC;YAED,OAAO;gBACH,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,KAAK;gBACnB,MAAM;aACT,CAAC;QACN,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,kBAAkB,CAAC,UAAkB;QAC/C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,0BAA0B;QAC1B,oBAAoB;QACpB,8CAA8C;QAC9C,6CAA6C;QAC7C,MAAM,WAAW,GAAG,oCAAoC,CAAC;QAEzD,+CAA+C;QAC/C,IAAI,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,cAAc,CAAC,MAAc;QACvC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CACjC,UAAkB,EAClB,MAAc,EACd,QAAmB;QAEnB,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,oBAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9D,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,SAAS,GAAI,KAAyB,CAAC,IAAI,IAAI,EAAE,CAAC;YACxD,IAAI,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,6EAA6E;YAC7E,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACpC,UAAkB,EAClB,QAAkB;QAElB,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAExD,IAAI,CAAC;YACD,iCAAiC;YACjC,MAAM,UAAU,GAAG,IAAI,4BAAgB,CAAC;gBACpC,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,OAAO;gBACZ,IAAI,EAAE,MAAM;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhC,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAI,+BAAmB,CAAC;gBAC1C,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,OAAO;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,SAAS,GAAI,KAAyB,CAAC,IAAI,IAAI,EAAE,CAAC;YACxD,IAAI,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACnC,UAAkB,EAClB,QAAkB;QAElB,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAExD,IAAI,CAAC;YACD,6BAA6B;YAC7B,MAAM,UAAU,GAAG,IAAI,4BAAgB,CAAC;gBACpC,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,OAAO;gBACZ,IAAI,EAAE,MAAM;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhC,kCAAkC;YAClC,MAAM,UAAU,GAAG,IAAI,4BAAgB,CAAC;gBACpC,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,OAAO;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhC,uBAAuB;YACvB,MAAM,aAAa,GAAG,IAAI,+BAAmB,CAAC;gBAC1C,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,OAAO;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAEnC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,SAAS,GAAI,KAAyB,CAAC,IAAI,IAAI,EAAE,CAAC;YACxD,IAAI,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;gBAC5D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,0CAA0C;YAC1C,IAAI,CAAC;gBACD,MAAM,aAAa,GAAG,IAAI,+BAAmB,CAAC;oBAC1C,MAAM,EAAE,UAAU;oBAClB,GAAG,EAAE,OAAO;iBACf,CAAC,CAAC;gBACH,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACL,wBAAwB;YAC5B,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;;AA1QL,8CA2QC;AA1QG;;GAEG;AACqB,+BAAa,GAAG,gHAAgH,CAAC"}
|
|
@@ -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"}
|