env-secrets 0.1.10 → 0.3.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/.devcontainer/devcontainer.json +33 -0
- package/.dockerignore +9 -0
- package/.eslintignore +4 -2
- package/.github/dependabot.yml +4 -0
- package/.github/workflows/build-main.yml +6 -2
- package/.github/workflows/deploy-docs.yml +50 -0
- package/.github/workflows/e2e-tests.yaml +54 -0
- package/.github/workflows/lint.yaml +6 -2
- package/.github/workflows/release.yml +13 -3
- package/.github/workflows/snyk.yaml +5 -1
- package/.github/workflows/unittests.yaml +18 -6
- package/.lintstagedrc +2 -7
- package/.prettierignore +6 -0
- package/AGENTS.md +149 -0
- package/Dockerfile +14 -0
- package/README.md +507 -36
- package/__e2e__/README.md +160 -0
- package/__e2e__/index.test.ts +339 -0
- package/__e2e__/setup.ts +58 -0
- package/__e2e__/utils/debug-logger.ts +45 -0
- package/__e2e__/utils/test-utils.ts +645 -0
- package/__tests__/index.test.ts +573 -31
- package/__tests__/vaults/secretsmanager.test.ts +460 -0
- package/__tests__/vaults/utils.test.ts +183 -0
- package/__tests__/version.test.ts +8 -0
- package/dist/index.js +36 -10
- package/dist/vaults/secretsmanager.js +44 -43
- package/dist/vaults/utils.js +2 -2
- package/docker-compose.yaml +29 -0
- package/docs/AWS.md +257 -0
- package/jest.config.js +4 -1
- package/jest.e2e.config.js +8 -0
- package/package.json +18 -10
- package/src/index.ts +44 -10
- package/src/vaults/secretsmanager.ts +48 -48
- package/src/vaults/utils.ts +6 -4
- package/website/docs/advanced-usage.mdx +399 -0
- package/website/docs/best-practices.mdx +416 -0
- package/website/docs/cli-reference.mdx +204 -0
- package/website/docs/examples.mdx +960 -0
- package/website/docs/faq.mdx +302 -0
- package/website/docs/index.mdx +56 -0
- package/website/docs/installation.mdx +30 -0
- package/website/docs/overview.mdx +17 -0
- package/website/docs/production-deployment.mdx +622 -0
- package/website/docs/providers/aws-secrets-manager.mdx +28 -0
- package/website/docs/security.mdx +122 -0
- package/website/docs/troubleshooting.mdx +236 -0
- package/website/docs/tutorials/local-dev/devcontainer-localstack.mdx +31 -0
- package/website/docs/tutorials/local-dev/docker-compose.mdx +22 -0
- package/website/docs/tutorials/local-dev/nextjs.mdx +18 -0
- package/website/docs/tutorials/local-dev/node-python-go.mdx +39 -0
- package/website/docs/tutorials/local-dev/quickstart.mdx +23 -0
- package/website/docusaurus.config.ts +89 -0
- package/website/package.json +21 -0
- package/website/sidebars.ts +33 -0
- package/website/src/css/custom.css +1 -0
- package/website/static/img/env-secrets.png +0 -0
- package/website/static/img/favicon.ico +0 -0
- package/website/static/img/logo.svg +4 -0
- package/website/yarn.lock +8764 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Node.js Development",
|
|
3
|
+
"build": {
|
|
4
|
+
"dockerfile": "../Dockerfile",
|
|
5
|
+
"context": ".."
|
|
6
|
+
},
|
|
7
|
+
"features": {
|
|
8
|
+
"ghcr.io/devcontainers/features/git:1": {},
|
|
9
|
+
"ghcr.io/devcontainers/features/aws-cli:1": {},
|
|
10
|
+
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
|
|
11
|
+
"ghcr.io/localstack/devcontainer-feature/localstack-cli:0": {
|
|
12
|
+
"awslocal": true
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"customizations": {
|
|
16
|
+
"vscode": {
|
|
17
|
+
"extensions": [
|
|
18
|
+
"dbaeumer.vscode-eslint",
|
|
19
|
+
"esbenp.prettier-vscode",
|
|
20
|
+
"ms-vscode.vscode-typescript-next",
|
|
21
|
+
"orta.vscode-jest"
|
|
22
|
+
],
|
|
23
|
+
"settings": {
|
|
24
|
+
"editor.formatOnSave": true,
|
|
25
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
26
|
+
"editor.codeActionsOnSave": {
|
|
27
|
+
"source.fixAll.eslint": true
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"postAttachCommand": "yarn install"
|
|
33
|
+
}
|
package/.dockerignore
ADDED
package/.eslintignore
CHANGED
package/.github/dependabot.yml
CHANGED
|
@@ -6,10 +6,14 @@ updates:
|
|
|
6
6
|
schedule:
|
|
7
7
|
interval: 'weekly'
|
|
8
8
|
labels:
|
|
9
|
+
- 'npm'
|
|
9
10
|
- 'dependencies'
|
|
10
11
|
open-pull-requests-limit: 100
|
|
11
12
|
pull-request-branch-name:
|
|
12
13
|
separator: '-'
|
|
14
|
+
groups:
|
|
15
|
+
aws-sdk:
|
|
16
|
+
patterns: ['@aws-sdk/*']
|
|
13
17
|
ignore:
|
|
14
18
|
- dependency-name: 'fs-extra'
|
|
15
19
|
- dependency-name: '*'
|
|
@@ -6,16 +6,20 @@ on:
|
|
|
6
6
|
branches:
|
|
7
7
|
- main
|
|
8
8
|
|
|
9
|
+
concurrency:
|
|
10
|
+
group: build-main-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
9
13
|
jobs:
|
|
10
14
|
build:
|
|
11
15
|
runs-on: ubuntu-latest
|
|
12
16
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v5
|
|
14
18
|
with:
|
|
15
19
|
fetch-depth: 0
|
|
16
20
|
|
|
17
21
|
- name: Set up Node.js
|
|
18
|
-
uses: actions/setup-node@
|
|
22
|
+
uses: actions/setup-node@v5
|
|
19
23
|
with:
|
|
20
24
|
node-version: 20.18.3
|
|
21
25
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
name: Deploy docs (GitHub Pages)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- 'website/**'
|
|
8
|
+
- '.github/workflows/deploy-docs.yml'
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
pages: write
|
|
14
|
+
id-token: write
|
|
15
|
+
|
|
16
|
+
concurrency:
|
|
17
|
+
group: deploy-docs-${{ github.ref }}
|
|
18
|
+
cancel-in-progress: true
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
build:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v5
|
|
25
|
+
- uses: actions/setup-node@v5
|
|
26
|
+
with:
|
|
27
|
+
node-version: 20
|
|
28
|
+
cache: 'yarn'
|
|
29
|
+
cache-dependency-path: website/package.json
|
|
30
|
+
- name: Install deps
|
|
31
|
+
working-directory: website
|
|
32
|
+
run: yarn install
|
|
33
|
+
- name: Build website
|
|
34
|
+
working-directory: website
|
|
35
|
+
run: yarn build
|
|
36
|
+
- name: Upload artifact
|
|
37
|
+
uses: actions/upload-pages-artifact@v4
|
|
38
|
+
with:
|
|
39
|
+
path: website/build
|
|
40
|
+
|
|
41
|
+
deploy:
|
|
42
|
+
needs: build
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
environment:
|
|
45
|
+
name: github-pages
|
|
46
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
47
|
+
steps:
|
|
48
|
+
- name: Deploy to GitHub Pages
|
|
49
|
+
id: deployment
|
|
50
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: E2E Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- main
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: e2e-tests-${{ github.ref }}
|
|
13
|
+
cancel-in-progress: true
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
e2e:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout repository
|
|
21
|
+
uses: actions/checkout@v5
|
|
22
|
+
|
|
23
|
+
- name: Set up Node.js
|
|
24
|
+
uses: actions/setup-node@v5
|
|
25
|
+
with:
|
|
26
|
+
node-version: 24.x
|
|
27
|
+
|
|
28
|
+
- name: Set up Python
|
|
29
|
+
uses: actions/setup-python@v5
|
|
30
|
+
with:
|
|
31
|
+
python-version: '3.12'
|
|
32
|
+
|
|
33
|
+
- name: Install dependencies
|
|
34
|
+
run: yarn --ignore-scripts --frozen-lockfile
|
|
35
|
+
|
|
36
|
+
- name: Install awslocal
|
|
37
|
+
run: pip install awscli-local[ver1]
|
|
38
|
+
|
|
39
|
+
- name: Start localstack
|
|
40
|
+
run: docker compose up -d --wait localstack
|
|
41
|
+
|
|
42
|
+
- name: Run the tests
|
|
43
|
+
run: yarn test:e2e
|
|
44
|
+
|
|
45
|
+
- name: Notify failures
|
|
46
|
+
if: failure()
|
|
47
|
+
uses: rtCamp/action-slack-notify@v2
|
|
48
|
+
env:
|
|
49
|
+
SLACK_LINK_NAMES: true
|
|
50
|
+
SLACK_MESSAGE:
|
|
51
|
+
# prettier-ignore
|
|
52
|
+
"hey @${{ github.actor }}, @mark, sorry to let you know you broke the build"
|
|
53
|
+
SLACK_CHANNEL: feed-github
|
|
54
|
+
SLACK_COLOR: ${{ job.status }}
|
|
@@ -5,6 +5,10 @@ on:
|
|
|
5
5
|
branches:
|
|
6
6
|
- main
|
|
7
7
|
|
|
8
|
+
concurrency:
|
|
9
|
+
group: lint-${{ github.ref }}
|
|
10
|
+
cancel-in-progress: true
|
|
11
|
+
|
|
8
12
|
jobs:
|
|
9
13
|
run-linters:
|
|
10
14
|
name: Run linters
|
|
@@ -12,10 +16,10 @@ jobs:
|
|
|
12
16
|
|
|
13
17
|
steps:
|
|
14
18
|
- name: Check out Git repository
|
|
15
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@v5
|
|
16
20
|
|
|
17
21
|
- name: Set up Node.js
|
|
18
|
-
uses: actions/setup-node@
|
|
22
|
+
uses: actions/setup-node@v5
|
|
19
23
|
with:
|
|
20
24
|
node-version: 20.18.3
|
|
21
25
|
|
|
@@ -3,6 +3,16 @@ name: Release and Publish
|
|
|
3
3
|
|
|
4
4
|
on:
|
|
5
5
|
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
release_type:
|
|
8
|
+
description: 'Release type (patch/minor/major)'
|
|
9
|
+
type: choice
|
|
10
|
+
options:
|
|
11
|
+
- patch
|
|
12
|
+
- minor
|
|
13
|
+
- major
|
|
14
|
+
default: 'patch'
|
|
15
|
+
required: true
|
|
6
16
|
|
|
7
17
|
permissions:
|
|
8
18
|
contents: write
|
|
@@ -15,7 +25,7 @@ jobs:
|
|
|
15
25
|
runs-on: ubuntu-latest
|
|
16
26
|
steps:
|
|
17
27
|
- name: Clone Repository
|
|
18
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
19
29
|
with:
|
|
20
30
|
fetch-depth: 0
|
|
21
31
|
|
|
@@ -25,7 +35,7 @@ jobs:
|
|
|
25
35
|
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
|
|
26
36
|
|
|
27
37
|
- name: Set up Node.js
|
|
28
|
-
uses: actions/setup-node@
|
|
38
|
+
uses: actions/setup-node@v5
|
|
29
39
|
with:
|
|
30
40
|
node-version: 20.18.3
|
|
31
41
|
registry-url: 'https://registry.npmjs.org'
|
|
@@ -37,7 +47,7 @@ jobs:
|
|
|
37
47
|
run: yarn build
|
|
38
48
|
|
|
39
49
|
- name: Github release
|
|
40
|
-
run: yarn release
|
|
50
|
+
run: yarn release ${{ inputs.release_type }} --ci
|
|
41
51
|
env:
|
|
42
52
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
43
53
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -6,11 +6,15 @@ on:
|
|
|
6
6
|
branches:
|
|
7
7
|
- main
|
|
8
8
|
|
|
9
|
+
concurrency:
|
|
10
|
+
group: snyk-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
9
13
|
jobs:
|
|
10
14
|
security:
|
|
11
15
|
runs-on: ubuntu-latest
|
|
12
16
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v5
|
|
14
18
|
- name: Run Snyk to check for vulnerabilities
|
|
15
19
|
uses: snyk/actions/node@master
|
|
16
20
|
continue-on-error: true # To make sure that SARIF upload gets called
|
|
@@ -8,31 +8,43 @@ on:
|
|
|
8
8
|
branches:
|
|
9
9
|
- main
|
|
10
10
|
|
|
11
|
+
concurrency:
|
|
12
|
+
group: unit-tests-${{ github.ref }}
|
|
13
|
+
cancel-in-progress: true
|
|
14
|
+
|
|
11
15
|
jobs:
|
|
12
|
-
|
|
16
|
+
unit-tests:
|
|
13
17
|
runs-on: ubuntu-latest
|
|
14
18
|
|
|
15
19
|
strategy:
|
|
16
20
|
matrix:
|
|
17
|
-
node-version: [
|
|
21
|
+
node-version: [18.x, 20.x, 22.x, 24.x]
|
|
18
22
|
|
|
19
23
|
steps:
|
|
20
24
|
- name: Checkout repository
|
|
21
|
-
uses: actions/checkout@
|
|
25
|
+
uses: actions/checkout@v5
|
|
22
26
|
|
|
23
27
|
- name: Set up Node.js ${{ matrix.node-version }}
|
|
24
|
-
uses: actions/setup-node@
|
|
28
|
+
uses: actions/setup-node@v5
|
|
25
29
|
with:
|
|
26
30
|
node-version: ${{ matrix.node-version }}
|
|
27
31
|
|
|
28
32
|
- name: Install dependencies
|
|
29
|
-
run: yarn
|
|
33
|
+
run: yarn --ignore-scripts --frozen-lockfile
|
|
30
34
|
|
|
31
35
|
- name: Build
|
|
32
36
|
run: yarn build
|
|
33
37
|
|
|
34
38
|
- name: Run the tests
|
|
35
|
-
run: yarn test
|
|
39
|
+
run: yarn test:unit:coverage
|
|
40
|
+
|
|
41
|
+
- name: Upload coverage reports to Codecov
|
|
42
|
+
uses: codecov/codecov-action@v5
|
|
43
|
+
with:
|
|
44
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
45
|
+
directory: ./coverage
|
|
46
|
+
flags: unittests
|
|
47
|
+
name: codecov-umbrella
|
|
36
48
|
|
|
37
49
|
- name: Notify failures
|
|
38
50
|
if: failure()
|
package/.lintstagedrc
CHANGED
package/.prettierignore
CHANGED
package/AGENTS.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
|
|
5
|
+
- **env-secrets**: A Node.js CLI tool that retrieves secrets from vaults and injects them as environment variables
|
|
6
|
+
- **Repository**: https://github.com/markcallen/env-secrets
|
|
7
|
+
- **Issue Tracking**: Uses GitHub issues for feature requests and bugs
|
|
8
|
+
|
|
9
|
+
## Code Style Guidelines
|
|
10
|
+
|
|
11
|
+
### TypeScript
|
|
12
|
+
|
|
13
|
+
- **Strict Mode**: Enabled, use proper types, avoid `any`
|
|
14
|
+
- **Type Definitions**: Prefer interfaces over types for object shapes
|
|
15
|
+
- **Generic Types**: Use when appropriate for reusable components
|
|
16
|
+
|
|
17
|
+
### Imports
|
|
18
|
+
|
|
19
|
+
- **Order**: Group by: external libraries, internal modules, relative imports
|
|
20
|
+
- **Style**: ES6 imports (`import`/`export`)
|
|
21
|
+
- **Barrel Exports**: Use index files for clean import paths
|
|
22
|
+
|
|
23
|
+
### Formatting
|
|
24
|
+
|
|
25
|
+
- **Prettier**: Default config (.prettierrc), 2-space indentation
|
|
26
|
+
- **Line Length**: Let Prettier handle line wrapping
|
|
27
|
+
- **Trailing Commas**: Use in objects and arrays
|
|
28
|
+
|
|
29
|
+
### Naming Conventions
|
|
30
|
+
|
|
31
|
+
- **Variables/Functions**: camelCase
|
|
32
|
+
- **Components/Types**: PascalCase
|
|
33
|
+
- **Constants**: UPPER_CASE
|
|
34
|
+
- **Files**: kebab-case for files, PascalCase for components
|
|
35
|
+
|
|
36
|
+
## Development Workflow
|
|
37
|
+
|
|
38
|
+
### Pre-commit Hooks
|
|
39
|
+
|
|
40
|
+
- Husky is configured for pre-commit hooks
|
|
41
|
+
- lint-staged runs prettier and eslint on staged files
|
|
42
|
+
|
|
43
|
+
### Quality Checks
|
|
44
|
+
|
|
45
|
+
Always run quaity checks after creating or modifing files
|
|
46
|
+
|
|
47
|
+
- **Linting**: `yarn lint` - runs ESLint with TypeScript support
|
|
48
|
+
- **Formatting**: `yarn prettier:fix` - formats code with Prettier
|
|
49
|
+
- **Type Checking**: `yarn build` - compiles TypeScript and checks types
|
|
50
|
+
|
|
51
|
+
### Testing Strategy
|
|
52
|
+
|
|
53
|
+
Always run unit tests after creating or modifying files.
|
|
54
|
+
Always run end to end tests before pushing code to a remote git repository.
|
|
55
|
+
|
|
56
|
+
- **Unit Tests**: Jest framework, located in `__tests__/`
|
|
57
|
+
- **E2E Tests**: Located in `__e2e__/`
|
|
58
|
+
- **Coverage**: Run `yarn test:unit:coverage` for coverage reports
|
|
59
|
+
- **Test Commands**:
|
|
60
|
+
- `yarn test` - runs all tests
|
|
61
|
+
- `yarn test:unit` - runs unit tests only
|
|
62
|
+
- `yarn test:e2e` - builds and runs e2e tests
|
|
63
|
+
|
|
64
|
+
## Project Structure
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
src/ # Source code
|
|
68
|
+
├── index.ts # Main entry point
|
|
69
|
+
├── aws.ts # AWS Secrets Manager integration
|
|
70
|
+
└── types.ts # TypeScript type definitions
|
|
71
|
+
|
|
72
|
+
__tests__/ # Unit tests
|
|
73
|
+
__e2e__/ # End-to-end tests
|
|
74
|
+
docs/ # Documentation
|
|
75
|
+
website/ # Documentation website
|
|
76
|
+
dist/ # Compiled output (generated)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Dependencies and Tools
|
|
80
|
+
|
|
81
|
+
### Key Dependencies
|
|
82
|
+
|
|
83
|
+
- **AWS SDK**: For Secrets Manager integration
|
|
84
|
+
- **Commander**: CLI argument parsing
|
|
85
|
+
- **Debug**: Debug logging support
|
|
86
|
+
|
|
87
|
+
### Development Tools
|
|
88
|
+
|
|
89
|
+
- **TypeScript**: 4.9.5 with strict mode
|
|
90
|
+
- **ESLint**: Code linting with TypeScript support
|
|
91
|
+
- **Prettier**: Code formatting
|
|
92
|
+
- **Jest**: Testing framework
|
|
93
|
+
- **Husky**: Git hooks
|
|
94
|
+
- **lint-staged**: Pre-commit linting
|
|
95
|
+
|
|
96
|
+
## Common Commands
|
|
97
|
+
|
|
98
|
+
### Development
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
yarn build # Build the project
|
|
102
|
+
yarn start # Run the built application
|
|
103
|
+
yarn lint # Run ESLint
|
|
104
|
+
yarn prettier:fix # Format code with Prettier
|
|
105
|
+
yarn test # Run all tests
|
|
106
|
+
yarn test:unit # Run unit tests only
|
|
107
|
+
yarn test:e2e # Run e2e tests
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Quality Assurance
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
yarn prettier:check # Check formatting without fixing
|
|
114
|
+
yarn test:unit:coverage # Run tests with coverage
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Contributing
|
|
118
|
+
|
|
119
|
+
### Before Submitting
|
|
120
|
+
|
|
121
|
+
1. Run `yarn prettier:fix && yarn lint` to ensure code quality
|
|
122
|
+
2. Run `yarn test` to ensure all tests pass
|
|
123
|
+
3. Update tests for new features or bug fixes
|
|
124
|
+
4. Update documentation if needed
|
|
125
|
+
|
|
126
|
+
### Pull Request Process
|
|
127
|
+
|
|
128
|
+
1. Create a feature branch from `main`
|
|
129
|
+
2. Make your changes following the code style guidelines
|
|
130
|
+
3. Add tests for new functionality
|
|
131
|
+
4. Ensure all CI checks pass
|
|
132
|
+
5. Submit a pull request with a clear description
|
|
133
|
+
|
|
134
|
+
## Development Environment
|
|
135
|
+
|
|
136
|
+
### Prerequisites
|
|
137
|
+
|
|
138
|
+
- Node.js 18.0.0 or higher (see .nvmrc)
|
|
139
|
+
- Yarn package manager
|
|
140
|
+
- AWS CLI (for testing AWS integration)
|
|
141
|
+
|
|
142
|
+
### Setup
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
git clone https://github.com/markcallen/env-secrets.git
|
|
146
|
+
cd env-secrets
|
|
147
|
+
yarn install
|
|
148
|
+
yarn build
|
|
149
|
+
```
|
package/Dockerfile
ADDED