Sequelize Guard

Quick Start

πŸ›‘οΈ Sequelize Guard

Role-based access control for Sequelize

An elegant Authorization Library for Node.js with Sequelize ORM

Features

  • πŸ” Role-Based Access Control - Define roles and permissions for your application
  • 🎯 Resource-Level Permissions - Control access to specific resources
  • πŸ‘₯ User Management - Built-in user-role associations
  • ⚑ High Performance - Built-in caching for optimal performance
  • πŸ”„ Migration Support - Easy database schema setup
  • πŸ“¦ TypeScript Support - Full type definitions included
  • πŸ§ͺ Well Tested - Comprehensive test coverage
  • 🎨 Flexible API - Simple and intuitive API design

Installation

npm install sequelize-guard

Quick Example

import { SequelizeGuard } from 'sequelize-guard';
import { Sequelize } from 'sequelize';

// Initialize Sequelize
const sequelize = new Sequelize({
  dialect: 'sqlite',
  storage: ':memory:',
});

// Initialize Sequelize Guard
const guard = new SequelizeGuard(sequelize);

// Initialize the guard system
await guard.init();

// Create a role
const adminRole = await guard.roles.createRole('admin', 'Administrator');

// Create a permission
const createUserPerm = await guard.permissions.createPermission(
  'create',
  'users',
  'Can create users',
);

// Assign permission to role
await guard.roles.assignPermission(adminRole.id, createUserPerm.id);

// Create a user
const user = await guard.users.createUser('user@example.com', {
  name: 'John Doe',
});

// Assign role to user
await guard.users.assignRole(user.id, adminRole.id);

// Check permission
const canCreate = await guard.authorize.checkPermission(
  user.id,
  'create',
  'users',
);
console.log(canCreate); // true

Why Sequelize Guard?

Sequelize Guard provides a complete authorization solution for your Node.js applications:

  • Easy Integration - Works seamlessly with existing Sequelize projects
  • Production Ready - Used in production applications
  • Active Development - Regular updates and improvements
  • MIT Licensed - Free for commercial and personal use

Community

License

MITΒ© Lotivo

On this page