@oneuptime/common 12.0.14 → 12.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/Index.ts +10 -0
- package/Models/AnalyticsModels/LogCountBaseline.ts +174 -0
- package/Models/AnalyticsModels/SecurityEvent.ts +794 -0
- package/Models/AnalyticsModels/Span.ts +29 -1
- package/Models/AnalyticsModels/SpanCountBaseline.ts +198 -0
- package/Models/DatabaseModels/Alert.ts +42 -0
- package/Models/DatabaseModels/AlertMeasurement.ts +1114 -0
- package/Models/DatabaseModels/AlertMeasurementValue.ts +501 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +10 -2
- package/Models/DatabaseModels/BillingPaymentMethod.ts +8 -10
- package/Models/DatabaseModels/DetectionRule.ts +487 -0
- package/Models/DatabaseModels/GlobalOidc.ts +20 -0
- package/Models/DatabaseModels/GlobalSso.ts +20 -0
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +382 -0
- package/Models/DatabaseModels/Incident.ts +42 -0
- package/Models/DatabaseModels/IncidentMeasurement.ts +1114 -0
- package/Models/DatabaseModels/IncidentMeasurementValue.ts +501 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +10 -2
- package/Models/DatabaseModels/IncomingCallPolicyLabelRule.ts +36 -0
- package/Models/DatabaseModels/IncomingCallPolicyOwnerRule.ts +42 -0
- package/Models/DatabaseModels/Index.ts +20 -0
- package/Models/DatabaseModels/Label.ts +11 -0
- package/Models/DatabaseModels/LlmCostBudget.ts +655 -0
- package/Models/DatabaseModels/LlmModelPrice.ts +481 -0
- package/Models/DatabaseModels/LogSavedView.ts +87 -0
- package/Models/DatabaseModels/MarketingConversion.ts +222 -10
- package/Models/DatabaseModels/MetricSavedView.ts +59 -0
- package/Models/DatabaseModels/NetworkDeviceLinkRule.ts +46 -0
- package/Models/DatabaseModels/OnCallDutyPolicyLabelRule.ts +36 -0
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.ts +42 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.ts +36 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.ts +42 -0
- package/Models/DatabaseModels/Probe.ts +21 -0
- package/Models/DatabaseModels/RunbookLabelRule.ts +36 -0
- package/Models/DatabaseModels/RunbookOwnerRule.ts +42 -0
- package/Models/DatabaseModels/ScheduledMaintenanceMeasurement.ts +1104 -0
- package/Models/DatabaseModels/ScheduledMaintenanceMeasurementValue.ts +491 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +10 -2
- package/Models/DatabaseModels/StatusPage.ts +7 -4
- package/Models/DatabaseModels/StatusPageLabelRule.ts +36 -0
- package/Models/DatabaseModels/StatusPageOwnerRule.ts +42 -0
- package/Models/DatabaseModels/TableView.ts +15 -0
- package/Models/DatabaseModels/Team.ts +13 -0
- package/Models/DatabaseModels/TeamMember.ts +8 -0
- package/Models/DatabaseModels/TraceSavedView.ts +52 -0
- package/Models/DatabaseModels/WorkflowLabelRule.ts +36 -0
- package/Models/DatabaseModels/WorkflowOwnerRule.ts +42 -0
- package/Server/API/StatusPageAPI.ts +29 -4
- package/Server/API/TelemetryAPI.ts +252 -6
- package/Server/API/UserAPI.ts +88 -0
- package/Server/EnvironmentConfig.ts +43 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787800000000-AddScopeToNetworkDeviceLinkRule.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787900000000-AddRestrictToAttachedProjectsToGlobalSso.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788000000000-AddDetectionRuleAndGoogleSecOpsConnection.ts +88 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788100000000-AddMeasurements.ts +457 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788200000000-AddLlmCostBudget.ts +97 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788300000000-AddLlmModelPrice.ts +45 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788400000000-AddMarketingConversionAttribution.ts +105 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1788500000000-RemoveLlmCostBudgetAlertColumns.ts +77 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +16 -0
- package/Server/Middleware/IdentityRateLimit.ts +672 -0
- package/Server/Middleware/SlackAuthorization.ts +43 -6
- package/Server/Middleware/UserAuthorization.ts +236 -26
- package/Server/Middleware/WhatsAppAuthorization.ts +43 -3
- package/Server/Services/AccessTokenService.ts +15 -2
- package/Server/Services/AlertMeasurementService.ts +302 -0
- package/Server/Services/AlertMeasurementValueService.ts +508 -0
- package/Server/Services/AlertService.ts +50 -0
- package/Server/Services/AlertStateTimelineService.ts +54 -0
- package/Server/Services/DetectionRuleService.ts +74 -0
- package/Server/Services/GlobalOidcProjectService.ts +126 -1
- package/Server/Services/GlobalOidcService.ts +132 -0
- package/Server/Services/GlobalSsoProjectService.ts +126 -1
- package/Server/Services/GlobalSsoService.ts +132 -0
- package/Server/Services/GoogleSecOpsConnectionService.ts +89 -0
- package/Server/Services/IncidentMeasurementService.ts +304 -0
- package/Server/Services/IncidentMeasurementValueService.ts +523 -0
- package/Server/Services/IncidentService.ts +51 -0
- package/Server/Services/IncidentStateTimelineService.ts +54 -0
- package/Server/Services/Index.ts +30 -0
- package/Server/Services/LlmCostBudgetService.ts +93 -0
- package/Server/Services/LlmModelPriceService.ts +202 -0
- package/Server/Services/LogAggregationService.ts +1106 -2
- package/Server/Services/LogCountBaselineService.ts +163 -0
- package/Server/Services/MutableMetricService.ts +30 -9
- package/Server/Services/ScheduledMaintenanceMeasurementService.ts +311 -0
- package/Server/Services/ScheduledMaintenanceMeasurementValueService.ts +546 -0
- package/Server/Services/ScheduledMaintenanceService.ts +53 -0
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +188 -1
- package/Server/Services/SecurityEventService.ts +104 -0
- package/Server/Services/SpanCountBaselineService.ts +173 -0
- package/Server/Services/StatusPageService.ts +4 -3
- package/Server/Services/TelemetryUsageBillingService.ts +17 -2
- package/Server/Services/UserEmailService.ts +4 -4
- package/Server/Services/UserService.ts +284 -51
- package/Server/Services/UserTotpAuthService.ts +27 -86
- package/Server/Services/UserWebAuthnService.ts +26 -86
- package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +14 -0
- package/Server/Types/Database/Permissions/TenantPermission.ts +10 -0
- package/Server/Types/Database/QueryHelper.ts +1 -1
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +1 -1
- package/Server/Utils/AI/Toolbox/Index.ts +6 -0
- package/Server/Utils/AI/Toolbox/SecurityEventTools.ts +349 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +13 -4
- package/Server/Utils/Attribution.ts +130 -34
- package/Server/Utils/CronTab.ts +73 -0
- package/Server/Utils/GlobalSsoAuthorization.ts +175 -0
- package/Server/Utils/Marketing/ConversionUploadProvider.ts +123 -11
- package/Server/Utils/Marketing/Providers/GoogleAds.ts +71 -8
- package/Server/Utils/Marketing/Providers/LinkedIn.ts +55 -17
- package/Server/Utils/Marketing/Providers/Meta.ts +53 -19
- package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +38 -11
- package/Server/Utils/Marketing/Providers/Reddit.ts +46 -16
- package/Server/Utils/Measurement/MeasurementDefinitionValidator.ts +209 -0
- package/Server/Utils/Measurement/MeasurementMetricWriter.ts +189 -0
- package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +48 -33
- package/Server/Utils/Monitor/Criteria/CountAnomaly.ts +182 -0
- package/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.ts +35 -30
- package/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.ts +33 -28
- package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +475 -47
- package/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.ts +35 -30
- package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +34 -28
- package/Server/Utils/Monitor/Criteria/LogMonitorCriteria.ts +132 -0
- package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +33 -28
- package/Server/Utils/Monitor/Criteria/SecurityEventsMonitorCriteria.ts +35 -0
- package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +69 -40
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +35 -29
- package/Server/Utils/Monitor/Criteria/TraceMonitorCriteria.ts +132 -0
- package/Server/Utils/Monitor/DataToProcess.ts +2 -0
- package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +14 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +23 -0
- package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +20 -0
- package/Server/Utils/Monitor/MonitorResource.ts +177 -21
- package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +1 -0
- package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +1 -0
- package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +548 -0
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +262 -0
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +212 -0
- package/Server/Utils/SecurityEvent/SecurityEventRow.ts +101 -0
- package/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.ts +635 -0
- package/Server/Utils/StatusPageContentSecurityPolicy.ts +56 -0
- package/Server/Utils/StatusPageCustomizationAccess.ts +117 -0
- package/Server/Utils/Telemetry/LlmCostBudgetEvaluator.ts +379 -0
- package/Server/Utils/Telemetry/LlmSpan.ts +83 -4
- package/Server/Utils/Telemetry/LogErrorPatternSql.ts +136 -0
- package/Server/Utils/UserPermission/UserPermission.ts +57 -1
- package/Tests/App/Dashboard/AlertsSideMenu.test.tsx +4 -0
- package/Tests/App/Dashboard/CreatePageEntryPointPermissions.test.tsx +306 -0
- package/Tests/App/Dashboard/DangerZone.test.tsx +11 -0
- package/Tests/App/Dashboard/IncidentsSideMenu.test.tsx +4 -0
- package/Tests/App/Dashboard/LogMonitorAttributeOperatorPreview.test.tsx +459 -0
- package/Tests/App/Dashboard/OverviewCustomFields.test.tsx +24 -0
- package/Tests/App/Dashboard/ScheduledMaintenanceSideMenu.test.tsx +6 -0
- package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +323 -0
- package/Tests/Models/DatabaseModels/ProjectSharedResources.test.ts +386 -0
- package/Tests/Server/API/LogErrorPatternAPI.test.ts +811 -0
- package/Tests/Server/API/StatusPageCustomizationOrigin.test.ts +348 -0
- package/Tests/Server/API/UserAuthenticationAPI.test.ts +11 -0
- package/Tests/Server/API/UserProjectsAPI.test.ts +11 -2
- package/Tests/Server/API/UserTwoFactorAuthAdminAPI.test.ts +918 -0
- package/Tests/Server/Infrastructure/LocalCache.test.ts +149 -0
- package/Tests/Server/Infrastructure/Postgres/FixTotpOtpUrlAlgorithmMigration.test.ts +9 -59
- package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +227 -0
- package/Tests/Server/Middleware/SlackAuthorization.test.ts +149 -0
- package/Tests/Server/Middleware/UserAuthorization.test.ts +27 -13
- package/Tests/Server/Middleware/UserAuthorizationGlobalSsoGovernance.test.ts +1455 -0
- package/Tests/Server/Middleware/UserAuthorizationSSOProvider.test.ts +91 -2
- package/Tests/Server/Middleware/WhatsAppAuthorization.test.ts +233 -0
- package/Tests/Server/Services/AccessTokenProjectUserGrant.test.ts +249 -0
- package/Tests/Server/Services/AlertMeasurementService.test.ts +665 -0
- package/Tests/Server/Services/AlertMeasurementValueService.test.ts +389 -0
- package/Tests/Server/Services/DetectionRuleService.test.ts +254 -0
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +21 -8
- package/Tests/Server/Services/GlobalSsoProviderAuthorization.test.ts +1242 -0
- package/Tests/Server/Services/IncidentMeasurementService.test.ts +394 -0
- package/Tests/Server/Services/IncidentMeasurementValueService.test.ts +816 -0
- package/Tests/Server/Services/LlmCostBudgetService.test.ts +104 -0
- package/Tests/Server/Services/LogAggregationAttributeOperators.test.ts +405 -0
- package/Tests/Server/Services/LogErrorPatternAggregation.test.ts +804 -0
- package/Tests/Server/Services/MonitorResourceProbeAgreementHydration.test.ts +459 -0
- package/Tests/Server/Services/MonitorResourceProbeAgreementReuse.test.ts +10 -0
- package/Tests/Server/Services/MutableMetricNameRouting.test.ts +83 -0
- package/Tests/Server/Services/ScheduledMaintenanceMeasurementService.test.ts +750 -0
- package/Tests/Server/Services/ScheduledMaintenanceMeasurementValueService.test.ts +478 -0
- package/Tests/Server/Services/UserAuthenticationService.test.ts +216 -4
- package/Tests/Server/Services/UserTwoFactorAuthAdmin.test.ts +1190 -0
- package/Tests/Server/Types/AnalyticsDatabase/AggregateUtilBucketTimestamp.test.ts +416 -0
- package/Tests/Server/Types/Database/Permissions/ScopedRoleSharedResourceAccess.test.ts +466 -0
- package/Tests/Server/Types/Database/QueryHelperManyToManyAndEmptyValues.test.ts +551 -0
- package/Tests/Server/Types/Database/QueryHelperOperators.test.ts +265 -0
- package/Tests/Server/Types/Database/QueryHelperTextAndStructuralOperators.test.ts +206 -0
- package/Tests/Server/Types/Database/SelectUtil.test.ts +348 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClusterAwareSchema.test.ts +6 -0
- package/Tests/Server/Utils/AnalyticsDatabase/FractionalAttributeThreshold.test.ts +224 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +172 -2
- package/Tests/Server/Utils/Attribution.test.ts +228 -1
- package/Tests/Server/Utils/CronTab.test.ts +116 -0
- package/Tests/Server/Utils/GlobalSSOToken.test.ts +581 -0
- package/Tests/Server/Utils/GlobalSsoAuthorization.test.ts +1401 -0
- package/Tests/Server/Utils/Marketing/AdUploadableConversionTypes.test.ts +315 -0
- package/Tests/Server/Utils/Marketing/ConversionUploadProvider.test.ts +124 -7
- package/Tests/Server/Utils/Marketing/GoogleAds.test.ts +253 -1
- package/Tests/Server/Utils/Marketing/LinkedIn.test.ts +282 -0
- package/Tests/Server/Utils/Marketing/Meta.test.ts +304 -0
- package/Tests/Server/Utils/Marketing/MicrosoftAds.test.ts +263 -0
- package/Tests/Server/Utils/Marketing/Reddit.test.ts +259 -0
- package/Tests/Server/Utils/Measurement/MeasurementDefinitionValidator.test.ts +322 -0
- package/Tests/Server/Utils/Measurement/MeasurementMetricWriter.test.ts +373 -0
- package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaEvaluateOverTime.test.ts +508 -0
- package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaPortTimings.test.ts +30 -9
- package/Tests/Server/Utils/Monitor/Criteria/CountAnomaly.test.ts +221 -0
- package/Tests/Server/Utils/Monitor/Criteria/EvaluateOverTime.test.ts +987 -0
- package/Tests/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.test.ts +916 -0
- package/Tests/Server/Utils/Monitor/Criteria/LogMonitorCriteria.test.ts +236 -0
- package/Tests/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.test.ts +382 -0
- package/Tests/Server/Utils/Monitor/Criteria/SecurityEventsMonitorCriteria.test.ts +147 -0
- package/Tests/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.test.ts +1219 -0
- package/Tests/Server/Utils/Monitor/Criteria/TraceMonitorCriteria.test.ts +274 -0
- package/Tests/Server/Utils/Monitor/MonitorResourceIngestedStepSelection.test.ts +86 -0
- package/Tests/Server/Utils/Monitor/SecurityEventsMonitorDataExtractor.test.ts +93 -0
- package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +660 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +308 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +271 -0
- package/Tests/Server/Utils/SecurityEvent/SecurityEventRow.test.ts +272 -0
- package/Tests/Server/Utils/SecurityEvent/SigmaClickhouseCompiler.test.ts +511 -0
- package/Tests/Server/Utils/StatusPageContentSecurityPolicy.test.ts +136 -0
- package/Tests/Server/Utils/StatusPageCustomizationAccess.test.ts +223 -0
- package/Tests/Server/Utils/Telemetry/LlmCostBudgetEvaluator.test.ts +497 -0
- package/Tests/Server/Utils/Telemetry/LlmSpan.test.ts +380 -0
- package/Tests/Server/Utils/Telemetry/LogErrorPatternSql.test.ts +207 -0
- package/Tests/Server/Utils/UserPermission/ProjectUserGrant.test.ts +293 -0
- package/Tests/Types/Monitor/MonitorStepConfigHelpers.test.ts +165 -0
- package/Tests/Types/Monitor/MonitorStepInfraMonitorUtils.test.ts +194 -0
- package/Tests/Types/Monitor/MonitorStepSecurityEventsMonitor.test.ts +201 -0
- package/Tests/Types/NetworkDevice/NetworkDeviceLinkRuleScope.test.ts +215 -0
- package/Tests/Types/SecurityEvent/OcsfEventClass.test.ts +105 -0
- package/Tests/Types/SecurityEvent/OcsfSeverity.test.ts +111 -0
- package/Tests/Types/Telemetry/LlmCostCatalog.test.ts +516 -0
- package/Tests/UI/Components/ActiveFilterChipsOperatorValues.test.tsx +222 -0
- package/Tests/UI/Components/BulkActionPermissionGating.test.tsx +296 -0
- package/Tests/UI/Components/CardModelDetailPermissionGating.test.tsx +305 -0
- package/Tests/UI/Components/CustomFields/CustomFieldsDetail.test.tsx +23 -0
- package/Tests/UI/Components/DictionaryFilterOperatorDisplay.test.ts +239 -0
- package/Tests/UI/Components/DisabledButtonTooltip.test.tsx +267 -0
- package/Tests/UI/Components/DuplicateModel.test.tsx +37 -0
- package/Tests/UI/Components/Forms/FormSubmitAnalytics.test.tsx +206 -0
- package/Tests/UI/Components/ModelCardPermissionGating.test.tsx +348 -0
- package/Tests/UI/Components/ModelDelete.test.tsx +25 -1
- package/Tests/UI/Components/ModelFormCreatePermission.test.tsx +342 -0
- package/Tests/UI/Components/ModelTable/BaseModelTablePermissionGating.test.tsx +680 -0
- package/Tests/UI/Components/OrderedStatesListCreateGate.test.tsx +174 -0
- package/Tests/UI/Components/SavedViewsDropdownSearch.test.tsx +1127 -0
- package/Tests/UI/Components/SavedViewsFacetSection.test.tsx +958 -0
- package/Tests/UI/Components/SavedViewsList.test.ts +699 -0
- package/Tests/UI/Components/SavedViewsSidebarIntegration.test.tsx +640 -0
- package/Tests/UI/Components/SavedViewsSurfaceParity.test.tsx +679 -0
- package/Tests/UI/Components/TableViewLoadFailure.test.tsx +248 -0
- package/Tests/UI/Types/UseComponentOutsideClick.test.tsx +226 -0
- package/Tests/UI/Utils/AIChatExport/ConversationMarkdown.test.ts +774 -0
- package/Tests/UI/Utils/AIChatExport/MarkdownBlocks.test.ts +791 -0
- package/Tests/UI/Utils/AIChatExport/MarkdownSafety.test.ts +544 -0
- package/Tests/UI/Utils/PermissionGate.test.ts +467 -0
- package/Tests/Utils/Analytics.test.ts +187 -0
- package/Tests/Utils/Measurement/MeasurementEvaluator.test.ts +639 -0
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +80 -0
- package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
- package/Tests/Utils/Monitor/NetworkDeviceLinkRuleUtil.test.ts +1576 -0
- package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +433 -0
- package/Tests/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.test.ts +214 -0
- package/Tests/Utils/SecurityEvent/GenericNormalizer.test.ts +204 -0
- package/Tests/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.test.ts +252 -0
- package/Tests/Utils/SecurityEvent/NormalizerHelpers.test.ts +274 -0
- package/Tests/Utils/SecurityEvent/OcsfNormalizer.test.ts +208 -0
- package/Tests/Utils/SecurityEvent/SecurityEventNormalizer.test.ts +172 -0
- package/Tests/Utils/SecurityEvent/SigmaRuleParser.test.ts +471 -0
- package/Tests/Utils/SecurityEvent/UdmNormalizer.test.ts +361 -0
- package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +82 -0
- package/Tests/Utils/Telemetry/LogErrorPattern.test.ts +463 -0
- package/Types/AI/AIChatTypes.ts +1 -0
- package/Types/Alerts/AlertMeasurementAnchorType.ts +14 -0
- package/Types/Alerts/AlertStateRole.ts +11 -0
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +16 -0
- package/Types/Dashboard/Chart/ChartType.ts +1 -0
- package/Types/Dashboard/DashboardComponentType.ts +2 -0
- package/Types/Dashboard/DashboardComponents/DashboardSecurityEventsFlowComponent.ts +18 -0
- package/Types/Dashboard/DashboardComponents/DashboardSecurityEventsListComponent.ts +16 -0
- package/Types/Incident/IncidentMeasurementAnchorType.ts +34 -0
- package/Types/Incident/IncidentStateRole.ts +14 -0
- package/Types/Marketing/Attribution.ts +75 -0
- package/Types/Marketing/MarketingConversion.ts +43 -1
- package/Types/Measurement/MeasurementAggregationType.ts +43 -0
- package/Types/Measurement/MeasurementAnchorKind.ts +23 -0
- package/Types/Measurement/MeasurementOccurrence.ts +14 -0
- package/Types/Measurement/MeasurementStatus.ts +34 -0
- package/Types/MeteredPlan/ProductType.ts +1 -0
- package/Types/Monitor/CriteriaFilter.ts +12 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +64 -0
- package/Types/Monitor/MonitorStep.ts +28 -0
- package/Types/Monitor/MonitorStepSecurityEventsMonitor.ts +100 -0
- package/Types/Monitor/MonitorType.ts +20 -0
- package/Types/Monitor/SecurityEventsMonitor/SecurityEventsMonitorResponse.ts +17 -0
- package/Types/NetworkDevice/NetworkDeviceLinkRuleScope.ts +51 -0
- package/Types/Permission.ts +399 -2
- package/Types/ScheduledMaintenance/ScheduledMaintenanceMeasurementAnchorType.ts +20 -0
- package/Types/ScheduledMaintenance/ScheduledMaintenanceStateRole.ts +16 -0
- package/Types/SecurityEvent/NormalizedSecurityEvent.ts +92 -0
- package/Types/SecurityEvent/OcsfEventClass.ts +205 -0
- package/Types/SecurityEvent/OcsfSeverity.ts +88 -0
- package/Types/SecurityEvent/SecurityEventFormat.ts +23 -0
- package/Types/SecurityEvent/SigmaRule.ts +70 -0
- package/Types/Telemetry/LlmConventions.ts +20 -1
- package/Types/Telemetry/LlmCostCatalog.ts +557 -0
- package/Types/Telemetry/ServiceType.ts +1 -0
- package/Types/Telemetry/TelemetryRetentionConfig.ts +5 -1
- package/Types/Telemetry/TelemetryType.ts +1 -0
- package/Types/TwoFactorAuthStatus.ts +42 -0
- package/Types/UserAuthenticationStatus.ts +18 -0
- package/UI/Components/ActionButton/ActionButtonSchema.ts +7 -0
- package/UI/Components/BulkUpdate/BulkArchiveActions.tsx +35 -2
- package/UI/Components/BulkUpdate/BulkLabelActions.tsx +34 -1
- package/UI/Components/BulkUpdate/BulkOwnerActions.tsx +45 -1
- package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +3 -0
- package/UI/Components/Button/Button.tsx +37 -2
- package/UI/Components/Card/Card.tsx +6 -0
- package/UI/Components/CustomFields/CustomFieldsDetail.tsx +24 -1
- package/UI/Components/Dictionary/DictionaryFilterOperator.ts +57 -0
- package/UI/Components/DuplicateModel/DuplicateModel.tsx +16 -0
- package/UI/Components/FormModal/BasicFormModal.tsx +12 -0
- package/UI/Components/Forms/BasicForm.tsx +13 -1
- package/UI/Components/Forms/BasicModelForm.tsx +2 -1
- package/UI/Components/Forms/ModelForm.tsx +64 -3
- package/UI/Components/Forms/Utils/FormAnalyticsName.ts +39 -0
- package/UI/Components/List/ListRow.tsx +6 -0
- package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +34 -7
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +7 -40
- package/UI/Components/LogsViewer/components/SavedViewsDropdown.tsx +155 -3
- package/UI/Components/ModelDelete/ModelDelete.tsx +20 -0
- package/UI/Components/ModelDetail/CardModelDetail.tsx +36 -23
- package/UI/Components/ModelFormModal/ModelFormModal.tsx +6 -1
- package/UI/Components/ModelList/ModelList.tsx +21 -2
- package/UI/Components/ModelList/StaticModelList.tsx +11 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +168 -62
- package/UI/Components/ModelTable/ModelTable.tsx +16 -10
- package/UI/Components/ModelTable/TableView.tsx +36 -4
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +36 -4
- package/UI/Components/OrderedStatesList/Item.tsx +6 -0
- package/UI/Components/OrderedStatesList/OrderedStatesList.tsx +81 -47
- package/UI/Components/ResetObjectID/ResetObjectID.tsx +16 -0
- package/UI/Components/SavedViews/SavedViewsFacetSection.tsx +242 -0
- package/UI/Components/SavedViews/SavedViewsList.ts +168 -0
- package/UI/Components/SavedViews/SavedViewsSearchInput.tsx +46 -0
- package/UI/Components/SavedViews/SavedViewsShowMoreButton.tsx +44 -0
- package/UI/Components/Table/TableRow.tsx +12 -0
- package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +152 -2
- package/UI/Types/UseComponentOutsideClick.ts +47 -0
- package/UI/Utils/PermissionGate.ts +277 -0
- package/Utils/Analytics.ts +55 -2
- package/Utils/Dashboard/Components/DashboardSecurityEventsFlowComponent.ts +84 -0
- package/Utils/Dashboard/Components/DashboardSecurityEventsListComponent.ts +110 -0
- package/Utils/Dashboard/Components/Index.ts +14 -0
- package/Utils/Measurement/MeasurementEvaluator.ts +359 -0
- package/Utils/Monitor/MonitorMetricType.ts +40 -0
- package/Utils/Monitor/MonitorSummarySnapshotUtil.ts +1 -0
- package/Utils/Monitor/NetworkDeviceLinkRuleUtil.ts +669 -37
- package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +231 -0
- package/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.ts +115 -0
- package/Utils/SecurityEvent/GenericNormalizer.ts +208 -0
- package/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.ts +206 -0
- package/Utils/SecurityEvent/NormalizerHelpers.ts +263 -0
- package/Utils/SecurityEvent/OcsfNormalizer.ts +194 -0
- package/Utils/SecurityEvent/SecurityEventNormalizer.ts +82 -0
- package/Utils/SecurityEvent/Sigma/SigmaRuleParser.ts +579 -0
- package/Utils/SecurityEvent/UdmNormalizer.ts +442 -0
- package/Utils/Telemetry/CrossSignalScope.ts +46 -9
- package/Utils/Telemetry/LogErrorPattern.ts +350 -0
- package/build/dist/Models/AnalyticsModels/Index.js +10 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/LogCountBaseline.js +159 -0
- package/build/dist/Models/AnalyticsModels/LogCountBaseline.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/SecurityEvent.js +596 -0
- package/build/dist/Models/AnalyticsModels/SecurityEvent.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/Span.js +24 -1
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/SpanCountBaseline.js +181 -0
- package/build/dist/Models/AnalyticsModels/SpanCountBaseline.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Alert.js +43 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertMeasurement.js +1143 -0
- package/build/dist/Models/DatabaseModels/AlertMeasurement.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertMeasurementValue.js +523 -0
- package/build/dist/Models/DatabaseModels/AlertMeasurementValue.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +9 -2
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/BillingPaymentMethod.js +10 -11
- package/build/dist/Models/DatabaseModels/BillingPaymentMethod.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DetectionRule.js +517 -0
- package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/GlobalOidc.js +21 -0
- package/build/dist/Models/DatabaseModels/GlobalOidc.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalSso.js +21 -0
- package/build/dist/Models/DatabaseModels/GlobalSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +410 -0
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Incident.js +43 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentMeasurement.js +1143 -0
- package/build/dist/Models/DatabaseModels/IncidentMeasurement.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentMeasurementValue.js +523 -0
- package/build/dist/Models/DatabaseModels/IncidentMeasurementValue.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +9 -2
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyLabelRule.js +36 -0
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerRule.js +42 -0
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +20 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Label.js +11 -0
- package/build/dist/Models/DatabaseModels/Label.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmCostBudget.js +681 -0
- package/build/dist/Models/DatabaseModels/LlmCostBudget.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmModelPrice.js +503 -0
- package/build/dist/Models/DatabaseModels/LlmModelPrice.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LogSavedView.js +87 -0
- package/build/dist/Models/DatabaseModels/LogSavedView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MarketingConversion.js +237 -11
- package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricSavedView.js +59 -0
- package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js +47 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyLabelRule.js +36 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.js +42 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.js +36 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.js +42 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Probe.js +21 -0
- package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookLabelRule.js +36 -0
- package/build/dist/Models/DatabaseModels/RunbookLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunbookOwnerRule.js +42 -0
- package/build/dist/Models/DatabaseModels/RunbookOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceMeasurement.js +1133 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceMeasurement.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceMeasurementValue.js +515 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceMeasurementValue.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +9 -2
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +4 -4
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageLabelRule.js +36 -0
- package/build/dist/Models/DatabaseModels/StatusPageLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerRule.js +42 -0
- package/build/dist/Models/DatabaseModels/StatusPageOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +15 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Team.js +13 -0
- package/build/dist/Models/DatabaseModels/Team.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamMember.js +8 -0
- package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TraceSavedView.js +52 -0
- package/build/dist/Models/DatabaseModels/TraceSavedView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowLabelRule.js +36 -0
- package/build/dist/Models/DatabaseModels/WorkflowLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowOwnerRule.js +42 -0
- package/build/dist/Models/DatabaseModels/WorkflowOwnerRule.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +25 -4
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +136 -0
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/UserAPI.js +75 -2
- package/build/dist/Server/API/UserAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +35 -1
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787800000000-AddScopeToNetworkDeviceLinkRule.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787800000000-AddScopeToNetworkDeviceLinkRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787900000000-AddRestrictToAttachedProjectsToGlobalSso.js +29 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787900000000-AddRestrictToAttachedProjectsToGlobalSso.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788000000000-AddDetectionRuleAndGoogleSecOpsConnection.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788000000000-AddDetectionRuleAndGoogleSecOpsConnection.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788100000000-AddMeasurements.js +162 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788100000000-AddMeasurements.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788200000000-AddLlmCostBudget.js +40 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788200000000-AddLlmCostBudget.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788300000000-AddLlmModelPrice.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788300000000-AddLlmModelPrice.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788400000000-AddMarketingConversionAttribution.js +52 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788400000000-AddMarketingConversionAttribution.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788500000000-RemoveLlmCostBudgetAlertColumns.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1788500000000-RemoveLlmCostBudgetAlertColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js +491 -0
- package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -0
- package/build/dist/Server/Middleware/SlackAuthorization.js +28 -4
- package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +197 -22
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/WhatsAppAuthorization.js +32 -2
- package/build/dist/Server/Middleware/WhatsAppAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AccessTokenService.js +13 -2
- package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
- package/build/dist/Server/Services/AlertMeasurementService.js +250 -0
- package/build/dist/Server/Services/AlertMeasurementService.js.map +1 -0
- package/build/dist/Server/Services/AlertMeasurementValueService.js +400 -0
- package/build/dist/Server/Services/AlertMeasurementValueService.js.map +1 -0
- package/build/dist/Server/Services/AlertService.js +37 -0
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +48 -0
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/DetectionRuleService.js +50 -0
- package/build/dist/Server/Services/DetectionRuleService.js.map +1 -0
- package/build/dist/Server/Services/GlobalOidcProjectService.js +105 -0
- package/build/dist/Server/Services/GlobalOidcProjectService.js.map +1 -1
- package/build/dist/Server/Services/GlobalOidcService.js +127 -0
- package/build/dist/Server/Services/GlobalOidcService.js.map +1 -1
- package/build/dist/Server/Services/GlobalSsoProjectService.js +105 -0
- package/build/dist/Server/Services/GlobalSsoProjectService.js.map +1 -1
- package/build/dist/Server/Services/GlobalSsoService.js +127 -0
- package/build/dist/Server/Services/GlobalSsoService.js.map +1 -1
- package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +55 -0
- package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -0
- package/build/dist/Server/Services/IncidentMeasurementService.js +252 -0
- package/build/dist/Server/Services/IncidentMeasurementService.js.map +1 -0
- package/build/dist/Server/Services/IncidentMeasurementValueService.js +413 -0
- package/build/dist/Server/Services/IncidentMeasurementValueService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +41 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +50 -0
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +30 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LlmCostBudgetService.js +89 -0
- package/build/dist/Server/Services/LlmCostBudgetService.js.map +1 -0
- package/build/dist/Server/Services/LlmModelPriceService.js +163 -0
- package/build/dist/Server/Services/LlmModelPriceService.js.map +1 -0
- package/build/dist/Server/Services/LogAggregationService.js +709 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/LogCountBaselineService.js +112 -0
- package/build/dist/Server/Services/LogCountBaselineService.js.map +1 -0
- package/build/dist/Server/Services/MutableMetricService.js +28 -9
- package/build/dist/Server/Services/MutableMetricService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceMeasurementService.js +254 -0
- package/build/dist/Server/Services/ScheduledMaintenanceMeasurementService.js.map +1 -0
- package/build/dist/Server/Services/ScheduledMaintenanceMeasurementValueService.js +434 -0
- package/build/dist/Server/Services/ScheduledMaintenanceMeasurementValueService.js.map +1 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +37 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +134 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/SecurityEventService.js +64 -0
- package/build/dist/Server/Services/SecurityEventService.js.map +1 -0
- package/build/dist/Server/Services/SpanCountBaselineService.js +122 -0
- package/build/dist/Server/Services/SpanCountBaselineService.js.map +1 -0
- package/build/dist/Server/Services/StatusPageService.js +4 -3
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +15 -3
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/UserEmailService.js +4 -4
- package/build/dist/Server/Services/UserService.js +262 -42
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/UserTotpAuthService.js +0 -73
- package/build/dist/Server/Services/UserTotpAuthService.js.map +1 -1
- package/build/dist/Server/Services/UserWebAuthnService.js +1 -73
- package/build/dist/Server/Services/UserWebAuthnService.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +13 -0
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +10 -0
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +3 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/SecurityEventTools.js +257 -0
- package/build/dist/Server/Utils/AI/Toolbox/SecurityEventTools.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +13 -4
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/Attribution.js +77 -33
- package/build/dist/Server/Utils/Attribution.js.map +1 -1
- package/build/dist/Server/Utils/CronTab.js +66 -0
- package/build/dist/Server/Utils/CronTab.js.map +1 -1
- package/build/dist/Server/Utils/GlobalSsoAuthorization.js +112 -0
- package/build/dist/Server/Utils/GlobalSsoAuthorization.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +57 -4
- package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +53 -9
- package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +42 -18
- package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/Providers/Meta.js +43 -19
- package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +25 -12
- package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +35 -16
- package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -1
- package/build/dist/Server/Utils/Measurement/MeasurementDefinitionValidator.js +109 -0
- package/build/dist/Server/Utils/Measurement/MeasurementDefinitionValidator.js.map +1 -0
- package/build/dist/Server/Utils/Measurement/MeasurementMetricWriter.js +131 -0
- package/build/dist/Server/Utils/Measurement/MeasurementMetricWriter.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +37 -35
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/CountAnomaly.js +111 -0
- package/build/dist/Server/Utils/Monitor/Criteria/CountAnomaly.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.js +21 -25
- package/build/dist/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js +20 -22
- package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +370 -42
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.js +21 -25
- package/build/dist/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +21 -25
- package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/LogMonitorCriteria.js +84 -1
- package/build/dist/Server/Utils/Monitor/Criteria/LogMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +21 -25
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SecurityEventsMonitorCriteria.js +35 -0
- package/build/dist/Server/Utils/Monitor/Criteria/SecurityEventsMonitorCriteria.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +64 -52
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +25 -29
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/TraceMonitorCriteria.js +84 -1
- package/build/dist/Server/Utils/Monitor/Criteria/TraceMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +7 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +20 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +9 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +133 -23
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +6 -5
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +404 -0
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +145 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +176 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventRow.js +69 -0
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventRow.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js +493 -0
- package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js.map +1 -0
- package/build/dist/Server/Utils/StatusPageContentSecurityPolicy.js +39 -0
- package/build/dist/Server/Utils/StatusPageContentSecurityPolicy.js.map +1 -0
- package/build/dist/Server/Utils/StatusPageCustomizationAccess.js +85 -0
- package/build/dist/Server/Utils/StatusPageCustomizationAccess.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/LlmCostBudgetEvaluator.js +317 -0
- package/build/dist/Server/Utils/Telemetry/LlmCostBudgetEvaluator.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/LlmSpan.js +56 -4
- package/build/dist/Server/Utils/Telemetry/LlmSpan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/LogErrorPatternSql.js +112 -0
- package/build/dist/Server/Utils/Telemetry/LogErrorPatternSql.js.map +1 -0
- package/build/dist/Server/Utils/UserPermission/UserPermission.js +46 -1
- package/build/dist/Server/Utils/UserPermission/UserPermission.js.map +1 -1
- package/build/dist/Types/AI/AIChatTypes.js +1 -0
- package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
- package/build/dist/Types/Alerts/AlertMeasurementAnchorType.js +15 -0
- package/build/dist/Types/Alerts/AlertMeasurementAnchorType.js.map +1 -0
- package/build/dist/Types/Alerts/AlertStateRole.js +12 -0
- package/build/dist/Types/Alerts/AlertStateRole.js.map +1 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +16 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/Dashboard/Chart/ChartType.js +1 -0
- package/build/dist/Types/Dashboard/Chart/ChartType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSecurityEventsFlowComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSecurityEventsFlowComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSecurityEventsListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSecurityEventsListComponent.js.map +1 -0
- package/build/dist/Types/Incident/IncidentMeasurementAnchorType.js +29 -0
- package/build/dist/Types/Incident/IncidentMeasurementAnchorType.js.map +1 -0
- package/build/dist/Types/Incident/IncidentStateRole.js +15 -0
- package/build/dist/Types/Incident/IncidentStateRole.js.map +1 -0
- package/build/dist/Types/Marketing/Attribution.js +68 -0
- package/build/dist/Types/Marketing/Attribution.js.map +1 -0
- package/build/dist/Types/Marketing/MarketingConversion.js +40 -1
- package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -1
- package/build/dist/Types/Measurement/MeasurementAggregationType.js +40 -0
- package/build/dist/Types/Measurement/MeasurementAggregationType.js.map +1 -0
- package/build/dist/Types/Measurement/MeasurementAnchorKind.js +22 -0
- package/build/dist/Types/Measurement/MeasurementAnchorKind.js.map +1 -0
- package/build/dist/Types/Measurement/MeasurementOccurrence.js +15 -0
- package/build/dist/Types/Measurement/MeasurementOccurrence.js.map +1 -0
- package/build/dist/Types/Measurement/MeasurementStatus.js +32 -0
- package/build/dist/Types/Measurement/MeasurementStatus.js.map +1 -0
- package/build/dist/Types/MeteredPlan/ProductType.js +1 -0
- package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +3 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +59 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +17 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepSecurityEventsMonitor.js +64 -0
- package/build/dist/Types/Monitor/MonitorStepSecurityEventsMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorType.js +19 -0
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SecurityEventsMonitor/SecurityEventsMonitorResponse.js +2 -0
- package/build/dist/Types/Monitor/SecurityEventsMonitor/SecurityEventsMonitorResponse.js.map +1 -0
- package/build/dist/Types/NetworkDevice/NetworkDeviceLinkRuleScope.js +46 -0
- package/build/dist/Types/NetworkDevice/NetworkDeviceLinkRuleScope.js.map +1 -0
- package/build/dist/Types/Permission.js +347 -2
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ScheduledMaintenance/ScheduledMaintenanceMeasurementAnchorType.js +19 -0
- package/build/dist/Types/ScheduledMaintenance/ScheduledMaintenanceMeasurementAnchorType.js.map +1 -0
- package/build/dist/Types/ScheduledMaintenance/ScheduledMaintenanceStateRole.js +17 -0
- package/build/dist/Types/ScheduledMaintenance/ScheduledMaintenanceStateRole.js.map +1 -0
- package/build/dist/Types/SecurityEvent/NormalizedSecurityEvent.js +2 -0
- package/build/dist/Types/SecurityEvent/NormalizedSecurityEvent.js.map +1 -0
- package/build/dist/Types/SecurityEvent/OcsfEventClass.js +181 -0
- package/build/dist/Types/SecurityEvent/OcsfEventClass.js.map +1 -0
- package/build/dist/Types/SecurityEvent/OcsfSeverity.js +81 -0
- package/build/dist/Types/SecurityEvent/OcsfSeverity.js.map +1 -0
- package/build/dist/Types/SecurityEvent/SecurityEventFormat.js +21 -0
- package/build/dist/Types/SecurityEvent/SecurityEventFormat.js.map +1 -0
- package/build/dist/Types/SecurityEvent/SigmaRule.js +16 -0
- package/build/dist/Types/SecurityEvent/SigmaRule.js.map +1 -0
- package/build/dist/Types/Telemetry/LlmConventions.js +19 -1
- package/build/dist/Types/Telemetry/LlmConventions.js.map +1 -1
- package/build/dist/Types/Telemetry/LlmCostCatalog.js +484 -0
- package/build/dist/Types/Telemetry/LlmCostCatalog.js.map +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/Types/Telemetry/TelemetryRetentionConfig.js.map +1 -1
- package/build/dist/Types/Telemetry/TelemetryType.js +1 -0
- package/build/dist/Types/Telemetry/TelemetryType.js.map +1 -1
- package/build/dist/Types/TwoFactorAuthStatus.js +41 -0
- package/build/dist/Types/TwoFactorAuthStatus.js.map +1 -0
- package/build/dist/UI/Components/BulkUpdate/BulkArchiveActions.js +16 -2
- package/build/dist/UI/Components/BulkUpdate/BulkArchiveActions.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +15 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js +20 -1
- package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
- package/build/dist/UI/Components/Button/Button.js +22 -1
- package/build/dist/UI/Components/Button/Button.js.map +1 -1
- package/build/dist/UI/Components/Card/Card.js +1 -1
- package/build/dist/UI/Components/Card/Card.js.map +1 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +14 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
- package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js +47 -0
- package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js.map +1 -1
- package/build/dist/UI/Components/DuplicateModel/DuplicateModel.js +8 -0
- package/build/dist/UI/Components/DuplicateModel/DuplicateModel.js.map +1 -1
- package/build/dist/UI/Components/FormModal/BasicFormModal.js +2 -1
- package/build/dist/UI/Components/FormModal/BasicFormModal.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js +10 -1
- package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicModelForm.js +2 -1
- package/build/dist/UI/Components/Forms/BasicModelForm.js.map +1 -1
- package/build/dist/UI/Components/Forms/ModelForm.js +44 -2
- package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
- package/build/dist/UI/Components/Forms/Utils/FormAnalyticsName.js +33 -0
- package/build/dist/UI/Components/Forms/Utils/FormAnalyticsName.js.map +1 -0
- package/build/dist/UI/Components/List/ListRow.js +4 -1
- package/build/dist/UI/Components/List/ListRow.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +32 -7
- package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +2 -17
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js +93 -4
- package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js.map +1 -1
- package/build/dist/UI/Components/ModelDelete/ModelDelete.js +13 -0
- package/build/dist/UI/Components/ModelDelete/ModelDelete.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +27 -11
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js +2 -1
- package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js.map +1 -1
- package/build/dist/UI/Components/ModelList/ModelList.js +13 -2
- package/build/dist/UI/Components/ModelList/ModelList.js.map +1 -1
- package/build/dist/UI/Components/ModelList/StaticModelList.js +4 -1
- package/build/dist/UI/Components/ModelList/StaticModelList.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +101 -40
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/ModelTable.js +9 -7
- package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/TableView.js +32 -4
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +19 -2
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- package/build/dist/UI/Components/OrderedStatesList/Item.js +4 -1
- package/build/dist/UI/Components/OrderedStatesList/Item.js.map +1 -1
- package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js +33 -32
- package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js.map +1 -1
- package/build/dist/UI/Components/ResetObjectID/ResetObjectID.js +8 -0
- package/build/dist/UI/Components/ResetObjectID/ResetObjectID.js.map +1 -1
- package/build/dist/UI/Components/SavedViews/SavedViewsFacetSection.js +98 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsFacetSection.js.map +1 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsList.js +99 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsList.js.map +1 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsSearchInput.js +17 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsSearchInput.js.map +1 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsShowMoreButton.js +15 -0
- package/build/dist/UI/Components/SavedViews/SavedViewsShowMoreButton.js.map +1 -0
- package/build/dist/UI/Components/Table/TableRow.js +8 -2
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +93 -4
- package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
- package/build/dist/UI/Types/UseComponentOutsideClick.js +39 -0
- package/build/dist/UI/Types/UseComponentOutsideClick.js.map +1 -1
- package/build/dist/UI/Utils/PermissionGate.js +164 -0
- package/build/dist/UI/Utils/PermissionGate.js.map +1 -0
- package/build/dist/Utils/Analytics.js +50 -2
- package/build/dist/Utils/Analytics.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardSecurityEventsFlowComponent.js +70 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSecurityEventsFlowComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSecurityEventsListComponent.js +92 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSecurityEventsListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +8 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/Measurement/MeasurementEvaluator.js +210 -0
- package/build/dist/Utils/Measurement/MeasurementEvaluator.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js +37 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorSummarySnapshotUtil.js +1 -0
- package/build/dist/Utils/Monitor/MonitorSummarySnapshotUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js +359 -37
- package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +108 -0
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.js +87 -0
- package/build/dist/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/GenericNormalizer.js +176 -0
- package/build/dist/Utils/SecurityEvent/GenericNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js +146 -0
- package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/NormalizerHelpers.js +196 -0
- package/build/dist/Utils/SecurityEvent/NormalizerHelpers.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/OcsfNormalizer.js +136 -0
- package/build/dist/Utils/SecurityEvent/OcsfNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/SecurityEventNormalizer.js +64 -0
- package/build/dist/Utils/SecurityEvent/SecurityEventNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Sigma/SigmaRuleParser.js +388 -0
- package/build/dist/Utils/SecurityEvent/Sigma/SigmaRuleParser.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/UdmNormalizer.js +328 -0
- package/build/dist/Utils/SecurityEvent/UdmNormalizer.js.map +1 -0
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +29 -7
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/build/dist/Utils/Telemetry/LogErrorPattern.js +284 -0
- package/build/dist/Utils/Telemetry/LogErrorPattern.js.map +1 -0
- package/package.json +3 -1
|
@@ -6,15 +6,21 @@ import {
|
|
|
6
6
|
} from "../../../../Types/Monitor/CriteriaFilter";
|
|
7
7
|
import ExternalStatusPageMonitorResponse from "../../../../Types/Monitor/ExternalStatusPageMonitor/ExternalStatusPageMonitorResponse";
|
|
8
8
|
import ProbeMonitorResponse from "../../../../Types/Probe/ProbeMonitorResponse";
|
|
9
|
-
import EvaluateOverTime from "./EvaluateOverTime";
|
|
9
|
+
import EvaluateOverTime, { OverTimeCriteriaValue } from "./EvaluateOverTime";
|
|
10
10
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
11
|
-
import logger from "../../Logger";
|
|
12
11
|
|
|
13
12
|
export default class ExternalStatusPageMonitorCriteria {
|
|
14
13
|
@CaptureSpan()
|
|
15
14
|
public static async isMonitorInstanceCriteriaFilterMet(input: {
|
|
16
15
|
dataToProcess: DataToProcess;
|
|
17
16
|
criteriaFilter: CriteriaFilter;
|
|
17
|
+
/*
|
|
18
|
+
* The monitor's monitoringInterval cron. Over-time filters use it to
|
|
19
|
+
* work out how many samples a fully covered window should hold, so a
|
|
20
|
+
* monitor that has only just started is not mistaken for one whose
|
|
21
|
+
* whole window is breaching.
|
|
22
|
+
*/
|
|
23
|
+
monitoringInterval?: string | undefined;
|
|
18
24
|
}): Promise<string | null> {
|
|
19
25
|
let threshold: number | string | undefined | null =
|
|
20
26
|
input.criteriaFilter.value;
|
|
@@ -26,37 +32,36 @@ export default class ExternalStatusPageMonitorCriteria {
|
|
|
26
32
|
| ExternalStatusPageMonitorResponse
|
|
27
33
|
| undefined = dataToProcess.externalStatusPageResponse;
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
try {
|
|
37
|
-
overTimeValue = await EvaluateOverTime.getValueOverTime({
|
|
38
|
-
projectId: (input.dataToProcess as ProbeMonitorResponse).projectId,
|
|
39
|
-
monitorId: input.dataToProcess.monitorId!,
|
|
40
|
-
evaluateOverTimeOptions: input.criteriaFilter.evaluateOverTimeOptions,
|
|
41
|
-
metricType: input.criteriaFilter.checkOn,
|
|
42
|
-
});
|
|
35
|
+
const overTime: OverTimeCriteriaValue =
|
|
36
|
+
await EvaluateOverTime.getOverTimeValueForCriteriaFilter({
|
|
37
|
+
projectId: (input.dataToProcess as ProbeMonitorResponse).projectId,
|
|
38
|
+
monitorId: input.dataToProcess.monitorId!,
|
|
39
|
+
criteriaFilter: input.criteriaFilter,
|
|
40
|
+
monitoringInterval: input.monitoringInterval,
|
|
41
|
+
});
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
/*
|
|
44
|
+
* The window could not back this over-time filter (nothing recorded yet,
|
|
45
|
+
* or the monitor has not been running long enough to cover it). Return
|
|
46
|
+
* the decision the no-data policy already made instead of falling
|
|
47
|
+
* through to the value that arrived with this one check - that fallback
|
|
48
|
+
* is what let "all values over the last N minutes" fire off a single
|
|
49
|
+
* bad reading.
|
|
50
|
+
*/
|
|
51
|
+
if (overTime.earlyReturn) {
|
|
52
|
+
return overTime.earlyReturn.result;
|
|
54
53
|
}
|
|
55
54
|
|
|
55
|
+
const overTimeValue:
|
|
56
|
+
| Array<number | boolean>
|
|
57
|
+
| number
|
|
58
|
+
| boolean
|
|
59
|
+
| undefined = overTime.value;
|
|
60
|
+
|
|
56
61
|
// Check if external status page is online
|
|
57
62
|
if (input.criteriaFilter.checkOn === CheckOn.ExternalStatusPageIsOnline) {
|
|
58
63
|
const currentIsOnline: boolean | Array<boolean> =
|
|
59
|
-
(overTimeValue as Array<boolean>)
|
|
64
|
+
(overTimeValue as Array<boolean>) ??
|
|
60
65
|
(input.dataToProcess as ProbeMonitorResponse).isOnline;
|
|
61
66
|
|
|
62
67
|
return CompareCriteria.compareCriteriaBoolean({
|
|
@@ -76,9 +81,9 @@ export default class ExternalStatusPageMonitorCriteria {
|
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
const currentResponseTime: number | Array<number> =
|
|
79
|
-
(overTimeValue as Array<number>)
|
|
80
|
-
externalStatusPageResponse?.responseTimeInMs ||
|
|
81
|
-
|
|
84
|
+
(overTimeValue as Array<number>) ??
|
|
85
|
+
(externalStatusPageResponse?.responseTimeInMs ||
|
|
86
|
+
(input.dataToProcess as ProbeMonitorResponse).responseTimeInMs);
|
|
82
87
|
|
|
83
88
|
if (currentResponseTime === null || currentResponseTime === undefined) {
|
|
84
89
|
return null;
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "../../../../Types/Monitor/CriteriaFilter";
|
|
10
10
|
import IncomingMonitorRequest from "../../../../Types/Monitor/IncomingMonitor/IncomingMonitorRequest";
|
|
11
11
|
import Typeof from "../../../../Types/Typeof";
|
|
12
|
-
import EvaluateOverTime from "./EvaluateOverTime";
|
|
12
|
+
import EvaluateOverTime, { OverTimeCriteriaValue } from "./EvaluateOverTime";
|
|
13
13
|
import CompareCriteria from "./CompareCriteria";
|
|
14
14
|
import ProbeMonitorResponse from "../../../../Types/Probe/ProbeMonitorResponse";
|
|
15
15
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
@@ -19,6 +19,13 @@ export default class IncomingRequestCriteria {
|
|
|
19
19
|
public static async isMonitorInstanceCriteriaFilterMet(input: {
|
|
20
20
|
dataToProcess: DataToProcess;
|
|
21
21
|
criteriaFilter: CriteriaFilter;
|
|
22
|
+
/*
|
|
23
|
+
* The monitor's monitoringInterval cron. Over-time filters use it to
|
|
24
|
+
* work out how many samples a fully covered window should hold, so a
|
|
25
|
+
* monitor that has only just started is not mistaken for one whose
|
|
26
|
+
* whole window is breaching.
|
|
27
|
+
*/
|
|
28
|
+
monitoringInterval?: string | undefined;
|
|
22
29
|
}): Promise<string | null> {
|
|
23
30
|
// Server Monitoring Checks
|
|
24
31
|
|
|
@@ -37,36 +44,35 @@ export default class IncomingRequestCriteria {
|
|
|
37
44
|
|
|
38
45
|
let value: number | string | undefined = input.criteriaFilter.value;
|
|
39
46
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
} catch (err) {
|
|
59
|
-
logger.error(
|
|
60
|
-
`Error in getting over time value for ${input.criteriaFilter.checkOn}`,
|
|
61
|
-
);
|
|
62
|
-
logger.error(err);
|
|
63
|
-
overTimeValue = undefined;
|
|
64
|
-
}
|
|
47
|
+
const overTime: OverTimeCriteriaValue =
|
|
48
|
+
await EvaluateOverTime.getOverTimeValueForCriteriaFilter({
|
|
49
|
+
projectId: (input.dataToProcess as IncomingMonitorRequest).projectId,
|
|
50
|
+
monitorId: input.dataToProcess.monitorId!,
|
|
51
|
+
criteriaFilter: input.criteriaFilter,
|
|
52
|
+
monitoringInterval: input.monitoringInterval,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
* The window could not back this over-time filter (nothing recorded yet,
|
|
57
|
+
* or the monitor has not been running long enough to cover it). Return
|
|
58
|
+
* the decision the no-data policy already made instead of falling
|
|
59
|
+
* through to the value that arrived with this one check - that fallback
|
|
60
|
+
* is what let "all values over the last N minutes" fire off a single
|
|
61
|
+
* bad reading.
|
|
62
|
+
*/
|
|
63
|
+
if (overTime.earlyReturn) {
|
|
64
|
+
return overTime.earlyReturn.result;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
const overTimeValue:
|
|
68
|
+
| Array<number | boolean>
|
|
69
|
+
| number
|
|
70
|
+
| boolean
|
|
71
|
+
| undefined = overTime.value;
|
|
72
|
+
|
|
67
73
|
if (input.criteriaFilter.checkOn === CheckOn.IsOnline) {
|
|
68
74
|
const currentIsOnline: boolean | Array<boolean> =
|
|
69
|
-
(overTimeValue as Array<boolean>)
|
|
75
|
+
(overTimeValue as Array<boolean>) ??
|
|
70
76
|
(input.dataToProcess as ProbeMonitorResponse).isOnline;
|
|
71
77
|
|
|
72
78
|
return CompareCriteria.compareCriteriaBoolean({
|
|
@@ -78,7 +84,7 @@ export default class IncomingRequestCriteria {
|
|
|
78
84
|
// timeout.
|
|
79
85
|
if (input.criteriaFilter.checkOn === CheckOn.IsRequestTimeout) {
|
|
80
86
|
const currentIsTimeout: boolean | Array<boolean> =
|
|
81
|
-
(overTimeValue as Array<boolean>)
|
|
87
|
+
(overTimeValue as Array<boolean>) ??
|
|
82
88
|
(input.dataToProcess as ProbeMonitorResponse).isTimeout;
|
|
83
89
|
|
|
84
90
|
return CompareCriteria.compareCriteriaBoolean({
|
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
2
2
|
import DataToProcess from "../DataToProcess";
|
|
3
3
|
import CompareCriteria from "./CompareCriteria";
|
|
4
|
+
import CountAnomaly, {
|
|
5
|
+
CountAnomalyEvaluation,
|
|
6
|
+
CountBaselineSummary,
|
|
7
|
+
} from "./CountAnomaly";
|
|
4
8
|
import {
|
|
9
|
+
AnomalyDetectionMethod,
|
|
10
|
+
AnomalyDetectionSensitivity,
|
|
5
11
|
CheckOn,
|
|
6
12
|
CriteriaFilter,
|
|
13
|
+
CriteriaFilterUtil,
|
|
7
14
|
} from "../../../../Types/Monitor/CriteriaFilter";
|
|
8
15
|
import LogMonitorResponse from "../../../../Types/Monitor/LogMonitor/LogMonitorResponse";
|
|
16
|
+
import MonitorStep from "../../../../Types/Monitor/MonitorStep";
|
|
17
|
+
import MonitorStepLogMonitor from "../../../../Types/Monitor/MonitorStepLogMonitor";
|
|
18
|
+
import OneUptimeDate from "../../../../Types/Date";
|
|
19
|
+
import ObjectID from "../../../../Types/ObjectID";
|
|
20
|
+
import LogCountBaselineService from "../../../Services/LogCountBaselineService";
|
|
21
|
+
import { MetricBaselineService as MetricBaselineServiceClass } from "../../../Services/MetricBaselineService";
|
|
22
|
+
import logger from "../../Logger";
|
|
9
23
|
|
|
10
24
|
export default class LogMonitorCriteria {
|
|
11
25
|
@CaptureSpan()
|
|
12
26
|
public static async isMonitorInstanceCriteriaFilterMet(input: {
|
|
13
27
|
dataToProcess: DataToProcess;
|
|
14
28
|
criteriaFilter: CriteriaFilter;
|
|
29
|
+
/*
|
|
30
|
+
* The monitor step carries the log query (services / severities /
|
|
31
|
+
* evaluation window) the anomaly path scopes its baseline lookup
|
|
32
|
+
* to. Optional for backward compatibility — static threshold
|
|
33
|
+
* filters never need it.
|
|
34
|
+
*/
|
|
35
|
+
monitorStep?: MonitorStep | undefined;
|
|
15
36
|
}): Promise<string | null> {
|
|
16
37
|
// Server Monitoring Checks
|
|
17
38
|
|
|
@@ -19,6 +40,22 @@ export default class LogMonitorCriteria {
|
|
|
19
40
|
input.criteriaFilter.value;
|
|
20
41
|
|
|
21
42
|
if (input.criteriaFilter.checkOn === CheckOn.LogCount) {
|
|
43
|
+
/*
|
|
44
|
+
* Anomaly filters skip the static threshold entirely: the
|
|
45
|
+
* observed log rate is compared to this monitor's scope in the
|
|
46
|
+
* same-hour-of-week LogCountBaseline, mirroring the metric
|
|
47
|
+
* monitor's baseline path.
|
|
48
|
+
*/
|
|
49
|
+
if (
|
|
50
|
+
CriteriaFilterUtil.isAnomalyFilterType(input.criteriaFilter.filterType)
|
|
51
|
+
) {
|
|
52
|
+
return await LogMonitorCriteria.evaluateLogCountAnomaly({
|
|
53
|
+
logResponse: input.dataToProcess as LogMonitorResponse,
|
|
54
|
+
criteriaFilter: input.criteriaFilter,
|
|
55
|
+
monitorStep: input.monitorStep,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
22
59
|
threshold = CompareCriteria.convertToNumber(threshold);
|
|
23
60
|
|
|
24
61
|
const currentLogCount: number =
|
|
@@ -33,4 +70,99 @@ export default class LogMonitorCriteria {
|
|
|
33
70
|
|
|
34
71
|
return null;
|
|
35
72
|
}
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
* Anomaly path for log counts: normalizes the observed count to a
|
|
76
|
+
* per-minute rate (the baseline's sample unit) and compares it to the
|
|
77
|
+
* rolling same-hour-of-week baseline of the monitor's scope (services
|
|
78
|
+
* and severities; body/attribute filters are not baselined — the
|
|
79
|
+
* baseline is that scope's full volume, a documented superset).
|
|
80
|
+
*
|
|
81
|
+
* Missing or unreliable baselines mean the rule is still learning —
|
|
82
|
+
* never alert from a thin baseline. Zero-variance baselines are
|
|
83
|
+
* skipped too: any deviation at all would fire.
|
|
84
|
+
*/
|
|
85
|
+
private static async evaluateLogCountAnomaly(input: {
|
|
86
|
+
logResponse: LogMonitorResponse;
|
|
87
|
+
criteriaFilter: CriteriaFilter;
|
|
88
|
+
monitorStep?: MonitorStep | undefined;
|
|
89
|
+
}): Promise<string | null> {
|
|
90
|
+
const logMonitorStep: MonitorStepLogMonitor | undefined =
|
|
91
|
+
input.monitorStep?.data?.logMonitor;
|
|
92
|
+
|
|
93
|
+
const windowSeconds: number =
|
|
94
|
+
logMonitorStep?.lastXSecondsOfLogs &&
|
|
95
|
+
logMonitorStep.lastXSecondsOfLogs > 0
|
|
96
|
+
? logMonitorStep.lastXSecondsOfLogs
|
|
97
|
+
: 60;
|
|
98
|
+
|
|
99
|
+
const logCount: number = input.logResponse.logCount || 0;
|
|
100
|
+
const observedPerMinute: number = (logCount * 60) / windowSeconds;
|
|
101
|
+
|
|
102
|
+
const sensitivity: AnomalyDetectionSensitivity =
|
|
103
|
+
(input.criteriaFilter.metricMonitorOptions?.anomalyDetection
|
|
104
|
+
?.sensitivity as AnomalyDetectionSensitivity | undefined) ||
|
|
105
|
+
AnomalyDetectionSensitivity.Medium;
|
|
106
|
+
const sigmaCount: number =
|
|
107
|
+
MetricBaselineServiceClass.sigmaForSensitivity(sensitivity);
|
|
108
|
+
const method: AnomalyDetectionMethod =
|
|
109
|
+
(input.criteriaFilter.metricMonitorOptions?.anomalyDetection?.method as
|
|
110
|
+
| AnomalyDetectionMethod
|
|
111
|
+
| undefined) || AnomalyDetectionMethod.MeanStddev;
|
|
112
|
+
|
|
113
|
+
let baseline: CountBaselineSummary | null = null;
|
|
114
|
+
try {
|
|
115
|
+
baseline = await LogCountBaselineService.getBaseline({
|
|
116
|
+
projectId: input.logResponse.projectId.toString(),
|
|
117
|
+
telemetryServiceIds: logMonitorStep?.telemetryServiceIds?.map(
|
|
118
|
+
(id: ObjectID) => {
|
|
119
|
+
return id.toString();
|
|
120
|
+
},
|
|
121
|
+
),
|
|
122
|
+
severityTexts: logMonitorStep?.severityTexts,
|
|
123
|
+
hourOfWeek: MetricBaselineServiceClass.computeHourOfWeek(
|
|
124
|
+
OneUptimeDate.getCurrentDate(),
|
|
125
|
+
),
|
|
126
|
+
windowDays:
|
|
127
|
+
input.criteriaFilter.metricMonitorOptions?.anomalyDetection
|
|
128
|
+
?.windowDays,
|
|
129
|
+
minSamples:
|
|
130
|
+
input.criteriaFilter.metricMonitorOptions?.anomalyDetection
|
|
131
|
+
?.minSamples,
|
|
132
|
+
});
|
|
133
|
+
} catch (err) {
|
|
134
|
+
logger.error("Error fetching log count baseline for anomaly criteria");
|
|
135
|
+
logger.error(err);
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (!baseline || !baseline.isReliable) {
|
|
140
|
+
// Cold start: the baseline is still learning; nothing to compare to.
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const evaluation: CountAnomalyEvaluation | null = CountAnomaly.evaluate({
|
|
145
|
+
observedPerMinute,
|
|
146
|
+
stats: baseline,
|
|
147
|
+
sigmaCount,
|
|
148
|
+
method,
|
|
149
|
+
filterType: input.criteriaFilter.filterType,
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
if (!evaluation || !evaluation.breaches) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const direction: string = evaluation.observedSigma >= 0 ? "above" : "below";
|
|
157
|
+
|
|
158
|
+
return (
|
|
159
|
+
`Log count ${logCount} over the last ${windowSeconds} seconds ` +
|
|
160
|
+
`(${observedPerMinute.toFixed(2)} logs/min) is ` +
|
|
161
|
+
`${Math.abs(evaluation.observedSigma).toFixed(2)}σ ${direction} the same-hour baseline ` +
|
|
162
|
+
`(${method === AnomalyDetectionMethod.MedianMad ? "median" : "mean"} ` +
|
|
163
|
+
`${evaluation.center.toFixed(2)} logs/min, σ ${evaluation.spread.toFixed(2)}, ` +
|
|
164
|
+
`${baseline.sampleCount} samples over ${baseline.windowDays} days, ` +
|
|
165
|
+
`sensitivity ${sensitivity}).`
|
|
166
|
+
);
|
|
167
|
+
}
|
|
36
168
|
}
|
|
@@ -8,15 +8,21 @@ import {
|
|
|
8
8
|
} from "../../../../Types/Monitor/CriteriaFilter";
|
|
9
9
|
import SslMonitorResponse from "../../../../Types/Monitor/SSLMonitor/SslMonitorResponse";
|
|
10
10
|
import ProbeMonitorResponse from "../../../../Types/Probe/ProbeMonitorResponse";
|
|
11
|
-
import EvaluateOverTime from "./EvaluateOverTime";
|
|
11
|
+
import EvaluateOverTime, { OverTimeCriteriaValue } from "./EvaluateOverTime";
|
|
12
12
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
13
|
-
import logger from "../../Logger";
|
|
14
13
|
|
|
15
14
|
export default class ServerMonitorCriteria {
|
|
16
15
|
@CaptureSpan()
|
|
17
16
|
public static async isMonitorInstanceCriteriaFilterMet(input: {
|
|
18
17
|
dataToProcess: DataToProcess;
|
|
19
18
|
criteriaFilter: CriteriaFilter;
|
|
19
|
+
/*
|
|
20
|
+
* The monitor's monitoringInterval cron. Over-time filters use it to
|
|
21
|
+
* work out how many samples a fully covered window should hold, so a
|
|
22
|
+
* monitor that has only just started is not mistaken for one whose
|
|
23
|
+
* whole window is breaching.
|
|
24
|
+
*/
|
|
25
|
+
monitoringInterval?: string | undefined;
|
|
20
26
|
}): Promise<string | null> {
|
|
21
27
|
let threshold: number | string | undefined | null =
|
|
22
28
|
input.criteriaFilter.value;
|
|
@@ -27,36 +33,35 @@ export default class ServerMonitorCriteria {
|
|
|
27
33
|
const sslResponse: SslMonitorResponse | undefined =
|
|
28
34
|
dataToProcess.sslResponse;
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
const overTime: OverTimeCriteriaValue =
|
|
37
|
+
await EvaluateOverTime.getOverTimeValueForCriteriaFilter({
|
|
38
|
+
projectId: (input.dataToProcess as ProbeMonitorResponse).projectId,
|
|
39
|
+
monitorId: input.dataToProcess.monitorId!,
|
|
40
|
+
criteriaFilter: input.criteriaFilter,
|
|
41
|
+
monitoringInterval: input.monitoringInterval,
|
|
42
|
+
});
|
|
32
43
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
if (Array.isArray(overTimeValue) && overTimeValue.length === 0) {
|
|
46
|
-
overTimeValue = undefined;
|
|
47
|
-
}
|
|
48
|
-
} catch (err) {
|
|
49
|
-
logger.error(
|
|
50
|
-
`Error in getting over time value for ${input.criteriaFilter.checkOn}`,
|
|
51
|
-
);
|
|
52
|
-
logger.error(err);
|
|
53
|
-
overTimeValue = undefined;
|
|
54
|
-
}
|
|
44
|
+
/*
|
|
45
|
+
* The window could not back this over-time filter (nothing recorded yet,
|
|
46
|
+
* or the monitor has not been running long enough to cover it). Return
|
|
47
|
+
* the decision the no-data policy already made instead of falling
|
|
48
|
+
* through to the value that arrived with this one check - that fallback
|
|
49
|
+
* is what let "all values over the last N minutes" fire off a single
|
|
50
|
+
* bad reading.
|
|
51
|
+
*/
|
|
52
|
+
if (overTime.earlyReturn) {
|
|
53
|
+
return overTime.earlyReturn.result;
|
|
55
54
|
}
|
|
56
55
|
|
|
56
|
+
const overTimeValue:
|
|
57
|
+
| Array<number | boolean>
|
|
58
|
+
| number
|
|
59
|
+
| boolean
|
|
60
|
+
| undefined = overTime.value;
|
|
61
|
+
|
|
57
62
|
if (input.criteriaFilter.checkOn === CheckOn.IsOnline) {
|
|
58
63
|
const currentIsOnline: boolean | Array<boolean> =
|
|
59
|
-
(overTimeValue as Array<boolean>)
|
|
64
|
+
(overTimeValue as Array<boolean>) ??
|
|
60
65
|
(input.dataToProcess as ProbeMonitorResponse).isOnline;
|
|
61
66
|
|
|
62
67
|
return CompareCriteria.compareCriteriaBoolean({
|
|
@@ -68,7 +73,7 @@ export default class ServerMonitorCriteria {
|
|
|
68
73
|
// timeout.
|
|
69
74
|
if (input.criteriaFilter.checkOn === CheckOn.IsRequestTimeout) {
|
|
70
75
|
const currentIsTimeout: boolean | Array<boolean> =
|
|
71
|
-
(overTimeValue as Array<boolean>)
|
|
76
|
+
(overTimeValue as Array<boolean>) ??
|
|
72
77
|
(input.dataToProcess as ProbeMonitorResponse).isTimeout;
|
|
73
78
|
|
|
74
79
|
return CompareCriteria.compareCriteriaBoolean({
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
2
|
+
import DataToProcess from "../DataToProcess";
|
|
3
|
+
import CompareCriteria from "./CompareCriteria";
|
|
4
|
+
import {
|
|
5
|
+
CheckOn,
|
|
6
|
+
CriteriaFilter,
|
|
7
|
+
} from "../../../../Types/Monitor/CriteriaFilter";
|
|
8
|
+
import SecurityEventsMonitorResponse from "../../../../Types/Monitor/SecurityEventsMonitor/SecurityEventsMonitorResponse";
|
|
9
|
+
|
|
10
|
+
export default class SecurityEventsMonitorCriteria {
|
|
11
|
+
@CaptureSpan()
|
|
12
|
+
public static async isMonitorInstanceCriteriaFilterMet(input: {
|
|
13
|
+
dataToProcess: DataToProcess;
|
|
14
|
+
criteriaFilter: CriteriaFilter;
|
|
15
|
+
}): Promise<string | null> {
|
|
16
|
+
let threshold: number | string | undefined | null =
|
|
17
|
+
input.criteriaFilter.value;
|
|
18
|
+
|
|
19
|
+
if (input.criteriaFilter.checkOn === CheckOn.SecurityEventCount) {
|
|
20
|
+
threshold = CompareCriteria.convertToNumber(threshold);
|
|
21
|
+
|
|
22
|
+
const currentCount: number =
|
|
23
|
+
(input.dataToProcess as SecurityEventsMonitorResponse)
|
|
24
|
+
.securityEventCount || 0;
|
|
25
|
+
|
|
26
|
+
return CompareCriteria.compareCriteriaNumbers({
|
|
27
|
+
value: currentCount,
|
|
28
|
+
threshold: threshold as number,
|
|
29
|
+
criteriaFilter: input.criteriaFilter,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import DataToProcess from "../DataToProcess";
|
|
2
2
|
import CompareCriteria from "./CompareCriteria";
|
|
3
|
-
import EvaluateOverTime from "./EvaluateOverTime";
|
|
3
|
+
import EvaluateOverTime, { OverTimeCriteriaValue } from "./EvaluateOverTime";
|
|
4
4
|
import OneUptimeDate from "../../../../Types/Date";
|
|
5
5
|
import { BasicDiskMetrics } from "../../../../Types/Infrastructure/BasicMetrics";
|
|
6
6
|
import { JSONObject } from "../../../../Types/JSON";
|
|
@@ -20,39 +20,60 @@ export default class ServerMonitorCriteria {
|
|
|
20
20
|
public static async isMonitorInstanceCriteriaFilterMet(input: {
|
|
21
21
|
dataToProcess: DataToProcess;
|
|
22
22
|
criteriaFilter: CriteriaFilter;
|
|
23
|
+
/*
|
|
24
|
+
* The monitor's monitoringInterval cron. Over-time filters use it to
|
|
25
|
+
* work out how many samples a fully covered window should hold, so a
|
|
26
|
+
* monitor that has only just started is not mistaken for one whose
|
|
27
|
+
* whole window is breaching.
|
|
28
|
+
*/
|
|
29
|
+
monitoringInterval?: string | undefined;
|
|
23
30
|
}): Promise<string | null> {
|
|
24
31
|
// Server Monitoring Checks
|
|
25
32
|
|
|
26
33
|
let threshold: number | string | undefined | null =
|
|
27
34
|
input.criteriaFilter.value;
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
const overTime: OverTimeCriteriaValue =
|
|
36
|
+
await EvaluateOverTime.getOverTimeValueForCriteriaFilter({
|
|
37
|
+
projectId: (input.dataToProcess as ServerMonitorResponse).projectId,
|
|
38
|
+
monitorId: input.dataToProcess.monitorId!,
|
|
39
|
+
criteriaFilter: input.criteriaFilter,
|
|
40
|
+
/*
|
|
41
|
+
* Only the disk-usage series carries a diskPath attribute, so
|
|
42
|
+
* scoping any other series by it would filter against an attribute
|
|
43
|
+
* no row has - and an empty window now means "cannot judge yet"
|
|
44
|
+
* rather than "compare the live value", which would silence the
|
|
45
|
+
* filter outright.
|
|
46
|
+
*/
|
|
47
|
+
miscData:
|
|
48
|
+
input.criteriaFilter.checkOn === CheckOn.DiskUsagePercent
|
|
49
|
+
? (input.criteriaFilter.serverMonitorOptions as JSONObject)
|
|
50
|
+
: undefined,
|
|
51
|
+
monitoringInterval: input.monitoringInterval,
|
|
52
|
+
});
|
|
30
53
|
|
|
54
|
+
/*
|
|
55
|
+
* The window could not back this over-time filter, so the no-data policy
|
|
56
|
+
* has already decided it - do not fall through to the value that arrived
|
|
57
|
+
* with this one check.
|
|
58
|
+
*
|
|
59
|
+
* "Is Online" is exempt: for a server monitor the absence of data IS the
|
|
60
|
+
* signal, and the differenceInMinutes check below already implements the
|
|
61
|
+
* "wait this long before calling it offline" behaviour off the agent's
|
|
62
|
+
* last check-in time. Letting it fall through preserves that.
|
|
63
|
+
*/
|
|
31
64
|
if (
|
|
32
|
-
|
|
33
|
-
input.criteriaFilter.
|
|
65
|
+
overTime.earlyReturn &&
|
|
66
|
+
input.criteriaFilter.checkOn !== CheckOn.IsOnline
|
|
34
67
|
) {
|
|
35
|
-
|
|
36
|
-
overTimeValue = await EvaluateOverTime.getValueOverTime({
|
|
37
|
-
projectId: (input.dataToProcess as ServerMonitorResponse).projectId,
|
|
38
|
-
monitorId: input.dataToProcess.monitorId!,
|
|
39
|
-
evaluateOverTimeOptions: input.criteriaFilter.evaluateOverTimeOptions,
|
|
40
|
-
metricType: input.criteriaFilter.checkOn,
|
|
41
|
-
miscData: input.criteriaFilter.serverMonitorOptions as JSONObject,
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
if (Array.isArray(overTimeValue) && overTimeValue.length === 0) {
|
|
45
|
-
overTimeValue = undefined;
|
|
46
|
-
}
|
|
47
|
-
} catch (err) {
|
|
48
|
-
logger.error(
|
|
49
|
-
`Error in getting over time value for ${input.criteriaFilter.checkOn}`,
|
|
50
|
-
);
|
|
51
|
-
logger.error(err);
|
|
52
|
-
overTimeValue = undefined;
|
|
53
|
-
}
|
|
68
|
+
return overTime.earlyReturn.result;
|
|
54
69
|
}
|
|
55
70
|
|
|
71
|
+
const overTimeValue:
|
|
72
|
+
| Array<number | boolean>
|
|
73
|
+
| number
|
|
74
|
+
| boolean
|
|
75
|
+
| undefined = overTime.value;
|
|
76
|
+
|
|
56
77
|
const lastCheckTime: Date = (input.dataToProcess as ServerMonitorResponse)
|
|
57
78
|
.requestReceivedAt;
|
|
58
79
|
|
|
@@ -108,7 +129,7 @@ export default class ServerMonitorCriteria {
|
|
|
108
129
|
differenceInMinutes >= offlineIfNotCheckedInMinutes
|
|
109
130
|
) {
|
|
110
131
|
const currentIsOnline: boolean | Array<boolean> =
|
|
111
|
-
(overTimeValue as Array<boolean>)
|
|
132
|
+
(overTimeValue as Array<boolean>) ?? false; // false because no request receieved in the last 2 minutes
|
|
112
133
|
|
|
113
134
|
logger.debug(`Current Is Online: ${currentIsOnline}`);
|
|
114
135
|
|
|
@@ -127,7 +148,7 @@ export default class ServerMonitorCriteria {
|
|
|
127
148
|
differenceInMinutes < offlineIfNotCheckedInMinutes
|
|
128
149
|
) {
|
|
129
150
|
const currentIsOnline: boolean | Array<boolean> =
|
|
130
|
-
(overTimeValue as Array<boolean>)
|
|
151
|
+
(overTimeValue as Array<boolean>) ?? true; // true because request receieved in the last 2 minutes
|
|
131
152
|
|
|
132
153
|
logger.debug(`Current Is Online: ${currentIsOnline}`);
|
|
133
154
|
|
|
@@ -148,10 +169,10 @@ export default class ServerMonitorCriteria {
|
|
|
148
169
|
threshold = CompareCriteria.convertToNumber(threshold);
|
|
149
170
|
|
|
150
171
|
const currentCpuPercent: number | Array<number> =
|
|
151
|
-
(overTimeValue as Array<number>)
|
|
152
|
-
(input.dataToProcess as ServerMonitorResponse)
|
|
172
|
+
(overTimeValue as Array<number>) ??
|
|
173
|
+
((input.dataToProcess as ServerMonitorResponse)
|
|
153
174
|
.basicInfrastructureMetrics?.cpuMetrics.percentUsed ||
|
|
154
|
-
|
|
175
|
+
0);
|
|
155
176
|
|
|
156
177
|
return CompareCriteria.compareCriteriaNumbers({
|
|
157
178
|
value: currentCpuPercent,
|
|
@@ -167,10 +188,10 @@ export default class ServerMonitorCriteria {
|
|
|
167
188
|
threshold = CompareCriteria.convertToNumber(threshold);
|
|
168
189
|
|
|
169
190
|
const memoryPercent: number | Array<number> =
|
|
170
|
-
(overTimeValue as Array<number>)
|
|
171
|
-
(input.dataToProcess as ServerMonitorResponse)
|
|
191
|
+
(overTimeValue as Array<number>) ??
|
|
192
|
+
((input.dataToProcess as ServerMonitorResponse)
|
|
172
193
|
.basicInfrastructureMetrics?.memoryMetrics.percentUsed ||
|
|
173
|
-
|
|
194
|
+
0);
|
|
174
195
|
|
|
175
196
|
return CompareCriteria.compareCriteriaNumbers({
|
|
176
197
|
value: memoryPercent,
|
|
@@ -201,8 +222,16 @@ export default class ServerMonitorCriteria {
|
|
|
201
222
|
const diskUsagePercent: number =
|
|
202
223
|
diskMetric?.percentUsed ?? diskMetric?.percentFree ?? 0;
|
|
203
224
|
|
|
225
|
+
/*
|
|
226
|
+
* Disk usage was the one server metric that computed its over-time
|
|
227
|
+
* window and then threw it away, comparing the reading from this check
|
|
228
|
+
* instead - so "evaluate over time" was a no-op here.
|
|
229
|
+
*/
|
|
230
|
+
const value: number | Array<number> =
|
|
231
|
+
(overTimeValue as Array<number>) ?? diskUsagePercent;
|
|
232
|
+
|
|
204
233
|
return CompareCriteria.compareCriteriaNumbers({
|
|
205
|
-
value:
|
|
234
|
+
value: value,
|
|
206
235
|
threshold: threshold as number,
|
|
207
236
|
criteriaFilter: input.criteriaFilter,
|
|
208
237
|
});
|
|
@@ -232,7 +261,7 @@ export default class ServerMonitorCriteria {
|
|
|
232
261
|
}
|
|
233
262
|
|
|
234
263
|
const value: number | Array<number> =
|
|
235
|
-
(overTimeValue as Array<number>)
|
|
264
|
+
(overTimeValue as Array<number>) ?? (currentLoad || 0);
|
|
236
265
|
|
|
237
266
|
return CompareCriteria.compareCriteriaNumbers({
|
|
238
267
|
value: value,
|
|
@@ -248,10 +277,10 @@ export default class ServerMonitorCriteria {
|
|
|
248
277
|
threshold = CompareCriteria.convertToNumber(threshold);
|
|
249
278
|
|
|
250
279
|
const swapPercent: number | Array<number> =
|
|
251
|
-
(overTimeValue as Array<number>)
|
|
252
|
-
(input.dataToProcess as ServerMonitorResponse)
|
|
280
|
+
(overTimeValue as Array<number>) ??
|
|
281
|
+
((input.dataToProcess as ServerMonitorResponse)
|
|
253
282
|
.basicInfrastructureMetrics?.memoryMetrics?.swapPercentUsed ||
|
|
254
|
-
|
|
283
|
+
0);
|
|
255
284
|
|
|
256
285
|
return CompareCriteria.compareCriteriaNumbers({
|
|
257
286
|
value: swapPercent,
|
|
@@ -267,10 +296,10 @@ export default class ServerMonitorCriteria {
|
|
|
267
296
|
threshold = CompareCriteria.convertToNumber(threshold);
|
|
268
297
|
|
|
269
298
|
const ioWaitPercent: number | Array<number> =
|
|
270
|
-
(overTimeValue as Array<number>)
|
|
271
|
-
(input.dataToProcess as ServerMonitorResponse)
|
|
299
|
+
(overTimeValue as Array<number>) ??
|
|
300
|
+
((input.dataToProcess as ServerMonitorResponse)
|
|
272
301
|
.basicInfrastructureMetrics?.cpuMetrics?.timeIoWaitPercent ||
|
|
273
|
-
|
|
302
|
+
0);
|
|
274
303
|
|
|
275
304
|
return CompareCriteria.compareCriteriaNumbers({
|
|
276
305
|
value: ioWaitPercent,
|