/alohomora

✨A cli for AWS Systems Manager Parameter Store (ssm) 🔏

Primary LanguageTypeScriptMIT LicenseMIT

workflow codecov Codacy Badge MIT License


Logo

Alohomora

✨A cli for AWS Systems Manager Parameter Store (ssm) 🔏
Explore the docs »

Report Bug · Request Feature

Table of Contents

About The Project

cast spell

Many libraries deal with parameter store secrets. However, I didn't find one that suits my needs, so I created this one. I wanted to develop a library that will solve all my needs while using secrets, including exporting the key/secrets to different formats

Here's why:

  • Some solutions out there create their prefix to store keys, not leaving much flexibility when trying to migrate if needed.
  • Exports were limited, not giving support to JSON output and possible others.

Built With

Getting Started

Here is an example of how you may give instructions to set up a local project. You should follow these simple steps to get a local copy up and running:

Prerequisites

Installation

If you wish to use it as a stand alone utility:

npm -g install alohomora

It will make the command alo available in your command line

alo --help

If instead you would like to have it on a particular package.

npm install --only=dev alohomora

Usage

Every command accepts several options via cli or via custom configuration see configuration for more

List secrets.

  alo list --prefix my-company/my-app

Get secrets.

  alo list --prefix my-company/my-app

Configuration

alohomora can get configuration from several places:

CLI options

If you are using it as a global command, you can provide all the options via cli:

  alo list --prefix my-company/my-app --aws-region us-west-2  --aws-profile myCustomAWSProfile --environment production

for more details you can invoke:

  alo --help

Custom Configuration

You can also define custom configuration in your package:

{
  "name": "my-package",
  "alohomora": {
    "prefix": "my-company/my-app",
    "environment": "production",
    "region": "us-west-2"
  },
  "scripts": {
    "secrets": "alo export"
  },
  "devDependencies": {
    "alohomora": "^1.0.0"
  }
}

When the command is invoked it will take the key alohomora as configuration.

(my-package)$ npm run secrets

Custom configuration can be defined in many places, for more information check cosmiconfig

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

LinkedIn

follow on Twitter follow on Twitter