@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 @@
|
|
|
1
|
+
{"version":3,"file":"install-wizard.js","sourceRoot":"","sources":["../../scripts/install-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* AWS Secrets Manager Integration
|
|
4
|
+
*
|
|
5
|
+
* Synchronizes configuration to AWS Secrets Manager with:
|
|
6
|
+
* - Consistent secret naming conventions
|
|
7
|
+
* - AWS profile selection support
|
|
8
|
+
* - Atomic secret creation/update operations
|
|
9
|
+
* - ARN tracking in XDG configuration
|
|
10
|
+
*
|
|
11
|
+
* @module scripts/sync-secrets
|
|
12
|
+
*/
|
|
13
|
+
import { ProfileName } from "../lib/types/config";
|
|
14
|
+
/**
|
|
15
|
+
* Secrets sync options
|
|
16
|
+
*/
|
|
17
|
+
interface SyncSecretsOptions {
|
|
18
|
+
profile?: ProfileName;
|
|
19
|
+
awsProfile?: string;
|
|
20
|
+
region?: string;
|
|
21
|
+
dryRun?: boolean;
|
|
22
|
+
force?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Sync result
|
|
26
|
+
*/
|
|
27
|
+
interface SyncResult {
|
|
28
|
+
secretName: string;
|
|
29
|
+
secretArn: string;
|
|
30
|
+
action: "created" | "updated" | "skipped";
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Syncs configuration to AWS Secrets Manager
|
|
35
|
+
*
|
|
36
|
+
* @param options - Sync options
|
|
37
|
+
* @returns Array of sync results
|
|
38
|
+
*/
|
|
39
|
+
export declare function syncSecretsToAWS(options?: SyncSecretsOptions): Promise<SyncResult[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Retrieves secrets from AWS Secrets Manager
|
|
42
|
+
*
|
|
43
|
+
* @param options - Retrieval options
|
|
44
|
+
* @returns Secret value as parsed JSON
|
|
45
|
+
*/
|
|
46
|
+
export declare function getSecretsFromAWS(options: {
|
|
47
|
+
profile?: ProfileName;
|
|
48
|
+
awsProfile?: string;
|
|
49
|
+
region?: string;
|
|
50
|
+
}): Promise<Record<string, string>>;
|
|
51
|
+
/**
|
|
52
|
+
* Validates that secrets are accessible
|
|
53
|
+
*
|
|
54
|
+
* @param options - Validation options
|
|
55
|
+
* @returns True if secrets are accessible
|
|
56
|
+
*/
|
|
57
|
+
export declare function validateSecretsAccess(options: {
|
|
58
|
+
profile?: ProfileName;
|
|
59
|
+
awsProfile?: string;
|
|
60
|
+
region?: string;
|
|
61
|
+
}): Promise<boolean>;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=sync-secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-secrets.d.ts","sourceRoot":"","sources":["../../scripts/sync-secrets.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG;AAYH,OAAO,EAA6B,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;GAEG;AACH,UAAU,kBAAkB;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAWD;;GAEG;AACH,UAAU,UAAU;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;CACnB;AA4ID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAyH9F;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC7C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAmBlC;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACjD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQnB"}
|
|
@@ -0,0 +1,424 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* AWS Secrets Manager Integration
|
|
5
|
+
*
|
|
6
|
+
* Synchronizes configuration to AWS Secrets Manager with:
|
|
7
|
+
* - Consistent secret naming conventions
|
|
8
|
+
* - AWS profile selection support
|
|
9
|
+
* - Atomic secret creation/update operations
|
|
10
|
+
* - ARN tracking in XDG configuration
|
|
11
|
+
*
|
|
12
|
+
* @module scripts/sync-secrets
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.syncSecretsToAWS = syncSecretsToAWS;
|
|
49
|
+
exports.getSecretsFromAWS = getSecretsFromAWS;
|
|
50
|
+
exports.validateSecretsAccess = validateSecretsAccess;
|
|
51
|
+
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
52
|
+
const xdg_config_1 = require("../lib/xdg-config");
|
|
53
|
+
/**
|
|
54
|
+
* Generates standardized secret name
|
|
55
|
+
*
|
|
56
|
+
* @param profile - Profile name
|
|
57
|
+
* @param tenant - Benchling tenant
|
|
58
|
+
* @returns Secret name
|
|
59
|
+
*/
|
|
60
|
+
function generateSecretName(profile, tenant) {
|
|
61
|
+
const sanitizedTenant = tenant.replace(/[^a-zA-Z0-9-_]/g, "-");
|
|
62
|
+
const sanitizedProfile = profile.replace(/[^a-zA-Z0-9-_]/g, "-");
|
|
63
|
+
if (profile === "default") {
|
|
64
|
+
return `benchling-webhook/${sanitizedTenant}`;
|
|
65
|
+
}
|
|
66
|
+
return `benchling-webhook/${sanitizedProfile}/${sanitizedTenant}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Creates or retrieves Secrets Manager client
|
|
70
|
+
*
|
|
71
|
+
* @param region - AWS region
|
|
72
|
+
* @param awsProfile - AWS profile to use
|
|
73
|
+
* @returns SecretsManagerClient instance
|
|
74
|
+
*/
|
|
75
|
+
async function getSecretsManagerClient(region, awsProfile) {
|
|
76
|
+
const clientConfig = { region };
|
|
77
|
+
if (awsProfile) {
|
|
78
|
+
const { fromIni } = await Promise.resolve().then(() => __importStar(require("@aws-sdk/credential-providers")));
|
|
79
|
+
clientConfig.credentials = fromIni({ profile: awsProfile });
|
|
80
|
+
}
|
|
81
|
+
return new client_secrets_manager_1.SecretsManagerClient(clientConfig);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Checks if a secret exists
|
|
85
|
+
*
|
|
86
|
+
* @param client - Secrets Manager client
|
|
87
|
+
* @param secretName - Secret name
|
|
88
|
+
* @returns True if secret exists, false otherwise
|
|
89
|
+
*/
|
|
90
|
+
async function secretExists(client, secretName) {
|
|
91
|
+
try {
|
|
92
|
+
const command = new client_secrets_manager_1.DescribeSecretCommand({ SecretId: secretName });
|
|
93
|
+
await client.send(command);
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (error instanceof client_secrets_manager_1.ResourceNotFoundException) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Creates a new secret in Secrets Manager
|
|
105
|
+
*
|
|
106
|
+
* @param client - Secrets Manager client
|
|
107
|
+
* @param secretConfig - Secret configuration
|
|
108
|
+
* @returns Secret ARN
|
|
109
|
+
*/
|
|
110
|
+
async function createSecret(client, secretConfig) {
|
|
111
|
+
const command = new client_secrets_manager_1.CreateSecretCommand({
|
|
112
|
+
Name: secretConfig.name,
|
|
113
|
+
SecretString: secretConfig.value,
|
|
114
|
+
Description: secretConfig.description,
|
|
115
|
+
Tags: [
|
|
116
|
+
{ Key: "ManagedBy", Value: "benchling-webhook" },
|
|
117
|
+
{ Key: "Version", Value: "0.6.0" },
|
|
118
|
+
],
|
|
119
|
+
});
|
|
120
|
+
const response = await client.send(command);
|
|
121
|
+
return response.ARN || "";
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Updates an existing secret in Secrets Manager
|
|
125
|
+
*
|
|
126
|
+
* @param client - Secrets Manager client
|
|
127
|
+
* @param secretConfig - Secret configuration
|
|
128
|
+
* @returns Secret ARN
|
|
129
|
+
*/
|
|
130
|
+
async function updateSecret(client, secretConfig) {
|
|
131
|
+
const command = new client_secrets_manager_1.UpdateSecretCommand({
|
|
132
|
+
SecretId: secretConfig.name,
|
|
133
|
+
SecretString: secretConfig.value,
|
|
134
|
+
Description: secretConfig.description,
|
|
135
|
+
});
|
|
136
|
+
const response = await client.send(command);
|
|
137
|
+
return response.ARN || "";
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Retrieves secret value from Secrets Manager
|
|
141
|
+
*
|
|
142
|
+
* @param client - Secrets Manager client
|
|
143
|
+
* @param secretName - Secret name
|
|
144
|
+
* @returns Secret value as JSON string
|
|
145
|
+
*/
|
|
146
|
+
async function getSecret(client, secretName) {
|
|
147
|
+
const command = new client_secrets_manager_1.GetSecretValueCommand({ SecretId: secretName });
|
|
148
|
+
const response = await client.send(command);
|
|
149
|
+
return response.SecretString || "";
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Builds secret value JSON from user configuration
|
|
153
|
+
*
|
|
154
|
+
* @param config - User configuration
|
|
155
|
+
* @returns Secret value as JSON string
|
|
156
|
+
*/
|
|
157
|
+
function buildSecretValue(config) {
|
|
158
|
+
// Use snake_case field names to match Python config_resolver expectations
|
|
159
|
+
const secretData = {
|
|
160
|
+
tenant: config.benchlingTenant,
|
|
161
|
+
client_id: config.benchlingClientId,
|
|
162
|
+
client_secret: config.benchlingClientSecret,
|
|
163
|
+
app_definition_id: config.benchlingAppDefinitionId,
|
|
164
|
+
user_bucket: config.benchlingPkgBucket || config.quiltUserBucket,
|
|
165
|
+
pkg_prefix: config.pkgPrefix || "benchling",
|
|
166
|
+
pkg_key: config.pkgKey || "experiment_id",
|
|
167
|
+
log_level: config.logLevel || "INFO",
|
|
168
|
+
webhook_allow_list: config.webhookAllowList || "",
|
|
169
|
+
enable_webhook_verification: config.enableWebhookVerification || "true",
|
|
170
|
+
};
|
|
171
|
+
// Add optional fields
|
|
172
|
+
if (config.queueArn) {
|
|
173
|
+
Object.assign(secretData, { queue_arn: config.queueArn });
|
|
174
|
+
}
|
|
175
|
+
return JSON.stringify(secretData, null, 2);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Syncs configuration to AWS Secrets Manager
|
|
179
|
+
*
|
|
180
|
+
* @param options - Sync options
|
|
181
|
+
* @returns Array of sync results
|
|
182
|
+
*/
|
|
183
|
+
async function syncSecretsToAWS(options = {}) {
|
|
184
|
+
const { profile = "default", awsProfile, region = "us-east-1", dryRun = false, force = false } = options;
|
|
185
|
+
const results = [];
|
|
186
|
+
// Step 1: Load configuration
|
|
187
|
+
console.log(`Loading configuration from profile: ${profile}...`);
|
|
188
|
+
const xdgConfig = new xdg_config_1.XDGConfig();
|
|
189
|
+
let userConfig;
|
|
190
|
+
try {
|
|
191
|
+
userConfig = xdgConfig.readProfileConfig("user", profile);
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
throw new Error(`Failed to load configuration: ${error.message}`);
|
|
195
|
+
}
|
|
196
|
+
// Validate required fields
|
|
197
|
+
if (!userConfig.benchlingTenant) {
|
|
198
|
+
throw new Error("Benchling tenant is required");
|
|
199
|
+
}
|
|
200
|
+
if (!userConfig.benchlingClientId || !userConfig.benchlingClientSecret) {
|
|
201
|
+
throw new Error("Benchling OAuth credentials are required");
|
|
202
|
+
}
|
|
203
|
+
// Step 2: Initialize Secrets Manager client
|
|
204
|
+
console.log(`Initializing Secrets Manager client (region: ${region})...`);
|
|
205
|
+
const client = await getSecretsManagerClient(region, awsProfile);
|
|
206
|
+
// Step 3: Generate secret name
|
|
207
|
+
const secretName = generateSecretName(profile, userConfig.benchlingTenant);
|
|
208
|
+
console.log(`Secret name: ${secretName}`);
|
|
209
|
+
// Step 4: Build secret value
|
|
210
|
+
const secretValue = buildSecretValue(userConfig);
|
|
211
|
+
if (dryRun) {
|
|
212
|
+
console.log("\n=== DRY RUN MODE ===");
|
|
213
|
+
console.log(`Would sync secret: ${secretName}`);
|
|
214
|
+
console.log(`Secret value:\n${secretValue}`);
|
|
215
|
+
return results;
|
|
216
|
+
}
|
|
217
|
+
// Step 5: Check if secret exists
|
|
218
|
+
const exists = await secretExists(client, secretName);
|
|
219
|
+
let secretArn;
|
|
220
|
+
let action;
|
|
221
|
+
if (exists) {
|
|
222
|
+
if (force) {
|
|
223
|
+
console.log(`Updating existing secret: ${secretName}...`);
|
|
224
|
+
secretArn = await updateSecret(client, {
|
|
225
|
+
name: secretName,
|
|
226
|
+
value: secretValue,
|
|
227
|
+
description: `Benchling Webhook configuration for ${userConfig.benchlingTenant} (profile: ${profile})`,
|
|
228
|
+
});
|
|
229
|
+
action = "updated";
|
|
230
|
+
console.log(`✓ Secret updated: ${secretArn}`);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
console.log(`Secret already exists: ${secretName}`);
|
|
234
|
+
console.log("Use --force to update existing secret");
|
|
235
|
+
// Get existing secret ARN
|
|
236
|
+
const describeCommand = new client_secrets_manager_1.DescribeSecretCommand({ SecretId: secretName });
|
|
237
|
+
const describeResponse = await client.send(describeCommand);
|
|
238
|
+
secretArn = describeResponse.ARN || "";
|
|
239
|
+
action = "skipped";
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
console.log(`Creating new secret: ${secretName}...`);
|
|
244
|
+
secretArn = await createSecret(client, {
|
|
245
|
+
name: secretName,
|
|
246
|
+
value: secretValue,
|
|
247
|
+
description: `Benchling Webhook configuration for ${userConfig.benchlingTenant} (profile: ${profile})`,
|
|
248
|
+
});
|
|
249
|
+
action = "created";
|
|
250
|
+
console.log(`✓ Secret created: ${secretArn}`);
|
|
251
|
+
}
|
|
252
|
+
results.push({
|
|
253
|
+
secretName,
|
|
254
|
+
secretArn,
|
|
255
|
+
action,
|
|
256
|
+
message: `Secret ${action} successfully`,
|
|
257
|
+
});
|
|
258
|
+
// Step 6: Update XDG configuration with secret ARN
|
|
259
|
+
console.log("Updating XDG configuration with secret ARN...");
|
|
260
|
+
// Read or create derived config
|
|
261
|
+
let derivedConfig;
|
|
262
|
+
try {
|
|
263
|
+
derivedConfig = xdgConfig.readProfileConfig("derived", profile);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
// Create new derived config if it doesn't exist
|
|
267
|
+
derivedConfig = {
|
|
268
|
+
_metadata: {
|
|
269
|
+
source: "sync-secrets",
|
|
270
|
+
savedAt: new Date().toISOString(),
|
|
271
|
+
version: "0.6.0",
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
// Update secret ARN
|
|
276
|
+
derivedConfig.benchlingSecretArn = secretArn;
|
|
277
|
+
// Update metadata
|
|
278
|
+
derivedConfig._metadata = {
|
|
279
|
+
...derivedConfig._metadata,
|
|
280
|
+
savedAt: new Date().toISOString(),
|
|
281
|
+
source: "sync-secrets",
|
|
282
|
+
};
|
|
283
|
+
// Write updated derived config
|
|
284
|
+
xdgConfig.writeProfileConfig("derived", derivedConfig, profile);
|
|
285
|
+
console.log("✓ XDG configuration updated with secret ARN");
|
|
286
|
+
return results;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Retrieves secrets from AWS Secrets Manager
|
|
290
|
+
*
|
|
291
|
+
* @param options - Retrieval options
|
|
292
|
+
* @returns Secret value as parsed JSON
|
|
293
|
+
*/
|
|
294
|
+
async function getSecretsFromAWS(options) {
|
|
295
|
+
const { profile = "default", awsProfile, region = "us-east-1" } = options;
|
|
296
|
+
// Load configuration
|
|
297
|
+
const xdgConfig = new xdg_config_1.XDGConfig();
|
|
298
|
+
const derivedConfig = xdgConfig.readProfileConfig("derived", profile);
|
|
299
|
+
if (!derivedConfig.benchlingSecretArn) {
|
|
300
|
+
throw new Error("No secret ARN found in configuration. Run sync-secrets first.");
|
|
301
|
+
}
|
|
302
|
+
// Initialize Secrets Manager client
|
|
303
|
+
const client = await getSecretsManagerClient(region, awsProfile);
|
|
304
|
+
// Retrieve secret
|
|
305
|
+
const secretValue = await getSecret(client, derivedConfig.benchlingSecretArn);
|
|
306
|
+
// Parse and return
|
|
307
|
+
return JSON.parse(secretValue);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Validates that secrets are accessible
|
|
311
|
+
*
|
|
312
|
+
* @param options - Validation options
|
|
313
|
+
* @returns True if secrets are accessible
|
|
314
|
+
*/
|
|
315
|
+
async function validateSecretsAccess(options) {
|
|
316
|
+
try {
|
|
317
|
+
await getSecretsFromAWS(options);
|
|
318
|
+
return true;
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
console.error(`Secret validation failed: ${error.message}`);
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Main execution for CLI usage
|
|
327
|
+
*/
|
|
328
|
+
async function main() {
|
|
329
|
+
const args = process.argv.slice(2);
|
|
330
|
+
const options = {};
|
|
331
|
+
let command = "sync";
|
|
332
|
+
// Parse command line arguments
|
|
333
|
+
for (let i = 0; i < args.length; i++) {
|
|
334
|
+
if (args[i] === "get") {
|
|
335
|
+
command = "get";
|
|
336
|
+
}
|
|
337
|
+
else if (args[i] === "validate") {
|
|
338
|
+
command = "validate";
|
|
339
|
+
}
|
|
340
|
+
else if (args[i] === "--profile" && i + 1 < args.length) {
|
|
341
|
+
options.profile = args[i + 1];
|
|
342
|
+
i++;
|
|
343
|
+
}
|
|
344
|
+
else if (args[i] === "--aws-profile" && i + 1 < args.length) {
|
|
345
|
+
options.awsProfile = args[i + 1];
|
|
346
|
+
i++;
|
|
347
|
+
}
|
|
348
|
+
else if (args[i] === "--region" && i + 1 < args.length) {
|
|
349
|
+
options.region = args[i + 1];
|
|
350
|
+
i++;
|
|
351
|
+
}
|
|
352
|
+
else if (args[i] === "--dry-run") {
|
|
353
|
+
options.dryRun = true;
|
|
354
|
+
}
|
|
355
|
+
else if (args[i] === "--force") {
|
|
356
|
+
options.force = true;
|
|
357
|
+
}
|
|
358
|
+
else if (args[i] === "--help") {
|
|
359
|
+
console.log("Usage: sync-secrets [command] [options]");
|
|
360
|
+
console.log("\nCommands:");
|
|
361
|
+
console.log(" sync Sync secrets to AWS Secrets Manager (default)");
|
|
362
|
+
console.log(" get Retrieve secrets from AWS Secrets Manager");
|
|
363
|
+
console.log(" validate Validate secret accessibility");
|
|
364
|
+
console.log("\nOptions:");
|
|
365
|
+
console.log(" --profile <name> Configuration profile (default: default)");
|
|
366
|
+
console.log(" --aws-profile <profile> AWS profile to use");
|
|
367
|
+
console.log(" --region <region> AWS region (default: us-east-1)");
|
|
368
|
+
console.log(" --dry-run Show what would be synced without making changes");
|
|
369
|
+
console.log(" --force Force update of existing secrets");
|
|
370
|
+
console.log(" --help Show this help message");
|
|
371
|
+
process.exit(0);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
try {
|
|
375
|
+
if (command === "sync") {
|
|
376
|
+
console.log("╔═══════════════════════════════════════════════════════════╗");
|
|
377
|
+
console.log("║ AWS Secrets Manager Sync ║");
|
|
378
|
+
console.log("╚═══════════════════════════════════════════════════════════╝\n");
|
|
379
|
+
const results = await syncSecretsToAWS(options);
|
|
380
|
+
console.log("\n=== Sync Results ===");
|
|
381
|
+
results.forEach((result) => {
|
|
382
|
+
console.log(`\n${result.secretName}:`);
|
|
383
|
+
console.log(` Action: ${result.action}`);
|
|
384
|
+
console.log(` ARN: ${result.secretArn}`);
|
|
385
|
+
console.log(` Message: ${result.message}`);
|
|
386
|
+
});
|
|
387
|
+
console.log("\n✓ Secrets sync completed successfully");
|
|
388
|
+
}
|
|
389
|
+
else if (command === "get") {
|
|
390
|
+
console.log("Retrieving secrets from AWS Secrets Manager...\n");
|
|
391
|
+
const secrets = await getSecretsFromAWS(options);
|
|
392
|
+
console.log("=== Retrieved Secrets ===");
|
|
393
|
+
Object.keys(secrets).forEach((key) => {
|
|
394
|
+
if (key.toLowerCase().includes("secret") || key.toLowerCase().includes("password")) {
|
|
395
|
+
console.log(`${key}: ********`);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
console.log(`${key}: ${secrets[key]}`);
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
else if (command === "validate") {
|
|
403
|
+
console.log("Validating secret accessibility...\n");
|
|
404
|
+
const isValid = await validateSecretsAccess(options);
|
|
405
|
+
if (isValid) {
|
|
406
|
+
console.log("✓ Secrets are accessible");
|
|
407
|
+
process.exit(0);
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
console.error("❌ Secrets are not accessible");
|
|
411
|
+
process.exit(1);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
catch (error) {
|
|
416
|
+
console.error("\n❌ Error:", error.message);
|
|
417
|
+
process.exit(1);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
// Run main if executed directly
|
|
421
|
+
if (require.main === module) {
|
|
422
|
+
main();
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=sync-secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-secrets.js","sourceRoot":"","sources":["../../scripts/sync-secrets.ts"],"names":[],"mappings":"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"}
|