@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.
Files changed (103) hide show
  1. package/README.md +273 -10
  2. package/dist/bin/benchling-webhook.d.ts +1 -1
  3. package/dist/bin/benchling-webhook.d.ts.map +1 -1
  4. package/dist/bin/benchling-webhook.js +8 -22
  5. package/dist/bin/benchling-webhook.js.map +1 -1
  6. package/dist/bin/cdk-dev.js +59 -3
  7. package/dist/bin/cli.js +16 -6
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/bin/commands/deploy.d.ts +6 -2
  10. package/dist/bin/commands/deploy.d.ts.map +1 -1
  11. package/dist/bin/commands/deploy.js +149 -90
  12. package/dist/bin/commands/deploy.js.map +1 -1
  13. package/dist/bin/config-profiles.d.ts +59 -0
  14. package/dist/bin/config-profiles.d.ts.map +1 -0
  15. package/dist/bin/config-profiles.js +272 -0
  16. package/dist/bin/config-profiles.js.map +1 -0
  17. package/dist/bin/create-secret.d.ts +25 -0
  18. package/dist/bin/create-secret.d.ts.map +1 -0
  19. package/dist/bin/create-secret.js +239 -0
  20. package/dist/bin/create-secret.js.map +1 -0
  21. package/dist/lib/benchling-auth-validator.d.ts +65 -0
  22. package/dist/lib/benchling-auth-validator.d.ts.map +1 -0
  23. package/dist/lib/benchling-auth-validator.js +213 -0
  24. package/dist/lib/benchling-auth-validator.js.map +1 -0
  25. package/dist/lib/benchling-webhook-stack.d.ts +13 -10
  26. package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
  27. package/dist/lib/benchling-webhook-stack.js +25 -69
  28. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  29. package/dist/lib/config-logger.d.ts +191 -0
  30. package/dist/lib/config-logger.d.ts.map +1 -0
  31. package/dist/lib/config-logger.js +372 -0
  32. package/dist/lib/config-logger.js.map +1 -0
  33. package/dist/lib/configuration-saver.d.ts +75 -0
  34. package/dist/lib/configuration-saver.d.ts.map +1 -0
  35. package/dist/lib/configuration-saver.js +145 -0
  36. package/dist/lib/configuration-saver.js.map +1 -0
  37. package/dist/lib/configuration-validator.d.ts +63 -0
  38. package/dist/lib/configuration-validator.d.ts.map +1 -0
  39. package/dist/lib/configuration-validator.js +136 -0
  40. package/dist/lib/configuration-validator.js.map +1 -0
  41. package/dist/lib/configuration-wizard.d.ts +52 -0
  42. package/dist/lib/configuration-wizard.d.ts.map +1 -0
  43. package/dist/lib/configuration-wizard.js +193 -0
  44. package/dist/lib/configuration-wizard.js.map +1 -0
  45. package/dist/lib/fargate-service.d.ts +18 -9
  46. package/dist/lib/fargate-service.d.ts.map +1 -1
  47. package/dist/lib/fargate-service.js +177 -61
  48. package/dist/lib/fargate-service.js.map +1 -1
  49. package/dist/lib/quilt-config-resolver.d.ts +53 -0
  50. package/dist/lib/quilt-config-resolver.d.ts.map +1 -0
  51. package/dist/lib/quilt-config-resolver.js +100 -0
  52. package/dist/lib/quilt-config-resolver.js.map +1 -0
  53. package/dist/lib/s3-bucket-validator.d.ts +76 -0
  54. package/dist/lib/s3-bucket-validator.d.ts.map +1 -0
  55. package/dist/lib/s3-bucket-validator.js +237 -0
  56. package/dist/lib/s3-bucket-validator.js.map +1 -0
  57. package/dist/lib/types/config.d.ts +398 -0
  58. package/dist/lib/types/config.d.ts.map +1 -0
  59. package/dist/lib/types/config.js +11 -0
  60. package/dist/lib/types/config.js.map +1 -0
  61. package/dist/lib/utils/config-loader.d.ts +48 -0
  62. package/dist/lib/utils/config-loader.d.ts.map +1 -0
  63. package/dist/lib/utils/config-loader.js +109 -0
  64. package/dist/lib/utils/config-loader.js.map +1 -0
  65. package/dist/lib/utils/config-resolver.d.ts +138 -0
  66. package/dist/lib/utils/config-resolver.d.ts.map +1 -0
  67. package/dist/lib/utils/config-resolver.js +272 -0
  68. package/dist/lib/utils/config-resolver.js.map +1 -0
  69. package/dist/lib/utils/config.d.ts +50 -0
  70. package/dist/lib/utils/config.d.ts.map +1 -1
  71. package/dist/lib/utils/config.js +86 -0
  72. package/dist/lib/utils/config.js.map +1 -1
  73. package/dist/lib/utils/secrets.d.ts +174 -0
  74. package/dist/lib/utils/secrets.d.ts.map +1 -0
  75. package/dist/lib/utils/secrets.js +351 -0
  76. package/dist/lib/utils/secrets.js.map +1 -0
  77. package/dist/lib/xdg-cli-wrapper.d.ts +113 -0
  78. package/dist/lib/xdg-cli-wrapper.d.ts.map +1 -0
  79. package/dist/lib/xdg-cli-wrapper.js +288 -0
  80. package/dist/lib/xdg-cli-wrapper.js.map +1 -0
  81. package/dist/lib/xdg-config.d.ts +187 -0
  82. package/dist/lib/xdg-config.d.ts.map +1 -0
  83. package/dist/lib/xdg-config.js +562 -0
  84. package/dist/lib/xdg-config.js.map +1 -0
  85. package/dist/package.json +33 -25
  86. package/dist/scripts/config-health-check.d.ts +78 -0
  87. package/dist/scripts/config-health-check.d.ts.map +1 -0
  88. package/dist/scripts/config-health-check.js +559 -0
  89. package/dist/scripts/config-health-check.js.map +1 -0
  90. package/dist/scripts/infer-quilt-config.d.ts +50 -0
  91. package/dist/scripts/infer-quilt-config.d.ts.map +1 -0
  92. package/dist/scripts/infer-quilt-config.js +353 -0
  93. package/dist/scripts/infer-quilt-config.js.map +1 -0
  94. package/dist/scripts/install-wizard.d.ts +34 -0
  95. package/dist/scripts/install-wizard.d.ts.map +1 -0
  96. package/dist/scripts/install-wizard.js +719 -0
  97. package/dist/scripts/install-wizard.js.map +1 -0
  98. package/dist/scripts/sync-secrets.d.ts +63 -0
  99. package/dist/scripts/sync-secrets.d.ts.map +1 -0
  100. package/dist/scripts/sync-secrets.js +424 -0
  101. package/dist/scripts/sync-secrets.js.map +1 -0
  102. package/env.template +60 -47
  103. 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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"}