Project

securial

0.0
The project is in a healthy, maintained state
Securial is a mountable Rails engine that provides robust, extensible authentication and access control for Rails applications. It supports JWT, API tokens, session-based auth, and is designed for easy integration with modern web and mobile apps.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 2.13
~> 8.0
~> 3.1
~> 3.0.0
 Project Readme

Securial

Gem Version Gem Downloads License

Tests Coveralls


🛡️ What is Securial?

Securial is a mountable Rails engine that provides robust, extensible authentication and access control for Rails applications. It supports:

  • 🟦 JWT-based authentication
  • 🟦 API tokens
  • 🟦 Session-based auth
  • 🟦 Simple integration with web and mobile apps
  • 🟦 Clean, JSON-based API responses
  • 🟦 Simple user management with roles
  • 🟦 Database-agnostic support

👀 Why Securial?

Securial was built to offer a clean, modular, and API-first authentication system for Rails developers who want full control without the black-box complexity. Whether you're building for the web, mobile, or both, Securial gives you the flexibility to implement exactly what you need — from simple JWT authentication to more advanced setups involving sessions, API tokens, and role-based access.

It follows familiar Rails conventions, stays lightweight and database-agnostic, and keeps security at the core. With fully customizable controllers, serializers, and logic, Securial is designed to grow with your project — making it an ideal choice for everything from side projects to production-grade APIs.

🚀 Installation

Securial can be installed on an existing Rails application or use the securial new app_name command to create a new Securial-ready Rails app.

Installation on an existing Rails app:

To add Securial to an existing Rails app:

  • Add gem "securial" to your GemFile
  • Run bundle install
  • Run rails generate securial:install
  • Mount the Securial engine in your Rails application config/routes.rb file:
    Rails.application.routes.draw do
      mount Securial::Engine => "/securial"
    
      # The rest of your routes
    end
  • Run the migrations by running the command: rails db:migrate

💡 Full installation steps are available in the Wiki › Installation.

⚙️ Configuration

Securial generates an initializer with sensible defaults and full control over logging, mailers, session settings, and roles.

For all configuration options and examples, refer to the Wiki › Configuration

📦 Usage

After installation and mounting, Securial exposes endpoints like:

  • GET /securial/status — Check service availability
  • POST /securial/sessions — Sign in (JWT or session)
  • DELETE /securial/sessions — Sign out
  • GET /securial/accounts/cool_username — Get a user profile by username
  • GET /securial/admins/roles — View roles

Securial returns consistent JSON API responses.

Full details, including authentication flows and protected routes, are available in the Wiki › Authentication module docs.

🧩 Modules

Securial is organized into modular components including:

  • Authentication
  • User Management
  • Generators
  • Identity concern
  • Configuration

Explore all modules in the Wiki.

🛠 Development & Testing

  • Clone the repo on your computer
  • Run bundle install
  • Start coding right away 🏃‍♂️

To run the test suite:

$ bin/test

View the coverage report:

$ open coverage/index.html

🤝 Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/alybadawy/securial.

  1. Fork the repo
  2. Create your feature branch (git checkout -b my-feature)
  3. Commit your changes (git commit -am 'Add my feature')
  4. Push to the branch (git push origin my-feature)
  5. Open a Pull Request

⚖️ License

The gem is available as open source under the terms of the MIT license.



logo-e9f16c9b 1