@efebia/one-env 1.0.1 → 1.0.3
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 +52 -12
- package/lib/cli/commands/pull.d.ts +11 -0
- package/lib/cli/commands/pull.d.ts.map +1 -0
- package/lib/cli/commands/pull.js +98 -0
- package/lib/cli/commands/pull.js.map +1 -0
- package/lib/cli/commands/push.d.ts +11 -0
- package/lib/cli/commands/push.d.ts.map +1 -0
- package/lib/cli/commands/{upload.js → push.js} +9 -9
- package/lib/cli/commands/push.js.map +1 -0
- package/lib/cli/env-tool.d.ts +2 -1
- package/lib/cli/env-tool.d.ts.map +1 -1
- package/lib/cli/env-tool.js +21 -8
- package/lib/cli/env-tool.js.map +1 -1
- package/lib/cli/types.d.ts +9 -1
- package/lib/cli/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/lib/cli/commands/upload.d.ts +0 -11
- package/lib/cli/commands/upload.d.ts.map +0 -1
- package/lib/cli/commands/upload.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Type-safe environment configuration management for Node.js applications with run
|
|
|
9
9
|
- 🛠️ **CLI tools** for generating, validating, and managing environment files
|
|
10
10
|
- 🌍 **Multiple sources**: Load from YAML files or JSON environment variables
|
|
11
11
|
- 🚀 **Production ready**: Validate AWS Secrets Manager configurations
|
|
12
|
-
- 📤 **
|
|
12
|
+
- 📤 **Push & Pull**: Sync secrets with AWS Secrets Manager
|
|
13
13
|
- 💡 **Developer friendly**: Autocomplete for all environment variables
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
@@ -152,25 +152,58 @@ one-env validate-aws -s ./env-schema.js --secret-name my-app/prod --profile prod
|
|
|
152
152
|
one-env validate-aws -s ./env-schema.js --secret-name my-app/prod --region us-east-1
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
###
|
|
155
|
+
### Pull from AWS Secrets Manager
|
|
156
156
|
|
|
157
|
-
|
|
157
|
+
Pull your environment configuration from AWS Secrets Manager to a local file:
|
|
158
158
|
|
|
159
159
|
```bash
|
|
160
|
-
#
|
|
161
|
-
one-env
|
|
160
|
+
# Pull from AWS to local file
|
|
161
|
+
one-env pull -s ./env-schema.js --secret-name dev-envs
|
|
162
162
|
|
|
163
|
-
#
|
|
164
|
-
one-env
|
|
163
|
+
# Pull with custom output file
|
|
164
|
+
one-env pull -s ./env-schema.js --secret-name prod-envs --output env.prod.yml
|
|
165
165
|
|
|
166
|
-
#
|
|
167
|
-
one-env
|
|
166
|
+
# Force overwrite existing file
|
|
167
|
+
one-env pull -s ./env-schema.js --secret-name dev-envs --force
|
|
168
|
+
|
|
169
|
+
# With specific AWS profile and region
|
|
170
|
+
one-env pull -s ./env-schema.js --secret-name dev-envs --profile development --region us-east-1
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Push to AWS Secrets Manager
|
|
174
|
+
|
|
175
|
+
Push your local environment configuration to AWS Secrets Manager:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Push to AWS (with confirmation prompt)
|
|
179
|
+
one-env push -s ./env-schema.js --file env.prod.yml --secret-name prod-envs
|
|
180
|
+
|
|
181
|
+
# Push with environment tag
|
|
182
|
+
one-env push -s ./env-schema.js --file env.prod.yml --secret-name prod-envs --environment production
|
|
183
|
+
|
|
184
|
+
# Dry-run to preview what will be pushed
|
|
185
|
+
one-env push -s ./env-schema.js --file env.prod.yml --secret-name prod-envs --dry-run
|
|
168
186
|
|
|
169
187
|
# Skip confirmation prompt (for CI/CD)
|
|
170
|
-
one-env
|
|
188
|
+
one-env push -s ./env-schema.js --file env.prod.yml --secret-name prod-envs --force
|
|
171
189
|
|
|
172
190
|
# With specific AWS profile and region
|
|
173
|
-
one-env
|
|
191
|
+
one-env push -s ./env-schema.js --file env.prod.yml --secret-name prod-envs --profile production --region us-east-1
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Typical Workflow
|
|
195
|
+
|
|
196
|
+
Update a single value in development:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# 1. Pull current configuration
|
|
200
|
+
one-env pull -s ./env-schema.js --secret-name dev-envs
|
|
201
|
+
|
|
202
|
+
# 2. Edit the file locally
|
|
203
|
+
vim env.pulled.yml # Change databaseUrl or any other value
|
|
204
|
+
|
|
205
|
+
# 3. Push changes back
|
|
206
|
+
one-env push -s ./env-schema.js --file env.pulled.yml --secret-name dev-envs
|
|
174
207
|
```
|
|
175
208
|
|
|
176
209
|
**Security Note**: Never commit files containing actual secrets. Use `.gitignore` to exclude environment files with sensitive data.
|
|
@@ -310,4 +343,11 @@ Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
310
343
|
|
|
311
344
|
## Support
|
|
312
345
|
|
|
313
|
-
For bugs and feature requests, please [create an issue](https://github.com/efebia/be-libs/issues).
|
|
346
|
+
For bugs and feature requests, please [create an issue](https://github.com/efebia/be-libs/issues).
|
|
347
|
+
|
|
348
|
+
## Changelog
|
|
349
|
+
|
|
350
|
+
### 1.0.2 (Upcoming)
|
|
351
|
+
- Add `pull` command to download secrets from AWS Secrets Manager
|
|
352
|
+
- Rename `upload` command to `push` for consistent workflow
|
|
353
|
+
- Fix Node.js version requirement (>= 20.0.0)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pull command implementation
|
|
3
|
+
* Pulls environment configuration from AWS Secrets Manager to a local file
|
|
4
|
+
*/
|
|
5
|
+
import { PullOptions } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Handles the pull command
|
|
8
|
+
* @param options - Command options
|
|
9
|
+
*/
|
|
10
|
+
export declare function handlePullCommand(options: PullOptions): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=pull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/pull.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+F3E"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pull command implementation
|
|
3
|
+
* Pulls environment configuration from AWS Secrets Manager to a local file
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { createSecretsManagerClient, getSecretValue } from '../utils/aws.js';
|
|
7
|
+
import { resolvePath, fileExists, writeFile, createYamlContent } from '../utils/file.js';
|
|
8
|
+
import { validateEnvData } from '../utils/validation.js';
|
|
9
|
+
import { printValidationResults, printStatus } from '../utils/formatting.js';
|
|
10
|
+
import { loadSchema, formatSchemaSource } from '../utils/schema-loader.js';
|
|
11
|
+
import readline from 'node:readline/promises';
|
|
12
|
+
/**
|
|
13
|
+
* Handles the pull command
|
|
14
|
+
* @param options - Command options
|
|
15
|
+
*/
|
|
16
|
+
export async function handlePullCommand(options) {
|
|
17
|
+
// Configure AWS client
|
|
18
|
+
const client = createSecretsManagerClient(options.region, options.profile);
|
|
19
|
+
try {
|
|
20
|
+
// Load schema dynamically
|
|
21
|
+
printStatus(`Loading schema from ${formatSchemaSource(options.schema)}...`, 'info');
|
|
22
|
+
const schema = await loadSchema(options.schema);
|
|
23
|
+
// Fetch secret from AWS
|
|
24
|
+
printStatus(`Fetching secret '${options.secretName}' from AWS Secrets Manager...`, 'info');
|
|
25
|
+
const secretData = await getSecretValue(client, options.secretName);
|
|
26
|
+
// Validate against schema
|
|
27
|
+
printStatus('Validating pulled configuration against schema...', 'info');
|
|
28
|
+
const validationResults = validateEnvData(secretData, schema, options.secretName, options.region);
|
|
29
|
+
if (!validationResults.success) {
|
|
30
|
+
console.error(`\n${chalk.red.bold('Warning:')} Pulled configuration has validation issues\n`);
|
|
31
|
+
printValidationResults(validationResults);
|
|
32
|
+
console.log(`\n${chalk.yellow('Note:')} The configuration will still be saved, but you should fix these issues before pushing.`);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
printStatus('Configuration is valid!', 'success');
|
|
36
|
+
}
|
|
37
|
+
// Check if output file exists
|
|
38
|
+
const outputPath = resolvePath(options.output);
|
|
39
|
+
if (fileExists(outputPath) && !options.force) {
|
|
40
|
+
const rl = readline.createInterface({
|
|
41
|
+
input: process.stdin,
|
|
42
|
+
output: process.stdout
|
|
43
|
+
});
|
|
44
|
+
console.log(`\n${chalk.yellow.bold('Warning:')} File '${options.output}' already exists`);
|
|
45
|
+
const answer = await rl.question(`\nDo you want to overwrite it? (yes/no): `);
|
|
46
|
+
rl.close();
|
|
47
|
+
if (answer.toLowerCase() !== 'yes' && answer.toLowerCase() !== 'y') {
|
|
48
|
+
console.log('\n' + chalk.yellow('Pull cancelled'));
|
|
49
|
+
process.exit(0);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Create YAML content with header
|
|
53
|
+
const header = `# Environment Configuration File
|
|
54
|
+
# Pulled from AWS Secrets Manager
|
|
55
|
+
# Secret: ${options.secretName}
|
|
56
|
+
# Region: ${options.region}
|
|
57
|
+
# Date: ${new Date().toISOString()}
|
|
58
|
+
#
|
|
59
|
+
# WARNING: This file contains secrets! Do not commit to version control.
|
|
60
|
+
# Add to .gitignore: ${options.output}
|
|
61
|
+
|
|
62
|
+
`;
|
|
63
|
+
const yamlContent = createYamlContent(secretData);
|
|
64
|
+
const fullContent = header + yamlContent.split('\n').slice(3).join('\n'); // Remove default header
|
|
65
|
+
// Write to file
|
|
66
|
+
writeFile(outputPath, fullContent);
|
|
67
|
+
printStatus(`Configuration saved to '${options.output}'`, 'success');
|
|
68
|
+
console.log(`\n${chalk.green.bold('Success!')} Environment configuration has been pulled`);
|
|
69
|
+
console.log(`\n${chalk.yellow.bold('Security reminder:')}`);
|
|
70
|
+
console.log(` - Do not commit this file to version control`);
|
|
71
|
+
console.log(` - Add '${options.output}' to your .gitignore file`);
|
|
72
|
+
console.log(` - Consider adding pattern 'env.*.yml' to .gitignore`);
|
|
73
|
+
console.log(`\n${chalk.cyan('Next steps:')}`);
|
|
74
|
+
console.log(` 1. Edit '${options.output}' to make your changes`);
|
|
75
|
+
console.log(` 2. Push changes back:`);
|
|
76
|
+
console.log(chalk.cyan(` one-env push --schema ${options.schema} --file ${options.output} --secret-name ${options.secretName} --region ${options.region}`));
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const tips = [];
|
|
80
|
+
if (error.message.includes('not found')) {
|
|
81
|
+
tips.push('Check that the secret name and region are correct.');
|
|
82
|
+
tips.push('Ensure you have AWS credentials configured.');
|
|
83
|
+
}
|
|
84
|
+
else if (error.message.includes('credentials')) {
|
|
85
|
+
tips.push("Configure AWS credentials using 'aws configure' or environment variables.");
|
|
86
|
+
}
|
|
87
|
+
else if (error.message.includes('AccessDenied')) {
|
|
88
|
+
tips.push('Ensure your AWS credentials have permission to read secrets.');
|
|
89
|
+
tips.push('Required permission: secretsmanager:GetSecretValue');
|
|
90
|
+
}
|
|
91
|
+
console.error(`\n${chalk.red.bold('Error:')} ${error.message}\n`);
|
|
92
|
+
tips.forEach(tip => {
|
|
93
|
+
console.log(`${chalk.yellow('Tip:')} ${tip}`);
|
|
94
|
+
});
|
|
95
|
+
process.exit(1);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/cli/commands/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Push command implementation
|
|
3
|
+
* Pushes environment configuration to AWS Secrets Manager
|
|
4
|
+
*/
|
|
5
|
+
import { PushOptions } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Handles the push command
|
|
8
|
+
* @param options - Command options
|
|
9
|
+
*/
|
|
10
|
+
export declare function handlePushCommand(options: PushOptions): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQ1C;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkH3E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Push command implementation
|
|
3
|
+
* Pushes environment configuration to AWS Secrets Manager
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { createSecretsManagerClient, createOrUpdateSecret, getSecretValue } from '../utils/aws.js';
|
|
@@ -10,10 +10,10 @@ import { printValidationResults, printStatus } from '../utils/formatting.js';
|
|
|
10
10
|
import { loadSchema, formatSchemaSource } from '../utils/schema-loader.js';
|
|
11
11
|
import readline from 'node:readline/promises';
|
|
12
12
|
/**
|
|
13
|
-
* Handles the
|
|
13
|
+
* Handles the push command
|
|
14
14
|
* @param options - Command options
|
|
15
15
|
*/
|
|
16
|
-
export async function
|
|
16
|
+
export async function handlePushCommand(options) {
|
|
17
17
|
// Configure AWS client
|
|
18
18
|
const client = createSecretsManagerClient(options.region, options.profile);
|
|
19
19
|
try {
|
|
@@ -55,7 +55,7 @@ export async function handleUploadCommand(options) {
|
|
|
55
55
|
if (secretExists) {
|
|
56
56
|
console.log(`\n${chalk.yellow('Note:')} Secret already exists and will be updated`);
|
|
57
57
|
}
|
|
58
|
-
console.log(`\n${chalk.cyan('Configuration to
|
|
58
|
+
console.log(`\n${chalk.cyan('Configuration to push:')}`);
|
|
59
59
|
console.log(JSON.stringify(envData, null, 2));
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
@@ -74,11 +74,11 @@ export async function handleUploadCommand(options) {
|
|
|
74
74
|
const answer = await rl.question(`\nDo you want to continue? (yes/no): `);
|
|
75
75
|
rl.close();
|
|
76
76
|
if (answer.toLowerCase() !== 'yes' && answer.toLowerCase() !== 'y') {
|
|
77
|
-
console.log('\n' + chalk.yellow('
|
|
77
|
+
console.log('\n' + chalk.yellow('Push cancelled'));
|
|
78
78
|
process.exit(0);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
//
|
|
81
|
+
// Push to AWS
|
|
82
82
|
printStatus(`${secretExists ? 'Updating' : 'Creating'} secret '${options.secretName}' in AWS Secrets Manager...`, 'info');
|
|
83
83
|
const tags = options.environment ? [
|
|
84
84
|
{ Key: 'Environment', Value: options.environment },
|
|
@@ -88,7 +88,7 @@ export async function handleUploadCommand(options) {
|
|
|
88
88
|
];
|
|
89
89
|
await createOrUpdateSecret(client, options.secretName, envData, tags);
|
|
90
90
|
printStatus(`Secret '${options.secretName}' ${secretExists ? 'updated' : 'created'} successfully!`, 'success');
|
|
91
|
-
console.log(`\n${chalk.green.bold('Success!')} Environment configuration has been
|
|
91
|
+
console.log(`\n${chalk.green.bold('Success!')} Environment configuration has been pushed`);
|
|
92
92
|
console.log(`\nYou can validate it with:`);
|
|
93
93
|
console.log(chalk.cyan(` one-env validate-aws --schema ${options.schema} --secret-name ${options.secretName} --region ${options.region}`));
|
|
94
94
|
}
|
|
@@ -108,4 +108,4 @@ export async function handleUploadCommand(options) {
|
|
|
108
108
|
process.exit(1);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
//# sourceMappingURL=
|
|
111
|
+
//# sourceMappingURL=push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/env-tool.d.ts
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* - generate: Creates new environment files with default values from schema
|
|
7
7
|
* - validate: Validates existing environment files against the schema
|
|
8
8
|
* - validate-aws: Validates AWS Secrets Manager secrets against the schema
|
|
9
|
-
* -
|
|
9
|
+
* - pull: Pulls environment configuration from AWS Secrets Manager
|
|
10
|
+
* - push: Pushes environment configuration to AWS Secrets Manager
|
|
10
11
|
*/
|
|
11
12
|
export {};
|
|
12
13
|
//# sourceMappingURL=env-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-tool.d.ts","sourceRoot":"","sources":["../../src/cli/env-tool.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"env-tool.d.ts","sourceRoot":"","sources":["../../src/cli/env-tool.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}
|
package/lib/cli/env-tool.js
CHANGED
|
@@ -6,14 +6,16 @@
|
|
|
6
6
|
* - generate: Creates new environment files with default values from schema
|
|
7
7
|
* - validate: Validates existing environment files against the schema
|
|
8
8
|
* - validate-aws: Validates AWS Secrets Manager secrets against the schema
|
|
9
|
-
* -
|
|
9
|
+
* - pull: Pulls environment configuration from AWS Secrets Manager
|
|
10
|
+
* - push: Pushes environment configuration to AWS Secrets Manager
|
|
10
11
|
*/
|
|
11
12
|
import { Command } from 'commander';
|
|
12
13
|
import chalk from 'chalk';
|
|
13
14
|
import { handleGenerateCommand } from './commands/generate.js';
|
|
14
15
|
import { handleValidateCommand } from './commands/validate.js';
|
|
15
16
|
import { handleValidateAwsCommand } from './commands/validate-aws.js';
|
|
16
|
-
import {
|
|
17
|
+
import { handlePushCommand } from './commands/push.js';
|
|
18
|
+
import { handlePullCommand } from './commands/pull.js';
|
|
17
19
|
// ============================================================================
|
|
18
20
|
// MAIN CLI SETUP
|
|
19
21
|
// ============================================================================
|
|
@@ -48,19 +50,30 @@ program
|
|
|
48
50
|
.option('--profile <profile>', 'AWS profile to use (optional)')
|
|
49
51
|
.option('--json', 'Output results in JSON format', false)
|
|
50
52
|
.action(handleValidateAwsCommand);
|
|
51
|
-
//
|
|
53
|
+
// Pull command
|
|
52
54
|
program
|
|
53
|
-
.command('
|
|
54
|
-
.description('
|
|
55
|
+
.command('pull')
|
|
56
|
+
.description('Pull environment configuration from AWS Secrets Manager')
|
|
55
57
|
.requiredOption('-s, --schema <path>', 'Path to schema file (TypeScript or JavaScript)')
|
|
56
|
-
.
|
|
58
|
+
.option('--secret-name <name>', 'Name of the secret in AWS Secrets Manager', 'envs')
|
|
59
|
+
.option('--output <file>', 'Output file name', 'env.pulled.yml')
|
|
60
|
+
.option('--region <region>', 'AWS region', process.env['AWS_REGION'] || 'eu-west-1')
|
|
61
|
+
.option('--profile <profile>', 'AWS profile to use (optional)')
|
|
62
|
+
.option('--force', 'Overwrite existing file without confirmation', false)
|
|
63
|
+
.action(handlePullCommand);
|
|
64
|
+
// Push command
|
|
65
|
+
program
|
|
66
|
+
.command('push')
|
|
67
|
+
.description('Push environment configuration to AWS Secrets Manager')
|
|
68
|
+
.requiredOption('-s, --schema <path>', 'Path to schema file (TypeScript or JavaScript)')
|
|
69
|
+
.requiredOption('--file <path>', 'Path to the environment file to push')
|
|
57
70
|
.option('--secret-name <name>', 'Name of the secret in AWS Secrets Manager', 'envs')
|
|
58
71
|
.option('--region <region>', 'AWS region', process.env['AWS_REGION'] || 'eu-west-1')
|
|
59
72
|
.option('--profile <profile>', 'AWS profile to use (optional)')
|
|
60
73
|
.option('--environment <env>', 'Environment tag (e.g., dev, staging, prod)')
|
|
61
|
-
.option('--dry-run', 'Preview what would be
|
|
74
|
+
.option('--dry-run', 'Preview what would be pushed without making changes', false)
|
|
62
75
|
.option('--force', 'Skip confirmation prompts', false)
|
|
63
|
-
.action(
|
|
76
|
+
.action(handlePushCommand);
|
|
64
77
|
// Check dependencies before running
|
|
65
78
|
try {
|
|
66
79
|
await import('js-yaml');
|
package/lib/cli/env-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-tool.js","sourceRoot":"","sources":["../../src/cli/env-tool.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"env-tool.js","sourceRoot":"","sources":["../../src/cli/env-tool.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/types.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface ValidateAwsOptions {
|
|
|
18
18
|
profile?: string;
|
|
19
19
|
json: boolean;
|
|
20
20
|
}
|
|
21
|
-
export interface
|
|
21
|
+
export interface PushOptions {
|
|
22
22
|
schema: string;
|
|
23
23
|
file: string;
|
|
24
24
|
secretName: string;
|
|
@@ -28,6 +28,14 @@ export interface UploadOptions {
|
|
|
28
28
|
dryRun: boolean;
|
|
29
29
|
force: boolean;
|
|
30
30
|
}
|
|
31
|
+
export interface PullOptions {
|
|
32
|
+
schema: string;
|
|
33
|
+
secretName: string;
|
|
34
|
+
output: string;
|
|
35
|
+
region: string;
|
|
36
|
+
profile?: string;
|
|
37
|
+
force: boolean;
|
|
38
|
+
}
|
|
31
39
|
export interface ValidationResult {
|
|
32
40
|
success: boolean;
|
|
33
41
|
source: string;
|
package/lib/cli/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cli/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Upload command implementation
|
|
3
|
-
* Uploads environment configuration to AWS Secrets Manager
|
|
4
|
-
*/
|
|
5
|
-
import { UploadOptions } from '../types.js';
|
|
6
|
-
/**
|
|
7
|
-
* Handles the upload command
|
|
8
|
-
* @param options - Command options
|
|
9
|
-
*/
|
|
10
|
-
export declare function handleUploadCommand(options: UploadOptions): Promise<void>;
|
|
11
|
-
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkH/E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/cli/commands/upload.ts"],"names":[],"mappings":"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"}
|