Skip to content

bibhu-p/ZenixRBAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ZenixRBAC

npm core npm cli License: MIT TypeScript

A modern, developer-friendly RBAC/ABAC permission system

A comprehensive RBAC/ABAC (Role-Based & Attribute-Based Access Control) system with a visual studio for building and testing permission rules.

🌟 Features

  • High-Performance Core Engine - Fast permission evaluation with caching
  • Visual Studio - Interactive Next.js app for building rules
  • CLI Tool - Command-line interface for project management
  • YAML/JSON Rules - Human-readable rule definitions
  • TypeScript Support - Full type safety and IntelliSense
  • Role Inheritance - Hierarchical role structures
  • ABAC Conditions - Attribute-based access control with expressions
  • Real-time Testing - Interactive playground for testing permissions

πŸ“¦ Packages

This monorepo contains:

πŸš€ Quick Start

1. Install CLI

npm install -g zenix-rbac-cli

2. Initialize Project

# Initialize a new RBAC project
npx zenix-rbac-cli init

3. Launch Visual Studio

# Launch the visual builder
npx zenix-rbac-cli studio

The studio will open at http://localhost:4141 with:

  • 🎭 Roles Management - Create roles with inheritance
  • πŸ“¦ Resources Builder - Define resources with typed attributes
  • ⚑ Rules Canvas - Build permission rules visually
  • πŸ§ͺ Playground - Test permissions interactively

4. Validate & Export

# Validate your rules
npx zenix-rbac-cli validate

# Export compiled rules
npx zenix-rbac-cli export

5. Use in Your Application

import { createChecker } from 'zenix-rbac-core';

// Load rules
const { check } = await createChecker({
  path: './rules.yaml',
});

// Check permissions
const result = await check({
  user: { id: 1, role: 'editor' },
  action: 'post.update',
  resource: { id: 10, authorId: 1 },
});

console.log(result.allowed); // true/false
console.log(result.explanation); // Why it was allowed/denied

πŸ“– Documentation

🎨 Visual Studio Features

The visual studio provides an intuitive interface for:

Roles Management

  • Create, edit, and delete roles
  • Set up role inheritance hierarchies
  • Visual inheritance tree

Resources Builder

  • Define protected resources
  • Add typed attributes (string, number, boolean, date, etc.)
  • Mark attributes as required/optional

Rules Canvas

  • Create permission rules visually
  • Set effects (allow/deny)
  • Add ABAC conditions with expressions
  • Assign priorities

Playground

  • Test permissions in real-time
  • JSON editors for user and resource
  • Color-coded results
  • View matched rules

πŸ—οΈ Development

# Install dependencies
npm install

# Build all packages
npm run build

# Run tests
npm test -w zenix-rbac-core

# Start development
npm run dev

πŸ“ License

MIT

About

πŸ” Visual RBAC/ABAC permission system with CLI, TypeScript SDK, and beautiful studio UI. Define roles, resources & rules in YAML, export to production-ready code.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors