From f074bb59ebbc0cb482e1bbc45d702884da86b706 Mon Sep 17 00:00:00 2001 From: Renn F Date: Wed, 21 Oct 2026 00:47:45 +0200 Subject: [PATCH] docs(api): regenerate the API reference pages --- .../core/src/classes/BaseSecurityDecorator.md | 668 +++++++++++++- .../docs/api/core/src/classes/BehaviorRule.md | 42 +- .../api/core/src/classes/BehaviorTracker.md | 738 +++++++++++++++ .../core/src/classes/BehavioralProcessor.md | 80 +- .../api/core/src/classes/BypassHandler.md | 316 ++++++- .../docs/api/core/src/classes/CloudHandler.md | 250 ++++++ .../core/src/classes/CompositeAgentHandler.md | 230 +++++ .../core/src/classes/ContentPreprocessor.md | 200 ++++- .../core/src/classes/DynamicRuleManager.md | 812 +++++++++++++++++ .../core/src/classes/ErrorResponseFactory.md | 312 ++++++- .../api/core/src/classes/EventEnricher.md | 84 ++ .../docs/api/core/src/classes/EventFilter.md | 82 ++ .../api/core/src/classes/GuardCoreError.md | 220 +++++ .../api/core/src/classes/GuardRedisError.md | 220 +++++ .../docs/api/core/src/classes/IPBanManager.md | 136 +++ .../api/core/src/classes/IPInfoManager.md | 234 +++++ .../core/src/classes/InMemoryCloudIpStore.md | 90 ++ .../api/core/src/classes/JsonFormatter.md | 38 + .../api/core/src/classes/LogfireHandler.md | 180 ++++ .../api/core/src/classes/MetricsCollector.md | 284 +++++- .../src/classes/NodeUpgradeGuardRequest.md | 234 +++++ .../docs/api/core/src/classes/OtelHandler.md | 191 ++++ .../api/core/src/classes/PatternCompiler.md | 28 +- .../core/src/classes/PerformanceMonitor.md | 67 +- .../api/core/src/classes/RateLimitManager.md | 646 +++++++++++++ .../api/core/src/classes/RedisCloudIpStore.md | 102 +++ .../docs/api/core/src/classes/RedisManager.md | 848 ++++++++++++++++++ .../api/core/src/classes/RequestValidator.md | 288 +++++- .../docs/api/core/src/classes/RouteConfig.md | 126 ++- .../core/src/classes/RouteConfigResolver.md | 310 ++++++- .../core/src/classes/SecurityCheckPipeline.md | 16 +- .../api/core/src/classes/SecurityEventBus.md | 296 +++++- .../src/classes/SecurityHeadersManager.md | 204 +++++ .../api/core/src/classes/SemanticAnalyzer.md | 28 +- .../core/src/classes/SusPatternsManager.md | 833 +++++++++++++++++ .../src/functions/attachNodeWebSocketGuard.md | 24 + .../core/src/functions/buildBlockPayload.md | 52 ++ .../api/core/src/functions/canonicalizeIp.md | 20 + .../api/core/src/functions/checkIpAccess.md | 572 ++++++++++++ .../api/core/src/functions/checkIpCountry.md | 278 +++++- .../core/src/functions/checkRateLimitByIp.md | 562 ++++++++++++ .../src/functions/detectPenetrationAttempt.md | 11 +- .../src/functions/disabledCategoriesOf.md | 25 + .../api/core/src/functions/extractClientIp.md | 278 +++++- .../api/core/src/functions/fireBlockHook.md | 60 ++ .../api/core/src/functions/formatTextLog.md | 20 + .../src/functions/getRouteDecoratorConfig.md | 2 +- .../src/functions/guardWebSocketUpgrade.md | 24 + .../functions/initializeSecurityMiddleware.md | 278 +++++- .../api/core/src/functions/invokeBlockHook.md | 32 + .../api/core/src/functions/invokeErrorHook.md | 36 + .../api/core/src/functions/isIpAllowed.md | 278 +++++- .../core/src/functions/isUserAgentAllowed.md | 278 +++++- .../api/core/src/functions/logActivity.md | 30 +- .../core/src/functions/mergeSensitiveNames.md | 24 + .../src/functions/normalizeExcludePaths.md | 23 + .../core/src/functions/normalizeUrlPath.md | 24 + .../core/src/functions/parseContentLength.md | 20 + .../api/core/src/functions/pathIsExcluded.md | 27 + .../src/functions/pathMatchesExclusions.md | 27 + .../api/core/src/functions/readCappedBody.md | 32 + .../src/functions/redactBlobForDisplay.md | 32 + .../src/functions/redactEndpointForDisplay.md | 32 + .../functions/redactHeaderValueForDisplay.md | 32 + .../core/src/functions/redactPairsInText.md | 24 + .../core/src/functions/redactUrlForDisplay.md | 32 + .../api/core/src/functions/requestClientIp.md | 26 + .../src/functions/resetBodyReadConcurrency.md | 16 + .../src/functions/resolveConfiguredLogger.md | 553 ++++++++++++ .../functions/resolveDetectionExclusions.md | 24 + .../api/core/src/functions/sanitizeForLog.md | 8 +- .../api/core/src/functions/sendAgentEvent.md | 2 +- .../functions/setBodyReadConcurrencyLimit.md | 25 + .../core/src/functions/setupCustomLogging.md | 20 + .../src/functions/straddleOverlapBytes.md | 20 + .../api/core/src/functions/threatScoreFor.md | 20 + .../api/core/src/functions/toAgentConfig.md | 555 ++++++++++++ .../core/src/interfaces/AgentEventEnricher.md | 44 + .../src/interfaces/AgentHandlerProtocol.md | 18 +- .../core/src/interfaces/BehaviorCounter.md | 30 + .../src/interfaces/BoundedBodyReaderDeps.md | 643 +++++++++++++ .../src/interfaces/CloudIpStoreProtocol.md | 64 ++ .../src/interfaces/CustomLoggingOptions.md | 32 + .../core/src/interfaces/DynamicRuleMatcher.md | 26 + .../core/src/interfaces/EnrichableEvent.md | 32 + .../core/src/interfaces/EnrichableMetric.md | 24 + .../core/src/interfaces/EnrichmentContext.md | 640 +++++++++++++ .../api/core/src/interfaces/GeoIPHandler.md | 40 +- .../src/interfaces/GuardMiddlewareProtocol.md | 352 +++++++- .../api/core/src/interfaces/GuardRequest.md | 47 +- .../core/src/interfaces/GuardRequestState.md | 38 +- .../api/core/src/interfaces/GuardResponse.md | 12 +- .../src/interfaces/GuardResponseFactory.md | 6 +- .../core/src/interfaces/HandlerRegistry.md | 60 +- .../api/core/src/interfaces/IpAccessResult.md | 40 + .../docs/api/core/src/interfaces/LogRecord.md | 40 + .../api/core/src/interfaces/LogfireClient.md | 98 ++ .../src/interfaces/LogfireHandlerConfig.md | 27 + .../docs/api/core/src/interfaces/Logger.md | 10 +- .../interfaces/NodeWebSocketGuardOptions.md | 661 ++++++++++++++ .../core/src/interfaces/OtelHandlerConfig.md | 42 + .../src/interfaces/OtelInstrumentation.md | 101 +++ .../core/src/interfaces/OtelTraceContext.md | 24 + .../src/interfaces/PathRouteConfigEntry.md | 37 + .../api/core/src/interfaces/PatternReport.md | 24 +- .../api/core/src/interfaces/PatternStats.md | 18 +- .../core/src/interfaces/PerformanceMetric.md | 14 +- .../src/interfaces/RedisHandlerProtocol.md | 14 +- .../interfaces/ResolvedDetectionExclusions.md | 60 ++ .../interfaces/SecurityAgentConfigInput.md | 212 +++++ .../SecurityMiddlewareComponents.md | 22 +- .../core/src/interfaces/SemanticAnalysis.md | 34 +- .../src/interfaces/WebSocketCloseReason.md | 24 + .../core/src/type-aliases/BehaviorAction.md | 2 +- .../core/src/type-aliases/BehaviorRuleType.md | 2 +- .../src/type-aliases/CloudIpStoreFactory.md | 20 + .../api/core/src/type-aliases/DynamicRules.md | 2 +- .../api/core/src/type-aliases/OnBlockHook.md | 24 + .../api/core/src/type-aliases/OnErrorHook.md | 28 + .../type-aliases/ResolvedSecurityConfig.md | 2 +- .../SecurityBufferOverflowPolicy.md | 12 + .../core/src/type-aliases/SecurityConfig.md | 2 +- .../src/type-aliases/SecurityDecorator.md | 2 +- .../src/type-aliases/SecurityErrorHook.md | 30 + .../src/type-aliases/WebSocketGuardVerdict.md | 10 + .../BEHAVIOR_CORRELATION_WINDOW_SECONDS.md | 10 + .../core/src/variables/DEFAULT_LOGGER_NAME.md | 10 + .../variables/DEFAULT_OTEL_SERVICE_NAME.md | 10 + .../variables/DEFAULT_SENSITIVE_LOG_FIELDS.md | 10 + .../DEFAULT_SENSITIVE_LOG_HEADERS.md | 10 + .../src/variables/DEFAULT_THREAT_SCORE.md | 10 + .../core/src/variables/DynamicRulesSchema.md | 4 +- .../variables/ENRICHMENT_KEY_BEHAVIOR_KEY.md | 10 + .../ENRICHMENT_KEY_DEPLOYMENT_ENV.md | 10 + .../variables/ENRICHMENT_KEY_PROJECT_ID.md | 10 + .../ENRICHMENT_KEY_RECENT_EVENT_COUNT.md | 10 + .../src/variables/ENRICHMENT_KEY_RULE_ID.md | 10 + .../variables/ENRICHMENT_KEY_RULE_VERSION.md | 10 + .../variables/ENRICHMENT_KEY_SERVICE_NAME.md | 10 + .../variables/ENRICHMENT_KEY_THREAT_SCORE.md | 10 + .../core/src/variables/EXCLUDED_HEADERS.md | 14 + .../core/src/variables/METRIC_ERROR_RATE.md | 10 + .../src/variables/METRIC_REQUEST_COUNT.md | 10 + .../src/variables/METRIC_RESPONSE_TIME.md | 10 + .../core/src/variables/METRIC_TYPE_VALUES.md | 10 + .../ON_BLOCK_EXCLUDED_CHECK_NAMES.md | 10 + .../src/variables/SecurityConfigSchema.md | 4 +- .../core/src/variables/SecurityDecorator.md | 2 +- .../core/src/variables/THREAT_SCORE_MAP.md | 10 + .../src/variables/UNKNOWN_CLIENT_IDENTITY.md | 10 + .../src/variables/UNRESOLVED_ROUTE_REASON.md | 10 + .../WS_CLOSE_CLIENT_ADDRESS_UNKNOWN.md | 10 + .../core/src/variables/WS_CLOSE_IP_BANNED.md | 10 + .../src/variables/WS_CLOSE_IP_NOT_ALLOWED.md | 10 + .../variables/WS_CLOSE_POLICY_VIOLATION.md | 10 + .../variables/WS_CLOSE_RATE_LIMIT_EXCEEDED.md | 10 + .../WS_CLOSE_SECURITY_CHECK_FAILED.md | 10 + .../variables/WS_CLOSE_SUSPICIOUS_ACTIVITY.md | 10 + .../src/variables/WS_CLOSE_TRY_AGAIN_LATER.md | 10 + .../api/core/src/variables/defaultLogger.md | 2 +- .../src/classes/ExpressGuardRequest.md | 26 +- .../src/classes/ExpressGuardResponse.md | 14 +- .../src/classes/ExpressResponseFactory.md | 6 +- .../express/src/functions/addStatusRoute.md | 28 + .../express/src/functions/configureCors.md | 278 +++++- .../src/functions/createSecurityMiddleware.md | 2 +- .../express/src/functions/guardBodyParser.md | 2 +- .../src/functions/guardUrlEncodedParser.md | 2 +- .../src/functions/resolveAgentHandler.md | 558 ++++++++++++ .../src/functions/resolveExpressEndpointId.md | 23 + .../src/functions/resolveExpressRouteId.md | 20 + .../src/functions/sendGuardResponse.md | 2 +- .../src/interfaces/GuardMiddlewareSurface.md | 128 +++ .../src/interfaces/ResolvedAgentHandler.md | 27 + .../interfaces/SecurityMiddlewareOptions.md | 340 ++++++- .../src/variables/DEFAULT_STATUS_PATH.md | 10 + .../src/classes/FastifyGuardRequest.md | 26 +- .../src/classes/FastifyGuardResponse.md | 14 +- .../src/classes/FastifyResponseFactory.md | 6 +- .../fastify/src/functions/configureCors.md | 278 +++++- .../src/functions/resolveAgentHandler.md | 558 ++++++++++++ .../src/interfaces/GuardPluginOptions.md | 340 ++++++- .../fastify/src/interfaces/GuardSurface.md | 134 +++ .../src/interfaces/ResolvedAgentHandler.md | 27 + .../{functions => variables}/guardPlugin.md | 4 +- .../api/hono/src/classes/HonoGuardRequest.md | 26 +- .../api/hono/src/classes/HonoGuardResponse.md | 14 +- .../hono/src/classes/HonoResponseFactory.md | 6 +- .../api/hono/src/functions/configureCors.md | 278 +++++- .../src/functions/createGuardMiddleware.md | 6 +- .../hono/src/functions/resolveAgentHandler.md | 558 ++++++++++++ .../src/functions/resolveHonoClientAddress.md | 20 + .../src/functions/resolveHonoEndpointId.md | 23 + .../hono/src/functions/resolveHonoRouteId.md | 20 + .../src/interfaces/GuardMiddlewareOptions.md | 365 +++++++- .../api/hono/src/interfaces/GuardSurface.md | 116 +++ .../src/interfaces/ResolvedAgentHandler.md | 27 + .../api/nestjs/src/classes/GuardModule.md | 6 +- .../nestjs/src/classes/NestGuardRequest.md | 26 +- .../nestjs/src/classes/NestGuardResponse.md | 14 +- .../nestjs/src/classes/NestResponseFactory.md | 6 +- .../src/classes/SecurityMiddlewareNest.md | 135 ++- .../src/functions/buildOriginAllowlist.md | 20 + .../api/nestjs/src/functions/configureCors.md | 554 ++++++++++++ .../src/functions/resolveAgentHandler.md | 558 ++++++++++++ .../src/functions/resolveNestEndpointId.md | 23 + .../src/functions/resolveNestRouteId.md | 20 + .../src/interfaces/GuardModuleOptions.md | 340 ++++++- .../api/nestjs/src/interfaces/GuardSurface.md | 116 +++ .../src/interfaces/ResolvedAgentHandler.md | 27 + .../src/variables/GUARD_MIDDLEWARE_TOKEN.md | 2 +- 211 files changed, 23661 insertions(+), 461 deletions(-) create mode 100644 docs/src/content/docs/api/core/src/classes/BehaviorTracker.md create mode 100644 docs/src/content/docs/api/core/src/classes/CloudHandler.md create mode 100644 docs/src/content/docs/api/core/src/classes/CompositeAgentHandler.md create mode 100644 docs/src/content/docs/api/core/src/classes/DynamicRuleManager.md create mode 100644 docs/src/content/docs/api/core/src/classes/EventEnricher.md create mode 100644 docs/src/content/docs/api/core/src/classes/EventFilter.md create mode 100644 docs/src/content/docs/api/core/src/classes/GuardCoreError.md create mode 100644 docs/src/content/docs/api/core/src/classes/GuardRedisError.md create mode 100644 docs/src/content/docs/api/core/src/classes/IPBanManager.md create mode 100644 docs/src/content/docs/api/core/src/classes/IPInfoManager.md create mode 100644 docs/src/content/docs/api/core/src/classes/InMemoryCloudIpStore.md create mode 100644 docs/src/content/docs/api/core/src/classes/JsonFormatter.md create mode 100644 docs/src/content/docs/api/core/src/classes/LogfireHandler.md create mode 100644 docs/src/content/docs/api/core/src/classes/NodeUpgradeGuardRequest.md create mode 100644 docs/src/content/docs/api/core/src/classes/OtelHandler.md create mode 100644 docs/src/content/docs/api/core/src/classes/RateLimitManager.md create mode 100644 docs/src/content/docs/api/core/src/classes/RedisCloudIpStore.md create mode 100644 docs/src/content/docs/api/core/src/classes/RedisManager.md create mode 100644 docs/src/content/docs/api/core/src/classes/SecurityHeadersManager.md create mode 100644 docs/src/content/docs/api/core/src/classes/SusPatternsManager.md create mode 100644 docs/src/content/docs/api/core/src/functions/attachNodeWebSocketGuard.md create mode 100644 docs/src/content/docs/api/core/src/functions/buildBlockPayload.md create mode 100644 docs/src/content/docs/api/core/src/functions/canonicalizeIp.md create mode 100644 docs/src/content/docs/api/core/src/functions/checkIpAccess.md create mode 100644 docs/src/content/docs/api/core/src/functions/checkRateLimitByIp.md create mode 100644 docs/src/content/docs/api/core/src/functions/disabledCategoriesOf.md create mode 100644 docs/src/content/docs/api/core/src/functions/fireBlockHook.md create mode 100644 docs/src/content/docs/api/core/src/functions/formatTextLog.md create mode 100644 docs/src/content/docs/api/core/src/functions/guardWebSocketUpgrade.md create mode 100644 docs/src/content/docs/api/core/src/functions/invokeBlockHook.md create mode 100644 docs/src/content/docs/api/core/src/functions/invokeErrorHook.md create mode 100644 docs/src/content/docs/api/core/src/functions/mergeSensitiveNames.md create mode 100644 docs/src/content/docs/api/core/src/functions/normalizeExcludePaths.md create mode 100644 docs/src/content/docs/api/core/src/functions/normalizeUrlPath.md create mode 100644 docs/src/content/docs/api/core/src/functions/parseContentLength.md create mode 100644 docs/src/content/docs/api/core/src/functions/pathIsExcluded.md create mode 100644 docs/src/content/docs/api/core/src/functions/pathMatchesExclusions.md create mode 100644 docs/src/content/docs/api/core/src/functions/readCappedBody.md create mode 100644 docs/src/content/docs/api/core/src/functions/redactBlobForDisplay.md create mode 100644 docs/src/content/docs/api/core/src/functions/redactEndpointForDisplay.md create mode 100644 docs/src/content/docs/api/core/src/functions/redactHeaderValueForDisplay.md create mode 100644 docs/src/content/docs/api/core/src/functions/redactPairsInText.md create mode 100644 docs/src/content/docs/api/core/src/functions/redactUrlForDisplay.md create mode 100644 docs/src/content/docs/api/core/src/functions/requestClientIp.md create mode 100644 docs/src/content/docs/api/core/src/functions/resetBodyReadConcurrency.md create mode 100644 docs/src/content/docs/api/core/src/functions/resolveConfiguredLogger.md create mode 100644 docs/src/content/docs/api/core/src/functions/resolveDetectionExclusions.md create mode 100644 docs/src/content/docs/api/core/src/functions/setBodyReadConcurrencyLimit.md create mode 100644 docs/src/content/docs/api/core/src/functions/setupCustomLogging.md create mode 100644 docs/src/content/docs/api/core/src/functions/straddleOverlapBytes.md create mode 100644 docs/src/content/docs/api/core/src/functions/threatScoreFor.md create mode 100644 docs/src/content/docs/api/core/src/functions/toAgentConfig.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/AgentEventEnricher.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/BehaviorCounter.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/BoundedBodyReaderDeps.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/CloudIpStoreProtocol.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/CustomLoggingOptions.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/DynamicRuleMatcher.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/EnrichableEvent.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/EnrichableMetric.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/EnrichmentContext.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/IpAccessResult.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/LogRecord.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/LogfireClient.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/LogfireHandlerConfig.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/NodeWebSocketGuardOptions.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/OtelHandlerConfig.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/OtelInstrumentation.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/OtelTraceContext.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/PathRouteConfigEntry.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/ResolvedDetectionExclusions.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/SecurityAgentConfigInput.md create mode 100644 docs/src/content/docs/api/core/src/interfaces/WebSocketCloseReason.md create mode 100644 docs/src/content/docs/api/core/src/type-aliases/CloudIpStoreFactory.md create mode 100644 docs/src/content/docs/api/core/src/type-aliases/OnBlockHook.md create mode 100644 docs/src/content/docs/api/core/src/type-aliases/OnErrorHook.md create mode 100644 docs/src/content/docs/api/core/src/type-aliases/SecurityBufferOverflowPolicy.md create mode 100644 docs/src/content/docs/api/core/src/type-aliases/SecurityErrorHook.md create mode 100644 docs/src/content/docs/api/core/src/type-aliases/WebSocketGuardVerdict.md create mode 100644 docs/src/content/docs/api/core/src/variables/BEHAVIOR_CORRELATION_WINDOW_SECONDS.md create mode 100644 docs/src/content/docs/api/core/src/variables/DEFAULT_LOGGER_NAME.md create mode 100644 docs/src/content/docs/api/core/src/variables/DEFAULT_OTEL_SERVICE_NAME.md create mode 100644 docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_FIELDS.md create mode 100644 docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_HEADERS.md create mode 100644 docs/src/content/docs/api/core/src/variables/DEFAULT_THREAT_SCORE.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_BEHAVIOR_KEY.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_DEPLOYMENT_ENV.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_PROJECT_ID.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RECENT_EVENT_COUNT.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_ID.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_VERSION.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_SERVICE_NAME.md create mode 100644 docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_THREAT_SCORE.md create mode 100644 docs/src/content/docs/api/core/src/variables/EXCLUDED_HEADERS.md create mode 100644 docs/src/content/docs/api/core/src/variables/METRIC_ERROR_RATE.md create mode 100644 docs/src/content/docs/api/core/src/variables/METRIC_REQUEST_COUNT.md create mode 100644 docs/src/content/docs/api/core/src/variables/METRIC_RESPONSE_TIME.md create mode 100644 docs/src/content/docs/api/core/src/variables/METRIC_TYPE_VALUES.md create mode 100644 docs/src/content/docs/api/core/src/variables/ON_BLOCK_EXCLUDED_CHECK_NAMES.md create mode 100644 docs/src/content/docs/api/core/src/variables/THREAT_SCORE_MAP.md create mode 100644 docs/src/content/docs/api/core/src/variables/UNKNOWN_CLIENT_IDENTITY.md create mode 100644 docs/src/content/docs/api/core/src/variables/UNRESOLVED_ROUTE_REASON.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_CLIENT_ADDRESS_UNKNOWN.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_BANNED.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_NOT_ALLOWED.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_POLICY_VIOLATION.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_RATE_LIMIT_EXCEEDED.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_SECURITY_CHECK_FAILED.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_SUSPICIOUS_ACTIVITY.md create mode 100644 docs/src/content/docs/api/core/src/variables/WS_CLOSE_TRY_AGAIN_LATER.md create mode 100644 docs/src/content/docs/api/express/src/functions/addStatusRoute.md create mode 100644 docs/src/content/docs/api/express/src/functions/resolveAgentHandler.md create mode 100644 docs/src/content/docs/api/express/src/functions/resolveExpressEndpointId.md create mode 100644 docs/src/content/docs/api/express/src/functions/resolveExpressRouteId.md create mode 100644 docs/src/content/docs/api/express/src/interfaces/GuardMiddlewareSurface.md create mode 100644 docs/src/content/docs/api/express/src/interfaces/ResolvedAgentHandler.md create mode 100644 docs/src/content/docs/api/express/src/variables/DEFAULT_STATUS_PATH.md create mode 100644 docs/src/content/docs/api/fastify/src/functions/resolveAgentHandler.md create mode 100644 docs/src/content/docs/api/fastify/src/interfaces/GuardSurface.md create mode 100644 docs/src/content/docs/api/fastify/src/interfaces/ResolvedAgentHandler.md rename docs/src/content/docs/api/fastify/src/{functions => variables}/guardPlugin.md (50%) create mode 100644 docs/src/content/docs/api/hono/src/functions/resolveAgentHandler.md create mode 100644 docs/src/content/docs/api/hono/src/functions/resolveHonoClientAddress.md create mode 100644 docs/src/content/docs/api/hono/src/functions/resolveHonoEndpointId.md create mode 100644 docs/src/content/docs/api/hono/src/functions/resolveHonoRouteId.md create mode 100644 docs/src/content/docs/api/hono/src/interfaces/GuardSurface.md create mode 100644 docs/src/content/docs/api/hono/src/interfaces/ResolvedAgentHandler.md create mode 100644 docs/src/content/docs/api/nestjs/src/functions/buildOriginAllowlist.md create mode 100644 docs/src/content/docs/api/nestjs/src/functions/configureCors.md create mode 100644 docs/src/content/docs/api/nestjs/src/functions/resolveAgentHandler.md create mode 100644 docs/src/content/docs/api/nestjs/src/functions/resolveNestEndpointId.md create mode 100644 docs/src/content/docs/api/nestjs/src/functions/resolveNestRouteId.md create mode 100644 docs/src/content/docs/api/nestjs/src/interfaces/GuardSurface.md create mode 100644 docs/src/content/docs/api/nestjs/src/interfaces/ResolvedAgentHandler.md diff --git a/docs/src/content/docs/api/core/src/classes/BaseSecurityDecorator.md b/docs/src/content/docs/api/core/src/classes/BaseSecurityDecorator.md index ab02d11..2f17615 100644 --- a/docs/src/content/docs/api/core/src/classes/BaseSecurityDecorator.md +++ b/docs/src/content/docs/api/core/src/classes/BaseSecurityDecorator.md @@ -5,7 +5,7 @@ prev: false title: "BaseSecurityDecorator" --- -Defined in: [core/src/decorators/base.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L17) +Defined in: [packages/core/src/decorators/base.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L25) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/decorators/base.ts:17](https://github.com/Guard-Core/guard > **new BaseSecurityDecorator**(`config`, `logger?`): `BaseSecurityDecorator` -Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L24) +Defined in: [packages/core/src/decorators/base.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L32) #### Parameters @@ -23,10 +23,26 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -43,6 +59,34 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `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` = `...` @@ -51,10 +95,26 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -63,6 +123,14 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -79,6 +147,14 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -123,30 +199,74 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -155,10 +275,18 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -175,18 +303,38 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -203,10 +351,38 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -215,6 +391,30 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -227,10 +427,54 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -243,18 +487,50 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard `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`[] = `...` @@ -289,15 +565,15 @@ Defined in: [core/src/decorators/base.ts:24](https://github.com/Guard-Core/guard > **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` = `null` -Defined in: [core/src/decorators/base.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L20) +Defined in: [packages/core/src/decorators/base.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L28) *** ### behaviorTracker -> **behaviorTracker**: `BehaviorTracker` +> **behaviorTracker**: [`BehaviorTracker`](/guard-core-ts/api/core/src/classes/behaviortracker/) -Defined in: [core/src/decorators/base.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L19) +Defined in: [packages/core/src/decorators/base.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L27) *** @@ -305,16 +581,32 @@ Defined in: [core/src/decorators/base.ts:19](https://github.com/Guard-Core/guard > `readonly` **config**: `object` -Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L21) +Defined in: [packages/core/src/decorators/base.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L30) #### agentApiKey > **agentApiKey**: `string` \| `null` +#### agentBackoffFactor + +> **agentBackoffFactor**: `number` \| `null` + +#### agentBufferOverflowPolicy + +> **agentBufferOverflowPolicy**: `"drop"` \| `"block"` \| `"raise"` \| `null` + #### agentBufferSize > **agentBufferSize**: `number` +#### agentCompressionEnabled + +> **agentCompressionEnabled**: `boolean` \| `null` + +#### agentCompressionThreshold + +> **agentCompressionThreshold**: `number` \| `null` + #### agentEnableEvents > **agentEnableEvents**: `boolean` @@ -331,6 +623,34 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **agentFlushInterval**: `number` +#### agentGuardVersion + +> **agentGuardVersion**: `string` \| `null` + +#### agentHighWatermarkRatio + +> **agentHighWatermarkRatio**: `number` \| `null` + +#### agentInstallId + +> **agentInstallId**: `string` \| `null` + +#### agentMaxConcurrentFlushes + +> **agentMaxConcurrentFlushes**: `number` \| `null` + +#### agentMaxPayloadSize + +> **agentMaxPayloadSize**: `number` \| `null` + +#### agentPayloadSigningSecret + +> **agentPayloadSigningSecret**: `string` \| `null` + +#### agentProjectEncryptionKey + +> **agentProjectEncryptionKey**: `string` \| `null` + #### agentProjectId > **agentProjectId**: `string` \| `null` @@ -339,10 +659,40 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **agentRetryAttempts**: `number` +#### agentSensitiveHeaders + +> **agentSensitiveHeaders**: `string`[] \| `null` + +#### agentStatusInterval + +> **agentStatusInterval**: `number` + +#### agentStrict + +> **agentStrict**: `boolean` + #### agentTimeout > **agentTimeout**: `number` +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + #### autoBanDuration > **autoBanDuration**: `number` @@ -351,6 +701,14 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **autoBanThreshold**: `number` +#### behaviorMaxResponseBodyInspectBytes + +> **behaviorMaxResponseBodyInspectBytes**: `number` + +#### behaviorScanResponseBody + +> **behaviorScanResponseBody**: `boolean` + #### blacklist > **blacklist**: `string`[] @@ -367,6 +725,14 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **blockedUserAgents**: `string`[] +#### bodyReadMaxConcurrent + +> **bodyReadMaxConcurrent**: `number` + +#### bodyReadTimeout + +> **bodyReadTimeout**: `number` + #### cloudIpRefreshInterval > **cloudIpRefreshInterval**: `number` @@ -431,30 +797,74 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> +#### detectionAnomalyEmissionCooldown + +> **detectionAnomalyEmissionCooldown**: `number` + #### detectionAnomalyThreshold > **detectionAnomalyThreshold**: `number` +#### detectionBinaryMinRunLength + +> **detectionBinaryMinRunLength**: `number` + #### detectionCompilerTimeout > **detectionCompilerTimeout**: `number` +#### detectionMaxBodyInspectBytes + +> **detectionMaxBodyInspectBytes**: `number` + #### detectionMaxContentLength > **detectionMaxContentLength**: `number` +#### detectionMaxJsonDepth + +> **detectionMaxJsonDepth**: `number` + +#### detectionMaxScanChars + +> **detectionMaxScanChars**: `number` + +#### detectionMaxScanSeconds + +> **detectionMaxScanSeconds**: `number` + +#### detectionMaxScanValues + +> **detectionMaxScanValues**: `number` + #### detectionMaxTrackedPatterns > **detectionMaxTrackedPatterns**: `number` +#### detectionMinSamplesForAnomaly + +> **detectionMinSamplesForAnomaly**: `number` + #### detectionMonitorHistorySize > **detectionMonitorHistorySize**: `number` +#### detectionPatternValidationCachePath + +> **detectionPatternValidationCachePath**: `string` \| `null` + #### detectionPreserveAttackPatterns > **detectionPreserveAttackPatterns**: `boolean` +#### detectionScanBody + +> **detectionScanBody**: `boolean` + +#### detectionScanWorkerPool + +> **detectionScanWorkerPool**: `boolean` + #### detectionSemanticThreshold > **detectionSemanticThreshold**: `number` @@ -463,10 +873,18 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **detectionSlowPatternThreshold**: `number` +#### detectionThreatScoreThreshold + +> **detectionThreatScoreThreshold**: `number` + #### dynamicRuleInterval > **dynamicRuleInterval**: `number` +#### dynamicRulesCachePath + +> **dynamicRulesCachePath**: `string` \| `null` + #### emergencyMode > **emergencyMode**: `boolean` @@ -483,18 +901,38 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **enableCors**: `boolean` +#### enabledDetectionCategories + +> **enabledDetectionCategories**: `string`[] + #### enableDynamicRules > **enableDynamicRules**: `boolean` +#### enableEnrichment + +> **enableEnrichment**: `boolean` + #### enableIpBanning > **enableIpBanning**: `boolean` +#### enableLogfire + +> **enableLogfire**: `boolean` + +#### enableOtel + +> **enableOtel**: `boolean` + #### enablePenetrationDetection > **enablePenetrationDetection**: `boolean` +#### enableRateLimitAutoBan + +> **enableRateLimitAutoBan**: `boolean` + #### enableRateLimiting > **enableRateLimiting**: `boolean` @@ -511,10 +949,38 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **enforceHttps**: `boolean` +#### excludedDetectionBodyFields + +> **excludedDetectionBodyFields**: `string`[] + +#### excludedDetectionHeaders + +> **excludedDetectionHeaders**: `string`[] + +#### excludedDetectionParams + +> **excludedDetectionParams**: `string`[] + +#### excludedSemanticDetectionHeaders + +> **excludedSemanticDetectionHeaders**: `string`[] + #### excludePaths > **excludePaths**: `string`[] +#### exemptIps + +> **exemptIps**: `string`[] + +#### failSecure + +> **failSecure**: `boolean` + +#### geoIpDbMaxAge + +> **geoIpDbMaxAge**: `number` + #### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) @@ -533,6 +999,30 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard `string` \| `null` +#### globalBehaviorRules + +> **globalBehaviorRules**: `object`[] + +#### ipinfoDbPath + +> **ipinfoDbPath**: `string` + +#### ipinfoToken + +> **ipinfoToken**: `string` \| `null` + +#### lazyInit + +> **lazyInit**: `boolean` + +#### logCountryCheckLevel + +> **logCountryCheckLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName + +> **logfireServiceName**: `string` + #### logFormat > **logFormat**: `"text"` \| `"json"` @@ -545,10 +1035,86 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **logRequestLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### logSensitiveBodyFields + +> **logSensitiveBodyFields**: `string`[] + +#### logSensitiveHeaders + +> **logSensitiveHeaders**: `string`[] + +#### logSensitiveParams + +> **logSensitiveParams**: `string`[] + #### logSuspiciousLevel > **logSuspiciousLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### mutedCheckLogs + +> **mutedCheckLogs**: `string`[] + +#### mutedEventTypes + +> **mutedEventTypes**: `string`[] + +#### mutedMetricTypes + +> **mutedMetricTypes**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint + +> **otelExporterEndpoint**: `string` \| `null` + +#### otelResourceAttributes + +> **otelResourceAttributes**: `Record`\<`string`, `string`\> + +#### otelServiceName + +> **otelServiceName**: `string` + #### passiveMode > **passiveMode**: `boolean` @@ -561,18 +1127,50 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard > **rateLimitWindow**: `number` +#### redisFailOpen + +> **redisFailOpen**: `boolean` + +#### redisHealthCheckInterval + +> **redisHealthCheckInterval**: `number` + +#### redisMaxConnections + +> **redisMaxConnections**: `number` \| `null` + #### redisPrefix > **redisPrefix**: `string` +#### redisRetries + +> **redisRetries**: `number` + +#### redisSocketConnectTimeout + +> **redisSocketConnectTimeout**: `number` \| `null` + +#### redisSocketTimeout + +> **redisSocketTimeout**: `number` \| `null` + #### redisUrl > **redisUrl**: `string` +#### routeResolutionStrict + +> **routeResolutionStrict**: `boolean` + #### securityHeaders > **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 + +> **threatBanConfig**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + #### trustedProxies > **trustedProxies**: `string`[] @@ -595,11 +1193,19 @@ Defined in: [core/src/decorators/base.ts:21](https://github.com/Guard-Core/guard *** +### geoIpHandler + +> **geoIpHandler**: `unknown` = `null` + +Defined in: [packages/core/src/decorators/base.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L29) + +*** + ### logger > `readonly` **logger**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) -Defined in: [core/src/decorators/base.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L22) +Defined in: [packages/core/src/decorators/base.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L31) *** @@ -607,7 +1213,21 @@ Defined in: [core/src/decorators/base.ts:22](https://github.com/Guard-Core/guard > **routeConfigs**: `Map`\<`string`, [`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/)\> -Defined in: [core/src/decorators/base.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L18) +Defined in: [packages/core/src/decorators/base.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L26) + +## Accessors + +### routeConfigRevision + +#### Get Signature + +> **get** **routeConfigRevision**(): `number` + +Defined in: [packages/core/src/decorators/base.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L42) + +##### Returns + +`number` ## Methods @@ -615,7 +1235,7 @@ Defined in: [core/src/decorators/base.ts:18](https://github.com/Guard-Core/guard > **applyRouteConfig**\<`T`\>(`fn`): `T` -Defined in: [core/src/decorators/base.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L44) +Defined in: [packages/core/src/decorators/base.ts:61](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L61) #### Type Parameters @@ -639,7 +1259,7 @@ Defined in: [core/src/decorators/base.ts:44](https://github.com/Guard-Core/guard > **ensureRouteConfig**(`fn`): [`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) -Defined in: [core/src/decorators/base.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L34) +Defined in: [packages/core/src/decorators/base.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L50) #### Parameters @@ -657,7 +1277,7 @@ Defined in: [core/src/decorators/base.ts:34](https://github.com/Guard-Core/guard > **getRouteConfig**(`routeId`): [`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) \| `undefined` -Defined in: [core/src/decorators/base.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L30) +Defined in: [packages/core/src/decorators/base.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L46) #### Parameters @@ -675,7 +1295,7 @@ Defined in: [core/src/decorators/base.ts:30](https://github.com/Guard-Core/guard > **getRouteId**(`fn`): `string` -Defined in: [core/src/decorators/base.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L49) +Defined in: [packages/core/src/decorators/base.ts:66](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L66) #### Parameters @@ -691,9 +1311,9 @@ Defined in: [core/src/decorators/base.ts:49](https://github.com/Guard-Core/guard ### initializeAgent() -> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> +> **initializeAgent**(`agentHandler`, `geoIpHandler?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L60) +Defined in: [packages/core/src/decorators/base.ts:77](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L77) #### Parameters @@ -701,6 +1321,10 @@ Defined in: [core/src/decorators/base.ts:60](https://github.com/Guard-Core/guard [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) +##### geoIpHandler? + +`unknown` + #### Returns `Promise`\<`void`\> @@ -711,7 +1335,7 @@ Defined in: [core/src/decorators/base.ts:60](https://github.com/Guard-Core/guard > **initializeBehaviorTracking**(`redisHandler?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L56) +Defined in: [packages/core/src/decorators/base.ts:73](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L73) #### Parameters @@ -729,7 +1353,7 @@ Defined in: [core/src/decorators/base.ts:56](https://github.com/Guard-Core/guard > **sendAccessDeniedEvent**(`request`, `reason`, `decoratorType`, `meta?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:86](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L86) +Defined in: [packages/core/src/decorators/base.ts:114](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L114) #### Parameters @@ -759,7 +1383,7 @@ Defined in: [core/src/decorators/base.ts:86](https://github.com/Guard-Core/guard > **sendAuthenticationFailedEvent**(`request`, `reason`, `authType`, `meta?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:95](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L95) +Defined in: [packages/core/src/decorators/base.ts:123](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L123) #### Parameters @@ -787,9 +1411,9 @@ Defined in: [core/src/decorators/base.ts:95](https://github.com/Guard-Core/guard ### sendDecoratorEvent() -> **sendDecoratorEvent**(`eventType`, `_request`, `actionTaken`, `reason`, `decoratorType`, `meta?`): `Promise`\<`void`\> +> **sendDecoratorEvent**(`eventType`, `request`, `actionTaken`, `reason`, `decoratorType`, `meta?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L65) +Defined in: [packages/core/src/decorators/base.ts:88](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L88) #### Parameters @@ -797,7 +1421,7 @@ Defined in: [core/src/decorators/base.ts:65](https://github.com/Guard-Core/guard `string` -##### \_request +##### request [`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) @@ -827,7 +1451,7 @@ Defined in: [core/src/decorators/base.ts:65](https://github.com/Guard-Core/guard > **sendDecoratorViolationEvent**(`request`, `violationType`, `reason`, `meta?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:113](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L113) +Defined in: [packages/core/src/decorators/base.ts:141](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L141) #### Parameters @@ -857,7 +1481,7 @@ Defined in: [core/src/decorators/base.ts:113](https://github.com/Guard-Core/guar > **sendRateLimitEvent**(`request`, `limit`, `window`, `meta?`): `Promise`\<`void`\> -Defined in: [core/src/decorators/base.ts:104](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L104) +Defined in: [packages/core/src/decorators/base.ts:132](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L132) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/BehaviorRule.md b/docs/src/content/docs/api/core/src/classes/BehaviorRule.md index fe3a6ef..c0094b1 100644 --- a/docs/src/content/docs/api/core/src/classes/BehaviorRule.md +++ b/docs/src/content/docs/api/core/src/classes/BehaviorRule.md @@ -5,15 +5,15 @@ prev: false title: "BehaviorRule" --- -Defined in: [core/src/models/behavior-rule.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L4) +Defined in: [packages/core/src/models/behavior-rule.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L4) ## Constructors ### Constructor -> **new BehaviorRule**(`ruleType`, `threshold`, `window?`, `pattern?`, `action?`, `customAction?`): `BehaviorRule` +> **new BehaviorRule**(`ruleType`, `threshold`, `window?`, `pattern?`, `action?`, `customAction?`, `banDuration?`, `correlateWithDetection?`): `BehaviorRule` -Defined in: [core/src/models/behavior-rule.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L12) +Defined in: [packages/core/src/models/behavior-rule.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L19) #### Parameters @@ -41,6 +41,14 @@ Defined in: [core/src/models/behavior-rule.ts:12](https://github.com/Guard-Core/ ((...`args`) => `unknown`) \| `null` +##### banDuration? + +`number` \| `null` + +##### correlateWithDetection? + +`boolean` = `false` + #### Returns `BehaviorRule` @@ -51,7 +59,23 @@ Defined in: [core/src/models/behavior-rule.ts:12](https://github.com/Guard-Core/ > `readonly` **action**: [`BehaviorAction`](/guard-core-ts/api/core/src/type-aliases/behavioraction/) -Defined in: [core/src/models/behavior-rule.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L9) +Defined in: [packages/core/src/models/behavior-rule.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L9) + +*** + +### banDuration + +> `readonly` **banDuration**: `number` \| `null` + +Defined in: [packages/core/src/models/behavior-rule.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L13) + +*** + +### correlateWithDetection + +> `readonly` **correlateWithDetection**: `boolean` + +Defined in: [packages/core/src/models/behavior-rule.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L17) *** @@ -59,7 +83,7 @@ Defined in: [core/src/models/behavior-rule.ts:9](https://github.com/Guard-Core/g > `readonly` **customAction**: ((...`args`) => `unknown`) \| `null` -Defined in: [core/src/models/behavior-rule.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L10) +Defined in: [packages/core/src/models/behavior-rule.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L10) *** @@ -67,7 +91,7 @@ Defined in: [core/src/models/behavior-rule.ts:10](https://github.com/Guard-Core/ > `readonly` **pattern**: `string` \| `null` -Defined in: [core/src/models/behavior-rule.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L8) +Defined in: [packages/core/src/models/behavior-rule.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L8) *** @@ -75,7 +99,7 @@ Defined in: [core/src/models/behavior-rule.ts:8](https://github.com/Guard-Core/g > `readonly` **ruleType**: [`BehaviorRuleType`](/guard-core-ts/api/core/src/type-aliases/behaviorruletype/) -Defined in: [core/src/models/behavior-rule.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L5) +Defined in: [packages/core/src/models/behavior-rule.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L5) *** @@ -83,7 +107,7 @@ Defined in: [core/src/models/behavior-rule.ts:5](https://github.com/Guard-Core/g > `readonly` **threshold**: `number` -Defined in: [core/src/models/behavior-rule.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L6) +Defined in: [packages/core/src/models/behavior-rule.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L6) *** @@ -91,4 +115,4 @@ Defined in: [core/src/models/behavior-rule.ts:6](https://github.com/Guard-Core/g > `readonly` **window**: `number` -Defined in: [core/src/models/behavior-rule.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L7) +Defined in: [packages/core/src/models/behavior-rule.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L7) diff --git a/docs/src/content/docs/api/core/src/classes/BehaviorTracker.md b/docs/src/content/docs/api/core/src/classes/BehaviorTracker.md new file mode 100644 index 0000000..7bb509b --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/BehaviorTracker.md @@ -0,0 +1,738 @@ +--- +editUrl: false +next: false +prev: false +title: "BehaviorTracker" +--- + +Defined in: [packages/core/src/handlers/behavior.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L20) + +## Constructors + +### Constructor + +> **new BehaviorTracker**(`config`, `logger`): `BehaviorTracker` + +Defined in: [packages/core/src/handlers/behavior.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L27) + +#### Parameters + +##### config + +###### 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` = `...` + +###### authVerifier? + +(`request`, `credential`) => `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` = `...` + +###### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +###### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +###### detectionAnomalyEmissionCooldown + +`number` = `...` + +###### detectionAnomalyThreshold + +`number` = `...` + +###### detectionBinaryMinRunLength + +`number` = `...` + +###### detectionCompilerTimeout + +`number` = `...` + +###### detectionMaxBodyInspectBytes + +`number` = `...` + +###### detectionMaxContentLength + +`number` = `...` + +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`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`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + +###### excludePaths + +`string`[] = `...` + +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + +###### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +###### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + +###### logFormat + +`"text"` \| `"json"` = `...` + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### Returns + +`BehaviorTracker` + +## Methods + +### applyAction() + +> **applyAction**(`rule`, `clientIp`, `endpointId`, `details`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/behavior.ts:207](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L207) + +#### Parameters + +##### rule + +[`BehaviorRule`](/guard-core-ts/api/core/src/classes/behaviorrule/) + +##### clientIp + +`string` + +##### endpointId + +`string` + +##### details + +`string` + +#### Returns + +`Promise`\<`void`\> + +*** + +### getRecentEventCount() + +> **getRecentEventCount**(`ip`, `windowSeconds`): `number` + +Defined in: [packages/core/src/handlers/behavior.ts:315](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L315) + +#### Parameters + +##### ip + +`string` + +##### windowSeconds + +`number` + +#### Returns + +`number` + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/behavior.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L36) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeIpBan() + +> **initializeIpBan**(`ipBanManager`): `void` + +Defined in: [packages/core/src/handlers/behavior.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L40) + +#### Parameters + +##### ipBanManager + +[`IPBanManager`](/guard-core-ts/api/core/src/classes/ipbanmanager/) \| `null` + +#### Returns + +`void` + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/behavior.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L32) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/behavior.ts:304](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L304) + +#### Returns + +`Promise`\<`void`\> + +*** + +### trackEndpointUsage() + +> **trackEndpointUsage**(`endpointId`, `clientIp`, `rule`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/handlers/behavior.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L44) + +#### Parameters + +##### endpointId + +`string` + +##### clientIp + +`string` + +##### rule + +[`BehaviorRule`](/guard-core-ts/api/core/src/classes/behaviorrule/) + +#### Returns + +`Promise`\<`boolean`\> + +*** + +### trackReturnPattern() + +> **trackReturnPattern**(`endpointId`, `clientIp`, `response`, `rule`, `effectiveThreshold?`): `Promise`\<`boolean` \| `null`\> + +Defined in: [packages/core/src/handlers/behavior.ts:64](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/behavior.ts#L64) + +#### Parameters + +##### endpointId + +`string` + +##### clientIp + +`string` + +##### response + +[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) + +##### rule + +[`BehaviorRule`](/guard-core-ts/api/core/src/classes/behaviorrule/) + +##### effectiveThreshold? + +`number` = `rule.threshold` + +#### Returns + +`Promise`\<`boolean` \| `null`\> diff --git a/docs/src/content/docs/api/core/src/classes/BehavioralProcessor.md b/docs/src/content/docs/api/core/src/classes/BehavioralProcessor.md index 7af590b..a68d8b6 100644 --- a/docs/src/content/docs/api/core/src/classes/BehavioralProcessor.md +++ b/docs/src/content/docs/api/core/src/classes/BehavioralProcessor.md @@ -5,7 +5,7 @@ prev: false title: "BehavioralProcessor" --- -Defined in: [core/src/core/behavioral/processor.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/behavioral/processor.ts#L8) +Defined in: [packages/core/src/core/behavioral/processor.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L30) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/behavioral/processor.ts:8](https://github.com/Guard-C > **new BehavioralProcessor**(`logger`, `eventBus`): `BehavioralProcessor` -Defined in: [core/src/core/behavioral/processor.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/behavioral/processor.ts#L11) +Defined in: [packages/core/src/core/behavioral/processor.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L35) #### Parameters @@ -35,7 +35,7 @@ Defined in: [core/src/core/behavioral/processor.ts:11](https://github.com/Guard- > **getEndpointId**(`request`): `string` -Defined in: [core/src/core/behavioral/processor.ts:92](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/behavioral/processor.ts#L92) +Defined in: [packages/core/src/core/behavioral/processor.ts:218](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L218) #### Parameters @@ -49,11 +49,41 @@ Defined in: [core/src/core/behavioral/processor.ts:92](https://github.com/Guard- *** +### processGlobalReturnRules() + +> **processGlobalReturnRules**(`request`, `response`, `clientIp`, `rules`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/behavioral/processor.ts:135](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L135) + +#### Parameters + +##### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +##### response + +[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) + +##### clientIp + +`string` + +##### rules + +readonly [`BehaviorRule`](/guard-core-ts/api/core/src/classes/behaviorrule/)[] + +#### Returns + +`Promise`\<`void`\> + +*** + ### processReturnRules() > **processReturnRules**(`request`, `response`, `clientIp`, `routeConfig`): `Promise`\<`void`\> -Defined in: [core/src/core/behavioral/processor.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/behavioral/processor.ts#L55) +Defined in: [packages/core/src/core/behavioral/processor.ts:97](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L97) #### Parameters @@ -83,7 +113,7 @@ Defined in: [core/src/core/behavioral/processor.ts:55](https://github.com/Guard- > **processUsageRules**(`request`, `clientIp`, `routeConfig`): `Promise`\<`void`\> -Defined in: [core/src/core/behavioral/processor.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/behavioral/processor.ts#L20) +Defined in: [packages/core/src/core/behavioral/processor.ts:64](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L64) #### Parameters @@ -105,11 +135,29 @@ Defined in: [core/src/core/behavioral/processor.ts:20](https://github.com/Guard- *** +### setDefaultTracker() + +> **setDefaultTracker**(`tracker`): `void` + +Defined in: [packages/core/src/core/behavioral/processor.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L48) + +#### Parameters + +##### tracker + +[`BehaviorTracker`](/guard-core-ts/api/core/src/classes/behaviortracker/) + +#### Returns + +`void` + +*** + ### setGuardDecorator() > **setGuardDecorator**(`decorator`): `void` -Defined in: [core/src/core/behavioral/processor.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/behavioral/processor.ts#L16) +Defined in: [packages/core/src/core/behavioral/processor.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L40) #### Parameters @@ -117,7 +165,25 @@ Defined in: [core/src/core/behavioral/processor.ts:16](https://github.com/Guard- ###### behaviorTracker -`BehaviorTracker` +[`BehaviorTracker`](/guard-core-ts/api/core/src/classes/behaviortracker/) + +#### Returns + +`void` + +*** + +### setSuspiciousCountsReader() + +> **setSuspiciousCountsReader**(`reader`): `void` + +Defined in: [packages/core/src/core/behavioral/processor.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/behavioral/processor.ts#L52) + +#### Parameters + +##### reader + +`SuspiciousCountsReader` #### Returns diff --git a/docs/src/content/docs/api/core/src/classes/BypassHandler.md b/docs/src/content/docs/api/core/src/classes/BypassHandler.md index 2b28df3..8197445 100644 --- a/docs/src/content/docs/api/core/src/classes/BypassHandler.md +++ b/docs/src/content/docs/api/core/src/classes/BypassHandler.md @@ -5,15 +5,15 @@ prev: false title: "BypassHandler" --- -Defined in: [core/src/core/bypass/handler.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/bypass/handler.ts#L10) +Defined in: [packages/core/src/core/bypass/handler.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bypass/handler.ts#L19) ## Constructors ### Constructor -> **new BypassHandler**(`config`, `eventBus`, `routeResolver`, `responseFactory`, `validator`): `BypassHandler` +> **new BypassHandler**(`config`, `eventBus`, `routeResolver`, `responseFactory`, `validator`, `logger?`): `BypassHandler` -Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/bypass/handler.ts#L11) +Defined in: [packages/core/src/core/bypass/handler.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bypass/handler.ts#L22) #### Parameters @@ -23,10 +23,26 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -43,6 +59,34 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `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` = `...` @@ -51,10 +95,26 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -63,6 +123,14 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -79,6 +147,14 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -123,30 +199,74 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -155,10 +275,18 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -175,18 +303,38 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -203,10 +351,38 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -215,6 +391,30 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -227,10 +427,54 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -243,18 +487,50 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g `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`[] = `...` @@ -291,17 +567,43 @@ Defined in: [core/src/core/bypass/handler.ts:11](https://github.com/Guard-Core/g [`RequestValidator`](/guard-core-ts/api/core/src/classes/requestvalidator/) +##### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) = `defaultLogger` + #### Returns `BypassHandler` ## Methods +### beginSecurityBypass() + +> **beginSecurityBypass**(`request`, `routeConfig`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/core/bypass/handler.ts:103](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bypass/handler.ts#L103) + +#### Parameters + +##### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +##### routeConfig + +[`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) \| `null` + +#### Returns + +`Promise`\<`boolean`\> + +*** + ### handlePassthrough() -> **handlePassthrough**(`request`, `callNext`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> +> **handlePassthrough**(`request`, `_callNext?`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> -Defined in: [core/src/core/bypass/handler.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/bypass/handler.ts#L19) +Defined in: [packages/core/src/core/bypass/handler.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bypass/handler.ts#L40) #### Parameters @@ -309,7 +611,7 @@ Defined in: [core/src/core/bypass/handler.ts:19](https://github.com/Guard-Core/g [`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) -##### callNext +##### \_callNext? (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> @@ -323,7 +625,7 @@ Defined in: [core/src/core/bypass/handler.ts:19](https://github.com/Guard-Core/g > **handleSecurityBypass**(`request`, `callNext`, `routeConfig`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> -Defined in: [core/src/core/bypass/handler.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/bypass/handler.ts#L36) +Defined in: [packages/core/src/core/bypass/handler.ts:87](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bypass/handler.ts#L87) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/CloudHandler.md b/docs/src/content/docs/api/core/src/classes/CloudHandler.md new file mode 100644 index 0000000..24703b0 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/CloudHandler.md @@ -0,0 +1,250 @@ +--- +editUrl: false +next: false +prev: false +title: "CloudHandler" +--- + +Defined in: [packages/core/src/handlers/cloud.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L23) + +## Constructors + +### Constructor + +> **new CloudHandler**(`logger`, `store?`): `CloudHandler` + +Defined in: [packages/core/src/handlers/cloud.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L39) + +#### Parameters + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +##### store? + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) \| `null` + +#### Returns + +`CloudHandler` + +## Properties + +### agentHandler + +> **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` = `null` + +Defined in: [packages/core/src/handlers/cloud.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L37) + +## Methods + +### getCloudProviderDetails() + +> **getCloudProviderDetails**(`ip`, `providers`): \[`string`, `string`\] \| `null` + +Defined in: [packages/core/src/handlers/cloud.ts:266](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L266) + +#### Parameters + +##### ip + +`string` + +##### providers + +`Set`\<`string`\> + +#### Returns + +\[`string`, `string`\] \| `null` + +*** + +### getStatus() + +> **getStatus**(): `Record`\<`string`, \{ `entries`: `number`; `lastRefreshed`: `Date` \| `null`; `ready`: `boolean`; \}\> + +Defined in: [packages/core/src/handlers/cloud.ts:193](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L193) + +#### Returns + +`Record`\<`string`, \{ `entries`: `number`; `lastRefreshed`: `Date` \| `null`; `ready`: `boolean`; \}\> + +*** + +### getStore() + +> **getStore**(): [`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) \| `null` + +Defined in: [packages/core/src/handlers/cloud.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L53) + +#### Returns + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) \| `null` + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud.ts:67](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L67) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`, `providers`, `ttl?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud.ts:57](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L57) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +##### providers + +`Set`\<`string`\> + +##### ttl? + +`number` = `3600` + +#### Returns + +`Promise`\<`void`\> + +*** + +### isCloudIp() + +> **isCloudIp**(`ip`, `providers`): `boolean` + +Defined in: [packages/core/src/handlers/cloud.ts:245](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L245) + +#### Parameters + +##### ip + +`string` + +##### providers + +`Set`\<`string`\> + +#### Returns + +`boolean` + +*** + +### refresh() + +> **refresh**(`providers`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud.ts:75](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L75) + +#### Parameters + +##### providers + +`Set`\<`string`\> + +#### Returns + +`Promise`\<`void`\> + +*** + +### refreshAsync() + +> **refreshAsync**(`providers`, `ttl?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud.ts:82](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L82) + +#### Parameters + +##### providers + +`Set`\<`string`\> + +##### ttl? + +`number` = `3600` + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud.ts:315](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L315) + +#### Returns + +`Promise`\<`void`\> + +*** + +### sendCloudDetectionEvent() + +> **sendCloudDetectionEvent**(`ip`, `provider`, `network`, `actionTaken?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud.ts:292](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L292) + +#### Parameters + +##### ip + +`string` + +##### provider + +`string` + +##### network + +`string` + +##### actionTaken? + +`string` = `'request_blocked'` + +#### Returns + +`Promise`\<`void`\> + +*** + +### setStore() + +> **setStore**(`store`): `void` + +Defined in: [packages/core/src/handlers/cloud.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud.ts#L49) + +#### Parameters + +##### store + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) \| `null` + +#### Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/classes/CompositeAgentHandler.md b/docs/src/content/docs/api/core/src/classes/CompositeAgentHandler.md new file mode 100644 index 0000000..9053675 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/CompositeAgentHandler.md @@ -0,0 +1,230 @@ +--- +editUrl: false +next: false +prev: false +title: "CompositeAgentHandler" +--- + +Defined in: [packages/core/src/core/events/composite-handler.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L21) + +## Implements + +- [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +## Constructors + +### Constructor + +> **new CompositeAgentHandler**(`handlers`, `options?`): `CompositeAgentHandler` + +Defined in: [packages/core/src/core/events/composite-handler.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L29) + +#### Parameters + +##### handlers + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/)[] + +##### options? + +###### enricher? + +[`AgentEventEnricher`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/) \| `null` + +###### eventFilter? + +[`EventFilter`](/guard-core-ts/api/core/src/classes/eventfilter/) + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### Returns + +`CompositeAgentHandler` + +## Accessors + +### isDegraded + +#### Get Signature + +> **get** **isDegraded**(): `boolean` + +Defined in: [packages/core/src/core/events/composite-handler.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L47) + +##### Returns + +`boolean` + +*** + +### isStarted + +#### Get Signature + +> **get** **isStarted**(): `boolean` + +Defined in: [packages/core/src/core/events/composite-handler.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L43) + +##### Returns + +`boolean` + +## Methods + +### flushBuffer() + +> **flushBuffer**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:123](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L123) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`flushBuffer`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#flushbuffer) + +*** + +### getDynamicRules() + +> **getDynamicRules**(): `Promise`\<`unknown`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:133](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L133) + +#### Returns + +`Promise`\<`unknown`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`getDynamicRules`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#getdynamicrules) + +*** + +### getFailedHandlers() + +> **getFailedHandlers**(): `string`[] + +Defined in: [packages/core/src/core/events/composite-handler.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L51) + +#### Returns + +`string`[] + +*** + +### healthCheck() + +> **healthCheck**(): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:145](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L145) + +#### Returns + +`Promise`\<`boolean`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`healthCheck`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#healthcheck) + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:89](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L89) + +#### Parameters + +##### redisHandler + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`initializeRedis`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#initializeredis) + +*** + +### sendEvent() + +> **sendEvent**(`event`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L55) + +#### Parameters + +##### event + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`sendEvent`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#sendevent) + +*** + +### sendMetric() + +> **sendMetric**(`metric`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:72](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L72) + +#### Parameters + +##### metric + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`sendMetric`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#sendmetric) + +*** + +### start() + +> **start**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:99](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L99) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`start`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#start) + +*** + +### stop() + +> **stop**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/composite-handler.ts:113](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/composite-handler.ts#L113) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`stop`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#stop) diff --git a/docs/src/content/docs/api/core/src/classes/ContentPreprocessor.md b/docs/src/content/docs/api/core/src/classes/ContentPreprocessor.md index 1f9c93b..588236b 100644 --- a/docs/src/content/docs/api/core/src/classes/ContentPreprocessor.md +++ b/docs/src/content/docs/api/core/src/classes/ContentPreprocessor.md @@ -5,15 +5,15 @@ prev: false title: "ContentPreprocessor" --- -Defined in: [core/src/detection-engine/preprocessor.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L52) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:106](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L106) ## Constructors ### Constructor -> **new ContentPreprocessor**(`maxContentLength?`, `preserveAttackPatterns?`): `ContentPreprocessor` +> **new ContentPreprocessor**(`maxContentLength?`, `preserveAttackPatterns?`, `maxFullScanBytes?`): `ContentPreprocessor` -Defined in: [core/src/detection-engine/preprocessor.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L56) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:114](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L114) #### Parameters @@ -25,17 +25,53 @@ Defined in: [core/src/detection-engine/preprocessor.ts:56](https://github.com/Gu `boolean` = `true` +##### maxFullScanBytes? + +`number` \| `null` + #### Returns `ContentPreprocessor` +## Properties + +### compiledIndicators + +> `readonly` **compiledIndicators**: `RegExp`[] + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:110](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L110) + +*** + +### maxContentLength + +> `readonly` **maxContentLength**: `number` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:107](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L107) + +*** + +### maxFullScanBytes + +> `readonly` **maxFullScanBytes**: `number` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:109](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L109) + +*** + +### preserveAttackPatterns + +> `readonly` **preserveAttackPatterns**: `boolean` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:108](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L108) + ## Methods ### decodeCommonEncodings() -> **decodeCommonEncodings**(`content`): `string` +> **decodeCommonEncodings**(`content`, `decodeBudgetExhausted?`): `Promise`\<`string`\> -Defined in: [core/src/detection-engine/preprocessor.ts:77](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L77) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:232](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L232) #### Parameters @@ -43,9 +79,15 @@ Defined in: [core/src/detection-engine/preprocessor.ts:77](https://github.com/Gu `string` +##### decodeBudgetExhausted? + +###### value + +`boolean` + #### Returns -`string` +`Promise`\<`string`\> *** @@ -53,7 +95,7 @@ Defined in: [core/src/detection-engine/preprocessor.ts:77](https://github.com/Gu > **extractAttackRegions**(`content`): \[`number`, `number`\][] -Defined in: [core/src/detection-engine/preprocessor.ts:126](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L126) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:181](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L181) #### Parameters @@ -71,7 +113,7 @@ Defined in: [core/src/detection-engine/preprocessor.ts:126](https://github.com/G > **normalizeUnicode**(`content`): `string` -Defined in: [core/src/detection-engine/preprocessor.ts:61](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L61) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:162](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L162) #### Parameters @@ -87,9 +129,9 @@ Defined in: [core/src/detection-engine/preprocessor.ts:61](https://github.com/Gu ### preprocess() -> **preprocess**(`content`): `Promise`\<`string`\> +> **preprocess**(`content`, `decodeBudgetExhausted?`): `Promise`\<`string`\> -Defined in: [core/src/detection-engine/preprocessor.ts:205](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L205) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:297](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L297) #### Parameters @@ -97,6 +139,12 @@ Defined in: [core/src/detection-engine/preprocessor.ts:205](https://github.com/G `string` +##### decodeBudgetExhausted? + +###### value + +`boolean` + #### Returns `Promise`\<`string`\> @@ -107,7 +155,7 @@ Defined in: [core/src/detection-engine/preprocessor.ts:205](https://github.com/G > **preprocessBatch**(`contents`): `Promise`\<`string`[]\> -Defined in: [core/src/detection-engine/preprocessor.ts:217](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L217) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:328](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L328) #### Parameters @@ -121,11 +169,95 @@ Defined in: [core/src/detection-engine/preprocessor.ts:217](https://github.com/G *** +### preprocessShortBase64AdditiveView() + +> **preprocessShortBase64AdditiveView**(`content`): `string` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:324](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L324) + +#### Parameters + +##### content + +`string` + +#### Returns + +`string` + +*** + +### preprocessSignalPreserving() + +> **preprocessSignalPreserving**(`content`): `string` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:302](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L302) + +#### Parameters + +##### content + +`string` + +#### Returns + +`string` + +*** + +### preprocessUrlDecodedNewlinePreserving() + +> **preprocessUrlDecodedNewlinePreserving**(`content`, `decodeBudgetExhausted?`): `Promise`\<`string`\> + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:308](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L308) + +#### Parameters + +##### content + +`string` + +##### decodeBudgetExhausted? + +###### value + +`boolean` + +#### Returns + +`Promise`\<`string`\> + +*** + +### preprocessWithDecoded() + +> **preprocessWithDecoded**(`content`, `decodeBudgetExhausted?`): `Promise`\<\[`string`, `string`\]\> + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:282](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L282) + +#### Parameters + +##### content + +`string` + +##### decodeBudgetExhausted? + +###### value + +`boolean` + +#### Returns + +`Promise`\<\[`string`, `string`\]\> + +*** + ### removeExcessiveWhitespace() > **removeExcessiveWhitespace**(`content`): `string` -Defined in: [core/src/detection-engine/preprocessor.ts:73](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L73) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:174](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L174) #### Parameters @@ -143,7 +275,47 @@ Defined in: [core/src/detection-engine/preprocessor.ts:73](https://github.com/Gu > **removeNullBytes**(`content`): `string` -Defined in: [core/src/detection-engine/preprocessor.ts:69](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L69) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:170](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L170) + +#### Parameters + +##### content + +`string` + +#### Returns + +`string` + +*** + +### setAgentHandler() + +> **setAgentHandler**(`agentHandler`, `correlationId?`): `void` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:128](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L128) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +##### correlationId? + +`string` \| `null` + +#### Returns + +`void` + +*** + +### stripSqlComments() + +> **stripSqlComments**(`content`): `string` + +Defined in: [packages/core/src/detection-engine/preprocessor.ts:223](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L223) #### Parameters @@ -161,7 +333,7 @@ Defined in: [core/src/detection-engine/preprocessor.ts:69](https://github.com/Gu > **truncateSafely**(`content`): `string` -Defined in: [core/src/detection-engine/preprocessor.ts:162](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/preprocessor.ts#L162) +Defined in: [packages/core/src/detection-engine/preprocessor.ts:201](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/preprocessor.ts#L201) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/DynamicRuleManager.md b/docs/src/content/docs/api/core/src/classes/DynamicRuleManager.md new file mode 100644 index 0000000..fb20dcd --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/DynamicRuleManager.md @@ -0,0 +1,812 @@ +--- +editUrl: false +next: false +prev: false +title: "DynamicRuleManager" +--- + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:79](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L79) + +## Constructors + +### Constructor + +> **new DynamicRuleManager**(`config`, `logger`, `targets?`): `DynamicRuleManager` + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:98](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L98) + +#### Parameters + +##### config + +###### 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` = `...` + +###### authVerifier? + +(`request`, `credential`) => `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` = `...` + +###### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +###### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +###### detectionAnomalyEmissionCooldown + +`number` = `...` + +###### detectionAnomalyThreshold + +`number` = `...` + +###### detectionBinaryMinRunLength + +`number` = `...` + +###### detectionCompilerTimeout + +`number` = `...` + +###### detectionMaxBodyInspectBytes + +`number` = `...` + +###### detectionMaxContentLength + +`number` = `...` + +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`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`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + +###### excludePaths + +`string`[] = `...` + +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + +###### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +###### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + +###### logFormat + +`"text"` \| `"json"` = `...` + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +##### targets? + +`DynamicRuleTargets` = `{}` + +#### Returns + +`DynamicRuleManager` + +## Methods + +### forceUpdate() + +> **forceUpdate**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:687](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L687) + +#### Returns + +`Promise`\<`void`\> + +*** + +### getCurrentRules() + +> **getCurrentRules**(): \{ `autoBanDuration`: `number` \| `null`; `autoBanThreshold`: `number` \| `null`; `blockedCloudProviders`: `Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>; `blockedCountries`: `string`[]; `blockedUserAgents`: `string`[]; `emergencyMode`: `boolean`; `emergencyWhitelist`: `string`[]; `enableIpBanning`: `boolean` \| `null`; `enablePenetrationDetection`: `boolean` \| `null`; `enableRateLimitAutoBan`: `boolean` \| `null`; `enableRateLimiting`: `boolean` \| `null`; `endpointRateLimits`: `Record`\<`string`, \[`number`, `number`\]\>; `expiresAt`: `string` \| `null`; `globalRateLimit`: `number` \| `null`; `globalRateWindow`: `number` \| `null`; `ipBanDuration`: `number`; `ipBlacklist`: `string`[]; `ipWhitelist`: `string`[]; `ruleId`: `string`; `suspiciousPatterns`: `string`[]; `timestamp`: `string`; `ttl`: `number`; `version`: `number`; `whitelistCountries`: `string`[]; \} \| `null` + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:397](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L397) + +#### Returns + +\{ `autoBanDuration`: `number` \| `null`; `autoBanThreshold`: `number` \| `null`; `blockedCloudProviders`: `Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>; `blockedCountries`: `string`[]; `blockedUserAgents`: `string`[]; `emergencyMode`: `boolean`; `emergencyWhitelist`: `string`[]; `enableIpBanning`: `boolean` \| `null`; `enablePenetrationDetection`: `boolean` \| `null`; `enableRateLimitAutoBan`: `boolean` \| `null`; `enableRateLimiting`: `boolean` \| `null`; `endpointRateLimits`: `Record`\<`string`, \[`number`, `number`\]\>; `expiresAt`: `string` \| `null`; `globalRateLimit`: `number` \| `null`; `globalRateWindow`: `number` \| `null`; `ipBanDuration`: `number`; `ipBlacklist`: `string`[]; `ipWhitelist`: `string`[]; `ruleId`: `string`; `suspiciousPatterns`: `string`[]; `timestamp`: `string`; `ttl`: `number`; `version`: `number`; `whitelistCountries`: `string`[]; \} \| `null` + +*** + +### hydrateLastKnownRules() + +> **hydrateLastKnownRules**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:125](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L125) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:104](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L104) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:115](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L115) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### loadLastKnownRules() + +> **loadLastKnownRules**(): `Promise`\<\{ `autoBanDuration`: `number` \| `null`; `autoBanThreshold`: `number` \| `null`; `blockedCloudProviders`: `Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>; `blockedCountries`: `string`[]; `blockedUserAgents`: `string`[]; `emergencyMode`: `boolean`; `emergencyWhitelist`: `string`[]; `enableIpBanning`: `boolean` \| `null`; `enablePenetrationDetection`: `boolean` \| `null`; `enableRateLimitAutoBan`: `boolean` \| `null`; `enableRateLimiting`: `boolean` \| `null`; `endpointRateLimits`: `Record`\<`string`, \[`number`, `number`\]\>; `expiresAt`: `string` \| `null`; `globalRateLimit`: `number` \| `null`; `globalRateWindow`: `number` \| `null`; `ipBanDuration`: `number`; `ipBlacklist`: `string`[]; `ipWhitelist`: `string`[]; `ruleId`: `string`; `suspiciousPatterns`: `string`[]; `timestamp`: `string`; `ttl`: `number`; `version`: `number`; `whitelistCountries`: `string`[]; \} \| `null`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:149](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L149) + +#### Returns + +`Promise`\<\{ `autoBanDuration`: `number` \| `null`; `autoBanThreshold`: `number` \| `null`; `blockedCloudProviders`: `Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>; `blockedCountries`: `string`[]; `blockedUserAgents`: `string`[]; `emergencyMode`: `boolean`; `emergencyWhitelist`: `string`[]; `enableIpBanning`: `boolean` \| `null`; `enablePenetrationDetection`: `boolean` \| `null`; `enableRateLimitAutoBan`: `boolean` \| `null`; `enableRateLimiting`: `boolean` \| `null`; `endpointRateLimits`: `Record`\<`string`, \[`number`, `number`\]\>; `expiresAt`: `string` \| `null`; `globalRateLimit`: `number` \| `null`; `globalRateWindow`: `number` \| `null`; `ipBanDuration`: `number`; `ipBlacklist`: `string`[]; `ipWhitelist`: `string`[]; `ruleId`: `string`; `suspiciousPatterns`: `string`[]; `timestamp`: `string`; `ttl`: `number`; `version`: `number`; `whitelistCountries`: `string`[]; \} \| `null`\> + +*** + +### matchEvent() + +> **matchEvent**(`event`): \{ `ruleId`: `string`; `version`: `number`; \} \| `null` + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:637](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L637) + +#### Parameters + +##### event + +###### country? + +`string` \| `null` + +###### eventType? + +`string` \| `null` + +###### ipAddress? + +`string` \| `null` + +#### Returns + +\{ `ruleId`: `string`; `version`: `number`; \} \| `null` + +*** + +### persistLastKnownRules() + +> **persistLastKnownRules**(`rules`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:239](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L239) + +#### Parameters + +##### rules + +###### autoBanDuration + +`number` \| `null` = `...` + +###### autoBanThreshold + +`number` \| `null` = `...` + +###### blockedCloudProviders + +`Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\> = `...` + +###### blockedCountries + +`string`[] = `...` + +###### blockedUserAgents + +`string`[] = `...` + +###### emergencyMode + +`boolean` = `...` + +###### emergencyWhitelist + +`string`[] = `...` + +###### enableIpBanning + +`boolean` \| `null` = `...` + +###### enablePenetrationDetection + +`boolean` \| `null` = `...` + +###### enableRateLimitAutoBan + +`boolean` \| `null` = `...` + +###### enableRateLimiting + +`boolean` \| `null` = `...` + +###### endpointRateLimits + +`Record`\<`string`, \[`number`, `number`\]\> = `...` + +###### expiresAt + +`string` \| `null` = `...` + +###### globalRateLimit + +`number` \| `null` = `...` + +###### globalRateWindow + +`number` \| `null` = `...` + +###### ipBanDuration + +`number` = `...` + +###### ipBlacklist + +`string`[] = `...` + +###### ipWhitelist + +`string`[] = `...` + +###### ruleId + +`string` = `...` + +###### suspiciousPatterns + +`string`[] = `...` + +###### timestamp + +`string` = `...` + +###### ttl + +`number` = `...` + +###### version + +`number` = `...` + +###### whitelistCountries + +`string`[] = `...` + +#### Returns + +`Promise`\<`void`\> + +*** + +### stop() + +> **stop**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:691](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L691) + +#### Returns + +`Promise`\<`void`\> + +*** + +### updateRules() + +> **updateRules**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/dynamic-rules.ts:307](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/dynamic-rules.ts#L307) + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/classes/ErrorResponseFactory.md b/docs/src/content/docs/api/core/src/classes/ErrorResponseFactory.md index 8d87527..bf0437a 100644 --- a/docs/src/content/docs/api/core/src/classes/ErrorResponseFactory.md +++ b/docs/src/content/docs/api/core/src/classes/ErrorResponseFactory.md @@ -5,7 +5,7 @@ prev: false title: "ErrorResponseFactory" --- -Defined in: [core/src/core/responses/factory.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L10) +Defined in: [packages/core/src/core/responses/factory.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L14) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/responses/factory.ts:10](https://github.com/Guard-Cor > **new ErrorResponseFactory**(`config`, `logger`, `metricsCollector`, `guardResponseFactory`, `securityHeadersManager`, `agentHandler?`): `ErrorResponseFactory` -Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L11) +Defined in: [packages/core/src/core/responses/factory.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L15) #### Parameters @@ -23,10 +23,26 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -43,6 +59,34 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `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` = `...` @@ -51,10 +95,26 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -63,6 +123,14 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -79,6 +147,14 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -123,30 +199,74 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -155,10 +275,18 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -175,18 +303,38 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -203,10 +351,38 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -215,6 +391,30 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -227,10 +427,54 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -243,18 +487,50 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor `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`[] = `...` @@ -289,7 +565,7 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor ##### securityHeadersManager -`SecurityHeadersManager` +[`SecurityHeadersManager`](/guard-core-ts/api/core/src/classes/securityheadersmanager/) ##### agentHandler? @@ -305,7 +581,7 @@ Defined in: [core/src/core/responses/factory.ts:11](https://github.com/Guard-Cor > **applyCorsHeaders**(`response`, `origin`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/core/responses/factory.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L45) +Defined in: [packages/core/src/core/responses/factory.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L60) #### Parameters @@ -327,7 +603,7 @@ Defined in: [core/src/core/responses/factory.ts:45](https://github.com/Guard-Cor > **applyModifier**(`response`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/core/responses/factory.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L53) +Defined in: [packages/core/src/core/responses/factory.ts:68](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L68) #### Parameters @@ -345,7 +621,7 @@ Defined in: [core/src/core/responses/factory.ts:53](https://github.com/Guard-Cor > **applySecurityHeaders**(`response`, `requestPath?`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/core/responses/factory.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L34) +Defined in: [packages/core/src/core/responses/factory.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L49) #### Parameters @@ -367,7 +643,7 @@ Defined in: [core/src/core/responses/factory.ts:34](https://github.com/Guard-Cor > **createErrorResponse**(`statusCode`, `defaultMessage`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/core/responses/factory.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L20) +Defined in: [packages/core/src/core/responses/factory.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L35) #### Parameters @@ -389,7 +665,7 @@ Defined in: [core/src/core/responses/factory.ts:20](https://github.com/Guard-Cor > **createHttpsRedirect**(`request`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/core/responses/factory.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L28) +Defined in: [packages/core/src/core/responses/factory.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L43) #### Parameters @@ -407,7 +683,7 @@ Defined in: [core/src/core/responses/factory.ts:28](https://github.com/Guard-Cor > **processResponse**(`request`, `response`, `responseTime`, `routeConfig`, `processBehavioralRules?`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/core/responses/factory.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/responses/factory.ts#L60) +Defined in: [packages/core/src/core/responses/factory.ts:75](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L75) #### Parameters @@ -434,3 +710,21 @@ Defined in: [core/src/core/responses/factory.ts:60](https://github.com/Guard-Cor #### Returns `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +*** + +### setBehavioralProcessor() + +> **setBehavioralProcessor**(`processor`): `void` + +Defined in: [packages/core/src/core/responses/factory.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/responses/factory.ts#L31) + +#### Parameters + +##### processor + +[`BehavioralProcessor`](/guard-core-ts/api/core/src/classes/behavioralprocessor/) + +#### Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/classes/EventEnricher.md b/docs/src/content/docs/api/core/src/classes/EventEnricher.md new file mode 100644 index 0000000..30ce492 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/EventEnricher.md @@ -0,0 +1,84 @@ +--- +editUrl: false +next: false +prev: false +title: "EventEnricher" +--- + +Defined in: [packages/core/src/core/events/enricher.ts:144](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L144) + +## Implements + +- [`AgentEventEnricher`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/) + +## Constructors + +### Constructor + +> **new EventEnricher**(`context`, `options?`): `EventEnricher` + +Defined in: [packages/core/src/core/events/enricher.ts:150](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L150) + +#### Parameters + +##### context + +[`EnrichmentContext`](/guard-core-ts/api/core/src/interfaces/enrichmentcontext/) + +##### options? + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +###### now? + +() => `number` + +#### Returns + +`EventEnricher` + +## Methods + +### enrichEvent() + +> **enrichEvent**(`event`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/enricher.ts:159](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L159) + +#### Parameters + +##### event + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentEventEnricher`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/).[`enrichEvent`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/#enrichevent) + +*** + +### enrichMetric() + +> **enrichMetric**(`metric`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/enricher.ts:176](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L176) + +#### Parameters + +##### metric + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentEventEnricher`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/).[`enrichMetric`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/#enrichmetric) diff --git a/docs/src/content/docs/api/core/src/classes/EventFilter.md b/docs/src/content/docs/api/core/src/classes/EventFilter.md new file mode 100644 index 0000000..cd75b98 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/EventFilter.md @@ -0,0 +1,82 @@ +--- +editUrl: false +next: false +prev: false +title: "EventFilter" +--- + +Defined in: [packages/core/src/core/events/event-filter.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L20) + +## Constructors + +### Constructor + +> **new EventFilter**(`mutedEventTypes?`, `mutedMetricTypes?`): `EventFilter` + +Defined in: [packages/core/src/core/events/event-filter.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L24) + +#### Parameters + +##### mutedEventTypes? + +`Iterable`\<`string`\> = `[]` + +##### mutedMetricTypes? + +`Iterable`\<`string`\> = `[]` + +#### Returns + +`EventFilter` + +## Properties + +### mutedEventTypes + +> `readonly` **mutedEventTypes**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/events/event-filter.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L21) + +*** + +### mutedMetricTypes + +> `readonly` **mutedMetricTypes**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/events/event-filter.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L22) + +## Methods + +### isEventAllowed() + +> **isEventAllowed**(`eventType`): `boolean` + +Defined in: [packages/core/src/core/events/event-filter.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L32) + +#### Parameters + +##### eventType + +`string` + +#### Returns + +`boolean` + +*** + +### isMetricAllowed() + +> **isMetricAllowed**(`metricType`): `boolean` + +Defined in: [packages/core/src/core/events/event-filter.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L36) + +#### Parameters + +##### metricType + +`string` + +#### Returns + +`boolean` diff --git a/docs/src/content/docs/api/core/src/classes/GuardCoreError.md b/docs/src/content/docs/api/core/src/classes/GuardCoreError.md new file mode 100644 index 0000000..1e05c28 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/GuardCoreError.md @@ -0,0 +1,220 @@ +--- +editUrl: false +next: false +prev: false +title: "GuardCoreError" +--- + +Defined in: [packages/core/src/errors.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/errors.ts#L9) + +## Extends + +- `Error` + +## Extended by + +- [`GuardRedisError`](/guard-core-ts/api/core/src/classes/guardrediserror/) + +## Constructors + +### Constructor + +> **new GuardCoreError**(`status`, `message`): `GuardCoreError` + +Defined in: [packages/core/src/errors.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/errors.ts#L12) + +#### Parameters + +##### status + +`number` + +##### message + +`string` + +#### Returns + +`GuardCoreError` + +#### Overrides + +`Error.constructor` + +## Properties + +### cause? + +> `optional` **cause?**: `unknown` + +Defined in: docs/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 + +#### Inherited from + +`Error.cause` + +*** + +### message + +> **message**: `string` + +Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1077 + +#### Inherited from + +`Error.message` + +*** + +### name + +> **name**: `string` + +Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1076 + +#### Inherited from + +`Error.name` + +*** + +### stack? + +> `optional` **stack?**: `string` + +Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1078 + +#### Inherited from + +`Error.stack` + +*** + +### status + +> `readonly` **status**: `number` + +Defined in: [packages/core/src/errors.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/errors.ts#L10) + +*** + +### stackTraceLimit + +> `static` **stackTraceLimit**: `number` + +Defined in: node\_modules/.pnpm/@types+node@26.6.5/node\_modules/@types/node/globals.d.ts:67 + +The `Error.stackTraceLimit` property specifies the number of stack frames +collected by a stack trace (whether generated by `new Error().stack` or +`Error.captureStackTrace(obj)`). + +The default value is `10` but may be set to any valid JavaScript number. Changes +will affect any stack trace captured _after_ the value has been changed. + +If set to a non-number value, or set to a negative number, stack traces will +not capture any frames. + +#### Inherited from + +`Error.stackTraceLimit` + +## Methods + +### captureStackTrace() + +> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` + +Defined in: node\_modules/.pnpm/@types+node@26.6.5/node\_modules/@types/node/globals.d.ts:51 + +Creates a `.stack` property on `targetObject`, which when accessed returns +a string representing the location in the code at which +`Error.captureStackTrace()` was called. + +```js +const myObject = {}; +Error.captureStackTrace(myObject); +myObject.stack; // Similar to `new Error().stack` +``` + +The first line of the trace will be prefixed with +`${myObject.name}: ${myObject.message}`. + +The optional `constructorOpt` argument accepts a function. If given, all frames +above `constructorOpt`, including `constructorOpt`, will be omitted from the +generated stack trace. + +The `constructorOpt` argument is useful for hiding implementation +details of error generation from the user. For instance: + +```js +function a() { + b(); +} + +function b() { + c(); +} + +function c() { + // Create an error without stack trace to avoid calculating the stack trace twice. + const { stackTraceLimit } = Error; + Error.stackTraceLimit = 0; + const error = new Error(); + Error.stackTraceLimit = stackTraceLimit; + + // Capture the stack trace above function b + Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace + throw error; +} + +a(); +``` + +#### Parameters + +##### targetObject + +`object` + +##### constructorOpt? + +`Function` + +#### Returns + +`void` + +#### Inherited from + +`Error.captureStackTrace` + +*** + +### prepareStackTrace() + +> `static` **prepareStackTrace**(`err`, `stackTraces`): `any` + +Defined in: node\_modules/.pnpm/@types+node@26.6.5/node\_modules/@types/node/globals.d.ts:55 + +#### Parameters + +##### err + +`Error` + +##### stackTraces + +`CallSite`[] + +#### Returns + +`any` + +#### See + +https://v8.dev/docs/stack-trace-api#customizing-stack-traces + +#### Inherited from + +`Error.prepareStackTrace` diff --git a/docs/src/content/docs/api/core/src/classes/GuardRedisError.md b/docs/src/content/docs/api/core/src/classes/GuardRedisError.md new file mode 100644 index 0000000..103e901 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/GuardRedisError.md @@ -0,0 +1,220 @@ +--- +editUrl: false +next: false +prev: false +title: "GuardRedisError" +--- + +Defined in: [packages/core/src/errors.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/errors.ts#L19) + +## Extends + +- [`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/) + +## Constructors + +### Constructor + +> **new GuardRedisError**(`status`, `message`): `GuardRedisError` + +Defined in: [packages/core/src/errors.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/errors.ts#L20) + +#### Parameters + +##### status + +`number` + +##### message + +`string` + +#### Returns + +`GuardRedisError` + +#### Overrides + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`constructor`](/guard-core-ts/api/core/src/classes/guardcoreerror/#constructor) + +## Properties + +### cause? + +> `optional` **cause?**: `unknown` + +Defined in: docs/node\_modules/typescript/lib/lib.es2022.error.d.ts:26 + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`cause`](/guard-core-ts/api/core/src/classes/guardcoreerror/#cause) + +*** + +### message + +> **message**: `string` + +Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1077 + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`message`](/guard-core-ts/api/core/src/classes/guardcoreerror/#message) + +*** + +### name + +> **name**: `string` + +Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1076 + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`name`](/guard-core-ts/api/core/src/classes/guardcoreerror/#name) + +*** + +### stack? + +> `optional` **stack?**: `string` + +Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1078 + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`stack`](/guard-core-ts/api/core/src/classes/guardcoreerror/#stack) + +*** + +### status + +> `readonly` **status**: `number` + +Defined in: [packages/core/src/errors.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/errors.ts#L10) + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`status`](/guard-core-ts/api/core/src/classes/guardcoreerror/#status) + +*** + +### stackTraceLimit + +> `static` **stackTraceLimit**: `number` + +Defined in: node\_modules/.pnpm/@types+node@26.6.5/node\_modules/@types/node/globals.d.ts:67 + +The `Error.stackTraceLimit` property specifies the number of stack frames +collected by a stack trace (whether generated by `new Error().stack` or +`Error.captureStackTrace(obj)`). + +The default value is `10` but may be set to any valid JavaScript number. Changes +will affect any stack trace captured _after_ the value has been changed. + +If set to a non-number value, or set to a negative number, stack traces will +not capture any frames. + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`stackTraceLimit`](/guard-core-ts/api/core/src/classes/guardcoreerror/#stacktracelimit) + +## Methods + +### captureStackTrace() + +> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void` + +Defined in: node\_modules/.pnpm/@types+node@26.6.5/node\_modules/@types/node/globals.d.ts:51 + +Creates a `.stack` property on `targetObject`, which when accessed returns +a string representing the location in the code at which +`Error.captureStackTrace()` was called. + +```js +const myObject = {}; +Error.captureStackTrace(myObject); +myObject.stack; // Similar to `new Error().stack` +``` + +The first line of the trace will be prefixed with +`${myObject.name}: ${myObject.message}`. + +The optional `constructorOpt` argument accepts a function. If given, all frames +above `constructorOpt`, including `constructorOpt`, will be omitted from the +generated stack trace. + +The `constructorOpt` argument is useful for hiding implementation +details of error generation from the user. For instance: + +```js +function a() { + b(); +} + +function b() { + c(); +} + +function c() { + // Create an error without stack trace to avoid calculating the stack trace twice. + const { stackTraceLimit } = Error; + Error.stackTraceLimit = 0; + const error = new Error(); + Error.stackTraceLimit = stackTraceLimit; + + // Capture the stack trace above function b + Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace + throw error; +} + +a(); +``` + +#### Parameters + +##### targetObject + +`object` + +##### constructorOpt? + +`Function` + +#### Returns + +`void` + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`captureStackTrace`](/guard-core-ts/api/core/src/classes/guardcoreerror/#capturestacktrace) + +*** + +### prepareStackTrace() + +> `static` **prepareStackTrace**(`err`, `stackTraces`): `any` + +Defined in: node\_modules/.pnpm/@types+node@26.6.5/node\_modules/@types/node/globals.d.ts:55 + +#### Parameters + +##### err + +`Error` + +##### stackTraces + +`CallSite`[] + +#### Returns + +`any` + +#### See + +https://v8.dev/docs/stack-trace-api#customizing-stack-traces + +#### Inherited from + +[`GuardCoreError`](/guard-core-ts/api/core/src/classes/guardcoreerror/).[`prepareStackTrace`](/guard-core-ts/api/core/src/classes/guardcoreerror/#preparestacktrace) diff --git a/docs/src/content/docs/api/core/src/classes/IPBanManager.md b/docs/src/content/docs/api/core/src/classes/IPBanManager.md new file mode 100644 index 0000000..ad9e398 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/IPBanManager.md @@ -0,0 +1,136 @@ +--- +editUrl: false +next: false +prev: false +title: "IPBanManager" +--- + +Defined in: [packages/core/src/handlers/ip-ban.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L19) + +## Constructors + +### Constructor + +> **new IPBanManager**(`logger`): `IPBanManager` + +Defined in: [packages/core/src/handlers/ip-ban.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L25) + +#### Parameters + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### Returns + +`IPBanManager` + +## Methods + +### banIp() + +> **banIp**(`ip`, `duration`, `reason`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/handlers/ip-ban.ts:91](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L91) + +#### Parameters + +##### ip + +`string` + +##### duration + +`number` + +##### reason + +`string` + +#### Returns + +`Promise`\<`boolean`\> + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/ip-ban.ts:82](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L82) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/ip-ban.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L27) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### isIpBanned() + +> **isIpBanned**(`ip`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/handlers/ip-ban.ts:125](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L125) + +#### Parameters + +##### ip + +`string` + +#### Returns + +`Promise`\<`boolean`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/ip-ban.ts:177](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L177) + +#### Returns + +`Promise`\<`void`\> + +*** + +### unbanIp() + +> **unbanIp**(`ip`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/ip-ban.ts:153](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/ip-ban.ts#L153) + +#### Parameters + +##### ip + +`string` + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/classes/IPInfoManager.md b/docs/src/content/docs/api/core/src/classes/IPInfoManager.md new file mode 100644 index 0000000..9beea3d --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/IPInfoManager.md @@ -0,0 +1,234 @@ +--- +editUrl: false +next: false +prev: false +title: "IPInfoManager" +--- + +Defined in: [packages/core/src/handlers/geoip.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L50) + +## Implements + +- [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) + +## Constructors + +### Constructor + +> **new IPInfoManager**(`logger`, `options?`): `IPInfoManager` + +Defined in: [packages/core/src/handlers/geoip.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L60) + +#### Parameters + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +##### options? + +`IPInfoManagerOptions` = `{}` + +#### Returns + +`IPInfoManager` + +## Accessors + +### entryCount + +#### Get Signature + +> **get** **entryCount**(): `number` + +Defined in: [packages/core/src/handlers/geoip.ts:72](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L72) + +##### Returns + +`number` + +*** + +### isInitialized + +#### Get Signature + +> **get** **isInitialized**(): `boolean` + +Defined in: [packages/core/src/handlers/geoip.ts:66](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L66) + +##### Returns + +`boolean` + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`isInitialized`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#isinitialized) + +## Methods + +### checkCountryAccess() + +> **checkCountryAccess**(`ip`, `blockedCountries`, `whitelistCountries?`): `Promise`\<\[`boolean`, `string` \| `null`\]\> + +Defined in: [packages/core/src/handlers/geoip.ts:204](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L204) + +#### Parameters + +##### ip + +`string` + +##### blockedCountries + +readonly `string`[] + +##### whitelistCountries? + +readonly `string`[] \| `null` + +#### Returns + +`Promise`\<\[`boolean`, `string` \| `null`\]\> + +*** + +### close() + +> **close**(): `void` + +Defined in: [packages/core/src/handlers/geoip.ts:240](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L240) + +The reference close: release the reader. + +#### Returns + +`void` + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`close`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#close) + +*** + +### getCountry() + +> **getCountry**(`ip`): `string` \| `null` + +Defined in: [packages/core/src/handlers/geoip.ts:168](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L168) + +#### Parameters + +##### ip + +`string` + +#### Returns + +`string` \| `null` + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`getCountry`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#getcountry) + +*** + +### getStatus() + +> **getStatus**(): `object` + +Defined in: [packages/core/src/handlers/geoip.ts:77](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L77) + +#### Returns + +`object` + +##### entries + +> **entries**: `number` + +##### lastRefreshed + +> **lastRefreshed**: `Date` \| `null` + +##### ready + +> **ready**: `boolean` + +*** + +### initialize() + +> **initialize**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/geoip.ts:92](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L92) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`initialize`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#initialize) + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/geoip.ts:164](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L164) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`initializeAgent`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#initializeagent) + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/geoip.ts:159](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L159) + +#### Parameters + +##### redisHandler + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`initializeRedis`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#initializeredis) + +*** + +### refresh() + +> **refresh**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/geoip.ts:134](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/geoip.ts#L134) + +The reference refresh: re-download and swap the reader. + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/).[`refresh`](/guard-core-ts/api/core/src/interfaces/geoiphandler/#refresh) diff --git a/docs/src/content/docs/api/core/src/classes/InMemoryCloudIpStore.md b/docs/src/content/docs/api/core/src/classes/InMemoryCloudIpStore.md new file mode 100644 index 0000000..aa5c6e0 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/InMemoryCloudIpStore.md @@ -0,0 +1,90 @@ +--- +editUrl: false +next: false +prev: false +title: "InMemoryCloudIpStore" +--- + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L40) + +## Implements + +- [`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) + +## Constructors + +### Constructor + +> **new InMemoryCloudIpStore**(): `InMemoryCloudIpStore` + +#### Returns + +`InMemoryCloudIpStore` + +## Methods + +### clear() + +> **clear**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L65) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/).[`clear`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/#clear) + +*** + +### get() + +> **get**(`provider`): `Promise`\<`Set`\<`string`\> \| `null`\> + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L44) + +#### Parameters + +##### provider + +`string` + +#### Returns + +`Promise`\<`Set`\<`string`\> \| `null`\> + +#### Implementation of + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/).[`get`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/#get) + +*** + +### set() + +> **set**(`provider`, `ranges`, `ttl?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L56) + +#### Parameters + +##### provider + +`string` + +##### ranges + +`Set`\<`string`\> + +##### ttl? + +`number` \| `null` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/).[`set`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/#set) diff --git a/docs/src/content/docs/api/core/src/classes/JsonFormatter.md b/docs/src/content/docs/api/core/src/classes/JsonFormatter.md new file mode 100644 index 0000000..d9b921b --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/JsonFormatter.md @@ -0,0 +1,38 @@ +--- +editUrl: false +next: false +prev: false +title: "JsonFormatter" +--- + +Defined in: [packages/core/src/models/logger-setup.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L34) + +## Constructors + +### Constructor + +> **new JsonFormatter**(): `JsonFormatter` + +#### Returns + +`JsonFormatter` + +## Methods + +### format() + +> **format**(`record`): `string` + +Defined in: [packages/core/src/models/logger-setup.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L36) + +One JSON object per line with the reference's exact key set. + +#### Parameters + +##### record + +[`LogRecord`](/guard-core-ts/api/core/src/interfaces/logrecord/) + +#### Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/classes/LogfireHandler.md b/docs/src/content/docs/api/core/src/classes/LogfireHandler.md new file mode 100644 index 0000000..597954c --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/LogfireHandler.md @@ -0,0 +1,180 @@ +--- +editUrl: false +next: false +prev: false +title: "LogfireHandler" +--- + +Defined in: [packages/core/src/core/events/logfire-handler.ts:66](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L66) + +## Implements + +- [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +## Constructors + +### Constructor + +> **new LogfireHandler**(`config`, `logger?`): `LogfireHandler` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:73](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L73) + +#### Parameters + +##### config + +[`LogfireHandlerConfig`](/guard-core-ts/api/core/src/interfaces/logfirehandlerconfig/) + +##### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) = `defaultLogger` + +#### Returns + +`LogfireHandler` + +## Methods + +### flushBuffer() + +> **flushBuffer**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:161](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L161) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`flushBuffer`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#flushbuffer) + +*** + +### getDynamicRules() + +> **getDynamicRules**(): `Promise`\<`unknown`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:163](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L163) + +#### Returns + +`Promise`\<`unknown`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`getDynamicRules`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#getdynamicrules) + +*** + +### healthCheck() + +> **healthCheck**(): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:167](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L167) + +#### Returns + +`Promise`\<`boolean`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`healthCheck`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#healthcheck) + +*** + +### initializeRedis() + +> **initializeRedis**(`_redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:159](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L159) + +#### Parameters + +##### \_redisHandler + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`initializeRedis`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#initializeredis) + +*** + +### sendEvent() + +> **sendEvent**(`event`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:108](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L108) + +#### Parameters + +##### event + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`sendEvent`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#sendevent) + +*** + +### sendMetric() + +> **sendMetric**(`metric`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:139](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L139) + +#### Parameters + +##### metric + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`sendMetric`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#sendmetric) + +*** + +### start() + +> **start**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:79](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L79) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`start`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#start) + +*** + +### stop() + +> **stop**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:99](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L99) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`stop`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#stop) diff --git a/docs/src/content/docs/api/core/src/classes/MetricsCollector.md b/docs/src/content/docs/api/core/src/classes/MetricsCollector.md index a00127e..8b2eb55 100644 --- a/docs/src/content/docs/api/core/src/classes/MetricsCollector.md +++ b/docs/src/content/docs/api/core/src/classes/MetricsCollector.md @@ -5,7 +5,7 @@ prev: false title: "MetricsCollector" --- -Defined in: [core/src/core/events/metrics.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/metrics.ts#L6) +Defined in: [packages/core/src/core/events/metrics.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/metrics.ts#L6) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/events/metrics.ts:6](https://github.com/Guard-Core/gu > **new MetricsCollector**(`agentHandler`, `config`, `logger`): `MetricsCollector` -Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/metrics.ts#L7) +Defined in: [packages/core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/metrics.ts#L7) #### Parameters @@ -27,10 +27,26 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -47,6 +63,34 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `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` = `...` @@ -55,10 +99,26 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -67,6 +127,14 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -83,6 +151,14 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -127,30 +203,74 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -159,10 +279,18 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -179,18 +307,38 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -207,10 +355,38 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -219,6 +395,30 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -231,10 +431,54 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -247,18 +491,50 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu `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`[] = `...` @@ -293,7 +569,7 @@ Defined in: [core/src/core/events/metrics.ts:7](https://github.com/Guard-Core/gu > **collectRequestMetrics**(`request`, `responseTime`, `statusCode`): `Promise`\<`void`\> -Defined in: [core/src/core/events/metrics.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/metrics.ts#L32) +Defined in: [packages/core/src/core/events/metrics.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/metrics.ts#L32) #### Parameters @@ -319,7 +595,7 @@ Defined in: [core/src/core/events/metrics.ts:32](https://github.com/Guard-Core/g > **sendMetric**(`metricType`, `value`, `tags?`): `Promise`\<`void`\> -Defined in: [core/src/core/events/metrics.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/metrics.ts#L13) +Defined in: [packages/core/src/core/events/metrics.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/metrics.ts#L13) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/NodeUpgradeGuardRequest.md b/docs/src/content/docs/api/core/src/classes/NodeUpgradeGuardRequest.md new file mode 100644 index 0000000..21e1b83 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/NodeUpgradeGuardRequest.md @@ -0,0 +1,234 @@ +--- +editUrl: false +next: false +prev: false +title: "NodeUpgradeGuardRequest" +--- + +Defined in: [packages/core/src/core/node-websocket-guard.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L32) + +## Implements + +- [`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +## Constructors + +### Constructor + +> **new NodeUpgradeGuardRequest**(`req`, `_clientHost`): `NodeUpgradeGuardRequest` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L37) + +#### Parameters + +##### req + +`IncomingMessage` + +##### \_clientHost + +`string` \| `null` + +#### Returns + +`NodeUpgradeGuardRequest` + +## Accessors + +### clientHost + +#### Get Signature + +> **get** **clientHost**(): `string` \| `null` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L54) + +##### Returns + +`string` \| `null` + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`clientHost`](/guard-core-ts/api/core/src/interfaces/guardrequest/#clienthost) + +*** + +### headers + +#### Get Signature + +> **get** **headers**(): `Readonly`\<`Record`\<`string`, `string`\>\> + +Defined in: [packages/core/src/core/node-websocket-guard.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L55) + +##### Returns + +`Readonly`\<`Record`\<`string`, `string`\>\> + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`headers`](/guard-core-ts/api/core/src/interfaces/guardrequest/#headers) + +*** + +### method + +#### Get Signature + +> **get** **method**(): `string` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L53) + +##### Returns + +`string` + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`method`](/guard-core-ts/api/core/src/interfaces/guardrequest/#method) + +*** + +### queryParams + +#### Get Signature + +> **get** **queryParams**(): `Readonly`\<`Record`\<`string`, `string`\>\> + +Defined in: [packages/core/src/core/node-websocket-guard.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L56) + +##### Returns + +`Readonly`\<`Record`\<`string`, `string`\>\> + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`queryParams`](/guard-core-ts/api/core/src/interfaces/guardrequest/#queryparams) + +*** + +### scope + +#### Get Signature + +> **get** **scope**(): `Readonly`\<`Record`\<`string`, `unknown`\>\> + +Defined in: [packages/core/src/core/node-websocket-guard.ts:61](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L61) + +##### Returns + +`Readonly`\<`Record`\<`string`, `unknown`\>\> + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`scope`](/guard-core-ts/api/core/src/interfaces/guardrequest/#scope) + +*** + +### state + +#### Get Signature + +> **get** **state**(): [`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) + +Defined in: [packages/core/src/core/node-websocket-guard.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L60) + +##### Returns + +[`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`state`](/guard-core-ts/api/core/src/interfaces/guardrequest/#state) + +*** + +### urlFull + +#### Get Signature + +> **get** **urlFull**(): `string` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L51) + +##### Returns + +`string` + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`urlFull`](/guard-core-ts/api/core/src/interfaces/guardrequest/#urlfull) + +*** + +### urlPath + +#### Get Signature + +> **get** **urlPath**(): `string` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L49) + +##### Returns + +`string` + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`urlPath`](/guard-core-ts/api/core/src/interfaces/guardrequest/#urlpath) + +*** + +### urlScheme + +#### Get Signature + +> **get** **urlScheme**(): `string` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L50) + +##### Returns + +`string` + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`urlScheme`](/guard-core-ts/api/core/src/interfaces/guardrequest/#urlscheme) + +## Methods + +### body() + +> **body**(): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> + +Defined in: [packages/core/src/core/node-websocket-guard.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L59) + +#### Returns + +`Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`body`](/guard-core-ts/api/core/src/interfaces/guardrequest/#body) + +*** + +### urlReplaceScheme() + +> **urlReplaceScheme**(`scheme`): `string` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L52) + +#### Parameters + +##### scheme + +`string` + +#### Returns + +`string` + +#### Implementation of + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/).[`urlReplaceScheme`](/guard-core-ts/api/core/src/interfaces/guardrequest/#urlreplacescheme) diff --git a/docs/src/content/docs/api/core/src/classes/OtelHandler.md b/docs/src/content/docs/api/core/src/classes/OtelHandler.md new file mode 100644 index 0000000..e309891 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/OtelHandler.md @@ -0,0 +1,191 @@ +--- +editUrl: false +next: false +prev: false +title: "OtelHandler" +--- + +Defined in: [packages/core/src/core/events/otel-handler.ts:85](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L85) + +## Implements + +- [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +## Constructors + +### Constructor + +> **new OtelHandler**(`config`, `logger?`): `OtelHandler` + +Defined in: [packages/core/src/core/events/otel-handler.ts:92](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L92) + +#### Parameters + +##### config + +[`OtelHandlerConfig`](/guard-core-ts/api/core/src/interfaces/otelhandlerconfig/) + +##### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) = `defaultLogger` + +#### Returns + +`OtelHandler` + +## Properties + +### config + +> `readonly` **config**: [`OtelHandlerConfig`](/guard-core-ts/api/core/src/interfaces/otelhandlerconfig/) + +Defined in: [packages/core/src/core/events/otel-handler.ts:88](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L88) + +Exposed for diagnostics and tests (service name, resource attributes, + exporter endpoint the application must mirror into its SDK setup). + +## Methods + +### flushBuffer() + +> **flushBuffer**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:181](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L181) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`flushBuffer`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#flushbuffer) + +*** + +### getDynamicRules() + +> **getDynamicRules**(): `Promise`\<`unknown`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:183](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L183) + +#### Returns + +`Promise`\<`unknown`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`getDynamicRules`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#getdynamicrules) + +*** + +### healthCheck() + +> **healthCheck**(): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:187](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L187) + +#### Returns + +`Promise`\<`boolean`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`healthCheck`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#healthcheck) + +*** + +### initializeRedis() + +> **initializeRedis**(`_redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:179](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L179) + +#### Parameters + +##### \_redisHandler + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`initializeRedis`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#initializeredis) + +*** + +### sendEvent() + +> **sendEvent**(`event`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:114](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L114) + +#### Parameters + +##### event + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`sendEvent`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#sendevent) + +*** + +### sendMetric() + +> **sendMetric**(`metric`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:155](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L155) + +#### Parameters + +##### metric + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`sendMetric`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#sendmetric) + +*** + +### start() + +> **start**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:98](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L98) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`start`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#start) + +*** + +### stop() + +> **stop**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:109](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L109) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/).[`stop`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/#stop) diff --git a/docs/src/content/docs/api/core/src/classes/PatternCompiler.md b/docs/src/content/docs/api/core/src/classes/PatternCompiler.md index d3b165e..9f839bf 100644 --- a/docs/src/content/docs/api/core/src/classes/PatternCompiler.md +++ b/docs/src/content/docs/api/core/src/classes/PatternCompiler.md @@ -5,15 +5,15 @@ prev: false title: "PatternCompiler" --- -Defined in: [core/src/detection-engine/compiler.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L48) +Defined in: [packages/core/src/detection-engine/compiler.ts:62](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L62) ## Constructors ### Constructor -> **new PatternCompiler**(`defaultTimeoutMs?`, `maxCacheSize?`): `PatternCompiler` +> **new PatternCompiler**(`defaultTimeoutMs?`, `maxCacheSize?`, `validationCache?`): `PatternCompiler` -Defined in: [core/src/detection-engine/compiler.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L53) +Defined in: [packages/core/src/detection-engine/compiler.ts:71](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L71) #### Parameters @@ -25,6 +25,10 @@ Defined in: [core/src/detection-engine/compiler.ts:53](https://github.com/Guard- `number` = `1000` +##### validationCache? + +`PatternValidationCache` \| `null` + #### Returns `PatternCompiler` @@ -35,7 +39,7 @@ Defined in: [core/src/detection-engine/compiler.ts:53](https://github.com/Guard- > **batchCompile**(`patterns`, `validate?`): `Promise`\<`Map`\<`string`, `RegExp` \| `RE2Instance`\>\> -Defined in: [core/src/detection-engine/compiler.ts:201](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L201) +Defined in: [packages/core/src/detection-engine/compiler.ts:268](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L268) #### Parameters @@ -57,7 +61,7 @@ Defined in: [core/src/detection-engine/compiler.ts:201](https://github.com/Guard > **clearCache**(): `Promise`\<`void`\> -Defined in: [core/src/detection-engine/compiler.ts:220](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L220) +Defined in: [packages/core/src/detection-engine/compiler.ts:287](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L287) #### Returns @@ -69,7 +73,7 @@ Defined in: [core/src/detection-engine/compiler.ts:220](https://github.com/Guard > **compile**(`pattern`, `flags?`): `Promise`\<`RegExp` \| `RE2Instance`\> -Defined in: [core/src/detection-engine/compiler.ts:67](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L67) +Defined in: [packages/core/src/detection-engine/compiler.ts:87](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L87) #### Parameters @@ -91,7 +95,7 @@ Defined in: [core/src/detection-engine/compiler.ts:67](https://github.com/Guard- > **compileSync**(`pattern`, `flags?`): `RegExp` -Defined in: [core/src/detection-engine/compiler.ts:101](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L101) +Defined in: [packages/core/src/detection-engine/compiler.ts:121](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L121) #### Parameters @@ -113,7 +117,7 @@ Defined in: [core/src/detection-engine/compiler.ts:101](https://github.com/Guard > **safeMatch**(`pattern`, `content`, `timeoutMs?`): `Promise`\<`MatchResult` \| `null`\> -Defined in: [core/src/detection-engine/compiler.ts:105](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L105) +Defined in: [packages/core/src/detection-engine/compiler.ts:125](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L125) #### Parameters @@ -137,9 +141,9 @@ Defined in: [core/src/detection-engine/compiler.ts:105](https://github.com/Guard ### validatePatternSafety() -> **validatePatternSafety**(`pattern`, `testStrings?`): \[`boolean`, `string`\] +> **validatePatternSafety**(`pattern`, `testStrings?`, `flags?`): \[`boolean`, `string`\] -Defined in: [core/src/detection-engine/compiler.ts:172](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/compiler.ts#L172) +Defined in: [packages/core/src/detection-engine/compiler.ts:192](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/compiler.ts#L192) #### Parameters @@ -151,6 +155,10 @@ Defined in: [core/src/detection-engine/compiler.ts:172](https://github.com/Guard `string`[] +##### flags? + +`string` = `'gi'` + #### Returns \[`boolean`, `string`\] diff --git a/docs/src/content/docs/api/core/src/classes/PerformanceMonitor.md b/docs/src/content/docs/api/core/src/classes/PerformanceMonitor.md index 5974182..8a24202 100644 --- a/docs/src/content/docs/api/core/src/classes/PerformanceMonitor.md +++ b/docs/src/content/docs/api/core/src/classes/PerformanceMonitor.md @@ -5,15 +5,15 @@ prev: false title: "PerformanceMonitor" --- -Defined in: [core/src/detection-engine/monitor.ts:68](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L68) +Defined in: [packages/core/src/detection-engine/monitor.ts:64](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L64) ## Constructors ### Constructor -> **new PerformanceMonitor**(`anomalyThreshold?`, `slowPatternThreshold?`, `historySize?`, `maxTrackedPatterns?`): `PerformanceMonitor` +> **new PerformanceMonitor**(`anomalyThreshold?`, `slowPatternThreshold?`, `historySize?`, `maxTrackedPatterns?`, `emissionCooldownSeconds?`, `minSamplesForAnomaly?`): `PerformanceMonitor` -Defined in: [core/src/detection-engine/monitor.ts:78](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L78) +Defined in: [packages/core/src/detection-engine/monitor.ts:80](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L80) #### Parameters @@ -33,6 +33,14 @@ Defined in: [core/src/detection-engine/monitor.ts:78](https://github.com/Guard-C `number` = `1000` +##### emissionCooldownSeconds? + +`number` = `60` + +##### minSamplesForAnomaly? + +`number` = `30` + #### Returns `PerformanceMonitor` @@ -43,7 +51,7 @@ Defined in: [core/src/detection-engine/monitor.ts:78](https://github.com/Guard-C > **clearStats**(): `Promise`\<`void`\> -Defined in: [core/src/detection-engine/monitor.ts:323](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L323) +Defined in: [packages/core/src/detection-engine/monitor.ts:433](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L433) #### Returns @@ -55,7 +63,7 @@ Defined in: [core/src/detection-engine/monitor.ts:323](https://github.com/Guard- > **getPatternReport**(`pattern`): [`PatternReport`](/guard-core-ts/api/core/src/interfaces/patternreport/) \| `null` -Defined in: [core/src/detection-engine/monitor.ts:232](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L232) +Defined in: [packages/core/src/detection-engine/monitor.ts:334](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L334) #### Parameters @@ -73,7 +81,7 @@ Defined in: [core/src/detection-engine/monitor.ts:232](https://github.com/Guard- > **getProblematicPatterns**(): [`PatternReport`](/guard-core-ts/api/core/src/interfaces/patternreport/)[] -Defined in: [core/src/detection-engine/monitor.ts:271](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L271) +Defined in: [packages/core/src/detection-engine/monitor.ts:373](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L373) #### Returns @@ -85,7 +93,7 @@ Defined in: [core/src/detection-engine/monitor.ts:271](https://github.com/Guard- > **getSlowPatterns**(`limit?`): [`PatternReport`](/guard-core-ts/api/core/src/interfaces/patternreport/)[] -Defined in: [core/src/detection-engine/monitor.ts:257](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L257) +Defined in: [packages/core/src/detection-engine/monitor.ts:359](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L359) #### Parameters @@ -103,7 +111,7 @@ Defined in: [core/src/detection-engine/monitor.ts:257](https://github.com/Guard- > **getSummaryStats**(): `Record`\<`string`, `unknown`\> -Defined in: [core/src/detection-engine/monitor.ts:296](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L296) +Defined in: [packages/core/src/detection-engine/monitor.ts:400](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L400) #### Returns @@ -115,7 +123,7 @@ Defined in: [core/src/detection-engine/monitor.ts:296](https://github.com/Guard- > **recordMetric**(`pattern`, `executionTime`, `contentLength`, `matched`, `timeout?`, `agentHandler?`, `correlationId?`): `Promise`\<`void`\> -Defined in: [core/src/detection-engine/monitor.ts:90](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L90) +Defined in: [packages/core/src/detection-engine/monitor.ts:97](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L97) #### Parameters @@ -153,11 +161,48 @@ Defined in: [core/src/detection-engine/monitor.ts:90](https://github.com/Guard-C *** +### recordPoolEvent() + +> **recordPoolEvent**(`type`, `pattern`, `agentHandler?`, `correlationId?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/detection-engine/monitor.ts:300](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L300) + +Scan-pool lifecycle events from the native-regex deadline machinery +(scan-pool.ts): quarantine replaces the reference's consecutive-timeout +pool swap, release re-admits the pattern once its cooldown elapses. +Emission mirrors the anomaly path: agent event plus sanitized callback +data (pattern redacted to 50 chars plus an 8-char hash), and a failing +callback or agent handler never propagates. + +#### Parameters + +##### type + +`PoolEventType` + +##### pattern + +`string` + +##### agentHandler? + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` + +##### correlationId? + +`string` \| `null` + +#### Returns + +`Promise`\<`void`\> + +*** + ### registerAnomalyCallback() > **registerAnomalyCallback**(`callback`): `void` -Defined in: [core/src/detection-engine/monitor.ts:319](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L319) +Defined in: [packages/core/src/detection-engine/monitor.ts:429](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L429) #### Parameters @@ -175,7 +220,7 @@ Defined in: [core/src/detection-engine/monitor.ts:319](https://github.com/Guard- > **removePatternStats**(`pattern`): `Promise`\<`void`\> -Defined in: [core/src/detection-engine/monitor.ts:328](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L328) +Defined in: [packages/core/src/detection-engine/monitor.ts:438](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L438) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/RateLimitManager.md b/docs/src/content/docs/api/core/src/classes/RateLimitManager.md new file mode 100644 index 0000000..f76f9fc --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/RateLimitManager.md @@ -0,0 +1,646 @@ +--- +editUrl: false +next: false +prev: false +title: "RateLimitManager" +--- + +Defined in: [packages/core/src/handlers/rate-limit.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit.ts#L24) + +## Constructors + +### Constructor + +> **new RateLimitManager**(`logger`, `config?`): `RateLimitManager` + +Defined in: [packages/core/src/handlers/rate-limit.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit.ts#L30) + +#### Parameters + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +##### config? + +###### 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` = `...` + +###### authVerifier? + +(`request`, `credential`) => `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` = `...` + +###### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +###### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +###### detectionAnomalyEmissionCooldown + +`number` = `...` + +###### detectionAnomalyThreshold + +`number` = `...` + +###### detectionBinaryMinRunLength + +`number` = `...` + +###### detectionCompilerTimeout + +`number` = `...` + +###### detectionMaxBodyInspectBytes + +`number` = `...` + +###### detectionMaxContentLength + +`number` = `...` + +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`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`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + +###### excludePaths + +`string`[] = `...` + +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + +###### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +###### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + +###### logFormat + +`"text"` \| `"json"` = `...` + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +#### Returns + +`RateLimitManager` + +## Methods + +### checkRateLimit() + +> **checkRateLimit**(`request`, `clientIp`, `createErrorResponse`, `endpointPath?`, `rateLimit?`, `rateLimitWindow?`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +Defined in: [packages/core/src/handlers/rate-limit.ts:71](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit.ts#L71) + +#### Parameters + +##### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +##### clientIp + +`string` + +##### createErrorResponse + +(`statusCode`, `message`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +##### endpointPath? + +`string` \| `null` + +##### rateLimit? + +`number` = `10` + +##### rateLimitWindow? + +`number` = `60` + +#### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/rate-limit.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit.ts#L47) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/rate-limit.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit.ts#L35) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/rate-limit.ts:247](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit.ts#L247) + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/classes/RedisCloudIpStore.md b/docs/src/content/docs/api/core/src/classes/RedisCloudIpStore.md new file mode 100644 index 0000000..0f25017 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/RedisCloudIpStore.md @@ -0,0 +1,102 @@ +--- +editUrl: false +next: false +prev: false +title: "RedisCloudIpStore" +--- + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:74](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L74) + +## Implements + +- [`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) + +## Constructors + +### Constructor + +> **new RedisCloudIpStore**(`redis`, `keyPrefix?`): `RedisCloudIpStore` + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:75](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L75) + +#### Parameters + +##### redis + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +##### keyPrefix? + +`string` = `'cloud_ip_v2'` + +#### Returns + +`RedisCloudIpStore` + +## Methods + +### clear() + +> **clear**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:100](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L100) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/).[`clear`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/#clear) + +*** + +### get() + +> **get**(`provider`): `Promise`\<`Set`\<`string`\> \| `null`\> + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:80](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L80) + +#### Parameters + +##### provider + +`string` + +#### Returns + +`Promise`\<`Set`\<`string`\> \| `null`\> + +#### Implementation of + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/).[`get`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/#get) + +*** + +### set() + +> **set**(`provider`, `ranges`, `ttl?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/cloud-ip-stores.ts:93](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/cloud-ip-stores.ts#L93) + +#### Parameters + +##### provider + +`string` + +##### ranges + +`Set`\<`string`\> + +##### ttl? + +`number` \| `null` + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/).[`set`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/#set) diff --git a/docs/src/content/docs/api/core/src/classes/RedisManager.md b/docs/src/content/docs/api/core/src/classes/RedisManager.md new file mode 100644 index 0000000..714b83c --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/RedisManager.md @@ -0,0 +1,848 @@ +--- +editUrl: false +next: false +prev: false +title: "RedisManager" +--- + +Defined in: [packages/core/src/handlers/redis.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L56) + +## Implements + +- [`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +## Constructors + +### Constructor + +> **new RedisManager**(`config`, `logger`): `RedisManager` + +Defined in: [packages/core/src/handlers/redis.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L65) + +#### Parameters + +##### config + +###### 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` = `...` + +###### authVerifier? + +(`request`, `credential`) => `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` = `...` + +###### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +###### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +###### detectionAnomalyEmissionCooldown + +`number` = `...` + +###### detectionAnomalyThreshold + +`number` = `...` + +###### detectionBinaryMinRunLength + +`number` = `...` + +###### detectionCompilerTimeout + +`number` = `...` + +###### detectionMaxBodyInspectBytes + +`number` = `...` + +###### detectionMaxContentLength + +`number` = `...` + +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`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`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + +###### excludePaths + +`string`[] = `...` + +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + +###### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +###### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + +###### logFormat + +`"text"` \| `"json"` = `...` + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### Returns + +`RedisManager` + +## Properties + +### safeOperationDepth + +> **safeOperationDepth**: `number` = `0` + +Defined in: [packages/core/src/handlers/redis.ts:63](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L63) + +## Methods + +### close() + +> **close**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/redis.ts:133](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L133) + +#### Returns + +`Promise`\<`void`\> + +*** + +### delete() + +> **delete**(`namespace`, `key`): `Promise`\<`number` \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:274](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L274) + +#### Parameters + +##### namespace + +`string` + +##### key + +`string` + +#### Returns + +`Promise`\<`number` \| `null`\> + +#### Implementation of + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/).[`delete`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/#delete) + +*** + +### deletePattern() + +> **deletePattern**(`pattern`): `Promise`\<`number` \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:292](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L292) + +#### Parameters + +##### pattern + +`string` + +#### Returns + +`Promise`\<`number` \| `null`\> + +*** + +### exists() + +> **exists**(`namespace`, `key`): `Promise`\<`boolean` \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:264](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L264) + +#### Parameters + +##### namespace + +`string` + +##### key + +`string` + +#### Returns + +`Promise`\<`boolean` \| `null`\> + +*** + +### getConnection() + +> **getConnection**(): `AsyncDisposable` + +Defined in: [packages/core/src/handlers/redis.ts:177](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L177) + +#### Returns + +`AsyncDisposable` + +#### Implementation of + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/).[`getConnection`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/#getconnection) + +*** + +### getKey() + +> **getKey**(`namespace`, `key`): `Promise`\<`unknown`\> + +Defined in: [packages/core/src/handlers/redis.ts:225](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L225) + +#### Parameters + +##### namespace + +`string` + +##### key + +`string` + +#### Returns + +`Promise`\<`unknown`\> + +#### Implementation of + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/).[`getKey`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/#getkey) + +*** + +### getRawClient() + +> **getRawClient**(): `RedisClient` \| `null` + +Defined in: [packages/core/src/handlers/redis.ts:303](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L303) + +#### Returns + +`RedisClient` \| `null` + +*** + +### incr() + +> **incr**(`namespace`, `key`, `ttl?`): `Promise`\<`number` \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:250](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L250) + +#### Parameters + +##### namespace + +`string` + +##### key + +`string` + +##### ttl? + +`number` + +#### Returns + +`Promise`\<`number` \| `null`\> + +*** + +### initialize() + +> **initialize**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/redis.ts:72](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L72) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/).[`initialize`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/#initialize) + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/redis.ts:146](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L146) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### keys() + +> **keys**(`pattern`): `Promise`\<`string`[] \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:283](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L283) + +#### Parameters + +##### pattern + +`string` + +#### Returns + +`Promise`\<`string`[] \| `null`\> + +#### Implementation of + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/).[`keys`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/#keys) + +*** + +### safeOperation() + +> **safeOperation**\<`T`\>(`func`, ...`args`): `Promise`\<`T` \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:193](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L193) + +#### Type Parameters + +##### T + +`T` + +#### Parameters + +##### func + +(`client`) => `Promise`\<`T`\> + +##### args + +...`unknown`[] + +#### Returns + +`Promise`\<`T` \| `null`\> + +*** + +### setKey() + +> **setKey**(`namespace`, `key`, `value`, `ttl?`): `Promise`\<`boolean` \| `null`\> + +Defined in: [packages/core/src/handlers/redis.ts:234](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/redis.ts#L234) + +#### Parameters + +##### namespace + +`string` + +##### key + +`string` + +##### value + +`unknown` + +##### ttl? + +`number` \| `null` + +#### Returns + +`Promise`\<`boolean` \| `null`\> + +#### Implementation of + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/).[`setKey`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/#setkey) diff --git a/docs/src/content/docs/api/core/src/classes/RequestValidator.md b/docs/src/content/docs/api/core/src/classes/RequestValidator.md index e9ad971..c9a6ece 100644 --- a/docs/src/content/docs/api/core/src/classes/RequestValidator.md +++ b/docs/src/content/docs/api/core/src/classes/RequestValidator.md @@ -5,7 +5,7 @@ prev: false title: "RequestValidator" --- -Defined in: [core/src/core/validation/validator.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/validation/validator.ts#L8) +Defined in: [packages/core/src/core/validation/validator.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/validator.ts#L9) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/validation/validator.ts:8](https://github.com/Guard-C > **new RequestValidator**(`config`, `logger`, `eventBus`): `RequestValidator` -Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/validation/validator.ts#L9) +Defined in: [packages/core/src/core/validation/validator.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/validator.ts#L10) #### Parameters @@ -23,10 +23,26 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -43,6 +59,34 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `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` = `...` @@ -51,10 +95,26 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -63,6 +123,14 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -79,6 +147,14 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -123,30 +199,74 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -155,10 +275,18 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -175,18 +303,38 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -203,10 +351,38 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -215,6 +391,30 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -227,10 +427,54 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -243,18 +487,50 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C `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`[] = `...` @@ -293,7 +569,7 @@ Defined in: [core/src/core/validation/validator.ts:9](https://github.com/Guard-C > **checkTimeWindow**(`timeRestrictions`): `Promise`\<`boolean`\> -Defined in: [core/src/core/validation/validator.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/validation/validator.ts#L47) +Defined in: [packages/core/src/core/validation/validator.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/validator.ts#L52) #### Parameters @@ -317,7 +593,7 @@ Defined in: [core/src/core/validation/validator.ts:47](https://github.com/Guard- > **isPathExcluded**(`request`): `Promise`\<`boolean`\> -Defined in: [core/src/core/validation/validator.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/validation/validator.ts#L65) +Defined in: [packages/core/src/core/validation/validator.ts:70](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/validator.ts#L70) #### Parameters @@ -335,7 +611,7 @@ Defined in: [core/src/core/validation/validator.ts:65](https://github.com/Guard- > **isRequestHttps**(`request`): `boolean` -Defined in: [core/src/core/validation/validator.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/validation/validator.ts#L15) +Defined in: [packages/core/src/core/validation/validator.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/validator.ts#L16) #### Parameters @@ -353,7 +629,7 @@ Defined in: [core/src/core/validation/validator.ts:15](https://github.com/Guard- > **isTrustedProxy**(`connectingIp`): `boolean` -Defined in: [core/src/core/validation/validator.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/validation/validator.ts#L32) +Defined in: [packages/core/src/core/validation/validator.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/validator.ts#L35) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/RouteConfig.md b/docs/src/content/docs/api/core/src/classes/RouteConfig.md index 7c36dab..ea64de7 100644 --- a/docs/src/content/docs/api/core/src/classes/RouteConfig.md +++ b/docs/src/content/docs/api/core/src/classes/RouteConfig.md @@ -5,7 +5,7 @@ prev: false title: "RouteConfig" --- -Defined in: [core/src/models/route-config.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L5) +Defined in: [packages/core/src/models/route-config.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L5) ## Constructors @@ -23,7 +23,15 @@ Defined in: [core/src/models/route-config.ts:5](https://github.com/Guard-Core/gu > **allowedContentTypes**: `string`[] \| `null` = `null` -Defined in: [core/src/models/route-config.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L21) +Defined in: [packages/core/src/models/route-config.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L32) + +*** + +### apiKeyHeader + +> **apiKeyHeader**: `string` \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L24) *** @@ -31,7 +39,23 @@ Defined in: [core/src/models/route-config.ts:21](https://github.com/Guard-Core/g > **apiKeyRequired**: `boolean` = `false` -Defined in: [core/src/models/route-config.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L25) +Defined in: [packages/core/src/models/route-config.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L36) + +*** + +### apiKeyVerifier + +> **apiKeyVerifier**: ((`request`, `credential`) => `unknown`) \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L23) + +*** + +### authorizationHeaderRequired + +> **authorizationHeaderRequired**: `string` \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L25) *** @@ -39,7 +63,15 @@ Defined in: [core/src/models/route-config.ts:25](https://github.com/Guard-Core/g > **authRequired**: `string` \| `null` = `null` -Defined in: [core/src/models/route-config.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L14) +Defined in: [packages/core/src/models/route-config.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L14) + +*** + +### authVerifier + +> **authVerifier**: ((`request`, `credential`) => `unknown`) \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L22) *** @@ -47,7 +79,7 @@ Defined in: [core/src/models/route-config.ts:14](https://github.com/Guard-Core/g > **behaviorRules**: [`BehaviorRule`](/guard-core-ts/api/core/src/classes/behaviorrule/)[] = `[]` -Defined in: [core/src/models/route-config.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L18) +Defined in: [packages/core/src/models/route-config.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L29) *** @@ -55,7 +87,7 @@ Defined in: [core/src/models/route-config.ts:18](https://github.com/Guard-Core/g > **blockCloudProviders**: `Set`\<`string`\> -Defined in: [core/src/models/route-config.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L19) +Defined in: [packages/core/src/models/route-config.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L30) *** @@ -63,7 +95,7 @@ Defined in: [core/src/models/route-config.ts:19](https://github.com/Guard-Core/g > **blockedCountries**: `string`[] \| `null` = `null` -Defined in: [core/src/models/route-config.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L10) +Defined in: [packages/core/src/models/route-config.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L10) *** @@ -71,7 +103,7 @@ Defined in: [core/src/models/route-config.ts:10](https://github.com/Guard-Core/g > **blockedUserAgents**: `string`[] = `[]` -Defined in: [core/src/models/route-config.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L16) +Defined in: [packages/core/src/models/route-config.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L27) *** @@ -79,7 +111,7 @@ Defined in: [core/src/models/route-config.ts:16](https://github.com/Guard-Core/g > **bypassedChecks**: `Set`\<`string`\> -Defined in: [core/src/models/route-config.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L12) +Defined in: [packages/core/src/models/route-config.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L12) *** @@ -87,7 +119,7 @@ Defined in: [core/src/models/route-config.ts:12](https://github.com/Guard-Core/g > **customValidators**: (`request`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\>[] = `[]` -Defined in: [core/src/models/route-config.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L15) +Defined in: [packages/core/src/models/route-config.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L26) #### Parameters @@ -101,11 +133,59 @@ Defined in: [core/src/models/route-config.ts:15](https://github.com/Guard-Core/g *** +### detectionScanBody + +> **detectionScanBody**: `boolean` \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:63](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L63) + +*** + +### enabledDetectionCategories + +> **enabledDetectionCategories**: `Set`\<`string`\> \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L59) + +*** + ### enableSuspiciousDetection > **enableSuspiciousDetection**: `boolean` = `true` -Defined in: [core/src/models/route-config.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L23) +Defined in: [packages/core/src/models/route-config.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L34) + +*** + +### excludedDetectionBodyFields + +> **excludedDetectionBodyFields**: `Set`\<`string`\> \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L55) + +*** + +### excludedDetectionHeaders + +> **excludedDetectionHeaders**: `Set`\<`string`\> \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L49) + +*** + +### excludedDetectionParams + +> **excludedDetectionParams**: `Set`\<`string`\> \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L54) + +*** + +### excludedSemanticDetectionHeaders + +> **excludedSemanticDetectionHeaders**: `Set`\<`string`\> \| `null` = `null` + +Defined in: [packages/core/src/models/route-config.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L53) *** @@ -113,7 +193,7 @@ Defined in: [core/src/models/route-config.ts:23](https://github.com/Guard-Core/g > **geoRateLimits**: `Record`\<`string`, \[`number`, `number`\]\> \| `null` = `null` -Defined in: [core/src/models/route-config.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L27) +Defined in: [packages/core/src/models/route-config.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L38) *** @@ -121,7 +201,7 @@ Defined in: [core/src/models/route-config.ts:27](https://github.com/Guard-Core/g > **ipBlacklist**: `string`[] \| `null` = `null` -Defined in: [core/src/models/route-config.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L9) +Defined in: [packages/core/src/models/route-config.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L9) *** @@ -129,7 +209,7 @@ Defined in: [core/src/models/route-config.ts:9](https://github.com/Guard-Core/gu > **ipWhitelist**: `string`[] \| `null` = `null` -Defined in: [core/src/models/route-config.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L8) +Defined in: [packages/core/src/models/route-config.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L8) *** @@ -137,7 +217,7 @@ Defined in: [core/src/models/route-config.ts:8](https://github.com/Guard-Core/gu > **maxRequestSize**: `number` \| `null` = `null` -Defined in: [core/src/models/route-config.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L20) +Defined in: [packages/core/src/models/route-config.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L31) *** @@ -145,7 +225,7 @@ Defined in: [core/src/models/route-config.ts:20](https://github.com/Guard-Core/g > **rateLimit**: `number` \| `null` = `null` -Defined in: [core/src/models/route-config.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L6) +Defined in: [packages/core/src/models/route-config.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L6) *** @@ -153,7 +233,7 @@ Defined in: [core/src/models/route-config.ts:6](https://github.com/Guard-Core/gu > **rateLimitWindow**: `number` \| `null` = `null` -Defined in: [core/src/models/route-config.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L7) +Defined in: [packages/core/src/models/route-config.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L7) *** @@ -161,7 +241,7 @@ Defined in: [core/src/models/route-config.ts:7](https://github.com/Guard-Core/gu > **requiredHeaders**: `Record`\<`string`, `string`\> = `{}` -Defined in: [core/src/models/route-config.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L17) +Defined in: [packages/core/src/models/route-config.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L28) *** @@ -169,7 +249,7 @@ Defined in: [core/src/models/route-config.ts:17](https://github.com/Guard-Core/g > **requireHttps**: `boolean` = `false` -Defined in: [core/src/models/route-config.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L13) +Defined in: [packages/core/src/models/route-config.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L13) *** @@ -177,7 +257,7 @@ Defined in: [core/src/models/route-config.ts:13](https://github.com/Guard-Core/g > **requireReferrer**: `string`[] \| `null` = `null` -Defined in: [core/src/models/route-config.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L24) +Defined in: [packages/core/src/models/route-config.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L35) *** @@ -185,7 +265,7 @@ Defined in: [core/src/models/route-config.ts:24](https://github.com/Guard-Core/g > **sessionLimits**: `Record`\<`string`, `number`\> \| `null` = `null` -Defined in: [core/src/models/route-config.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L26) +Defined in: [packages/core/src/models/route-config.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L37) *** @@ -193,7 +273,7 @@ Defined in: [core/src/models/route-config.ts:26](https://github.com/Guard-Core/g > **timeRestrictions**: \{ `end`: `string`; `start`: `string`; \} \| `null` = `null` -Defined in: [core/src/models/route-config.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L22) +Defined in: [packages/core/src/models/route-config.ts:33](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L33) *** @@ -201,4 +281,4 @@ Defined in: [core/src/models/route-config.ts:22](https://github.com/Guard-Core/g > **whitelistCountries**: `string`[] \| `null` = `null` -Defined in: [core/src/models/route-config.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/route-config.ts#L11) +Defined in: [packages/core/src/models/route-config.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/route-config.ts#L11) diff --git a/docs/src/content/docs/api/core/src/classes/RouteConfigResolver.md b/docs/src/content/docs/api/core/src/classes/RouteConfigResolver.md index 922a8a4..017173d 100644 --- a/docs/src/content/docs/api/core/src/classes/RouteConfigResolver.md +++ b/docs/src/content/docs/api/core/src/classes/RouteConfigResolver.md @@ -5,7 +5,7 @@ prev: false title: "RouteConfigResolver" --- -Defined in: [core/src/core/routing/resolver.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/routing/resolver.ts#L5) +Defined in: [packages/core/src/core/routing/resolver.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L15) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/routing/resolver.ts:5](https://github.com/Guard-Core/ > **new RouteConfigResolver**(`config`): `RouteConfigResolver` -Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/routing/resolver.ts#L8) +Defined in: [packages/core/src/core/routing/resolver.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L19) #### Parameters @@ -23,10 +23,26 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -43,6 +59,34 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `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` = `...` @@ -51,10 +95,26 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -63,6 +123,14 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -79,6 +147,14 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -123,30 +199,74 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -155,10 +275,18 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -175,18 +303,38 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -203,10 +351,38 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -215,6 +391,30 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -227,10 +427,54 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -243,18 +487,50 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ `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`[] = `...` @@ -285,7 +561,7 @@ Defined in: [core/src/core/routing/resolver.ts:8](https://github.com/Guard-Core/ > **getCloudProvidersToCheck**(`routeConfig`): `string`[] \| `null` -Defined in: [core/src/core/routing/resolver.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/routing/resolver.ts#L34) +Defined in: [packages/core/src/core/routing/resolver.ts:101](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L101) #### Parameters @@ -303,7 +579,7 @@ Defined in: [core/src/core/routing/resolver.ts:34](https://github.com/Guard-Core > **getRouteConfig**(`request`): [`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) \| `null` -Defined in: [core/src/core/routing/resolver.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/routing/resolver.ts#L16) +Defined in: [packages/core/src/core/routing/resolver.ts:58](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L58) #### Parameters @@ -317,11 +593,33 @@ Defined in: [core/src/core/routing/resolver.ts:16](https://github.com/Guard-Core *** +### registerPathRouteConfigs() + +> **registerPathRouteConfigs**(`entries`): `void` + +Defined in: [packages/core/src/core/routing/resolver.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L30) + +Adapter-registered per-route configs (the routeConfigs middleware / + plugin / module option). Registered entries are matched in longest-path + order; a routeId lookup through a decorator always wins over them. + +#### Parameters + +##### entries + +[`PathRouteConfigEntry`](/guard-core-ts/api/core/src/interfaces/pathrouteconfigentry/)[] + +#### Returns + +`void` + +*** + ### setGuardDecorator() > **setGuardDecorator**(`decorator`): `void` -Defined in: [core/src/core/routing/resolver.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/routing/resolver.ts#L12) +Defined in: [packages/core/src/core/routing/resolver.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L23) #### Parameters @@ -339,7 +637,7 @@ Defined in: [core/src/core/routing/resolver.ts:12](https://github.com/Guard-Core > **shouldBypassCheck**(`checkName`, `routeConfig`): `boolean` -Defined in: [core/src/core/routing/resolver.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/routing/resolver.ts#L29) +Defined in: [packages/core/src/core/routing/resolver.ts:96](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L96) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/SecurityCheckPipeline.md b/docs/src/content/docs/api/core/src/classes/SecurityCheckPipeline.md index 9d1e9f3..1dd470d 100644 --- a/docs/src/content/docs/api/core/src/classes/SecurityCheckPipeline.md +++ b/docs/src/content/docs/api/core/src/classes/SecurityCheckPipeline.md @@ -5,7 +5,7 @@ prev: false title: "SecurityCheckPipeline" --- -Defined in: [core/src/core/checks/pipeline.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L6) +Defined in: [packages/core/src/core/checks/pipeline.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L10) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/checks/pipeline.ts:6](https://github.com/Guard-Core/g > **new SecurityCheckPipeline**(`checks`, `logger`): `SecurityCheckPipeline` -Defined in: [core/src/core/checks/pipeline.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L7) +Defined in: [packages/core/src/core/checks/pipeline.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L11) #### Parameters @@ -37,7 +37,7 @@ Defined in: [core/src/core/checks/pipeline.ts:7](https://github.com/Guard-Core/g > **get** **length**(): `number` -Defined in: [core/src/core/checks/pipeline.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L43) +Defined in: [packages/core/src/core/checks/pipeline.ts:124](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L124) ##### Returns @@ -49,7 +49,7 @@ Defined in: [core/src/core/checks/pipeline.ts:43](https://github.com/Guard-Core/ > **add**(`check`): `void` -Defined in: [core/src/core/checks/pipeline.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L24) +Defined in: [packages/core/src/core/checks/pipeline.ts:105](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L105) #### Parameters @@ -67,7 +67,7 @@ Defined in: [core/src/core/checks/pipeline.ts:24](https://github.com/Guard-Core/ > **execute**(`request`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> -Defined in: [core/src/core/checks/pipeline.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L12) +Defined in: [packages/core/src/core/checks/pipeline.ts:84](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L84) #### Parameters @@ -85,7 +85,7 @@ Defined in: [core/src/core/checks/pipeline.ts:12](https://github.com/Guard-Core/ > **getCheckNames**(): `string`[] -Defined in: [core/src/core/checks/pipeline.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L39) +Defined in: [packages/core/src/core/checks/pipeline.ts:120](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L120) #### Returns @@ -97,7 +97,7 @@ Defined in: [core/src/core/checks/pipeline.ts:39](https://github.com/Guard-Core/ > **insert**(`index`, `check`): `void` -Defined in: [core/src/core/checks/pipeline.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L28) +Defined in: [packages/core/src/core/checks/pipeline.ts:109](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L109) #### Parameters @@ -119,7 +119,7 @@ Defined in: [core/src/core/checks/pipeline.ts:28](https://github.com/Guard-Core/ > **remove**(`name`): `boolean` -Defined in: [core/src/core/checks/pipeline.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/checks/pipeline.ts#L32) +Defined in: [packages/core/src/core/checks/pipeline.ts:113](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/pipeline.ts#L113) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/SecurityEventBus.md b/docs/src/content/docs/api/core/src/classes/SecurityEventBus.md index d3d80df..1f54da9 100644 --- a/docs/src/content/docs/api/core/src/classes/SecurityEventBus.md +++ b/docs/src/content/docs/api/core/src/classes/SecurityEventBus.md @@ -5,7 +5,7 @@ prev: false title: "SecurityEventBus" --- -Defined in: [core/src/core/events/event-bus.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/event-bus.ts#L7) +Defined in: [packages/core/src/core/events/event-bus.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-bus.ts#L12) ## Constructors @@ -13,7 +13,7 @@ Defined in: [core/src/core/events/event-bus.ts:7](https://github.com/Guard-Core/ > **new SecurityEventBus**(`agentHandler`, `config`, `logger`, `geoIpHandler?`): `SecurityEventBus` -Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/event-bus.ts#L8) +Defined in: [packages/core/src/core/events/event-bus.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-bus.ts#L13) #### Parameters @@ -27,10 +27,26 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `string` \| `null` = `...` +###### agentBackoffFactor + +`number` \| `null` = `...` + +###### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + ###### agentBufferSize `number` = `...` +###### agentCompressionEnabled + +`boolean` \| `null` = `...` + +###### agentCompressionThreshold + +`number` \| `null` = `...` + ###### agentEnableEvents `boolean` = `...` @@ -47,6 +63,34 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `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` = `...` @@ -55,10 +99,26 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `number` = `...` +###### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +###### agentStatusInterval + +`number` = `...` + +###### agentStrict + +`boolean` = `...` + ###### agentTimeout `number` = `...` +###### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + ###### autoBanDuration `number` = `...` @@ -67,6 +127,14 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `number` = `...` +###### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +###### behaviorScanResponseBody + +`boolean` = `...` + ###### blacklist `string`[] = `...` @@ -83,6 +151,14 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `string`[] = `...` +###### bodyReadMaxConcurrent + +`number` = `...` + +###### bodyReadTimeout + +`number` = `...` + ###### cloudIpRefreshInterval `number` = `...` @@ -127,30 +203,74 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +###### detectionAnomalyEmissionCooldown + +`number` = `...` + ###### detectionAnomalyThreshold `number` = `...` +###### detectionBinaryMinRunLength + +`number` = `...` + ###### detectionCompilerTimeout `number` = `...` +###### detectionMaxBodyInspectBytes + +`number` = `...` + ###### detectionMaxContentLength `number` = `...` +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`number` = `...` + +###### detectionMaxScanValues + +`number` = `...` + ###### detectionMaxTrackedPatterns `number` = `...` +###### detectionMinSamplesForAnomaly + +`number` = `...` + ###### detectionMonitorHistorySize `number` = `...` +###### detectionPatternValidationCachePath + +`string` \| `null` = `...` + ###### detectionPreserveAttackPatterns `boolean` = `...` +###### detectionScanBody + +`boolean` = `...` + +###### detectionScanWorkerPool + +`boolean` = `...` + ###### detectionSemanticThreshold `number` = `...` @@ -159,10 +279,18 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `number` = `...` +###### detectionThreatScoreThreshold + +`number` = `...` + ###### dynamicRuleInterval `number` = `...` +###### dynamicRulesCachePath + +`string` \| `null` = `...` + ###### emergencyMode `boolean` = `...` @@ -179,18 +307,38 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `boolean` = `...` +###### enabledDetectionCategories + +`string`[] = `...` + ###### enableDynamicRules `boolean` = `...` +###### enableEnrichment + +`boolean` = `...` + ###### enableIpBanning `boolean` = `...` +###### enableLogfire + +`boolean` = `...` + +###### enableOtel + +`boolean` = `...` + ###### enablePenetrationDetection `boolean` = `...` +###### enableRateLimitAutoBan + +`boolean` = `...` + ###### enableRateLimiting `boolean` = `...` @@ -207,10 +355,38 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `boolean` = `...` +###### excludedDetectionBodyFields + +`string`[] = `...` + +###### excludedDetectionHeaders + +`string`[] = `...` + +###### excludedDetectionParams + +`string`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + ###### excludePaths `string`[] = `...` +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + ###### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -219,6 +395,30 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ (`ip`) => `string` \| `null` = `...` +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + ###### logFormat `"text"` \| `"json"` = `...` @@ -231,10 +431,54 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `"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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +###### otelExporterEndpoint + +`string` \| `null` = `...` + +###### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +###### otelServiceName + +`string` = `...` + ###### passiveMode `boolean` = `...` @@ -247,18 +491,50 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ `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`[] = `...` @@ -295,9 +571,9 @@ Defined in: [core/src/core/events/event-bus.ts:8](https://github.com/Guard-Core/ ### sendCloudDetectionEvents() -> **sendCloudDetectionEvents**(`request`, `clientIp`, `providers`, `passiveMode`): `Promise`\<`void`\> +> **sendCloudDetectionEvents**(`request`, `clientIp`, `providers`, `routeConfig`, `cloudHandler`, `passiveMode`): `Promise`\<`void`\> -Defined in: [core/src/core/events/event-bus.ts:70](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/event-bus.ts#L70) +Defined in: [packages/core/src/core/events/event-bus.ts:101](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-bus.ts#L101) #### Parameters @@ -313,6 +589,14 @@ Defined in: [core/src/core/events/event-bus.ts:70](https://github.com/Guard-Core `string`[] +##### routeConfig + +\{ `blockCloudProviders`: `Set`\<`string`\>; \} \| `null` + +##### cloudHandler + +\{ `agentHandler`: `unknown`; `getCloudProviderDetails`: \[`string`, `string`\] \| `null`; `sendCloudDetectionEvent`: `Promise`\<`void`\>; \} \| `null` + ##### passiveMode `boolean` @@ -327,7 +611,7 @@ Defined in: [core/src/core/events/event-bus.ts:70](https://github.com/Guard-Core > **sendHttpsViolationEvent**(`request`, `isRouteSpecific`): `Promise`\<`void`\> -Defined in: [core/src/core/events/event-bus.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/event-bus.ts#L49) +Defined in: [packages/core/src/core/events/event-bus.ts:76](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-bus.ts#L76) #### Parameters @@ -349,7 +633,7 @@ Defined in: [core/src/core/events/event-bus.ts:49](https://github.com/Guard-Core > **sendMiddlewareEvent**(`eventType`, `request`, `actionTaken`, `reason`, `metadata?`): `Promise`\<`void`\> -Defined in: [core/src/core/events/event-bus.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/events/event-bus.ts#L15) +Defined in: [packages/core/src/core/events/event-bus.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-bus.ts#L20) #### Parameters diff --git a/docs/src/content/docs/api/core/src/classes/SecurityHeadersManager.md b/docs/src/content/docs/api/core/src/classes/SecurityHeadersManager.md new file mode 100644 index 0000000..f83a5bd --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/SecurityHeadersManager.md @@ -0,0 +1,204 @@ +--- +editUrl: false +next: false +prev: false +title: "SecurityHeadersManager" +--- + +Defined in: [packages/core/src/handlers/security-headers.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L59) + +## Constructors + +### Constructor + +> **new SecurityHeadersManager**(`logger`): `SecurityHeadersManager` + +Defined in: [packages/core/src/handlers/security-headers.ts:77](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L77) + +#### Parameters + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### Returns + +`SecurityHeadersManager` + +## Methods + +### configure() + +> **configure**(`options`): `void` + +Defined in: [packages/core/src/handlers/security-headers.ts:137](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L137) + +#### Parameters + +##### options + +###### contentTypeOptions? + +`string` + +###### corsAllowCredentials? + +`boolean` + +###### corsAllowHeaders? + +`string`[] + +###### corsAllowMethods? + +`string`[] + +###### corsOrigins? + +`string`[] + +###### csp? + +`Record`\<`string`, `string`[]\> \| `null` + +###### customHeaders? + +`Record`\<`string`, `string`\> \| `null` + +###### enabled? + +`boolean` + +###### frameOptions? + +`string` + +###### hstsIncludeSubdomains? + +`boolean` + +###### hstsMaxAge? + +`number` + +###### hstsPreload? + +`boolean` + +###### permissionsPolicy? + +`string` + +###### referrerPolicy? + +`string` + +###### xssProtection? + +`string` + +#### Returns + +`void` + +*** + +### getCorsHeaders() + +> **getCorsHeaders**(`origin`): `Record`\<`string`, `string`\> + +Defined in: [packages/core/src/handlers/security-headers.ts:323](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L323) + +#### Parameters + +##### origin + +`string` + +#### Returns + +`Record`\<`string`, `string`\> + +*** + +### getHeaders() + +> **getHeaders**(`requestPath`): `Promise`\<`Record`\<`string`, `string`\>\> + +Defined in: [packages/core/src/handlers/security-headers.ts:221](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L221) + +#### Parameters + +##### requestPath + +`string` + +#### Returns + +`Promise`\<`Record`\<`string`, `string`\>\> + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/security-headers.ts:85](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L85) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/security-headers.ts:79](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L79) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/security-headers.ts:353](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L353) + +#### Returns + +`Promise`\<`void`\> + +*** + +### validateCspReport() + +> **validateCspReport**(`report`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/handlers/security-headers.ts:276](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/security-headers.ts#L276) + +#### Parameters + +##### report + +`Record`\<`string`, `unknown`\> + +#### Returns + +`Promise`\<`boolean`\> diff --git a/docs/src/content/docs/api/core/src/classes/SemanticAnalyzer.md b/docs/src/content/docs/api/core/src/classes/SemanticAnalyzer.md index 6a0d9dc..2203b9f 100644 --- a/docs/src/content/docs/api/core/src/classes/SemanticAnalyzer.md +++ b/docs/src/content/docs/api/core/src/classes/SemanticAnalyzer.md @@ -5,7 +5,7 @@ prev: false title: "SemanticAnalyzer" --- -Defined in: [core/src/detection-engine/semantic.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L59) +Defined in: [packages/core/src/detection-engine/semantic.ts:114](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L114) ## Constructors @@ -23,7 +23,7 @@ Defined in: [core/src/detection-engine/semantic.ts:59](https://github.com/Guard- > **analyze**(`content`): [`SemanticAnalysis`](/guard-core-ts/api/core/src/interfaces/semanticanalysis/) -Defined in: [core/src/detection-engine/semantic.ts:215](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L215) +Defined in: [packages/core/src/detection-engine/semantic.ts:302](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L302) #### Parameters @@ -41,7 +41,7 @@ Defined in: [core/src/detection-engine/semantic.ts:215](https://github.com/Guard > **analyzeAttackProbability**(`content`): `Record`\<`string`, `number`\> -Defined in: [core/src/detection-engine/semantic.ts:123](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L123) +Defined in: [packages/core/src/detection-engine/semantic.ts:215](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L215) #### Parameters @@ -59,7 +59,7 @@ Defined in: [core/src/detection-engine/semantic.ts:123](https://github.com/Guard > **analyzeCodeInjectionRisk**(`content`): `number` -Defined in: [core/src/detection-engine/semantic.ts:185](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L185) +Defined in: [packages/core/src/detection-engine/semantic.ts:292](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L292) #### Parameters @@ -77,7 +77,7 @@ Defined in: [core/src/detection-engine/semantic.ts:185](https://github.com/Guard > **calculateEntropy**(`content`): `number` -Defined in: [core/src/detection-engine/semantic.ts:83](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L83) +Defined in: [packages/core/src/detection-engine/semantic.ts:138](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L138) #### Parameters @@ -95,7 +95,7 @@ Defined in: [core/src/detection-engine/semantic.ts:83](https://github.com/Guard- > **detectEncodingLayers**(`content`): `number` -Defined in: [core/src/detection-engine/semantic.ts:107](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L107) +Defined in: [packages/core/src/detection-engine/semantic.ts:160](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L160) #### Parameters @@ -113,7 +113,7 @@ Defined in: [core/src/detection-engine/semantic.ts:107](https://github.com/Guard > **detectObfuscation**(`content`): `boolean` -Defined in: [core/src/detection-engine/semantic.ts:151](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L151) +Defined in: [packages/core/src/detection-engine/semantic.ts:220](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L220) #### Parameters @@ -129,9 +129,9 @@ Defined in: [core/src/detection-engine/semantic.ts:151](https://github.com/Guard ### extractSuspiciousPatterns() -> **extractSuspiciousPatterns**(`content`): `object`[] +> **extractSuspiciousPatterns**(`content`): `SuspiciousPattern`[] -Defined in: [core/src/detection-engine/semantic.ts:164](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L164) +Defined in: [packages/core/src/detection-engine/semantic.ts:237](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L237) #### Parameters @@ -141,7 +141,7 @@ Defined in: [core/src/detection-engine/semantic.ts:164](https://github.com/Guard #### Returns -`object`[] +`SuspiciousPattern`[] *** @@ -149,7 +149,7 @@ Defined in: [core/src/detection-engine/semantic.ts:164](https://github.com/Guard > **extractTokens**(`content`): `string`[] -Defined in: [core/src/detection-engine/semantic.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L60) +Defined in: [packages/core/src/detection-engine/semantic.ts:115](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L115) #### Parameters @@ -165,13 +165,13 @@ Defined in: [core/src/detection-engine/semantic.ts:60](https://github.com/Guard- ### getThreatScore() -> **getThreatScore**(`analysis`): `number` +> **getThreatScore**(`analysisResults`): `number` -Defined in: [core/src/detection-engine/semantic.ts:227](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L227) +Defined in: [packages/core/src/detection-engine/semantic.ts:315](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L315) #### Parameters -##### analysis +##### analysisResults [`SemanticAnalysis`](/guard-core-ts/api/core/src/interfaces/semanticanalysis/) diff --git a/docs/src/content/docs/api/core/src/classes/SusPatternsManager.md b/docs/src/content/docs/api/core/src/classes/SusPatternsManager.md new file mode 100644 index 0000000..74a6a88 --- /dev/null +++ b/docs/src/content/docs/api/core/src/classes/SusPatternsManager.md @@ -0,0 +1,833 @@ +--- +editUrl: false +next: false +prev: false +title: "SusPatternsManager" +--- + +Defined in: [packages/core/src/handlers/sus-patterns.ts:204](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L204) + +## Constructors + +### Constructor + +> **new SusPatternsManager**(`config`, `logger`, `scanPool?`): `SusPatternsManager` + +Defined in: [packages/core/src/handlers/sus-patterns.ts:220](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L220) + +#### Parameters + +##### config + +###### 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` = `...` + +###### authVerifier? + +(`request`, `credential`) => `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` = `...` + +###### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +###### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +###### detectionAnomalyEmissionCooldown + +`number` = `...` + +###### detectionAnomalyThreshold + +`number` = `...` + +###### detectionBinaryMinRunLength + +`number` = `...` + +###### detectionCompilerTimeout + +`number` = `...` + +###### detectionMaxBodyInspectBytes + +`number` = `...` + +###### detectionMaxContentLength + +`number` = `...` + +###### detectionMaxJsonDepth + +`number` = `...` + +###### detectionMaxScanChars + +`number` = `...` + +###### detectionMaxScanSeconds + +`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`[] = `...` + +###### excludedSemanticDetectionHeaders + +`string`[] = `...` + +###### excludePaths + +`string`[] = `...` + +###### exemptIps + +`string`[] = `...` + +###### failSecure + +`boolean` = `...` + +###### geoIpDbMaxAge + +`number` = `...` + +###### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +###### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +###### globalBehaviorRules + +`object`[] = `...` + +###### ipinfoDbPath + +`string` = `...` + +###### ipinfoToken + +`string` \| `null` = `...` + +###### lazyInit + +`boolean` = `...` + +###### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +###### logfireServiceName + +`string` = `...` + +###### logFormat + +`"text"` \| `"json"` = `...` + +###### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +###### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +###### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +##### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +##### scanPool? + +`ScanPoolSupervisor` + +#### Returns + +`SusPatternsManager` + +## Accessors + +### detectionBinaryMinRunLength + +#### Get Signature + +> **get** **detectionBinaryMinRunLength**(): `number` + +Defined in: [packages/core/src/handlers/sus-patterns.ts:266](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L266) + +detection_binary_min_run_length: the printable-run threshold the + multipart binary-islands reduction hands to the pattern scan. + +##### Returns + +`number` + +## Methods + +### addPattern() + +> **addPattern**(`pattern`, `custom?`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:928](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L928) + +#### Parameters + +##### pattern + +`string` + +##### custom? + +`boolean` = `true` + +#### Returns + +`Promise`\<`boolean`\> + +*** + +### configureSemanticThreshold() + +> **configureSemanticThreshold**(`threshold`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:1030](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L1030) + +#### Parameters + +##### threshold + +`number` + +#### Returns + +`Promise`\<`void`\> + +*** + +### detect() + +> **detect**(`content`, `ipAddress`, `context?`, `correlationId?`, `options?`): `Promise`\<`DetectionResult`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:712](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L712) + +#### Parameters + +##### content + +`string` + +##### ipAddress + +`string` + +##### context? + +`string` = `'unknown'` + +##### correlationId? + +`string` \| `null` + +##### options? + +###### scanTime? + +`ScanTimeBudget` + +###### semanticExcludedHeaders? + +`ReadonlySet`\<`string`\> + +###### skipCategories? + +`ReadonlySet`\<`string`\> + +#### Returns + +`Promise`\<`DetectionResult`\> + +*** + +### detectPatternMatch() + +> **detectPatternMatch**(`content`, `ipAddress`, `context?`, `correlationId?`): `Promise`\<\[`boolean`, `string` \| `null`\]\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:905](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L905) + +#### Parameters + +##### content + +`string` + +##### ipAddress + +`string` + +##### context? + +`string` = `'unknown'` + +##### correlationId? + +`string` \| `null` + +#### Returns + +`Promise`\<\[`boolean`, `string` \| `null`\]\> + +*** + +### getAllPatterns() + +> **getAllPatterns**(): `string`[] + +Defined in: [packages/core/src/handlers/sus-patterns.ts:997](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L997) + +#### Returns + +`string`[] + +*** + +### getComponentStatus() + +> **getComponentStatus**(): `Record`\<`string`, `boolean`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:1021](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L1021) + +#### Returns + +`Record`\<`string`, `boolean`\> + +*** + +### getCustomPatterns() + +> **getCustomPatterns**(): `string`[] + +Defined in: [packages/core/src/handlers/sus-patterns.ts:993](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L993) + +#### Returns + +`string`[] + +*** + +### getDefaultPatterns() + +> **getDefaultPatterns**(): `string`[] + +Defined in: [packages/core/src/handlers/sus-patterns.ts:989](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L989) + +#### Returns + +`string`[] + +*** + +### getLongestPatternLength() + +> **getLongestPatternLength**(): `number` + +Defined in: [packages/core/src/handlers/sus-patterns.ts:1005](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L1005) + +#### Returns + +`number` + +*** + +### getPerformanceStats() + +> **getPerformanceStats**(): `Promise`\<`Record`\<`string`, `unknown`\> \| `null`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:1013](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L1013) + +#### Returns + +`Promise`\<`Record`\<`string`, `unknown`\> \| `null`\> + +*** + +### initializeAgent() + +> **initializeAgent**(`agentHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:282](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L282) + +#### Parameters + +##### agentHandler + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### initializeRedis() + +> **initializeRedis**(`redisHandler`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:270](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L270) + +#### Parameters + +##### redisHandler + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) + +#### Returns + +`Promise`\<`void`\> + +*** + +### removePattern() + +> **removePattern**(`pattern`): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:961](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L961) + +#### Parameters + +##### pattern + +`string` + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/handlers/sus-patterns.ts:1034](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/sus-patterns.ts#L1034) + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/functions/attachNodeWebSocketGuard.md b/docs/src/content/docs/api/core/src/functions/attachNodeWebSocketGuard.md new file mode 100644 index 0000000..1d29ec0 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/attachNodeWebSocketGuard.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "attachNodeWebSocketGuard" +--- + +> **attachNodeWebSocketGuard**(`server`, `options`): `void` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:117](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L117) + +## Parameters + +### server + +`Server` + +### options + +[`NodeWebSocketGuardOptions`](/guard-core-ts/api/core/src/interfaces/nodewebsocketguardoptions/) + +## Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/functions/buildBlockPayload.md b/docs/src/content/docs/api/core/src/functions/buildBlockPayload.md new file mode 100644 index 0000000..b8a3e25 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/buildBlockPayload.md @@ -0,0 +1,52 @@ +--- +editUrl: false +next: false +prev: false +title: "buildBlockPayload" +--- + +> **buildBlockPayload**(`request`, `checkName`, `reason`, `triggerInfo`, `passiveMode`, `statusCode`, `sensitiveParams`, `sensitiveBodyFields`, `sensitiveHeaders`): `Record`\<`string`, `unknown`\> + +Defined in: [packages/core/src/core/block-events.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L48) + +## Parameters + +### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +### checkName + +`string` + +### reason + +`string` + +### triggerInfo + +`string` + +### passiveMode + +`boolean` + +### statusCode + +`number` \| `null` + +### sensitiveParams + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveBodyFields + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveHeaders + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`Record`\<`string`, `unknown`\> diff --git a/docs/src/content/docs/api/core/src/functions/canonicalizeIp.md b/docs/src/content/docs/api/core/src/functions/canonicalizeIp.md new file mode 100644 index 0000000..7e90ac3 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/canonicalizeIp.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "canonicalizeIp" +--- + +> **canonicalizeIp**(`value`): `string` + +Defined in: [packages/core/src/ip-identity.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/ip-identity.ts#L60) + +## Parameters + +### value + +`string` + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/checkIpAccess.md b/docs/src/content/docs/api/core/src/functions/checkIpAccess.md new file mode 100644 index 0000000..3302f58 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/checkIpAccess.md @@ -0,0 +1,572 @@ +--- +editUrl: false +next: false +prev: false +title: "checkIpAccess" +--- + +> **checkIpAccess**(`ip`, `config`, `geoIpHandler?`, `cloudHandler?`, `options?`): `Promise`\<[`IpAccessResult`](/guard-core-ts/api/core/src/interfaces/ipaccessresult/)\> + +Defined in: [packages/core/src/core/checks/ip-access.ts:82](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/ip-access.ts#L82) + +## Parameters + +### ip + +`string` + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) \| `null` + +### cloudHandler? + +[`CloudHandler`](/guard-core-ts/api/core/src/classes/cloudhandler/) \| `null` + +### options? + +#### skipCountries? + +`boolean` + +#### skipIpLists? + +`boolean` + +## Returns + +`Promise`\<[`IpAccessResult`](/guard-core-ts/api/core/src/interfaces/ipaccessresult/)\> diff --git a/docs/src/content/docs/api/core/src/functions/checkIpCountry.md b/docs/src/content/docs/api/core/src/functions/checkIpCountry.md index b1d24b2..24bb426 100644 --- a/docs/src/content/docs/api/core/src/functions/checkIpCountry.md +++ b/docs/src/content/docs/api/core/src/functions/checkIpCountry.md @@ -7,7 +7,7 @@ title: "checkIpCountry" > **checkIpCountry**(`ip`, `config`, `geoIpHandler`): `Promise`\<`boolean`\> -Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L121) +Defined in: [packages/core/src/utils.ts:417](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L417) ## Parameters @@ -21,10 +21,26 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `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` = `...` @@ -49,10 +93,26 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [core/src/utils.ts:121](https://github.com/Guard-Core/guard-core-ts/ `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`[] = `...` diff --git a/docs/src/content/docs/api/core/src/functions/checkRateLimitByIp.md b/docs/src/content/docs/api/core/src/functions/checkRateLimitByIp.md new file mode 100644 index 0000000..75cb293 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/checkRateLimitByIp.md @@ -0,0 +1,562 @@ +--- +editUrl: false +next: false +prev: false +title: "checkRateLimitByIp" +--- + +> **checkRateLimitByIp**(`ip`, `config`, `redisHandler?`, `endpointPath?`): `Promise`\<`boolean`\> + +Defined in: [packages/core/src/handlers/rate-limit-by-ip.ts:225](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/handlers/rate-limit-by-ip.ts#L225) + +## Parameters + +### ip + +`string` + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +### redisHandler? + +[`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) \| `null` + +### endpointPath? + +`string` = `''` + +## Returns + +`Promise`\<`boolean`\> diff --git a/docs/src/content/docs/api/core/src/functions/detectPenetrationAttempt.md b/docs/src/content/docs/api/core/src/functions/detectPenetrationAttempt.md index 60954e6..46c3f3d 100644 --- a/docs/src/content/docs/api/core/src/functions/detectPenetrationAttempt.md +++ b/docs/src/content/docs/api/core/src/functions/detectPenetrationAttempt.md @@ -5,9 +5,14 @@ prev: false title: "detectPenetrationAttempt" --- -> **detectPenetrationAttempt**(`request`): `Promise`\<\[`boolean`, `string`\]\> +> **detectPenetrationAttempt**(`request`): `Promise`\<\[`boolean`, `string`, `string`[]\]\> -Defined in: [core/src/utils.ts:195](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L195) +Defined in: [packages/core/src/utils.ts:1108](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L1108) + +Standalone penetration detection entry point (public API). Runs the full +SusPatternsManager engine over the request surface on a shared default +manager; the live middleware path feeds the initializer's manager into +scanRequestWithManager directly via SuspiciousActivityCheck. ## Parameters @@ -17,4 +22,4 @@ Defined in: [core/src/utils.ts:195](https://github.com/Guard-Core/guard-core-ts/ ## Returns -`Promise`\<\[`boolean`, `string`\]\> +`Promise`\<\[`boolean`, `string`, `string`[]\]\> diff --git a/docs/src/content/docs/api/core/src/functions/disabledCategoriesOf.md b/docs/src/content/docs/api/core/src/functions/disabledCategoriesOf.md new file mode 100644 index 0000000..a86ae99 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/disabledCategoriesOf.md @@ -0,0 +1,25 @@ +--- +editUrl: false +next: false +prev: false +title: "disabledCategoriesOf" +--- + +> **disabledCategoriesOf**(`exclusions`): `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:129](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L129) + +Categories that must not produce a threat for this request: the + complement of the resolved enabled set (empty when every category + scans). The scanners fold this into their per-value skip sets, matching + the reference's per-category pattern gating. + +## Parameters + +### exclusions + +[`ResolvedDetectionExclusions`](/guard-core-ts/api/core/src/interfaces/resolveddetectionexclusions/) + +## Returns + +`ReadonlySet`\<`string`\> diff --git a/docs/src/content/docs/api/core/src/functions/extractClientIp.md b/docs/src/content/docs/api/core/src/functions/extractClientIp.md index 1f41db8..d13859e 100644 --- a/docs/src/content/docs/api/core/src/functions/extractClientIp.md +++ b/docs/src/content/docs/api/core/src/functions/extractClientIp.md @@ -7,7 +7,7 @@ title: "extractClientIp" > **extractClientIp**(`request`, `config`, `agentHandler?`): `Promise`\<`string`\> -Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L80) +Defined in: [packages/core/src/utils.ts:335](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L335) ## Parameters @@ -21,10 +21,26 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `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` = `...` @@ -49,10 +93,26 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [core/src/utils.ts:80](https://github.com/Guard-Core/guard-core-ts/b `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`[] = `...` diff --git a/docs/src/content/docs/api/core/src/functions/fireBlockHook.md b/docs/src/content/docs/api/core/src/functions/fireBlockHook.md new file mode 100644 index 0000000..7d68cb2 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/fireBlockHook.md @@ -0,0 +1,60 @@ +--- +editUrl: false +next: false +prev: false +title: "fireBlockHook" +--- + +> **fireBlockHook**(`hook`, `request`, `logger`, `checkName`, `reason`, `triggerInfo`, `passiveMode`, `statusCode`, `sensitiveParams`, `sensitiveBodyFields`, `sensitiveHeaders`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/block-events.ts:76](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L76) + +## Parameters + +### hook + +[`OnBlockHook`](/guard-core-ts/api/core/src/type-aliases/onblockhook/) \| `null` \| `undefined` + +### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +### checkName + +`string` + +### reason + +`string` + +### triggerInfo + +`string` + +### passiveMode + +`boolean` + +### statusCode + +`number` \| `null` + +### sensitiveParams + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveBodyFields + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveHeaders + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/functions/formatTextLog.md b/docs/src/content/docs/api/core/src/functions/formatTextLog.md new file mode 100644 index 0000000..8686558 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/formatTextLog.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "formatTextLog" +--- + +> **formatTextLog**(`record`): `string` + +Defined in: [packages/core/src/models/logger-setup.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L46) + +## Parameters + +### record + +[`LogRecord`](/guard-core-ts/api/core/src/interfaces/logrecord/) + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/getRouteDecoratorConfig.md b/docs/src/content/docs/api/core/src/functions/getRouteDecoratorConfig.md index ba00d29..84c2e4c 100644 --- a/docs/src/content/docs/api/core/src/functions/getRouteDecoratorConfig.md +++ b/docs/src/content/docs/api/core/src/functions/getRouteDecoratorConfig.md @@ -7,7 +7,7 @@ title: "getRouteDecoratorConfig" > **getRouteDecoratorConfig**(`request`, `decoratorHandler`): [`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) \| `undefined` -Defined in: [core/src/decorators/base.ts:123](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/base.ts#L123) +Defined in: [packages/core/src/decorators/base.ts:151](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/base.ts#L151) ## Parameters diff --git a/docs/src/content/docs/api/core/src/functions/guardWebSocketUpgrade.md b/docs/src/content/docs/api/core/src/functions/guardWebSocketUpgrade.md new file mode 100644 index 0000000..1941426 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/guardWebSocketUpgrade.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "guardWebSocketUpgrade" +--- + +> **guardWebSocketUpgrade**(`request`, `components`): `Promise`\<[`WebSocketGuardVerdict`](/guard-core-ts/api/core/src/type-aliases/websocketguardverdict/)\> + +Defined in: [packages/core/src/core/websocket-guard.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L55) + +## Parameters + +### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +### components + +[`SecurityMiddlewareComponents`](/guard-core-ts/api/core/src/interfaces/securitymiddlewarecomponents/) + +## Returns + +`Promise`\<[`WebSocketGuardVerdict`](/guard-core-ts/api/core/src/type-aliases/websocketguardverdict/)\> diff --git a/docs/src/content/docs/api/core/src/functions/initializeSecurityMiddleware.md b/docs/src/content/docs/api/core/src/functions/initializeSecurityMiddleware.md index 7c678db..72799ec 100644 --- a/docs/src/content/docs/api/core/src/functions/initializeSecurityMiddleware.md +++ b/docs/src/content/docs/api/core/src/functions/initializeSecurityMiddleware.md @@ -7,7 +7,7 @@ title: "initializeSecurityMiddleware" > **initializeSecurityMiddleware**(`config`, `logger`, `guardResponseFactory`, `agentHandler?`, `geoIpHandler?`, `guardDecorator?`): `Promise`\<[`SecurityMiddlewareComponents`](/guard-core-ts/api/core/src/interfaces/securitymiddlewarecomponents/)\> -Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L52) +Defined in: [packages/core/src/middleware-support.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L53) ## Parameters @@ -17,10 +17,26 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -37,6 +53,34 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `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` = `...` @@ -45,10 +89,26 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -57,6 +117,14 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -73,6 +141,14 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -117,30 +193,74 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -149,10 +269,18 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -169,18 +297,38 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -197,10 +345,38 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -209,6 +385,30 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -221,10 +421,54 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -237,18 +481,50 @@ Defined in: [core/src/middleware-support.ts:52](https://github.com/Guard-Core/gu `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`[] = `...` diff --git a/docs/src/content/docs/api/core/src/functions/invokeBlockHook.md b/docs/src/content/docs/api/core/src/functions/invokeBlockHook.md new file mode 100644 index 0000000..3bd76f3 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/invokeBlockHook.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "invokeBlockHook" +--- + +> **invokeBlockHook**(`hook`, `request`, `payload`, `logger`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/block-events.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L31) + +## Parameters + +### hook + +[`OnBlockHook`](/guard-core-ts/api/core/src/type-aliases/onblockhook/) \| `null` \| `undefined` + +### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +### payload + +`Record`\<`string`, `unknown`\> + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +## Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/functions/invokeErrorHook.md b/docs/src/content/docs/api/core/src/functions/invokeErrorHook.md new file mode 100644 index 0000000..6555326 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/invokeErrorHook.md @@ -0,0 +1,36 @@ +--- +editUrl: false +next: false +prev: false +title: "invokeErrorHook" +--- + +> **invokeErrorHook**(`hook`, `stage`, `error`, `context`, `logger`): `void` + +Defined in: [packages/core/src/core/block-events.ts:99](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L99) + +## Parameters + +### hook + +[`OnErrorHook`](/guard-core-ts/api/core/src/type-aliases/onerrorhook/) \| `null` \| `undefined` + +### stage + +`string` + +### error + +`unknown` + +### context + +`Record`\<`string`, `unknown`\> + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +## Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/functions/isIpAllowed.md b/docs/src/content/docs/api/core/src/functions/isIpAllowed.md index f9ef8ab..fb9d6ee 100644 --- a/docs/src/content/docs/api/core/src/functions/isIpAllowed.md +++ b/docs/src/content/docs/api/core/src/functions/isIpAllowed.md @@ -7,7 +7,7 @@ title: "isIpAllowed" > **isIpAllowed**(`ip`, `config`, `geoIpHandler?`): `Promise`\<`boolean`\> -Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L150) +Defined in: [packages/core/src/utils.ts:470](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L470) ## Parameters @@ -21,10 +21,26 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `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` = `...` @@ -49,10 +93,26 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [core/src/utils.ts:150](https://github.com/Guard-Core/guard-core-ts/ `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`[] = `...` diff --git a/docs/src/content/docs/api/core/src/functions/isUserAgentAllowed.md b/docs/src/content/docs/api/core/src/functions/isUserAgentAllowed.md index 3aa8274..df6591d 100644 --- a/docs/src/content/docs/api/core/src/functions/isUserAgentAllowed.md +++ b/docs/src/content/docs/api/core/src/functions/isUserAgentAllowed.md @@ -7,7 +7,7 @@ title: "isUserAgentAllowed" > **isUserAgentAllowed**(`userAgent`, `config`): `Promise`\<`boolean`\> -Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L111) +Defined in: [packages/core/src/utils.ts:373](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L373) ## Parameters @@ -21,10 +21,26 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `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` = `...` @@ -49,10 +93,26 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/ `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`[] = `...` diff --git a/docs/src/content/docs/api/core/src/functions/logActivity.md b/docs/src/content/docs/api/core/src/functions/logActivity.md index f515f61..c5bb27e 100644 --- a/docs/src/content/docs/api/core/src/functions/logActivity.md +++ b/docs/src/content/docs/api/core/src/functions/logActivity.md @@ -5,9 +5,9 @@ prev: false title: "logActivity" --- -> **logActivity**(`request`, `logger`, `logType?`, `reason?`, `passiveMode?`, `triggerInfo?`, `level?`): `void` +> **logActivity**(`request`, `logger`, `logType?`, `reason?`, `passiveMode?`, `triggerInfo?`, `level?`, `hooks?`): `void` -Defined in: [core/src/utils.ts:316](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L316) +Defined in: [packages/core/src/utils.ts:1115](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L1115) ## Parameters @@ -39,6 +39,32 @@ Defined in: [core/src/utils.ts:316](https://github.com/Guard-Core/guard-core-ts/ `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +### hooks? + +#### checkName? + +`string` + +#### mutedCheckLogs? + +`ReadonlySet`\<`string`\> \| `null` + +#### onBlock? + +((`request`, `payload`) => `unknown`) \| `null` + +#### sensitiveBodyFields? + +`Iterable`\<`string`, `any`, `any`\> \| `null` + +#### sensitiveHeaders? + +`Iterable`\<`string`, `any`, `any`\> \| `null` + +#### sensitiveParams? + +`Iterable`\<`string`, `any`, `any`\> \| `null` + ## Returns `void` diff --git a/docs/src/content/docs/api/core/src/functions/mergeSensitiveNames.md b/docs/src/content/docs/api/core/src/functions/mergeSensitiveNames.md new file mode 100644 index 0000000..21db56d --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/mergeSensitiveNames.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "mergeSensitiveNames" +--- + +> **mergeSensitiveNames**(`defaults`, `extra`): `Set`\<`string`\> + +Defined in: [packages/core/src/redaction.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L47) + +## Parameters + +### defaults + +`ReadonlySet`\<`string`\> + +### extra + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`Set`\<`string`\> diff --git a/docs/src/content/docs/api/core/src/functions/normalizeExcludePaths.md b/docs/src/content/docs/api/core/src/functions/normalizeExcludePaths.md new file mode 100644 index 0000000..5f5277f --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/normalizeExcludePaths.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeExcludePaths" +--- + +> **normalizeExcludePaths**(`excludePaths`): `string`[] + +Defined in: [packages/core/src/core/validation/path-matching.ts:109](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/path-matching.ts#L109) + +Normalize every configured exclusion; undecodable entries drop out + (reference normalize_exclude_paths). + +## Parameters + +### excludePaths + +readonly `string`[] + +## Returns + +`string`[] diff --git a/docs/src/content/docs/api/core/src/functions/normalizeUrlPath.md b/docs/src/content/docs/api/core/src/functions/normalizeUrlPath.md new file mode 100644 index 0000000..91c590f --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/normalizeUrlPath.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "normalizeUrlPath" +--- + +> **normalizeUrlPath**(`rawPath`): `string` \| `null` + +Defined in: [packages/core/src/core/validation/path-matching.ts:96](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/path-matching.ts#L96) + +Normalize a raw URL path: recursive percent-decode (4 rounds max) + + dot-segment collapse. Returns null when the path is not decodable + (invalid UTF-8 escape or leftover %XX run after the rounds). + +## Parameters + +### rawPath + +`string` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/core/src/functions/parseContentLength.md b/docs/src/content/docs/api/core/src/functions/parseContentLength.md new file mode 100644 index 0000000..400e2dc --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/parseContentLength.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "parseContentLength" +--- + +> **parseContentLength**(`value`): `number` \| `null` + +Defined in: [packages/core/src/core/bounded-body-reader.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L24) + +## Parameters + +### value + +`string` + +## Returns + +`number` \| `null` diff --git a/docs/src/content/docs/api/core/src/functions/pathIsExcluded.md b/docs/src/content/docs/api/core/src/functions/pathIsExcluded.md new file mode 100644 index 0000000..58417ca --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/pathIsExcluded.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "pathIsExcluded" +--- + +> **pathIsExcluded**(`urlPath`, `excludePaths`): `boolean` + +Defined in: [packages/core/src/core/validation/path-matching.ts:126](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/path-matching.ts#L126) + +One-shot helper: normalize the request path and the configured + exclusions, then subtree-match (reference path_is_excluded). + +## Parameters + +### urlPath + +`string` + +### excludePaths + +readonly `string`[] + +## Returns + +`boolean` diff --git a/docs/src/content/docs/api/core/src/functions/pathMatchesExclusions.md b/docs/src/content/docs/api/core/src/functions/pathMatchesExclusions.md new file mode 100644 index 0000000..09b2758 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/pathMatchesExclusions.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "pathMatchesExclusions" +--- + +> **pathMatchesExclusions**(`normalizedPath`, `normalizedExclusions`): `boolean` + +Defined in: [packages/core/src/core/validation/path-matching.ts:120](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/validation/path-matching.ts#L120) + +Subtree-or-equal matching of an already-normalized path against + already-normalized exclusions (reference path_matches_exclusions). + +## Parameters + +### normalizedPath + +`string` + +### normalizedExclusions + +readonly `string`[] + +## Returns + +`boolean` diff --git a/docs/src/content/docs/api/core/src/functions/readCappedBody.md b/docs/src/content/docs/api/core/src/functions/readCappedBody.md new file mode 100644 index 0000000..eb199bf --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/readCappedBody.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "readCappedBody" +--- + +> **readCappedBody**(`request`, `deps`, `clientIp?`): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\> \| `null`\> + +Defined in: [packages/core/src/core/bounded-body-reader.ts:186](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L186) + +Read the request body under the detection caps. Returns null when the + body is unavailable (timeout, budget exhaustion, read error, or an + oversized body without a bounded reader on the request). + +## Parameters + +### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +### deps + +[`BoundedBodyReaderDeps`](/guard-core-ts/api/core/src/interfaces/boundedbodyreaderdeps/) + +### clientIp? + +`string` = `''` + +## Returns + +`Promise`\<`Uint8Array`\<`ArrayBufferLike`\> \| `null`\> diff --git a/docs/src/content/docs/api/core/src/functions/redactBlobForDisplay.md b/docs/src/content/docs/api/core/src/functions/redactBlobForDisplay.md new file mode 100644 index 0000000..3ee01fc --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/redactBlobForDisplay.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "redactBlobForDisplay" +--- + +> **redactBlobForDisplay**(`text`, `sensitiveParams`, `sensitiveBodyFields`, `sensitiveHeaders`): `string` + +Defined in: [packages/core/src/redaction.ts:235](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L235) + +## Parameters + +### text + +`string` + +### sensitiveParams + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveBodyFields + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveHeaders + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/redactEndpointForDisplay.md b/docs/src/content/docs/api/core/src/functions/redactEndpointForDisplay.md new file mode 100644 index 0000000..b869fee --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/redactEndpointForDisplay.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "redactEndpointForDisplay" +--- + +> **redactEndpointForDisplay**(`value`, `sensitiveParams`, `sensitiveBodyFields`, `sensitiveHeaders`): `string` + +Defined in: [packages/core/src/redaction.ts:378](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L378) + +## Parameters + +### value + +`string` + +### sensitiveParams + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveBodyFields + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveHeaders + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/redactHeaderValueForDisplay.md b/docs/src/content/docs/api/core/src/functions/redactHeaderValueForDisplay.md new file mode 100644 index 0000000..8bc4030 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/redactHeaderValueForDisplay.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "redactHeaderValueForDisplay" +--- + +> **redactHeaderValueForDisplay**(`value`, `sensitiveParams`, `sensitiveBodyFields`, `sensitiveHeaders`): `string` + +Defined in: [packages/core/src/redaction.ts:388](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L388) + +## Parameters + +### value + +`string` + +### sensitiveParams + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveBodyFields + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveHeaders + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/redactPairsInText.md b/docs/src/content/docs/api/core/src/functions/redactPairsInText.md new file mode 100644 index 0000000..2f3a404 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/redactPairsInText.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "redactPairsInText" +--- + +> **redactPairsInText**(`text`, `sensitive`): `string` + +Defined in: [packages/core/src/redaction.ts:172](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L172) + +## Parameters + +### text + +`string` + +### sensitive + +`ReadonlySet`\<`string`\> + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/redactUrlForDisplay.md b/docs/src/content/docs/api/core/src/functions/redactUrlForDisplay.md new file mode 100644 index 0000000..767dc7d --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/redactUrlForDisplay.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "redactUrlForDisplay" +--- + +> **redactUrlForDisplay**(`url`, `sensitiveParams`, `sensitiveBodyFields`, `sensitiveHeaders`): `string` + +Defined in: [packages/core/src/redaction.ts:271](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L271) + +## Parameters + +### url + +`string` + +### sensitiveParams + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveBodyFields + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +### sensitiveHeaders + +`Iterable`\<`string`, `any`, `any`\> \| `null` \| `undefined` + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/requestClientIp.md b/docs/src/content/docs/api/core/src/functions/requestClientIp.md new file mode 100644 index 0000000..3312a3b --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/requestClientIp.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "requestClientIp" +--- + +> **requestClientIp**(`request`): `string` + +Defined in: [packages/core/src/core/client-identity.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/client-identity.ts#L25) + +## Parameters + +### request + +#### clientHost + +`string` \| `null` + +#### state + +`Record`\<`string`, `unknown`\> + +## Returns + +`string` diff --git a/docs/src/content/docs/api/core/src/functions/resetBodyReadConcurrency.md b/docs/src/content/docs/api/core/src/functions/resetBodyReadConcurrency.md new file mode 100644 index 0000000..bb894e2 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/resetBodyReadConcurrency.md @@ -0,0 +1,16 @@ +--- +editUrl: false +next: false +prev: false +title: "resetBodyReadConcurrency" +--- + +> **resetBodyReadConcurrency**(): `void` + +Defined in: [packages/core/src/core/bounded-body-reader.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L47) + +Test-only: reset the budget to the default and release queued waiters. + +## Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/functions/resolveConfiguredLogger.md b/docs/src/content/docs/api/core/src/functions/resolveConfiguredLogger.md new file mode 100644 index 0000000..20fa659 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/resolveConfiguredLogger.md @@ -0,0 +1,553 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveConfiguredLogger" +--- + +> **resolveConfiguredLogger**(`config`): `Promise`\<[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/)\> + +Defined in: [packages/core/src/models/logger-setup.ts:165](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L165) + +Adapter-side logger resolution (D5): make the logFormat / customLogFile + config fields live. An explicitly injected config.logger always wins. + +## Parameters + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +## Returns + +`Promise`\<[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/)\> diff --git a/docs/src/content/docs/api/core/src/functions/resolveDetectionExclusions.md b/docs/src/content/docs/api/core/src/functions/resolveDetectionExclusions.md new file mode 100644 index 0000000..b2c1c8e --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/resolveDetectionExclusions.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveDetectionExclusions" +--- + +> **resolveDetectionExclusions**(`config`, `route`): [`ResolvedDetectionExclusions`](/guard-core-ts/api/core/src/interfaces/resolveddetectionexclusions/) + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L37) + +## Parameters + +### config + +\{ `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`; `authVerifier?`: (`request`, `credential`) => `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`; `customRequestCheck?`: (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\>; `customResponseModifier?`: (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\>; `detectionAnomalyEmissionCooldown`: `number`; `detectionAnomalyThreshold`: `number`; `detectionBinaryMinRunLength`: `number`; `detectionCompilerTimeout`: `number`; `detectionMaxBodyInspectBytes`: `number`; `detectionMaxContentLength`: `number`; `detectionMaxJsonDepth`: `number`; `detectionMaxScanChars`: `number`; `detectionMaxScanSeconds`: `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`[]; `excludedSemanticDetectionHeaders`: `string`[]; `excludePaths`: `string`[]; `exemptIps`: `string`[]; `failSecure`: `boolean`; `geoIpDbMaxAge`: `number`; `geoIpHandler?`: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/); `geoResolver?`: (`ip`) => `string` \| `null`; `globalBehaviorRules`: `object`[]; `ipinfoDbPath`: `string`; `ipinfoToken`: `string` \| `null`; `lazyInit`: `boolean`; `logCountryCheckLevel`: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null`; `logfireServiceName`: `string`; `logFormat`: `"text"` \| `"json"`; `logger?`: [`Logger`](/guard-core-ts/api/core/src/interfaces/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`[]; `onBlock?`: (`request`, `payload`) => `unknown`; `onError?`: (`stage`, `error`, `context`) => `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`[]; \} \| `null` + +### route + +[`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) \| `null` + +## Returns + +[`ResolvedDetectionExclusions`](/guard-core-ts/api/core/src/interfaces/resolveddetectionexclusions/) diff --git a/docs/src/content/docs/api/core/src/functions/sanitizeForLog.md b/docs/src/content/docs/api/core/src/functions/sanitizeForLog.md index f805aa3..a3b33be 100644 --- a/docs/src/content/docs/api/core/src/functions/sanitizeForLog.md +++ b/docs/src/content/docs/api/core/src/functions/sanitizeForLog.md @@ -7,7 +7,13 @@ title: "sanitizeForLog" > **sanitizeForLog**(`value`): `string` -Defined in: [core/src/utils.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L15) +Defined in: [packages/core/src/utils.ts:111](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L111) + +Port of guard_core._utils.logging_utils._sanitize_for_log: make a string +safe to emit on any console encoding. Control characters become \uXXXX +escapes and every non-ASCII code point becomes a \uXXXX (or \xNN for +surrogate-escaped bytes in the 0xDC80-0xDCFF range) escape, so the result +is pure ASCII and can never raise on legacy code pages such as cp1252. ## Parameters diff --git a/docs/src/content/docs/api/core/src/functions/sendAgentEvent.md b/docs/src/content/docs/api/core/src/functions/sendAgentEvent.md index 40d54d9..76dc80b 100644 --- a/docs/src/content/docs/api/core/src/functions/sendAgentEvent.md +++ b/docs/src/content/docs/api/core/src/functions/sendAgentEvent.md @@ -7,7 +7,7 @@ title: "sendAgentEvent" > **sendAgentEvent**(`agentHandler`, `eventType`, `ipAddress`, `actionTaken`, `reason`, `request?`, `metadata?`): `Promise`\<`void`\> -Defined in: [core/src/utils.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/utils.ts#L25) +Defined in: [packages/core/src/utils.ts:137](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/utils.ts#L137) ## Parameters diff --git a/docs/src/content/docs/api/core/src/functions/setBodyReadConcurrencyLimit.md b/docs/src/content/docs/api/core/src/functions/setBodyReadConcurrencyLimit.md new file mode 100644 index 0000000..f38ef79 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/setBodyReadConcurrencyLimit.md @@ -0,0 +1,25 @@ +--- +editUrl: false +next: false +prev: false +title: "setBodyReadConcurrencyLimit" +--- + +> **setBodyReadConcurrencyLimit**(`limit`): `void` + +Defined in: [packages/core/src/core/bounded-body-reader.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L42) + +Update the process-wide in-flight read budget. Called from readCappedBody + with the resolved config's bodyReadMaxConcurrent: the last config seen + wins, which is deterministic for the single-config-per-process case the + family ships. + +## Parameters + +### limit + +`number` + +## Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/functions/setupCustomLogging.md b/docs/src/content/docs/api/core/src/functions/setupCustomLogging.md new file mode 100644 index 0000000..36f6c6f --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/setupCustomLogging.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "setupCustomLogging" +--- + +> **setupCustomLogging**(`options?`): `Promise`\<[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/)\> + +Defined in: [packages/core/src/models/logger-setup.ts:119](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L119) + +## Parameters + +### options? + +[`CustomLoggingOptions`](/guard-core-ts/api/core/src/interfaces/customloggingoptions/) = `{}` + +## Returns + +`Promise`\<[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/)\> diff --git a/docs/src/content/docs/api/core/src/functions/straddleOverlapBytes.md b/docs/src/content/docs/api/core/src/functions/straddleOverlapBytes.md new file mode 100644 index 0000000..693c805 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/straddleOverlapBytes.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "straddleOverlapBytes" +--- + +> **straddleOverlapBytes**(`longestPatternLength`): `Promise`\<`number`\> + +Defined in: [packages/core/src/core/bounded-body-reader.ts:111](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L111) + +## Parameters + +### longestPatternLength + +`number` \| `null` \| `undefined` + +## Returns + +`Promise`\<`number`\> diff --git a/docs/src/content/docs/api/core/src/functions/threatScoreFor.md b/docs/src/content/docs/api/core/src/functions/threatScoreFor.md new file mode 100644 index 0000000..a40f385 --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/threatScoreFor.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "threatScoreFor" +--- + +> **threatScoreFor**(`eventType`): `number` + +Defined in: [packages/core/src/core/events/enricher.ts:100](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L100) + +## Parameters + +### eventType + +`string` + +## Returns + +`number` diff --git a/docs/src/content/docs/api/core/src/functions/toAgentConfig.md b/docs/src/content/docs/api/core/src/functions/toAgentConfig.md new file mode 100644 index 0000000..e64ee8b --- /dev/null +++ b/docs/src/content/docs/api/core/src/functions/toAgentConfig.md @@ -0,0 +1,555 @@ +--- +editUrl: false +next: false +prev: false +title: "toAgentConfig" +--- + +> **toAgentConfig**(`config`): [`SecurityAgentConfigInput`](/guard-core-ts/api/core/src/interfaces/securityagentconfiginput/) \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:66](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L66) + +The twin of SecurityConfig.to_agent_config: null when enableAgent is off +or agentApiKey is unset; otherwise the agent constructor input with every +unset tuning field omitted (the reference's None kwarg filter), so the +agent's own defaults apply. + +## Parameters + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +## Returns + +[`SecurityAgentConfigInput`](/guard-core-ts/api/core/src/interfaces/securityagentconfiginput/) \| `null` diff --git a/docs/src/content/docs/api/core/src/interfaces/AgentEventEnricher.md b/docs/src/content/docs/api/core/src/interfaces/AgentEventEnricher.md new file mode 100644 index 0000000..65716bb --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/AgentEventEnricher.md @@ -0,0 +1,44 @@ +--- +editUrl: false +next: false +prev: false +title: "AgentEventEnricher" +--- + +Defined in: [packages/core/src/core/events/event-filter.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L43) + +## Methods + +### enrichEvent() + +> **enrichEvent**(`event`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/event-filter.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L44) + +#### Parameters + +##### event + +`unknown` + +#### Returns + +`Promise`\<`void`\> + +*** + +### enrichMetric() + +> **enrichMetric**(`metric`): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/event-filter.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L45) + +#### Parameters + +##### metric + +`unknown` + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/interfaces/AgentHandlerProtocol.md b/docs/src/content/docs/api/core/src/interfaces/AgentHandlerProtocol.md index c8c0c20..54e9765 100644 --- a/docs/src/content/docs/api/core/src/interfaces/AgentHandlerProtocol.md +++ b/docs/src/content/docs/api/core/src/interfaces/AgentHandlerProtocol.md @@ -5,7 +5,7 @@ prev: false title: "AgentHandlerProtocol" --- -Defined in: [core/src/protocols/agent.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L3) +Defined in: [packages/core/src/protocols/agent.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L3) ## Methods @@ -13,7 +13,7 @@ Defined in: [core/src/protocols/agent.ts:3](https://github.com/Guard-Core/guard- > **flushBuffer**(): `Promise`\<`void`\> -Defined in: [core/src/protocols/agent.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L9) +Defined in: [packages/core/src/protocols/agent.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L9) #### Returns @@ -25,7 +25,7 @@ Defined in: [core/src/protocols/agent.ts:9](https://github.com/Guard-Core/guard- > **getDynamicRules**(): `Promise`\<`unknown`\> -Defined in: [core/src/protocols/agent.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L10) +Defined in: [packages/core/src/protocols/agent.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L10) #### Returns @@ -37,7 +37,7 @@ Defined in: [core/src/protocols/agent.ts:10](https://github.com/Guard-Core/guard > **healthCheck**(): `Promise`\<`boolean`\> -Defined in: [core/src/protocols/agent.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L11) +Defined in: [packages/core/src/protocols/agent.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L11) #### Returns @@ -49,7 +49,7 @@ Defined in: [core/src/protocols/agent.ts:11](https://github.com/Guard-Core/guard > **initializeRedis**(`redisHandler`): `Promise`\<`void`\> -Defined in: [core/src/protocols/agent.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L4) +Defined in: [packages/core/src/protocols/agent.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L4) #### Parameters @@ -67,7 +67,7 @@ Defined in: [core/src/protocols/agent.ts:4](https://github.com/Guard-Core/guard- > **sendEvent**(`event`): `Promise`\<`void`\> -Defined in: [core/src/protocols/agent.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L5) +Defined in: [packages/core/src/protocols/agent.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L5) #### Parameters @@ -85,7 +85,7 @@ Defined in: [core/src/protocols/agent.ts:5](https://github.com/Guard-Core/guard- > **sendMetric**(`metric`): `Promise`\<`void`\> -Defined in: [core/src/protocols/agent.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L6) +Defined in: [packages/core/src/protocols/agent.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L6) #### Parameters @@ -103,7 +103,7 @@ Defined in: [core/src/protocols/agent.ts:6](https://github.com/Guard-Core/guard- > **start**(): `Promise`\<`void`\> -Defined in: [core/src/protocols/agent.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L7) +Defined in: [packages/core/src/protocols/agent.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L7) #### Returns @@ -115,7 +115,7 @@ Defined in: [core/src/protocols/agent.ts:7](https://github.com/Guard-Core/guard- > **stop**(): `Promise`\<`void`\> -Defined in: [core/src/protocols/agent.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/agent.ts#L8) +Defined in: [packages/core/src/protocols/agent.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/agent.ts#L8) #### Returns diff --git a/docs/src/content/docs/api/core/src/interfaces/BehaviorCounter.md b/docs/src/content/docs/api/core/src/interfaces/BehaviorCounter.md new file mode 100644 index 0000000..5bc325a --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/BehaviorCounter.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "BehaviorCounter" +--- + +Defined in: [packages/core/src/core/events/enricher.ts:128](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L128) + +## Methods + +### getRecentEventCount() + +> **getRecentEventCount**(`ip`, `windowSeconds`): `number` + +Defined in: [packages/core/src/core/events/enricher.ts:129](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L129) + +#### Parameters + +##### ip + +`string` + +##### windowSeconds + +`number` + +#### Returns + +`number` diff --git a/docs/src/content/docs/api/core/src/interfaces/BoundedBodyReaderDeps.md b/docs/src/content/docs/api/core/src/interfaces/BoundedBodyReaderDeps.md new file mode 100644 index 0000000..f07d29f --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/BoundedBodyReaderDeps.md @@ -0,0 +1,643 @@ +--- +editUrl: false +next: false +prev: false +title: "BoundedBodyReaderDeps" +--- + +Defined in: [packages/core/src/core/bounded-body-reader.ts:175](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L175) + +## Properties + +### config? + +> `optional` **config?**: `object` + +Defined in: [packages/core/src/core/bounded-body-reader.ts:176](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L176) + +#### agentApiKey + +> **agentApiKey**: `string` \| `null` + +#### agentBackoffFactor + +> **agentBackoffFactor**: `number` \| `null` + +#### agentBufferOverflowPolicy + +> **agentBufferOverflowPolicy**: `"drop"` \| `"block"` \| `"raise"` \| `null` + +#### agentBufferSize + +> **agentBufferSize**: `number` + +#### agentCompressionEnabled + +> **agentCompressionEnabled**: `boolean` \| `null` + +#### agentCompressionThreshold + +> **agentCompressionThreshold**: `number` \| `null` + +#### agentEnableEvents + +> **agentEnableEvents**: `boolean` + +#### agentEnableMetrics + +> **agentEnableMetrics**: `boolean` + +#### agentEndpoint + +> **agentEndpoint**: `string` + +#### agentFlushInterval + +> **agentFlushInterval**: `number` + +#### agentGuardVersion + +> **agentGuardVersion**: `string` \| `null` + +#### agentHighWatermarkRatio + +> **agentHighWatermarkRatio**: `number` \| `null` + +#### agentInstallId + +> **agentInstallId**: `string` \| `null` + +#### agentMaxConcurrentFlushes + +> **agentMaxConcurrentFlushes**: `number` \| `null` + +#### agentMaxPayloadSize + +> **agentMaxPayloadSize**: `number` \| `null` + +#### agentPayloadSigningSecret + +> **agentPayloadSigningSecret**: `string` \| `null` + +#### agentProjectEncryptionKey + +> **agentProjectEncryptionKey**: `string` \| `null` + +#### agentProjectId + +> **agentProjectId**: `string` \| `null` + +#### agentRetryAttempts + +> **agentRetryAttempts**: `number` + +#### agentSensitiveHeaders + +> **agentSensitiveHeaders**: `string`[] \| `null` + +#### agentStatusInterval + +> **agentStatusInterval**: `number` + +#### agentStrict + +> **agentStrict**: `boolean` + +#### agentTimeout + +> **agentTimeout**: `number` + +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + +#### autoBanDuration + +> **autoBanDuration**: `number` + +#### autoBanThreshold + +> **autoBanThreshold**: `number` + +#### behaviorMaxResponseBodyInspectBytes + +> **behaviorMaxResponseBodyInspectBytes**: `number` + +#### behaviorScanResponseBody + +> **behaviorScanResponseBody**: `boolean` + +#### blacklist + +> **blacklist**: `string`[] + +#### blockCloudProviders + +> **blockCloudProviders**: `Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\> + +#### blockedCountries + +> **blockedCountries**: `string`[] + +#### blockedUserAgents + +> **blockedUserAgents**: `string`[] + +#### bodyReadMaxConcurrent + +> **bodyReadMaxConcurrent**: `number` + +#### bodyReadTimeout + +> **bodyReadTimeout**: `number` + +#### cloudIpRefreshInterval + +> **cloudIpRefreshInterval**: `number` + +#### corsAllowCredentials + +> **corsAllowCredentials**: `boolean` + +#### corsAllowHeaders + +> **corsAllowHeaders**: `string`[] + +#### corsAllowMethods + +> **corsAllowMethods**: `string`[] + +#### corsAllowOrigins + +> **corsAllowOrigins**: `string`[] + +#### corsExposeHeaders + +> **corsExposeHeaders**: `string`[] + +#### corsMaxAge + +> **corsMaxAge**: `number` + +#### customErrorResponses + +> **customErrorResponses**: `Record`\<`number`, `string`\> + +#### customLogFile + +> **customLogFile**: `string` \| `null` + +#### customRequestCheck? + +> `optional` **customRequestCheck?**: (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +##### Parameters + +###### req + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +##### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +#### customResponseModifier? + +> `optional` **customResponseModifier?**: (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +##### Parameters + +###### res + +[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) + +##### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +#### detectionAnomalyEmissionCooldown + +> **detectionAnomalyEmissionCooldown**: `number` + +#### detectionAnomalyThreshold + +> **detectionAnomalyThreshold**: `number` + +#### detectionBinaryMinRunLength + +> **detectionBinaryMinRunLength**: `number` + +#### detectionCompilerTimeout + +> **detectionCompilerTimeout**: `number` + +#### detectionMaxBodyInspectBytes + +> **detectionMaxBodyInspectBytes**: `number` + +#### detectionMaxContentLength + +> **detectionMaxContentLength**: `number` + +#### detectionMaxJsonDepth + +> **detectionMaxJsonDepth**: `number` + +#### detectionMaxScanChars + +> **detectionMaxScanChars**: `number` + +#### detectionMaxScanSeconds + +> **detectionMaxScanSeconds**: `number` + +#### detectionMaxScanValues + +> **detectionMaxScanValues**: `number` + +#### detectionMaxTrackedPatterns + +> **detectionMaxTrackedPatterns**: `number` + +#### detectionMinSamplesForAnomaly + +> **detectionMinSamplesForAnomaly**: `number` + +#### detectionMonitorHistorySize + +> **detectionMonitorHistorySize**: `number` + +#### detectionPatternValidationCachePath + +> **detectionPatternValidationCachePath**: `string` \| `null` + +#### detectionPreserveAttackPatterns + +> **detectionPreserveAttackPatterns**: `boolean` + +#### detectionScanBody + +> **detectionScanBody**: `boolean` + +#### detectionScanWorkerPool + +> **detectionScanWorkerPool**: `boolean` + +#### detectionSemanticThreshold + +> **detectionSemanticThreshold**: `number` + +#### detectionSlowPatternThreshold + +> **detectionSlowPatternThreshold**: `number` + +#### detectionThreatScoreThreshold + +> **detectionThreatScoreThreshold**: `number` + +#### dynamicRuleInterval + +> **dynamicRuleInterval**: `number` + +#### dynamicRulesCachePath + +> **dynamicRulesCachePath**: `string` \| `null` + +#### emergencyMode + +> **emergencyMode**: `boolean` + +#### emergencyWhitelist + +> **emergencyWhitelist**: `string`[] + +#### enableAgent + +> **enableAgent**: `boolean` + +#### enableCors + +> **enableCors**: `boolean` + +#### enabledDetectionCategories + +> **enabledDetectionCategories**: `string`[] + +#### enableDynamicRules + +> **enableDynamicRules**: `boolean` + +#### enableEnrichment + +> **enableEnrichment**: `boolean` + +#### enableIpBanning + +> **enableIpBanning**: `boolean` + +#### enableLogfire + +> **enableLogfire**: `boolean` + +#### enableOtel + +> **enableOtel**: `boolean` + +#### enablePenetrationDetection + +> **enablePenetrationDetection**: `boolean` + +#### enableRateLimitAutoBan + +> **enableRateLimitAutoBan**: `boolean` + +#### enableRateLimiting + +> **enableRateLimiting**: `boolean` + +#### enableRedis + +> **enableRedis**: `boolean` + +#### endpointRateLimits + +> **endpointRateLimits**: `Record`\<`string`, \[`number`, `number`\]\> + +#### enforceHttps + +> **enforceHttps**: `boolean` + +#### excludedDetectionBodyFields + +> **excludedDetectionBodyFields**: `string`[] + +#### excludedDetectionHeaders + +> **excludedDetectionHeaders**: `string`[] + +#### excludedDetectionParams + +> **excludedDetectionParams**: `string`[] + +#### excludedSemanticDetectionHeaders + +> **excludedSemanticDetectionHeaders**: `string`[] + +#### excludePaths + +> **excludePaths**: `string`[] + +#### exemptIps + +> **exemptIps**: `string`[] + +#### failSecure + +> **failSecure**: `boolean` + +#### geoIpDbMaxAge + +> **geoIpDbMaxAge**: `number` + +#### geoIpHandler? + +> `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) + +#### geoResolver? + +> `optional` **geoResolver?**: (`ip`) => `string` \| `null` + +##### Parameters + +###### ip + +`string` + +##### Returns + +`string` \| `null` + +#### globalBehaviorRules + +> **globalBehaviorRules**: `object`[] + +#### ipinfoDbPath + +> **ipinfoDbPath**: `string` + +#### ipinfoToken + +> **ipinfoToken**: `string` \| `null` + +#### lazyInit + +> **lazyInit**: `boolean` + +#### logCountryCheckLevel + +> **logCountryCheckLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName + +> **logfireServiceName**: `string` + +#### logFormat + +> **logFormat**: `"text"` \| `"json"` + +#### logger? + +> `optional` **logger?**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### logRequestLevel + +> **logRequestLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logSensitiveBodyFields + +> **logSensitiveBodyFields**: `string`[] + +#### logSensitiveHeaders + +> **logSensitiveHeaders**: `string`[] + +#### logSensitiveParams + +> **logSensitiveParams**: `string`[] + +#### logSuspiciousLevel + +> **logSuspiciousLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### mutedCheckLogs + +> **mutedCheckLogs**: `string`[] + +#### mutedEventTypes + +> **mutedEventTypes**: `string`[] + +#### mutedMetricTypes + +> **mutedMetricTypes**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint + +> **otelExporterEndpoint**: `string` \| `null` + +#### otelResourceAttributes + +> **otelResourceAttributes**: `Record`\<`string`, `string`\> + +#### otelServiceName + +> **otelServiceName**: `string` + +#### passiveMode + +> **passiveMode**: `boolean` + +#### rateLimit + +> **rateLimit**: `number` + +#### rateLimitWindow + +> **rateLimitWindow**: `number` + +#### redisFailOpen + +> **redisFailOpen**: `boolean` + +#### redisHealthCheckInterval + +> **redisHealthCheckInterval**: `number` + +#### redisMaxConnections + +> **redisMaxConnections**: `number` \| `null` + +#### redisPrefix + +> **redisPrefix**: `string` + +#### redisRetries + +> **redisRetries**: `number` + +#### redisSocketConnectTimeout + +> **redisSocketConnectTimeout**: `number` \| `null` + +#### redisSocketTimeout + +> **redisSocketTimeout**: `number` \| `null` + +#### redisUrl + +> **redisUrl**: `string` + +#### routeResolutionStrict + +> **routeResolutionStrict**: `boolean` + +#### securityHeaders + +> **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 + +> **threatBanConfig**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + +#### trustedProxies + +> **trustedProxies**: `string`[] + +#### trustedProxyDepth + +> **trustedProxyDepth**: `number` + +#### trustXForwardedProto + +> **trustXForwardedProto**: `boolean` + +#### whitelist + +> **whitelist**: `string`[] \| `null` + +#### whitelistCountries + +> **whitelistCountries**: `string`[] + +*** + +### logger + +> **logger**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +Defined in: [packages/core/src/core/bounded-body-reader.ts:177](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L177) + +*** + +### longestPatternLength? + +> `optional` **longestPatternLength?**: `number` \| `null` + +Defined in: [packages/core/src/core/bounded-body-reader.ts:180](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/bounded-body-reader.ts#L180) + +Longest compiled detection pattern length (for the prefix over-read); + null when unavailable, which disables the over-read. diff --git a/docs/src/content/docs/api/core/src/interfaces/CloudIpStoreProtocol.md b/docs/src/content/docs/api/core/src/interfaces/CloudIpStoreProtocol.md new file mode 100644 index 0000000..a5d449f --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/CloudIpStoreProtocol.md @@ -0,0 +1,64 @@ +--- +editUrl: false +next: false +prev: false +title: "CloudIpStoreProtocol" +--- + +Defined in: [packages/core/src/protocols/cloud-ip-store.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/cloud-ip-store.ts#L11) + +## Methods + +### clear() + +> **clear**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/protocols/cloud-ip-store.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/cloud-ip-store.ts#L14) + +#### Returns + +`Promise`\<`void`\> + +*** + +### get() + +> **get**(`provider`): `Promise`\<`Set`\<`string`\> \| `null`\> + +Defined in: [packages/core/src/protocols/cloud-ip-store.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/cloud-ip-store.ts#L12) + +#### Parameters + +##### provider + +`string` + +#### Returns + +`Promise`\<`Set`\<`string`\> \| `null`\> + +*** + +### set() + +> **set**(`provider`, `ranges`, `ttl?`): `Promise`\<`void`\> + +Defined in: [packages/core/src/protocols/cloud-ip-store.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/cloud-ip-store.ts#L13) + +#### Parameters + +##### provider + +`string` + +##### ranges + +`Set`\<`string`\> + +##### ttl? + +`number` \| `null` + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/interfaces/CustomLoggingOptions.md b/docs/src/content/docs/api/core/src/interfaces/CustomLoggingOptions.md new file mode 100644 index 0000000..8fd2765 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/CustomLoggingOptions.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "CustomLoggingOptions" +--- + +Defined in: [packages/core/src/models/logger-setup.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L51) + +## Properties + +### logFile? + +> `optional` **logFile?**: `string` \| `null` + +Defined in: [packages/core/src/models/logger-setup.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L52) + +*** + +### logFormat? + +> `optional` **logFormat?**: `"text"` \| `"json"` + +Defined in: [packages/core/src/models/logger-setup.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L53) + +*** + +### loggerName? + +> `optional` **loggerName?**: `string` + +Defined in: [packages/core/src/models/logger-setup.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L54) diff --git a/docs/src/content/docs/api/core/src/interfaces/DynamicRuleMatcher.md b/docs/src/content/docs/api/core/src/interfaces/DynamicRuleMatcher.md new file mode 100644 index 0000000..087179b --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/DynamicRuleMatcher.md @@ -0,0 +1,26 @@ +--- +editUrl: false +next: false +prev: false +title: "DynamicRuleMatcher" +--- + +Defined in: [packages/core/src/core/events/enricher.ts:121](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L121) + +## Methods + +### matchEvent() + +> **matchEvent**(`event`): \{ `ruleId`: `string`; `version`: `number`; \} \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:122](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L122) + +#### Parameters + +##### event + +[`EnrichableEvent`](/guard-core-ts/api/core/src/interfaces/enrichableevent/) + +#### Returns + +\{ `ruleId`: `string`; `version`: `number`; \} \| `null` diff --git a/docs/src/content/docs/api/core/src/interfaces/EnrichableEvent.md b/docs/src/content/docs/api/core/src/interfaces/EnrichableEvent.md new file mode 100644 index 0000000..c2a68c3 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/EnrichableEvent.md @@ -0,0 +1,32 @@ +--- +editUrl: false +next: false +prev: false +title: "EnrichableEvent" +--- + +Defined in: [packages/core/src/core/events/enricher.ts:106](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L106) + +## Properties + +### eventType? + +> `optional` **eventType?**: `string` \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:107](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L107) + +*** + +### ipAddress? + +> `optional` **ipAddress?**: `string` \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:108](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L108) + +*** + +### metadata? + +> `optional` **metadata?**: `Record`\<`string`, `unknown`\> \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:109](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L109) diff --git a/docs/src/content/docs/api/core/src/interfaces/EnrichableMetric.md b/docs/src/content/docs/api/core/src/interfaces/EnrichableMetric.md new file mode 100644 index 0000000..b59cd00 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/EnrichableMetric.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "EnrichableMetric" +--- + +Defined in: [packages/core/src/core/events/enricher.ts:113](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L113) + +## Properties + +### metricType? + +> `optional` **metricType?**: `string` \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:114](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L114) + +*** + +### tags? + +> `optional` **tags?**: `Record`\<`string`, `string`\> \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:115](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L115) diff --git a/docs/src/content/docs/api/core/src/interfaces/EnrichmentContext.md b/docs/src/content/docs/api/core/src/interfaces/EnrichmentContext.md new file mode 100644 index 0000000..e8bc631 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/EnrichmentContext.md @@ -0,0 +1,640 @@ +--- +editUrl: false +next: false +prev: false +title: "EnrichmentContext" +--- + +Defined in: [packages/core/src/core/events/enricher.ts:134](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L134) + +## Properties + +### behaviorTracker? + +> `optional` **behaviorTracker?**: [`BehaviorCounter`](/guard-core-ts/api/core/src/interfaces/behaviorcounter/) \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:137](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L137) + +*** + +### config + +> **config**: `object` + +Defined in: [packages/core/src/core/events/enricher.ts:135](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L135) + +#### agentApiKey + +> **agentApiKey**: `string` \| `null` + +#### agentBackoffFactor + +> **agentBackoffFactor**: `number` \| `null` + +#### agentBufferOverflowPolicy + +> **agentBufferOverflowPolicy**: `"drop"` \| `"block"` \| `"raise"` \| `null` + +#### agentBufferSize + +> **agentBufferSize**: `number` + +#### agentCompressionEnabled + +> **agentCompressionEnabled**: `boolean` \| `null` + +#### agentCompressionThreshold + +> **agentCompressionThreshold**: `number` \| `null` + +#### agentEnableEvents + +> **agentEnableEvents**: `boolean` + +#### agentEnableMetrics + +> **agentEnableMetrics**: `boolean` + +#### agentEndpoint + +> **agentEndpoint**: `string` + +#### agentFlushInterval + +> **agentFlushInterval**: `number` + +#### agentGuardVersion + +> **agentGuardVersion**: `string` \| `null` + +#### agentHighWatermarkRatio + +> **agentHighWatermarkRatio**: `number` \| `null` + +#### agentInstallId + +> **agentInstallId**: `string` \| `null` + +#### agentMaxConcurrentFlushes + +> **agentMaxConcurrentFlushes**: `number` \| `null` + +#### agentMaxPayloadSize + +> **agentMaxPayloadSize**: `number` \| `null` + +#### agentPayloadSigningSecret + +> **agentPayloadSigningSecret**: `string` \| `null` + +#### agentProjectEncryptionKey + +> **agentProjectEncryptionKey**: `string` \| `null` + +#### agentProjectId + +> **agentProjectId**: `string` \| `null` + +#### agentRetryAttempts + +> **agentRetryAttempts**: `number` + +#### agentSensitiveHeaders + +> **agentSensitiveHeaders**: `string`[] \| `null` + +#### agentStatusInterval + +> **agentStatusInterval**: `number` + +#### agentStrict + +> **agentStrict**: `boolean` + +#### agentTimeout + +> **agentTimeout**: `number` + +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + +#### autoBanDuration + +> **autoBanDuration**: `number` + +#### autoBanThreshold + +> **autoBanThreshold**: `number` + +#### behaviorMaxResponseBodyInspectBytes + +> **behaviorMaxResponseBodyInspectBytes**: `number` + +#### behaviorScanResponseBody + +> **behaviorScanResponseBody**: `boolean` + +#### blacklist + +> **blacklist**: `string`[] + +#### blockCloudProviders + +> **blockCloudProviders**: `Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\> + +#### blockedCountries + +> **blockedCountries**: `string`[] + +#### blockedUserAgents + +> **blockedUserAgents**: `string`[] + +#### bodyReadMaxConcurrent + +> **bodyReadMaxConcurrent**: `number` + +#### bodyReadTimeout + +> **bodyReadTimeout**: `number` + +#### cloudIpRefreshInterval + +> **cloudIpRefreshInterval**: `number` + +#### corsAllowCredentials + +> **corsAllowCredentials**: `boolean` + +#### corsAllowHeaders + +> **corsAllowHeaders**: `string`[] + +#### corsAllowMethods + +> **corsAllowMethods**: `string`[] + +#### corsAllowOrigins + +> **corsAllowOrigins**: `string`[] + +#### corsExposeHeaders + +> **corsExposeHeaders**: `string`[] + +#### corsMaxAge + +> **corsMaxAge**: `number` + +#### customErrorResponses + +> **customErrorResponses**: `Record`\<`number`, `string`\> + +#### customLogFile + +> **customLogFile**: `string` \| `null` + +#### customRequestCheck? + +> `optional` **customRequestCheck?**: (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +##### Parameters + +###### req + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +##### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +#### customResponseModifier? + +> `optional` **customResponseModifier?**: (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +##### Parameters + +###### res + +[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) + +##### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +#### detectionAnomalyEmissionCooldown + +> **detectionAnomalyEmissionCooldown**: `number` + +#### detectionAnomalyThreshold + +> **detectionAnomalyThreshold**: `number` + +#### detectionBinaryMinRunLength + +> **detectionBinaryMinRunLength**: `number` + +#### detectionCompilerTimeout + +> **detectionCompilerTimeout**: `number` + +#### detectionMaxBodyInspectBytes + +> **detectionMaxBodyInspectBytes**: `number` + +#### detectionMaxContentLength + +> **detectionMaxContentLength**: `number` + +#### detectionMaxJsonDepth + +> **detectionMaxJsonDepth**: `number` + +#### detectionMaxScanChars + +> **detectionMaxScanChars**: `number` + +#### detectionMaxScanSeconds + +> **detectionMaxScanSeconds**: `number` + +#### detectionMaxScanValues + +> **detectionMaxScanValues**: `number` + +#### detectionMaxTrackedPatterns + +> **detectionMaxTrackedPatterns**: `number` + +#### detectionMinSamplesForAnomaly + +> **detectionMinSamplesForAnomaly**: `number` + +#### detectionMonitorHistorySize + +> **detectionMonitorHistorySize**: `number` + +#### detectionPatternValidationCachePath + +> **detectionPatternValidationCachePath**: `string` \| `null` + +#### detectionPreserveAttackPatterns + +> **detectionPreserveAttackPatterns**: `boolean` + +#### detectionScanBody + +> **detectionScanBody**: `boolean` + +#### detectionScanWorkerPool + +> **detectionScanWorkerPool**: `boolean` + +#### detectionSemanticThreshold + +> **detectionSemanticThreshold**: `number` + +#### detectionSlowPatternThreshold + +> **detectionSlowPatternThreshold**: `number` + +#### detectionThreatScoreThreshold + +> **detectionThreatScoreThreshold**: `number` + +#### dynamicRuleInterval + +> **dynamicRuleInterval**: `number` + +#### dynamicRulesCachePath + +> **dynamicRulesCachePath**: `string` \| `null` + +#### emergencyMode + +> **emergencyMode**: `boolean` + +#### emergencyWhitelist + +> **emergencyWhitelist**: `string`[] + +#### enableAgent + +> **enableAgent**: `boolean` + +#### enableCors + +> **enableCors**: `boolean` + +#### enabledDetectionCategories + +> **enabledDetectionCategories**: `string`[] + +#### enableDynamicRules + +> **enableDynamicRules**: `boolean` + +#### enableEnrichment + +> **enableEnrichment**: `boolean` + +#### enableIpBanning + +> **enableIpBanning**: `boolean` + +#### enableLogfire + +> **enableLogfire**: `boolean` + +#### enableOtel + +> **enableOtel**: `boolean` + +#### enablePenetrationDetection + +> **enablePenetrationDetection**: `boolean` + +#### enableRateLimitAutoBan + +> **enableRateLimitAutoBan**: `boolean` + +#### enableRateLimiting + +> **enableRateLimiting**: `boolean` + +#### enableRedis + +> **enableRedis**: `boolean` + +#### endpointRateLimits + +> **endpointRateLimits**: `Record`\<`string`, \[`number`, `number`\]\> + +#### enforceHttps + +> **enforceHttps**: `boolean` + +#### excludedDetectionBodyFields + +> **excludedDetectionBodyFields**: `string`[] + +#### excludedDetectionHeaders + +> **excludedDetectionHeaders**: `string`[] + +#### excludedDetectionParams + +> **excludedDetectionParams**: `string`[] + +#### excludedSemanticDetectionHeaders + +> **excludedSemanticDetectionHeaders**: `string`[] + +#### excludePaths + +> **excludePaths**: `string`[] + +#### exemptIps + +> **exemptIps**: `string`[] + +#### failSecure + +> **failSecure**: `boolean` + +#### geoIpDbMaxAge + +> **geoIpDbMaxAge**: `number` + +#### geoIpHandler? + +> `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) + +#### geoResolver? + +> `optional` **geoResolver?**: (`ip`) => `string` \| `null` + +##### Parameters + +###### ip + +`string` + +##### Returns + +`string` \| `null` + +#### globalBehaviorRules + +> **globalBehaviorRules**: `object`[] + +#### ipinfoDbPath + +> **ipinfoDbPath**: `string` + +#### ipinfoToken + +> **ipinfoToken**: `string` \| `null` + +#### lazyInit + +> **lazyInit**: `boolean` + +#### logCountryCheckLevel + +> **logCountryCheckLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName + +> **logfireServiceName**: `string` + +#### logFormat + +> **logFormat**: `"text"` \| `"json"` + +#### logger? + +> `optional` **logger?**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### logRequestLevel + +> **logRequestLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logSensitiveBodyFields + +> **logSensitiveBodyFields**: `string`[] + +#### logSensitiveHeaders + +> **logSensitiveHeaders**: `string`[] + +#### logSensitiveParams + +> **logSensitiveParams**: `string`[] + +#### logSuspiciousLevel + +> **logSuspiciousLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### mutedCheckLogs + +> **mutedCheckLogs**: `string`[] + +#### mutedEventTypes + +> **mutedEventTypes**: `string`[] + +#### mutedMetricTypes + +> **mutedMetricTypes**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint + +> **otelExporterEndpoint**: `string` \| `null` + +#### otelResourceAttributes + +> **otelResourceAttributes**: `Record`\<`string`, `string`\> + +#### otelServiceName + +> **otelServiceName**: `string` + +#### passiveMode + +> **passiveMode**: `boolean` + +#### rateLimit + +> **rateLimit**: `number` + +#### rateLimitWindow + +> **rateLimitWindow**: `number` + +#### redisFailOpen + +> **redisFailOpen**: `boolean` + +#### redisHealthCheckInterval + +> **redisHealthCheckInterval**: `number` + +#### redisMaxConnections + +> **redisMaxConnections**: `number` \| `null` + +#### redisPrefix + +> **redisPrefix**: `string` + +#### redisRetries + +> **redisRetries**: `number` + +#### redisSocketConnectTimeout + +> **redisSocketConnectTimeout**: `number` \| `null` + +#### redisSocketTimeout + +> **redisSocketTimeout**: `number` \| `null` + +#### redisUrl + +> **redisUrl**: `string` + +#### routeResolutionStrict + +> **routeResolutionStrict**: `boolean` + +#### securityHeaders + +> **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 + +> **threatBanConfig**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + +#### trustedProxies + +> **trustedProxies**: `string`[] + +#### trustedProxyDepth + +> **trustedProxyDepth**: `number` + +#### trustXForwardedProto + +> **trustXForwardedProto**: `boolean` + +#### whitelist + +> **whitelist**: `string`[] \| `null` + +#### whitelistCountries + +> **whitelistCountries**: `string`[] + +*** + +### dynamicRuleHandler? + +> `optional` **dynamicRuleHandler?**: [`DynamicRuleMatcher`](/guard-core-ts/api/core/src/interfaces/dynamicrulematcher/) \| `null` + +Defined in: [packages/core/src/core/events/enricher.ts:136](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L136) diff --git a/docs/src/content/docs/api/core/src/interfaces/GeoIPHandler.md b/docs/src/content/docs/api/core/src/interfaces/GeoIPHandler.md index 54135a2..85b3d63 100644 --- a/docs/src/content/docs/api/core/src/interfaces/GeoIPHandler.md +++ b/docs/src/content/docs/api/core/src/interfaces/GeoIPHandler.md @@ -5,7 +5,7 @@ prev: false title: "GeoIPHandler" --- -Defined in: [core/src/protocols/geo-ip.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/geo-ip.ts#L4) +Defined in: [packages/core/src/protocols/geo-ip.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L4) ## Properties @@ -13,15 +13,29 @@ Defined in: [core/src/protocols/geo-ip.ts:4](https://github.com/Guard-Core/guard > `readonly` **isInitialized**: `boolean` -Defined in: [core/src/protocols/geo-ip.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/geo-ip.ts#L5) +Defined in: [packages/core/src/protocols/geo-ip.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L5) ## Methods +### close() + +> **close**(): `void` + +Defined in: [packages/core/src/protocols/geo-ip.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L13) + +The reference close: release the reader. + +#### Returns + +`void` + +*** + ### getCountry() > **getCountry**(`ip`): `string` \| `null` -Defined in: [core/src/protocols/geo-ip.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/geo-ip.ts#L9) +Defined in: [packages/core/src/protocols/geo-ip.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L9) #### Parameters @@ -39,7 +53,7 @@ Defined in: [core/src/protocols/geo-ip.ts:9](https://github.com/Guard-Core/guard > **initialize**(): `Promise`\<`void`\> -Defined in: [core/src/protocols/geo-ip.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/geo-ip.ts#L6) +Defined in: [packages/core/src/protocols/geo-ip.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L6) #### Returns @@ -51,7 +65,7 @@ Defined in: [core/src/protocols/geo-ip.ts:6](https://github.com/Guard-Core/guard > **initializeAgent**(`agentHandler`): `Promise`\<`void`\> -Defined in: [core/src/protocols/geo-ip.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/geo-ip.ts#L8) +Defined in: [packages/core/src/protocols/geo-ip.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L8) #### Parameters @@ -69,7 +83,7 @@ Defined in: [core/src/protocols/geo-ip.ts:8](https://github.com/Guard-Core/guard > **initializeRedis**(`redisHandler`): `Promise`\<`void`\> -Defined in: [core/src/protocols/geo-ip.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/geo-ip.ts#L7) +Defined in: [packages/core/src/protocols/geo-ip.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L7) #### Parameters @@ -80,3 +94,17 @@ Defined in: [core/src/protocols/geo-ip.ts:7](https://github.com/Guard-Core/guard #### Returns `Promise`\<`void`\> + +*** + +### refresh() + +> **refresh**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/protocols/geo-ip.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/geo-ip.ts#L11) + +The reference refresh: re-download and swap the reader. + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/core/src/interfaces/GuardMiddlewareProtocol.md b/docs/src/content/docs/api/core/src/interfaces/GuardMiddlewareProtocol.md index 0f9a3e2..5d44b31 100644 --- a/docs/src/content/docs/api/core/src/interfaces/GuardMiddlewareProtocol.md +++ b/docs/src/content/docs/api/core/src/interfaces/GuardMiddlewareProtocol.md @@ -5,7 +5,7 @@ prev: false title: "GuardMiddlewareProtocol" --- -Defined in: [core/src/protocols/middleware.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L7) +Defined in: [packages/core/src/protocols/middleware.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L7) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/protocols/middleware.ts:7](https://github.com/Guard-Core/g > `readonly` **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` -Defined in: [core/src/protocols/middleware.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L16) +Defined in: [packages/core/src/protocols/middleware.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L20) *** @@ -21,16 +21,32 @@ Defined in: [core/src/protocols/middleware.ts:16](https://github.com/Guard-Core/ > `readonly` **config**: `object` -Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L8) +Defined in: [packages/core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L8) #### agentApiKey > **agentApiKey**: `string` \| `null` +#### agentBackoffFactor + +> **agentBackoffFactor**: `number` \| `null` + +#### agentBufferOverflowPolicy + +> **agentBufferOverflowPolicy**: `"drop"` \| `"block"` \| `"raise"` \| `null` + #### agentBufferSize > **agentBufferSize**: `number` +#### agentCompressionEnabled + +> **agentCompressionEnabled**: `boolean` \| `null` + +#### agentCompressionThreshold + +> **agentCompressionThreshold**: `number` \| `null` + #### agentEnableEvents > **agentEnableEvents**: `boolean` @@ -47,6 +63,34 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **agentFlushInterval**: `number` +#### agentGuardVersion + +> **agentGuardVersion**: `string` \| `null` + +#### agentHighWatermarkRatio + +> **agentHighWatermarkRatio**: `number` \| `null` + +#### agentInstallId + +> **agentInstallId**: `string` \| `null` + +#### agentMaxConcurrentFlushes + +> **agentMaxConcurrentFlushes**: `number` \| `null` + +#### agentMaxPayloadSize + +> **agentMaxPayloadSize**: `number` \| `null` + +#### agentPayloadSigningSecret + +> **agentPayloadSigningSecret**: `string` \| `null` + +#### agentProjectEncryptionKey + +> **agentProjectEncryptionKey**: `string` \| `null` + #### agentProjectId > **agentProjectId**: `string` \| `null` @@ -55,10 +99,40 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **agentRetryAttempts**: `number` +#### agentSensitiveHeaders + +> **agentSensitiveHeaders**: `string`[] \| `null` + +#### agentStatusInterval + +> **agentStatusInterval**: `number` + +#### agentStrict + +> **agentStrict**: `boolean` + #### agentTimeout > **agentTimeout**: `number` +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + #### autoBanDuration > **autoBanDuration**: `number` @@ -67,6 +141,14 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **autoBanThreshold**: `number` +#### behaviorMaxResponseBodyInspectBytes + +> **behaviorMaxResponseBodyInspectBytes**: `number` + +#### behaviorScanResponseBody + +> **behaviorScanResponseBody**: `boolean` + #### blacklist > **blacklist**: `string`[] @@ -83,6 +165,14 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **blockedUserAgents**: `string`[] +#### bodyReadMaxConcurrent + +> **bodyReadMaxConcurrent**: `number` + +#### bodyReadTimeout + +> **bodyReadTimeout**: `number` + #### cloudIpRefreshInterval > **cloudIpRefreshInterval**: `number` @@ -147,30 +237,74 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> +#### detectionAnomalyEmissionCooldown + +> **detectionAnomalyEmissionCooldown**: `number` + #### detectionAnomalyThreshold > **detectionAnomalyThreshold**: `number` +#### detectionBinaryMinRunLength + +> **detectionBinaryMinRunLength**: `number` + #### detectionCompilerTimeout > **detectionCompilerTimeout**: `number` +#### detectionMaxBodyInspectBytes + +> **detectionMaxBodyInspectBytes**: `number` + #### detectionMaxContentLength > **detectionMaxContentLength**: `number` +#### detectionMaxJsonDepth + +> **detectionMaxJsonDepth**: `number` + +#### detectionMaxScanChars + +> **detectionMaxScanChars**: `number` + +#### detectionMaxScanSeconds + +> **detectionMaxScanSeconds**: `number` + +#### detectionMaxScanValues + +> **detectionMaxScanValues**: `number` + #### detectionMaxTrackedPatterns > **detectionMaxTrackedPatterns**: `number` +#### detectionMinSamplesForAnomaly + +> **detectionMinSamplesForAnomaly**: `number` + #### detectionMonitorHistorySize > **detectionMonitorHistorySize**: `number` +#### detectionPatternValidationCachePath + +> **detectionPatternValidationCachePath**: `string` \| `null` + #### detectionPreserveAttackPatterns > **detectionPreserveAttackPatterns**: `boolean` +#### detectionScanBody + +> **detectionScanBody**: `boolean` + +#### detectionScanWorkerPool + +> **detectionScanWorkerPool**: `boolean` + #### detectionSemanticThreshold > **detectionSemanticThreshold**: `number` @@ -179,10 +313,18 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **detectionSlowPatternThreshold**: `number` +#### detectionThreatScoreThreshold + +> **detectionThreatScoreThreshold**: `number` + #### dynamicRuleInterval > **dynamicRuleInterval**: `number` +#### dynamicRulesCachePath + +> **dynamicRulesCachePath**: `string` \| `null` + #### emergencyMode > **emergencyMode**: `boolean` @@ -199,18 +341,38 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **enableCors**: `boolean` +#### enabledDetectionCategories + +> **enabledDetectionCategories**: `string`[] + #### enableDynamicRules > **enableDynamicRules**: `boolean` +#### enableEnrichment + +> **enableEnrichment**: `boolean` + #### enableIpBanning > **enableIpBanning**: `boolean` +#### enableLogfire + +> **enableLogfire**: `boolean` + +#### enableOtel + +> **enableOtel**: `boolean` + #### enablePenetrationDetection > **enablePenetrationDetection**: `boolean` +#### enableRateLimitAutoBan + +> **enableRateLimitAutoBan**: `boolean` + #### enableRateLimiting > **enableRateLimiting**: `boolean` @@ -227,10 +389,38 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **enforceHttps**: `boolean` +#### excludedDetectionBodyFields + +> **excludedDetectionBodyFields**: `string`[] + +#### excludedDetectionHeaders + +> **excludedDetectionHeaders**: `string`[] + +#### excludedDetectionParams + +> **excludedDetectionParams**: `string`[] + +#### excludedSemanticDetectionHeaders + +> **excludedSemanticDetectionHeaders**: `string`[] + #### excludePaths > **excludePaths**: `string`[] +#### exemptIps + +> **exemptIps**: `string`[] + +#### failSecure + +> **failSecure**: `boolean` + +#### geoIpDbMaxAge + +> **geoIpDbMaxAge**: `number` + #### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) @@ -249,6 +439,30 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g `string` \| `null` +#### globalBehaviorRules + +> **globalBehaviorRules**: `object`[] + +#### ipinfoDbPath + +> **ipinfoDbPath**: `string` + +#### ipinfoToken + +> **ipinfoToken**: `string` \| `null` + +#### lazyInit + +> **lazyInit**: `boolean` + +#### logCountryCheckLevel + +> **logCountryCheckLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName + +> **logfireServiceName**: `string` + #### logFormat > **logFormat**: `"text"` \| `"json"` @@ -261,10 +475,86 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **logRequestLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### logSensitiveBodyFields + +> **logSensitiveBodyFields**: `string`[] + +#### logSensitiveHeaders + +> **logSensitiveHeaders**: `string`[] + +#### logSensitiveParams + +> **logSensitiveParams**: `string`[] + #### logSuspiciousLevel > **logSuspiciousLevel**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### mutedCheckLogs + +> **mutedCheckLogs**: `string`[] + +#### mutedEventTypes + +> **mutedEventTypes**: `string`[] + +#### mutedMetricTypes + +> **mutedMetricTypes**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint + +> **otelExporterEndpoint**: `string` \| `null` + +#### otelResourceAttributes + +> **otelResourceAttributes**: `Record`\<`string`, `string`\> + +#### otelServiceName + +> **otelServiceName**: `string` + #### passiveMode > **passiveMode**: `boolean` @@ -277,18 +567,50 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > **rateLimitWindow**: `number` +#### redisFailOpen + +> **redisFailOpen**: `boolean` + +#### redisHealthCheckInterval + +> **redisHealthCheckInterval**: `number` + +#### redisMaxConnections + +> **redisMaxConnections**: `number` \| `null` + #### redisPrefix > **redisPrefix**: `string` +#### redisRetries + +> **redisRetries**: `number` + +#### redisSocketConnectTimeout + +> **redisSocketConnectTimeout**: `number` \| `null` + +#### redisSocketTimeout + +> **redisSocketTimeout**: `number` \| `null` + #### redisUrl > **redisUrl**: `string` +#### routeResolutionStrict + +> **routeResolutionStrict**: `boolean` + #### securityHeaders > **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 + +> **threatBanConfig**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + #### trustedProxies > **trustedProxies**: `string`[] @@ -315,7 +637,7 @@ Defined in: [core/src/protocols/middleware.ts:8](https://github.com/Guard-Core/g > `readonly` **eventBus**: `unknown` -Defined in: [core/src/protocols/middleware.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L12) +Defined in: [packages/core/src/protocols/middleware.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L16) *** @@ -323,7 +645,7 @@ Defined in: [core/src/protocols/middleware.ts:12](https://github.com/Guard-Core/ > `readonly` **geoIpHandler**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) \| `null` -Defined in: [core/src/protocols/middleware.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L17) +Defined in: [packages/core/src/protocols/middleware.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L21) *** @@ -331,7 +653,7 @@ Defined in: [core/src/protocols/middleware.ts:17](https://github.com/Guard-Core/ > `readonly` **guardResponseFactory**: [`GuardResponseFactory`](/guard-core-ts/api/core/src/interfaces/guardresponsefactory/) -Defined in: [core/src/protocols/middleware.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L18) +Defined in: [packages/core/src/protocols/middleware.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L22) *** @@ -339,7 +661,7 @@ Defined in: [core/src/protocols/middleware.ts:18](https://github.com/Guard-Core/ > **lastCloudIpRefresh**: `number` -Defined in: [core/src/protocols/middleware.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L10) +Defined in: [packages/core/src/protocols/middleware.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L10) *** @@ -347,7 +669,7 @@ Defined in: [core/src/protocols/middleware.ts:10](https://github.com/Guard-Core/ > `readonly` **logger**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) -Defined in: [core/src/protocols/middleware.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L9) +Defined in: [packages/core/src/protocols/middleware.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L9) *** @@ -355,7 +677,7 @@ Defined in: [core/src/protocols/middleware.ts:9](https://github.com/Guard-Core/g > `readonly` **rateLimitHandler**: `unknown` -Defined in: [core/src/protocols/middleware.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L15) +Defined in: [packages/core/src/protocols/middleware.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L19) *** @@ -363,7 +685,7 @@ Defined in: [core/src/protocols/middleware.ts:15](https://github.com/Guard-Core/ > `readonly` **responseFactory**: `unknown` -Defined in: [core/src/protocols/middleware.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L14) +Defined in: [packages/core/src/protocols/middleware.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L18) *** @@ -371,15 +693,15 @@ Defined in: [core/src/protocols/middleware.ts:14](https://github.com/Guard-Core/ > `readonly` **routeResolver**: `unknown` -Defined in: [core/src/protocols/middleware.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L13) +Defined in: [packages/core/src/protocols/middleware.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L17) *** ### suspiciousRequestCounts -> **suspiciousRequestCounts**: `Map`\<`string`, `number`\> +> **suspiciousRequestCounts**: `Map`\<`string`, `Map`\<`string`, `number`\>\> -Defined in: [core/src/protocols/middleware.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L11) +Defined in: [packages/core/src/protocols/middleware.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L15) ## Methods @@ -387,7 +709,7 @@ Defined in: [core/src/protocols/middleware.ts:11](https://github.com/Guard-Core/ > **createErrorResponse**(`statusCode`, `defaultMessage`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> -Defined in: [core/src/protocols/middleware.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L19) +Defined in: [packages/core/src/protocols/middleware.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L23) #### Parameters @@ -409,7 +731,7 @@ Defined in: [core/src/protocols/middleware.ts:19](https://github.com/Guard-Core/ > **refreshCloudIpRanges**(): `Promise`\<`void`\> -Defined in: [core/src/protocols/middleware.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/middleware.ts#L20) +Defined in: [packages/core/src/protocols/middleware.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/middleware.ts#L24) #### Returns diff --git a/docs/src/content/docs/api/core/src/interfaces/GuardRequest.md b/docs/src/content/docs/api/core/src/interfaces/GuardRequest.md index d70079c..8739b52 100644 --- a/docs/src/content/docs/api/core/src/interfaces/GuardRequest.md +++ b/docs/src/content/docs/api/core/src/interfaces/GuardRequest.md @@ -5,7 +5,7 @@ prev: false title: "GuardRequest" --- -Defined in: [core/src/protocols/request.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L8) +Defined in: [packages/core/src/protocols/request.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L14) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/protocols/request.ts:8](https://github.com/Guard-Core/guar > `readonly` **clientHost**: `string` \| `null` -Defined in: [core/src/protocols/request.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L14) +Defined in: [packages/core/src/protocols/request.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L20) *** @@ -21,7 +21,7 @@ Defined in: [core/src/protocols/request.ts:14](https://github.com/Guard-Core/gua > `readonly` **headers**: `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [core/src/protocols/request.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L15) +Defined in: [packages/core/src/protocols/request.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L21) *** @@ -29,7 +29,7 @@ Defined in: [core/src/protocols/request.ts:15](https://github.com/Guard-Core/gua > `readonly` **method**: `string` -Defined in: [core/src/protocols/request.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L13) +Defined in: [packages/core/src/protocols/request.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L19) *** @@ -37,7 +37,7 @@ Defined in: [core/src/protocols/request.ts:13](https://github.com/Guard-Core/gua > `readonly` **queryParams**: `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [core/src/protocols/request.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L16) +Defined in: [packages/core/src/protocols/request.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L22) *** @@ -45,7 +45,7 @@ Defined in: [core/src/protocols/request.ts:16](https://github.com/Guard-Core/gua > `readonly` **scope**: `Readonly`\<`Record`\<`string`, `unknown`\>\> -Defined in: [core/src/protocols/request.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L19) +Defined in: [packages/core/src/protocols/request.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L30) *** @@ -53,7 +53,7 @@ Defined in: [core/src/protocols/request.ts:19](https://github.com/Guard-Core/gua > `readonly` **state**: [`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) -Defined in: [core/src/protocols/request.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L18) +Defined in: [packages/core/src/protocols/request.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L29) *** @@ -61,7 +61,7 @@ Defined in: [core/src/protocols/request.ts:18](https://github.com/Guard-Core/gua > `readonly` **urlFull**: `string` -Defined in: [core/src/protocols/request.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L11) +Defined in: [packages/core/src/protocols/request.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L17) *** @@ -69,7 +69,7 @@ Defined in: [core/src/protocols/request.ts:11](https://github.com/Guard-Core/gua > `readonly` **urlPath**: `string` -Defined in: [core/src/protocols/request.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L9) +Defined in: [packages/core/src/protocols/request.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L15) *** @@ -77,7 +77,7 @@ Defined in: [core/src/protocols/request.ts:9](https://github.com/Guard-Core/guar > `readonly` **urlScheme**: `string` -Defined in: [core/src/protocols/request.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L10) +Defined in: [packages/core/src/protocols/request.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L16) ## Methods @@ -85,7 +85,30 @@ Defined in: [core/src/protocols/request.ts:10](https://github.com/Guard-Core/gua > **body**(): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> -Defined in: [core/src/protocols/request.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L17) +Defined in: [packages/core/src/protocols/request.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L23) + +#### Returns + +`Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> + +*** + +### readBodyPrefix()? + +> `optional` **readBodyPrefix**(`maxBytes`): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> + +Defined in: [packages/core/src/protocols/request.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L28) + +Optional bounded read: return at most maxBytes of the body without + consuming the whole stream. Adapters that implement it let the bounded + body reader cap the fetch itself instead of trimming after the fact + (the reference's read_body_prefix protocol). + +#### Parameters + +##### maxBytes + +`number` #### Returns @@ -97,7 +120,7 @@ Defined in: [core/src/protocols/request.ts:17](https://github.com/Guard-Core/gua > **urlReplaceScheme**(`scheme`): `string` -Defined in: [core/src/protocols/request.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L12) +Defined in: [packages/core/src/protocols/request.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L18) #### Parameters diff --git a/docs/src/content/docs/api/core/src/interfaces/GuardRequestState.md b/docs/src/content/docs/api/core/src/interfaces/GuardRequestState.md index 19a7112..9415e32 100644 --- a/docs/src/content/docs/api/core/src/interfaces/GuardRequestState.md +++ b/docs/src/content/docs/api/core/src/interfaces/GuardRequestState.md @@ -5,7 +5,7 @@ prev: false title: "GuardRequestState" --- -Defined in: [core/src/protocols/request.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L1) +Defined in: [packages/core/src/protocols/request.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L1) ## Indexable @@ -17,7 +17,7 @@ Defined in: [core/src/protocols/request.ts:1](https://github.com/Guard-Core/guar > `optional` **guardDecorator?**: `unknown` -Defined in: [core/src/protocols/request.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L4) +Defined in: [packages/core/src/protocols/request.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L4) *** @@ -25,7 +25,17 @@ Defined in: [core/src/protocols/request.ts:4](https://github.com/Guard-Core/guar > `optional` **guardEndpointId?**: `string` -Defined in: [core/src/protocols/request.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L3) +Defined in: [packages/core/src/protocols/request.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L3) + +*** + +### guardExclusionScoped? + +> `optional` **guardExclusionScoped?**: `boolean` + +Defined in: [packages/core/src/protocols/request.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L10) + +Set by BypassHandler.handlePassthrough for an excluded path: only the checks with enforcedOnExcludedPaths run. *** @@ -33,4 +43,24 @@ Defined in: [core/src/protocols/request.ts:3](https://github.com/Guard-Core/guar > `optional` **guardRouteId?**: `string` -Defined in: [core/src/protocols/request.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/request.ts#L2) +Defined in: [packages/core/src/protocols/request.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L2) + +*** + +### isExempt? + +> `optional` **isExempt?**: `boolean` + +Defined in: [packages/core/src/protocols/request.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L8) + +Set by IpSecurityCheck: the client IP matched the config exemptIps list. + +*** + +### isWhitelisted? + +> `optional` **isWhitelisted?**: `boolean` + +Defined in: [packages/core/src/protocols/request.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/request.ts#L6) + +Set by IpSecurityCheck: the client IP matched the config whitelist. diff --git a/docs/src/content/docs/api/core/src/interfaces/GuardResponse.md b/docs/src/content/docs/api/core/src/interfaces/GuardResponse.md index 4df47dc..a8bd0a5 100644 --- a/docs/src/content/docs/api/core/src/interfaces/GuardResponse.md +++ b/docs/src/content/docs/api/core/src/interfaces/GuardResponse.md @@ -5,7 +5,7 @@ prev: false title: "GuardResponse" --- -Defined in: [core/src/protocols/response.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L1) +Defined in: [packages/core/src/protocols/response.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L1) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/protocols/response.ts:1](https://github.com/Guard-Core/gua > `readonly` **body**: `Uint8Array`\<`ArrayBufferLike`\> \| `null` -Defined in: [core/src/protocols/response.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L5) +Defined in: [packages/core/src/protocols/response.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L5) *** @@ -21,7 +21,7 @@ Defined in: [core/src/protocols/response.ts:5](https://github.com/Guard-Core/gua > `readonly` **bodyText**: `string` \| `null` -Defined in: [core/src/protocols/response.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L6) +Defined in: [packages/core/src/protocols/response.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L6) *** @@ -29,7 +29,7 @@ Defined in: [core/src/protocols/response.ts:6](https://github.com/Guard-Core/gua > `readonly` **headers**: `Record`\<`string`, `string`\> -Defined in: [core/src/protocols/response.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L3) +Defined in: [packages/core/src/protocols/response.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L3) *** @@ -37,7 +37,7 @@ Defined in: [core/src/protocols/response.ts:3](https://github.com/Guard-Core/gua > `readonly` **statusCode**: `number` -Defined in: [core/src/protocols/response.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L2) +Defined in: [packages/core/src/protocols/response.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L2) ## Methods @@ -45,7 +45,7 @@ Defined in: [core/src/protocols/response.ts:2](https://github.com/Guard-Core/gua > **setHeader**(`name`, `value`): `void` -Defined in: [core/src/protocols/response.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L4) +Defined in: [packages/core/src/protocols/response.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L4) #### Parameters diff --git a/docs/src/content/docs/api/core/src/interfaces/GuardResponseFactory.md b/docs/src/content/docs/api/core/src/interfaces/GuardResponseFactory.md index dc9b42c..6fb1fef 100644 --- a/docs/src/content/docs/api/core/src/interfaces/GuardResponseFactory.md +++ b/docs/src/content/docs/api/core/src/interfaces/GuardResponseFactory.md @@ -5,7 +5,7 @@ prev: false title: "GuardResponseFactory" --- -Defined in: [core/src/protocols/response.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L9) +Defined in: [packages/core/src/protocols/response.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L9) ## Methods @@ -13,7 +13,7 @@ Defined in: [core/src/protocols/response.ts:9](https://github.com/Guard-Core/gua > **createRedirectResponse**(`url`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [core/src/protocols/response.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L11) +Defined in: [packages/core/src/protocols/response.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L11) #### Parameters @@ -35,7 +35,7 @@ Defined in: [core/src/protocols/response.ts:11](https://github.com/Guard-Core/gu > **createResponse**(`content`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [core/src/protocols/response.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/response.ts#L10) +Defined in: [packages/core/src/protocols/response.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/response.ts#L10) #### Parameters diff --git a/docs/src/content/docs/api/core/src/interfaces/HandlerRegistry.md b/docs/src/content/docs/api/core/src/interfaces/HandlerRegistry.md index cbd054f..610fc26 100644 --- a/docs/src/content/docs/api/core/src/interfaces/HandlerRegistry.md +++ b/docs/src/content/docs/api/core/src/interfaces/HandlerRegistry.md @@ -5,31 +5,47 @@ prev: false title: "HandlerRegistry" --- -Defined in: [core/src/core/initialization/handler-initializer.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L14) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L22) ## Properties ### behaviorTracker -> **behaviorTracker**: `BehaviorTracker` +> **behaviorTracker**: [`BehaviorTracker`](/guard-core-ts/api/core/src/classes/behaviortracker/) -Defined in: [core/src/core/initialization/handler-initializer.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L21) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L29) *** ### cloudHandler -> **cloudHandler**: `CloudHandler` +> **cloudHandler**: [`CloudHandler`](/guard-core-ts/api/core/src/classes/cloudhandler/) -Defined in: [core/src/core/initialization/handler-initializer.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L18) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L26) *** ### dynamicRuleHandler -> **dynamicRuleHandler**: `DynamicRuleManager` +> **dynamicRuleHandler**: [`DynamicRuleManager`](/guard-core-ts/api/core/src/classes/dynamicrulemanager/) -Defined in: [core/src/core/initialization/handler-initializer.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L22) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L30) + +*** + +### enricher + +> **enricher**: [`AgentEventEnricher`](/guard-core-ts/api/core/src/interfaces/agenteventenricher/) \| `null` + +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L37) + +*** + +### eventFilter + +> **eventFilter**: [`EventFilter`](/guard-core-ts/api/core/src/classes/eventfilter/) + +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L36) *** @@ -37,44 +53,52 @@ Defined in: [core/src/core/initialization/handler-initializer.ts:22](https://git > **geoIpHandler**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) \| `null` -Defined in: [core/src/core/initialization/handler-initializer.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L23) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L31) *** ### ipBanHandler -> **ipBanHandler**: `IPBanManager` +> **ipBanHandler**: [`IPBanManager`](/guard-core-ts/api/core/src/classes/ipbanmanager/) -Defined in: [core/src/core/initialization/handler-initializer.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L16) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L24) *** ### rateLimitHandler -> **rateLimitHandler**: `RateLimitManager` +> **rateLimitHandler**: [`RateLimitManager`](/guard-core-ts/api/core/src/classes/ratelimitmanager/) -Defined in: [core/src/core/initialization/handler-initializer.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L17) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L25) *** ### redisHandler -> **redisHandler**: `RedisManager` \| `null` +> **redisHandler**: [`RedisManager`](/guard-core-ts/api/core/src/classes/redismanager/) \| `null` -Defined in: [core/src/core/initialization/handler-initializer.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L15) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L23) *** ### securityHeadersHandler -> **securityHeadersHandler**: `SecurityHeadersManager` +> **securityHeadersHandler**: [`SecurityHeadersManager`](/guard-core-ts/api/core/src/classes/securityheadersmanager/) -Defined in: [core/src/core/initialization/handler-initializer.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L20) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L28) *** ### susPatternsHandler -> **susPatternsHandler**: `SusPatternsManager` +> **susPatternsHandler**: [`SusPatternsManager`](/guard-core-ts/api/core/src/classes/suspatternsmanager/) + +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L27) + +*** + +### telemetryHandler + +> **telemetryHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` -Defined in: [core/src/core/initialization/handler-initializer.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/core/initialization/handler-initializer.ts#L19) +Defined in: [packages/core/src/core/initialization/handler-initializer.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/initialization/handler-initializer.ts#L35) diff --git a/docs/src/content/docs/api/core/src/interfaces/IpAccessResult.md b/docs/src/content/docs/api/core/src/interfaces/IpAccessResult.md new file mode 100644 index 0000000..f220ddf --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/IpAccessResult.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "IpAccessResult" +--- + +Defined in: [packages/core/src/core/checks/ip-access.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/ip-access.ts#L25) + +## Properties + +### allowed + +> **allowed**: `boolean` + +Defined in: [packages/core/src/core/checks/ip-access.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/ip-access.ts#L26) + +*** + +### cloudProvider + +> **cloudProvider**: `string` \| `null` + +Defined in: [packages/core/src/core/checks/ip-access.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/ip-access.ts#L28) + +*** + +### network + +> **network**: `string` \| `null` + +Defined in: [packages/core/src/core/checks/ip-access.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/ip-access.ts#L29) + +*** + +### reason + +> **reason**: `string` + +Defined in: [packages/core/src/core/checks/ip-access.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/ip-access.ts#L27) diff --git a/docs/src/content/docs/api/core/src/interfaces/LogRecord.md b/docs/src/content/docs/api/core/src/interfaces/LogRecord.md new file mode 100644 index 0000000..19474e5 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/LogRecord.md @@ -0,0 +1,40 @@ +--- +editUrl: false +next: false +prev: false +title: "LogRecord" +--- + +Defined in: [packages/core/src/models/logger-setup.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L25) + +## Properties + +### level + +> **level**: `"INFO"` \| `"DEBUG"` \| `"ERROR"` \| `"WARN"` + +Defined in: [packages/core/src/models/logger-setup.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L27) + +*** + +### logger + +> **logger**: `string` + +Defined in: [packages/core/src/models/logger-setup.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L28) + +*** + +### message + +> **message**: `string` + +Defined in: [packages/core/src/models/logger-setup.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L29) + +*** + +### timestamp + +> **timestamp**: `string` + +Defined in: [packages/core/src/models/logger-setup.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L26) diff --git a/docs/src/content/docs/api/core/src/interfaces/LogfireClient.md b/docs/src/content/docs/api/core/src/interfaces/LogfireClient.md new file mode 100644 index 0000000..ed88981 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/LogfireClient.md @@ -0,0 +1,98 @@ +--- +editUrl: false +next: false +prev: false +title: "LogfireClient" +--- + +Defined in: [packages/core/src/core/events/logfire-handler.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L23) + +## Methods + +### configure() + +> **configure**(`serviceName`): `void` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L28) + +#### Parameters + +##### serviceName + +`string` + +#### Returns + +`void` + +*** + +### info() + +> **info**(`message`, `attributes`): `void` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L30) + +#### Parameters + +##### message + +`string` + +##### attributes + +`Record`\<`string`, `unknown`\> + +#### Returns + +`void` + +*** + +### isConfigured() + +> **isConfigured**(): `boolean` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L27) + +True when a host application (or an earlier guard instance) already + configured logfire in this process; the handler adopts it instead of + calling configure again. + +#### Returns + +`boolean` + +*** + +### shutdown() + +> **shutdown**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/logfire-handler.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L31) + +#### Returns + +`Promise`\<`void`\> + +*** + +### span() + +> **span**(`name`, `attributes`): `void` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L29) + +#### Parameters + +##### name + +`string` + +##### attributes + +`Record`\<`string`, `unknown`\> + +#### Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/interfaces/LogfireHandlerConfig.md b/docs/src/content/docs/api/core/src/interfaces/LogfireHandlerConfig.md new file mode 100644 index 0000000..74db5a6 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/LogfireHandlerConfig.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "LogfireHandlerConfig" +--- + +Defined in: [packages/core/src/core/events/logfire-handler.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L34) + +## Properties + +### client? + +> `optional` **client?**: [`LogfireClient`](/guard-core-ts/api/core/src/interfaces/logfireclient/) \| `null` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L38) + +The wired logfire client; null (the default) keeps the handler + disabled. + +*** + +### serviceName + +> **serviceName**: `string` + +Defined in: [packages/core/src/core/events/logfire-handler.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/logfire-handler.ts#L35) diff --git a/docs/src/content/docs/api/core/src/interfaces/Logger.md b/docs/src/content/docs/api/core/src/interfaces/Logger.md index 5dbd82b..ba415c0 100644 --- a/docs/src/content/docs/api/core/src/interfaces/Logger.md +++ b/docs/src/content/docs/api/core/src/interfaces/Logger.md @@ -5,7 +5,7 @@ prev: false title: "Logger" --- -Defined in: [core/src/models/logger.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/logger.ts#L1) +Defined in: [packages/core/src/models/logger.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger.ts#L1) ## Methods @@ -13,7 +13,7 @@ Defined in: [core/src/models/logger.ts:1](https://github.com/Guard-Core/guard-co > **debug**(`message`, ...`args`): `void` -Defined in: [core/src/models/logger.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/logger.ts#L5) +Defined in: [packages/core/src/models/logger.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger.ts#L5) #### Parameters @@ -35,7 +35,7 @@ Defined in: [core/src/models/logger.ts:5](https://github.com/Guard-Core/guard-co > **error**(`message`, ...`args`): `void` -Defined in: [core/src/models/logger.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/logger.ts#L4) +Defined in: [packages/core/src/models/logger.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger.ts#L4) #### Parameters @@ -57,7 +57,7 @@ Defined in: [core/src/models/logger.ts:4](https://github.com/Guard-Core/guard-co > **info**(`message`, ...`args`): `void` -Defined in: [core/src/models/logger.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/logger.ts#L2) +Defined in: [packages/core/src/models/logger.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger.ts#L2) #### Parameters @@ -79,7 +79,7 @@ Defined in: [core/src/models/logger.ts:2](https://github.com/Guard-Core/guard-co > **warn**(`message`, ...`args`): `void` -Defined in: [core/src/models/logger.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/logger.ts#L3) +Defined in: [packages/core/src/models/logger.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger.ts#L3) #### Parameters diff --git a/docs/src/content/docs/api/core/src/interfaces/NodeWebSocketGuardOptions.md b/docs/src/content/docs/api/core/src/interfaces/NodeWebSocketGuardOptions.md new file mode 100644 index 0000000..a668e1e --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/NodeWebSocketGuardOptions.md @@ -0,0 +1,661 @@ +--- +editUrl: false +next: false +prev: false +title: "NodeWebSocketGuardOptions" +--- + +Defined in: [packages/core/src/core/node-websocket-guard.ts:64](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L64) + +## Properties + +### agentHandler? + +> `optional` **agentHandler?**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) + +Defined in: [packages/core/src/core/node-websocket-guard.ts:66](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L66) + +*** + +### components? + +> `optional` **components?**: [`SecurityMiddlewareComponents`](/guard-core-ts/api/core/src/interfaces/securitymiddlewarecomponents/) + +Defined in: [packages/core/src/core/node-websocket-guard.ts:73](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L73) + +Share the HTTP middleware's initialized components (recommended so the + WS guard reuses the same Redis/rate-limit/pattern managers). When + omitted the guard lazily initializes its own components from the + config, single-flight like the middleware. + +*** + +### config + +> **config**: `object` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L65) + +#### agentApiKey? + +> `optional` **agentApiKey?**: `string` \| `null` + +#### agentBackoffFactor? + +> `optional` **agentBackoffFactor?**: `number` \| `null` + +#### agentBufferOverflowPolicy? + +> `optional` **agentBufferOverflowPolicy?**: `"drop"` \| `"block"` \| `"raise"` \| `null` + +#### agentBufferSize? + +> `optional` **agentBufferSize?**: `number` + +#### agentCompressionEnabled? + +> `optional` **agentCompressionEnabled?**: `boolean` \| `null` + +#### agentCompressionThreshold? + +> `optional` **agentCompressionThreshold?**: `number` \| `null` + +#### agentEnableEvents? + +> `optional` **agentEnableEvents?**: `boolean` + +#### agentEnableMetrics? + +> `optional` **agentEnableMetrics?**: `boolean` + +#### agentEndpoint? + +> `optional` **agentEndpoint?**: `string` + +#### agentFlushInterval? + +> `optional` **agentFlushInterval?**: `number` + +#### agentGuardVersion? + +> `optional` **agentGuardVersion?**: `string` \| `null` + +#### agentHighWatermarkRatio? + +> `optional` **agentHighWatermarkRatio?**: `number` \| `null` + +#### agentInstallId? + +> `optional` **agentInstallId?**: `string` \| `null` + +#### agentMaxConcurrentFlushes? + +> `optional` **agentMaxConcurrentFlushes?**: `number` \| `null` + +#### agentMaxPayloadSize? + +> `optional` **agentMaxPayloadSize?**: `number` \| `null` + +#### agentPayloadSigningSecret? + +> `optional` **agentPayloadSigningSecret?**: `string` \| `null` + +#### agentProjectEncryptionKey? + +> `optional` **agentProjectEncryptionKey?**: `string` \| `null` + +#### agentProjectId? + +> `optional` **agentProjectId?**: `string` \| `null` + +#### agentRetryAttempts? + +> `optional` **agentRetryAttempts?**: `number` + +#### agentSensitiveHeaders? + +> `optional` **agentSensitiveHeaders?**: `string`[] \| `null` + +#### agentStatusInterval? + +> `optional` **agentStatusInterval?**: `number` + +#### agentStrict? + +> `optional` **agentStrict?**: `boolean` + +#### agentTimeout? + +> `optional` **agentTimeout?**: `number` + +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + +#### autoBanDuration? + +> `optional` **autoBanDuration?**: `number` + +#### autoBanThreshold? + +> `optional` **autoBanThreshold?**: `number` + +#### behaviorMaxResponseBodyInspectBytes? + +> `optional` **behaviorMaxResponseBodyInspectBytes?**: `number` + +#### behaviorScanResponseBody? + +> `optional` **behaviorScanResponseBody?**: `boolean` + +#### blacklist? + +> `optional` **blacklist?**: `string`[] + +#### blockCloudProviders? + +> `optional` **blockCloudProviders?**: (`"AWS"` \| `"GCP"` \| `"Azure"`)[] + +#### blockedCountries? + +> `optional` **blockedCountries?**: `string`[] + +#### blockedUserAgents? + +> `optional` **blockedUserAgents?**: `string`[] + +#### bodyReadMaxConcurrent? + +> `optional` **bodyReadMaxConcurrent?**: `number` + +#### bodyReadTimeout? + +> `optional` **bodyReadTimeout?**: `number` + +#### cloudIpRefreshInterval? + +> `optional` **cloudIpRefreshInterval?**: `number` + +#### corsAllowCredentials? + +> `optional` **corsAllowCredentials?**: `boolean` + +#### corsAllowHeaders? + +> `optional` **corsAllowHeaders?**: `string`[] + +#### corsAllowMethods? + +> `optional` **corsAllowMethods?**: `string`[] + +#### corsAllowOrigins? + +> `optional` **corsAllowOrigins?**: `string`[] + +#### corsExposeHeaders? + +> `optional` **corsExposeHeaders?**: `string`[] + +#### corsMaxAge? + +> `optional` **corsMaxAge?**: `number` + +#### customErrorResponses? + +> `optional` **customErrorResponses?**: `Record`\<`PropertyKey`, `string`\> + +#### customLogFile? + +> `optional` **customLogFile?**: `string` \| `null` + +#### customRequestCheck? + +> `optional` **customRequestCheck?**: (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +##### Parameters + +###### req + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +##### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> + +#### customResponseModifier? + +> `optional` **customResponseModifier?**: (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +##### Parameters + +###### res + +[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) + +##### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +#### detectionAnomalyEmissionCooldown? + +> `optional` **detectionAnomalyEmissionCooldown?**: `number` + +#### detectionAnomalyThreshold? + +> `optional` **detectionAnomalyThreshold?**: `number` + +#### detectionBinaryMinRunLength? + +> `optional` **detectionBinaryMinRunLength?**: `number` + +#### detectionCompilerTimeout? + +> `optional` **detectionCompilerTimeout?**: `number` + +#### detectionMaxBodyInspectBytes? + +> `optional` **detectionMaxBodyInspectBytes?**: `number` + +#### detectionMaxContentLength? + +> `optional` **detectionMaxContentLength?**: `number` + +#### detectionMaxJsonDepth? + +> `optional` **detectionMaxJsonDepth?**: `number` + +#### detectionMaxScanChars? + +> `optional` **detectionMaxScanChars?**: `number` + +#### detectionMaxScanSeconds? + +> `optional` **detectionMaxScanSeconds?**: `number` + +#### detectionMaxScanValues? + +> `optional` **detectionMaxScanValues?**: `number` + +#### detectionMaxTrackedPatterns? + +> `optional` **detectionMaxTrackedPatterns?**: `number` + +#### detectionMinSamplesForAnomaly? + +> `optional` **detectionMinSamplesForAnomaly?**: `number` + +#### detectionMonitorHistorySize? + +> `optional` **detectionMonitorHistorySize?**: `number` + +#### detectionPatternValidationCachePath? + +> `optional` **detectionPatternValidationCachePath?**: `string` \| `null` + +#### detectionPreserveAttackPatterns? + +> `optional` **detectionPreserveAttackPatterns?**: `boolean` + +#### detectionScanBody? + +> `optional` **detectionScanBody?**: `boolean` + +#### detectionScanWorkerPool? + +> `optional` **detectionScanWorkerPool?**: `boolean` + +#### detectionSemanticThreshold? + +> `optional` **detectionSemanticThreshold?**: `number` + +#### detectionSlowPatternThreshold? + +> `optional` **detectionSlowPatternThreshold?**: `number` + +#### detectionThreatScoreThreshold? + +> `optional` **detectionThreatScoreThreshold?**: `number` + +#### dynamicRuleInterval? + +> `optional` **dynamicRuleInterval?**: `number` + +#### dynamicRulesCachePath? + +> `optional` **dynamicRulesCachePath?**: `string` \| `null` + +#### emergencyMode? + +> `optional` **emergencyMode?**: `boolean` + +#### emergencyWhitelist? + +> `optional` **emergencyWhitelist?**: `string`[] + +#### enableAgent? + +> `optional` **enableAgent?**: `boolean` + +#### enableCors? + +> `optional` **enableCors?**: `boolean` + +#### enabledDetectionCategories? + +> `optional` **enabledDetectionCategories?**: `string`[] + +#### enableDynamicRules? + +> `optional` **enableDynamicRules?**: `boolean` + +#### enableEnrichment? + +> `optional` **enableEnrichment?**: `boolean` + +#### enableIpBanning? + +> `optional` **enableIpBanning?**: `boolean` + +#### enableLogfire? + +> `optional` **enableLogfire?**: `boolean` + +#### enableOtel? + +> `optional` **enableOtel?**: `boolean` + +#### enablePenetrationDetection? + +> `optional` **enablePenetrationDetection?**: `boolean` + +#### enableRateLimitAutoBan? + +> `optional` **enableRateLimitAutoBan?**: `boolean` + +#### enableRateLimiting? + +> `optional` **enableRateLimiting?**: `boolean` + +#### enableRedis? + +> `optional` **enableRedis?**: `boolean` + +#### endpointRateLimits? + +> `optional` **endpointRateLimits?**: `Record`\<`string`, \[`number`, `number`\]\> + +#### enforceHttps? + +> `optional` **enforceHttps?**: `boolean` + +#### excludedDetectionBodyFields? + +> `optional` **excludedDetectionBodyFields?**: `string`[] + +#### excludedDetectionHeaders? + +> `optional` **excludedDetectionHeaders?**: `string`[] + +#### excludedDetectionParams? + +> `optional` **excludedDetectionParams?**: `string`[] + +#### excludedSemanticDetectionHeaders? + +> `optional` **excludedSemanticDetectionHeaders?**: `string`[] + +#### excludePaths? + +> `optional` **excludePaths?**: `string`[] + +#### exemptIps? + +> `optional` **exemptIps?**: `string`[] + +#### failSecure? + +> `optional` **failSecure?**: `boolean` + +#### geoIpDbMaxAge? + +> `optional` **geoIpDbMaxAge?**: `number` + +#### geoIpHandler? + +> `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) + +#### geoResolver? + +> `optional` **geoResolver?**: (`ip`) => `string` \| `null` + +##### Parameters + +###### ip + +`string` + +##### Returns + +`string` \| `null` + +#### globalBehaviorRules? + +> `optional` **globalBehaviorRules?**: `object`[] + +#### ipinfoDbPath? + +> `optional` **ipinfoDbPath?**: `string` + +#### ipinfoToken? + +> `optional` **ipinfoToken?**: `string` \| `null` + +#### lazyInit? + +> `optional` **lazyInit?**: `boolean` + +#### logCountryCheckLevel? + +> `optional` **logCountryCheckLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName? + +> `optional` **logfireServiceName?**: `string` + +#### logFormat? + +> `optional` **logFormat?**: `"text"` \| `"json"` + +#### logger? + +> `optional` **logger?**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +#### logRequestLevel? + +> `optional` **logRequestLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logSensitiveBodyFields? + +> `optional` **logSensitiveBodyFields?**: `string`[] + +#### logSensitiveHeaders? + +> `optional` **logSensitiveHeaders?**: `string`[] + +#### logSensitiveParams? + +> `optional` **logSensitiveParams?**: `string`[] + +#### logSuspiciousLevel? + +> `optional` **logSuspiciousLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### mutedCheckLogs? + +> `optional` **mutedCheckLogs?**: `string`[] + +#### mutedEventTypes? + +> `optional` **mutedEventTypes?**: `string`[] + +#### mutedMetricTypes? + +> `optional` **mutedMetricTypes?**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint? + +> `optional` **otelExporterEndpoint?**: `string` \| `null` + +#### otelResourceAttributes? + +> `optional` **otelResourceAttributes?**: `Record`\<`string`, `string`\> + +#### otelServiceName? + +> `optional` **otelServiceName?**: `string` + +#### passiveMode? + +> `optional` **passiveMode?**: `boolean` + +#### rateLimit? + +> `optional` **rateLimit?**: `number` + +#### rateLimitWindow? + +> `optional` **rateLimitWindow?**: `number` + +#### redisFailOpen? + +> `optional` **redisFailOpen?**: `boolean` + +#### redisHealthCheckInterval? + +> `optional` **redisHealthCheckInterval?**: `number` + +#### redisMaxConnections? + +> `optional` **redisMaxConnections?**: `number` \| `null` + +#### redisPrefix? + +> `optional` **redisPrefix?**: `string` + +#### redisRetries? + +> `optional` **redisRetries?**: `number` + +#### redisSocketConnectTimeout? + +> `optional` **redisSocketConnectTimeout?**: `number` \| `null` + +#### redisSocketTimeout? + +> `optional` **redisSocketTimeout?**: `number` \| `null` + +#### redisUrl? + +> `optional` **redisUrl?**: `string` + +#### routeResolutionStrict? + +> `optional` **routeResolutionStrict?**: `boolean` + +#### securityHeaders? + +> `optional` **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? + +> `optional` **threatBanConfig?**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + +#### trustedProxies? + +> `optional` **trustedProxies?**: `string`[] + +#### trustedProxyDepth? + +> `optional` **trustedProxyDepth?**: `number` + +#### trustXForwardedProto? + +> `optional` **trustXForwardedProto?**: `boolean` + +#### whitelist? + +> `optional` **whitelist?**: `string`[] \| `null` + +#### whitelistCountries? + +> `optional` **whitelistCountries?**: `string`[] + +*** + +### geoIpHandler? + +> `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) + +Defined in: [packages/core/src/core/node-websocket-guard.ts:67](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L67) + +*** + +### guardDecorator? + +> `optional` **guardDecorator?**: `unknown` + +Defined in: [packages/core/src/core/node-websocket-guard.ts:68](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/node-websocket-guard.ts#L68) diff --git a/docs/src/content/docs/api/core/src/interfaces/OtelHandlerConfig.md b/docs/src/content/docs/api/core/src/interfaces/OtelHandlerConfig.md new file mode 100644 index 0000000..c1a72c7 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/OtelHandlerConfig.md @@ -0,0 +1,42 @@ +--- +editUrl: false +next: false +prev: false +title: "OtelHandlerConfig" +--- + +Defined in: [packages/core/src/core/events/otel-handler.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L44) + +## Properties + +### exporterEndpoint? + +> `optional` **exporterEndpoint?**: `string` \| `null` + +Defined in: [packages/core/src/core/events/otel-handler.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L47) + +*** + +### instrumentation? + +> `optional` **instrumentation?**: [`OtelInstrumentation`](/guard-core-ts/api/core/src/interfaces/otelinstrumentation/) \| `null` + +Defined in: [packages/core/src/core/events/otel-handler.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L49) + +The wired OTel SDK; null (the default) keeps the handler disabled. + +*** + +### resourceAttributes? + +> `optional` **resourceAttributes?**: `Record`\<`string`, `string`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L46) + +*** + +### serviceName + +> **serviceName**: `string` + +Defined in: [packages/core/src/core/events/otel-handler.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L45) diff --git a/docs/src/content/docs/api/core/src/interfaces/OtelInstrumentation.md b/docs/src/content/docs/api/core/src/interfaces/OtelInstrumentation.md new file mode 100644 index 0000000..c054459 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/OtelInstrumentation.md @@ -0,0 +1,101 @@ +--- +editUrl: false +next: false +prev: false +title: "OtelInstrumentation" +--- + +Defined in: [packages/core/src/core/events/otel-handler.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L31) + +## Methods + +### addCounter() + +> **addCounter**(`name`, `value`, `attributes`): `void` + +Defined in: [packages/core/src/core/events/otel-handler.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L40) + +#### Parameters + +##### name + +`string` + +##### value + +`number` + +##### attributes + +`Record`\<`string`, `string`\> + +#### Returns + +`void` + +*** + +### recordHistogram() + +> **recordHistogram**(`name`, `value`, `attributes`): `void` + +Defined in: [packages/core/src/core/events/otel-handler.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L39) + +#### Parameters + +##### name + +`string` + +##### value + +`number` + +##### attributes + +`Record`\<`string`, `string`\> + +#### Returns + +`void` + +*** + +### shutdown() + +> **shutdown**(): `Promise`\<`void`\> + +Defined in: [packages/core/src/core/events/otel-handler.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L41) + +#### Returns + +`Promise`\<`void`\> + +*** + +### startSpan() + +> **startSpan**(`name`, `attributes`, `parent?`): `void` + +Defined in: [packages/core/src/core/events/otel-handler.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L34) + +Record a span for one security event. The parent trace context comes + from the event metadata (traceparent/tracestate) when present. + +#### Parameters + +##### name + +`string` + +##### attributes + +`Record`\<`string`, `string` \| `number`\> + +##### parent? + +[`OtelTraceContext`](/guard-core-ts/api/core/src/interfaces/oteltracecontext/) + +#### Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/interfaces/OtelTraceContext.md b/docs/src/content/docs/api/core/src/interfaces/OtelTraceContext.md new file mode 100644 index 0000000..07ebc77 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/OtelTraceContext.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "OtelTraceContext" +--- + +Defined in: [packages/core/src/core/events/otel-handler.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L26) + +## Properties + +### traceparent? + +> `optional` **traceparent?**: `string` + +Defined in: [packages/core/src/core/events/otel-handler.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L27) + +*** + +### tracestate? + +> `optional` **tracestate?**: `string` + +Defined in: [packages/core/src/core/events/otel-handler.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/otel-handler.ts#L28) diff --git a/docs/src/content/docs/api/core/src/interfaces/PathRouteConfigEntry.md b/docs/src/content/docs/api/core/src/interfaces/PathRouteConfigEntry.md new file mode 100644 index 0000000..84c1b06 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/PathRouteConfigEntry.md @@ -0,0 +1,37 @@ +--- +editUrl: false +next: false +prev: false +title: "PathRouteConfigEntry" +--- + +Defined in: [packages/core/src/core/routing/resolver.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L9) + +One adapter-registered per-route config: a framework route identity + (optionally method-scoped) bound to a RouteConfig. Path matching is exact + against the request path, or a prefix match when the entry path ends with + `/*` (matching the prefix itself and everything under it). + +## Properties + +### config + +> **config**: [`RouteConfig`](/guard-core-ts/api/core/src/classes/routeconfig/) + +Defined in: [packages/core/src/core/routing/resolver.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L12) + +*** + +### method? + +> `optional` **method?**: `string` + +Defined in: [packages/core/src/core/routing/resolver.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L10) + +*** + +### path + +> **path**: `string` + +Defined in: [packages/core/src/core/routing/resolver.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/resolver.ts#L11) diff --git a/docs/src/content/docs/api/core/src/interfaces/PatternReport.md b/docs/src/content/docs/api/core/src/interfaces/PatternReport.md index e20414d..d42b912 100644 --- a/docs/src/content/docs/api/core/src/interfaces/PatternReport.md +++ b/docs/src/content/docs/api/core/src/interfaces/PatternReport.md @@ -5,7 +5,7 @@ prev: false title: "PatternReport" --- -Defined in: [core/src/detection-engine/monitor.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L23) +Defined in: [packages/core/src/detection-engine/monitor.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L23) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/detection-engine/monitor.ts:23](https://github.com/Guard-C > **avgExecutionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L31) +Defined in: [packages/core/src/detection-engine/monitor.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L31) *** @@ -21,7 +21,7 @@ Defined in: [core/src/detection-engine/monitor.ts:31](https://github.com/Guard-C > `optional` **issue?**: `string` -Defined in: [core/src/detection-engine/monitor.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L34) +Defined in: [packages/core/src/detection-engine/monitor.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L34) *** @@ -29,7 +29,7 @@ Defined in: [core/src/detection-engine/monitor.ts:34](https://github.com/Guard-C > **matchRate**: `number` -Defined in: [core/src/detection-engine/monitor.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L29) +Defined in: [packages/core/src/detection-engine/monitor.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L29) *** @@ -37,7 +37,7 @@ Defined in: [core/src/detection-engine/monitor.ts:29](https://github.com/Guard-C > **maxExecutionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L32) +Defined in: [packages/core/src/detection-engine/monitor.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L32) *** @@ -45,7 +45,7 @@ Defined in: [core/src/detection-engine/monitor.ts:32](https://github.com/Guard-C > **minExecutionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:33](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L33) +Defined in: [packages/core/src/detection-engine/monitor.ts:33](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L33) *** @@ -53,7 +53,7 @@ Defined in: [core/src/detection-engine/monitor.ts:33](https://github.com/Guard-C > **pattern**: `string` -Defined in: [core/src/detection-engine/monitor.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L24) +Defined in: [packages/core/src/detection-engine/monitor.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L24) *** @@ -61,7 +61,7 @@ Defined in: [core/src/detection-engine/monitor.ts:24](https://github.com/Guard-C > **patternHash**: `string` -Defined in: [core/src/detection-engine/monitor.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L25) +Defined in: [packages/core/src/detection-engine/monitor.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L25) *** @@ -69,7 +69,7 @@ Defined in: [core/src/detection-engine/monitor.ts:25](https://github.com/Guard-C > **timeoutRate**: `number` -Defined in: [core/src/detection-engine/monitor.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L30) +Defined in: [packages/core/src/detection-engine/monitor.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L30) *** @@ -77,7 +77,7 @@ Defined in: [core/src/detection-engine/monitor.ts:30](https://github.com/Guard-C > **totalExecutions**: `number` -Defined in: [core/src/detection-engine/monitor.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L26) +Defined in: [packages/core/src/detection-engine/monitor.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L26) *** @@ -85,7 +85,7 @@ Defined in: [core/src/detection-engine/monitor.ts:26](https://github.com/Guard-C > **totalMatches**: `number` -Defined in: [core/src/detection-engine/monitor.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L27) +Defined in: [packages/core/src/detection-engine/monitor.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L27) *** @@ -93,4 +93,4 @@ Defined in: [core/src/detection-engine/monitor.ts:27](https://github.com/Guard-C > **totalTimeouts**: `number` -Defined in: [core/src/detection-engine/monitor.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L28) +Defined in: [packages/core/src/detection-engine/monitor.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L28) diff --git a/docs/src/content/docs/api/core/src/interfaces/PatternStats.md b/docs/src/content/docs/api/core/src/interfaces/PatternStats.md index 43da479..0a09cb3 100644 --- a/docs/src/content/docs/api/core/src/interfaces/PatternStats.md +++ b/docs/src/content/docs/api/core/src/interfaces/PatternStats.md @@ -5,7 +5,7 @@ prev: false title: "PatternStats" --- -Defined in: [core/src/detection-engine/monitor.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L12) +Defined in: [packages/core/src/detection-engine/monitor.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L12) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/detection-engine/monitor.ts:12](https://github.com/Guard-C > **avgExecutionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L17) +Defined in: [packages/core/src/detection-engine/monitor.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L17) *** @@ -21,7 +21,7 @@ Defined in: [core/src/detection-engine/monitor.ts:17](https://github.com/Guard-C > **maxExecutionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L18) +Defined in: [packages/core/src/detection-engine/monitor.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L18) *** @@ -29,7 +29,7 @@ Defined in: [core/src/detection-engine/monitor.ts:18](https://github.com/Guard-C > **minExecutionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L19) +Defined in: [packages/core/src/detection-engine/monitor.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L19) *** @@ -37,7 +37,7 @@ Defined in: [core/src/detection-engine/monitor.ts:19](https://github.com/Guard-C > **pattern**: `string` -Defined in: [core/src/detection-engine/monitor.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L13) +Defined in: [packages/core/src/detection-engine/monitor.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L13) *** @@ -45,7 +45,7 @@ Defined in: [core/src/detection-engine/monitor.ts:13](https://github.com/Guard-C > **recentTimes**: `number`[] -Defined in: [core/src/detection-engine/monitor.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L20) +Defined in: [packages/core/src/detection-engine/monitor.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L20) *** @@ -53,7 +53,7 @@ Defined in: [core/src/detection-engine/monitor.ts:20](https://github.com/Guard-C > **totalExecutions**: `number` -Defined in: [core/src/detection-engine/monitor.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L14) +Defined in: [packages/core/src/detection-engine/monitor.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L14) *** @@ -61,7 +61,7 @@ Defined in: [core/src/detection-engine/monitor.ts:14](https://github.com/Guard-C > **totalMatches**: `number` -Defined in: [core/src/detection-engine/monitor.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L15) +Defined in: [packages/core/src/detection-engine/monitor.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L15) *** @@ -69,4 +69,4 @@ Defined in: [core/src/detection-engine/monitor.ts:15](https://github.com/Guard-C > **totalTimeouts**: `number` -Defined in: [core/src/detection-engine/monitor.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L16) +Defined in: [packages/core/src/detection-engine/monitor.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L16) diff --git a/docs/src/content/docs/api/core/src/interfaces/PerformanceMetric.md b/docs/src/content/docs/api/core/src/interfaces/PerformanceMetric.md index d060466..046738a 100644 --- a/docs/src/content/docs/api/core/src/interfaces/PerformanceMetric.md +++ b/docs/src/content/docs/api/core/src/interfaces/PerformanceMetric.md @@ -5,7 +5,7 @@ prev: false title: "PerformanceMetric" --- -Defined in: [core/src/detection-engine/monitor.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L3) +Defined in: [packages/core/src/detection-engine/monitor.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L3) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/detection-engine/monitor.ts:3](https://github.com/Guard-Co > **contentLength**: `number` -Defined in: [core/src/detection-engine/monitor.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L6) +Defined in: [packages/core/src/detection-engine/monitor.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L6) *** @@ -21,7 +21,7 @@ Defined in: [core/src/detection-engine/monitor.ts:6](https://github.com/Guard-Co > **executionTime**: `number` -Defined in: [core/src/detection-engine/monitor.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L5) +Defined in: [packages/core/src/detection-engine/monitor.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L5) *** @@ -29,7 +29,7 @@ Defined in: [core/src/detection-engine/monitor.ts:5](https://github.com/Guard-Co > **matched**: `boolean` -Defined in: [core/src/detection-engine/monitor.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L8) +Defined in: [packages/core/src/detection-engine/monitor.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L8) *** @@ -37,7 +37,7 @@ Defined in: [core/src/detection-engine/monitor.ts:8](https://github.com/Guard-Co > **pattern**: `string` -Defined in: [core/src/detection-engine/monitor.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L4) +Defined in: [packages/core/src/detection-engine/monitor.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L4) *** @@ -45,7 +45,7 @@ Defined in: [core/src/detection-engine/monitor.ts:4](https://github.com/Guard-Co > **timeout**: `boolean` -Defined in: [core/src/detection-engine/monitor.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L9) +Defined in: [packages/core/src/detection-engine/monitor.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L9) *** @@ -53,4 +53,4 @@ Defined in: [core/src/detection-engine/monitor.ts:9](https://github.com/Guard-Co > **timestamp**: `Date` -Defined in: [core/src/detection-engine/monitor.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/monitor.ts#L7) +Defined in: [packages/core/src/detection-engine/monitor.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/monitor.ts#L7) diff --git a/docs/src/content/docs/api/core/src/interfaces/RedisHandlerProtocol.md b/docs/src/content/docs/api/core/src/interfaces/RedisHandlerProtocol.md index 3ebcd53..403bc31 100644 --- a/docs/src/content/docs/api/core/src/interfaces/RedisHandlerProtocol.md +++ b/docs/src/content/docs/api/core/src/interfaces/RedisHandlerProtocol.md @@ -5,7 +5,7 @@ prev: false title: "RedisHandlerProtocol" --- -Defined in: [core/src/protocols/redis.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L1) +Defined in: [packages/core/src/protocols/redis.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L1) ## Methods @@ -13,7 +13,7 @@ Defined in: [core/src/protocols/redis.ts:1](https://github.com/Guard-Core/guard- > **delete**(`namespace`, `key`): `Promise`\<`number` \| `null`\> -Defined in: [core/src/protocols/redis.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L4) +Defined in: [packages/core/src/protocols/redis.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L4) #### Parameters @@ -35,7 +35,7 @@ Defined in: [core/src/protocols/redis.ts:4](https://github.com/Guard-Core/guard- > **getConnection**(): `AsyncDisposable` -Defined in: [core/src/protocols/redis.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L7) +Defined in: [packages/core/src/protocols/redis.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L7) #### Returns @@ -47,7 +47,7 @@ Defined in: [core/src/protocols/redis.ts:7](https://github.com/Guard-Core/guard- > **getKey**(`namespace`, `key`): `Promise`\<`unknown`\> -Defined in: [core/src/protocols/redis.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L2) +Defined in: [packages/core/src/protocols/redis.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L2) #### Parameters @@ -69,7 +69,7 @@ Defined in: [core/src/protocols/redis.ts:2](https://github.com/Guard-Core/guard- > **initialize**(): `Promise`\<`void`\> -Defined in: [core/src/protocols/redis.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L6) +Defined in: [packages/core/src/protocols/redis.ts:6](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L6) #### Returns @@ -81,7 +81,7 @@ Defined in: [core/src/protocols/redis.ts:6](https://github.com/Guard-Core/guard- > **keys**(`pattern`): `Promise`\<`string`[] \| `null`\> -Defined in: [core/src/protocols/redis.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L5) +Defined in: [packages/core/src/protocols/redis.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L5) #### Parameters @@ -99,7 +99,7 @@ Defined in: [core/src/protocols/redis.ts:5](https://github.com/Guard-Core/guard- > **setKey**(`namespace`, `key`, `value`, `ttl?`): `Promise`\<`boolean` \| `null`\> -Defined in: [core/src/protocols/redis.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/protocols/redis.ts#L3) +Defined in: [packages/core/src/protocols/redis.ts:3](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/redis.ts#L3) #### Parameters diff --git a/docs/src/content/docs/api/core/src/interfaces/ResolvedDetectionExclusions.md b/docs/src/content/docs/api/core/src/interfaces/ResolvedDetectionExclusions.md new file mode 100644 index 0000000..d69ba29 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/ResolvedDetectionExclusions.md @@ -0,0 +1,60 @@ +--- +editUrl: false +next: false +prev: false +title: "ResolvedDetectionExclusions" +--- + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L14) + +The resolved exclusion set for one request. enabledCategories is null + when every category scans (the reference passes None through to the + scanners); scanBody defaults to true. + +## Properties + +### enabledCategories + +> **enabledCategories**: `ReadonlySet`\<`string`\> \| `null` + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L21) + +*** + +### excludedBodyFields + +> **excludedBodyFields**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L16) + +*** + +### excludedHeaders + +> **excludedHeaders**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L17) + +*** + +### excludedParams + +> **excludedParams**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L15) + +*** + +### excludedSemanticHeaders + +> **excludedSemanticHeaders**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L20) + +*** + +### scanBody + +> **scanBody**: `boolean` + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L22) diff --git a/docs/src/content/docs/api/core/src/interfaces/SecurityAgentConfigInput.md b/docs/src/content/docs/api/core/src/interfaces/SecurityAgentConfigInput.md new file mode 100644 index 0000000..8c05f34 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/SecurityAgentConfigInput.md @@ -0,0 +1,212 @@ +--- +editUrl: false +next: false +prev: false +title: "SecurityAgentConfigInput" +--- + +Defined in: [packages/core/src/models/agent-config.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L32) + +Structural GuardAgent constructor input. Field docs live on the agent's +AgentConfig; only apiKey is required, every other field is optional so the +agent defaults apply where the SecurityConfig left them unset. + +## Properties + +### apiKey + +> **apiKey**: `string` + +Defined in: [packages/core/src/models/agent-config.ts:33](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L33) + +*** + +### backoffFactor? + +> `optional` **backoffFactor?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L47) + +*** + +### bufferOverflowPolicy? + +> `optional` **bufferOverflowPolicy?**: [`SecurityBufferOverflowPolicy`](/guard-core-ts/api/core/src/type-aliases/securitybufferoverflowpolicy/) + +Defined in: [packages/core/src/models/agent-config.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L42) + +*** + +### bufferSize? + +> `optional` **bufferSize?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L36) + +*** + +### compressionEnabled? + +> `optional` **compressionEnabled?**: `boolean` + +Defined in: [packages/core/src/models/agent-config.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L52) + +*** + +### compressionThreshold? + +> `optional` **compressionThreshold?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L53) + +*** + +### dynamicRuleInterval? + +> `optional` **dynamicRuleInterval?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L38) + +*** + +### enableEvents? + +> `optional` **enableEvents?**: `boolean` + +Defined in: [packages/core/src/models/agent-config.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L44) + +*** + +### enableMetrics? + +> `optional` **enableMetrics?**: `boolean` + +Defined in: [packages/core/src/models/agent-config.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L43) + +*** + +### endpoint? + +> `optional` **endpoint?**: `string` + +Defined in: [packages/core/src/models/agent-config.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L34) + +*** + +### flushInterval? + +> `optional` **flushInterval?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L37) + +*** + +### guardCoreVersion? + +> `optional` **guardCoreVersion?**: `string` \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L51) + +*** + +### guardVersion? + +> `optional` **guardVersion?**: `string` \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L50) + +*** + +### highWatermarkRatio? + +> `optional` **highWatermarkRatio?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L40) + +*** + +### installId? + +> `optional` **installId?**: `string` \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L54) + +*** + +### maxConcurrentFlushes? + +> `optional` **maxConcurrentFlushes?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L41) + +*** + +### maxPayloadSize? + +> `optional` **maxPayloadSize?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L49) + +*** + +### onError? + +> `optional` **onError?**: [`SecurityErrorHook`](/guard-core-ts/api/core/src/type-aliases/securityerrorhook/) + +Defined in: [packages/core/src/models/agent-config.ts:57](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L57) + +*** + +### payloadSigningSecret? + +> `optional` **payloadSigningSecret?**: `string` \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L55) + +*** + +### projectEncryptionKey? + +> `optional` **projectEncryptionKey?**: `string` \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L56) + +*** + +### projectId? + +> `optional` **projectId?**: `string` \| `null` + +Defined in: [packages/core/src/models/agent-config.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L35) + +*** + +### retryAttempts? + +> `optional` **retryAttempts?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L45) + +*** + +### sensitiveHeaders? + +> `optional` **sensitiveHeaders?**: `string`[] + +Defined in: [packages/core/src/models/agent-config.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L48) + +*** + +### statusInterval? + +> `optional` **statusInterval?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L39) + +*** + +### timeout? + +> `optional` **timeout?**: `number` + +Defined in: [packages/core/src/models/agent-config.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L46) diff --git a/docs/src/content/docs/api/core/src/interfaces/SecurityMiddlewareComponents.md b/docs/src/content/docs/api/core/src/interfaces/SecurityMiddlewareComponents.md index c9f9f98..4b008f5 100644 --- a/docs/src/content/docs/api/core/src/interfaces/SecurityMiddlewareComponents.md +++ b/docs/src/content/docs/api/core/src/interfaces/SecurityMiddlewareComponents.md @@ -5,7 +5,7 @@ prev: false title: "SecurityMiddlewareComponents" --- -Defined in: [core/src/middleware-support.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L39) +Defined in: [packages/core/src/middleware-support.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L40) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/middleware-support.ts:39](https://github.com/Guard-Core/gu > **behavioralProcessor**: [`BehavioralProcessor`](/guard-core-ts/api/core/src/classes/behavioralprocessor/) -Defined in: [core/src/middleware-support.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L48) +Defined in: [packages/core/src/middleware-support.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L49) *** @@ -21,7 +21,7 @@ Defined in: [core/src/middleware-support.ts:48](https://github.com/Guard-Core/gu > **bypassHandler**: [`BypassHandler`](/guard-core-ts/api/core/src/classes/bypasshandler/) -Defined in: [core/src/middleware-support.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L46) +Defined in: [packages/core/src/middleware-support.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L47) *** @@ -29,7 +29,7 @@ Defined in: [core/src/middleware-support.ts:46](https://github.com/Guard-Core/gu > **errorResponseFactory**: [`ErrorResponseFactory`](/guard-core-ts/api/core/src/classes/errorresponsefactory/) -Defined in: [core/src/middleware-support.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L47) +Defined in: [packages/core/src/middleware-support.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L48) *** @@ -37,7 +37,7 @@ Defined in: [core/src/middleware-support.ts:47](https://github.com/Guard-Core/gu > **eventBus**: [`SecurityEventBus`](/guard-core-ts/api/core/src/classes/securityeventbus/) -Defined in: [core/src/middleware-support.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L42) +Defined in: [packages/core/src/middleware-support.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L43) *** @@ -45,7 +45,7 @@ Defined in: [core/src/middleware-support.ts:42](https://github.com/Guard-Core/gu > **metricsCollector**: [`MetricsCollector`](/guard-core-ts/api/core/src/classes/metricscollector/) -Defined in: [core/src/middleware-support.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L43) +Defined in: [packages/core/src/middleware-support.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L44) *** @@ -53,7 +53,7 @@ Defined in: [core/src/middleware-support.ts:43](https://github.com/Guard-Core/gu > **middlewareProtocol**: [`GuardMiddlewareProtocol`](/guard-core-ts/api/core/src/interfaces/guardmiddlewareprotocol/) -Defined in: [core/src/middleware-support.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L49) +Defined in: [packages/core/src/middleware-support.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L50) *** @@ -61,7 +61,7 @@ Defined in: [core/src/middleware-support.ts:49](https://github.com/Guard-Core/gu > **pipeline**: [`SecurityCheckPipeline`](/guard-core-ts/api/core/src/classes/securitycheckpipeline/) -Defined in: [core/src/middleware-support.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L41) +Defined in: [packages/core/src/middleware-support.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L42) *** @@ -69,7 +69,7 @@ Defined in: [core/src/middleware-support.ts:41](https://github.com/Guard-Core/gu > **registry**: [`HandlerRegistry`](/guard-core-ts/api/core/src/interfaces/handlerregistry/) -Defined in: [core/src/middleware-support.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L40) +Defined in: [packages/core/src/middleware-support.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L41) *** @@ -77,7 +77,7 @@ Defined in: [core/src/middleware-support.ts:40](https://github.com/Guard-Core/gu > **routeResolver**: [`RouteConfigResolver`](/guard-core-ts/api/core/src/classes/routeconfigresolver/) -Defined in: [core/src/middleware-support.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L45) +Defined in: [packages/core/src/middleware-support.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L46) *** @@ -85,4 +85,4 @@ Defined in: [core/src/middleware-support.ts:45](https://github.com/Guard-Core/gu > **validator**: [`RequestValidator`](/guard-core-ts/api/core/src/classes/requestvalidator/) -Defined in: [core/src/middleware-support.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/middleware-support.ts#L44) +Defined in: [packages/core/src/middleware-support.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/middleware-support.ts#L45) diff --git a/docs/src/content/docs/api/core/src/interfaces/SemanticAnalysis.md b/docs/src/content/docs/api/core/src/interfaces/SemanticAnalysis.md index fd84a7b..61662e4 100644 --- a/docs/src/content/docs/api/core/src/interfaces/SemanticAnalysis.md +++ b/docs/src/content/docs/api/core/src/interfaces/SemanticAnalysis.md @@ -5,7 +5,7 @@ prev: false title: "SemanticAnalysis" --- -Defined in: [core/src/detection-engine/semantic.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L44) +Defined in: [packages/core/src/detection-engine/semantic.ts:100](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L100) ## Properties @@ -13,7 +13,7 @@ Defined in: [core/src/detection-engine/semantic.ts:44](https://github.com/Guard- > **attackProbabilities**: `Record`\<`string`, `number`\> -Defined in: [core/src/detection-engine/semantic.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L45) +Defined in: [packages/core/src/detection-engine/semantic.ts:101](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L101) *** @@ -21,7 +21,7 @@ Defined in: [core/src/detection-engine/semantic.ts:45](https://github.com/Guard- > **codeInjectionRisk**: `number` -Defined in: [core/src/detection-engine/semantic.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L55) +Defined in: [packages/core/src/detection-engine/semantic.ts:106](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L106) *** @@ -29,7 +29,7 @@ Defined in: [core/src/detection-engine/semantic.ts:55](https://github.com/Guard- > **encodingLayers**: `number` -Defined in: [core/src/detection-engine/semantic.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L47) +Defined in: [packages/core/src/detection-engine/semantic.ts:103](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L103) *** @@ -37,7 +37,7 @@ Defined in: [core/src/detection-engine/semantic.ts:47](https://github.com/Guard- > **entropy**: `number` -Defined in: [core/src/detection-engine/semantic.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L46) +Defined in: [packages/core/src/detection-engine/semantic.ts:102](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L102) *** @@ -45,31 +45,15 @@ Defined in: [core/src/detection-engine/semantic.ts:46](https://github.com/Guard- > **isObfuscated**: `boolean` -Defined in: [core/src/detection-engine/semantic.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L48) +Defined in: [packages/core/src/detection-engine/semantic.ts:104](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L104) *** ### suspiciousPatterns -> **suspiciousPatterns**: `object`[] +> **suspiciousPatterns**: `SuspiciousPattern`[] -Defined in: [core/src/detection-engine/semantic.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L49) - -#### context - -> **context**: `string` - -#### pattern - -> **pattern**: `string` - -#### position - -> **position**: `number` - -#### type - -> **type**: `string` +Defined in: [packages/core/src/detection-engine/semantic.ts:105](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L105) *** @@ -77,4 +61,4 @@ Defined in: [core/src/detection-engine/semantic.ts:49](https://github.com/Guard- > **tokenCount**: `number` -Defined in: [core/src/detection-engine/semantic.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/detection-engine/semantic.ts#L56) +Defined in: [packages/core/src/detection-engine/semantic.ts:107](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/detection-engine/semantic.ts#L107) diff --git a/docs/src/content/docs/api/core/src/interfaces/WebSocketCloseReason.md b/docs/src/content/docs/api/core/src/interfaces/WebSocketCloseReason.md new file mode 100644 index 0000000..3c5aa92 --- /dev/null +++ b/docs/src/content/docs/api/core/src/interfaces/WebSocketCloseReason.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "WebSocketCloseReason" +--- + +Defined in: [packages/core/src/core/websocket-guard.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L39) + +## Properties + +### code + +> **code**: `number` + +Defined in: [packages/core/src/core/websocket-guard.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L40) + +*** + +### reason + +> **reason**: `string` + +Defined in: [packages/core/src/core/websocket-guard.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L41) diff --git a/docs/src/content/docs/api/core/src/type-aliases/BehaviorAction.md b/docs/src/content/docs/api/core/src/type-aliases/BehaviorAction.md index a25dd91..3a4f1d7 100644 --- a/docs/src/content/docs/api/core/src/type-aliases/BehaviorAction.md +++ b/docs/src/content/docs/api/core/src/type-aliases/BehaviorAction.md @@ -7,4 +7,4 @@ title: "BehaviorAction" > **BehaviorAction** = `"ban"` \| `"log"` \| `"throttle"` \| `"alert"` -Defined in: [core/src/models/behavior-rule.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L2) +Defined in: [packages/core/src/models/behavior-rule.ts:2](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L2) diff --git a/docs/src/content/docs/api/core/src/type-aliases/BehaviorRuleType.md b/docs/src/content/docs/api/core/src/type-aliases/BehaviorRuleType.md index 325cf6d..709e218 100644 --- a/docs/src/content/docs/api/core/src/type-aliases/BehaviorRuleType.md +++ b/docs/src/content/docs/api/core/src/type-aliases/BehaviorRuleType.md @@ -7,4 +7,4 @@ title: "BehaviorRuleType" > **BehaviorRuleType** = `"usage"` \| `"return_pattern"` \| `"frequency"` -Defined in: [core/src/models/behavior-rule.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/behavior-rule.ts#L1) +Defined in: [packages/core/src/models/behavior-rule.ts:1](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/behavior-rule.ts#L1) diff --git a/docs/src/content/docs/api/core/src/type-aliases/CloudIpStoreFactory.md b/docs/src/content/docs/api/core/src/type-aliases/CloudIpStoreFactory.md new file mode 100644 index 0000000..9187b6c --- /dev/null +++ b/docs/src/content/docs/api/core/src/type-aliases/CloudIpStoreFactory.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "CloudIpStoreFactory" +--- + +> **CloudIpStoreFactory** = (`redisHandler`) => [`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) + +Defined in: [packages/core/src/protocols/cloud-ip-store.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/protocols/cloud-ip-store.ts#L19) + +## Parameters + +### redisHandler + +[`RedisHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/redishandlerprotocol/) + +## Returns + +[`CloudIpStoreProtocol`](/guard-core-ts/api/core/src/interfaces/cloudipstoreprotocol/) diff --git a/docs/src/content/docs/api/core/src/type-aliases/DynamicRules.md b/docs/src/content/docs/api/core/src/type-aliases/DynamicRules.md index 20cda15..aef39fb 100644 --- a/docs/src/content/docs/api/core/src/type-aliases/DynamicRules.md +++ b/docs/src/content/docs/api/core/src/type-aliases/DynamicRules.md @@ -7,4 +7,4 @@ title: "DynamicRules" > **DynamicRules** = `z.output`\<*typeof* [`DynamicRulesSchema`](/guard-core-ts/api/core/src/variables/dynamicrulesschema/)\> -Defined in: [core/src/models/dynamic-rules.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/dynamic-rules.ts#L32) +Defined in: [packages/core/src/models/dynamic-rules.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/dynamic-rules.ts#L35) diff --git a/docs/src/content/docs/api/core/src/type-aliases/OnBlockHook.md b/docs/src/content/docs/api/core/src/type-aliases/OnBlockHook.md new file mode 100644 index 0000000..a1f8190 --- /dev/null +++ b/docs/src/content/docs/api/core/src/type-aliases/OnBlockHook.md @@ -0,0 +1,24 @@ +--- +editUrl: false +next: false +prev: false +title: "OnBlockHook" +--- + +> **OnBlockHook** = (`request`, `payload`) => `unknown` + +Defined in: [packages/core/src/core/block-events.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L20) + +## Parameters + +### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +### payload + +`Record`\<`string`, `unknown`\> + +## Returns + +`unknown` diff --git a/docs/src/content/docs/api/core/src/type-aliases/OnErrorHook.md b/docs/src/content/docs/api/core/src/type-aliases/OnErrorHook.md new file mode 100644 index 0000000..6291a54 --- /dev/null +++ b/docs/src/content/docs/api/core/src/type-aliases/OnErrorHook.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "OnErrorHook" +--- + +> **OnErrorHook** = (`stage`, `error`, `context`) => `void` + +Defined in: [packages/core/src/core/block-events.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L25) + +## Parameters + +### stage + +`string` + +### error + +`unknown` + +### context + +`Record`\<`string`, `unknown`\> + +## Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/type-aliases/ResolvedSecurityConfig.md b/docs/src/content/docs/api/core/src/type-aliases/ResolvedSecurityConfig.md index 75b45dc..d1b8788 100644 --- a/docs/src/content/docs/api/core/src/type-aliases/ResolvedSecurityConfig.md +++ b/docs/src/content/docs/api/core/src/type-aliases/ResolvedSecurityConfig.md @@ -7,4 +7,4 @@ title: "ResolvedSecurityConfig" > **ResolvedSecurityConfig** = `z.output`\<*typeof* [`SecurityConfigSchema`](/guard-core-ts/api/core/src/variables/securityconfigschema/)\> -Defined in: [core/src/models/config.ts:171](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/config.ts#L171) +Defined in: [packages/core/src/models/config.ts:497](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/config.ts#L497) diff --git a/docs/src/content/docs/api/core/src/type-aliases/SecurityBufferOverflowPolicy.md b/docs/src/content/docs/api/core/src/type-aliases/SecurityBufferOverflowPolicy.md new file mode 100644 index 0000000..58e40ca --- /dev/null +++ b/docs/src/content/docs/api/core/src/type-aliases/SecurityBufferOverflowPolicy.md @@ -0,0 +1,12 @@ +--- +editUrl: false +next: false +prev: false +title: "SecurityBufferOverflowPolicy" +--- + +> **SecurityBufferOverflowPolicy** = `"drop"` \| `"block"` \| `"raise"` + +Defined in: [packages/core/src/models/agent-config.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L18) + +Overflow behavior when the agent's in-memory buffer is full. diff --git a/docs/src/content/docs/api/core/src/type-aliases/SecurityConfig.md b/docs/src/content/docs/api/core/src/type-aliases/SecurityConfig.md index 90fd8e8..6b5e589 100644 --- a/docs/src/content/docs/api/core/src/type-aliases/SecurityConfig.md +++ b/docs/src/content/docs/api/core/src/type-aliases/SecurityConfig.md @@ -7,4 +7,4 @@ title: "SecurityConfig" > **SecurityConfig** = `z.input`\<*typeof* [`SecurityConfigSchema`](/guard-core-ts/api/core/src/variables/securityconfigschema/)\> -Defined in: [core/src/models/config.ts:170](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/config.ts#L170) +Defined in: [packages/core/src/models/config.ts:496](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/config.ts#L496) diff --git a/docs/src/content/docs/api/core/src/type-aliases/SecurityDecorator.md b/docs/src/content/docs/api/core/src/type-aliases/SecurityDecorator.md index a1a6b71..5cfd80e 100644 --- a/docs/src/content/docs/api/core/src/type-aliases/SecurityDecorator.md +++ b/docs/src/content/docs/api/core/src/type-aliases/SecurityDecorator.md @@ -7,4 +7,4 @@ title: "SecurityDecorator" > **SecurityDecorator** = `InstanceType`\<*typeof* [`SecurityDecorator`](/guard-core-ts/api/core/src/variables/securitydecorator/)\> -Defined in: [core/src/decorators/index.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/index.ts#L10) +Defined in: [packages/core/src/decorators/index.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/index.ts#L10) diff --git a/docs/src/content/docs/api/core/src/type-aliases/SecurityErrorHook.md b/docs/src/content/docs/api/core/src/type-aliases/SecurityErrorHook.md new file mode 100644 index 0000000..dad6ab7 --- /dev/null +++ b/docs/src/content/docs/api/core/src/type-aliases/SecurityErrorHook.md @@ -0,0 +1,30 @@ +--- +editUrl: false +next: false +prev: false +title: "SecurityErrorHook" +--- + +> **SecurityErrorHook** = (`stage`, `error`, `context`) => `void` + +Defined in: [packages/core/src/models/agent-config.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/agent-config.ts#L21) + +The (stage, error, context) failure callback shared with the agent. + +## Parameters + +### stage + +`string` + +### error + +`unknown` + +### context + +`Record`\<`string`, `unknown`\> + +## Returns + +`void` diff --git a/docs/src/content/docs/api/core/src/type-aliases/WebSocketGuardVerdict.md b/docs/src/content/docs/api/core/src/type-aliases/WebSocketGuardVerdict.md new file mode 100644 index 0000000..1f09a28 --- /dev/null +++ b/docs/src/content/docs/api/core/src/type-aliases/WebSocketGuardVerdict.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WebSocketGuardVerdict" +--- + +> **WebSocketGuardVerdict** = \{ `allowed`: `true`; `clientIp`: `string`; \} \| \{ `allowed`: `false`; `close`: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/); `httpReason`: `string`; `httpStatus`: `403`; \} + +Defined in: [packages/core/src/core/websocket-guard.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L51) diff --git a/docs/src/content/docs/api/core/src/variables/BEHAVIOR_CORRELATION_WINDOW_SECONDS.md b/docs/src/content/docs/api/core/src/variables/BEHAVIOR_CORRELATION_WINDOW_SECONDS.md new file mode 100644 index 0000000..05fc8ae --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/BEHAVIOR_CORRELATION_WINDOW_SECONDS.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "BEHAVIOR_CORRELATION_WINDOW_SECONDS" +--- + +> `const` **BEHAVIOR\_CORRELATION\_WINDOW\_SECONDS**: `300` = `300` + +Defined in: [packages/core/src/core/events/enricher.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L49) diff --git a/docs/src/content/docs/api/core/src/variables/DEFAULT_LOGGER_NAME.md b/docs/src/content/docs/api/core/src/variables/DEFAULT_LOGGER_NAME.md new file mode 100644 index 0000000..4ca9a08 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/DEFAULT_LOGGER_NAME.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "DEFAULT_LOGGER_NAME" +--- + +> `const` **DEFAULT\_LOGGER\_NAME**: `"guard_core"` = `'guard_core'` + +Defined in: [packages/core/src/models/logger-setup.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger-setup.ts#L32) diff --git a/docs/src/content/docs/api/core/src/variables/DEFAULT_OTEL_SERVICE_NAME.md b/docs/src/content/docs/api/core/src/variables/DEFAULT_OTEL_SERVICE_NAME.md new file mode 100644 index 0000000..97ca6ec --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/DEFAULT_OTEL_SERVICE_NAME.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "DEFAULT_OTEL_SERVICE_NAME" +--- + +> `const` **DEFAULT\_OTEL\_SERVICE\_NAME**: `"guard-core"` = `'guard-core'` + +Defined in: [packages/core/src/core/events/enricher.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L52) diff --git a/docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_FIELDS.md b/docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_FIELDS.md new file mode 100644 index 0000000..b4f18ab --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_FIELDS.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "DEFAULT_SENSITIVE_LOG_FIELDS" +--- + +> `const` **DEFAULT\_SENSITIVE\_LOG\_FIELDS**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/redaction.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L32) diff --git a/docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_HEADERS.md b/docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_HEADERS.md new file mode 100644 index 0000000..0658693 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/DEFAULT_SENSITIVE_LOG_HEADERS.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "DEFAULT_SENSITIVE_LOG_HEADERS" +--- + +> `const` **DEFAULT\_SENSITIVE\_LOG\_HEADERS**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/redaction.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/redaction.ts#L28) diff --git a/docs/src/content/docs/api/core/src/variables/DEFAULT_THREAT_SCORE.md b/docs/src/content/docs/api/core/src/variables/DEFAULT_THREAT_SCORE.md new file mode 100644 index 0000000..9f2c7b4 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/DEFAULT_THREAT_SCORE.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "DEFAULT_THREAT_SCORE" +--- + +> `const` **DEFAULT\_THREAT\_SCORE**: `20` = `20` + +Defined in: [packages/core/src/core/events/enricher.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L45) diff --git a/docs/src/content/docs/api/core/src/variables/DynamicRulesSchema.md b/docs/src/content/docs/api/core/src/variables/DynamicRulesSchema.md index 2a1d68c..cfba55f 100644 --- a/docs/src/content/docs/api/core/src/variables/DynamicRulesSchema.md +++ b/docs/src/content/docs/api/core/src/variables/DynamicRulesSchema.md @@ -5,6 +5,6 @@ prev: false title: "DynamicRulesSchema" --- -> `const` **DynamicRulesSchema**: `ZodObject`\<\{ `blockedCloudProviders`: `ZodPipe`\<`ZodDefault`\<`ZodArray`\<`ZodEnum`\<\{ `AWS`: `"AWS"`; `Azure`: `"Azure"`; `GCP`: `"GCP"`; \}\>\>\>, `ZodTransform`\<`Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>, (`"AWS"` \| `"GCP"` \| `"Azure"`)[]\>\>; `blockedCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `blockedUserAgents`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `emergencyMode`: `ZodDefault`\<`ZodBoolean`\>; `emergencyWhitelist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `enableIpBanning`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `enablePenetrationDetection`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `enableRateLimiting`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `endpointRateLimits`: `ZodDefault`\<`ZodRecord`\<`ZodString`, `ZodTuple`\<\[`ZodNumber`, `ZodNumber`\], `null`\>\>\>; `expiresAt`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `globalRateLimit`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `globalRateWindow`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `ipBanDuration`: `ZodDefault`\<`ZodNumber`\>; `ipBlacklist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `ipWhitelist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `ruleId`: `ZodString`; `suspiciousPatterns`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `timestamp`: `ZodString`; `ttl`: `ZodDefault`\<`ZodNumber`\>; `version`: `ZodNumber`; `whitelistCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; \}, `$strip`\> +> `const` **DynamicRulesSchema**: `ZodObject`\<\{ `autoBanDuration`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `autoBanThreshold`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `blockedCloudProviders`: `ZodPipe`\<`ZodDefault`\<`ZodArray`\<`ZodEnum`\<\{ `AWS`: `"AWS"`; `Azure`: `"Azure"`; `GCP`: `"GCP"`; \}\>\>\>, `ZodTransform`\<`Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>, (`"AWS"` \| `"GCP"` \| `"Azure"`)[]\>\>; `blockedCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `blockedUserAgents`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `emergencyMode`: `ZodDefault`\<`ZodBoolean`\>; `emergencyWhitelist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `enableIpBanning`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `enablePenetrationDetection`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `enableRateLimitAutoBan`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `enableRateLimiting`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `endpointRateLimits`: `ZodDefault`\<`ZodRecord`\<`ZodString`, `ZodTuple`\<\[`ZodNumber`, `ZodNumber`\], `null`\>\>\>; `expiresAt`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `globalRateLimit`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `globalRateWindow`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `ipBanDuration`: `ZodDefault`\<`ZodNumber`\>; `ipBlacklist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `ipWhitelist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `ruleId`: `ZodString`; `suspiciousPatterns`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `timestamp`: `ZodString`; `ttl`: `ZodDefault`\<`ZodNumber`\>; `version`: `ZodNumber`; `whitelistCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; \}, `$strip`\> -Defined in: [core/src/models/dynamic-rules.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/dynamic-rules.ts#L5) +Defined in: [packages/core/src/models/dynamic-rules.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/dynamic-rules.ts#L5) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_BEHAVIOR_KEY.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_BEHAVIOR_KEY.md new file mode 100644 index 0000000..aa121a0 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_BEHAVIOR_KEY.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_BEHAVIOR_KEY" +--- + +> `const` **ENRICHMENT\_KEY\_BEHAVIOR\_KEY**: `"guard.behavior.correlation_key"` = `'guard.behavior.correlation_key'` + +Defined in: [packages/core/src/core/events/enricher.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L41) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_DEPLOYMENT_ENV.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_DEPLOYMENT_ENV.md new file mode 100644 index 0000000..42d0374 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_DEPLOYMENT_ENV.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_DEPLOYMENT_ENV" +--- + +> `const` **ENRICHMENT\_KEY\_DEPLOYMENT\_ENV**: `"guard.deployment.environment"` = `'guard.deployment.environment'` + +Defined in: [packages/core/src/core/events/enricher.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L37) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_PROJECT_ID.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_PROJECT_ID.md new file mode 100644 index 0000000..e1315d4 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_PROJECT_ID.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_PROJECT_ID" +--- + +> `const` **ENRICHMENT\_KEY\_PROJECT\_ID**: `"guard.project_id"` = `'guard.project_id'` + +Defined in: [packages/core/src/core/events/enricher.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L35) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RECENT_EVENT_COUNT.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RECENT_EVENT_COUNT.md new file mode 100644 index 0000000..c4d1f82 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RECENT_EVENT_COUNT.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_RECENT_EVENT_COUNT" +--- + +> `const` **ENRICHMENT\_KEY\_RECENT\_EVENT\_COUNT**: `"guard.behavior.recent_event_count"` = `'guard.behavior.recent_event_count'` + +Defined in: [packages/core/src/core/events/enricher.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L42) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_ID.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_ID.md new file mode 100644 index 0000000..3e8a63a --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_ID.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_RULE_ID" +--- + +> `const` **ENRICHMENT\_KEY\_RULE\_ID**: `"guard.rule.id"` = `'guard.rule.id'` + +Defined in: [packages/core/src/core/events/enricher.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L39) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_VERSION.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_VERSION.md new file mode 100644 index 0000000..83494ff --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_RULE_VERSION.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_RULE_VERSION" +--- + +> `const` **ENRICHMENT\_KEY\_RULE\_VERSION**: `"guard.rule.version"` = `'guard.rule.version'` + +Defined in: [packages/core/src/core/events/enricher.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L40) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_SERVICE_NAME.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_SERVICE_NAME.md new file mode 100644 index 0000000..5afc18e --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_SERVICE_NAME.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_SERVICE_NAME" +--- + +> `const` **ENRICHMENT\_KEY\_SERVICE\_NAME**: `"guard.service.name"` = `'guard.service.name'` + +Defined in: [packages/core/src/core/events/enricher.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L36) diff --git a/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_THREAT_SCORE.md b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_THREAT_SCORE.md new file mode 100644 index 0000000..edbbcf8 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ENRICHMENT_KEY_THREAT_SCORE.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ENRICHMENT_KEY_THREAT_SCORE" +--- + +> `const` **ENRICHMENT\_KEY\_THREAT\_SCORE**: `"guard.threat_score"` = `'guard.threat_score'` + +Defined in: [packages/core/src/core/events/enricher.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L38) diff --git a/docs/src/content/docs/api/core/src/variables/EXCLUDED_HEADERS.md b/docs/src/content/docs/api/core/src/variables/EXCLUDED_HEADERS.md new file mode 100644 index 0000000..76f53b7 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/EXCLUDED_HEADERS.md @@ -0,0 +1,14 @@ +--- +editUrl: false +next: false +prev: false +title: "EXCLUDED_HEADERS" +--- + +> `const` **EXCLUDED\_HEADERS**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/routing/detection-exclusions.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/routing/detection-exclusions.ts#L28) + +Hardcoded proxy identity defaults (the reference + _DEFAULT_EXCLUDED_HEADERS in guard_core/_utils/detection_config.py), + shared with the header-scan routing in utils.ts. diff --git a/docs/src/content/docs/api/core/src/variables/METRIC_ERROR_RATE.md b/docs/src/content/docs/api/core/src/variables/METRIC_ERROR_RATE.md new file mode 100644 index 0000000..d7540ae --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/METRIC_ERROR_RATE.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "METRIC_ERROR_RATE" +--- + +> `const` **METRIC\_ERROR\_RATE**: `"error_rate"` = `'error_rate'` + +Defined in: [packages/core/src/core/events/event-filter.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L12) diff --git a/docs/src/content/docs/api/core/src/variables/METRIC_REQUEST_COUNT.md b/docs/src/content/docs/api/core/src/variables/METRIC_REQUEST_COUNT.md new file mode 100644 index 0000000..cb69ed7 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/METRIC_REQUEST_COUNT.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "METRIC_REQUEST_COUNT" +--- + +> `const` **METRIC\_REQUEST\_COUNT**: `"request_count"` = `'request_count'` + +Defined in: [packages/core/src/core/events/event-filter.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L11) diff --git a/docs/src/content/docs/api/core/src/variables/METRIC_RESPONSE_TIME.md b/docs/src/content/docs/api/core/src/variables/METRIC_RESPONSE_TIME.md new file mode 100644 index 0000000..3b56b4f --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/METRIC_RESPONSE_TIME.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "METRIC_RESPONSE_TIME" +--- + +> `const` **METRIC\_RESPONSE\_TIME**: `"response_time"` = `'response_time'` + +Defined in: [packages/core/src/core/events/event-filter.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L10) diff --git a/docs/src/content/docs/api/core/src/variables/METRIC_TYPE_VALUES.md b/docs/src/content/docs/api/core/src/variables/METRIC_TYPE_VALUES.md new file mode 100644 index 0000000..47f80dc --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/METRIC_TYPE_VALUES.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "METRIC_TYPE_VALUES" +--- + +> `const` **METRIC\_TYPE\_VALUES**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/events/event-filter.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/event-filter.ts#L14) diff --git a/docs/src/content/docs/api/core/src/variables/ON_BLOCK_EXCLUDED_CHECK_NAMES.md b/docs/src/content/docs/api/core/src/variables/ON_BLOCK_EXCLUDED_CHECK_NAMES.md new file mode 100644 index 0000000..a826124 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/ON_BLOCK_EXCLUDED_CHECK_NAMES.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "ON_BLOCK_EXCLUDED_CHECK_NAMES" +--- + +> `const` **ON\_BLOCK\_EXCLUDED\_CHECK\_NAMES**: `ReadonlySet`\<`string`\> + +Defined in: [packages/core/src/core/block-events.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/block-events.ts#L16) diff --git a/docs/src/content/docs/api/core/src/variables/SecurityConfigSchema.md b/docs/src/content/docs/api/core/src/variables/SecurityConfigSchema.md index 4f4e2bd..81a1e09 100644 --- a/docs/src/content/docs/api/core/src/variables/SecurityConfigSchema.md +++ b/docs/src/content/docs/api/core/src/variables/SecurityConfigSchema.md @@ -5,6 +5,6 @@ prev: false title: "SecurityConfigSchema" --- -> `const` **SecurityConfigSchema**: `ZodObject`\<\{ `agentApiKey`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentBufferSize`: `ZodDefault`\<`ZodNumber`\>; `agentEnableEvents`: `ZodDefault`\<`ZodBoolean`\>; `agentEnableMetrics`: `ZodDefault`\<`ZodBoolean`\>; `agentEndpoint`: `ZodDefault`\<`ZodString`\>; `agentFlushInterval`: `ZodDefault`\<`ZodNumber`\>; `agentProjectId`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentRetryAttempts`: `ZodDefault`\<`ZodNumber`\>; `agentTimeout`: `ZodDefault`\<`ZodNumber`\>; `autoBanDuration`: `ZodDefault`\<`ZodNumber`\>; `autoBanThreshold`: `ZodDefault`\<`ZodNumber`\>; `blacklist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `blockCloudProviders`: `ZodPipe`\<`ZodDefault`\<`ZodArray`\<`ZodEnum`\<\{ `AWS`: `"AWS"`; `Azure`: `"Azure"`; `GCP`: `"GCP"`; \}\>\>\>, `ZodTransform`\<`Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>, (`"AWS"` \| `"GCP"` \| `"Azure"`)[]\>\>; `blockedCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `blockedUserAgents`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `cloudIpRefreshInterval`: `ZodDefault`\<`ZodNumber`\>; `corsAllowCredentials`: `ZodDefault`\<`ZodBoolean`\>; `corsAllowHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsAllowMethods`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsAllowOrigins`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsExposeHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsMaxAge`: `ZodDefault`\<`ZodNumber`\>; `customErrorResponses`: `ZodDefault`\<`ZodRecord`\<`ZodCoercedNumber`\<`unknown`\>, `ZodString`\>\>; `customLogFile`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `customRequestCheck`: `ZodOptional`\<`ZodCustom`\<(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\>, (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\>\>\>; `customResponseModifier`: `ZodOptional`\<`ZodCustom`\<(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\>, (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\>\>\>; `detectionAnomalyThreshold`: `ZodDefault`\<`ZodNumber`\>; `detectionCompilerTimeout`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxContentLength`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxTrackedPatterns`: `ZodDefault`\<`ZodNumber`\>; `detectionMonitorHistorySize`: `ZodDefault`\<`ZodNumber`\>; `detectionPreserveAttackPatterns`: `ZodDefault`\<`ZodBoolean`\>; `detectionSemanticThreshold`: `ZodDefault`\<`ZodNumber`\>; `detectionSlowPatternThreshold`: `ZodDefault`\<`ZodNumber`\>; `dynamicRuleInterval`: `ZodDefault`\<`ZodNumber`\>; `emergencyMode`: `ZodDefault`\<`ZodBoolean`\>; `emergencyWhitelist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `enableAgent`: `ZodDefault`\<`ZodBoolean`\>; `enableCors`: `ZodDefault`\<`ZodBoolean`\>; `enableDynamicRules`: `ZodDefault`\<`ZodBoolean`\>; `enableIpBanning`: `ZodDefault`\<`ZodBoolean`\>; `enablePenetrationDetection`: `ZodDefault`\<`ZodBoolean`\>; `enableRateLimiting`: `ZodDefault`\<`ZodBoolean`\>; `enableRedis`: `ZodDefault`\<`ZodBoolean`\>; `endpointRateLimits`: `ZodDefault`\<`ZodRecord`\<`ZodString`, `ZodTuple`\<\[`ZodNumber`, `ZodNumber`\], `null`\>\>\>; `enforceHttps`: `ZodDefault`\<`ZodBoolean`\>; `excludePaths`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `geoIpHandler`: `ZodOptional`\<`ZodCustom`\<[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/), [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/)\>\>; `geoResolver`: `ZodOptional`\<`ZodCustom`\<(`ip`) => `string` \| `null`, (`ip`) => `string` \| `null`\>\>; `logFormat`: `ZodDefault`\<`ZodEnum`\<\{ `json`: `"json"`; `text`: `"text"`; \}\>\>; `logger`: `ZodOptional`\<`ZodCustom`\<[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/), [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/)\>\>; `logRequestLevel`: `ZodDefault`\<`ZodNullable`\<`ZodEnum`\<\{ `CRITICAL`: `"CRITICAL"`; `DEBUG`: `"DEBUG"`; `ERROR`: `"ERROR"`; `INFO`: `"INFO"`; `WARNING`: `"WARNING"`; \}\>\>\>; `logSuspiciousLevel`: `ZodDefault`\<`ZodNullable`\<`ZodEnum`\<\{ `CRITICAL`: `"CRITICAL"`; `DEBUG`: `"DEBUG"`; `ERROR`: `"ERROR"`; `INFO`: `"INFO"`; `WARNING`: `"WARNING"`; \}\>\>\>; `passiveMode`: `ZodDefault`\<`ZodBoolean`\>; `rateLimit`: `ZodDefault`\<`ZodNumber`\>; `rateLimitWindow`: `ZodDefault`\<`ZodNumber`\>; `redisPrefix`: `ZodDefault`\<`ZodString`\>; `redisUrl`: `ZodDefault`\<`ZodString`\>; `securityHeaders`: `ZodDefault`\<`ZodNullable`\<`ZodObject`\<\{ `contentTypeOptions`: `ZodDefault`\<`ZodString`\>; `csp`: `ZodDefault`\<`ZodNullable`\<`ZodRecord`\<`ZodString`, `ZodArray`\<`ZodString`\>\>\>\>; `custom`: `ZodDefault`\<`ZodNullable`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>\>; `enabled`: `ZodDefault`\<`ZodBoolean`\>; `frameOptions`: `ZodDefault`\<`ZodEnum`\<\{ `DENY`: `"DENY"`; `SAMEORIGIN`: `"SAMEORIGIN"`; \}\>\>; `hsts`: `ZodOptional`\<`ZodObject`\<\{ `includeSubdomains`: `ZodDefault`\<`ZodBoolean`\>; `maxAge`: `ZodDefault`\<`ZodNumber`\>; `preload`: `ZodDefault`\<`ZodBoolean`\>; \}, `$strip`\>\>; `permissionsPolicy`: `ZodDefault`\<`ZodString`\>; `referrerPolicy`: `ZodDefault`\<`ZodString`\>; `xssProtection`: `ZodDefault`\<`ZodString`\>; \}, `$strip`\>\>\>; `trustedProxies`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `trustedProxyDepth`: `ZodDefault`\<`ZodNumber`\>; `trustXForwardedProto`: `ZodDefault`\<`ZodBoolean`\>; `whitelist`: `ZodDefault`\<`ZodNullable`\<`ZodArray`\<`ZodString`\>\>\>; `whitelistCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; \}, `$strip`\> +> `const` **SecurityConfigSchema**: `ZodObject`\<\{ `agentApiKey`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentBackoffFactor`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `agentBufferOverflowPolicy`: `ZodDefault`\<`ZodNullable`\<`ZodEnum`\<\{ `block`: `"block"`; `drop`: `"drop"`; `raise`: `"raise"`; \}\>\>\>; `agentBufferSize`: `ZodDefault`\<`ZodNumber`\>; `agentCompressionEnabled`: `ZodDefault`\<`ZodNullable`\<`ZodBoolean`\>\>; `agentCompressionThreshold`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `agentEnableEvents`: `ZodDefault`\<`ZodBoolean`\>; `agentEnableMetrics`: `ZodDefault`\<`ZodBoolean`\>; `agentEndpoint`: `ZodDefault`\<`ZodString`\>; `agentFlushInterval`: `ZodDefault`\<`ZodNumber`\>; `agentGuardVersion`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentHighWatermarkRatio`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `agentInstallId`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentMaxConcurrentFlushes`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `agentMaxPayloadSize`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `agentPayloadSigningSecret`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentProjectEncryptionKey`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentProjectId`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `agentRetryAttempts`: `ZodDefault`\<`ZodNumber`\>; `agentSensitiveHeaders`: `ZodDefault`\<`ZodNullable`\<`ZodArray`\<`ZodString`\>\>\>; `agentStatusInterval`: `ZodDefault`\<`ZodNumber`\>; `agentStrict`: `ZodDefault`\<`ZodBoolean`\>; `agentTimeout`: `ZodDefault`\<`ZodNumber`\>; `authVerifier`: `ZodOptional`\<`ZodCustom`\<(`request`, `credential`) => `unknown`, (`request`, `credential`) => `unknown`\>\>; `autoBanDuration`: `ZodDefault`\<`ZodNumber`\>; `autoBanThreshold`: `ZodDefault`\<`ZodNumber`\>; `behaviorMaxResponseBodyInspectBytes`: `ZodDefault`\<`ZodNumber`\>; `behaviorScanResponseBody`: `ZodDefault`\<`ZodBoolean`\>; `blacklist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `blockCloudProviders`: `ZodPipe`\<`ZodDefault`\<`ZodArray`\<`ZodEnum`\<\{ `AWS`: `"AWS"`; `Azure`: `"Azure"`; `GCP`: `"GCP"`; \}\>\>\>, `ZodTransform`\<`Set`\<`"AWS"` \| `"GCP"` \| `"Azure"`\>, (`"AWS"` \| `"GCP"` \| `"Azure"`)[]\>\>; `blockedCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `blockedUserAgents`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `bodyReadMaxConcurrent`: `ZodDefault`\<`ZodNumber`\>; `bodyReadTimeout`: `ZodDefault`\<`ZodNumber`\>; `cloudIpRefreshInterval`: `ZodDefault`\<`ZodNumber`\>; `corsAllowCredentials`: `ZodDefault`\<`ZodBoolean`\>; `corsAllowHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsAllowMethods`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsAllowOrigins`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsExposeHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `corsMaxAge`: `ZodDefault`\<`ZodNumber`\>; `customErrorResponses`: `ZodDefault`\<`ZodRecord`\<`ZodCoercedNumber`\<`unknown`\>, `ZodString`\>\>; `customLogFile`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `customRequestCheck`: `ZodOptional`\<`ZodCustom`\<(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\>, (`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\>\>\>; `customResponseModifier`: `ZodOptional`\<`ZodCustom`\<(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\>, (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\>\>\>; `detectionAnomalyEmissionCooldown`: `ZodDefault`\<`ZodNumber`\>; `detectionAnomalyThreshold`: `ZodDefault`\<`ZodNumber`\>; `detectionBinaryMinRunLength`: `ZodDefault`\<`ZodNumber`\>; `detectionCompilerTimeout`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxBodyInspectBytes`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxContentLength`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxJsonDepth`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxScanChars`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxScanSeconds`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxScanValues`: `ZodDefault`\<`ZodNumber`\>; `detectionMaxTrackedPatterns`: `ZodDefault`\<`ZodNumber`\>; `detectionMinSamplesForAnomaly`: `ZodDefault`\<`ZodNumber`\>; `detectionMonitorHistorySize`: `ZodDefault`\<`ZodNumber`\>; `detectionPatternValidationCachePath`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `detectionPreserveAttackPatterns`: `ZodDefault`\<`ZodBoolean`\>; `detectionScanBody`: `ZodDefault`\<`ZodBoolean`\>; `detectionScanWorkerPool`: `ZodDefault`\<`ZodBoolean`\>; `detectionSemanticThreshold`: `ZodDefault`\<`ZodNumber`\>; `detectionSlowPatternThreshold`: `ZodDefault`\<`ZodNumber`\>; `detectionThreatScoreThreshold`: `ZodDefault`\<`ZodNumber`\>; `dynamicRuleInterval`: `ZodDefault`\<`ZodNumber`\>; `dynamicRulesCachePath`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `emergencyMode`: `ZodDefault`\<`ZodBoolean`\>; `emergencyWhitelist`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `enableAgent`: `ZodDefault`\<`ZodBoolean`\>; `enableCors`: `ZodDefault`\<`ZodBoolean`\>; `enabledDetectionCategories`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `enableDynamicRules`: `ZodDefault`\<`ZodBoolean`\>; `enableEnrichment`: `ZodDefault`\<`ZodBoolean`\>; `enableIpBanning`: `ZodDefault`\<`ZodBoolean`\>; `enableLogfire`: `ZodDefault`\<`ZodBoolean`\>; `enableOtel`: `ZodDefault`\<`ZodBoolean`\>; `enablePenetrationDetection`: `ZodDefault`\<`ZodBoolean`\>; `enableRateLimitAutoBan`: `ZodDefault`\<`ZodBoolean`\>; `enableRateLimiting`: `ZodDefault`\<`ZodBoolean`\>; `enableRedis`: `ZodDefault`\<`ZodBoolean`\>; `endpointRateLimits`: `ZodDefault`\<`ZodRecord`\<`ZodString`, `ZodTuple`\<\[`ZodNumber`, `ZodNumber`\], `null`\>\>\>; `enforceHttps`: `ZodDefault`\<`ZodBoolean`\>; `excludedDetectionBodyFields`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `excludedDetectionHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `excludedDetectionParams`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `excludedSemanticDetectionHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `excludePaths`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `exemptIps`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `failSecure`: `ZodDefault`\<`ZodBoolean`\>; `geoIpDbMaxAge`: `ZodDefault`\<`ZodNumber`\>; `geoIpHandler`: `ZodOptional`\<`ZodCustom`\<[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/), [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/)\>\>; `geoResolver`: `ZodOptional`\<`ZodCustom`\<(`ip`) => `string` \| `null`, (`ip`) => `string` \| `null`\>\>; `globalBehaviorRules`: `ZodDefault`\<`ZodArray`\<`ZodObject`\<\{ `action`: `ZodDefault`\<`ZodEnum`\<\{ `alert`: `"alert"`; `ban`: `"ban"`; `log`: `"log"`; `throttle`: `"throttle"`; \}\>\>; `banDuration`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `correlateWithDetection`: `ZodDefault`\<`ZodBoolean`\>; `pattern`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `ruleType`: `ZodEnum`\<\{ `frequency`: `"frequency"`; `return_pattern`: `"return_pattern"`; `usage`: `"usage"`; \}\>; `threshold`: `ZodNumber`; `window`: `ZodDefault`\<`ZodNumber`\>; \}, `$strip`\>\>\>; `ipinfoDbPath`: `ZodDefault`\<`ZodString`\>; `ipinfoToken`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `lazyInit`: `ZodDefault`\<`ZodBoolean`\>; `logCountryCheckLevel`: `ZodDefault`\<`ZodNullable`\<`ZodEnum`\<\{ `CRITICAL`: `"CRITICAL"`; `DEBUG`: `"DEBUG"`; `ERROR`: `"ERROR"`; `INFO`: `"INFO"`; `WARNING`: `"WARNING"`; \}\>\>\>; `logfireServiceName`: `ZodDefault`\<`ZodString`\>; `logFormat`: `ZodDefault`\<`ZodEnum`\<\{ `json`: `"json"`; `text`: `"text"`; \}\>\>; `logger`: `ZodOptional`\<`ZodCustom`\<[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/), [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/)\>\>; `logRequestLevel`: `ZodDefault`\<`ZodNullable`\<`ZodEnum`\<\{ `CRITICAL`: `"CRITICAL"`; `DEBUG`: `"DEBUG"`; `ERROR`: `"ERROR"`; `INFO`: `"INFO"`; `WARNING`: `"WARNING"`; \}\>\>\>; `logSensitiveBodyFields`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `logSensitiveHeaders`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `logSensitiveParams`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `logSuspiciousLevel`: `ZodDefault`\<`ZodNullable`\<`ZodEnum`\<\{ `CRITICAL`: `"CRITICAL"`; `DEBUG`: `"DEBUG"`; `ERROR`: `"ERROR"`; `INFO`: `"INFO"`; `WARNING`: `"WARNING"`; \}\>\>\>; `mutedCheckLogs`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `mutedEventTypes`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `mutedMetricTypes`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `onBlock`: `ZodOptional`\<`ZodCustom`\<(`request`, `payload`) => `unknown`, (`request`, `payload`) => `unknown`\>\>; `onError`: `ZodOptional`\<`ZodCustom`\<(`stage`, `error`, `context`) => `void`, (`stage`, `error`, `context`) => `void`\>\>; `otelExporterEndpoint`: `ZodDefault`\<`ZodNullable`\<`ZodString`\>\>; `otelResourceAttributes`: `ZodDefault`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>; `otelServiceName`: `ZodDefault`\<`ZodString`\>; `passiveMode`: `ZodDefault`\<`ZodBoolean`\>; `rateLimit`: `ZodDefault`\<`ZodNumber`\>; `rateLimitWindow`: `ZodDefault`\<`ZodNumber`\>; `redisFailOpen`: `ZodDefault`\<`ZodBoolean`\>; `redisHealthCheckInterval`: `ZodDefault`\<`ZodNumber`\>; `redisMaxConnections`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `redisPrefix`: `ZodDefault`\<`ZodString`\>; `redisRetries`: `ZodDefault`\<`ZodNumber`\>; `redisSocketConnectTimeout`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `redisSocketTimeout`: `ZodDefault`\<`ZodNullable`\<`ZodNumber`\>\>; `redisUrl`: `ZodDefault`\<`ZodString`\>; `routeResolutionStrict`: `ZodDefault`\<`ZodBoolean`\>; `securityHeaders`: `ZodDefault`\<`ZodNullable`\<`ZodObject`\<\{ `contentTypeOptions`: `ZodDefault`\<`ZodString`\>; `csp`: `ZodDefault`\<`ZodNullable`\<`ZodRecord`\<`ZodString`, `ZodArray`\<`ZodString`\>\>\>\>; `custom`: `ZodDefault`\<`ZodNullable`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>\>; `enabled`: `ZodDefault`\<`ZodBoolean`\>; `frameOptions`: `ZodDefault`\<`ZodEnum`\<\{ `DENY`: `"DENY"`; `SAMEORIGIN`: `"SAMEORIGIN"`; \}\>\>; `hsts`: `ZodOptional`\<`ZodObject`\<\{ `includeSubdomains`: `ZodDefault`\<`ZodBoolean`\>; `maxAge`: `ZodDefault`\<`ZodNumber`\>; `preload`: `ZodDefault`\<`ZodBoolean`\>; \}, `$strip`\>\>; `permissionsPolicy`: `ZodDefault`\<`ZodString`\>; `referrerPolicy`: `ZodDefault`\<`ZodString`\>; `xssProtection`: `ZodDefault`\<`ZodString`\>; \}, `$strip`\>\>\>; `threatBanConfig`: `ZodDefault`\<`ZodRecord`\<`ZodString`, `ZodObject`\<\{ `duration`: `ZodNumber`; `threshold`: `ZodNumber`; \}, `$strip`\>\>\>; `trustedProxies`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; `trustedProxyDepth`: `ZodDefault`\<`ZodNumber`\>; `trustXForwardedProto`: `ZodDefault`\<`ZodBoolean`\>; `whitelist`: `ZodDefault`\<`ZodNullable`\<`ZodArray`\<`ZodString`\>\>\>; `whitelistCountries`: `ZodDefault`\<`ZodArray`\<`ZodString`\>\>; \}, `$strip`\> -Defined in: [core/src/models/config.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/config.ts#L27) +Defined in: [packages/core/src/models/config.ts:80](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/config.ts#L80) diff --git a/docs/src/content/docs/api/core/src/variables/SecurityDecorator.md b/docs/src/content/docs/api/core/src/variables/SecurityDecorator.md index 2f5d542..6091aa8 100644 --- a/docs/src/content/docs/api/core/src/variables/SecurityDecorator.md +++ b/docs/src/content/docs/api/core/src/variables/SecurityDecorator.md @@ -7,4 +7,4 @@ title: "SecurityDecorator" > `const` **SecurityDecorator**: \{(...`args`): `(Anonymous class)`; `prototype`: `(Anonymous class)`\<`any`\>; \} & \{(...`args`): `(Anonymous class)`; `prototype`: `(Anonymous class)`\<`any`\>; \} & \{(...`args`): `(Anonymous class)`; `prototype`: `(Anonymous class)`\<`any`\>; \} & \{(...`args`): `(Anonymous class)`; `prototype`: `(Anonymous class)`\<`any`\>; \} & \{(...`args`): `(Anonymous class)`; `prototype`: `(Anonymous class)`\<`any`\>; \} & \{(...`args`): `(Anonymous class)`; `prototype`: `(Anonymous class)`\<`any`\>; \} & (...`args`) => [`BaseSecurityDecorator`](/guard-core-ts/api/core/src/classes/basesecuritydecorator/) -Defined in: [core/src/decorators/index.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/decorators/index.ts#L10) +Defined in: [packages/core/src/decorators/index.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/decorators/index.ts#L10) diff --git a/docs/src/content/docs/api/core/src/variables/THREAT_SCORE_MAP.md b/docs/src/content/docs/api/core/src/variables/THREAT_SCORE_MAP.md new file mode 100644 index 0000000..dfa041a --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/THREAT_SCORE_MAP.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "THREAT_SCORE_MAP" +--- + +> `const` **THREAT\_SCORE\_MAP**: `Readonly`\<`Record`\<`string`, `number`\>\> + +Defined in: [packages/core/src/core/events/enricher.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/events/enricher.ts#L56) diff --git a/docs/src/content/docs/api/core/src/variables/UNKNOWN_CLIENT_IDENTITY.md b/docs/src/content/docs/api/core/src/variables/UNKNOWN_CLIENT_IDENTITY.md new file mode 100644 index 0000000..3006126 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/UNKNOWN_CLIENT_IDENTITY.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "UNKNOWN_CLIENT_IDENTITY" +--- + +> `const` **UNKNOWN\_CLIENT\_IDENTITY**: `"unknown"` = `'unknown'` + +Defined in: [packages/core/src/core/client-identity.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/client-identity.ts#L5) diff --git a/docs/src/content/docs/api/core/src/variables/UNRESOLVED_ROUTE_REASON.md b/docs/src/content/docs/api/core/src/variables/UNRESOLVED_ROUTE_REASON.md new file mode 100644 index 0000000..472fa17 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/UNRESOLVED_ROUTE_REASON.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "UNRESOLVED_ROUTE_REASON" +--- + +> `const` **UNRESOLVED\_ROUTE\_REASON**: `"Route resolution failed; per-route decorator config could not be applied"` = `'Route resolution failed; per-route decorator config could not be applied'` + +Defined in: [packages/core/src/core/checks/implementations/route-config.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/checks/implementations/route-config.ts#L10) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_CLIENT_ADDRESS_UNKNOWN.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_CLIENT_ADDRESS_UNKNOWN.md new file mode 100644 index 0000000..772dfe1 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_CLIENT_ADDRESS_UNKNOWN.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_CLIENT_ADDRESS_UNKNOWN" +--- + +> `const` **WS\_CLOSE\_CLIENT\_ADDRESS\_UNKNOWN**: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/) + +Defined in: [packages/core/src/core/websocket-guard.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L47) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_BANNED.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_BANNED.md new file mode 100644 index 0000000..c689c69 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_BANNED.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_IP_BANNED" +--- + +> `const` **WS\_CLOSE\_IP\_BANNED**: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/) + +Defined in: [packages/core/src/core/websocket-guard.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L44) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_NOT_ALLOWED.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_NOT_ALLOWED.md new file mode 100644 index 0000000..9fc5c0b --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_IP_NOT_ALLOWED.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_IP_NOT_ALLOWED" +--- + +> `const` **WS\_CLOSE\_IP\_NOT\_ALLOWED**: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/) + +Defined in: [packages/core/src/core/websocket-guard.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L45) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_POLICY_VIOLATION.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_POLICY_VIOLATION.md new file mode 100644 index 0000000..c950579 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_POLICY_VIOLATION.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_POLICY_VIOLATION" +--- + +> `const` **WS\_CLOSE\_POLICY\_VIOLATION**: `1008` = `1008` + +Defined in: [packages/core/src/core/websocket-guard.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L36) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_RATE_LIMIT_EXCEEDED.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_RATE_LIMIT_EXCEEDED.md new file mode 100644 index 0000000..0d8bb5c --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_RATE_LIMIT_EXCEEDED.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_RATE_LIMIT_EXCEEDED" +--- + +> `const` **WS\_CLOSE\_RATE\_LIMIT\_EXCEEDED**: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/) + +Defined in: [packages/core/src/core/websocket-guard.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L46) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_SECURITY_CHECK_FAILED.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_SECURITY_CHECK_FAILED.md new file mode 100644 index 0000000..3d4ba49 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_SECURITY_CHECK_FAILED.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_SECURITY_CHECK_FAILED" +--- + +> `const` **WS\_CLOSE\_SECURITY\_CHECK\_FAILED**: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/) + +Defined in: [packages/core/src/core/websocket-guard.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L48) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_SUSPICIOUS_ACTIVITY.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_SUSPICIOUS_ACTIVITY.md new file mode 100644 index 0000000..f9d7a82 --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_SUSPICIOUS_ACTIVITY.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_SUSPICIOUS_ACTIVITY" +--- + +> `const` **WS\_CLOSE\_SUSPICIOUS\_ACTIVITY**: [`WebSocketCloseReason`](/guard-core-ts/api/core/src/interfaces/websocketclosereason/) + +Defined in: [packages/core/src/core/websocket-guard.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L49) diff --git a/docs/src/content/docs/api/core/src/variables/WS_CLOSE_TRY_AGAIN_LATER.md b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_TRY_AGAIN_LATER.md new file mode 100644 index 0000000..1048a8e --- /dev/null +++ b/docs/src/content/docs/api/core/src/variables/WS_CLOSE_TRY_AGAIN_LATER.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "WS_CLOSE_TRY_AGAIN_LATER" +--- + +> `const` **WS\_CLOSE\_TRY\_AGAIN\_LATER**: `1013` = `1013` + +Defined in: [packages/core/src/core/websocket-guard.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/core/websocket-guard.ts#L37) diff --git a/docs/src/content/docs/api/core/src/variables/defaultLogger.md b/docs/src/content/docs/api/core/src/variables/defaultLogger.md index e8f3655..b9dcba8 100644 --- a/docs/src/content/docs/api/core/src/variables/defaultLogger.md +++ b/docs/src/content/docs/api/core/src/variables/defaultLogger.md @@ -7,4 +7,4 @@ title: "defaultLogger" > `const` **defaultLogger**: [`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) -Defined in: [core/src/models/logger.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/core/src/models/logger.ts#L8) +Defined in: [packages/core/src/models/logger.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/core/src/models/logger.ts#L8) diff --git a/docs/src/content/docs/api/express/src/classes/ExpressGuardRequest.md b/docs/src/content/docs/api/express/src/classes/ExpressGuardRequest.md index f6ad326..57b0d54 100644 --- a/docs/src/content/docs/api/express/src/classes/ExpressGuardRequest.md +++ b/docs/src/content/docs/api/express/src/classes/ExpressGuardRequest.md @@ -5,7 +5,7 @@ prev: false title: "ExpressGuardRequest" --- -Defined in: [express/src/adapters.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L4) +Defined in: [packages/express/src/adapters.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L31) ## Implements @@ -17,7 +17,7 @@ Defined in: [express/src/adapters.ts:4](https://github.com/Guard-Core/guard-core > **new ExpressGuardRequest**(`req`): `ExpressGuardRequest` -Defined in: [express/src/adapters.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L8) +Defined in: [packages/express/src/adapters.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L37) #### Parameters @@ -37,7 +37,7 @@ Defined in: [express/src/adapters.ts:8](https://github.com/Guard-Core/guard-core > **get** **clientHost**(): `string` \| `null` -Defined in: [express/src/adapters.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L22) +Defined in: [packages/express/src/adapters.ts:57](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L57) ##### Returns @@ -55,7 +55,7 @@ Defined in: [express/src/adapters.ts:22](https://github.com/Guard-Core/guard-cor > **get** **headers**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [express/src/adapters.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L23) +Defined in: [packages/express/src/adapters.ts:58](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L58) ##### Returns @@ -73,7 +73,7 @@ Defined in: [express/src/adapters.ts:23](https://github.com/Guard-Core/guard-cor > **get** **method**(): `string` -Defined in: [express/src/adapters.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L21) +Defined in: [packages/express/src/adapters.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L56) ##### Returns @@ -91,7 +91,7 @@ Defined in: [express/src/adapters.ts:21](https://github.com/Guard-Core/guard-cor > **get** **queryParams**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [express/src/adapters.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L24) +Defined in: [packages/express/src/adapters.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L59) ##### Returns @@ -109,7 +109,7 @@ Defined in: [express/src/adapters.ts:24](https://github.com/Guard-Core/guard-cor > **get** **scope**(): `Readonly`\<`Record`\<`string`, `unknown`\>\> -Defined in: [express/src/adapters.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L27) +Defined in: [packages/express/src/adapters.ts:62](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L62) ##### Returns @@ -127,7 +127,7 @@ Defined in: [express/src/adapters.ts:27](https://github.com/Guard-Core/guard-cor > **get** **state**(): [`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) -Defined in: [express/src/adapters.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L26) +Defined in: [packages/express/src/adapters.ts:61](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L61) ##### Returns @@ -145,7 +145,7 @@ Defined in: [express/src/adapters.ts:26](https://github.com/Guard-Core/guard-cor > **get** **urlFull**(): `string` -Defined in: [express/src/adapters.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L19) +Defined in: [packages/express/src/adapters.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L54) ##### Returns @@ -163,7 +163,7 @@ Defined in: [express/src/adapters.ts:19](https://github.com/Guard-Core/guard-cor > **get** **urlPath**(): `string` -Defined in: [express/src/adapters.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L17) +Defined in: [packages/express/src/adapters.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L52) ##### Returns @@ -181,7 +181,7 @@ Defined in: [express/src/adapters.ts:17](https://github.com/Guard-Core/guard-cor > **get** **urlScheme**(): `string` -Defined in: [express/src/adapters.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L18) +Defined in: [packages/express/src/adapters.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L53) ##### Returns @@ -197,7 +197,7 @@ Defined in: [express/src/adapters.ts:18](https://github.com/Guard-Core/guard-cor > **body**(): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> -Defined in: [express/src/adapters.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L25) +Defined in: [packages/express/src/adapters.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L60) #### Returns @@ -213,7 +213,7 @@ Defined in: [express/src/adapters.ts:25](https://github.com/Guard-Core/guard-cor > **urlReplaceScheme**(`scheme`): `string` -Defined in: [express/src/adapters.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L20) +Defined in: [packages/express/src/adapters.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L55) #### Parameters diff --git a/docs/src/content/docs/api/express/src/classes/ExpressGuardResponse.md b/docs/src/content/docs/api/express/src/classes/ExpressGuardResponse.md index 85336a9..f89e06e 100644 --- a/docs/src/content/docs/api/express/src/classes/ExpressGuardResponse.md +++ b/docs/src/content/docs/api/express/src/classes/ExpressGuardResponse.md @@ -5,7 +5,7 @@ prev: false title: "ExpressGuardResponse" --- -Defined in: [express/src/adapters.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L30) +Defined in: [packages/express/src/adapters.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L65) ## Implements @@ -17,7 +17,7 @@ Defined in: [express/src/adapters.ts:30](https://github.com/Guard-Core/guard-cor > **new ExpressGuardResponse**(`statusCode`, `content`): `ExpressGuardResponse` -Defined in: [express/src/adapters.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L34) +Defined in: [packages/express/src/adapters.ts:69](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L69) #### Parameters @@ -39,7 +39,7 @@ Defined in: [express/src/adapters.ts:34](https://github.com/Guard-Core/guard-cor > `readonly` **statusCode**: `number` -Defined in: [express/src/adapters.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L35) +Defined in: [packages/express/src/adapters.ts:70](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L70) #### Implementation of @@ -53,7 +53,7 @@ Defined in: [express/src/adapters.ts:35](https://github.com/Guard-Core/guard-cor > **get** **body**(): `Uint8Array`\<`ArrayBufferLike`\> \| `null` -Defined in: [express/src/adapters.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L44) +Defined in: [packages/express/src/adapters.ts:82](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L82) ##### Returns @@ -71,7 +71,7 @@ Defined in: [express/src/adapters.ts:44](https://github.com/Guard-Core/guard-cor > **get** **bodyText**(): `string` \| `null` -Defined in: [express/src/adapters.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L45) +Defined in: [packages/express/src/adapters.ts:86](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L86) ##### Returns @@ -89,7 +89,7 @@ Defined in: [express/src/adapters.ts:45](https://github.com/Guard-Core/guard-cor > **get** **headers**(): `Record`\<`string`, `string`\> -Defined in: [express/src/adapters.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L42) +Defined in: [packages/express/src/adapters.ts:80](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L80) ##### Returns @@ -105,7 +105,7 @@ Defined in: [express/src/adapters.ts:42](https://github.com/Guard-Core/guard-cor > **setHeader**(`name`, `value`): `void` -Defined in: [express/src/adapters.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L43) +Defined in: [packages/express/src/adapters.ts:81](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L81) #### Parameters diff --git a/docs/src/content/docs/api/express/src/classes/ExpressResponseFactory.md b/docs/src/content/docs/api/express/src/classes/ExpressResponseFactory.md index 058ebc0..c887696 100644 --- a/docs/src/content/docs/api/express/src/classes/ExpressResponseFactory.md +++ b/docs/src/content/docs/api/express/src/classes/ExpressResponseFactory.md @@ -5,7 +5,7 @@ prev: false title: "ExpressResponseFactory" --- -Defined in: [express/src/adapters.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L50) +Defined in: [packages/express/src/adapters.ts:91](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L91) ## Implements @@ -27,7 +27,7 @@ Defined in: [express/src/adapters.ts:50](https://github.com/Guard-Core/guard-cor > **createRedirectResponse**(`url`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [express/src/adapters.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L55) +Defined in: [packages/express/src/adapters.ts:96](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L96) #### Parameters @@ -53,7 +53,7 @@ Defined in: [express/src/adapters.ts:55](https://github.com/Guard-Core/guard-cor > **createResponse**(`content`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [express/src/adapters.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L51) +Defined in: [packages/express/src/adapters.ts:92](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L92) #### Parameters diff --git a/docs/src/content/docs/api/express/src/functions/addStatusRoute.md b/docs/src/content/docs/api/express/src/functions/addStatusRoute.md new file mode 100644 index 0000000..7e9ea55 --- /dev/null +++ b/docs/src/content/docs/api/express/src/functions/addStatusRoute.md @@ -0,0 +1,28 @@ +--- +editUrl: false +next: false +prev: false +title: "addStatusRoute" +--- + +> **addStatusRoute**(`app`, `guard`, `path?`): `void` + +Defined in: [packages/express/src/status.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/status.ts#L10) + +## Parameters + +### app + +`Express` + +### guard + +[`GuardMiddlewareSurface`](/guard-core-ts/api/express/src/interfaces/guardmiddlewaresurface/) + +### path? + +`string` = `DEFAULT_STATUS_PATH` + +## Returns + +`void` diff --git a/docs/src/content/docs/api/express/src/functions/configureCors.md b/docs/src/content/docs/api/express/src/functions/configureCors.md index c423da9..0b042f4 100644 --- a/docs/src/content/docs/api/express/src/functions/configureCors.md +++ b/docs/src/content/docs/api/express/src/functions/configureCors.md @@ -7,7 +7,7 @@ title: "configureCors" > **configureCors**(`app`, `config`): `void` -Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/cors.ts#L4) +Defined in: [packages/express/src/cors.ts:51](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/cors.ts#L51) ## Parameters @@ -21,10 +21,26 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `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` = `...` @@ -49,10 +93,26 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [express/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `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`[] = `...` diff --git a/docs/src/content/docs/api/express/src/functions/createSecurityMiddleware.md b/docs/src/content/docs/api/express/src/functions/createSecurityMiddleware.md index 375f1a2..0db89b4 100644 --- a/docs/src/content/docs/api/express/src/functions/createSecurityMiddleware.md +++ b/docs/src/content/docs/api/express/src/functions/createSecurityMiddleware.md @@ -7,7 +7,7 @@ title: "createSecurityMiddleware" > **createSecurityMiddleware**(`options`): (`req`, `res`, `next`) => `Promise`\<`void`\> -Defined in: [express/src/middleware.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/middleware.ts#L22) +Defined in: [packages/express/src/middleware.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L56) ## Parameters diff --git a/docs/src/content/docs/api/express/src/functions/guardBodyParser.md b/docs/src/content/docs/api/express/src/functions/guardBodyParser.md index 8d988fb..4e8ddb5 100644 --- a/docs/src/content/docs/api/express/src/functions/guardBodyParser.md +++ b/docs/src/content/docs/api/express/src/functions/guardBodyParser.md @@ -7,7 +7,7 @@ title: "guardBodyParser" > **guardBodyParser**(): `RequestHandler` -Defined in: [express/src/body-parser.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/body-parser.ts#L4) +Defined in: [packages/express/src/body-parser.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/body-parser.ts#L4) ## Returns diff --git a/docs/src/content/docs/api/express/src/functions/guardUrlEncodedParser.md b/docs/src/content/docs/api/express/src/functions/guardUrlEncodedParser.md index fe0d7cd..ca5af08 100644 --- a/docs/src/content/docs/api/express/src/functions/guardUrlEncodedParser.md +++ b/docs/src/content/docs/api/express/src/functions/guardUrlEncodedParser.md @@ -7,7 +7,7 @@ title: "guardUrlEncodedParser" > **guardUrlEncodedParser**(): `RequestHandler` -Defined in: [express/src/body-parser.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/body-parser.ts#L12) +Defined in: [packages/express/src/body-parser.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/body-parser.ts#L12) ## Returns diff --git a/docs/src/content/docs/api/express/src/functions/resolveAgentHandler.md b/docs/src/content/docs/api/express/src/functions/resolveAgentHandler.md new file mode 100644 index 0000000..333b6b4 --- /dev/null +++ b/docs/src/content/docs/api/express/src/functions/resolveAgentHandler.md @@ -0,0 +1,558 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveAgentHandler" +--- + +> **resolveAgentHandler**(`config`, `injected`, `logger`): `Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/express/src/interfaces/resolvedagenthandler/)\> + +Defined in: [packages/express/src/agent.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/agent.ts#L25) + +## Parameters + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +### injected + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` \| `undefined` + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +## Returns + +`Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/express/src/interfaces/resolvedagenthandler/)\> diff --git a/docs/src/content/docs/api/express/src/functions/resolveExpressEndpointId.md b/docs/src/content/docs/api/express/src/functions/resolveExpressEndpointId.md new file mode 100644 index 0000000..2332f2e --- /dev/null +++ b/docs/src/content/docs/api/express/src/functions/resolveExpressEndpointId.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveExpressEndpointId" +--- + +> **resolveExpressEndpointId**(`req`): `string` \| `null` + +Defined in: [packages/express/src/route-id.ts:115](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/route-id.ts#L115) + +Endpoint display id for behavioral processing (the guard_endpoint_id + twin): the matched handler's function name when available. + +## Parameters + +### req + +`Request` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/express/src/functions/resolveExpressRouteId.md b/docs/src/content/docs/api/express/src/functions/resolveExpressRouteId.md new file mode 100644 index 0000000..66ea434 --- /dev/null +++ b/docs/src/content/docs/api/express/src/functions/resolveExpressRouteId.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveExpressRouteId" +--- + +> **resolveExpressRouteId**(`req`): `string` \| `null` + +Defined in: [packages/express/src/route-id.ts:87](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/route-id.ts#L87) + +## Parameters + +### req + +`Request` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/express/src/functions/sendGuardResponse.md b/docs/src/content/docs/api/express/src/functions/sendGuardResponse.md index 448a6f0..f5d909f 100644 --- a/docs/src/content/docs/api/express/src/functions/sendGuardResponse.md +++ b/docs/src/content/docs/api/express/src/functions/sendGuardResponse.md @@ -7,7 +7,7 @@ title: "sendGuardResponse" > **sendGuardResponse**(`res`, `guardResponse`): `void` -Defined in: [express/src/adapters.ts:62](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/adapters.ts#L62) +Defined in: [packages/express/src/adapters.ts:103](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/adapters.ts#L103) ## Parameters diff --git a/docs/src/content/docs/api/express/src/interfaces/GuardMiddlewareSurface.md b/docs/src/content/docs/api/express/src/interfaces/GuardMiddlewareSurface.md new file mode 100644 index 0000000..1052455 --- /dev/null +++ b/docs/src/content/docs/api/express/src/interfaces/GuardMiddlewareSurface.md @@ -0,0 +1,128 @@ +--- +editUrl: false +next: false +prev: false +title: "GuardMiddlewareSurface" +--- + +Defined in: [packages/express/src/middleware.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L23) + +## Properties + +### agentStats + +> **agentStats**: `object` & `Record`\<`string`, `unknown`\> + +Defined in: [packages/express/src/middleware.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L37) + +The reference agent_stats. + +#### Type Declaration + +##### degraded + +> **degraded**: `boolean` + +##### enabled + +> **enabled**: `boolean` + +## Methods + +### createErrorResponse() + +> **createErrorResponse**(`statusCode`, `message`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +Defined in: [packages/express/src/middleware.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L39) + +The reference create_error_response. + +#### Parameters + +##### statusCode + +`number` + +##### message + +`string` + +#### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +*** + +### getInitializationStatus() + +> **getInitializationStatus**(): `object` + +Defined in: [packages/express/src/middleware.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L29) + +The reference get_initialization_status. + +#### Returns + +`object` + +##### agent + +> **agent**: `object` + +###### agent.degraded + +> **degraded**: `boolean` + +###### agent.enabled + +> **enabled**: `boolean` + +##### initialized + +> **initialized**: `boolean` + +##### redis + +> **redis**: `boolean` + +*** + +### markInitialized() + +> **markInitialized**(): `void` + +Defined in: [packages/express/src/middleware.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L27) + +The reference mark_initialized. + +#### Returns + +`void` + +*** + +### refreshCloudIpRanges() + +> **refreshCloudIpRanges**(): `Promise`\<`void`\> + +Defined in: [packages/express/src/middleware.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L35) + +The reference refresh_cloud_ip_ranges. + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/express/src/middleware.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L25) + +The reference reset(): clear the rate-limit tier state. + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/express/src/interfaces/ResolvedAgentHandler.md b/docs/src/content/docs/api/express/src/interfaces/ResolvedAgentHandler.md new file mode 100644 index 0000000..d844585 --- /dev/null +++ b/docs/src/content/docs/api/express/src/interfaces/ResolvedAgentHandler.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "ResolvedAgentHandler" +--- + +Defined in: [packages/express/src/agent.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/agent.ts#L18) + +## Properties + +### agentHandler + +> **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` + +Defined in: [packages/express/src/agent.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/agent.ts#L19) + +*** + +### degraded + +> **degraded**: `boolean` + +Defined in: [packages/express/src/agent.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/agent.ts#L22) + +True when the agent was enabled but construction failed and the +middleware degraded to agent-off (the reference agent_degraded). diff --git a/docs/src/content/docs/api/express/src/interfaces/SecurityMiddlewareOptions.md b/docs/src/content/docs/api/express/src/interfaces/SecurityMiddlewareOptions.md index d492379..f21694b 100644 --- a/docs/src/content/docs/api/express/src/interfaces/SecurityMiddlewareOptions.md +++ b/docs/src/content/docs/api/express/src/interfaces/SecurityMiddlewareOptions.md @@ -5,7 +5,7 @@ prev: false title: "SecurityMiddlewareOptions" --- -Defined in: [express/src/middleware.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/middleware.ts#L15) +Defined in: [packages/express/src/middleware.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L42) ## Properties @@ -13,7 +13,7 @@ Defined in: [express/src/middleware.ts:15](https://github.com/Guard-Core/guard-c > `optional` **agentHandler?**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) -Defined in: [express/src/middleware.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/middleware.ts#L17) +Defined in: [packages/express/src/middleware.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L44) *** @@ -21,16 +21,32 @@ Defined in: [express/src/middleware.ts:17](https://github.com/Guard-Core/guard-c > **config**: `object` -Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/middleware.ts#L16) +Defined in: [packages/express/src/middleware.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L43) #### agentApiKey? > `optional` **agentApiKey?**: `string` \| `null` +#### agentBackoffFactor? + +> `optional` **agentBackoffFactor?**: `number` \| `null` + +#### agentBufferOverflowPolicy? + +> `optional` **agentBufferOverflowPolicy?**: `"drop"` \| `"block"` \| `"raise"` \| `null` + #### agentBufferSize? > `optional` **agentBufferSize?**: `number` +#### agentCompressionEnabled? + +> `optional` **agentCompressionEnabled?**: `boolean` \| `null` + +#### agentCompressionThreshold? + +> `optional` **agentCompressionThreshold?**: `number` \| `null` + #### agentEnableEvents? > `optional` **agentEnableEvents?**: `boolean` @@ -47,6 +63,34 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **agentFlushInterval?**: `number` +#### agentGuardVersion? + +> `optional` **agentGuardVersion?**: `string` \| `null` + +#### agentHighWatermarkRatio? + +> `optional` **agentHighWatermarkRatio?**: `number` \| `null` + +#### agentInstallId? + +> `optional` **agentInstallId?**: `string` \| `null` + +#### agentMaxConcurrentFlushes? + +> `optional` **agentMaxConcurrentFlushes?**: `number` \| `null` + +#### agentMaxPayloadSize? + +> `optional` **agentMaxPayloadSize?**: `number` \| `null` + +#### agentPayloadSigningSecret? + +> `optional` **agentPayloadSigningSecret?**: `string` \| `null` + +#### agentProjectEncryptionKey? + +> `optional` **agentProjectEncryptionKey?**: `string` \| `null` + #### agentProjectId? > `optional` **agentProjectId?**: `string` \| `null` @@ -55,10 +99,40 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **agentRetryAttempts?**: `number` +#### agentSensitiveHeaders? + +> `optional` **agentSensitiveHeaders?**: `string`[] \| `null` + +#### agentStatusInterval? + +> `optional` **agentStatusInterval?**: `number` + +#### agentStrict? + +> `optional` **agentStrict?**: `boolean` + #### agentTimeout? > `optional` **agentTimeout?**: `number` +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + #### autoBanDuration? > `optional` **autoBanDuration?**: `number` @@ -67,6 +141,14 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **autoBanThreshold?**: `number` +#### behaviorMaxResponseBodyInspectBytes? + +> `optional` **behaviorMaxResponseBodyInspectBytes?**: `number` + +#### behaviorScanResponseBody? + +> `optional` **behaviorScanResponseBody?**: `boolean` + #### blacklist? > `optional` **blacklist?**: `string`[] @@ -83,6 +165,14 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **blockedUserAgents?**: `string`[] +#### bodyReadMaxConcurrent? + +> `optional` **bodyReadMaxConcurrent?**: `number` + +#### bodyReadTimeout? + +> `optional` **bodyReadTimeout?**: `number` + #### cloudIpRefreshInterval? > `optional` **cloudIpRefreshInterval?**: `number` @@ -147,30 +237,74 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> +#### detectionAnomalyEmissionCooldown? + +> `optional` **detectionAnomalyEmissionCooldown?**: `number` + #### detectionAnomalyThreshold? > `optional` **detectionAnomalyThreshold?**: `number` +#### detectionBinaryMinRunLength? + +> `optional` **detectionBinaryMinRunLength?**: `number` + #### detectionCompilerTimeout? > `optional` **detectionCompilerTimeout?**: `number` +#### detectionMaxBodyInspectBytes? + +> `optional` **detectionMaxBodyInspectBytes?**: `number` + #### detectionMaxContentLength? > `optional` **detectionMaxContentLength?**: `number` +#### detectionMaxJsonDepth? + +> `optional` **detectionMaxJsonDepth?**: `number` + +#### detectionMaxScanChars? + +> `optional` **detectionMaxScanChars?**: `number` + +#### detectionMaxScanSeconds? + +> `optional` **detectionMaxScanSeconds?**: `number` + +#### detectionMaxScanValues? + +> `optional` **detectionMaxScanValues?**: `number` + #### detectionMaxTrackedPatterns? > `optional` **detectionMaxTrackedPatterns?**: `number` +#### detectionMinSamplesForAnomaly? + +> `optional` **detectionMinSamplesForAnomaly?**: `number` + #### detectionMonitorHistorySize? > `optional` **detectionMonitorHistorySize?**: `number` +#### detectionPatternValidationCachePath? + +> `optional` **detectionPatternValidationCachePath?**: `string` \| `null` + #### detectionPreserveAttackPatterns? > `optional` **detectionPreserveAttackPatterns?**: `boolean` +#### detectionScanBody? + +> `optional` **detectionScanBody?**: `boolean` + +#### detectionScanWorkerPool? + +> `optional` **detectionScanWorkerPool?**: `boolean` + #### detectionSemanticThreshold? > `optional` **detectionSemanticThreshold?**: `number` @@ -179,10 +313,18 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **detectionSlowPatternThreshold?**: `number` +#### detectionThreatScoreThreshold? + +> `optional` **detectionThreatScoreThreshold?**: `number` + #### dynamicRuleInterval? > `optional` **dynamicRuleInterval?**: `number` +#### dynamicRulesCachePath? + +> `optional` **dynamicRulesCachePath?**: `string` \| `null` + #### emergencyMode? > `optional` **emergencyMode?**: `boolean` @@ -199,18 +341,38 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **enableCors?**: `boolean` +#### enabledDetectionCategories? + +> `optional` **enabledDetectionCategories?**: `string`[] + #### enableDynamicRules? > `optional` **enableDynamicRules?**: `boolean` +#### enableEnrichment? + +> `optional` **enableEnrichment?**: `boolean` + #### enableIpBanning? > `optional` **enableIpBanning?**: `boolean` +#### enableLogfire? + +> `optional` **enableLogfire?**: `boolean` + +#### enableOtel? + +> `optional` **enableOtel?**: `boolean` + #### enablePenetrationDetection? > `optional` **enablePenetrationDetection?**: `boolean` +#### enableRateLimitAutoBan? + +> `optional` **enableRateLimitAutoBan?**: `boolean` + #### enableRateLimiting? > `optional` **enableRateLimiting?**: `boolean` @@ -227,10 +389,38 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **enforceHttps?**: `boolean` +#### excludedDetectionBodyFields? + +> `optional` **excludedDetectionBodyFields?**: `string`[] + +#### excludedDetectionHeaders? + +> `optional` **excludedDetectionHeaders?**: `string`[] + +#### excludedDetectionParams? + +> `optional` **excludedDetectionParams?**: `string`[] + +#### excludedSemanticDetectionHeaders? + +> `optional` **excludedSemanticDetectionHeaders?**: `string`[] + #### excludePaths? > `optional` **excludePaths?**: `string`[] +#### exemptIps? + +> `optional` **exemptIps?**: `string`[] + +#### failSecure? + +> `optional` **failSecure?**: `boolean` + +#### geoIpDbMaxAge? + +> `optional` **geoIpDbMaxAge?**: `number` + #### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) @@ -249,6 +439,30 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c `string` \| `null` +#### globalBehaviorRules? + +> `optional` **globalBehaviorRules?**: `object`[] + +#### ipinfoDbPath? + +> `optional` **ipinfoDbPath?**: `string` + +#### ipinfoToken? + +> `optional` **ipinfoToken?**: `string` \| `null` + +#### lazyInit? + +> `optional` **lazyInit?**: `boolean` + +#### logCountryCheckLevel? + +> `optional` **logCountryCheckLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName? + +> `optional` **logfireServiceName?**: `string` + #### logFormat? > `optional` **logFormat?**: `"text"` \| `"json"` @@ -261,10 +475,86 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **logRequestLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### logSensitiveBodyFields? + +> `optional` **logSensitiveBodyFields?**: `string`[] + +#### logSensitiveHeaders? + +> `optional` **logSensitiveHeaders?**: `string`[] + +#### logSensitiveParams? + +> `optional` **logSensitiveParams?**: `string`[] + #### logSuspiciousLevel? > `optional` **logSuspiciousLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### mutedCheckLogs? + +> `optional` **mutedCheckLogs?**: `string`[] + +#### mutedEventTypes? + +> `optional` **mutedEventTypes?**: `string`[] + +#### mutedMetricTypes? + +> `optional` **mutedMetricTypes?**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint? + +> `optional` **otelExporterEndpoint?**: `string` \| `null` + +#### otelResourceAttributes? + +> `optional` **otelResourceAttributes?**: `Record`\<`string`, `string`\> + +#### otelServiceName? + +> `optional` **otelServiceName?**: `string` + #### passiveMode? > `optional` **passiveMode?**: `boolean` @@ -277,18 +567,50 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **rateLimitWindow?**: `number` +#### redisFailOpen? + +> `optional` **redisFailOpen?**: `boolean` + +#### redisHealthCheckInterval? + +> `optional` **redisHealthCheckInterval?**: `number` + +#### redisMaxConnections? + +> `optional` **redisMaxConnections?**: `number` \| `null` + #### redisPrefix? > `optional` **redisPrefix?**: `string` +#### redisRetries? + +> `optional` **redisRetries?**: `number` + +#### redisSocketConnectTimeout? + +> `optional` **redisSocketConnectTimeout?**: `number` \| `null` + +#### redisSocketTimeout? + +> `optional` **redisSocketTimeout?**: `number` \| `null` + #### redisUrl? > `optional` **redisUrl?**: `string` +#### routeResolutionStrict? + +> `optional` **routeResolutionStrict?**: `boolean` + #### securityHeaders? > `optional` **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? + +> `optional` **threatBanConfig?**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + #### trustedProxies? > `optional` **trustedProxies?**: `string`[] @@ -315,7 +637,7 @@ Defined in: [express/src/middleware.ts:16](https://github.com/Guard-Core/guard-c > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) -Defined in: [express/src/middleware.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/middleware.ts#L18) +Defined in: [packages/express/src/middleware.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L45) *** @@ -323,4 +645,12 @@ Defined in: [express/src/middleware.ts:18](https://github.com/Guard-Core/guard-c > `optional` **guardDecorator?**: `unknown` -Defined in: [express/src/middleware.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/express/src/middleware.ts#L19) +Defined in: [packages/express/src/middleware.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L46) + +*** + +### routeConfigs? + +> `optional` **routeConfigs?**: [`PathRouteConfigEntry`](/guard-core-ts/api/core/src/interfaces/pathrouteconfigentry/)[] + +Defined in: [packages/express/src/middleware.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/middleware.ts#L50) diff --git a/docs/src/content/docs/api/express/src/variables/DEFAULT_STATUS_PATH.md b/docs/src/content/docs/api/express/src/variables/DEFAULT_STATUS_PATH.md new file mode 100644 index 0000000..7a8b0bd --- /dev/null +++ b/docs/src/content/docs/api/express/src/variables/DEFAULT_STATUS_PATH.md @@ -0,0 +1,10 @@ +--- +editUrl: false +next: false +prev: false +title: "DEFAULT_STATUS_PATH" +--- + +> `const` **DEFAULT\_STATUS\_PATH**: `"/_guard/status"` = `'/_guard/status'` + +Defined in: [packages/express/src/status.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/express/src/status.ts#L8) diff --git a/docs/src/content/docs/api/fastify/src/classes/FastifyGuardRequest.md b/docs/src/content/docs/api/fastify/src/classes/FastifyGuardRequest.md index 32f9c6e..128021b 100644 --- a/docs/src/content/docs/api/fastify/src/classes/FastifyGuardRequest.md +++ b/docs/src/content/docs/api/fastify/src/classes/FastifyGuardRequest.md @@ -5,7 +5,7 @@ prev: false title: "FastifyGuardRequest" --- -Defined in: [fastify/src/adapters.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L4) +Defined in: [packages/fastify/src/adapters.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L31) ## Implements @@ -17,7 +17,7 @@ Defined in: [fastify/src/adapters.ts:4](https://github.com/Guard-Core/guard-core > **new FastifyGuardRequest**(`req`): `FastifyGuardRequest` -Defined in: [fastify/src/adapters.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L7) +Defined in: [packages/fastify/src/adapters.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L36) #### Parameters @@ -37,7 +37,7 @@ Defined in: [fastify/src/adapters.ts:7](https://github.com/Guard-Core/guard-core > **get** **clientHost**(): `string` \| `null` -Defined in: [fastify/src/adapters.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L14) +Defined in: [packages/fastify/src/adapters.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L49) ##### Returns @@ -55,7 +55,7 @@ Defined in: [fastify/src/adapters.ts:14](https://github.com/Guard-Core/guard-cor > **get** **headers**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [fastify/src/adapters.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L15) +Defined in: [packages/fastify/src/adapters.ts:55](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L55) ##### Returns @@ -73,7 +73,7 @@ Defined in: [fastify/src/adapters.ts:15](https://github.com/Guard-Core/guard-cor > **get** **method**(): `string` -Defined in: [fastify/src/adapters.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L13) +Defined in: [packages/fastify/src/adapters.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L45) ##### Returns @@ -91,7 +91,7 @@ Defined in: [fastify/src/adapters.ts:13](https://github.com/Guard-Core/guard-cor > **get** **queryParams**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [fastify/src/adapters.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L16) +Defined in: [packages/fastify/src/adapters.ts:56](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L56) ##### Returns @@ -109,7 +109,7 @@ Defined in: [fastify/src/adapters.ts:16](https://github.com/Guard-Core/guard-cor > **get** **scope**(): `Readonly`\<`Record`\<`string`, `unknown`\>\> -Defined in: [fastify/src/adapters.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L25) +Defined in: [packages/fastify/src/adapters.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L65) ##### Returns @@ -127,7 +127,7 @@ Defined in: [fastify/src/adapters.ts:25](https://github.com/Guard-Core/guard-cor > **get** **state**(): [`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) -Defined in: [fastify/src/adapters.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L24) +Defined in: [packages/fastify/src/adapters.ts:64](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L64) ##### Returns @@ -145,7 +145,7 @@ Defined in: [fastify/src/adapters.ts:24](https://github.com/Guard-Core/guard-cor > **get** **urlFull**(): `string` -Defined in: [fastify/src/adapters.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L11) +Defined in: [packages/fastify/src/adapters.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L43) ##### Returns @@ -163,7 +163,7 @@ Defined in: [fastify/src/adapters.ts:11](https://github.com/Guard-Core/guard-cor > **get** **urlPath**(): `string` -Defined in: [fastify/src/adapters.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L9) +Defined in: [packages/fastify/src/adapters.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L41) ##### Returns @@ -181,7 +181,7 @@ Defined in: [fastify/src/adapters.ts:9](https://github.com/Guard-Core/guard-core > **get** **urlScheme**(): `string` -Defined in: [fastify/src/adapters.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L10) +Defined in: [packages/fastify/src/adapters.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L42) ##### Returns @@ -197,7 +197,7 @@ Defined in: [fastify/src/adapters.ts:10](https://github.com/Guard-Core/guard-cor > **body**(): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> -Defined in: [fastify/src/adapters.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L17) +Defined in: [packages/fastify/src/adapters.ts:57](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L57) #### Returns @@ -213,7 +213,7 @@ Defined in: [fastify/src/adapters.ts:17](https://github.com/Guard-Core/guard-cor > **urlReplaceScheme**(`scheme`): `string` -Defined in: [fastify/src/adapters.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L12) +Defined in: [packages/fastify/src/adapters.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L44) #### Parameters diff --git a/docs/src/content/docs/api/fastify/src/classes/FastifyGuardResponse.md b/docs/src/content/docs/api/fastify/src/classes/FastifyGuardResponse.md index 5c3d20f..5f33383 100644 --- a/docs/src/content/docs/api/fastify/src/classes/FastifyGuardResponse.md +++ b/docs/src/content/docs/api/fastify/src/classes/FastifyGuardResponse.md @@ -5,7 +5,7 @@ prev: false title: "FastifyGuardResponse" --- -Defined in: [fastify/src/adapters.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L28) +Defined in: [packages/fastify/src/adapters.ts:68](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L68) ## Implements @@ -17,7 +17,7 @@ Defined in: [fastify/src/adapters.ts:28](https://github.com/Guard-Core/guard-cor > **new FastifyGuardResponse**(`statusCode`, `content`): `FastifyGuardResponse` -Defined in: [fastify/src/adapters.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L32) +Defined in: [packages/fastify/src/adapters.ts:72](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L72) #### Parameters @@ -39,7 +39,7 @@ Defined in: [fastify/src/adapters.ts:32](https://github.com/Guard-Core/guard-cor > `readonly` **statusCode**: `number` -Defined in: [fastify/src/adapters.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L32) +Defined in: [packages/fastify/src/adapters.ts:72](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L72) #### Implementation of @@ -53,7 +53,7 @@ Defined in: [fastify/src/adapters.ts:32](https://github.com/Guard-Core/guard-cor > **get** **body**(): `Uint8Array`\<`ArrayBufferLike`\> \| `null` -Defined in: [fastify/src/adapters.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L39) +Defined in: [packages/fastify/src/adapters.ts:82](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L82) ##### Returns @@ -71,7 +71,7 @@ Defined in: [fastify/src/adapters.ts:39](https://github.com/Guard-Core/guard-cor > **get** **bodyText**(): `string` \| `null` -Defined in: [fastify/src/adapters.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L40) +Defined in: [packages/fastify/src/adapters.ts:83](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L83) ##### Returns @@ -89,7 +89,7 @@ Defined in: [fastify/src/adapters.ts:40](https://github.com/Guard-Core/guard-cor > **get** **headers**(): `Record`\<`string`, `string`\> -Defined in: [fastify/src/adapters.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L37) +Defined in: [packages/fastify/src/adapters.ts:80](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L80) ##### Returns @@ -105,7 +105,7 @@ Defined in: [fastify/src/adapters.ts:37](https://github.com/Guard-Core/guard-cor > **setHeader**(`name`, `value`): `void` -Defined in: [fastify/src/adapters.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L38) +Defined in: [packages/fastify/src/adapters.ts:81](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L81) #### Parameters diff --git a/docs/src/content/docs/api/fastify/src/classes/FastifyResponseFactory.md b/docs/src/content/docs/api/fastify/src/classes/FastifyResponseFactory.md index 6f27a7f..fa47de1 100644 --- a/docs/src/content/docs/api/fastify/src/classes/FastifyResponseFactory.md +++ b/docs/src/content/docs/api/fastify/src/classes/FastifyResponseFactory.md @@ -5,7 +5,7 @@ prev: false title: "FastifyResponseFactory" --- -Defined in: [fastify/src/adapters.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L43) +Defined in: [packages/fastify/src/adapters.ts:86](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L86) ## Implements @@ -27,7 +27,7 @@ Defined in: [fastify/src/adapters.ts:43](https://github.com/Guard-Core/guard-cor > **createRedirectResponse**(`url`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [fastify/src/adapters.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L48) +Defined in: [packages/fastify/src/adapters.ts:91](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L91) #### Parameters @@ -53,7 +53,7 @@ Defined in: [fastify/src/adapters.ts:48](https://github.com/Guard-Core/guard-cor > **createResponse**(`content`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [fastify/src/adapters.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/adapters.ts#L44) +Defined in: [packages/fastify/src/adapters.ts:87](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/adapters.ts#L87) #### Parameters diff --git a/docs/src/content/docs/api/fastify/src/functions/configureCors.md b/docs/src/content/docs/api/fastify/src/functions/configureCors.md index c8c4b55..fb1e4f0 100644 --- a/docs/src/content/docs/api/fastify/src/functions/configureCors.md +++ b/docs/src/content/docs/api/fastify/src/functions/configureCors.md @@ -7,7 +7,7 @@ title: "configureCors" > **configureCors**(`fastify`, `config`): `Promise`\<`void`\> -Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/cors.ts#L4) +Defined in: [packages/fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/cors.ts#L4) ## Parameters @@ -21,10 +21,26 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `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` = `...` @@ -49,10 +93,26 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [fastify/src/cors.ts:4](https://github.com/Guard-Core/guard-core-ts/ `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`[] = `...` diff --git a/docs/src/content/docs/api/fastify/src/functions/resolveAgentHandler.md b/docs/src/content/docs/api/fastify/src/functions/resolveAgentHandler.md new file mode 100644 index 0000000..084c1f9 --- /dev/null +++ b/docs/src/content/docs/api/fastify/src/functions/resolveAgentHandler.md @@ -0,0 +1,558 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveAgentHandler" +--- + +> **resolveAgentHandler**(`config`, `injected`, `logger`): `Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/fastify/src/interfaces/resolvedagenthandler/)\> + +Defined in: [packages/fastify/src/agent.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/agent.ts#L25) + +## Parameters + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +### injected + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` \| `undefined` + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +## Returns + +`Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/fastify/src/interfaces/resolvedagenthandler/)\> diff --git a/docs/src/content/docs/api/fastify/src/interfaces/GuardPluginOptions.md b/docs/src/content/docs/api/fastify/src/interfaces/GuardPluginOptions.md index 37b662a..46a8243 100644 --- a/docs/src/content/docs/api/fastify/src/interfaces/GuardPluginOptions.md +++ b/docs/src/content/docs/api/fastify/src/interfaces/GuardPluginOptions.md @@ -5,7 +5,7 @@ prev: false title: "GuardPluginOptions" --- -Defined in: [fastify/src/plugin.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/plugin.ts#L15) +Defined in: [packages/fastify/src/plugin.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L41) ## Properties @@ -13,7 +13,7 @@ Defined in: [fastify/src/plugin.ts:15](https://github.com/Guard-Core/guard-core- > `optional` **agentHandler?**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) -Defined in: [fastify/src/plugin.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/plugin.ts#L17) +Defined in: [packages/fastify/src/plugin.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L43) *** @@ -21,16 +21,32 @@ Defined in: [fastify/src/plugin.ts:17](https://github.com/Guard-Core/guard-core- > **config**: `object` -Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/plugin.ts#L16) +Defined in: [packages/fastify/src/plugin.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L42) #### agentApiKey? > `optional` **agentApiKey?**: `string` \| `null` +#### agentBackoffFactor? + +> `optional` **agentBackoffFactor?**: `number` \| `null` + +#### agentBufferOverflowPolicy? + +> `optional` **agentBufferOverflowPolicy?**: `"drop"` \| `"block"` \| `"raise"` \| `null` + #### agentBufferSize? > `optional` **agentBufferSize?**: `number` +#### agentCompressionEnabled? + +> `optional` **agentCompressionEnabled?**: `boolean` \| `null` + +#### agentCompressionThreshold? + +> `optional` **agentCompressionThreshold?**: `number` \| `null` + #### agentEnableEvents? > `optional` **agentEnableEvents?**: `boolean` @@ -47,6 +63,34 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **agentFlushInterval?**: `number` +#### agentGuardVersion? + +> `optional` **agentGuardVersion?**: `string` \| `null` + +#### agentHighWatermarkRatio? + +> `optional` **agentHighWatermarkRatio?**: `number` \| `null` + +#### agentInstallId? + +> `optional` **agentInstallId?**: `string` \| `null` + +#### agentMaxConcurrentFlushes? + +> `optional` **agentMaxConcurrentFlushes?**: `number` \| `null` + +#### agentMaxPayloadSize? + +> `optional` **agentMaxPayloadSize?**: `number` \| `null` + +#### agentPayloadSigningSecret? + +> `optional` **agentPayloadSigningSecret?**: `string` \| `null` + +#### agentProjectEncryptionKey? + +> `optional` **agentProjectEncryptionKey?**: `string` \| `null` + #### agentProjectId? > `optional` **agentProjectId?**: `string` \| `null` @@ -55,10 +99,40 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **agentRetryAttempts?**: `number` +#### agentSensitiveHeaders? + +> `optional` **agentSensitiveHeaders?**: `string`[] \| `null` + +#### agentStatusInterval? + +> `optional` **agentStatusInterval?**: `number` + +#### agentStrict? + +> `optional` **agentStrict?**: `boolean` + #### agentTimeout? > `optional` **agentTimeout?**: `number` +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + #### autoBanDuration? > `optional` **autoBanDuration?**: `number` @@ -67,6 +141,14 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **autoBanThreshold?**: `number` +#### behaviorMaxResponseBodyInspectBytes? + +> `optional` **behaviorMaxResponseBodyInspectBytes?**: `number` + +#### behaviorScanResponseBody? + +> `optional` **behaviorScanResponseBody?**: `boolean` + #### blacklist? > `optional` **blacklist?**: `string`[] @@ -83,6 +165,14 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **blockedUserAgents?**: `string`[] +#### bodyReadMaxConcurrent? + +> `optional` **bodyReadMaxConcurrent?**: `number` + +#### bodyReadTimeout? + +> `optional` **bodyReadTimeout?**: `number` + #### cloudIpRefreshInterval? > `optional` **cloudIpRefreshInterval?**: `number` @@ -147,30 +237,74 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> +#### detectionAnomalyEmissionCooldown? + +> `optional` **detectionAnomalyEmissionCooldown?**: `number` + #### detectionAnomalyThreshold? > `optional` **detectionAnomalyThreshold?**: `number` +#### detectionBinaryMinRunLength? + +> `optional` **detectionBinaryMinRunLength?**: `number` + #### detectionCompilerTimeout? > `optional` **detectionCompilerTimeout?**: `number` +#### detectionMaxBodyInspectBytes? + +> `optional` **detectionMaxBodyInspectBytes?**: `number` + #### detectionMaxContentLength? > `optional` **detectionMaxContentLength?**: `number` +#### detectionMaxJsonDepth? + +> `optional` **detectionMaxJsonDepth?**: `number` + +#### detectionMaxScanChars? + +> `optional` **detectionMaxScanChars?**: `number` + +#### detectionMaxScanSeconds? + +> `optional` **detectionMaxScanSeconds?**: `number` + +#### detectionMaxScanValues? + +> `optional` **detectionMaxScanValues?**: `number` + #### detectionMaxTrackedPatterns? > `optional` **detectionMaxTrackedPatterns?**: `number` +#### detectionMinSamplesForAnomaly? + +> `optional` **detectionMinSamplesForAnomaly?**: `number` + #### detectionMonitorHistorySize? > `optional` **detectionMonitorHistorySize?**: `number` +#### detectionPatternValidationCachePath? + +> `optional` **detectionPatternValidationCachePath?**: `string` \| `null` + #### detectionPreserveAttackPatterns? > `optional` **detectionPreserveAttackPatterns?**: `boolean` +#### detectionScanBody? + +> `optional` **detectionScanBody?**: `boolean` + +#### detectionScanWorkerPool? + +> `optional` **detectionScanWorkerPool?**: `boolean` + #### detectionSemanticThreshold? > `optional` **detectionSemanticThreshold?**: `number` @@ -179,10 +313,18 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **detectionSlowPatternThreshold?**: `number` +#### detectionThreatScoreThreshold? + +> `optional` **detectionThreatScoreThreshold?**: `number` + #### dynamicRuleInterval? > `optional` **dynamicRuleInterval?**: `number` +#### dynamicRulesCachePath? + +> `optional` **dynamicRulesCachePath?**: `string` \| `null` + #### emergencyMode? > `optional` **emergencyMode?**: `boolean` @@ -199,18 +341,38 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **enableCors?**: `boolean` +#### enabledDetectionCategories? + +> `optional` **enabledDetectionCategories?**: `string`[] + #### enableDynamicRules? > `optional` **enableDynamicRules?**: `boolean` +#### enableEnrichment? + +> `optional` **enableEnrichment?**: `boolean` + #### enableIpBanning? > `optional` **enableIpBanning?**: `boolean` +#### enableLogfire? + +> `optional` **enableLogfire?**: `boolean` + +#### enableOtel? + +> `optional` **enableOtel?**: `boolean` + #### enablePenetrationDetection? > `optional` **enablePenetrationDetection?**: `boolean` +#### enableRateLimitAutoBan? + +> `optional` **enableRateLimitAutoBan?**: `boolean` + #### enableRateLimiting? > `optional` **enableRateLimiting?**: `boolean` @@ -227,10 +389,38 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **enforceHttps?**: `boolean` +#### excludedDetectionBodyFields? + +> `optional` **excludedDetectionBodyFields?**: `string`[] + +#### excludedDetectionHeaders? + +> `optional` **excludedDetectionHeaders?**: `string`[] + +#### excludedDetectionParams? + +> `optional` **excludedDetectionParams?**: `string`[] + +#### excludedSemanticDetectionHeaders? + +> `optional` **excludedSemanticDetectionHeaders?**: `string`[] + #### excludePaths? > `optional` **excludePaths?**: `string`[] +#### exemptIps? + +> `optional` **exemptIps?**: `string`[] + +#### failSecure? + +> `optional` **failSecure?**: `boolean` + +#### geoIpDbMaxAge? + +> `optional` **geoIpDbMaxAge?**: `number` + #### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) @@ -249,6 +439,30 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- `string` \| `null` +#### globalBehaviorRules? + +> `optional` **globalBehaviorRules?**: `object`[] + +#### ipinfoDbPath? + +> `optional` **ipinfoDbPath?**: `string` + +#### ipinfoToken? + +> `optional` **ipinfoToken?**: `string` \| `null` + +#### lazyInit? + +> `optional` **lazyInit?**: `boolean` + +#### logCountryCheckLevel? + +> `optional` **logCountryCheckLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName? + +> `optional` **logfireServiceName?**: `string` + #### logFormat? > `optional` **logFormat?**: `"text"` \| `"json"` @@ -261,10 +475,86 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **logRequestLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### logSensitiveBodyFields? + +> `optional` **logSensitiveBodyFields?**: `string`[] + +#### logSensitiveHeaders? + +> `optional` **logSensitiveHeaders?**: `string`[] + +#### logSensitiveParams? + +> `optional` **logSensitiveParams?**: `string`[] + #### logSuspiciousLevel? > `optional` **logSuspiciousLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### mutedCheckLogs? + +> `optional` **mutedCheckLogs?**: `string`[] + +#### mutedEventTypes? + +> `optional` **mutedEventTypes?**: `string`[] + +#### mutedMetricTypes? + +> `optional` **mutedMetricTypes?**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint? + +> `optional` **otelExporterEndpoint?**: `string` \| `null` + +#### otelResourceAttributes? + +> `optional` **otelResourceAttributes?**: `Record`\<`string`, `string`\> + +#### otelServiceName? + +> `optional` **otelServiceName?**: `string` + #### passiveMode? > `optional` **passiveMode?**: `boolean` @@ -277,18 +567,50 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **rateLimitWindow?**: `number` +#### redisFailOpen? + +> `optional` **redisFailOpen?**: `boolean` + +#### redisHealthCheckInterval? + +> `optional` **redisHealthCheckInterval?**: `number` + +#### redisMaxConnections? + +> `optional` **redisMaxConnections?**: `number` \| `null` + #### redisPrefix? > `optional` **redisPrefix?**: `string` +#### redisRetries? + +> `optional` **redisRetries?**: `number` + +#### redisSocketConnectTimeout? + +> `optional` **redisSocketConnectTimeout?**: `number` \| `null` + +#### redisSocketTimeout? + +> `optional` **redisSocketTimeout?**: `number` \| `null` + #### redisUrl? > `optional` **redisUrl?**: `string` +#### routeResolutionStrict? + +> `optional` **routeResolutionStrict?**: `boolean` + #### securityHeaders? > `optional` **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? + +> `optional` **threatBanConfig?**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + #### trustedProxies? > `optional` **trustedProxies?**: `string`[] @@ -315,7 +637,7 @@ Defined in: [fastify/src/plugin.ts:16](https://github.com/Guard-Core/guard-core- > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) -Defined in: [fastify/src/plugin.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/plugin.ts#L18) +Defined in: [packages/fastify/src/plugin.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L44) *** @@ -323,4 +645,12 @@ Defined in: [fastify/src/plugin.ts:18](https://github.com/Guard-Core/guard-core- > `optional` **guardDecorator?**: `unknown` -Defined in: [fastify/src/plugin.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/plugin.ts#L19) +Defined in: [packages/fastify/src/plugin.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L45) + +*** + +### routeConfigs? + +> `optional` **routeConfigs?**: [`PathRouteConfigEntry`](/guard-core-ts/api/core/src/interfaces/pathrouteconfigentry/)[] + +Defined in: [packages/fastify/src/plugin.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L50) diff --git a/docs/src/content/docs/api/fastify/src/interfaces/GuardSurface.md b/docs/src/content/docs/api/fastify/src/interfaces/GuardSurface.md new file mode 100644 index 0000000..e23d407 --- /dev/null +++ b/docs/src/content/docs/api/fastify/src/interfaces/GuardSurface.md @@ -0,0 +1,134 @@ +--- +editUrl: false +next: false +prev: false +title: "GuardSurface" +--- + +Defined in: [packages/fastify/src/plugin.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L22) + +## Properties + +### agentStats + +> `readonly` **agentStats**: `object` & `Record`\<`string`, `unknown`\> + +Defined in: [packages/fastify/src/plugin.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L31) + +#### Type Declaration + +##### degraded + +> **degraded**: `boolean` + +##### enabled + +> **enabled**: `boolean` + +## Methods + +### addStatusRoute() + +> **addStatusRoute**(`path?`): `void` + +Defined in: [packages/fastify/src/plugin.ts:33](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L33) + +#### Parameters + +##### path? + +`string` + +#### Returns + +`void` + +*** + +### createErrorResponse() + +> **createErrorResponse**(`statusCode`, `message`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +Defined in: [packages/fastify/src/plugin.ts:32](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L32) + +#### Parameters + +##### statusCode + +`number` + +##### message + +`string` + +#### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +*** + +### getInitializationStatus() + +> **getInitializationStatus**(): `object` + +Defined in: [packages/fastify/src/plugin.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L25) + +#### Returns + +`object` + +##### agent + +> **agent**: `object` + +###### agent.degraded + +> **degraded**: `boolean` + +###### agent.enabled + +> **enabled**: `boolean` + +##### initialized + +> **initialized**: `boolean` + +##### redis + +> **redis**: `boolean` + +*** + +### markInitialized() + +> **markInitialized**(): `void` + +Defined in: [packages/fastify/src/plugin.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L24) + +#### Returns + +`void` + +*** + +### refreshCloudIpRanges() + +> **refreshCloudIpRanges**(): `Promise`\<`void`\> + +Defined in: [packages/fastify/src/plugin.ts:30](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L30) + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/fastify/src/plugin.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L23) + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/fastify/src/interfaces/ResolvedAgentHandler.md b/docs/src/content/docs/api/fastify/src/interfaces/ResolvedAgentHandler.md new file mode 100644 index 0000000..8094d27 --- /dev/null +++ b/docs/src/content/docs/api/fastify/src/interfaces/ResolvedAgentHandler.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "ResolvedAgentHandler" +--- + +Defined in: [packages/fastify/src/agent.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/agent.ts#L18) + +## Properties + +### agentHandler + +> **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` + +Defined in: [packages/fastify/src/agent.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/agent.ts#L19) + +*** + +### degraded + +> **degraded**: `boolean` + +Defined in: [packages/fastify/src/agent.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/agent.ts#L22) + +True when the agent was enabled but construction failed and the +middleware degraded to agent-off (the reference agent_degraded). diff --git a/docs/src/content/docs/api/fastify/src/functions/guardPlugin.md b/docs/src/content/docs/api/fastify/src/variables/guardPlugin.md similarity index 50% rename from docs/src/content/docs/api/fastify/src/functions/guardPlugin.md rename to docs/src/content/docs/api/fastify/src/variables/guardPlugin.md index ba3deb7..0f0f068 100644 --- a/docs/src/content/docs/api/fastify/src/functions/guardPlugin.md +++ b/docs/src/content/docs/api/fastify/src/variables/guardPlugin.md @@ -5,9 +5,9 @@ prev: false title: "guardPlugin" --- -> **guardPlugin**(`fastify`, `options`): `Promise`\<`void`\> +> `const` **guardPlugin**: (`fastify`, `options`) => `Promise`\<`void`\> -Defined in: [fastify/src/plugin.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/fastify/src/plugin.ts#L22) +Defined in: [packages/fastify/src/plugin.ts:77](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/fastify/src/plugin.ts#L77) ## Parameters diff --git a/docs/src/content/docs/api/hono/src/classes/HonoGuardRequest.md b/docs/src/content/docs/api/hono/src/classes/HonoGuardRequest.md index 134d06b..ed4167a 100644 --- a/docs/src/content/docs/api/hono/src/classes/HonoGuardRequest.md +++ b/docs/src/content/docs/api/hono/src/classes/HonoGuardRequest.md @@ -5,7 +5,7 @@ prev: false title: "HonoGuardRequest" --- -Defined in: [hono/src/adapters.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L4) +Defined in: [packages/hono/src/adapters.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L4) ## Implements @@ -17,7 +17,7 @@ Defined in: [hono/src/adapters.ts:4](https://github.com/Guard-Core/guard-core-ts > **new HonoGuardRequest**(`req`, `connectingIp`): `HonoGuardRequest` -Defined in: [hono/src/adapters.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L8) +Defined in: [packages/hono/src/adapters.ts:8](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L8) #### Parameters @@ -41,7 +41,7 @@ Defined in: [hono/src/adapters.ts:8](https://github.com/Guard-Core/guard-core-ts > **get** **clientHost**(): `string` \| `null` -Defined in: [hono/src/adapters.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L17) +Defined in: [packages/hono/src/adapters.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L17) ##### Returns @@ -59,7 +59,7 @@ Defined in: [hono/src/adapters.ts:17](https://github.com/Guard-Core/guard-core-t > **get** **headers**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [hono/src/adapters.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L18) +Defined in: [packages/hono/src/adapters.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L18) ##### Returns @@ -77,7 +77,7 @@ Defined in: [hono/src/adapters.ts:18](https://github.com/Guard-Core/guard-core-t > **get** **method**(): `string` -Defined in: [hono/src/adapters.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L16) +Defined in: [packages/hono/src/adapters.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L16) ##### Returns @@ -95,7 +95,7 @@ Defined in: [hono/src/adapters.ts:16](https://github.com/Guard-Core/guard-core-t > **get** **queryParams**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [hono/src/adapters.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L19) +Defined in: [packages/hono/src/adapters.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L19) ##### Returns @@ -113,7 +113,7 @@ Defined in: [hono/src/adapters.ts:19](https://github.com/Guard-Core/guard-core-t > **get** **scope**(): `Readonly`\<`Record`\<`string`, `unknown`\>\> -Defined in: [hono/src/adapters.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L22) +Defined in: [packages/hono/src/adapters.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L22) ##### Returns @@ -131,7 +131,7 @@ Defined in: [hono/src/adapters.ts:22](https://github.com/Guard-Core/guard-core-t > **get** **state**(): [`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) -Defined in: [hono/src/adapters.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L21) +Defined in: [packages/hono/src/adapters.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L21) ##### Returns @@ -149,7 +149,7 @@ Defined in: [hono/src/adapters.ts:21](https://github.com/Guard-Core/guard-core-t > **get** **urlFull**(): `string` -Defined in: [hono/src/adapters.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L14) +Defined in: [packages/hono/src/adapters.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L14) ##### Returns @@ -167,7 +167,7 @@ Defined in: [hono/src/adapters.ts:14](https://github.com/Guard-Core/guard-core-t > **get** **urlPath**(): `string` -Defined in: [hono/src/adapters.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L12) +Defined in: [packages/hono/src/adapters.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L12) ##### Returns @@ -185,7 +185,7 @@ Defined in: [hono/src/adapters.ts:12](https://github.com/Guard-Core/guard-core-t > **get** **urlScheme**(): `string` -Defined in: [hono/src/adapters.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L13) +Defined in: [packages/hono/src/adapters.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L13) ##### Returns @@ -201,7 +201,7 @@ Defined in: [hono/src/adapters.ts:13](https://github.com/Guard-Core/guard-core-t > **body**(): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> -Defined in: [hono/src/adapters.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L20) +Defined in: [packages/hono/src/adapters.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L20) #### Returns @@ -217,7 +217,7 @@ Defined in: [hono/src/adapters.ts:20](https://github.com/Guard-Core/guard-core-t > **urlReplaceScheme**(`scheme`): `string` -Defined in: [hono/src/adapters.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L15) +Defined in: [packages/hono/src/adapters.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L15) #### Parameters diff --git a/docs/src/content/docs/api/hono/src/classes/HonoGuardResponse.md b/docs/src/content/docs/api/hono/src/classes/HonoGuardResponse.md index be0a822..18f6596 100644 --- a/docs/src/content/docs/api/hono/src/classes/HonoGuardResponse.md +++ b/docs/src/content/docs/api/hono/src/classes/HonoGuardResponse.md @@ -5,7 +5,7 @@ prev: false title: "HonoGuardResponse" --- -Defined in: [hono/src/adapters.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L25) +Defined in: [packages/hono/src/adapters.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L25) ## Implements @@ -17,7 +17,7 @@ Defined in: [hono/src/adapters.ts:25](https://github.com/Guard-Core/guard-core-t > **new HonoGuardResponse**(`statusCode`, `content`): `HonoGuardResponse` -Defined in: [hono/src/adapters.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L29) +Defined in: [packages/hono/src/adapters.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L29) #### Parameters @@ -39,7 +39,7 @@ Defined in: [hono/src/adapters.ts:29](https://github.com/Guard-Core/guard-core-t > `readonly` **statusCode**: `number` -Defined in: [hono/src/adapters.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L29) +Defined in: [packages/hono/src/adapters.ts:29](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L29) #### Implementation of @@ -53,7 +53,7 @@ Defined in: [hono/src/adapters.ts:29](https://github.com/Guard-Core/guard-core-t > **get** **body**(): `Uint8Array`\<`ArrayBufferLike`\> \| `null` -Defined in: [hono/src/adapters.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L36) +Defined in: [packages/hono/src/adapters.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L39) ##### Returns @@ -71,7 +71,7 @@ Defined in: [hono/src/adapters.ts:36](https://github.com/Guard-Core/guard-core-t > **get** **bodyText**(): `string` \| `null` -Defined in: [hono/src/adapters.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L37) +Defined in: [packages/hono/src/adapters.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L40) ##### Returns @@ -89,7 +89,7 @@ Defined in: [hono/src/adapters.ts:37](https://github.com/Guard-Core/guard-core-t > **get** **headers**(): `Record`\<`string`, `string`\> -Defined in: [hono/src/adapters.ts:34](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L34) +Defined in: [packages/hono/src/adapters.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L37) ##### Returns @@ -105,7 +105,7 @@ Defined in: [hono/src/adapters.ts:34](https://github.com/Guard-Core/guard-core-t > **setHeader**(`name`, `value`): `void` -Defined in: [hono/src/adapters.ts:35](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L35) +Defined in: [packages/hono/src/adapters.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L38) #### Parameters diff --git a/docs/src/content/docs/api/hono/src/classes/HonoResponseFactory.md b/docs/src/content/docs/api/hono/src/classes/HonoResponseFactory.md index 52a6529..013a07e 100644 --- a/docs/src/content/docs/api/hono/src/classes/HonoResponseFactory.md +++ b/docs/src/content/docs/api/hono/src/classes/HonoResponseFactory.md @@ -5,7 +5,7 @@ prev: false title: "HonoResponseFactory" --- -Defined in: [hono/src/adapters.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L40) +Defined in: [packages/hono/src/adapters.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L43) ## Implements @@ -27,7 +27,7 @@ Defined in: [hono/src/adapters.ts:40](https://github.com/Guard-Core/guard-core-t > **createRedirectResponse**(`url`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [hono/src/adapters.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L45) +Defined in: [packages/hono/src/adapters.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L48) #### Parameters @@ -53,7 +53,7 @@ Defined in: [hono/src/adapters.ts:45](https://github.com/Guard-Core/guard-core-t > **createResponse**(`content`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [hono/src/adapters.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/adapters.ts#L41) +Defined in: [packages/hono/src/adapters.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/adapters.ts#L44) #### Parameters diff --git a/docs/src/content/docs/api/hono/src/functions/configureCors.md b/docs/src/content/docs/api/hono/src/functions/configureCors.md index 3eb3cb2..c5788c0 100644 --- a/docs/src/content/docs/api/hono/src/functions/configureCors.md +++ b/docs/src/content/docs/api/hono/src/functions/configureCors.md @@ -7,7 +7,7 @@ title: "configureCors" > **configureCors**(`app`, `config`): `void` -Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/cors.ts#L5) +Defined in: [packages/hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/cors.ts#L5) ## Parameters @@ -21,10 +21,26 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `string` \| `null` = `...` +#### agentBackoffFactor + +`number` \| `null` = `...` + +#### agentBufferOverflowPolicy + +`"drop"` \| `"block"` \| `"raise"` \| `null` = `...` + #### agentBufferSize `number` = `...` +#### agentCompressionEnabled + +`boolean` \| `null` = `...` + +#### agentCompressionThreshold + +`number` \| `null` = `...` + #### agentEnableEvents `boolean` = `...` @@ -41,6 +57,34 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `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` = `...` @@ -49,10 +93,26 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `number` = `...` +#### agentSensitiveHeaders + +`string`[] \| `null` = `...` + +#### agentStatusInterval + +`number` = `...` + +#### agentStrict + +`boolean` = `...` + #### agentTimeout `number` = `...` +#### authVerifier? + +(`request`, `credential`) => `unknown` = `...` + #### autoBanDuration `number` = `...` @@ -61,6 +121,14 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `number` = `...` +#### behaviorMaxResponseBodyInspectBytes + +`number` = `...` + +#### behaviorScanResponseBody + +`boolean` = `...` + #### blacklist `string`[] = `...` @@ -77,6 +145,14 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `string`[] = `...` +#### bodyReadMaxConcurrent + +`number` = `...` + +#### bodyReadTimeout + +`number` = `...` + #### cloudIpRefreshInterval `number` = `...` @@ -121,30 +197,74 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo (`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` +#### detectionAnomalyEmissionCooldown + +`number` = `...` + #### detectionAnomalyThreshold `number` = `...` +#### detectionBinaryMinRunLength + +`number` = `...` + #### detectionCompilerTimeout `number` = `...` +#### detectionMaxBodyInspectBytes + +`number` = `...` + #### detectionMaxContentLength `number` = `...` +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`number` = `...` + +#### detectionMaxScanValues + +`number` = `...` + #### detectionMaxTrackedPatterns `number` = `...` +#### detectionMinSamplesForAnomaly + +`number` = `...` + #### detectionMonitorHistorySize `number` = `...` +#### detectionPatternValidationCachePath + +`string` \| `null` = `...` + #### detectionPreserveAttackPatterns `boolean` = `...` +#### detectionScanBody + +`boolean` = `...` + +#### detectionScanWorkerPool + +`boolean` = `...` + #### detectionSemanticThreshold `number` = `...` @@ -153,10 +273,18 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `number` = `...` +#### detectionThreatScoreThreshold + +`number` = `...` + #### dynamicRuleInterval `number` = `...` +#### dynamicRulesCachePath + +`string` \| `null` = `...` + #### emergencyMode `boolean` = `...` @@ -173,18 +301,38 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `boolean` = `...` +#### enabledDetectionCategories + +`string`[] = `...` + #### enableDynamicRules `boolean` = `...` +#### enableEnrichment + +`boolean` = `...` + #### enableIpBanning `boolean` = `...` +#### enableLogfire + +`boolean` = `...` + +#### enableOtel + +`boolean` = `...` + #### enablePenetrationDetection `boolean` = `...` +#### enableRateLimitAutoBan + +`boolean` = `...` + #### enableRateLimiting `boolean` = `...` @@ -201,10 +349,38 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `boolean` = `...` +#### excludedDetectionBodyFields + +`string`[] = `...` + +#### excludedDetectionHeaders + +`string`[] = `...` + +#### excludedDetectionParams + +`string`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + #### excludePaths `string`[] = `...` +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + #### geoIpHandler? [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` @@ -213,6 +389,30 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo (`ip`) => `string` \| `null` = `...` +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + #### logFormat `"text"` \| `"json"` = `...` @@ -225,10 +425,54 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `"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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `void` = `...` + +#### otelExporterEndpoint + +`string` \| `null` = `...` + +#### otelResourceAttributes + +`Record`\<`string`, `string`\> = `...` + +#### otelServiceName + +`string` = `...` + #### passiveMode `boolean` = `...` @@ -241,18 +485,50 @@ Defined in: [hono/src/cors.ts:5](https://github.com/Guard-Core/guard-core-ts/blo `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`[] = `...` diff --git a/docs/src/content/docs/api/hono/src/functions/createGuardMiddleware.md b/docs/src/content/docs/api/hono/src/functions/createGuardMiddleware.md index 3e3b6aa..cf426a2 100644 --- a/docs/src/content/docs/api/hono/src/functions/createGuardMiddleware.md +++ b/docs/src/content/docs/api/hono/src/functions/createGuardMiddleware.md @@ -5,9 +5,9 @@ prev: false title: "createGuardMiddleware" --- -> **createGuardMiddleware**(`options`): `MiddlewareHandler` +> **createGuardMiddleware**(`options`): `MiddlewareHandler` & [`GuardSurface`](/guard-core-ts/api/hono/src/interfaces/guardsurface/) -Defined in: [hono/src/middleware.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/middleware.ts#L22) +Defined in: [packages/hono/src/middleware.ts:57](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L57) ## Parameters @@ -17,4 +17,4 @@ Defined in: [hono/src/middleware.ts:22](https://github.com/Guard-Core/guard-core ## Returns -`MiddlewareHandler` +`MiddlewareHandler` & [`GuardSurface`](/guard-core-ts/api/hono/src/interfaces/guardsurface/) diff --git a/docs/src/content/docs/api/hono/src/functions/resolveAgentHandler.md b/docs/src/content/docs/api/hono/src/functions/resolveAgentHandler.md new file mode 100644 index 0000000..64369dc --- /dev/null +++ b/docs/src/content/docs/api/hono/src/functions/resolveAgentHandler.md @@ -0,0 +1,558 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveAgentHandler" +--- + +> **resolveAgentHandler**(`config`, `injected`, `logger`): `Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/hono/src/interfaces/resolvedagenthandler/)\> + +Defined in: [packages/hono/src/agent.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/agent.ts#L25) + +## Parameters + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +### injected + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` \| `undefined` + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +## Returns + +`Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/hono/src/interfaces/resolvedagenthandler/)\> diff --git a/docs/src/content/docs/api/hono/src/functions/resolveHonoClientAddress.md b/docs/src/content/docs/api/hono/src/functions/resolveHonoClientAddress.md new file mode 100644 index 0000000..6daada0 --- /dev/null +++ b/docs/src/content/docs/api/hono/src/functions/resolveHonoClientAddress.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveHonoClientAddress" +--- + +> **resolveHonoClientAddress**(`c`): `string` \| `null` + +Defined in: [packages/hono/src/client-address.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/client-address.ts#L23) + +## Parameters + +### c + +`Context` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/hono/src/functions/resolveHonoEndpointId.md b/docs/src/content/docs/api/hono/src/functions/resolveHonoEndpointId.md new file mode 100644 index 0000000..63e5049 --- /dev/null +++ b/docs/src/content/docs/api/hono/src/functions/resolveHonoEndpointId.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveHonoEndpointId" +--- + +> **resolveHonoEndpointId**(`c`): `string` \| `null` + +Defined in: [packages/hono/src/route-id.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/route-id.ts#L31) + +Endpoint display id for behavioral processing (the guard_endpoint_id + twin): the matched handler's function name when available. + +## Parameters + +### c + +`Context` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/hono/src/functions/resolveHonoRouteId.md b/docs/src/content/docs/api/hono/src/functions/resolveHonoRouteId.md new file mode 100644 index 0000000..f74313e --- /dev/null +++ b/docs/src/content/docs/api/hono/src/functions/resolveHonoRouteId.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveHonoRouteId" +--- + +> **resolveHonoRouteId**(`c`): `string` \| `null` + +Defined in: [packages/hono/src/route-id.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/route-id.ts#L19) + +## Parameters + +### c + +`Context` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/hono/src/interfaces/GuardMiddlewareOptions.md b/docs/src/content/docs/api/hono/src/interfaces/GuardMiddlewareOptions.md index 7f083a0..5ec76c6 100644 --- a/docs/src/content/docs/api/hono/src/interfaces/GuardMiddlewareOptions.md +++ b/docs/src/content/docs/api/hono/src/interfaces/GuardMiddlewareOptions.md @@ -5,7 +5,7 @@ prev: false title: "GuardMiddlewareOptions" --- -Defined in: [hono/src/middleware.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/middleware.ts#L15) +Defined in: [packages/hono/src/middleware.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L20) ## Properties @@ -13,7 +13,7 @@ Defined in: [hono/src/middleware.ts:15](https://github.com/Guard-Core/guard-core > `optional` **agentHandler?**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) -Defined in: [hono/src/middleware.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/middleware.ts#L17) +Defined in: [packages/hono/src/middleware.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L22) *** @@ -21,16 +21,32 @@ Defined in: [hono/src/middleware.ts:17](https://github.com/Guard-Core/guard-core > **config**: `object` -Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/middleware.ts#L16) +Defined in: [packages/hono/src/middleware.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L21) #### agentApiKey? > `optional` **agentApiKey?**: `string` \| `null` +#### agentBackoffFactor? + +> `optional` **agentBackoffFactor?**: `number` \| `null` + +#### agentBufferOverflowPolicy? + +> `optional` **agentBufferOverflowPolicy?**: `"drop"` \| `"block"` \| `"raise"` \| `null` + #### agentBufferSize? > `optional` **agentBufferSize?**: `number` +#### agentCompressionEnabled? + +> `optional` **agentCompressionEnabled?**: `boolean` \| `null` + +#### agentCompressionThreshold? + +> `optional` **agentCompressionThreshold?**: `number` \| `null` + #### agentEnableEvents? > `optional` **agentEnableEvents?**: `boolean` @@ -47,6 +63,34 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **agentFlushInterval?**: `number` +#### agentGuardVersion? + +> `optional` **agentGuardVersion?**: `string` \| `null` + +#### agentHighWatermarkRatio? + +> `optional` **agentHighWatermarkRatio?**: `number` \| `null` + +#### agentInstallId? + +> `optional` **agentInstallId?**: `string` \| `null` + +#### agentMaxConcurrentFlushes? + +> `optional` **agentMaxConcurrentFlushes?**: `number` \| `null` + +#### agentMaxPayloadSize? + +> `optional` **agentMaxPayloadSize?**: `number` \| `null` + +#### agentPayloadSigningSecret? + +> `optional` **agentPayloadSigningSecret?**: `string` \| `null` + +#### agentProjectEncryptionKey? + +> `optional` **agentProjectEncryptionKey?**: `string` \| `null` + #### agentProjectId? > `optional` **agentProjectId?**: `string` \| `null` @@ -55,10 +99,40 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **agentRetryAttempts?**: `number` +#### agentSensitiveHeaders? + +> `optional` **agentSensitiveHeaders?**: `string`[] \| `null` + +#### agentStatusInterval? + +> `optional` **agentStatusInterval?**: `number` + +#### agentStrict? + +> `optional` **agentStrict?**: `boolean` + #### agentTimeout? > `optional` **agentTimeout?**: `number` +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + #### autoBanDuration? > `optional` **autoBanDuration?**: `number` @@ -67,6 +141,14 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **autoBanThreshold?**: `number` +#### behaviorMaxResponseBodyInspectBytes? + +> `optional` **behaviorMaxResponseBodyInspectBytes?**: `number` + +#### behaviorScanResponseBody? + +> `optional` **behaviorScanResponseBody?**: `boolean` + #### blacklist? > `optional` **blacklist?**: `string`[] @@ -83,6 +165,14 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **blockedUserAgents?**: `string`[] +#### bodyReadMaxConcurrent? + +> `optional` **bodyReadMaxConcurrent?**: `number` + +#### bodyReadTimeout? + +> `optional` **bodyReadTimeout?**: `number` + #### cloudIpRefreshInterval? > `optional` **cloudIpRefreshInterval?**: `number` @@ -147,30 +237,74 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> +#### detectionAnomalyEmissionCooldown? + +> `optional` **detectionAnomalyEmissionCooldown?**: `number` + #### detectionAnomalyThreshold? > `optional` **detectionAnomalyThreshold?**: `number` +#### detectionBinaryMinRunLength? + +> `optional` **detectionBinaryMinRunLength?**: `number` + #### detectionCompilerTimeout? > `optional` **detectionCompilerTimeout?**: `number` +#### detectionMaxBodyInspectBytes? + +> `optional` **detectionMaxBodyInspectBytes?**: `number` + #### detectionMaxContentLength? > `optional` **detectionMaxContentLength?**: `number` +#### detectionMaxJsonDepth? + +> `optional` **detectionMaxJsonDepth?**: `number` + +#### detectionMaxScanChars? + +> `optional` **detectionMaxScanChars?**: `number` + +#### detectionMaxScanSeconds? + +> `optional` **detectionMaxScanSeconds?**: `number` + +#### detectionMaxScanValues? + +> `optional` **detectionMaxScanValues?**: `number` + #### detectionMaxTrackedPatterns? > `optional` **detectionMaxTrackedPatterns?**: `number` +#### detectionMinSamplesForAnomaly? + +> `optional` **detectionMinSamplesForAnomaly?**: `number` + #### detectionMonitorHistorySize? > `optional` **detectionMonitorHistorySize?**: `number` +#### detectionPatternValidationCachePath? + +> `optional` **detectionPatternValidationCachePath?**: `string` \| `null` + #### detectionPreserveAttackPatterns? > `optional` **detectionPreserveAttackPatterns?**: `boolean` +#### detectionScanBody? + +> `optional` **detectionScanBody?**: `boolean` + +#### detectionScanWorkerPool? + +> `optional` **detectionScanWorkerPool?**: `boolean` + #### detectionSemanticThreshold? > `optional` **detectionSemanticThreshold?**: `number` @@ -179,10 +313,18 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **detectionSlowPatternThreshold?**: `number` +#### detectionThreatScoreThreshold? + +> `optional` **detectionThreatScoreThreshold?**: `number` + #### dynamicRuleInterval? > `optional` **dynamicRuleInterval?**: `number` +#### dynamicRulesCachePath? + +> `optional` **dynamicRulesCachePath?**: `string` \| `null` + #### emergencyMode? > `optional` **emergencyMode?**: `boolean` @@ -199,18 +341,38 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **enableCors?**: `boolean` +#### enabledDetectionCategories? + +> `optional` **enabledDetectionCategories?**: `string`[] + #### enableDynamicRules? > `optional` **enableDynamicRules?**: `boolean` +#### enableEnrichment? + +> `optional` **enableEnrichment?**: `boolean` + #### enableIpBanning? > `optional` **enableIpBanning?**: `boolean` +#### enableLogfire? + +> `optional` **enableLogfire?**: `boolean` + +#### enableOtel? + +> `optional` **enableOtel?**: `boolean` + #### enablePenetrationDetection? > `optional` **enablePenetrationDetection?**: `boolean` +#### enableRateLimitAutoBan? + +> `optional` **enableRateLimitAutoBan?**: `boolean` + #### enableRateLimiting? > `optional` **enableRateLimiting?**: `boolean` @@ -227,10 +389,38 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **enforceHttps?**: `boolean` +#### excludedDetectionBodyFields? + +> `optional` **excludedDetectionBodyFields?**: `string`[] + +#### excludedDetectionHeaders? + +> `optional` **excludedDetectionHeaders?**: `string`[] + +#### excludedDetectionParams? + +> `optional` **excludedDetectionParams?**: `string`[] + +#### excludedSemanticDetectionHeaders? + +> `optional` **excludedSemanticDetectionHeaders?**: `string`[] + #### excludePaths? > `optional` **excludePaths?**: `string`[] +#### exemptIps? + +> `optional` **exemptIps?**: `string`[] + +#### failSecure? + +> `optional` **failSecure?**: `boolean` + +#### geoIpDbMaxAge? + +> `optional` **geoIpDbMaxAge?**: `number` + #### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) @@ -249,6 +439,30 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core `string` \| `null` +#### globalBehaviorRules? + +> `optional` **globalBehaviorRules?**: `object`[] + +#### ipinfoDbPath? + +> `optional` **ipinfoDbPath?**: `string` + +#### ipinfoToken? + +> `optional` **ipinfoToken?**: `string` \| `null` + +#### lazyInit? + +> `optional` **lazyInit?**: `boolean` + +#### logCountryCheckLevel? + +> `optional` **logCountryCheckLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName? + +> `optional` **logfireServiceName?**: `string` + #### logFormat? > `optional` **logFormat?**: `"text"` \| `"json"` @@ -261,10 +475,86 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **logRequestLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### logSensitiveBodyFields? + +> `optional` **logSensitiveBodyFields?**: `string`[] + +#### logSensitiveHeaders? + +> `optional` **logSensitiveHeaders?**: `string`[] + +#### logSensitiveParams? + +> `optional` **logSensitiveParams?**: `string`[] + #### logSuspiciousLevel? > `optional` **logSuspiciousLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### mutedCheckLogs? + +> `optional` **mutedCheckLogs?**: `string`[] + +#### mutedEventTypes? + +> `optional` **mutedEventTypes?**: `string`[] + +#### mutedMetricTypes? + +> `optional` **mutedMetricTypes?**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint? + +> `optional` **otelExporterEndpoint?**: `string` \| `null` + +#### otelResourceAttributes? + +> `optional` **otelResourceAttributes?**: `Record`\<`string`, `string`\> + +#### otelServiceName? + +> `optional` **otelServiceName?**: `string` + #### passiveMode? > `optional` **passiveMode?**: `boolean` @@ -277,18 +567,50 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core > `optional` **rateLimitWindow?**: `number` +#### redisFailOpen? + +> `optional` **redisFailOpen?**: `boolean` + +#### redisHealthCheckInterval? + +> `optional` **redisHealthCheckInterval?**: `number` + +#### redisMaxConnections? + +> `optional` **redisMaxConnections?**: `number` \| `null` + #### redisPrefix? > `optional` **redisPrefix?**: `string` +#### redisRetries? + +> `optional` **redisRetries?**: `number` + +#### redisSocketConnectTimeout? + +> `optional` **redisSocketConnectTimeout?**: `number` \| `null` + +#### redisSocketTimeout? + +> `optional` **redisSocketTimeout?**: `number` \| `null` + #### redisUrl? > `optional` **redisUrl?**: `string` +#### routeResolutionStrict? + +> `optional` **routeResolutionStrict?**: `boolean` + #### securityHeaders? > `optional` **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? + +> `optional` **threatBanConfig?**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + #### trustedProxies? > `optional` **trustedProxies?**: `string`[] @@ -311,11 +633,36 @@ Defined in: [hono/src/middleware.ts:16](https://github.com/Guard-Core/guard-core *** +### connectingIpResolver? + +> `optional` **connectingIpResolver?**: (`c`) => `string` \| `null` \| `undefined` + +Defined in: [packages/hono/src/middleware.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L37) + +Optional hook that returns the connecting peer IP for the request. +Defaults to `resolveHonoClientAddress`, which reads the peer address the +runtime hands the app (@hono/node-server, Deno.serve, Bun.serve and +Cloudflare Workers). Wire this to the runtime's connection info helper +(for example `getConnInfo`) for any other runtime. A request with no +resolvable address is rejected with 403 under the default failSecure. + +#### Parameters + +##### c + +`Context` + +#### Returns + +`string` \| `null` \| `undefined` + +*** + ### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) -Defined in: [hono/src/middleware.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/middleware.ts#L18) +Defined in: [packages/hono/src/middleware.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L23) *** @@ -323,4 +670,12 @@ Defined in: [hono/src/middleware.ts:18](https://github.com/Guard-Core/guard-core > `optional` **guardDecorator?**: `unknown` -Defined in: [hono/src/middleware.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/hono/src/middleware.ts#L19) +Defined in: [packages/hono/src/middleware.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L24) + +*** + +### routeConfigs? + +> `optional` **routeConfigs?**: [`PathRouteConfigEntry`](/guard-core-ts/api/core/src/interfaces/pathrouteconfigentry/)[] + +Defined in: [packages/hono/src/middleware.ts:28](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L28) diff --git a/docs/src/content/docs/api/hono/src/interfaces/GuardSurface.md b/docs/src/content/docs/api/hono/src/interfaces/GuardSurface.md new file mode 100644 index 0000000..a3e6d04 --- /dev/null +++ b/docs/src/content/docs/api/hono/src/interfaces/GuardSurface.md @@ -0,0 +1,116 @@ +--- +editUrl: false +next: false +prev: false +title: "GuardSurface" +--- + +Defined in: [packages/hono/src/middleware.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L44) + +## Properties + +### agentStats + +> `readonly` **agentStats**: `object` & `Record`\<`string`, `unknown`\> + +Defined in: [packages/hono/src/middleware.ts:53](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L53) + +#### Type Declaration + +##### degraded + +> **degraded**: `boolean` + +##### enabled + +> **enabled**: `boolean` + +## Methods + +### createErrorResponse() + +> **createErrorResponse**(`statusCode`, `message`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +Defined in: [packages/hono/src/middleware.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L54) + +#### Parameters + +##### statusCode + +`number` + +##### message + +`string` + +#### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +*** + +### getInitializationStatus() + +> **getInitializationStatus**(): `object` + +Defined in: [packages/hono/src/middleware.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L47) + +#### Returns + +`object` + +##### agent + +> **agent**: `object` + +###### agent.degraded + +> **degraded**: `boolean` + +###### agent.enabled + +> **enabled**: `boolean` + +##### initialized + +> **initialized**: `boolean` + +##### redis + +> **redis**: `boolean` + +*** + +### markInitialized() + +> **markInitialized**(): `void` + +Defined in: [packages/hono/src/middleware.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L46) + +#### Returns + +`void` + +*** + +### refreshCloudIpRanges() + +> **refreshCloudIpRanges**(): `Promise`\<`void`\> + +Defined in: [packages/hono/src/middleware.ts:52](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L52) + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/hono/src/middleware.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/middleware.ts#L45) + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/hono/src/interfaces/ResolvedAgentHandler.md b/docs/src/content/docs/api/hono/src/interfaces/ResolvedAgentHandler.md new file mode 100644 index 0000000..b400f67 --- /dev/null +++ b/docs/src/content/docs/api/hono/src/interfaces/ResolvedAgentHandler.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "ResolvedAgentHandler" +--- + +Defined in: [packages/hono/src/agent.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/agent.ts#L18) + +## Properties + +### agentHandler + +> **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` + +Defined in: [packages/hono/src/agent.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/agent.ts#L19) + +*** + +### degraded + +> **degraded**: `boolean` + +Defined in: [packages/hono/src/agent.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/hono/src/agent.ts#L22) + +True when the agent was enabled but construction failed and the +middleware degraded to agent-off (the reference agent_degraded). diff --git a/docs/src/content/docs/api/nestjs/src/classes/GuardModule.md b/docs/src/content/docs/api/nestjs/src/classes/GuardModule.md index 2a9d7ab..0198508 100644 --- a/docs/src/content/docs/api/nestjs/src/classes/GuardModule.md +++ b/docs/src/content/docs/api/nestjs/src/classes/GuardModule.md @@ -5,7 +5,7 @@ prev: false title: "GuardModule" --- -Defined in: [nestjs/src/guard-module.ts:73](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L73) +Defined in: [packages/nestjs/src/guard-module.ts:157](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L157) ## Constructors @@ -23,7 +23,7 @@ Defined in: [nestjs/src/guard-module.ts:73](https://github.com/Guard-Core/guard- > **configure**(`consumer`): `void` -Defined in: [nestjs/src/guard-module.ts:99](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L99) +Defined in: [packages/nestjs/src/guard-module.ts:200](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L200) #### Parameters @@ -41,7 +41,7 @@ Defined in: [nestjs/src/guard-module.ts:99](https://github.com/Guard-Core/guard- > `static` **forRoot**(`options`): `DynamicModule` -Defined in: [nestjs/src/guard-module.ts:74](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L74) +Defined in: [packages/nestjs/src/guard-module.ts:158](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L158) #### Parameters diff --git a/docs/src/content/docs/api/nestjs/src/classes/NestGuardRequest.md b/docs/src/content/docs/api/nestjs/src/classes/NestGuardRequest.md index 1982937..5f31c2e 100644 --- a/docs/src/content/docs/api/nestjs/src/classes/NestGuardRequest.md +++ b/docs/src/content/docs/api/nestjs/src/classes/NestGuardRequest.md @@ -5,7 +5,7 @@ prev: false title: "NestGuardRequest" --- -Defined in: [nestjs/src/adapters.ts:4](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L4) +Defined in: [packages/nestjs/src/adapters.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L31) ## Implements @@ -17,7 +17,7 @@ Defined in: [nestjs/src/adapters.ts:4](https://github.com/Guard-Core/guard-core- > **new NestGuardRequest**(`req`): `NestGuardRequest` -Defined in: [nestjs/src/adapters.ts:7](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L7) +Defined in: [packages/nestjs/src/adapters.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L36) #### Parameters @@ -37,7 +37,7 @@ Defined in: [nestjs/src/adapters.ts:7](https://github.com/Guard-Core/guard-core- > **get** **clientHost**(): `string` \| `null` -Defined in: [nestjs/src/adapters.ts:14](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L14) +Defined in: [packages/nestjs/src/adapters.ts:46](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L46) ##### Returns @@ -55,7 +55,7 @@ Defined in: [nestjs/src/adapters.ts:14](https://github.com/Guard-Core/guard-core > **get** **headers**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [nestjs/src/adapters.ts:15](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L15) +Defined in: [packages/nestjs/src/adapters.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L47) ##### Returns @@ -73,7 +73,7 @@ Defined in: [nestjs/src/adapters.ts:15](https://github.com/Guard-Core/guard-core > **get** **method**(): `string` -Defined in: [nestjs/src/adapters.ts:13](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L13) +Defined in: [packages/nestjs/src/adapters.ts:45](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L45) ##### Returns @@ -91,7 +91,7 @@ Defined in: [nestjs/src/adapters.ts:13](https://github.com/Guard-Core/guard-core > **get** **queryParams**(): `Readonly`\<`Record`\<`string`, `string`\>\> -Defined in: [nestjs/src/adapters.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L16) +Defined in: [packages/nestjs/src/adapters.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L48) ##### Returns @@ -109,7 +109,7 @@ Defined in: [nestjs/src/adapters.ts:16](https://github.com/Guard-Core/guard-core > **get** **scope**(): `Readonly`\<`Record`\<`string`, `unknown`\>\> -Defined in: [nestjs/src/adapters.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L24) +Defined in: [packages/nestjs/src/adapters.ts:60](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L60) ##### Returns @@ -127,7 +127,7 @@ Defined in: [nestjs/src/adapters.ts:24](https://github.com/Guard-Core/guard-core > **get** **state**(): [`GuardRequestState`](/guard-core-ts/api/core/src/interfaces/guardrequeststate/) -Defined in: [nestjs/src/adapters.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L23) +Defined in: [packages/nestjs/src/adapters.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L59) ##### Returns @@ -145,7 +145,7 @@ Defined in: [nestjs/src/adapters.ts:23](https://github.com/Guard-Core/guard-core > **get** **urlFull**(): `string` -Defined in: [nestjs/src/adapters.ts:11](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L11) +Defined in: [packages/nestjs/src/adapters.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L43) ##### Returns @@ -163,7 +163,7 @@ Defined in: [nestjs/src/adapters.ts:11](https://github.com/Guard-Core/guard-core > **get** **urlPath**(): `string` -Defined in: [nestjs/src/adapters.ts:9](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L9) +Defined in: [packages/nestjs/src/adapters.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L41) ##### Returns @@ -181,7 +181,7 @@ Defined in: [nestjs/src/adapters.ts:9](https://github.com/Guard-Core/guard-core- > **get** **urlScheme**(): `string` -Defined in: [nestjs/src/adapters.ts:10](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L10) +Defined in: [packages/nestjs/src/adapters.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L42) ##### Returns @@ -197,7 +197,7 @@ Defined in: [nestjs/src/adapters.ts:10](https://github.com/Guard-Core/guard-core > **body**(): `Promise`\<`Uint8Array`\<`ArrayBufferLike`\>\> -Defined in: [nestjs/src/adapters.ts:17](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L17) +Defined in: [packages/nestjs/src/adapters.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L49) #### Returns @@ -213,7 +213,7 @@ Defined in: [nestjs/src/adapters.ts:17](https://github.com/Guard-Core/guard-core > **urlReplaceScheme**(`scheme`): `string` -Defined in: [nestjs/src/adapters.ts:12](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L12) +Defined in: [packages/nestjs/src/adapters.ts:44](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L44) #### Parameters diff --git a/docs/src/content/docs/api/nestjs/src/classes/NestGuardResponse.md b/docs/src/content/docs/api/nestjs/src/classes/NestGuardResponse.md index beb8c37..93d500a 100644 --- a/docs/src/content/docs/api/nestjs/src/classes/NestGuardResponse.md +++ b/docs/src/content/docs/api/nestjs/src/classes/NestGuardResponse.md @@ -5,7 +5,7 @@ prev: false title: "NestGuardResponse" --- -Defined in: [nestjs/src/adapters.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L27) +Defined in: [packages/nestjs/src/adapters.ts:63](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L63) ## Implements @@ -17,7 +17,7 @@ Defined in: [nestjs/src/adapters.ts:27](https://github.com/Guard-Core/guard-core > **new NestGuardResponse**(`statusCode`, `content`): `NestGuardResponse` -Defined in: [nestjs/src/adapters.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L31) +Defined in: [packages/nestjs/src/adapters.ts:67](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L67) #### Parameters @@ -39,7 +39,7 @@ Defined in: [nestjs/src/adapters.ts:31](https://github.com/Guard-Core/guard-core > `readonly` **statusCode**: `number` -Defined in: [nestjs/src/adapters.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L31) +Defined in: [packages/nestjs/src/adapters.ts:67](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L67) #### Implementation of @@ -53,7 +53,7 @@ Defined in: [nestjs/src/adapters.ts:31](https://github.com/Guard-Core/guard-core > **get** **body**(): `Uint8Array`\<`ArrayBufferLike`\> \| `null` -Defined in: [nestjs/src/adapters.ts:38](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L38) +Defined in: [packages/nestjs/src/adapters.ts:77](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L77) ##### Returns @@ -71,7 +71,7 @@ Defined in: [nestjs/src/adapters.ts:38](https://github.com/Guard-Core/guard-core > **get** **bodyText**(): `string` \| `null` -Defined in: [nestjs/src/adapters.ts:39](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L39) +Defined in: [packages/nestjs/src/adapters.ts:78](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L78) ##### Returns @@ -89,7 +89,7 @@ Defined in: [nestjs/src/adapters.ts:39](https://github.com/Guard-Core/guard-core > **get** **headers**(): `Record`\<`string`, `string`\> -Defined in: [nestjs/src/adapters.ts:36](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L36) +Defined in: [packages/nestjs/src/adapters.ts:75](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L75) ##### Returns @@ -105,7 +105,7 @@ Defined in: [nestjs/src/adapters.ts:36](https://github.com/Guard-Core/guard-core > **setHeader**(`name`, `value`): `void` -Defined in: [nestjs/src/adapters.ts:37](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L37) +Defined in: [packages/nestjs/src/adapters.ts:76](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L76) #### Parameters diff --git a/docs/src/content/docs/api/nestjs/src/classes/NestResponseFactory.md b/docs/src/content/docs/api/nestjs/src/classes/NestResponseFactory.md index 2be6d3b..6079531 100644 --- a/docs/src/content/docs/api/nestjs/src/classes/NestResponseFactory.md +++ b/docs/src/content/docs/api/nestjs/src/classes/NestResponseFactory.md @@ -5,7 +5,7 @@ prev: false title: "NestResponseFactory" --- -Defined in: [nestjs/src/adapters.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L42) +Defined in: [packages/nestjs/src/adapters.ts:81](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L81) ## Implements @@ -27,7 +27,7 @@ Defined in: [nestjs/src/adapters.ts:42](https://github.com/Guard-Core/guard-core > **createRedirectResponse**(`url`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [nestjs/src/adapters.ts:47](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L47) +Defined in: [packages/nestjs/src/adapters.ts:86](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L86) #### Parameters @@ -53,7 +53,7 @@ Defined in: [nestjs/src/adapters.ts:47](https://github.com/Guard-Core/guard-core > **createResponse**(`content`, `statusCode`): [`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) -Defined in: [nestjs/src/adapters.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/adapters.ts#L43) +Defined in: [packages/nestjs/src/adapters.ts:82](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/adapters.ts#L82) #### Parameters diff --git a/docs/src/content/docs/api/nestjs/src/classes/SecurityMiddlewareNest.md b/docs/src/content/docs/api/nestjs/src/classes/SecurityMiddlewareNest.md index de075af..5313a9f 100644 --- a/docs/src/content/docs/api/nestjs/src/classes/SecurityMiddlewareNest.md +++ b/docs/src/content/docs/api/nestjs/src/classes/SecurityMiddlewareNest.md @@ -5,11 +5,12 @@ prev: false title: "SecurityMiddlewareNest" --- -Defined in: [nestjs/src/guard-module.ts:26](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L26) +Defined in: [packages/nestjs/src/guard-module.ts:54](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L54) ## Implements - `NestMiddleware` +- [`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/) ## Constructors @@ -17,7 +18,7 @@ Defined in: [nestjs/src/guard-module.ts:26](https://github.com/Guard-Core/guard- > **new SecurityMiddlewareNest**(`components`): `SecurityMiddlewareNest` -Defined in: [nestjs/src/guard-module.ts:27](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L27) +Defined in: [packages/nestjs/src/guard-module.ts:61](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L61) #### Parameters @@ -29,13 +30,141 @@ Defined in: [nestjs/src/guard-module.ts:27](https://github.com/Guard-Core/guard- `SecurityMiddlewareNest` +## Accessors + +### agentStats + +#### Get Signature + +> **get** **agentStats**(): `object` & `Record`\<`string`, `unknown`\> + +Defined in: [packages/nestjs/src/guard-module.ts:90](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L90) + +##### Returns + +`object` & `Record`\<`string`, `unknown`\> + +#### Implementation of + +[`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/).[`agentStats`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/#agentstats) + ## Methods +### createErrorResponse() + +> **createErrorResponse**(`statusCode`, `message`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +Defined in: [packages/nestjs/src/guard-module.ts:99](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L99) + +#### Parameters + +##### statusCode + +`number` + +##### message + +`string` + +#### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +#### Implementation of + +[`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/).[`createErrorResponse`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/#createerrorresponse) + +*** + +### getInitializationStatus() + +> **getInitializationStatus**(): `object` + +Defined in: [packages/nestjs/src/guard-module.ts:74](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L74) + +#### Returns + +`object` + +##### agent + +> **agent**: `object` + +###### agent.degraded + +> **degraded**: `boolean` + +###### agent.enabled + +> **enabled**: `boolean` + +##### initialized + +> **initialized**: `boolean` + +##### redis + +> **redis**: `boolean` + +#### Implementation of + +[`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/).[`getInitializationStatus`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/#getinitializationstatus) + +*** + +### markInitialized() + +> **markInitialized**(): `void` + +Defined in: [packages/nestjs/src/guard-module.ts:69](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L69) + +#### Returns + +`void` + +#### Implementation of + +[`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/).[`markInitialized`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/#markinitialized) + +*** + +### refreshCloudIpRanges() + +> **refreshCloudIpRanges**(): `Promise`\<`void`\> + +Defined in: [packages/nestjs/src/guard-module.ts:86](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L86) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/).[`refreshCloudIpRanges`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/#refreshcloudipranges) + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/nestjs/src/guard-module.ts:65](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L65) + +#### Returns + +`Promise`\<`void`\> + +#### Implementation of + +[`GuardSurface`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/).[`reset`](/guard-core-ts/api/nestjs/src/interfaces/guardsurface/#reset) + +*** + ### use() > **use**(`req`, `res`, `next`): `Promise`\<`void`\> -Defined in: [nestjs/src/guard-module.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L31) +Defined in: [packages/nestjs/src/guard-module.ts:103](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L103) #### Parameters diff --git a/docs/src/content/docs/api/nestjs/src/functions/buildOriginAllowlist.md b/docs/src/content/docs/api/nestjs/src/functions/buildOriginAllowlist.md new file mode 100644 index 0000000..fe9d47f --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/functions/buildOriginAllowlist.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "buildOriginAllowlist" +--- + +> **buildOriginAllowlist**(`allowOrigins`): (`origin`, `cb`) => `void` + +Defined in: [packages/nestjs/src/cors.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/cors.ts#L50) + +## Parameters + +### allowOrigins + +readonly `string`[] + +## Returns + +(`origin`, `cb`) => `void` diff --git a/docs/src/content/docs/api/nestjs/src/functions/configureCors.md b/docs/src/content/docs/api/nestjs/src/functions/configureCors.md new file mode 100644 index 0000000..fea6b9f --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/functions/configureCors.md @@ -0,0 +1,554 @@ +--- +editUrl: false +next: false +prev: false +title: "configureCors" +--- + +> **configureCors**(`app`, `config`): `void` + +Defined in: [packages/nestjs/src/cors.ts:59](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/cors.ts#L59) + +## Parameters + +### app + +`Express` + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +## Returns + +`void` diff --git a/docs/src/content/docs/api/nestjs/src/functions/resolveAgentHandler.md b/docs/src/content/docs/api/nestjs/src/functions/resolveAgentHandler.md new file mode 100644 index 0000000..1c6fcd4 --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/functions/resolveAgentHandler.md @@ -0,0 +1,558 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveAgentHandler" +--- + +> **resolveAgentHandler**(`config`, `injected`, `logger`): `Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/nestjs/src/interfaces/resolvedagenthandler/)\> + +Defined in: [packages/nestjs/src/agent.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/agent.ts#L25) + +## Parameters + +### config + +#### 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` = `...` + +#### authVerifier? + +(`request`, `credential`) => `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` = `...` + +#### customRequestCheck? + +(`req`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/) \| `null`\> = `...` + +#### customResponseModifier? + +(`res`) => `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> = `...` + +#### detectionAnomalyEmissionCooldown + +`number` = `...` + +#### detectionAnomalyThreshold + +`number` = `...` + +#### detectionBinaryMinRunLength + +`number` = `...` + +#### detectionCompilerTimeout + +`number` = `...` + +#### detectionMaxBodyInspectBytes + +`number` = `...` + +#### detectionMaxContentLength + +`number` = `...` + +#### detectionMaxJsonDepth + +`number` = `...` + +#### detectionMaxScanChars + +`number` = `...` + +#### detectionMaxScanSeconds + +`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`[] = `...` + +#### excludedSemanticDetectionHeaders + +`string`[] = `...` + +#### excludePaths + +`string`[] = `...` + +#### exemptIps + +`string`[] = `...` + +#### failSecure + +`boolean` = `...` + +#### geoIpDbMaxAge + +`number` = `...` + +#### geoIpHandler? + +[`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) = `...` + +#### geoResolver? + +(`ip`) => `string` \| `null` = `...` + +#### globalBehaviorRules + +`object`[] = `...` + +#### ipinfoDbPath + +`string` = `...` + +#### ipinfoToken + +`string` \| `null` = `...` + +#### lazyInit + +`boolean` = `...` + +#### logCountryCheckLevel + +`"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` = `...` + +#### logfireServiceName + +`string` = `...` + +#### logFormat + +`"text"` \| `"json"` = `...` + +#### logger? + +[`Logger`](/guard-core-ts/api/core/src/interfaces/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`[] = `...` + +#### onBlock? + +(`request`, `payload`) => `unknown` = `...` + +#### onError? + +(`stage`, `error`, `context`) => `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`[] = `...` + +### injected + +[`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` \| `undefined` + +### logger + +[`Logger`](/guard-core-ts/api/core/src/interfaces/logger/) + +## Returns + +`Promise`\<[`ResolvedAgentHandler`](/guard-core-ts/api/nestjs/src/interfaces/resolvedagenthandler/)\> diff --git a/docs/src/content/docs/api/nestjs/src/functions/resolveNestEndpointId.md b/docs/src/content/docs/api/nestjs/src/functions/resolveNestEndpointId.md new file mode 100644 index 0000000..f7cfd24 --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/functions/resolveNestEndpointId.md @@ -0,0 +1,23 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveNestEndpointId" +--- + +> **resolveNestEndpointId**(`req`): `string` \| `null` + +Defined in: [packages/nestjs/src/route-id.ts:114](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/route-id.ts#L114) + +Endpoint display id for behavioral processing (the guard_endpoint_id + twin): the matched handler's function name when available. + +## Parameters + +### req + +`Request` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/nestjs/src/functions/resolveNestRouteId.md b/docs/src/content/docs/api/nestjs/src/functions/resolveNestRouteId.md new file mode 100644 index 0000000..1530683 --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/functions/resolveNestRouteId.md @@ -0,0 +1,20 @@ +--- +editUrl: false +next: false +prev: false +title: "resolveNestRouteId" +--- + +> **resolveNestRouteId**(`req`): `string` \| `null` + +Defined in: [packages/nestjs/src/route-id.ts:86](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/route-id.ts#L86) + +## Parameters + +### req + +`Request` + +## Returns + +`string` \| `null` diff --git a/docs/src/content/docs/api/nestjs/src/interfaces/GuardModuleOptions.md b/docs/src/content/docs/api/nestjs/src/interfaces/GuardModuleOptions.md index e96247f..a7aafda 100644 --- a/docs/src/content/docs/api/nestjs/src/interfaces/GuardModuleOptions.md +++ b/docs/src/content/docs/api/nestjs/src/interfaces/GuardModuleOptions.md @@ -5,7 +5,7 @@ prev: false title: "GuardModuleOptions" --- -Defined in: [nestjs/src/guard-module.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L18) +Defined in: [packages/nestjs/src/guard-module.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L21) ## Properties @@ -13,7 +13,7 @@ Defined in: [nestjs/src/guard-module.ts:18](https://github.com/Guard-Core/guard- > `optional` **agentHandler?**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) -Defined in: [nestjs/src/guard-module.ts:20](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L20) +Defined in: [packages/nestjs/src/guard-module.ts:23](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L23) *** @@ -21,16 +21,32 @@ Defined in: [nestjs/src/guard-module.ts:20](https://github.com/Guard-Core/guard- > **config**: `object` -Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L19) +Defined in: [packages/nestjs/src/guard-module.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L22) #### agentApiKey? > `optional` **agentApiKey?**: `string` \| `null` +#### agentBackoffFactor? + +> `optional` **agentBackoffFactor?**: `number` \| `null` + +#### agentBufferOverflowPolicy? + +> `optional` **agentBufferOverflowPolicy?**: `"drop"` \| `"block"` \| `"raise"` \| `null` + #### agentBufferSize? > `optional` **agentBufferSize?**: `number` +#### agentCompressionEnabled? + +> `optional` **agentCompressionEnabled?**: `boolean` \| `null` + +#### agentCompressionThreshold? + +> `optional` **agentCompressionThreshold?**: `number` \| `null` + #### agentEnableEvents? > `optional` **agentEnableEvents?**: `boolean` @@ -47,6 +63,34 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **agentFlushInterval?**: `number` +#### agentGuardVersion? + +> `optional` **agentGuardVersion?**: `string` \| `null` + +#### agentHighWatermarkRatio? + +> `optional` **agentHighWatermarkRatio?**: `number` \| `null` + +#### agentInstallId? + +> `optional` **agentInstallId?**: `string` \| `null` + +#### agentMaxConcurrentFlushes? + +> `optional` **agentMaxConcurrentFlushes?**: `number` \| `null` + +#### agentMaxPayloadSize? + +> `optional` **agentMaxPayloadSize?**: `number` \| `null` + +#### agentPayloadSigningSecret? + +> `optional` **agentPayloadSigningSecret?**: `string` \| `null` + +#### agentProjectEncryptionKey? + +> `optional` **agentProjectEncryptionKey?**: `string` \| `null` + #### agentProjectId? > `optional` **agentProjectId?**: `string` \| `null` @@ -55,10 +99,40 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **agentRetryAttempts?**: `number` +#### agentSensitiveHeaders? + +> `optional` **agentSensitiveHeaders?**: `string`[] \| `null` + +#### agentStatusInterval? + +> `optional` **agentStatusInterval?**: `number` + +#### agentStrict? + +> `optional` **agentStrict?**: `boolean` + #### agentTimeout? > `optional` **agentTimeout?**: `number` +#### authVerifier? + +> `optional` **authVerifier?**: (`request`, `credential`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### credential + +`string` + +##### Returns + +`unknown` + #### autoBanDuration? > `optional` **autoBanDuration?**: `number` @@ -67,6 +141,14 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **autoBanThreshold?**: `number` +#### behaviorMaxResponseBodyInspectBytes? + +> `optional` **behaviorMaxResponseBodyInspectBytes?**: `number` + +#### behaviorScanResponseBody? + +> `optional` **behaviorScanResponseBody?**: `boolean` + #### blacklist? > `optional` **blacklist?**: `string`[] @@ -83,6 +165,14 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **blockedUserAgents?**: `string`[] +#### bodyReadMaxConcurrent? + +> `optional` **bodyReadMaxConcurrent?**: `number` + +#### bodyReadTimeout? + +> `optional` **bodyReadTimeout?**: `number` + #### cloudIpRefreshInterval? > `optional` **cloudIpRefreshInterval?**: `number` @@ -147,30 +237,74 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> +#### detectionAnomalyEmissionCooldown? + +> `optional` **detectionAnomalyEmissionCooldown?**: `number` + #### detectionAnomalyThreshold? > `optional` **detectionAnomalyThreshold?**: `number` +#### detectionBinaryMinRunLength? + +> `optional` **detectionBinaryMinRunLength?**: `number` + #### detectionCompilerTimeout? > `optional` **detectionCompilerTimeout?**: `number` +#### detectionMaxBodyInspectBytes? + +> `optional` **detectionMaxBodyInspectBytes?**: `number` + #### detectionMaxContentLength? > `optional` **detectionMaxContentLength?**: `number` +#### detectionMaxJsonDepth? + +> `optional` **detectionMaxJsonDepth?**: `number` + +#### detectionMaxScanChars? + +> `optional` **detectionMaxScanChars?**: `number` + +#### detectionMaxScanSeconds? + +> `optional` **detectionMaxScanSeconds?**: `number` + +#### detectionMaxScanValues? + +> `optional` **detectionMaxScanValues?**: `number` + #### detectionMaxTrackedPatterns? > `optional` **detectionMaxTrackedPatterns?**: `number` +#### detectionMinSamplesForAnomaly? + +> `optional` **detectionMinSamplesForAnomaly?**: `number` + #### detectionMonitorHistorySize? > `optional` **detectionMonitorHistorySize?**: `number` +#### detectionPatternValidationCachePath? + +> `optional` **detectionPatternValidationCachePath?**: `string` \| `null` + #### detectionPreserveAttackPatterns? > `optional` **detectionPreserveAttackPatterns?**: `boolean` +#### detectionScanBody? + +> `optional` **detectionScanBody?**: `boolean` + +#### detectionScanWorkerPool? + +> `optional` **detectionScanWorkerPool?**: `boolean` + #### detectionSemanticThreshold? > `optional` **detectionSemanticThreshold?**: `number` @@ -179,10 +313,18 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **detectionSlowPatternThreshold?**: `number` +#### detectionThreatScoreThreshold? + +> `optional` **detectionThreatScoreThreshold?**: `number` + #### dynamicRuleInterval? > `optional` **dynamicRuleInterval?**: `number` +#### dynamicRulesCachePath? + +> `optional` **dynamicRulesCachePath?**: `string` \| `null` + #### emergencyMode? > `optional` **emergencyMode?**: `boolean` @@ -199,18 +341,38 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **enableCors?**: `boolean` +#### enabledDetectionCategories? + +> `optional` **enabledDetectionCategories?**: `string`[] + #### enableDynamicRules? > `optional` **enableDynamicRules?**: `boolean` +#### enableEnrichment? + +> `optional` **enableEnrichment?**: `boolean` + #### enableIpBanning? > `optional` **enableIpBanning?**: `boolean` +#### enableLogfire? + +> `optional` **enableLogfire?**: `boolean` + +#### enableOtel? + +> `optional` **enableOtel?**: `boolean` + #### enablePenetrationDetection? > `optional` **enablePenetrationDetection?**: `boolean` +#### enableRateLimitAutoBan? + +> `optional` **enableRateLimitAutoBan?**: `boolean` + #### enableRateLimiting? > `optional` **enableRateLimiting?**: `boolean` @@ -227,10 +389,38 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **enforceHttps?**: `boolean` +#### excludedDetectionBodyFields? + +> `optional` **excludedDetectionBodyFields?**: `string`[] + +#### excludedDetectionHeaders? + +> `optional` **excludedDetectionHeaders?**: `string`[] + +#### excludedDetectionParams? + +> `optional` **excludedDetectionParams?**: `string`[] + +#### excludedSemanticDetectionHeaders? + +> `optional` **excludedSemanticDetectionHeaders?**: `string`[] + #### excludePaths? > `optional` **excludePaths?**: `string`[] +#### exemptIps? + +> `optional` **exemptIps?**: `string`[] + +#### failSecure? + +> `optional` **failSecure?**: `boolean` + +#### geoIpDbMaxAge? + +> `optional` **geoIpDbMaxAge?**: `number` + #### geoIpHandler? > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) @@ -249,6 +439,30 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- `string` \| `null` +#### globalBehaviorRules? + +> `optional` **globalBehaviorRules?**: `object`[] + +#### ipinfoDbPath? + +> `optional` **ipinfoDbPath?**: `string` + +#### ipinfoToken? + +> `optional` **ipinfoToken?**: `string` \| `null` + +#### lazyInit? + +> `optional` **lazyInit?**: `boolean` + +#### logCountryCheckLevel? + +> `optional` **logCountryCheckLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` + +#### logfireServiceName? + +> `optional` **logfireServiceName?**: `string` + #### logFormat? > `optional` **logFormat?**: `"text"` \| `"json"` @@ -261,10 +475,86 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **logRequestLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### logSensitiveBodyFields? + +> `optional` **logSensitiveBodyFields?**: `string`[] + +#### logSensitiveHeaders? + +> `optional` **logSensitiveHeaders?**: `string`[] + +#### logSensitiveParams? + +> `optional` **logSensitiveParams?**: `string`[] + #### logSuspiciousLevel? > `optional` **logSuspiciousLevel?**: `"INFO"` \| `"DEBUG"` \| `"WARNING"` \| `"ERROR"` \| `"CRITICAL"` \| `null` +#### mutedCheckLogs? + +> `optional` **mutedCheckLogs?**: `string`[] + +#### mutedEventTypes? + +> `optional` **mutedEventTypes?**: `string`[] + +#### mutedMetricTypes? + +> `optional` **mutedMetricTypes?**: `string`[] + +#### onBlock? + +> `optional` **onBlock?**: (`request`, `payload`) => `unknown` + +##### Parameters + +###### request + +[`GuardRequest`](/guard-core-ts/api/core/src/interfaces/guardrequest/) + +###### payload + +`Record`\<`string`, `unknown`\> + +##### Returns + +`unknown` + +#### onError? + +> `optional` **onError?**: (`stage`, `error`, `context`) => `void` + +##### Parameters + +###### stage + +`string` + +###### error + +`unknown` + +###### context + +`Record`\<`string`, `unknown`\> + +##### Returns + +`void` + +#### otelExporterEndpoint? + +> `optional` **otelExporterEndpoint?**: `string` \| `null` + +#### otelResourceAttributes? + +> `optional` **otelResourceAttributes?**: `Record`\<`string`, `string`\> + +#### otelServiceName? + +> `optional` **otelServiceName?**: `string` + #### passiveMode? > `optional` **passiveMode?**: `boolean` @@ -277,18 +567,50 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **rateLimitWindow?**: `number` +#### redisFailOpen? + +> `optional` **redisFailOpen?**: `boolean` + +#### redisHealthCheckInterval? + +> `optional` **redisHealthCheckInterval?**: `number` + +#### redisMaxConnections? + +> `optional` **redisMaxConnections?**: `number` \| `null` + #### redisPrefix? > `optional` **redisPrefix?**: `string` +#### redisRetries? + +> `optional` **redisRetries?**: `number` + +#### redisSocketConnectTimeout? + +> `optional` **redisSocketConnectTimeout?**: `number` \| `null` + +#### redisSocketTimeout? + +> `optional` **redisSocketTimeout?**: `number` \| `null` + #### redisUrl? > `optional` **redisUrl?**: `string` +#### routeResolutionStrict? + +> `optional` **routeResolutionStrict?**: `boolean` + #### securityHeaders? > `optional` **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? + +> `optional` **threatBanConfig?**: `Record`\<`string`, \{ `duration`: `number`; `threshold`: `number`; \}\> + #### trustedProxies? > `optional` **trustedProxies?**: `string`[] @@ -315,7 +637,7 @@ Defined in: [nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard- > `optional` **geoIpHandler?**: [`GeoIPHandler`](/guard-core-ts/api/core/src/interfaces/geoiphandler/) -Defined in: [nestjs/src/guard-module.ts:21](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L21) +Defined in: [packages/nestjs/src/guard-module.ts:24](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L24) *** @@ -323,4 +645,12 @@ Defined in: [nestjs/src/guard-module.ts:21](https://github.com/Guard-Core/guard- > `optional` **guardDecorator?**: `unknown` -Defined in: [nestjs/src/guard-module.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L22) +Defined in: [packages/nestjs/src/guard-module.ts:25](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L25) + +*** + +### routeConfigs? + +> `optional` **routeConfigs?**: [`PathRouteConfigEntry`](/guard-core-ts/api/core/src/interfaces/pathrouteconfigentry/)[] + +Defined in: [packages/nestjs/src/guard-module.ts:31](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L31) diff --git a/docs/src/content/docs/api/nestjs/src/interfaces/GuardSurface.md b/docs/src/content/docs/api/nestjs/src/interfaces/GuardSurface.md new file mode 100644 index 0000000..14d3eda --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/interfaces/GuardSurface.md @@ -0,0 +1,116 @@ +--- +editUrl: false +next: false +prev: false +title: "GuardSurface" +--- + +Defined in: [packages/nestjs/src/guard-module.ts:40](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L40) + +## Properties + +### agentStats + +> `readonly` **agentStats**: `object` & `Record`\<`string`, `unknown`\> + +Defined in: [packages/nestjs/src/guard-module.ts:49](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L49) + +#### Type Declaration + +##### degraded + +> **degraded**: `boolean` + +##### enabled + +> **enabled**: `boolean` + +## Methods + +### createErrorResponse() + +> **createErrorResponse**(`statusCode`, `message`): `Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +Defined in: [packages/nestjs/src/guard-module.ts:50](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L50) + +#### Parameters + +##### statusCode + +`number` + +##### message + +`string` + +#### Returns + +`Promise`\<[`GuardResponse`](/guard-core-ts/api/core/src/interfaces/guardresponse/)\> + +*** + +### getInitializationStatus() + +> **getInitializationStatus**(): `object` + +Defined in: [packages/nestjs/src/guard-module.ts:43](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L43) + +#### Returns + +`object` + +##### agent + +> **agent**: `object` + +###### agent.degraded + +> **degraded**: `boolean` + +###### agent.enabled + +> **enabled**: `boolean` + +##### initialized + +> **initialized**: `boolean` + +##### redis + +> **redis**: `boolean` + +*** + +### markInitialized() + +> **markInitialized**(): `void` + +Defined in: [packages/nestjs/src/guard-module.ts:42](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L42) + +#### Returns + +`void` + +*** + +### refreshCloudIpRanges() + +> **refreshCloudIpRanges**(): `Promise`\<`void`\> + +Defined in: [packages/nestjs/src/guard-module.ts:48](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L48) + +#### Returns + +`Promise`\<`void`\> + +*** + +### reset() + +> **reset**(): `Promise`\<`void`\> + +Defined in: [packages/nestjs/src/guard-module.ts:41](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L41) + +#### Returns + +`Promise`\<`void`\> diff --git a/docs/src/content/docs/api/nestjs/src/interfaces/ResolvedAgentHandler.md b/docs/src/content/docs/api/nestjs/src/interfaces/ResolvedAgentHandler.md new file mode 100644 index 0000000..008f220 --- /dev/null +++ b/docs/src/content/docs/api/nestjs/src/interfaces/ResolvedAgentHandler.md @@ -0,0 +1,27 @@ +--- +editUrl: false +next: false +prev: false +title: "ResolvedAgentHandler" +--- + +Defined in: [packages/nestjs/src/agent.ts:18](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/agent.ts#L18) + +## Properties + +### agentHandler + +> **agentHandler**: [`AgentHandlerProtocol`](/guard-core-ts/api/core/src/interfaces/agenthandlerprotocol/) \| `null` + +Defined in: [packages/nestjs/src/agent.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/agent.ts#L19) + +*** + +### degraded + +> **degraded**: `boolean` + +Defined in: [packages/nestjs/src/agent.ts:22](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/agent.ts#L22) + +True when the agent was enabled but construction failed and the +middleware degraded to agent-off (the reference agent_degraded). diff --git a/docs/src/content/docs/api/nestjs/src/variables/GUARD_MIDDLEWARE_TOKEN.md b/docs/src/content/docs/api/nestjs/src/variables/GUARD_MIDDLEWARE_TOKEN.md index 0b38140..577e0ff 100644 --- a/docs/src/content/docs/api/nestjs/src/variables/GUARD_MIDDLEWARE_TOKEN.md +++ b/docs/src/content/docs/api/nestjs/src/variables/GUARD_MIDDLEWARE_TOKEN.md @@ -7,4 +7,4 @@ title: "GUARD_MIDDLEWARE_TOKEN" > `const` **GUARD\_MIDDLEWARE\_TOKEN**: *typeof* `GUARD_MIDDLEWARE_TOKEN` -Defined in: [nestjs/src/guard-module.ts:16](https://github.com/Guard-Core/guard-core-ts/blob/b49ed8cdbf992765ff7882327eaf5f8a9461242e/packages/nestjs/src/guard-module.ts#L16) +Defined in: [packages/nestjs/src/guard-module.ts:19](https://github.com/Guard-Core/guard-core-ts/blob/772db2916717516ad477ac515f458b80fb9ccaba/packages/nestjs/src/guard-module.ts#L19)