# README
JAWS
This project was inspired by AWS not having the best UX for their secrets management. This tool uses a fuzzy finder to make filtering and selecting of multiple secrets easy. Once you have the secrets downloaded just edit the files as you would like and run the set command to update the secrets.
Guides
Getting Started
How to Install
Configuring Jaws
Managing Project Environment Files
Demo
Commands
Secrets Manager
- pull
- push
- list
- add
- delete
- rollback
Self
- config - displays basic info on the current config
- create - create a new config
- show - display the config contents
- path - show the current config path
- edit - open the current config using the
$EDITOR
env variable - lock - Encrypt the current config with a password or using
$JAWS_CONFIG_KEY
env variable - unlock - Decrypt the current config with a password or using
$JAWS_CONFIG_KEY
env variable
- clean - clean local secrets by deleting the path
- completion - shell completions
- diff - git diff for downloaded secrets
- path - display the current secrets download path
- command - prints a shell function to
popd
andpushd
to and from the secrets path
- command - prints a shell function to
- status - git status for the downloaded secrets
- update - self update command
- version - display jaws version
Platforms
AWS
- pull
- suggest secret if you miss-type the ID
- push
- list
- add
- delete
- rollback - partial working, no rollback choice
GCP
- pull - partial working
- fuzzy pull a secret using the args, if
testing_key
is passed look forprojects/projectID/secrets/testing_key
- fuzzy pull a secret using the args, if
- push
- list
- add
- delete
- rollback
Environment File Manager
purpose: Using a config file, output a var file that can be consumed at runtime. Using an integration with aws or gcp's secret manager pull secrets and use them as values for keys set in whatever.jaws
. Using a config file with no important infomation in it can prevent secrets from being leaked or accidentally committed to a repo, it also lets a developer have multiple environments declared in the config i.e. dev, testing, or production.
Input
- config file in hcl format
- vars
- secrets -
secret
- local and env variables -
var
- an environment variable will override one set in the locals block
- secrets -
- functions
- quote
- encode
- decode
- file
- sh
- resolve
- escape
- input
- operators
- conditionals
- vars
Output
output can print to stdout or to a file directly.
- shell variable file i.g.
.env
- json
- yaml
- tfvars