@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
TypeScript
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;