exguard-endpoint
v1.1.0
Published
Simple RBAC permission guard for NestJS with realtime support
Downloads
886
Maintainers
Readme
ExGuard Endpoint
Simple RBAC permission guard for NestJS with built-in caching.
Installation
npm install exguard-endpointQuick Setup (Auto-Configures Everything)
npx exguard-endpoint setupThis will:
- Create
src/exguard/exguard.guard.ts - Create
src/exguard/exguard.module.ts - Update
src/app.module.tswith ExGuardModule - Create
.env.examplewith EXGUARD_BASE_URL
Usage
// app.module.ts is auto-configured!
// Just use in controllers:
import { ExGuardPermissionGuard, RequirePermissions } from './exguard/exguard.guard';
@Controller('items')
@UseGuards(ExGuardPermissionGuard)
export class ItemsController {
@Get()
@RequirePermissions(['item:read'])
findAll() { }
@Post()
@RequirePermissions(['item:create'])
create() { }
}Environment
EXGUARD_BASE_URL=http://localhost:3000Caching
- TTL: 5 minutes
- Clear cache:
clearExGuardCache()
Decorators
| Decorator | Description |
|-----------|-------------|
| @RequirePermissions(['item:read']) | User needs ANY permission |
| @RequirePermissions(['item:delete', 'admin'], true) | User needs ALL permissions |
User Object
req.user = {
user: { id, username, email, ... },
roles: string[],
modules: [{ key, name, permissions: [] }],
groups: string[],
fieldOffices: string[]
}MIT
