README.md in voltos-0.2.0 vs README.md in voltos-0.2.1

- old
+ new

@@ -1,9 +1,11 @@ # Voltos Ruby bindings -This gem provides Voltos Ruby bindings for provide a small SDK for access to the Voltos API from apps written in Ruby. Voltos ([https://voltos.online](https://voltos.online)) provides credentials-as-a-service for app and system developers. +This gem provides Voltos Ruby bindings to access the Voltos API from apps written in Ruby. Voltos ([https://voltos.online](https://voltos.online)) provides credentials-as-a-service for app and system developers. +Voltos stores your credentials (e.g. API keys, usernames, passwords, tokens) in a secure, central location - so that your apps can access them, and you can more easily manage them & access to them. + ## Installation Add this line to your application's Gemfile: ```ruby @@ -18,26 +20,73 @@ $ gem install voltos ## Getting started -1. Find your unique Voltos API key. See "Bundle" settings. +You'll use Voltos to load up a **bundle** of credentials each time. Think of a bundle as credentials that have been logically grouped together, e.g. a ``PROD`` bundle. -2. Set this key as an environment variable, e.g. +1. Ensure your bundle(s) are organised how you want, on your Voltos account (https://voltos.online). + +2. Find the API key for the bundle that you want your app to load (e.g. bundle ``PROD``'s API key: 13579def13579def) + +2. Set this key as an environment variable in your app, e.g. ```ruby $ export VOLTOS_KEY=13579def13579def # or on a platform like Heroku $ heroku config:set VOLTOS_KEY=13579def13579def ``` - We'll use this key to load up our Voltos credentials (don't worry, you'll only need to set one key this way). + In a moment, we'll use this key to load up the matching Voltos bundle of credentials (and don't worry, you'll only need to set one environment variable this way). -3. Require the `voltos` gem early on, prior to where your trying to use any credentials +3. Require the `voltos` gem early on, before you use the credentials: ```ruby require 'voltos' - # access the credential "MAILER_API_TOKEN" that's in the bundle - puts ENV["MAILER_API_TOKEN"] + + # Voltos will automatically load the bundle matching the key you've specified in VOLTOS_KEY + # and load those credentials into ENV, ready to use + + puts ENV['MY_SECRET_KEY'] ``` + +### Multiple bundles + +Sometimes, you need to load up more than one bundle (e.g. you have ``DEV`` and ``PROD`` bundles to load when deploying on different environments). + +1. Get the respective API keys for those bundles (e.g. ``VOLTOS_COMMON`` and ``VOLTOS_PROD``). + +2. Set environment variables for these bundle keys: + ```ruby + $ export VOLTOS_COMMON=1294854fe52417a + $ export VOLTOS_PROD=8646ec352729c3 + + # or on a platform like Heroku + $ heroku config:set VOLTOS_COMMON=1294854fe52417a VOLTOS_PROD=8646ec352729c3 + ``` + +2. Manually load up each bundle of credentials at appropriate time for your app: + ```ruby + + ## environment.rb - load up COMMON bundle with credentials common to all environments + Voltos.configure do |config| + config.api_key = ENV["VOLTOS_COMMON"] + end + + voltos_creds = Voltos.load + voltos_creds.each do |key,val| + ENV[key] ||= val + end + + + ## production.rb - load up PROD bundle with credentials specific to prod environment + Voltos.configure do |config| + config.api_key = ENV["VOLTOS_PROD"] + end + + voltos_creds = Voltos.load + voltos_creds.each do |key,val| + ENV[key] ||= val + end + ``` ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/voltos-online/voltos-ruby