UNPKG

@mamoorali295/rbac

Version:

Complete RBAC (Role-Based Access Control) system for Node.js with Express middleware, NestJS integration, GraphQL support, MongoDB & PostgreSQL support, modern admin dashboard, TypeScript support, and dynamic permission management

36 lines (35 loc) 1.13 kB
import { GraphQLSchema } from 'graphql'; export interface AuthDirectiveArgs { feature?: string; permission?: string; } /** * GraphQL directive transformer for RBAC authentication and authorization. * Can auto-infer permissions from field names or use explicit configuration. * * @example * ```graphql * type Query { * # Auto-inferred permissions * billingInvoices: [Invoice] @auth * * # Explicit permissions * adminReset: Boolean @auth(feature: "admin", permission: "sudo") * * # Feature-level permission (infers permission from field name) * billingCreate(input: CreateInput): Invoice @auth(feature: "billing") * } * * type Mutation { * # Auto-inferred: feature="user", permission="create" * createUser(input: CreateUserInput): User @auth * * # Auto-inferred: feature="user", permission="update" * updateUser(id: ID!, input: UpdateUserInput): User @auth * * # Auto-inferred: feature="user", permission="delete" * deleteUser(id: ID!): Boolean @auth * } * ``` */ export declare function authDirectiveTransformer(schema: GraphQLSchema, directiveName?: string): GraphQLSchema;