@allan1361/iota-big3-sdk-middleware
Version:
🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability
54 lines • 1.73 kB
TypeScript
import type { IndustryType, SDK } from '@iota-big3/sdk-core';
import type { Request, RequestHandler } from 'express';
import type { FastifyInstance } from 'fastify';
export interface PolicyConfig {
opaUrl?: string;
enforcementMode?: 'enforce' | 'monitor' | 'off';
cacheDecisions?: boolean;
cacheTTL?: number;
defaultAllow?: boolean;
includeViolationDetails?: boolean;
inputBuilder?: (req: Request) => Promise<any>;
philosophyEnforcement?: boolean;
philosophyMinScore?: number;
}
export interface PolicyMetadata {
serviceName: string;
tribe?: string;
industry?: IndustryType;
environment?: string;
sdk?: SDK;
}
export interface PolicyInput {
method: string;
path: string;
user?: import('@iota-big3/sdk-types').AuthUser;
resource?: string;
action?: string;
context?: Record<string, unknown>;
}
export interface PolicyDecision {
allowed: boolean;
reasons?: string[];
appliedPolicies?: string[];
filteredResponse?: unknown;
}
export interface PolicyMiddleware extends RequestHandler {
express: RequestHandler;
fastify: (fastify: FastifyInstance) => Promise<void>;
clearCache: () => void;
getMetrics: () => PolicyMetrics;
}
interface PolicyMetrics {
allowed: number;
denied: number;
errors: number;
cached: number;
}
export declare function createPolicyMiddleware(metadata: PolicyMetadata, config?: PolicyConfig): PolicyMiddleware;
export declare function createLegacyPolicyMiddleware(config?: PolicyConfig & {
tribe?: string;
}): PolicyMiddleware;
export declare const policyMiddleware: typeof createPolicyMiddleware;
export default createPolicyMiddleware;
//# sourceMappingURL=policy-middleware.d.ts.map