UNPKG

@safeapi/safeapi

Version:

SafeAPI: Secure, deterministic, and tamper-resistant API policy engine for Node and browser.

28 lines (27 loc) 1.29 kB
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; }