Shim to load environment variables from AWS Systems Manager Parameter Store into ENV.
Find a file
Andrew Tomaka bd72d2a64f
Add sample Rails application (#9)
* Add rails application
* Run tests for sample Rails app
2019-10-09 22:25:20 -04:00
.github/workflows Add sample Rails application (#9) 2019-10-09 22:25:20 -04:00
bin Initial commit 2018-03-22 18:01:53 -04:00
lib Support Rails 6 (#8) 2019-10-04 23:23:04 -04:00
spec Add sample Rails application (#9) 2019-10-09 22:25:20 -04:00
.gitignore Add more Rubies to be tested 2018-04-10 20:48:57 -04:00
.rspec Initial commit 2018-03-22 18:01:53 -04:00
.rubocop.yml Add sample Rails application (#9) 2019-10-09 22:25:20 -04:00
.travis.yml Test against Ruby 2.6 2019-06-14 19:23:48 -04:00
Gemfile Add rubocop 2018-03-28 21:57:06 -04:00
LICENSE.txt Initial commit 2018-03-22 18:01:53 -04:00
psenv-rails.gemspec Support Rails 6 (#8) 2019-10-04 23:23:04 -04:00
psenv.gemspec Add retriever specs 2018-04-09 23:20:58 -04:00
Rakefile Setup bundler 2018-05-07 11:46:15 -04:00
README.md Initial commit 2018-03-22 18:01:53 -04:00

Psenv

Work in progress

Shim to load environment variables from AWS Systems Manager Parameter Store into ENV.

Psenv currently heavily borrows from Dotenv, mainly because I use it in roughly every project so it made since for the APIs to match.

Installation

Rails

Add this line to your application's Gemfile:

gem 'psenv-rails'

And then execute:

$ bundle

Set the PARAMETER_STORE_PATH environment variable with the AWS Parameter Store path that you wish to load.

Plain Ruby

Add this line to your application's Gemfile:

gem 'psenv'

And then execute:

$ bundle

Set the PARAMETER_STORE_PATH environment variable with the AWS Parameter Store path that you wish to load.

Finally, trigger the loading:

require 'psenv'
Psenv.load

Usage

  • Create a variable in parameter store using the AWS console or the CLI
aws ssm put-parameter \
	--name /psenv/test/API_KEY \
	--value "api_key_value" \
	--type String
  • Ensure your application has at least the following IAM permissions
    • ssm:GetParametersByPath on resource arn:aws:ssm:::parameter/psenv/test/*
  • Set the PARAMETER_STORE_PATH environment variable to /psenv/test/

This example will set the API_KEY to api_key_value and make it available to your application.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/atomaka/psenv.

License

The gem is available as open source under the terms of the MIT License.