@ords/modules
Version:
Modules for ords-core microservices based upon proposals
46 lines (45 loc) • 1.62 kB
TypeScript
import { ServiceRegistry, proposals } from '@ords/core';
import { lib as schemaLib } from '@ords/obj-schema';
import { Observer } from 'rxjs';
/**
* FOllows structure of proposals protectHookLib would be other lib functions
*/
export declare namespace ProtectHookProposal {
namespace types {
interface authRule extends Function {
(request: proposals.main.types._BaseRequest<proposals.database.Packages.Create | proposals.database.Packages.Read | proposals.database.Packages.Update | proposals.database.Packages.Delete | proposals.database.Packages.Patch>, observable: Observer<[string, any]>): void;
}
}
}
export declare class Protect {
private schema;
private authRule;
setSchema(key: string, schema: schemaLib.SchemaValidation): void;
setAuthRule(key: string, rule: ProtectHookProposal.types.authRule): void;
/**
* Create and bind hooks to msr
* @param msr reference to microservice registry
* @param hooks hooks that needs to be enabled within this
*/
constructor(msr: ServiceRegistry);
/**
* Check that a given resource exists by a schema existing for it
* @param request
*/
private checkResourceExist(request);
/**
* Check that a given rule for a schema is followed
* @param request
*/
private checkAuthRule(request);
/**
* Check that data follows given schema scritly
* @param request
*/
private checkFollowSchemaStrict(request);
/**
* Check that data follows given schema non-strictly
* @param request
*/
private checkFollowSchema(request);
}