@restorecommerce/acs-client
Version:
Access Control Service Client
51 lines • 2.84 kB
TypeScript
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