Skip to content

GuardMiddlewareProtocol

Defined in: packages/core/src/protocols/middleware.ts:7

readonly agentHandler: AgentHandlerProtocol | null

Defined in: packages/core/src/protocols/middleware.ts:20


readonly config: object

Defined in: packages/core/src/protocols/middleware.ts:8

agentApiKey: string | null

agentBackoffFactor: number | null

agentBufferOverflowPolicy: "drop" | "block" | "raise" | null

agentBufferSize: number

agentCompressionEnabled: boolean | null

agentCompressionThreshold: number | null

agentEnableEvents: boolean

agentEnableMetrics: boolean

agentEndpoint: string

agentFlushInterval: number

agentGuardVersion: string | null

agentHighWatermarkRatio: number | null

agentInstallId: string | null

agentMaxConcurrentFlushes: number | null

agentMaxPayloadSize: number | null

agentPayloadSigningSecret: string | null

agentProjectEncryptionKey: string | null

agentProjectId: string | null

agentRetryAttempts: number

agentSensitiveHeaders: string[] | null

agentStatusInterval: number

agentStrict: boolean

agentTimeout: number

optional authVerifier?: (request, credential) => unknown

GuardRequest

string

unknown

autoBanDuration: number

autoBanThreshold: number

behaviorMaxResponseBodyInspectBytes: number

behaviorScanResponseBody: boolean

blacklist: string[]

blockCloudProviders: Set<"AWS" | "GCP" | "Azure">

blockedCountries: string[]

blockedUserAgents: string[]

bodyReadMaxConcurrent: number

bodyReadTimeout: number

cloudIpRefreshInterval: number

corsAllowCredentials: boolean

corsAllowHeaders: string[]

corsAllowMethods: string[]

corsAllowOrigins: string[]

corsExposeHeaders: string[]

corsMaxAge: number

customErrorResponses: Record<number, string>

customLogFile: string | null

optional customRequestCheck?: (req) => Promise<GuardResponse | null>

GuardRequest

Promise<GuardResponse | null>

optional customResponseModifier?: (res) => Promise<GuardResponse>

GuardResponse

Promise<GuardResponse>

detectionAnomalyEmissionCooldown: number

detectionAnomalyThreshold: number

detectionBinaryMinRunLength: number

detectionCompilerTimeout: number

detectionMaxBodyInspectBytes: number

detectionMaxContentLength: number

detectionMaxJsonDepth: number

detectionMaxScanChars: number

detectionMaxScanValues: number

detectionMaxTrackedPatterns: number

detectionMinSamplesForAnomaly: number

detectionMonitorHistorySize: number

detectionPatternValidationCachePath: string | null

detectionPreserveAttackPatterns: boolean

detectionScanBody: boolean

detectionScanWorkerPool: boolean

detectionSemanticThreshold: number

detectionSlowPatternThreshold: number

detectionThreatScoreThreshold: number

dynamicRuleInterval: number

dynamicRulesCachePath: string | null

emergencyMode: boolean

emergencyWhitelist: string[]

enableAgent: boolean

enableCors: boolean

enabledDetectionCategories: string[]

enableDynamicRules: boolean

enableEnrichment: boolean

enableIpBanning: boolean

enableLogfire: boolean

enableOtel: boolean

enablePenetrationDetection: boolean

enableRateLimitAutoBan: boolean

enableRateLimiting: boolean

enableRedis: boolean

endpointRateLimits: Record<string, [number, number]>

enforceHttps: boolean

excludedDetectionBodyFields: string[]

excludedDetectionHeaders: string[]

excludedDetectionParams: string[]

excludePaths: string[]

exemptIps: string[]

failSecure: boolean

geoIpDbMaxAge: number

optional geoIpHandler?: GeoIPHandler

optional geoResolver?: (ip) => string | null

string

string | null

globalBehaviorRules: object[]

ipinfoDbPath: string

ipinfoToken: string | null

lazyInit: boolean

logCountryCheckLevel: "INFO" | "DEBUG" | "WARNING" | "ERROR" | "CRITICAL" | null

logfireServiceName: string

logFormat: "text" | "json"

optional logger?: Logger

logRequestLevel: "INFO" | "DEBUG" | "WARNING" | "ERROR" | "CRITICAL" | null

logSensitiveBodyFields: string[]

logSensitiveHeaders: string[]

logSensitiveParams: string[]

logSuspiciousLevel: "INFO" | "DEBUG" | "WARNING" | "ERROR" | "CRITICAL" | null

mutedCheckLogs: string[]

mutedEventTypes: string[]

mutedMetricTypes: string[]

optional onBlock?: (request, payload) => unknown

GuardRequest

Record<string, unknown>

unknown

optional onError?: (stage, error, context) => void

string

unknown

Record<string, unknown>

void

otelExporterEndpoint: string | null

otelResourceAttributes: Record<string, string>

otelServiceName: string

passiveMode: boolean

rateLimit: number

rateLimitWindow: number

redisFailOpen: boolean

redisHealthCheckInterval: number

redisMaxConnections: number | null

redisPrefix: string

redisRetries: number

redisSocketConnectTimeout: number | null

redisSocketTimeout: number | null

redisUrl: string

routeResolutionStrict: boolean

securityHeaders: { contentTypeOptions: string; csp: Record<string, string[]> | null; custom: Record<string, string> | null; enabled: boolean; frameOptions: "DENY" | "SAMEORIGIN"; hsts?: { includeSubdomains: boolean; maxAge: number; preload: boolean; }; permissionsPolicy: string; referrerPolicy: string; xssProtection: string; } | null

threatBanConfig: Record<string, { duration: number; threshold: number; }>

trustedProxies: string[]

trustedProxyDepth: number

trustXForwardedProto: boolean

whitelist: string[] | null

whitelistCountries: string[]


readonly eventBus: unknown

Defined in: packages/core/src/protocols/middleware.ts:16


readonly geoIpHandler: GeoIPHandler | null

Defined in: packages/core/src/protocols/middleware.ts:21


readonly guardResponseFactory: GuardResponseFactory

Defined in: packages/core/src/protocols/middleware.ts:22


lastCloudIpRefresh: number

Defined in: packages/core/src/protocols/middleware.ts:10


readonly logger: Logger

Defined in: packages/core/src/protocols/middleware.ts:9


readonly rateLimitHandler: unknown

Defined in: packages/core/src/protocols/middleware.ts:19


readonly responseFactory: unknown

Defined in: packages/core/src/protocols/middleware.ts:18


readonly routeResolver: unknown

Defined in: packages/core/src/protocols/middleware.ts:17


suspiciousRequestCounts: Map<string, Map<string, number>>

Defined in: packages/core/src/protocols/middleware.ts:15

createErrorResponse(statusCode, defaultMessage): Promise<GuardResponse>

Defined in: packages/core/src/protocols/middleware.ts:23

number

string

Promise<GuardResponse>


refreshCloudIpRanges(): Promise<void>

Defined in: packages/core/src/protocols/middleware.ts:24

Promise<void>