Skip to content

Allows verification of Rainforest webhook messages using your private API key

License

Notifications You must be signed in to change notification settings

rainforestapp/auth

Repository files navigation

Gem Version Build Status

Rainforest Auth

Allows verification of Rainforest webhook messages using your private API key.

Installation

Rainforest Auth is available as a gem, to install it just install the gem:

gem install rainforest_auth

If you're using Bundler, add the gem to Gemfile.

gem 'rainforest_auth'

Then run bundle install.

Where can I find my API key?

You can find your API key for Rainforest under the Accounts setting page. If you get stuck finding this, please reach out!

Examples

The following example recieves a 'before_run' notification from Rainforest, authenticates it, does a task for you and then notifies Rainforest to continue.

require "rainforest/auth"
require "httparty"

class RainforestCallbacksController < ApplicationController
  def create
    # Check the callback is valid
    rainforest_auther.run_if_valid(params[:digest], params[:callback_type], params[:options]) do

        # Work out what to do
        case params[:callback_type]
            when 'before_run'
                # Reset the database?
            when 'after_run'
                # Trigger deploy!
        end

        # Get the callback url for this run
        callback_url = rainforest_auther.get_run_callback(params[:options]['run_id'], params[:callback_type])

        # Notify Rainforest you are ready for a run to start
        HTTParty.post callback_url
    end
  end

private
  def rainforest_auther
    @rainforest_auther ||=  RainforestAuth.new 'YOUR_KEY_HERE'
  end
end

Checking if the signature is valid;

require "rainforest/auth"

r_auth = RainforestAuth.new('YOUR_KEY_HERE')

# Check the digest is correct
if r_auth.verify digest, callback_type, options
    puts "The digest was valid."
else
    puts "The digest was invalid!"
end

Running a block if the signature is valid;

require "rainforest/auth"

r_auth = RainforestAuth.new('YOUR_KEY_HERE')

# Run a block if it works
r_auth.run_if_valid(digest, callback_type, options) {
    puts "The digest was valid."
}

License

MIT License. See LICENSE for details.

Copyright

Copyright (c) 2014 CLDRDR, Inc.

About

Allows verification of Rainforest webhook messages using your private API key

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages