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