README.md in sidekiq-field-encryptor-0.1.0 vs README.md in sidekiq-field-encryptor-0.1.1

- old
+ new

@@ -2,11 +2,11 @@ [![Gem Version](https://badge.fury.io/rb/sidekiq-field-encryptor.png)](https://rubygems.org/gems/sidekiq-field-encryptor) [![Build Status](https://travis-ci.org/aptible/sidekiq-field-encryptor.png?branch=master)](https://travis-ci.org/aptible/sidekiq-field-encryptor) [![Dependency Status](https://gemnasium.com/aptible/sidekiq-field-encryptor.png)](https://gemnasium.com/aptible/sidekiq-field-encryptor) -TODO: Add description. +This is a utility which is intended to be used for encrypting sensitive data in Sidekiq jobs. The data is encrypted before sending it to Redis, and decrypted right before the Sidekiq job is executed. ## Installation Add the following line to your application's Gemfile. @@ -14,10 +14,27 @@ And then run `bundle install`. ## Usage -TODO: Add usage notes. +This middleware configures encryption of any fields that can contain sensitive +information. Keys in the hash are Sidekiq job classes and values are hashes +that map indices in the args array to either "true" (encrypt the entire arg) +or a list of keys (encrypt certain values in a hash argument). For example, +the configuration hash: + + { 'Job::Foo' => { 0 => true, 3 => [ 'secret', 'id' ] } } + +When applied to the Sidekiq job: + + { + 'class' => 'Job::Foo', + 'args' => [{'x' => 1}, 'y', 'z', { 'public' => 'a', 'secret' => 'b' }], + ... + } + +Will encrypt the values {'x' => 1} and 'b' when storing the job in Redis and +decrypt the values inside the client before the job is executed. ## Contributing 1. Fork the project. 1. Commit your changes, with specs.