UNPKG

@restorecommerce/acs-client

Version:

Access Control Service Client

51 lines 2.84 kB
import { ACSClientContext, AuthZAction, AuthZContext, AuthZTarget, AuthZWhatIsAllowedTarget, DecisionResponse, IAuthZ, NoAuthTarget, NoAuthWhatIsAllowedTarget, PolicySetRQResponse, Request, ACSResource } from './interfaces'; import { AccessControlServiceClient } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/access_control'; import { Attribute } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/attribute'; import { Subject, DeepPartial } from '@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/auth'; export declare type Authorizer = ACSAuthZ; export declare let authZ: Authorizer; export declare let unauthZ: UnAuthZ; export declare const createActionTarget: (action: any) => Attribute[]; export declare const createSubjectTarget: (subject: DeepPartial<Subject>) => Attribute[]; export declare const formatResourceType: (type: string, namespacePrefix?: string) => string; export declare const createResourceTarget: (resource: ACSResource[], action: AuthZAction) => Attribute[]; export declare class UnAuthZ implements IAuthZ { acs: AccessControlServiceClient; /** * * @param acs Access Control Service definition (gRPC) */ constructor(acs: AccessControlServiceClient); private encode; isAllowed(request: Request<NoAuthTarget, AuthZContext>, ctx: ACSClientContext, useCache: boolean): Promise<DecisionResponse>; whatIsAllowed(request: Request<AuthZWhatIsAllowedTarget | NoAuthWhatIsAllowedTarget, AuthZContext>, ctx: ACSClientContext, useCache: boolean): Promise<PolicySetRQResponse>; } /** * General authorizer. Marshalls data and requests access to the Access Control Service (ACS). */ export declare class ACSAuthZ implements IAuthZ { acs: AccessControlServiceClient; /** * * @param acs Access Control Service definition (gRPC) */ constructor(acs: AccessControlServiceClient, ids?: any); /** * Perform request to access-control-srv * @param request - authZRequest containing subject, resources and action * @param useCache * @returns {DecisionResponse} */ isAllowed(request: Request<AuthZTarget, AuthZContext>, ctx: ACSClientContext, useCache: boolean): Promise<DecisionResponse>; /** * Perform request to access-control-srv * @param request - authZRequest containing subject, resource and action * @returns {PolicySetRQ} * @param resource */ whatIsAllowed(request: Request<AuthZWhatIsAllowedTarget, AuthZContext>, ctx: ACSClientContext, useCache: boolean): Promise<PolicySetRQResponse>; private encode; prepareRequest(request: Request<AuthZTarget | AuthZWhatIsAllowedTarget, AuthZContext>): any; } export declare const initAuthZ: (config?: any) => Promise<void | ACSAuthZ>; //# sourceMappingURL=authz.d.ts.map