jaws

module
v1.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2024 License: MPL-2.0

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

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 and pushd to and from the secrets path
  • 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 for projects/projectID/secrets/testing_key
  • 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
    • functions
      • quote
      • encode
      • decode
      • file
      • sh
      • resolve
      • escape
      • input
    • operators
    • conditionals

Output

output can print to stdout or to a file directly.

  • shell variable file i.g. .env
  • json
  • yaml
  • tfvars

Directories

Path Synopsis
cmd
integration
aws
gcp
pkg
tui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL