ApiEngineBase

This is an API only base engine to build on top of. This Engine takes care of all Authentication, Token Refresh, and RBAC Roles so that you do not have to! For all applications, you can get right to work on implementing the code directly related to your project rather than dealing with the administrative overhead.

While this gem is heavily opinionated, everything can be configured to your liking.

Installation

Add this line to your application's Gemfile:

gem "api_engine_base"

And then execute:

$ bundle

Or install it yourself as:

$ gem install api_engine_base

Initializing ApiEngineBase

Please follow all steps in Initializing ApiEngineBase

Available Routes

For more info, check out Controllers ReadMe

Additionally, You can check out RSpec Integration Testing

Available Models

ApiEngineBase provides several Models at the in the root namespace. Core Models like User and UserSecret are readily available. Don't forget! You can add additional methods to these classes by opening them back up.

For more info, check out Models ReadMe

Authentication (JWT BearerToken)

Authentication ensures that we know which user is requesting the action. When the Engine is unable to authenticate, a 401 status code is returned.

For more info, check out Authentication ReadMe

Authorization (RBAC)

Authorization is only done after authentication. This is the act of ensuring that the user can perform the action it is requesting. Put differently, I know who you are, but I need to validate you have permissions to complete the action. When the engine is unable to authorize the user, a 403 status code is returned.

For more info, check out Authentication ReadMe

Sensitive Changes

For more info, check out Sensitive Routes

ServiceBase

ServiceBase is built on top of Interactor. The ServiceBase is the heart of all logic for ApiEngineBase. It includes Logging and enhanced ArgumentValidation that can directly return back to the API request.

For more info, check out ServiceBase ReadMe

License

The engine is available as open source under the terms of the MIT License.