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-guardQuick 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); // trueWhy 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
- GitHub Issues - Report bugs and request features
- GitHub Discussions - Ask questions and share ideas
- NPM Package - View package details
License
MITΒ© Lotivo