rbac-engine
Version:
Role-based access control engine with policy-based permissions
29 lines • 1.42 kB
TypeScript
import { IBaseRepository } from "./base-repo";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { Policy, Role, User } from "../models";
export declare class DynamoDBRepository implements IBaseRepository {
private client;
private docClient;
private tableName;
constructor(client: DynamoDBClient);
setupTables(): Promise<void>;
createUser(user: User): Promise<User>;
getUser(userId: string): Promise<User>;
createRole(role: Role): Promise<Role>;
getRole(roleId: string): Promise<Role>;
assignRoleToUser(userId: string, roleId: string): Promise<User>;
createPolicy(policy: Policy): Promise<Policy>;
attachPolicyToRole(policyId: string, roleId: string): Promise<void>;
getUserPolicies(userId: string): Promise<Policy[]>;
getRolePolicies(roleId: string): Promise<Policy[]>;
updateRole(role: Role): Promise<Role>;
updatePolicy(policy: Policy): Promise<Policy>;
deletePolicy(policyId: string): Promise<void>;
deleteRole(roleId: string): Promise<void>;
detachPolicyFromUser(policyId: string, userId: string): Promise<void>;
detachPolicyFromRole(policyId: string, roleId: string): Promise<void>;
removeRoleFromUser(userId: string, roleId: string): Promise<void>;
attachPolicyToUser(policyId: string, userId: string): Promise<void>;
getPolicy(policyId: string): Promise<Policy>;
}
//# sourceMappingURL=dynamodb-repo.d.ts.map