@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
|
@@ -11,12 +11,29 @@ import { SQL, Statement } from "../Utils/AnalyticsDatabase/Statement";
|
|
|
11
11
|
import { getQuerySettings } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
|
|
12
12
|
import LogDatabaseService from "./LogService";
|
|
13
13
|
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
14
|
+
import { ObjectType } from "../../Types/JSON";
|
|
14
15
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
15
16
|
import Includes from "../../Types/BaseDatabase/Includes";
|
|
16
17
|
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
|
17
18
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
18
19
|
import ServiceType from "../../Types/Telemetry/ServiceType";
|
|
19
20
|
import { appendResourceScopeFilters, } from "../Utils/Telemetry/ResourceEntityFilter";
|
|
21
|
+
import { buildLogErrorPatternExpression, clampLogErrorPattern, } from "../Utils/Telemetry/LogErrorPatternSql";
|
|
22
|
+
/*
|
|
23
|
+
* ---------------------------------------------------------------------
|
|
24
|
+
* Error-pattern insights
|
|
25
|
+
* ---------------------------------------------------------------------
|
|
26
|
+
*
|
|
27
|
+
* The Logs Insights page answers "what is actually going wrong, and where"
|
|
28
|
+
* by clustering error bodies into patterns (see
|
|
29
|
+
* Common/Utils/Telemetry/LogErrorPattern) and counting the clusters in the
|
|
30
|
+
* database. Everything below shares one filter shape so the top-list and
|
|
31
|
+
* every drill-down run against exactly the same slice of logs — a
|
|
32
|
+
* correlation panel that silently widened its own scope would be worse
|
|
33
|
+
* than no panel at all.
|
|
34
|
+
*/
|
|
35
|
+
/** Severities treated as "an error" when the caller does not say. */
|
|
36
|
+
export const DEFAULT_ERROR_LOG_SEVERITIES = ["Error", "Fatal"];
|
|
20
37
|
export class LogAggregationService {
|
|
21
38
|
static async getHistogram(request) {
|
|
22
39
|
const statement = LogAggregationService.buildHistogramStatement(request);
|
|
@@ -518,6 +535,20 @@ export class LogAggregationService {
|
|
|
518
535
|
value: new Includes(attrValue),
|
|
519
536
|
}}), mapKeys(attributes), mapValues(attributes))`);
|
|
520
537
|
}
|
|
538
|
+
else if (typeof attrValue === "object" && attrValue !== null) {
|
|
539
|
+
LogAggregationService.appendAttributeOperatorFilter(statement, attrKey, attrValue);
|
|
540
|
+
}
|
|
541
|
+
else if (attrValue === "") {
|
|
542
|
+
/*
|
|
543
|
+
* A blank equality value is "missing or empty", not "present and
|
|
544
|
+
* empty": the list query compares `attributes['k'] = ''`, and a Map
|
|
545
|
+
* subscript returns the type default for a key the row does not
|
|
546
|
+
* carry, so rows without the attribute match too. Routed through the
|
|
547
|
+
* operator builder so a bare "" and an explicit EqualTo("") — the
|
|
548
|
+
* same filter written two ways — cannot disagree.
|
|
549
|
+
*/
|
|
550
|
+
LogAggregationService.appendAttributeOperatorFilter(statement, attrKey, { _type: ObjectType.IsNull });
|
|
551
|
+
}
|
|
521
552
|
else {
|
|
522
553
|
statement.append(SQL ` AND arrayExists((k, v) -> lowerUTF8(k) = lowerUTF8(${{
|
|
523
554
|
type: TableColumnType.Text,
|
|
@@ -530,6 +561,210 @@ export class LogAggregationService {
|
|
|
530
561
|
}
|
|
531
562
|
}
|
|
532
563
|
}
|
|
564
|
+
/*
|
|
565
|
+
* Attribute filter rows carry an operator (`contains`, `is any of`,
|
|
566
|
+
* `is empty`, ...) as well as a value, and the operator travels over the
|
|
567
|
+
* wire as the serialized `{_type, value}` shape every QueryOperator's
|
|
568
|
+
* toJSON() produces. The list query compiles those through
|
|
569
|
+
* StatementGenerator; these aggregation endpoints (histogram, facets,
|
|
570
|
+
* export) used to treat anything non-array as a plain string, so an
|
|
571
|
+
* operator object bound as "[object Object]", matched nothing, and left the
|
|
572
|
+
* log monitor preview showing an empty chart beside a populated list.
|
|
573
|
+
*
|
|
574
|
+
* Predicates mirror StatementGenerator's map-attribute branches, in the
|
|
575
|
+
* case-insensitive arrayExists form the rest of this builder uses — these
|
|
576
|
+
* keys are typed by a user, not canonical column names.
|
|
577
|
+
*/
|
|
578
|
+
static appendAttributeOperatorFilter(statement, attrKey, attrValue) {
|
|
579
|
+
const operatorType = attrValue["_type"];
|
|
580
|
+
const rawValue = attrValue["value"];
|
|
581
|
+
// `<key> matches case-insensitively AND <predicate>` over the map pairs.
|
|
582
|
+
const matches = (predicate) => {
|
|
583
|
+
return SQL `arrayExists((k, v) -> lowerUTF8(k) = lowerUTF8(${{
|
|
584
|
+
type: TableColumnType.Text,
|
|
585
|
+
value: attrKey,
|
|
586
|
+
}}) AND `
|
|
587
|
+
.append(predicate)
|
|
588
|
+
.append(SQL `, mapKeys(attributes), mapValues(attributes))`);
|
|
589
|
+
};
|
|
590
|
+
/*
|
|
591
|
+
* `value` is unvalidated JSON off the wire. `String()` and `Number()` do
|
|
592
|
+
* not merely produce a bad result on an object — ToPrimitive THROWS a
|
|
593
|
+
* TypeError when the object shadows toString/valueOf with non-callables
|
|
594
|
+
* (`{"toString": 1}`), and that escapes the BadDataException the default
|
|
595
|
+
* branch raises, answering with a 500 instead of a 400. Narrow to
|
|
596
|
+
* primitives first so every rejection goes out the same door.
|
|
597
|
+
*/
|
|
598
|
+
const requirePrimitive = (value) => {
|
|
599
|
+
if (value === undefined || value === null) {
|
|
600
|
+
return null;
|
|
601
|
+
}
|
|
602
|
+
if (typeof value === "string" ||
|
|
603
|
+
typeof value === "number" ||
|
|
604
|
+
typeof value === "boolean") {
|
|
605
|
+
return value;
|
|
606
|
+
}
|
|
607
|
+
throw new BadDataException(`Invalid value in the attribute filter for "${attrKey}"`);
|
|
608
|
+
};
|
|
609
|
+
const textValue = () => {
|
|
610
|
+
const primitive = requirePrimitive(rawValue);
|
|
611
|
+
return primitive === null ? "" : String(primitive);
|
|
612
|
+
};
|
|
613
|
+
const like = (pattern) => {
|
|
614
|
+
return SQL `v ILIKE ${{
|
|
615
|
+
type: TableColumnType.Text,
|
|
616
|
+
value: pattern,
|
|
617
|
+
}}`;
|
|
618
|
+
};
|
|
619
|
+
/*
|
|
620
|
+
* Map values are stored as text; toFloat64OrNull yields NULL for
|
|
621
|
+
* non-numeric values (including the empty default for a missing key),
|
|
622
|
+
* which compares false against any threshold and drops those rows.
|
|
623
|
+
*/
|
|
624
|
+
const numeric = (comparison) => {
|
|
625
|
+
const primitive = requirePrimitive(rawValue);
|
|
626
|
+
const threshold = Number(primitive);
|
|
627
|
+
/*
|
|
628
|
+
* Reject rather than bind. `Number(null)` is 0, so a filter with no
|
|
629
|
+
* value would silently become "> 0", and a non-numeric one binds as the
|
|
630
|
+
* literal `nan`, which ClickHouse cannot parse — a 500 where the user
|
|
631
|
+
* should get a 400 naming the filter.
|
|
632
|
+
*/
|
|
633
|
+
if (primitive === null ||
|
|
634
|
+
primitive === "" ||
|
|
635
|
+
!Number.isFinite(threshold)) {
|
|
636
|
+
throw new BadDataException(`The attribute filter for "${attrKey}" needs a numeric value`);
|
|
637
|
+
}
|
|
638
|
+
/*
|
|
639
|
+
* Decimal (ClickHouse Double), not Number (Int32): the left-hand side is
|
|
640
|
+
* a Float64 and thresholds are free text, so `> 1.5` bound as Int32 is a
|
|
641
|
+
* parse error at the database rather than a comparison.
|
|
642
|
+
*
|
|
643
|
+
* The comparison itself is appended as raw SQL — an interpolation in the
|
|
644
|
+
* SQL tag becomes a bound Identifier, which is not what `>` is. Every
|
|
645
|
+
* caller passes a literal from the switch below, never user input.
|
|
646
|
+
*/
|
|
647
|
+
return SQL `toFloat64OrNull(v) `.append(comparison).append(SQL ` ${{
|
|
648
|
+
type: TableColumnType.Decimal,
|
|
649
|
+
value: threshold,
|
|
650
|
+
}}`);
|
|
651
|
+
};
|
|
652
|
+
const membershipValues = () => {
|
|
653
|
+
return Array.isArray(rawValue)
|
|
654
|
+
? rawValue.map((entry) => {
|
|
655
|
+
const primitive = requirePrimitive(entry);
|
|
656
|
+
return primitive === null ? "" : String(primitive);
|
|
657
|
+
})
|
|
658
|
+
: [];
|
|
659
|
+
};
|
|
660
|
+
/*
|
|
661
|
+
* "the key is present with a non-empty value".
|
|
662
|
+
*
|
|
663
|
+
* A ClickHouse Map subscript returns the value type's default for a
|
|
664
|
+
* missing key, so the list query's `attributes['k']` reads as '' for a row
|
|
665
|
+
* that has no such attribute at all. That makes an EMPTY comparison value
|
|
666
|
+
* mean something different from every other value, in both directions:
|
|
667
|
+
* `attributes['k'] = ''` matches rows that lack the key, and
|
|
668
|
+
* `attributes['k'] != ''` drops them. Naively negating the existence test
|
|
669
|
+
* gets both backwards — an "is not equal to <blank>" filter counted every
|
|
670
|
+
* row in the project while the list beside it counted only the handful
|
|
671
|
+
* that carried the attribute.
|
|
672
|
+
*/
|
|
673
|
+
const hasNonEmptyValue = () => {
|
|
674
|
+
return matches(SQL `v != ''`);
|
|
675
|
+
};
|
|
676
|
+
switch (operatorType) {
|
|
677
|
+
case ObjectType.EqualTo:
|
|
678
|
+
if (textValue() === "") {
|
|
679
|
+
// `attributes['k'] = ''` — missing or empty. Same set as "is empty".
|
|
680
|
+
statement.append(SQL ` AND NOT `.append(hasNonEmptyValue()));
|
|
681
|
+
return;
|
|
682
|
+
}
|
|
683
|
+
statement.append(SQL ` AND `.append(matches(SQL `v = ${{
|
|
684
|
+
type: TableColumnType.Text,
|
|
685
|
+
value: textValue(),
|
|
686
|
+
}}`)));
|
|
687
|
+
return;
|
|
688
|
+
case ObjectType.NotEqual:
|
|
689
|
+
if (textValue() === "") {
|
|
690
|
+
/*
|
|
691
|
+
* `attributes['k'] != ''` — present AND non-empty. Same set as
|
|
692
|
+
* "is not empty"; see hasNonEmptyValue above for why blank is
|
|
693
|
+
* special.
|
|
694
|
+
*/
|
|
695
|
+
statement.append(SQL ` AND `.append(hasNonEmptyValue()));
|
|
696
|
+
return;
|
|
697
|
+
}
|
|
698
|
+
/*
|
|
699
|
+
* Negating the whole existence test is what makes rows that lack the
|
|
700
|
+
* attribute pass, matching the map-subscript form's semantics (a
|
|
701
|
+
* missing key reads as '' and so is != a non-empty value).
|
|
702
|
+
*/
|
|
703
|
+
statement.append(SQL ` AND NOT `.append(matches(SQL `v = ${{
|
|
704
|
+
type: TableColumnType.Text,
|
|
705
|
+
value: textValue(),
|
|
706
|
+
}}`)));
|
|
707
|
+
return;
|
|
708
|
+
case ObjectType.Search:
|
|
709
|
+
statement.append(SQL ` AND `.append(matches(like(`%${textValue()}%`))));
|
|
710
|
+
return;
|
|
711
|
+
case ObjectType.NotContains:
|
|
712
|
+
statement.append(SQL ` AND NOT `.append(matches(like(`%${textValue()}%`))));
|
|
713
|
+
return;
|
|
714
|
+
case ObjectType.StartsWith:
|
|
715
|
+
statement.append(SQL ` AND `.append(matches(like(`${textValue()}%`))));
|
|
716
|
+
return;
|
|
717
|
+
case ObjectType.EndsWith:
|
|
718
|
+
statement.append(SQL ` AND `.append(matches(like(`%${textValue()}`))));
|
|
719
|
+
return;
|
|
720
|
+
case ObjectType.GreaterThan:
|
|
721
|
+
statement.append(SQL ` AND `.append(matches(numeric(">"))));
|
|
722
|
+
return;
|
|
723
|
+
case ObjectType.GreaterThanOrEqual:
|
|
724
|
+
statement.append(SQL ` AND `.append(matches(numeric(">="))));
|
|
725
|
+
return;
|
|
726
|
+
case ObjectType.LessThan:
|
|
727
|
+
statement.append(SQL ` AND `.append(matches(numeric("<"))));
|
|
728
|
+
return;
|
|
729
|
+
case ObjectType.LessThanOrEqual:
|
|
730
|
+
statement.append(SQL ` AND `.append(matches(numeric("<="))));
|
|
731
|
+
return;
|
|
732
|
+
case ObjectType.IsNull:
|
|
733
|
+
// "is empty" — no non-empty value stored under that key.
|
|
734
|
+
statement.append(SQL ` AND NOT `.append(hasNonEmptyValue()));
|
|
735
|
+
return;
|
|
736
|
+
case ObjectType.NotNull:
|
|
737
|
+
statement.append(SQL ` AND `.append(hasNonEmptyValue()));
|
|
738
|
+
return;
|
|
739
|
+
case ObjectType.Includes:
|
|
740
|
+
case ObjectType.IncludesNone: {
|
|
741
|
+
const values = membershipValues();
|
|
742
|
+
/*
|
|
743
|
+
* An empty membership list means "All", not "nothing" — skipping the
|
|
744
|
+
* predicate matches how StatementGenerator and the form treat it, and
|
|
745
|
+
* avoids emitting `IN ()`.
|
|
746
|
+
*/
|
|
747
|
+
if (values.length === 0) {
|
|
748
|
+
return;
|
|
749
|
+
}
|
|
750
|
+
const membership = matches(SQL `v IN (${{
|
|
751
|
+
type: TableColumnType.Text,
|
|
752
|
+
value: new Includes(values),
|
|
753
|
+
}})`);
|
|
754
|
+
statement.append((operatorType === ObjectType.Includes
|
|
755
|
+
? SQL ` AND `
|
|
756
|
+
: SQL ` AND NOT `).append(membership));
|
|
757
|
+
return;
|
|
758
|
+
}
|
|
759
|
+
default:
|
|
760
|
+
/*
|
|
761
|
+
* An unrecognized shape is a filter this builder cannot honour.
|
|
762
|
+
* Refuse it rather than binding an object as text and quietly
|
|
763
|
+
* returning counts that disagree with the logs list.
|
|
764
|
+
*/
|
|
765
|
+
throw new BadDataException(`Unsupported attribute filter for "${attrKey}"`);
|
|
766
|
+
}
|
|
767
|
+
}
|
|
533
768
|
static async getExportLogs(request) {
|
|
534
769
|
const maxLimit = Math.min(request.limit || 10000, 10000);
|
|
535
770
|
const statement = SQL `
|
|
@@ -740,6 +975,414 @@ export class LogAggregationService {
|
|
|
740
975
|
const estimatedReductionPercent = totalLogs > 0 ? Math.round((matchingLogs / totalLogs) * 100) : 0;
|
|
741
976
|
return { totalLogs, matchingLogs, estimatedReductionPercent };
|
|
742
977
|
}
|
|
978
|
+
/**
|
|
979
|
+
* The distinct error messages in the window, most frequent first.
|
|
980
|
+
*
|
|
981
|
+
* This is the "Top Errors" list: one row per pattern with its occurrence
|
|
982
|
+
* count, when it started and last happened, how many resources it spans,
|
|
983
|
+
* and enough sample material (a real body, some trace ids) for the UI to
|
|
984
|
+
* render the row without a second round trip.
|
|
985
|
+
*/
|
|
986
|
+
static async getTopErrorPatterns(request) {
|
|
987
|
+
const statement = LogAggregationService.buildTopErrorPatternsStatement(request);
|
|
988
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
989
|
+
return rows
|
|
990
|
+
.map((row) => {
|
|
991
|
+
return {
|
|
992
|
+
pattern: String(row["pattern"] || ""),
|
|
993
|
+
sampleBody: String(row["sampleBody"] || ""),
|
|
994
|
+
count: Number(row["cnt"] || 0),
|
|
995
|
+
firstSeenAt: String(row["firstSeen"] || ""),
|
|
996
|
+
lastSeenAt: String(row["lastSeen"] || ""),
|
|
997
|
+
resourceCount: Number(row["resourceCount"] || 0),
|
|
998
|
+
resourceIds: LogAggregationService.toStringArray(row["resourceIds"]),
|
|
999
|
+
severities: LogAggregationService.toStringArray(row["severities"]),
|
|
1000
|
+
traceCount: Number(row["traceCount"] || 0),
|
|
1001
|
+
sampleTraceIds: LogAggregationService.toStringArray(row["sampleTraceIds"]),
|
|
1002
|
+
};
|
|
1003
|
+
})
|
|
1004
|
+
.filter((item) => {
|
|
1005
|
+
return item.pattern.length > 0;
|
|
1006
|
+
});
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* When one pattern happened, bucketed over the window — the "is this a
|
|
1010
|
+
* steady drip or a spike at 14:05" question.
|
|
1011
|
+
*/
|
|
1012
|
+
static async getErrorPatternTimeline(request) {
|
|
1013
|
+
const statement = LogAggregationService.buildErrorPatternTimelineStatement(request);
|
|
1014
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
1015
|
+
return rows.map((row) => {
|
|
1016
|
+
return {
|
|
1017
|
+
time: String(row["bucket"] || ""),
|
|
1018
|
+
count: Number(row["cnt"] || 0),
|
|
1019
|
+
};
|
|
1020
|
+
});
|
|
1021
|
+
}
|
|
1022
|
+
/**
|
|
1023
|
+
* Other error patterns that fired in the same time buckets as this one.
|
|
1024
|
+
*
|
|
1025
|
+
* This is the correlation the Insights page exists for: rather than
|
|
1026
|
+
* eyeballing two log lists side by side, the panel names the errors that
|
|
1027
|
+
* keep company with the one under investigation. "Same bucket" is a
|
|
1028
|
+
* deliberately coarse notion of simultaneity — it inherits whatever
|
|
1029
|
+
* bucket size the timeline is drawn at, so a wide window correlates
|
|
1030
|
+
* loosely and a narrow one tightly.
|
|
1031
|
+
*/
|
|
1032
|
+
static async getErrorPatternCoOccurrences(request) {
|
|
1033
|
+
const statement = LogAggregationService.buildErrorPatternCoOccurrenceStatement(request);
|
|
1034
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
1035
|
+
return rows
|
|
1036
|
+
.map((row) => {
|
|
1037
|
+
return {
|
|
1038
|
+
pattern: String(row["pattern"] || ""),
|
|
1039
|
+
sampleBody: String(row["sampleBody"] || ""),
|
|
1040
|
+
count: Number(row["cnt"] || 0),
|
|
1041
|
+
};
|
|
1042
|
+
})
|
|
1043
|
+
.filter((item) => {
|
|
1044
|
+
return item.pattern.length > 0;
|
|
1045
|
+
});
|
|
1046
|
+
}
|
|
1047
|
+
/**
|
|
1048
|
+
* The attribute key/value pairs carried by this pattern's occurrences,
|
|
1049
|
+
* most common first — how the page answers "which host is this?" without
|
|
1050
|
+
* the user having to open a log line and read its attributes.
|
|
1051
|
+
*/
|
|
1052
|
+
static async getErrorPatternAttributes(request) {
|
|
1053
|
+
const statement = LogAggregationService.buildErrorPatternAttributesStatement(request);
|
|
1054
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
1055
|
+
return rows
|
|
1056
|
+
.map((row) => {
|
|
1057
|
+
return {
|
|
1058
|
+
key: String(row["attrKey"] || ""),
|
|
1059
|
+
value: String(row["attrValue"] || ""),
|
|
1060
|
+
count: Number(row["cnt"] || 0),
|
|
1061
|
+
};
|
|
1062
|
+
})
|
|
1063
|
+
.filter((item) => {
|
|
1064
|
+
return item.key.length > 0;
|
|
1065
|
+
});
|
|
1066
|
+
}
|
|
1067
|
+
/** Which services / hosts / clusters this pattern is happening on. */
|
|
1068
|
+
static async getErrorPatternResources(request) {
|
|
1069
|
+
const statement = LogAggregationService.buildErrorPatternResourcesStatement(request);
|
|
1070
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
1071
|
+
return rows
|
|
1072
|
+
.map((row) => {
|
|
1073
|
+
return {
|
|
1074
|
+
resourceId: String(row["resourceId"] || ""),
|
|
1075
|
+
resourceType: String(row["resourceType"] || ""),
|
|
1076
|
+
count: Number(row["cnt"] || 0),
|
|
1077
|
+
lastSeenAt: String(row["lastSeen"] || ""),
|
|
1078
|
+
};
|
|
1079
|
+
})
|
|
1080
|
+
.filter((item) => {
|
|
1081
|
+
return item.resourceId.length > 0;
|
|
1082
|
+
});
|
|
1083
|
+
}
|
|
1084
|
+
/**
|
|
1085
|
+
* Traces that carry at least one occurrence — the jump from "this error
|
|
1086
|
+
* happened" to the request it happened inside.
|
|
1087
|
+
*/
|
|
1088
|
+
static async getErrorPatternTraces(request) {
|
|
1089
|
+
const statement = LogAggregationService.buildErrorPatternTracesStatement(request);
|
|
1090
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
1091
|
+
return rows
|
|
1092
|
+
.map((row) => {
|
|
1093
|
+
return {
|
|
1094
|
+
traceId: String(row["traceId"] || ""),
|
|
1095
|
+
count: Number(row["cnt"] || 0),
|
|
1096
|
+
lastSeenAt: String(row["lastSeen"] || ""),
|
|
1097
|
+
resourceId: String(row["resourceId"] || ""),
|
|
1098
|
+
};
|
|
1099
|
+
})
|
|
1100
|
+
.filter((item) => {
|
|
1101
|
+
return item.traceId.length > 0;
|
|
1102
|
+
});
|
|
1103
|
+
}
|
|
1104
|
+
/** The most recent raw log lines behind the pattern. */
|
|
1105
|
+
static async getErrorPatternSamples(request) {
|
|
1106
|
+
const statement = LogAggregationService.buildErrorPatternSamplesStatement(request);
|
|
1107
|
+
const rows = await LogAggregationService.runQuery(statement);
|
|
1108
|
+
return rows.map((row) => {
|
|
1109
|
+
return {
|
|
1110
|
+
logId: String(row["_id"] || ""),
|
|
1111
|
+
time: String(row["time"] || ""),
|
|
1112
|
+
body: String(row["body"] || ""),
|
|
1113
|
+
severityText: String(row["severityText"] || ""),
|
|
1114
|
+
resourceId: String(row["resourceId"] || ""),
|
|
1115
|
+
traceId: String(row["traceId"] || ""),
|
|
1116
|
+
spanId: String(row["spanId"] || ""),
|
|
1117
|
+
};
|
|
1118
|
+
});
|
|
1119
|
+
}
|
|
1120
|
+
static async runQuery(statement) {
|
|
1121
|
+
const dbResult = await LogDatabaseService.executeQuery(statement);
|
|
1122
|
+
const response = await dbResult.json();
|
|
1123
|
+
return response.data || [];
|
|
1124
|
+
}
|
|
1125
|
+
/*
|
|
1126
|
+
* ClickHouse returns array-valued aggregates (groupUniqArray) as JSON
|
|
1127
|
+
* arrays, but a row that reached us through a different serializer could
|
|
1128
|
+
* carry anything — coerce defensively rather than trusting the shape.
|
|
1129
|
+
*/
|
|
1130
|
+
static toStringArray(value) {
|
|
1131
|
+
if (!Array.isArray(value)) {
|
|
1132
|
+
return [];
|
|
1133
|
+
}
|
|
1134
|
+
return value
|
|
1135
|
+
.map((item) => {
|
|
1136
|
+
return String(item !== null && item !== void 0 ? item : "");
|
|
1137
|
+
})
|
|
1138
|
+
.filter((item) => {
|
|
1139
|
+
return item.length > 0;
|
|
1140
|
+
});
|
|
1141
|
+
}
|
|
1142
|
+
static clampErrorPatternLimit(limit) {
|
|
1143
|
+
if (typeof limit !== "number" || !Number.isFinite(limit)) {
|
|
1144
|
+
return LogAggregationService.DEFAULT_ERROR_PATTERN_LIMIT;
|
|
1145
|
+
}
|
|
1146
|
+
return Math.min(Math.max(1, Math.floor(limit)), LogAggregationService.MAX_ERROR_PATTERN_LIMIT);
|
|
1147
|
+
}
|
|
1148
|
+
/*
|
|
1149
|
+
* Error-pattern reads share one WHERE clause so a drill-down can never
|
|
1150
|
+
* see rows the top-list did not. The only thing this adds over
|
|
1151
|
+
* appendCommonFilters is the severity default: a request that names no
|
|
1152
|
+
* severities means "errors", not "every log in the project".
|
|
1153
|
+
*/
|
|
1154
|
+
static appendErrorPatternScope(statement, request) {
|
|
1155
|
+
statement.append(SQL ` WHERE projectId = ${{
|
|
1156
|
+
type: TableColumnType.ObjectID,
|
|
1157
|
+
value: request.projectId,
|
|
1158
|
+
}} AND time >= ${{
|
|
1159
|
+
type: TableColumnType.Date,
|
|
1160
|
+
value: request.startTime,
|
|
1161
|
+
}} AND time <= ${{
|
|
1162
|
+
type: TableColumnType.Date,
|
|
1163
|
+
value: request.endTime,
|
|
1164
|
+
}}`);
|
|
1165
|
+
statement.append(LogAggregationService.RETENTION_FILTER);
|
|
1166
|
+
statement.append(LogAggregationService.NON_EMPTY_BODY_FILTER);
|
|
1167
|
+
LogAggregationService.appendCommonFilters(statement, Object.assign(Object.assign({}, request), { severityTexts: request.severityTexts && request.severityTexts.length > 0
|
|
1168
|
+
? request.severityTexts
|
|
1169
|
+
: DEFAULT_ERROR_LOG_SEVERITIES }));
|
|
1170
|
+
}
|
|
1171
|
+
/*
|
|
1172
|
+
* ` AND <pattern expression> = '<the pattern>'` — the predicate every
|
|
1173
|
+
* drill-down uses to reduce the window to one cluster. The pattern value
|
|
1174
|
+
* is clamped to the same maximum length the expression truncates to, so
|
|
1175
|
+
* an oversized parameter cannot be used to push a huge constant into the
|
|
1176
|
+
* query (it could only ever match nothing anyway).
|
|
1177
|
+
*/
|
|
1178
|
+
static appendErrorPatternEquality(statement, pattern) {
|
|
1179
|
+
statement.append(" AND ");
|
|
1180
|
+
statement.append(buildLogErrorPatternExpression());
|
|
1181
|
+
statement.append(SQL ` = ${{
|
|
1182
|
+
type: TableColumnType.Text,
|
|
1183
|
+
value: clampLogErrorPattern(pattern),
|
|
1184
|
+
}}`);
|
|
1185
|
+
}
|
|
1186
|
+
static errorPatternQuerySettings() {
|
|
1187
|
+
/*
|
|
1188
|
+
* Same ceiling as every other aggregation here: below the client's 58s
|
|
1189
|
+
* request timeout, 'break' so a wide window degrades to partial counts
|
|
1190
|
+
* instead of an error page, and the scan-memory bound because these
|
|
1191
|
+
* queries read the fat `attributes` map alongside `body`.
|
|
1192
|
+
*/
|
|
1193
|
+
return getQuerySettings({
|
|
1194
|
+
maxExecutionTimeInSeconds: 45,
|
|
1195
|
+
timeoutOverflowMode: "break",
|
|
1196
|
+
boundScanMemory: true,
|
|
1197
|
+
});
|
|
1198
|
+
}
|
|
1199
|
+
static buildTopErrorPatternsStatement(request) {
|
|
1200
|
+
const limit = LogAggregationService.clampErrorPatternLimit(request.limit);
|
|
1201
|
+
/*
|
|
1202
|
+
* Inlined rather than bound as a parameter: these are the parameters of
|
|
1203
|
+
* a PARAMETRIC aggregate function, which ClickHouse requires to be
|
|
1204
|
+
* constants, and they are trusted class constants rather than anything
|
|
1205
|
+
* a caller supplies.
|
|
1206
|
+
*/
|
|
1207
|
+
const sampleLimit = LogAggregationService.ERROR_PATTERN_SAMPLE_ARRAY_LIMIT;
|
|
1208
|
+
const severityLimit = LogAggregationService.ERROR_PATTERN_SEVERITY_ARRAY_LIMIT;
|
|
1209
|
+
const statement = new Statement();
|
|
1210
|
+
statement.append("SELECT ");
|
|
1211
|
+
statement.append(buildLogErrorPatternExpression());
|
|
1212
|
+
statement.append(" AS pattern");
|
|
1213
|
+
statement.append(", count() AS cnt");
|
|
1214
|
+
/*
|
|
1215
|
+
* The newest real body in the group. Showing a raw example alongside
|
|
1216
|
+
* the normalized pattern is what makes a row readable — `<num>` reads
|
|
1217
|
+
* very differently next to the line it came from.
|
|
1218
|
+
*/
|
|
1219
|
+
statement.append(", argMax(ifNull(body, ''), time) AS sampleBody");
|
|
1220
|
+
statement.append(", min(time) AS firstSeen");
|
|
1221
|
+
statement.append(", max(time) AS lastSeen");
|
|
1222
|
+
statement.append(", uniqExact(primaryEntityId) AS resourceCount");
|
|
1223
|
+
statement.append(`, groupUniqArray(${sampleLimit})(toString(primaryEntityId)) AS resourceIds`);
|
|
1224
|
+
statement.append(`, groupUniqArray(${severityLimit})(toString(severityText)) AS severities`);
|
|
1225
|
+
statement.append(", uniqExactIf(traceId, ifNull(traceId, '') != '') AS traceCount");
|
|
1226
|
+
statement.append(`, groupUniqArrayIf(${sampleLimit})(ifNull(traceId, ''), ifNull(traceId, '') != '') AS sampleTraceIds`);
|
|
1227
|
+
statement.append(` FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1228
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1229
|
+
statement.append(" GROUP BY pattern");
|
|
1230
|
+
statement.append(LogAggregationService.NON_EMPTY_PATTERN_HAVING);
|
|
1231
|
+
statement.append(SQL ` ORDER BY cnt DESC LIMIT ${{
|
|
1232
|
+
type: TableColumnType.Number,
|
|
1233
|
+
value: limit,
|
|
1234
|
+
}}`);
|
|
1235
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1236
|
+
return statement;
|
|
1237
|
+
}
|
|
1238
|
+
static buildErrorPatternTimelineStatement(request) {
|
|
1239
|
+
const intervalSeconds = LogAggregationService.resolveBucketSeconds(request);
|
|
1240
|
+
const statement = SQL `SELECT toStartOfInterval(time, INTERVAL ${{
|
|
1241
|
+
type: TableColumnType.Number,
|
|
1242
|
+
value: intervalSeconds,
|
|
1243
|
+
}} SECOND) AS bucket, count() AS cnt`;
|
|
1244
|
+
statement.append(` FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1245
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1246
|
+
LogAggregationService.appendErrorPatternEquality(statement, request.pattern);
|
|
1247
|
+
statement.append(" GROUP BY bucket ORDER BY bucket ASC");
|
|
1248
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1249
|
+
return statement;
|
|
1250
|
+
}
|
|
1251
|
+
static buildErrorPatternCoOccurrenceStatement(request) {
|
|
1252
|
+
const intervalSeconds = LogAggregationService.resolveBucketSeconds(request);
|
|
1253
|
+
const limit = LogAggregationService.clampErrorPatternLimit(request.limit);
|
|
1254
|
+
const statement = new Statement();
|
|
1255
|
+
statement.append("SELECT ");
|
|
1256
|
+
statement.append(buildLogErrorPatternExpression());
|
|
1257
|
+
statement.append(" AS pattern");
|
|
1258
|
+
statement.append(", count() AS cnt");
|
|
1259
|
+
statement.append(", argMax(ifNull(body, ''), time) AS sampleBody");
|
|
1260
|
+
statement.append(` FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1261
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1262
|
+
/*
|
|
1263
|
+
* Everything EXCEPT the pattern under investigation. Written as the
|
|
1264
|
+
* full expression rather than the `pattern` alias: ClickHouse
|
|
1265
|
+
* substitutes same-level SELECT aliases into WHERE, and an alias that
|
|
1266
|
+
* shadows nothing today can start shadowing a real column tomorrow.
|
|
1267
|
+
*/
|
|
1268
|
+
statement.append(" AND ");
|
|
1269
|
+
statement.append(buildLogErrorPatternExpression());
|
|
1270
|
+
statement.append(SQL ` != ${{
|
|
1271
|
+
type: TableColumnType.Text,
|
|
1272
|
+
value: clampLogErrorPattern(request.pattern),
|
|
1273
|
+
}}`);
|
|
1274
|
+
/*
|
|
1275
|
+
* ...restricted to the buckets the investigated pattern itself landed
|
|
1276
|
+
* in.
|
|
1277
|
+
*
|
|
1278
|
+
* GLOBAL IN, not plain IN, and it is load-bearing. This predicate sits
|
|
1279
|
+
* in a query on the Distributed LogItemV3 table whose subquery reads
|
|
1280
|
+
* that SAME Distributed table, which multi-shard ClickHouse rejects
|
|
1281
|
+
* outright as a double-distributed subquery (Code 288,
|
|
1282
|
+
* distributed_product_mode = 'deny' by default) — the panel would throw
|
|
1283
|
+
* on any 2+-shard cluster, and because the endpoint wraps each
|
|
1284
|
+
* correlation read in a degrade-to-empty catch it would fail SILENTLY,
|
|
1285
|
+
* rendering "nothing else was failing" forever.
|
|
1286
|
+
*
|
|
1287
|
+
* A shard-local evaluation would be wrong even where it is allowed: the
|
|
1288
|
+
* sharding key is cityHash64(projectId, primaryEntityId, time), so one
|
|
1289
|
+
* project's rows span every shard and the bucket set has to be computed
|
|
1290
|
+
* once globally. On a single shard GLOBAL is a semantic no-op. Same
|
|
1291
|
+
* reasoning, same shape as MetricService's Top-K group restriction.
|
|
1292
|
+
*/
|
|
1293
|
+
statement.append(SQL ` AND toStartOfInterval(time, INTERVAL ${{
|
|
1294
|
+
type: TableColumnType.Number,
|
|
1295
|
+
value: intervalSeconds,
|
|
1296
|
+
}} SECOND) GLOBAL IN (SELECT DISTINCT toStartOfInterval(time, INTERVAL ${{
|
|
1297
|
+
type: TableColumnType.Number,
|
|
1298
|
+
value: intervalSeconds,
|
|
1299
|
+
}} SECOND)`);
|
|
1300
|
+
statement.append(` FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1301
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1302
|
+
LogAggregationService.appendErrorPatternEquality(statement, request.pattern);
|
|
1303
|
+
statement.append(")");
|
|
1304
|
+
statement.append(" GROUP BY pattern");
|
|
1305
|
+
statement.append(LogAggregationService.NON_EMPTY_PATTERN_HAVING);
|
|
1306
|
+
statement.append(SQL ` ORDER BY cnt DESC LIMIT ${{
|
|
1307
|
+
type: TableColumnType.Number,
|
|
1308
|
+
value: limit,
|
|
1309
|
+
}}`);
|
|
1310
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1311
|
+
return statement;
|
|
1312
|
+
}
|
|
1313
|
+
static buildErrorPatternAttributesStatement(request) {
|
|
1314
|
+
const limit = LogAggregationService.clampErrorPatternLimit(request.limit);
|
|
1315
|
+
/*
|
|
1316
|
+
* The ARRAY JOIN runs over a pre-filtered subquery on purpose. Written
|
|
1317
|
+
* flat, the join explodes every row in the window into one row per
|
|
1318
|
+
* attribute BEFORE the WHERE narrows to a single pattern — on a service
|
|
1319
|
+
* carrying twenty resource attributes that is a twentyfold scan for a
|
|
1320
|
+
* result the size of a tooltip.
|
|
1321
|
+
*/
|
|
1322
|
+
const statement = new Statement();
|
|
1323
|
+
statement.append(`SELECT attrKey, attrValue, count() AS cnt FROM (SELECT attributes FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1324
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1325
|
+
LogAggregationService.appendErrorPatternEquality(statement, request.pattern);
|
|
1326
|
+
statement.append(") ARRAY JOIN mapKeys(attributes) AS attrKey, mapValues(attributes) AS attrValue");
|
|
1327
|
+
statement.append(SQL ` GROUP BY attrKey, attrValue ORDER BY cnt DESC LIMIT ${{
|
|
1328
|
+
type: TableColumnType.Number,
|
|
1329
|
+
value: limit,
|
|
1330
|
+
}}`);
|
|
1331
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1332
|
+
return statement;
|
|
1333
|
+
}
|
|
1334
|
+
static buildErrorPatternResourcesStatement(request) {
|
|
1335
|
+
const limit = LogAggregationService.clampErrorPatternLimit(request.limit);
|
|
1336
|
+
const statement = new Statement();
|
|
1337
|
+
statement.append(`SELECT toString(primaryEntityId) AS resourceId, any(ifNull(primaryEntityType, '')) AS resourceType, count() AS cnt, max(time) AS lastSeen FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1338
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1339
|
+
LogAggregationService.appendErrorPatternEquality(statement, request.pattern);
|
|
1340
|
+
statement.append(SQL ` GROUP BY resourceId ORDER BY cnt DESC LIMIT ${{
|
|
1341
|
+
type: TableColumnType.Number,
|
|
1342
|
+
value: limit,
|
|
1343
|
+
}}`);
|
|
1344
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1345
|
+
return statement;
|
|
1346
|
+
}
|
|
1347
|
+
static buildErrorPatternTracesStatement(request) {
|
|
1348
|
+
const limit = LogAggregationService.clampErrorPatternLimit(request.limit);
|
|
1349
|
+
const statement = new Statement();
|
|
1350
|
+
statement.append(`SELECT ifNull(traceId, '') AS traceId, count() AS cnt, max(time) AS lastSeen, any(toString(primaryEntityId)) AS resourceId FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1351
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1352
|
+
LogAggregationService.appendErrorPatternEquality(statement, request.pattern);
|
|
1353
|
+
statement.append(" AND ifNull(traceId, '') != ''");
|
|
1354
|
+
statement.append(SQL ` GROUP BY traceId ORDER BY cnt DESC LIMIT ${{
|
|
1355
|
+
type: TableColumnType.Number,
|
|
1356
|
+
value: limit,
|
|
1357
|
+
}}`);
|
|
1358
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1359
|
+
return statement;
|
|
1360
|
+
}
|
|
1361
|
+
static buildErrorPatternSamplesStatement(request) {
|
|
1362
|
+
const limit = LogAggregationService.clampErrorPatternLimit(request.limit);
|
|
1363
|
+
const statement = new Statement();
|
|
1364
|
+
statement.append(`SELECT _id, time, ifNull(body, '') AS body, toString(severityText) AS severityText, toString(primaryEntityId) AS resourceId, ifNull(traceId, '') AS traceId, ifNull(spanId, '') AS spanId FROM ${LogAggregationService.TABLE_NAME}`);
|
|
1365
|
+
LogAggregationService.appendErrorPatternScope(statement, request);
|
|
1366
|
+
LogAggregationService.appendErrorPatternEquality(statement, request.pattern);
|
|
1367
|
+
statement.append(SQL ` ORDER BY time DESC LIMIT ${{
|
|
1368
|
+
type: TableColumnType.Number,
|
|
1369
|
+
value: limit,
|
|
1370
|
+
}}`);
|
|
1371
|
+
statement.append(LogAggregationService.errorPatternQuerySettings());
|
|
1372
|
+
return statement;
|
|
1373
|
+
}
|
|
1374
|
+
/*
|
|
1375
|
+
* Bucket size in seconds, clamped to a minute floor. A zero or negative
|
|
1376
|
+
* bucket would compile to `INTERVAL 0 SECOND`, which ClickHouse rejects —
|
|
1377
|
+
* and the correlation query's "same bucket" join would lose all meaning.
|
|
1378
|
+
*/
|
|
1379
|
+
static resolveBucketSeconds(request) {
|
|
1380
|
+
const minutes = request.bucketSizeInMinutes;
|
|
1381
|
+
if (typeof minutes !== "number" || !Number.isFinite(minutes)) {
|
|
1382
|
+
return 60;
|
|
1383
|
+
}
|
|
1384
|
+
return Math.max(1, Math.floor(minutes)) * 60;
|
|
1385
|
+
}
|
|
743
1386
|
static isTopLevelColumn(key) {
|
|
744
1387
|
return LogAggregationService.TOP_LEVEL_COLUMNS.has(key);
|
|
745
1388
|
}
|
|
@@ -802,6 +1445,30 @@ LogAggregationService.MAX_FACET_KEY_LENGTH = 256;
|
|
|
802
1445
|
LogAggregationService.RETENTION_FILTER = " AND retentionDate >= now()";
|
|
803
1446
|
LogAggregationService.DEFAULT_ANALYTICS_LIMIT = 10;
|
|
804
1447
|
LogAggregationService.MAX_GROUP_BY_DIMENSIONS = 2;
|
|
1448
|
+
// --- Error pattern insights ---
|
|
1449
|
+
LogAggregationService.DEFAULT_ERROR_PATTERN_LIMIT = 10;
|
|
1450
|
+
LogAggregationService.MAX_ERROR_PATTERN_LIMIT = 50;
|
|
1451
|
+
LogAggregationService.ERROR_PATTERN_SAMPLE_ARRAY_LIMIT = 5;
|
|
1452
|
+
/* Every severity a pattern can carry fits comfortably in eight slots. */
|
|
1453
|
+
LogAggregationService.ERROR_PATTERN_SEVERITY_ARRAY_LIMIT = 8;
|
|
1454
|
+
/*
|
|
1455
|
+
* Cheap pre-filter for bodies that carry no message: they normalize to the
|
|
1456
|
+
* empty pattern, which would otherwise become a meaningless "" group.
|
|
1457
|
+
*
|
|
1458
|
+
* Deliberately only a pre-filter, not the guarantee. ClickHouse's trimBoth
|
|
1459
|
+
* strips SPACES only, so a body of tabs or newlines survives this predicate
|
|
1460
|
+
* and still normalizes to "" once the whitespace rule collapses it. The
|
|
1461
|
+
* grouped reads therefore also carry `HAVING pattern != ''`; this stays
|
|
1462
|
+
* because skipping those rows before aggregation is strictly cheaper than
|
|
1463
|
+
* grouping them and throwing the group away.
|
|
1464
|
+
*/
|
|
1465
|
+
LogAggregationService.NON_EMPTY_BODY_FILTER = " AND notEmpty(trimBoth(ifNull(body, '')))";
|
|
1466
|
+
/*
|
|
1467
|
+
* The actual guarantee that no empty-pattern group is returned. Applied to
|
|
1468
|
+
* every read that GROUPs BY the pattern; the row-returning reads instead
|
|
1469
|
+
* scope to one caller-supplied pattern, which is never "".
|
|
1470
|
+
*/
|
|
1471
|
+
LogAggregationService.NON_EMPTY_PATTERN_HAVING = " HAVING pattern != ''";
|
|
805
1472
|
__decorate([
|
|
806
1473
|
CaptureSpan(),
|
|
807
1474
|
__metadata("design:type", Function),
|
|
@@ -850,5 +1517,47 @@ __decorate([
|
|
|
850
1517
|
__metadata("design:paramtypes", [Object]),
|
|
851
1518
|
__metadata("design:returntype", Promise)
|
|
852
1519
|
], LogAggregationService, "getDropFilterEstimate", null);
|
|
1520
|
+
__decorate([
|
|
1521
|
+
CaptureSpan(),
|
|
1522
|
+
__metadata("design:type", Function),
|
|
1523
|
+
__metadata("design:paramtypes", [Object]),
|
|
1524
|
+
__metadata("design:returntype", Promise)
|
|
1525
|
+
], LogAggregationService, "getTopErrorPatterns", null);
|
|
1526
|
+
__decorate([
|
|
1527
|
+
CaptureSpan(),
|
|
1528
|
+
__metadata("design:type", Function),
|
|
1529
|
+
__metadata("design:paramtypes", [Object]),
|
|
1530
|
+
__metadata("design:returntype", Promise)
|
|
1531
|
+
], LogAggregationService, "getErrorPatternTimeline", null);
|
|
1532
|
+
__decorate([
|
|
1533
|
+
CaptureSpan(),
|
|
1534
|
+
__metadata("design:type", Function),
|
|
1535
|
+
__metadata("design:paramtypes", [Object]),
|
|
1536
|
+
__metadata("design:returntype", Promise)
|
|
1537
|
+
], LogAggregationService, "getErrorPatternCoOccurrences", null);
|
|
1538
|
+
__decorate([
|
|
1539
|
+
CaptureSpan(),
|
|
1540
|
+
__metadata("design:type", Function),
|
|
1541
|
+
__metadata("design:paramtypes", [Object]),
|
|
1542
|
+
__metadata("design:returntype", Promise)
|
|
1543
|
+
], LogAggregationService, "getErrorPatternAttributes", null);
|
|
1544
|
+
__decorate([
|
|
1545
|
+
CaptureSpan(),
|
|
1546
|
+
__metadata("design:type", Function),
|
|
1547
|
+
__metadata("design:paramtypes", [Object]),
|
|
1548
|
+
__metadata("design:returntype", Promise)
|
|
1549
|
+
], LogAggregationService, "getErrorPatternResources", null);
|
|
1550
|
+
__decorate([
|
|
1551
|
+
CaptureSpan(),
|
|
1552
|
+
__metadata("design:type", Function),
|
|
1553
|
+
__metadata("design:paramtypes", [Object]),
|
|
1554
|
+
__metadata("design:returntype", Promise)
|
|
1555
|
+
], LogAggregationService, "getErrorPatternTraces", null);
|
|
1556
|
+
__decorate([
|
|
1557
|
+
CaptureSpan(),
|
|
1558
|
+
__metadata("design:type", Function),
|
|
1559
|
+
__metadata("design:paramtypes", [Object]),
|
|
1560
|
+
__metadata("design:returntype", Promise)
|
|
1561
|
+
], LogAggregationService, "getErrorPatternSamples", null);
|
|
853
1562
|
export default LogAggregationService;
|
|
854
1563
|
//# sourceMappingURL=LogAggregationService.js.map
|