masks

masks is a general purpose access control framework for ruby/rails.

Getting started

To use it, add masks to your Gemfile or run:

bundle add masks

Then run the install generator:

rails generate masks:install

A typical install creates a masks.json, an initializer, and migrations. After running the generator your app will be able to use masks' signup, login, and account management features. Every route in your app will be protected by login by default.

Documentation

Full documentation is available at masks.geiger.to.

How it works

At the heart of masks are a few key concepts:

  • Masks are rules that define access to resources in your application
  • Actors access resources via sessions (if allowed by the mask)
  • Sessions keep track of attempts to access resources
  • Credentials identify and check actors' access using session data

masks implements most of the glue code required to build actors, open sessions, and check credentials, leaving your application to defining the masks required for it to function. typically all you need is a masks.json file, but you can also build custom credentials, checks, models, and more...

an example masks.json

{
  "name": "example",
  "url": "http://example.com",
  "logo": "...",
  "extend": "masks"
}