UNPKG

@permitio/permit-prisma

Version:

Prisma extension for integrating Permit.io authorization (RBAC, ABAC, ReBAC) into your Prisma application.

39 lines (38 loc) 1.97 kB
import { IPermitClient } from "../types/IPermitClient"; import { IPermitConfig } from "../types/IPermitConfig"; import { User, Action, Resource, Context } from "../models/PermissionModels"; import { Permit } from "permitio"; export declare class PermitClient implements IPermitClient { private permitInstance; private config; private initialized; private initializationPromise; constructor(config: IPermitConfig); /** * Initialize the Permit SDK connection * This is called automatically when the client is constructed */ private initialize; /** * Ensure the SDK is initialized before performing operations */ private ensureInitialized; /** * Check if a user has permission to perform an action on a resource */ check(user: User, action: Action, resource: Resource, context?: Context): Promise<boolean>; /** * Enforce permission check - throws if permission is denied */ enforceCheck(user: User, action: Action, resource: Resource, context?: Context): Promise<void>; getUserPermissions(userId: string): Promise<import("permitio/build/main/enforcement/interfaces").IUserPermissions>; getAllowedResourceIds(userId: User, resourceType: string, action: Action): Promise<string[]>; filterObjects(user: User, action: Action, resources: Array<any>): Promise<Array<any>>; syncResourceInstanceCreate(resourceType: string, resourceKey: string, tenant?: string, attributes?: Record<string, any>): Promise<import("permitio/build/main/openapi").ResourceInstanceRead>; syncResourceInstanceUpdate(resourceType: string, resourceKey: string, tenant?: string, attributes?: Record<string, any>): Promise<import("permitio/build/main/openapi").ResourceInstanceRead>; syncResourceInstanceDelete(resourceType: string, resourceKey: string): Promise<void>; /** * Get the underlying Permit SDK instance for advanced usage */ getPermitInstance(): Permit; }