= Bjönd API A rubygem wrapper for the Bjönd API. This gem also contains an engine with endpoints that are made to interface with Bjond server-core. == Installation gem install 'bjond-api' For specific version info visit the gem page[https://rubygems.org/gems/bjond-api]. == Creating a Bjond Integration App To create a Bjond App using the Ruby on Rails framework, perform the following actions within your Rails application. (1) Add the following line to your Gemfile - gem 'bjond-api' (2) Install it with - bundle install (3) Migrate your Database To install necessary migrations, add this to your Rails' application.rb file - rake bjond_api_engine:install:migrations (4) At this point, you can run the migrations as usual using - rake db:migrate (5) Generate Configuration Files To get you started, generate a config file by running the following command: rails g initializer This will automatically do two things: - (5a) Copy a baseline bower.json file in to the root of your app. If you already have a bower.json file, you can skip this file when prompted. Instead, you can copy the dependencies over manually. At the time of this writing, the most import client side library is angular.js. Once the bower.json file is in your environment, run - bower install In application.js, include scripts using - //= require bjond-api Also, remove references to turbolinks. From your angular app, include our module as a dependency - angular.module('your-app',['bjond-api']); From application.css, require the core css: *= require 'bjond_registrations' - (5b) The generator will also create a root config create a config file that will initialize important variables for the Bjond-App gem. This will be copied into your app at: config/initializers/bjond-api-initializer.rb (6) The angular / css can be loaded by using the following code in the application.html.erb:
<%= yield %>
(7) Set-up Encryption Key For security, the encryption keys stored from Bjond Server are themselves encrypted. Define the following environment variable: APP_ENCRYPTION_KEY. If you have multiple apps in your environment, you can modify the name of this constant using BjondApi::BjondAppConfig.instance.encryption_key_name. To create an API key, from the Rails console (Rails c), type - [ Array.new(32) { rand(256) }.pack('C*') ].pack('m').chop Add this to your .bashrc / .zshrc like follows: BJOND_APP_ENCRYPTION_KEY="12345678/nux3uEVX2tHBRGc5gN4gQXIbkFEmy6d3chas=" Again, BJOND_APP_ENCRYPTION_KEY can be changed. It just needs to match the value set in your config file. Other environment variables that will need to be set include: BJOND_ADAPTER_SUBJECT and BJOND_ADAPTER_AUDIENCE (8) Set URL Options. In `development.rb`, set your local development options: config.action_controller.default_url_options = { :host => "localhost:3002", :root_url => "http://localhost:3002" } == Routes This gem contains several prepared routes that will aid registration, and communication with Bjond Server core. To set your app's default route to the registration page, add this line to your routes.rb file - root 'bjond_registrations#index' For more information on the default routes, check-out the gem's route page[https://github.com/Bjond/bjond-api/blob/master/config/routes.rb] == API Methods - register_app - fire_event == Environment Variables - BJOND_ADAPTER_AUDIENCE - BJOND_ADAPTER_SUBJECT == Essential Schema https://user-images.githubusercontent.com/868768/27399560-2d0fe7fc-568b-11e7-8762-49f2cd24ac96.jpg Most likely, your app schema will have additional configuration tables that are specific to the business logic of the adapter.