envilder 0.6.5 โ 0.7.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/LICENSE +21 -21
- package/README.md +249 -244
- package/ROADMAP.md +67 -66
- package/docs/CHANGELOG.md +345 -0
- package/docs/SECURITY.md +167 -0
- package/lib/apps/cli/Cli.d.ts +0 -1
- package/lib/apps/cli/Cli.d.ts.map +1 -1
- package/lib/apps/cli/Cli.js +0 -6
- package/lib/apps/cli/Cli.js.map +1 -1
- package/lib/apps/cli/Index.d.ts +7 -0
- package/lib/apps/cli/Index.d.ts.map +1 -0
- package/lib/apps/cli/Index.js +12 -0
- package/lib/apps/cli/Index.js.map +1 -0
- package/lib/apps/gha/Gha.d.ts +3 -0
- package/lib/apps/gha/Gha.d.ts.map +1 -0
- package/lib/apps/gha/Gha.js +62 -0
- package/lib/apps/gha/Gha.js.map +1 -0
- package/lib/apps/gha/Index.d.ts +7 -0
- package/lib/apps/gha/Index.d.ts.map +1 -0
- package/lib/apps/gha/Index.js +12 -0
- package/lib/apps/gha/Index.js.map +1 -0
- package/lib/apps/gha/Startup.d.ts +19 -0
- package/lib/apps/gha/Startup.d.ts.map +1 -0
- package/lib/apps/gha/Startup.js +75 -0
- package/lib/apps/gha/Startup.js.map +1 -0
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.d.ts.map +1 -1
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.js +6 -0
- package/lib/envilder/infrastructure/variableStore/FileVariableStore.js.map +1 -1
- package/package.json +53 -39
package/ROADMAP.md
CHANGED
|
@@ -1,66 +1,67 @@
|
|
|
1
|
-
# ๐ฃ๏ธ Envilder Roadmap
|
|
2
|
-
|
|
3
|
-
Envilder aims to be the simplest, most reliable way to generate `.env` files from AWS SSM Parameter Store
|
|
4
|
-
โ for both local development and CI/CD pipelines.
|
|
5
|
-
|
|
6
|
-
## โ
Current Features
|
|
7
|
-
|
|
8
|
-
- Map-based secret resolution via `param-map.json`
|
|
9
|
-
- Outputs clean `.env` files
|
|
10
|
-
- Supports AWS profiles (`AWS_PROFILE`)
|
|
11
|
-
- Compatible with SecureString and plain parameters
|
|
12
|
-
- CLI-first, lightweight
|
|
13
|
-
- ๐ธ **Demo GIF/video** showing the tool in action (terminal + env + app)
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## ๐ง Planned Improvements
|
|
18
|
-
|
|
19
|
-
### ๐น Usability & Visibility
|
|
20
|
-
|
|
21
|
-
- [ ] ๐ **Auto-discovery mode** (`--auto`) for fetching all parameters with a given prefix
|
|
22
|
-
- [ ] โ๏ธ **Tutorial repo** showing full example with GitHub Actions
|
|
23
|
-
- [
|
|
24
|
-
|
|
25
|
-
### ๐น Dev Experience & Adoption
|
|
26
|
-
|
|
27
|
-
- [ ] โ
**Check mode** (`--check`) to validate SSM vs existing `.env` and fail CI if out-of-sync
|
|
28
|
-
- [ ] ๐ **Onboarding doc** for new teams (how to set up param-map, profiles, best practices)
|
|
29
|
-
|
|
30
|
-
### ๐น Advanced Features
|
|
31
|
-
|
|
32
|
-
- [ ] โฉ๏ธ **Push mode** (`--push`) to push local `.env` back to AWS SSM
|
|
33
|
-
- [ ] ๐ **Optional webhook/Slack notifier** on secret sync (for audit/logging)
|
|
34
|
-
- [ ] ๐ **Web-based interactive demo** (optional) to test mappings live
|
|
35
|
-
- [ ] ๐ง **Awesome list submissions** and community templates
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## ๐งช Long-term Ideas (Open to Feedback)
|
|
40
|
-
|
|
41
|
-
- [ ] ๐ Support hierarchical `param-map.json` per environment
|
|
42
|
-
- [ ] ๐งฌ Plugin system for custom resolvers (e.g., secrets from other providers)
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## ๐ Contribute or suggest ideas
|
|
47
|
-
|
|
48
|
-
If youโve faced similar problems or want to help improve this tool, feel free to open an issue, submit a PR
|
|
49
|
-
or reach out.
|
|
50
|
-
Every bit of feedback helps make this tool better for the community.
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Feature Status
|
|
55
|
-
|
|
56
|
-
| Feature | Status | Notes |
|
|
57
|
-
|--------------------------------|---------------|-------|
|
|
58
|
-
| Push mode (`--push`) | โ
Implemented | |
|
|
59
|
-
| Mapping-based secret resolution| โ
Implemented | |
|
|
60
|
-
| .env file generation | โ
Implemented | |
|
|
61
|
-
| AWS profile support | โ
Implemented | |
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
|
1
|
+
# ๐ฃ๏ธ Envilder Roadmap
|
|
2
|
+
|
|
3
|
+
Envilder aims to be the simplest, most reliable way to generate `.env` files from AWS SSM Parameter Store
|
|
4
|
+
โ for both local development and CI/CD pipelines.
|
|
5
|
+
|
|
6
|
+
## โ
Current Features
|
|
7
|
+
|
|
8
|
+
- Map-based secret resolution via `param-map.json`
|
|
9
|
+
- Outputs clean `.env` files
|
|
10
|
+
- Supports AWS profiles (`AWS_PROFILE`)
|
|
11
|
+
- Compatible with SecureString and plain parameters
|
|
12
|
+
- CLI-first, lightweight
|
|
13
|
+
- ๐ธ **Demo GIF/video** showing the tool in action (terminal + env + app)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## ๐ง Planned Improvements
|
|
18
|
+
|
|
19
|
+
### ๐น Usability & Visibility
|
|
20
|
+
|
|
21
|
+
- [ ] ๐ **Auto-discovery mode** (`--auto`) for fetching all parameters with a given prefix
|
|
22
|
+
- [ ] โ๏ธ **Tutorial repo** showing full example with GitHub Actions
|
|
23
|
+
- [x] ๐๏ธ **Official GitHub Action** (in Marketplace)
|
|
24
|
+
|
|
25
|
+
### ๐น Dev Experience & Adoption
|
|
26
|
+
|
|
27
|
+
- [ ] โ
**Check mode** (`--check`) to validate SSM vs existing `.env` and fail CI if out-of-sync
|
|
28
|
+
- [ ] ๐ **Onboarding doc** for new teams (how to set up param-map, profiles, best practices)
|
|
29
|
+
|
|
30
|
+
### ๐น Advanced Features
|
|
31
|
+
|
|
32
|
+
- [ ] โฉ๏ธ **Push mode** (`--push`) to push local `.env` back to AWS SSM
|
|
33
|
+
- [ ] ๐ **Optional webhook/Slack notifier** on secret sync (for audit/logging)
|
|
34
|
+
- [ ] ๐ **Web-based interactive demo** (optional) to test mappings live
|
|
35
|
+
- [ ] ๐ง **Awesome list submissions** and community templates
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ๐งช Long-term Ideas (Open to Feedback)
|
|
40
|
+
|
|
41
|
+
- [ ] ๐ Support hierarchical `param-map.json` per environment
|
|
42
|
+
- [ ] ๐งฌ Plugin system for custom resolvers (e.g., secrets from other providers)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## ๐ Contribute or suggest ideas
|
|
47
|
+
|
|
48
|
+
If youโve faced similar problems or want to help improve this tool, feel free to open an issue, submit a PR
|
|
49
|
+
or reach out.
|
|
50
|
+
Every bit of feedback helps make this tool better for the community.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Feature Status
|
|
55
|
+
|
|
56
|
+
| Feature | Status | Notes |
|
|
57
|
+
|--------------------------------|---------------|-------|
|
|
58
|
+
| Push mode (`--push`) | โ
Implemented | |
|
|
59
|
+
| Mapping-based secret resolution| โ
Implemented | |
|
|
60
|
+
| .env file generation | โ
Implemented | |
|
|
61
|
+
| AWS profile support | โ
Implemented | |
|
|
62
|
+
| GitHub Action | โ
Implemented | Available as composite action |
|
|
63
|
+
| Auto-discovery mode (`--auto`) | โ Not implemented | Planned |
|
|
64
|
+
| Check/sync mode (`--check`) | โ Not implemented | Planned |
|
|
65
|
+
| Webhook/Slack notification | โ Not implemented | Planned |
|
|
66
|
+
| Hierarchical mapping | โ Not implemented | Only flat JSON mapping supported |
|
|
67
|
+
| Plugin system | โ Not implemented | Only AWS SSM supported |
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# [0.7.0](https://github.com/macalbert/envilder/compare/v0.6.6...v0.7.0) (2025-11-16)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
* โป๏ธ Move GitHub Action to github-action/ subfolder ([d9bf4d2](https://github.com/macalbert/envilder/commit/d9bf4d2e81acbb1ef2b4e0034c0b6aaa8b307ba3))
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **githubAction:** Correct author name in action.yml ([e964aff](https://github.com/macalbert/envilder/commit/e964affbca8410aada8494648dee62ab2a1ab5de))
|
|
10
|
+
* **githubAction:** Correct build command from ppnpm to pnpm ([c9df0c4](https://github.com/macalbert/envilder/commit/c9df0c4cb612de0f2b6ab6406235c54fcb45d0c2))
|
|
11
|
+
* **githubAction:** Correct path to GitHubAction.js in validation step ([94d1166](https://github.com/macalbert/envilder/commit/94d116632f4a6de656449f238ec007eeede2f5f2))
|
|
12
|
+
* **githubAction:** Remove source map generation from build:gha script ([8989448](https://github.com/macalbert/envilder/commit/898944898cdea866f28f8874b714bfe3fd2dd88e))
|
|
13
|
+
* **githubAction:** Update action references in documentation and code ([412601b](https://github.com/macalbert/envilder/commit/412601b7b56a90dd50e031addcaf192e2dec8ba3))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **githubAction:** Add end-to-end tests for GitHub Actions simulation ([29464a0](https://github.com/macalbert/envilder/commit/29464a016d0072cc728345400f68e0c62669579b))
|
|
19
|
+
* **githubAction:** Update action paths and add new GitHub Action implementation ([4310e50](https://github.com/macalbert/envilder/commit/4310e5040fa4952c50e800578fb91e00cf2f7a36))
|
|
20
|
+
* **githubAction:** Update action script paths and add entry point ([9f64e56](https://github.com/macalbert/envilder/commit/9f64e567d8c90832ee402accb6aba9264554a1e7))
|
|
21
|
+
* **packaging:** Add project build and uninstall functionality ([70fc574](https://github.com/macalbert/envilder/commit/70fc5745c1490f33322f5fb8af1b68dd7e565fc1))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### BREAKING CHANGES
|
|
25
|
+
|
|
26
|
+
* Action path changed from macalbert/envilder@v1 to macalbert/envilder/github-action@v1
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# Changelog
|
|
31
|
+
<!-- markdownlint-disable MD024 -->
|
|
32
|
+
|
|
33
|
+
All notable changes to this project will be documented in this file.
|
|
34
|
+
|
|
35
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
36
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
37
|
+
|
|
38
|
+
## [0.6.6] - 2025-11-02
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- Updated AWS credentials configuration in workflows
|
|
43
|
+
- Bumped vite from 7.1.10 to 7.1.11
|
|
44
|
+
- Bumped @types/node from 24.7.2 to 24.9.2
|
|
45
|
+
- Bumped @biomejs/biome from 2.2.6 to 2.3.2
|
|
46
|
+
- Bumped GitHub/codeql-action from 3 to 4
|
|
47
|
+
- Bumped actions/setup-node from 5 to 6
|
|
48
|
+
- Bumped vitest from 3.2.4 to 4.0.6
|
|
49
|
+
|
|
50
|
+
### Documentation
|
|
51
|
+
|
|
52
|
+
- Added Snyk badge for known vulnerabilities in README
|
|
53
|
+
|
|
54
|
+
## [0.6.5] - 2025-10-15
|
|
55
|
+
|
|
56
|
+
### Added
|
|
57
|
+
|
|
58
|
+
- Enabled npm trusted publishing with OIDC authentication
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
|
|
62
|
+
- Bumped tmp from 0.2.3 to 0.2.4
|
|
63
|
+
- Bumped @types/node from 22.16.3 to 24.3.0
|
|
64
|
+
- Bumped @testcontainers/localstack from 11.2.1 to 11.5.1
|
|
65
|
+
- Bumped testcontainers from 11.2.1 to 11.5.1
|
|
66
|
+
- Bumped @aws-sdk/credential-providers from 3.844.0 to 3.879.0
|
|
67
|
+
- Bumped secretlint from 10.2.1 to 11.2.0
|
|
68
|
+
- Bumped @biomejs/biome from 2.1.3 to 2.2.4
|
|
69
|
+
- Bumped @secretlint/secretlint-rule-preset-recommend from 10.2.1 to 11.2.4
|
|
70
|
+
- Bumped vite from 7.0.4 to 7.1.5
|
|
71
|
+
- Bumped commander from 14.0.0 to 14.0.1
|
|
72
|
+
- Bumped inversify from 7.6.1 to 7.10.2
|
|
73
|
+
- Updated actions/checkout from 4 to 5
|
|
74
|
+
- Updated actions/setup-node from 4 to 5
|
|
75
|
+
- Updated actions/upload-pages-artifact from 3 to 4
|
|
76
|
+
- Updated aws-actions/configure-aws-credentials from 4 to 5
|
|
77
|
+
|
|
78
|
+
## [0.6.4] - 2025-08-02
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
|
|
82
|
+
- Bumped typescript from 5.8.3 to 5.9.2
|
|
83
|
+
- Bumped secretlint from 10.2.0 to 10.2.1
|
|
84
|
+
- Bumped @types/glob from 8.1.0 to 9.0.0
|
|
85
|
+
- Bumped @secretlint/secretlint-rule-preset-recommend from 10.2.0 to 10.2.1
|
|
86
|
+
- Bumped @biomejs/biome from 2.1.1 to 2.1.3
|
|
87
|
+
|
|
88
|
+
## [0.6.3] - 2025-07-20
|
|
89
|
+
|
|
90
|
+
### Changed
|
|
91
|
+
|
|
92
|
+
- Implemented .NET-Style DIP Startup Pattern for dependency injection
|
|
93
|
+
- Improved separation of concerns in dependency configuration
|
|
94
|
+
|
|
95
|
+
## [0.6.1] - 2025-07-13
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
|
|
99
|
+
- **Push Mode** functionality to upload environment variables to AWS SSM Parameter Store
|
|
100
|
+
- File-based approach for pushing multiple variables from `.env` files
|
|
101
|
+
- Single-variable approach for direct command line uploads
|
|
102
|
+
- Support for working with different AWS profiles when pushing secrets
|
|
103
|
+
- Comprehensive test coverage for all Push Mode functionality
|
|
104
|
+
|
|
105
|
+
### Security
|
|
106
|
+
|
|
107
|
+
- Implemented secure parameter handling to protect sensitive values
|
|
108
|
+
- Maintained AWS IAM best practices for least privilege
|
|
109
|
+
- Added safeguards against accidental overwrites of critical parameters
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
|
|
113
|
+
- Designed clean, modular command structure for Push Mode operations
|
|
114
|
+
- Added new domain models and handlers to support Push feature
|
|
115
|
+
- Maintained separation of concerns between infrastructure and application layers
|
|
116
|
+
- Ensured backward compatibility with existing Pull Mode features
|
|
117
|
+
|
|
118
|
+
### Documentation
|
|
119
|
+
|
|
120
|
+
- Added comprehensive examples for all new Push Mode commands
|
|
121
|
+
- Created visual diagrams explaining Push Mode data flow
|
|
122
|
+
- Documented options and parameters for Push Mode operations
|
|
123
|
+
|
|
124
|
+
## [0.5.6] - 2025-07-06
|
|
125
|
+
|
|
126
|
+
### Added
|
|
127
|
+
|
|
128
|
+
- Introduced new logger interface for seamless integration of custom logging implementations
|
|
129
|
+
|
|
130
|
+
### Changed
|
|
131
|
+
|
|
132
|
+
- Updated several packages to latest versions for improved security and performance
|
|
133
|
+
|
|
134
|
+
### Documentation
|
|
135
|
+
|
|
136
|
+
- Added video guide to README demonstrating CLI usage
|
|
137
|
+
- Enhanced user onboarding materials
|
|
138
|
+
|
|
139
|
+
## [0.5.5] - 2025-06-29
|
|
140
|
+
|
|
141
|
+
### Changed
|
|
142
|
+
|
|
143
|
+
- Moved `EnvilderBuilder` from `domain` to `application/builders` directory
|
|
144
|
+
- Updated import paths across codebase for better organization
|
|
145
|
+
- Enhanced code architecture alignment with domain-driven design principles
|
|
146
|
+
|
|
147
|
+
### Fixed
|
|
148
|
+
|
|
149
|
+
- Fixed glob pattern and path handling in test cleanup functions
|
|
150
|
+
- Corrected file path resolution in end-to-end tests
|
|
151
|
+
- Improved error handling during test file deletions
|
|
152
|
+
|
|
153
|
+
### Documentation
|
|
154
|
+
|
|
155
|
+
- Extensively updated README with clearer structure and table of contents
|
|
156
|
+
- Added feature status table to clarify implemented vs planned features
|
|
157
|
+
- Simplified installation and usage instructions
|
|
158
|
+
- Revamped pull request template for better contributor experience
|
|
159
|
+
- Removed outdated environment-specific parameter examples
|
|
160
|
+
|
|
161
|
+
## [0.5.4] - 2025-06-10
|
|
162
|
+
|
|
163
|
+
### Added
|
|
164
|
+
|
|
165
|
+
- Added unit tests for error handling with missing CLI arguments
|
|
166
|
+
- Enhanced unit test reporting with JUnit format for better CI integration
|
|
167
|
+
|
|
168
|
+
### Changed
|
|
169
|
+
|
|
170
|
+
- Refactored `EnvFileManager` and related interfaces to use async/await
|
|
171
|
+
- Improved error handling and modularized secret processing in `Envilder`
|
|
172
|
+
- Enhanced error handling for missing secrets with clearer feedback
|
|
173
|
+
- Renamed methods, test suite descriptions, and filenames for consistency
|
|
174
|
+
- Extracted package.json version retrieval into dedicated `PackageJsonFinder` class
|
|
175
|
+
- Modularized and simplified `escapeEnvValue` method and related tests
|
|
176
|
+
- Updated dependencies for better reliability
|
|
177
|
+
- Improved test cleanup for more reliable test runs
|
|
178
|
+
- Added and reorganized permissions in CI workflow
|
|
179
|
+
- Updated `.gitattributes` for better language stats on GitHub
|
|
180
|
+
|
|
181
|
+
## [0.5.3] - 2025-06-07
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
|
|
185
|
+
- Modular CLI for environment variable synchronization with pluggable secret providers
|
|
186
|
+
- Builder pattern for flexible CLI configuration and usage
|
|
187
|
+
- Extensive unit, integration, and end-to-end tests
|
|
188
|
+
- AWS integration testing using Localstack with Testcontainers
|
|
189
|
+
- Expanded tests for environment file escaping and builder configuration
|
|
190
|
+
|
|
191
|
+
### Changed
|
|
192
|
+
|
|
193
|
+
- **BREAKING**: Full TypeScript migration from JavaScript
|
|
194
|
+
- Introduced modular, layered architecture with clear separation
|
|
195
|
+
- Restructured CLI internals for improved maintainability
|
|
196
|
+
- Test structure now mirrors production code structure
|
|
197
|
+
- Migrated CI/CD workflows and scripts from Yarn to npm
|
|
198
|
+
- Updated ignore files and configuration
|
|
199
|
+
|
|
200
|
+
### Documentation
|
|
201
|
+
|
|
202
|
+
- Updated documentation to focus on npm commands
|
|
203
|
+
- Improved workflow and script documentation
|
|
204
|
+
|
|
205
|
+
## [0.5.2] - 2025-05-18
|
|
206
|
+
|
|
207
|
+
### Added
|
|
208
|
+
|
|
209
|
+
- Comprehensive E2E validation test in CI/CD pipeline
|
|
210
|
+
- Validation includes: build, `npm pack`, local install, and CLI command execution
|
|
211
|
+
- Ensures package integrity and command-line operability before release
|
|
212
|
+
|
|
213
|
+
## [0.5.1] - 2025-05-16
|
|
214
|
+
|
|
215
|
+
### Fixed
|
|
216
|
+
|
|
217
|
+
- CLI command not recognized after global install (`npm install -g envilder`)
|
|
218
|
+
- Fixed missing compiled `lib/` files in published package
|
|
219
|
+
|
|
220
|
+
## [0.3.0] - 2025-05-09
|
|
221
|
+
|
|
222
|
+
### Added
|
|
223
|
+
|
|
224
|
+
- Support for working with different AWS accounts and configurations via AWS profiles
|
|
225
|
+
|
|
226
|
+
### Changed
|
|
227
|
+
|
|
228
|
+
- Bumped @secretlint/secretlint-rule-preset-recommend from 9.3.0 to 9.3.2
|
|
229
|
+
- Bumped @types/node from 22.14.1 to 22.15.3
|
|
230
|
+
- Bumped commander from 12.1.0 to 13.1.0
|
|
231
|
+
- Bumped vite from 6.2.6 to 6.3.4
|
|
232
|
+
- Bumped @aws-sdk/client-ssm from 3.787.0 to 3.799.0
|
|
233
|
+
|
|
234
|
+
## [0.2.3] - 2025-04-12
|
|
235
|
+
|
|
236
|
+
### Changed
|
|
237
|
+
|
|
238
|
+
- Updated multiple dependencies including:
|
|
239
|
+
- @types/node from 22.7.5 to 22.10.3
|
|
240
|
+
- @aws-sdk/client-ssm from 3.670.0 to 3.716.0
|
|
241
|
+
- @biomejs/biome from 1.9.3 to 1.9.4
|
|
242
|
+
- nanoid from 3.3.7 to 3.3.8
|
|
243
|
+
- @secretlint/secretlint-rule-preset-recommend from 8.5.0 to 9.0.0
|
|
244
|
+
- secretlint from 8.5.0 to 9.0.0
|
|
245
|
+
|
|
246
|
+
## [0.2.1] - 2024-10-16
|
|
247
|
+
|
|
248
|
+
### Added
|
|
249
|
+
|
|
250
|
+
- Code coverage reporting and deployment to GitHub Pages
|
|
251
|
+
- CodeQL workflow for security analysis
|
|
252
|
+
- Preserve existing `.env` file and update values if present
|
|
253
|
+
|
|
254
|
+
### Documentation
|
|
255
|
+
|
|
256
|
+
- Updated README.md with improved documentation
|
|
257
|
+
|
|
258
|
+
## [0.1.4] - 2024-10-01
|
|
259
|
+
|
|
260
|
+
Initial public release of Envilder.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## How to Update This Changelog
|
|
265
|
+
|
|
266
|
+
This changelog follows [Conventional Commits](https://www.conventionalcommits.org/) specification.
|
|
267
|
+
|
|
268
|
+
### Commit Message Format
|
|
269
|
+
|
|
270
|
+
```txt
|
|
271
|
+
<type>[optional scope]: <description>
|
|
272
|
+
|
|
273
|
+
[optional body]
|
|
274
|
+
|
|
275
|
+
[optional footer(s)]
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Types
|
|
279
|
+
|
|
280
|
+
- `feat`: A new feature (triggers MINOR version bump)
|
|
281
|
+
- `fix`: A bug fix (triggers PATCH version bump)
|
|
282
|
+
- `docs`: Documentation-only changes
|
|
283
|
+
- `style`: Changes that don't affect code meaning (formatting, etc.)
|
|
284
|
+
- `refactor`: Code change that neither fixes a bug nor adds a feature
|
|
285
|
+
- `perf`: Performance improvements
|
|
286
|
+
- `test`: Adding or correcting tests
|
|
287
|
+
- `chore`: Changes to build process or auxiliary tools
|
|
288
|
+
- `ci`: Changes to CI configuration files and scripts
|
|
289
|
+
|
|
290
|
+
### Breaking Changes
|
|
291
|
+
|
|
292
|
+
Add `BREAKING CHANGE:` in the footer or append `!` after type/scope:
|
|
293
|
+
|
|
294
|
+
```txt
|
|
295
|
+
feat!: remove AWS profile auto-detection
|
|
296
|
+
|
|
297
|
+
BREAKING CHANGE: Users must now explicitly specify --profile flag
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
This triggers a MAJOR version bump.
|
|
301
|
+
|
|
302
|
+
### Examples
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Feature addition (0.7.0 -> 0.8.0)
|
|
306
|
+
git commit -m "feat(gha): add GitHub Action support"
|
|
307
|
+
|
|
308
|
+
# Bug fix (0.7.0 -> 0.7.1)
|
|
309
|
+
git commit -m "fix(cli): handle empty environment files"
|
|
310
|
+
|
|
311
|
+
# Breaking change (0.7.0 -> 1.0.0)
|
|
312
|
+
git commit -m "feat!: redesign CLI interface"
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Automation
|
|
318
|
+
|
|
319
|
+
This project uses automated changelog generation. To generate changelog entries:
|
|
320
|
+
|
|
321
|
+
1. **Manual Update** (temporary):
|
|
322
|
+
- Edit this file following the format above
|
|
323
|
+
- Add entries under `[Unreleased]` section
|
|
324
|
+
- Run `pnpm version [patch|minor|major]` to create a new release
|
|
325
|
+
|
|
326
|
+
2. **Automated** (recommended):
|
|
327
|
+
- Use conventional commits in your commit messages
|
|
328
|
+
- Run `pnpm changelog` to generate entries from git history
|
|
329
|
+
- Changelog will be auto-generated from commit messages
|
|
330
|
+
|
|
331
|
+
[0.6.6]: https://github.com/macalbert/envilder/compare/v0.6.5...v0.6.6
|
|
332
|
+
[0.6.5]: https://github.com/macalbert/envilder/compare/v0.6.4...v0.6.5
|
|
333
|
+
[0.6.4]: https://github.com/macalbert/envilder/compare/v0.6.3...v0.6.4
|
|
334
|
+
[0.6.3]: https://github.com/macalbert/envilder/compare/v0.6.1...v0.6.3
|
|
335
|
+
[0.6.1]: https://github.com/macalbert/envilder/compare/v0.5.6...v0.6.1
|
|
336
|
+
[0.5.6]: https://github.com/macalbert/envilder/compare/v0.5.5...v0.5.6
|
|
337
|
+
[0.5.5]: https://github.com/macalbert/envilder/compare/v0.5.4...v0.5.5
|
|
338
|
+
[0.5.4]: https://github.com/macalbert/envilder/compare/v0.5.3...v0.5.4
|
|
339
|
+
[0.5.3]: https://github.com/macalbert/envilder/compare/v0.5.2...v0.5.3
|
|
340
|
+
[0.5.2]: https://github.com/macalbert/envilder/compare/v0.5.1...v0.5.2
|
|
341
|
+
[0.5.1]: https://github.com/macalbert/envilder/compare/v0.3.0...v0.5.1
|
|
342
|
+
[0.3.0]: https://github.com/macalbert/envilder/compare/v0.2.3...v0.3.0
|
|
343
|
+
[0.2.3]: https://github.com/macalbert/envilder/compare/v0.2.1...v0.2.3
|
|
344
|
+
[0.2.1]: https://github.com/macalbert/envilder/compare/v0.1.4...v0.2.1
|
|
345
|
+
[0.1.4]: https://github.com/macalbert/envilder/releases/tag/v0.1.4
|
package/docs/SECURITY.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## ๐ Supported Versions
|
|
4
|
+
|
|
5
|
+
We release patches for security vulnerabilities only in the latest version:
|
|
6
|
+
|
|
7
|
+
| Version | Supported |
|
|
8
|
+
| ------- | ------------------ |
|
|
9
|
+
| Latest | โ
|
|
|
10
|
+
| Older | โ |
|
|
11
|
+
|
|
12
|
+
## ๐จ Reporting a Vulnerability
|
|
13
|
+
|
|
14
|
+
**Please do not report security vulnerabilities through public GitHub issues.**
|
|
15
|
+
|
|
16
|
+
If you discover a security vulnerability in Envilder, please report it privately to help us address it before public disclosure.
|
|
17
|
+
|
|
18
|
+
### How to Report
|
|
19
|
+
|
|
20
|
+
1. **Email**: Send details to <mac.albert@gmail.com>
|
|
21
|
+
2. **Subject**: `[SECURITY] Envilder - [Brief Description]`
|
|
22
|
+
3. **Include**:
|
|
23
|
+
- Description of the vulnerability
|
|
24
|
+
- Steps to reproduce the issue
|
|
25
|
+
- Potential impact
|
|
26
|
+
- Suggested fix (if available)
|
|
27
|
+
- Your contact information for follow-up
|
|
28
|
+
|
|
29
|
+
### What to Expect
|
|
30
|
+
|
|
31
|
+
- **Acknowledgment**: I will acknowledge your email as soon as possible
|
|
32
|
+
- **Initial Assessment**: I'll provide an initial assessment and prioritize based on severity
|
|
33
|
+
- **Updates**: I'll keep you informed about the progress
|
|
34
|
+
- **Resolution**: I'll work to release a fix as soon as feasible (timeline depends on severity and complexity)
|
|
35
|
+
- **Credit**: You'll be credited in the security advisory (unless you prefer to remain anonymous)
|
|
36
|
+
|
|
37
|
+
**Note**: This is a solo open-source project maintained in my spare time. While I take security seriously,
|
|
38
|
+
response times may vary based on availability.
|
|
39
|
+
|
|
40
|
+
## ๐ก๏ธ Security Best Practices
|
|
41
|
+
|
|
42
|
+
When using Envilder, follow these security guidelines:
|
|
43
|
+
|
|
44
|
+
### AWS Credentials
|
|
45
|
+
|
|
46
|
+
**DO**:
|
|
47
|
+
|
|
48
|
+
- โ
Use IAM roles with OIDC for GitHub Actions ([setup guide](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services))
|
|
49
|
+
- โ
Use temporary credentials when possible
|
|
50
|
+
- โ
Follow the principle of least privilege
|
|
51
|
+
|
|
52
|
+
**DON'T**:
|
|
53
|
+
|
|
54
|
+
- โ Store AWS access keys in code or environment variables
|
|
55
|
+
- โ Share AWS credentials via Slack, email, or chat
|
|
56
|
+
|
|
57
|
+
### IAM Permissions
|
|
58
|
+
|
|
59
|
+
Envilder requires these AWS permissions:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"Version": "2012-10-17",
|
|
64
|
+
"Statement": [
|
|
65
|
+
{
|
|
66
|
+
"Effect": "Allow",
|
|
67
|
+
"Principal": {
|
|
68
|
+
"Federated": "arn:aws:iam::123456123456:oidc-provider/token.actions.githubusercontent.com"
|
|
69
|
+
},
|
|
70
|
+
"Action": "sts:AssumeRoleWithWebIdentity",
|
|
71
|
+
"Condition": {
|
|
72
|
+
"StringLike": {
|
|
73
|
+
"token.actions.githubusercontent.com:sub": "repo:octo-org/octo-repo:*"
|
|
74
|
+
},
|
|
75
|
+
"StringEquals": {
|
|
76
|
+
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Recommendations**:
|
|
85
|
+
|
|
86
|
+
- Scope permissions to specific parameter paths (e.g., `/myapp/prod/*`)
|
|
87
|
+
- Use separate IAM roles for different environments (dev, staging, prod)
|
|
88
|
+
- Enable CloudTrail logging for audit trails
|
|
89
|
+
|
|
90
|
+
### Environment Files
|
|
91
|
+
|
|
92
|
+
**DO**:
|
|
93
|
+
|
|
94
|
+
- โ
Add `.env` to `.gitignore`
|
|
95
|
+
- โ
Use `.env.example` for documentation (without real values)
|
|
96
|
+
- โ
Rotate secrets regularly
|
|
97
|
+
|
|
98
|
+
**DON'T**:
|
|
99
|
+
|
|
100
|
+
- โ Commit `.env` files to version control
|
|
101
|
+
- โ Share `.env` files via email or chat
|
|
102
|
+
|
|
103
|
+
### GitHub Actions
|
|
104
|
+
|
|
105
|
+
When using Envilder GitHub Action:
|
|
106
|
+
|
|
107
|
+
**DO**:
|
|
108
|
+
|
|
109
|
+
- โ
Use OIDC authentication instead of static credentials ([OIDC setup guide](https://docs.github.com/en/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services))
|
|
110
|
+
- โ
Pin action versions (e.g., `@v1.0.0` instead of `@main`)
|
|
111
|
+
- โ
Review action code before using in production
|
|
112
|
+
|
|
113
|
+
**DON'T**:
|
|
114
|
+
|
|
115
|
+
- โ Store AWS credentials in GitHub Secrets (use OIDC roles)
|
|
116
|
+
- โ Use overly permissive IAM policies
|
|
117
|
+
|
|
118
|
+
## ๐ Security Audits
|
|
119
|
+
|
|
120
|
+
This project uses:
|
|
121
|
+
|
|
122
|
+
- **Snyk**: Vulnerability scanning for dependencies
|
|
123
|
+
- **Secretlint**: Prevents accidental secret commits
|
|
124
|
+
- **Biome**: Code quality and security linting
|
|
125
|
+
- **Dependabot**: Automated dependency updates
|
|
126
|
+
|
|
127
|
+
View current security status: [](https://snyk.io/test/github/macalbert/envilder)
|
|
128
|
+
|
|
129
|
+
## ๐ Known Security Considerations
|
|
130
|
+
|
|
131
|
+
### AWS SSM Parameter Store
|
|
132
|
+
|
|
133
|
+
- Parameters are encrypted at rest using AWS KMS
|
|
134
|
+
- All API calls are logged in CloudTrail
|
|
135
|
+
- Access is controlled via IAM policies
|
|
136
|
+
- Supports versioning and automatic rotation
|
|
137
|
+
|
|
138
|
+
### Local Environment Files
|
|
139
|
+
|
|
140
|
+
- Generated `.env` files contain sensitive data
|
|
141
|
+
- Ensure proper file permissions (e.g., `chmod 600 .env`)
|
|
142
|
+
- Delete or rotate secrets if `.env` is accidentally committed
|
|
143
|
+
|
|
144
|
+
## ๐ Additional Resources
|
|
145
|
+
|
|
146
|
+
- [AWS SSM Security Best Practices](https://docs.aws.amazon.com/systems-manager/latest/userguide/security-best-practices.html)
|
|
147
|
+
- [GitHub Actions Security Hardening](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions)
|
|
148
|
+
- [OWASP Secrets Management Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html)
|
|
149
|
+
|
|
150
|
+
## ๐ Disclosure Policy
|
|
151
|
+
|
|
152
|
+
When I receive a security vulnerability report:
|
|
153
|
+
|
|
154
|
+
1. I will confirm the vulnerability and determine its impact
|
|
155
|
+
2. I will develop and test a fix
|
|
156
|
+
3. I will release a security advisory and patched version
|
|
157
|
+
4. I will credit the reporter (unless anonymity is requested)
|
|
158
|
+
|
|
159
|
+
**Public Disclosure Timeline**:
|
|
160
|
+
|
|
161
|
+
- Critical vulnerabilities: Disclosed after patch is released
|
|
162
|
+
- Non-critical vulnerabilities: Coordinated disclosure with reasonable timeline based on severity
|
|
163
|
+
|
|
164
|
+
**Note**: As a solo maintainer working on this project in my spare time, I appreciate your
|
|
165
|
+
understanding regarding response and fix timelines.
|
|
166
|
+
|
|
167
|
+
Thank you for helping keep Envilder and its users safe! ๐
|
package/lib/apps/cli/Cli.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../../src/apps/cli/Cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../../../src/apps/cli/Cli.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAuB1B,wBAAsB,IAAI,kBAgDzB"}
|
package/lib/apps/cli/Cli.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -61,9 +60,4 @@ function readPackageVersion() {
|
|
|
61
60
|
const packageJsonPath = join(__dirname, '../../../package.json');
|
|
62
61
|
return new PackageVersionReader().getVersion(packageJsonPath);
|
|
63
62
|
}
|
|
64
|
-
main().catch((error) => {
|
|
65
|
-
const logger = serviceProvider.get(TYPES.ILogger);
|
|
66
|
-
logger.error('๐จ Uh-oh! Looks like Mario fell into the wrong pipe! ๐๐ฅ');
|
|
67
|
-
logger.error(error instanceof Error ? error.message : String(error));
|
|
68
|
-
});
|
|
69
63
|
//# sourceMappingURL=Cli.js.map
|
package/lib/apps/cli/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../../src/apps/cli/Cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../../../src/apps/cli/Cli.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAGrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AACrG,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,IAAI,eAA0B,CAAC;AAE/B,SAAe,cAAc,CAAC,OAAmB;;QAC/C,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CACxC,KAAK,CAAC,4BAA4B,CACnC,CAAC;QAEF,MAAM,OAAO,GAAG,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CAAA;AAED,MAAM,UAAgB,IAAI;;QACxB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAE3C,OAAO;aACJ,IAAI,CAAC,UAAU,CAAC;aAChB,WAAW,CACV,+FAA+F;YAC7F,2BAA2B;YAC3B,6DAA6D;YAC7D,iDAAiD;YACjD,oEAAoE;YACpE,wCAAwC;YACxC,kFAAkF,CACrF;aACA,OAAO,CAAC,OAAO,CAAC;aAChB,MAAM,CACL,cAAc,EACd,sFAAsF,CACvF;aACA,MAAM,CACL,kBAAkB,EAClB,gFAAgF,CACjF;aACA,MAAM,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;aAC/D,MAAM,CAAC,QAAQ,EAAE,sCAAsC,CAAC;aACxD,MAAM,CACL,cAAc,EACd,6DAA6D,CAC9D;aACA,MAAM,CACL,iBAAiB,EACjB,qEAAqE,CACtE;aACA,MAAM,CACL,mBAAmB,EACnB,iEAAiE,CAClE;aACA,MAAM,CAAC,CAAO,OAAmB,EAAE,EAAE;YACpC,eAAe,GAAG,OAAO,CAAC,KAAK,EAAE;iBAC9B,iBAAiB,EAAE;iBACnB,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC;iBACxC,MAAM,EAAE,CAAC;YAEZ,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC,CAAA,CAAC,CAAC;QAEL,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;CAAA;AAED,SAAS,kBAAkB;IACzB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAEjE,OAAO,IAAI,oBAAoB,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AAChE,CAAC"}
|