@safeapi/safeapi
Version:
SafeAPI: Secure, deterministic, and tamper-resistant API policy engine for Node and browser.
28 lines (27 loc) • 1.29 kB
TypeScript
import type { SafeApiContext, SafeApiPolicy, SafeApiRequest, SafeApiResponse, SafeApiGuardResult } from "./SafeApiTypes";
import type { AuditPayload } from "./audit/SafeApiAuditPayload";
/** @internal */
export interface SafeApiEngineContract {
process(request: SafeApiRequest, context: SafeApiContext, policy: SafeApiPolicy): Promise<SafeApiResponse>;
}
/** @internal */
export interface SafeApiAuditContract {
record(request: SafeApiRequest, context: SafeApiContext, response: SafeApiResponse, auditPayload: AuditPayload): Promise<void>;
}
/** @internal */
export interface SafeApiGuardContract {
evaluate(request: SafeApiRequest, context: SafeApiContext, policy: SafeApiPolicy): Promise<SafeApiGuardResult>;
}
/** @internal */
export interface SafeApiExecutionHooks {
preValidate?: (request: SafeApiRequest) => Promise<void> | void;
preExecute?: (request: SafeApiRequest, policy: SafeApiPolicy) => Promise<void> | void;
postExecute?: (response: SafeApiResponse, context: SafeApiContext) => Promise<void> | void;
}
/** @internal */
export interface SafeApiEngineDependencies {
policyResolver: import("./SafeApiPolicyResolver").SafeApiPolicyResolver;
guardEvaluator: SafeApiGuardContract;
audit?: SafeApiAuditContract;
hooks?: SafeApiExecutionHooks;
}