Purpose & Overview
Controls user authorization through granular permissions, role hierarchies, route protection middlewares, and UI action gating.
Installation & Setup
1
Install the package
bash
bun veap add @veap/rbac-plugin2
Register in lib/veap.ts (or auto via lib/plugins.gen.ts)
lib/veap.ts
typescript
// lib/veap.ts
import { Application } from "@veap/core/core/server";
import rbacPlugin from "@veap/rbac-plugin";
export const app = Application.configure()
.withAuth()
.withPlugins([rbacPlugin])
.create();
// Checking security and roles in actions or server components:
import { checkSecurity, getCurrentSession } from "@veap/core/auth/server";
const { session, user } = await getCurrentSession();
const auth = await checkSecurity(session, user, ["admin"], ["post:update"]);
if (!auth.satisfied) {
throw new Error("Forbidden: insufficient permissions");
}Keep in mind
- Defines default built-in roles: 'admin' and 'user'.
- Allows other plugins to register domain-specific permissions (e.g. 'post:create', 'media:upload').
- Provides `checkSecurity(session, user, roles, permissions)` and `getUserRbacData(userId)` for access control.
Dependencies
Veap Core
@veap/core (^0.1.0)
Required Veap Plugins
NPM Packages
- lucide-react@^1.27.0
Authors & Maintainers
Veap Core Team
Maintainer
Specifications
- License
- MIT
- Type
- plugin
- Status
- official
- Repository
- GitHub →
- Issues
- Report issue →