@oneuptime/common 13.0.4 → 13.0.5
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/DatabaseModels/Index.ts +4 -0
- package/Models/DatabaseModels/RumApplication.ts +1 -1
- package/Models/DatabaseModels/SecurityEventConnection.ts +457 -0
- package/Models/DatabaseModels/SecurityEventConnectionRun.ts +263 -0
- package/Models/DatabaseModels/TelemetryIngestionKey.ts +2 -2
- package/Server/API/AIInvestigationAPI.ts +484 -24
- package/Server/API/GoogleSecOpsConnectionAPI.ts +249 -8
- package/Server/API/SecurityEventConnectionAPI.ts +250 -0
- package/Server/API/TelemetryAPI.ts +402 -265
- package/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.ts +99 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Middleware/TelemetryIngest.ts +101 -6
- package/Server/Services/ExceptionAggregationService.ts +7 -16
- package/Server/Services/GoogleSecOpsConnectionService.ts +15 -0
- package/Server/Services/Index.ts +4 -0
- package/Server/Services/InventoryItemService.ts +28 -0
- package/Server/Services/LogAggregationService.ts +17 -23
- package/Server/Services/MetricAggregationService.ts +4 -14
- package/Server/Services/SecurityEventConnectionRunService.ts +10 -0
- package/Server/Services/SecurityEventConnectionService.ts +538 -0
- package/Server/Services/TraceAggregationService.ts +77 -28
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +9 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +13 -1
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +15 -1
- package/Server/Utils/AI/SRE/InvestigationEvidence.ts +658 -0
- package/Server/Utils/AI/SRE/InvestigationReferences.ts +324 -0
- package/Server/Utils/AI/Toolbox/Index.ts +38 -0
- package/Server/Utils/AI/Toolbox/TimelineTools.ts +9 -2
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +80 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +5 -3
- package/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.ts +1108 -0
- package/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.ts +732 -0
- package/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.ts +495 -0
- package/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.ts +689 -0
- package/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.ts +767 -0
- package/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.ts +571 -0
- package/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.ts +827 -0
- package/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.ts +610 -0
- package/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.ts +549 -0
- package/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.ts +830 -0
- package/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.ts +684 -0
- package/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.ts +487 -0
- package/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.ts +778 -0
- package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.ts +1002 -0
- package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.ts +556 -0
- package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.ts +275 -0
- package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.ts +53 -0
- package/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.ts +709 -0
- package/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.ts +596 -0
- package/Server/Utils/SecurityEvent/Connectors/Types.ts +191 -0
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +353 -65
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.ts +777 -0
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +747 -148
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.ts +48 -2
- package/Server/Utils/SecurityEvent/SecurityEventDedupe.ts +81 -0
- package/Server/Utils/SessionReplay/SessionReplayReadService.ts +741 -40
- package/Server/Utils/StartServer.ts +10 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +8 -0
- package/Server/Utils/Telemetry/KubernetesResourceAttributes.ts +108 -0
- package/Server/Utils/Telemetry/ResourceEntityFilter.ts +174 -93
- package/Server/Utils/Telemetry/ResourceFacetPlanner.ts +251 -0
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +248 -413
- package/Server/Utils/Telemetry/ServiceDependencyDiscovery.ts +668 -0
- package/Server/Utils/Telemetry/TraceContextPropagation.ts +348 -0
- package/Server/Utils/Telemetry.ts +18 -0
- package/Tests/App/Dashboard/AIInvestigationHeaderStatus.test.tsx +413 -0
- package/Tests/App/Dashboard/AIRootCauseFeedItem.test.tsx +285 -0
- package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +242 -0
- package/Tests/App/Dashboard/AlertEpisodeViewFields.test.tsx +601 -15
- package/Tests/App/Dashboard/ChangeAlertStateAIHeader.test.tsx +835 -0
- package/Tests/App/Dashboard/CloudResourceTelemetryScope.test.ts +41 -0
- package/Tests/App/Dashboard/ConnectionTestModal.test.tsx +604 -0
- package/Tests/App/Dashboard/ConnectorTestReportView.test.tsx +738 -0
- package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +153 -6
- package/Tests/App/Dashboard/EntityDetailPanel.test.tsx +165 -0
- package/Tests/App/Dashboard/EpisodeChangeState.test.tsx +1069 -0
- package/Tests/App/Dashboard/EpisodeMembersCard.test.tsx +772 -0
- package/Tests/App/Dashboard/EventOverviewPages.test.tsx +2354 -0
- package/Tests/App/Dashboard/EventOverviewSkeleton.test.tsx +210 -0
- package/Tests/App/Dashboard/EventStatBar.test.tsx +392 -0
- package/Tests/App/Dashboard/EventStatusPanel.test.tsx +247 -0
- package/Tests/App/Dashboard/ExceptionAIAssistance.test.tsx +606 -0
- package/Tests/App/Dashboard/ExceptionBreadcrumbTimeline.test.tsx +273 -0
- package/Tests/App/Dashboard/ExceptionDetailSideMenu.test.tsx +176 -0
- package/Tests/App/Dashboard/ExceptionOverviewCards.test.tsx +366 -0
- package/Tests/App/Dashboard/ExceptionSignalPages.test.tsx +371 -0
- package/Tests/App/Dashboard/ExceptionStackFrameViewer.test.tsx +440 -0
- package/Tests/App/Dashboard/ExceptionSummary.test.tsx +381 -0
- package/Tests/App/Dashboard/ExceptionTriage.test.tsx +306 -0
- package/Tests/App/Dashboard/ExceptionsResourceFacets.test.tsx +604 -0
- package/Tests/App/Dashboard/ExceptionsViewerEntityChips.test.tsx +706 -0
- package/Tests/App/Dashboard/FeedOrdering.test.ts +32 -0
- package/Tests/App/Dashboard/GoogleSecOpsConnectionForm.test.tsx +838 -0
- package/Tests/App/Dashboard/GoogleSecOpsConnectionsErrors.test.tsx +18 -0
- package/Tests/App/Dashboard/GoogleSecOpsDiagnostics.test.tsx +297 -20
- package/Tests/App/Dashboard/IncidentEpisodeViewFields.test.tsx +618 -13
- package/Tests/App/Dashboard/InfrastructureExplorer.test.tsx +254 -207
- package/Tests/App/Dashboard/InfrastructureGraph.test.tsx +303 -135
- package/Tests/App/Dashboard/InvestigationEvidenceList.test.tsx +1251 -0
- package/Tests/App/Dashboard/InvestigationFeedRefresh.test.tsx +303 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +876 -8
- package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +35 -0
- package/Tests/App/Dashboard/InvestigationReferenceLink.test.tsx +177 -0
- package/Tests/App/Dashboard/InvestigationReportView.test.tsx +1295 -0
- package/Tests/App/Dashboard/KubernetesImageReferenceView.test.tsx +114 -0
- package/Tests/App/Dashboard/KubernetesLogsTabChips.test.tsx +285 -0
- package/Tests/App/Dashboard/LogsEntityChipNames.test.tsx +316 -0
- package/Tests/App/Dashboard/LogsResourceFacetChips.test.tsx +361 -0
- package/Tests/App/Dashboard/ProfileTableEntityNames.test.tsx +432 -0
- package/Tests/App/Dashboard/ProfileViewEntityName.test.tsx +250 -0
- package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +10 -0
- package/Tests/App/Dashboard/ResourceLogsTabsBareLayout.test.tsx +700 -0
- package/Tests/App/Dashboard/ResourcePageEntityNameProps.test.tsx +803 -0
- package/Tests/App/Dashboard/RumSessionReplaySideMenu.test.tsx +11 -1
- package/Tests/App/Dashboard/ScheduledMaintenanceChangeState.test.tsx +1026 -0
- package/Tests/App/Dashboard/ScheduledMaintenanceFeedRefresh.test.tsx +436 -0
- package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +1195 -0
- package/Tests/App/Dashboard/SecurityEventConnectionFormModal.test.tsx +1022 -0
- package/Tests/App/Dashboard/SecurityEventConnectionsTable.test.tsx +905 -0
- package/Tests/App/Dashboard/SecurityEventsSideMenu.test.tsx +247 -0
- package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +375 -274
- package/Tests/App/Dashboard/SessionReplayAuditTable.test.tsx +410 -0
- package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +774 -0
- package/Tests/App/Dashboard/TopErrorsPanelResourceNames.test.tsx +316 -0
- package/Tests/App/Dashboard/TopologyDataLoading.test.tsx +30 -0
- package/Tests/App/Dashboard/TopologyPageNavigation.test.tsx +88 -24
- package/Tests/App/Dashboard/TraceExplorer.test.tsx +1590 -0
- package/Tests/App/Dashboard/TraceWaterfall.test.tsx +488 -0
- package/Tests/App/Dashboard/TracesAnalyticsSeriesLabels.test.tsx +367 -0
- package/Tests/App/Dashboard/TracesEntityNames.test.tsx +585 -0
- package/Tests/App/Dashboard/TracesResourceFacets.test.tsx +613 -0
- package/Tests/App/Dashboard/UseServiceNames.test.tsx +359 -0
- package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +7 -0
- package/Tests/Models/InventoryItemNaming.test.ts +132 -16
- package/Tests/Models/SecurityDomainAccessControl.test.ts +61 -17
- package/Tests/Server/API/AIInvestigationAPI.test.ts +611 -2
- package/Tests/Server/API/AIInvestigationEvidenceAPI.test.ts +1098 -0
- package/Tests/Server/API/GoogleSecOpsConnectionAPI.test.ts +409 -0
- package/Tests/Server/API/SecurityEventConnectionAPI.test.ts +856 -0
- package/Tests/Server/API/SessionReplayAPI.test.ts +528 -1
- package/Tests/Server/API/TelemetryFacetsAPI.test.ts +810 -0
- package/Tests/Server/Infrastructure/E2EClickHouseFixtureAccess.test.ts +240 -0
- package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +229 -0
- package/Tests/Server/Services/InventoryItemDisplayName.test.ts +66 -0
- package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +28 -1
- package/Tests/Server/Services/SecurityEventConnectionService.test.ts +1233 -0
- package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +53 -0
- package/Tests/Server/Services/TelemetryResourceFacetCounting.test.ts +218 -0
- package/Tests/Server/Services/TelemetryResourceFacetFilters.test.ts +155 -1
- package/Tests/Server/Services/TraceAggregationExceptionScope.test.ts +142 -0
- package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +85 -24
- package/Tests/Server/Types/Database/Permissions/SecurityRoleAccess.test.ts +33 -0
- package/Tests/Server/Utils/AI/InvestigationEvidence.test.ts +1395 -0
- package/Tests/Server/Utils/AI/InvestigationReferences.test.ts +616 -0
- package/Tests/Server/Utils/AI/TimelineTools.test.ts +119 -0
- package/Tests/Server/Utils/AI/Toolbox/AIToolbox.test.ts +151 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +65 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGeneratorExceptionScope.test.ts +224 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +55 -2
- package/Tests/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.test.ts +1240 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.test.ts +1853 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.test.ts +1129 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.test.ts +1066 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.test.ts +1568 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.test.ts +930 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.test.ts +1409 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.test.ts +763 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.test.ts +1296 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.test.ts +1102 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.test.ts +1174 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.test.ts +1032 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.test.ts +1558 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.test.ts +3041 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.test.ts +1168 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.test.ts +906 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.test.ts +1068 -0
- package/Tests/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.test.ts +1004 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.test.ts +784 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.test.ts +113 -1
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +5 -1
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsDiagnostics.test.ts +93 -13
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsHttpIntegration.test.ts +23 -1
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +25 -3
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +22 -8
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +82 -16
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSearchDetections.test.ts +730 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsThreePassPoller.test.ts +1577 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayOriginAllowlist.test.ts +41 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayReadServiceQueries.test.ts +1453 -18
- package/Tests/Server/Utils/Telemetry/KubernetesResourceAttributes.test.ts +162 -0
- package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +460 -13
- package/Tests/Server/Utils/Telemetry/ResourceFacetPlanner.test.ts +678 -0
- package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +348 -2
- package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +525 -0
- package/Tests/Server/Utils/Telemetry/TraceContextPropagation.test.ts +420 -0
- package/Tests/Types/Rum/SessionReplayApiContracts.test.ts +73 -0
- package/Tests/Types/Rum/SessionReplayTransportContracts.test.ts +95 -0
- package/Tests/Types/SecurityEvent/Connectors/ConnectorDiagnostics.test.ts +82 -0
- package/Tests/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.test.ts +314 -0
- package/Tests/Types/Telemetry/ExceptionSpanScope.test.ts +89 -0
- package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +96 -0
- package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +304 -0
- package/Tests/UI/Components/ActiveFilterChipsLockedFilters.test.tsx +357 -0
- package/Tests/UI/Components/Card.test.tsx +312 -1
- package/Tests/UI/Components/CardModelDetailHeaderLayout.test.tsx +253 -0
- package/Tests/UI/Components/CardModelDetailRefresher.test.tsx +342 -0
- package/Tests/UI/Components/Checkbox.test.tsx +79 -0
- package/Tests/UI/Components/CopyTextButton.test.tsx +142 -0
- package/Tests/UI/Components/DetailCompactStyle.test.tsx +621 -0
- package/Tests/UI/Components/ErrorBoundary.test.tsx +60 -0
- package/Tests/UI/Components/FacetSections.test.tsx +581 -0
- package/Tests/UI/Components/FacetSidebarControls.test.tsx +812 -0
- package/Tests/UI/Components/FacetVisibility.test.ts +429 -0
- package/Tests/UI/Components/LockedFilterActions.test.tsx +396 -0
- package/Tests/UI/Components/LockedFilterChip.test.tsx +651 -0
- package/Tests/UI/Components/LogsEntityNames.test.ts +1769 -0
- package/Tests/UI/Components/LogsEntityNamesComponents.test.tsx +696 -0
- package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +600 -0
- package/Tests/UI/Components/LogsViewerEntityNames.test.tsx +713 -0
- package/Tests/UI/Components/MarkdownInlineReferences.test.tsx +2079 -0
- package/Tests/UI/Components/MemberRoleAssignment.test.tsx +446 -0
- package/Tests/UI/Components/ModelDetailRefetch.test.tsx +397 -0
- package/Tests/UI/Components/ModelListRefetch.test.tsx +233 -0
- package/Tests/UI/Components/ModelPageModelChange.test.tsx +409 -0
- package/Tests/UI/Components/PaginationIntegration.test.tsx +25 -0
- package/Tests/UI/Components/ResourceFacetConfigs.test.ts +172 -0
- package/Tests/UI/Components/SavedViewsSidebarIntegration.test.tsx +32 -14
- package/Tests/UI/Components/TableSortAndMobileColumns.test.tsx +44 -1
- package/Tests/UI/Components/TelemetryActiveFilterChipsLockedFilters.test.tsx +304 -0
- package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +718 -0
- package/Tests/UI/Monitor/EvaluationLogList.test.tsx +303 -0
- package/Tests/UI/Monitor/MonitorSummarySnapshotRender.test.tsx +55 -1
- package/Tests/UI/Rum/FidelityNotices.test.ts +22 -0
- package/Tests/UI/Rum/RecordingHealthCard.test.tsx +120 -136
- package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +988 -0
- package/Tests/UI/Rum/ReplayCard.test.tsx +32 -0
- package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +709 -12
- package/Tests/UI/Rum/ReplayHeader.test.tsx +50 -1
- package/Tests/UI/Rum/ReplayPinControl.test.tsx +67 -10
- package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +41 -12
- package/Tests/UI/Rum/ReplayStage.test.tsx +663 -1
- package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +173 -0
- package/Tests/UI/Rum/ReplayUi.test.tsx +189 -2
- package/Tests/UI/Rum/ReplayUserSessionsMenu.test.tsx +91 -0
- package/Tests/UI/Rum/SessionReplayEmptyState.test.tsx +1 -1
- package/Tests/UI/Rum/SessionReplaySettingsPolicyLoading.test.tsx +585 -0
- package/Tests/UI/Rum/SessionReplayTable.test.tsx +844 -51
- package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +29 -1
- package/Tests/UI/Telemetry/TelemetryDetailPanel.test.tsx +288 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +31 -1
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +6 -0
- package/Tests/UI/Utils/Clipboard.test.ts +154 -0
- package/Tests/UI/Utils/Navigation.test.ts +24 -0
- package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +2205 -0
- package/Tests/UI/Utils/Telemetry/UseTelemetryEntityNames.test.tsx +844 -0
- package/Tests/Utils/AI/InvestigationReport.test.ts +2430 -0
- package/Tests/Utils/APIOutgoingRequestTracer.test.ts +137 -0
- package/Tests/Utils/Rum/SessionReplayHealthDiagnosis.test.ts +40 -0
- package/Tests/Utils/Rum/SessionReplayRecordingEnded.test.ts +619 -0
- package/Tests/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.test.ts +631 -0
- package/Tests/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.test.ts +479 -0
- package/Tests/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.test.ts +507 -0
- package/Tests/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.test.ts +686 -0
- package/Tests/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.test.ts +474 -0
- package/Tests/Utils/SecurityEvent/Connectors/OktaNormalizer.test.ts +736 -0
- package/Tests/Utils/SecurityEvent/Connectors/SplunkNormalizer.test.ts +407 -0
- package/Tests/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.test.ts +129 -0
- package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +57 -1
- package/Tests/Utils/Telemetry/EntityRelationship.test.ts +36 -0
- package/Tests/Utils/Telemetry/LockedFilterSearch.test.ts +600 -0
- package/Tests/Utils/Telemetry/NetworkHost.test.ts +48 -0
- package/Tests/Utils/Telemetry/OriginAllowList.test.ts +154 -0
- package/Tests/Utils/Traces/CriticalPath.test.ts +25 -0
- package/Types/AI/AIChatTypes.ts +8 -0
- package/Types/AI/InvestigationEvidence.ts +96 -0
- package/Types/Monitor/MonitorEvaluationSummary.ts +5 -0
- package/Types/Permission.ts +2 -2
- package/Types/Rum/SessionReplay.ts +109 -0
- package/Types/Rum/SessionReplayApi.ts +31 -0
- package/Types/SecurityEvent/Connectors/ConnectorDiagnostics.ts +111 -0
- package/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.ts +87 -0
- package/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.ts +492 -0
- package/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.ts +41 -0
- package/Types/SecurityEvent/GoogleSecOpsDiagnostics.ts +56 -1
- package/Types/SecurityEvent/GoogleSecOpsRegion.ts +34 -0
- package/Types/Telemetry/EntityType.ts +14 -0
- package/Types/Telemetry/ExceptionSpanScope.ts +83 -0
- package/Types/Telemetry/LockedFilterDetail.ts +46 -0
- package/Types/Telemetry/ResourceEntityFacet.ts +17 -10
- package/Types/Telemetry/ResourceFacetCatalog.ts +171 -0
- package/UI/Components/Card/Card.tsx +118 -83
- package/UI/Components/Checkbox/Checkbox.tsx +8 -5
- package/UI/Components/CopyTextButton/CopyTextButton.tsx +7 -1
- package/UI/Components/CustomFields/CustomFieldsDetail.tsx +4 -1
- package/UI/Components/Detail/Detail.tsx +137 -22
- package/UI/Components/ErrorBoundary.tsx +38 -0
- package/UI/Components/LogsViewer/LogsEntityNames.ts +912 -0
- package/UI/Components/LogsViewer/LogsViewer.tsx +156 -77
- package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +28 -11
- package/UI/Components/LogsViewer/components/FacetSection.tsx +66 -79
- package/UI/Components/LogsViewer/components/FacetValueRow.tsx +17 -2
- package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +45 -5
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +100 -19
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +156 -39
- package/UI/Components/LogsViewer/components/LogsTable.tsx +30 -8
- package/UI/Components/LogsViewer/types.ts +6 -0
- package/UI/Components/Markdown.tsx/InlineReferences.tsx +628 -0
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +385 -312
- package/UI/Components/MemberRoleAssignment/MemberRoleAssignment.tsx +50 -22
- package/UI/Components/ModelDetail/CardModelDetail.tsx +15 -0
- package/UI/Components/ModelDetail/ModelDetail.tsx +64 -19
- package/UI/Components/ModelList/ModelList.tsx +33 -8
- package/UI/Components/Page/ModelPage.tsx +119 -54
- package/UI/Components/Table/Table.tsx +8 -0
- package/UI/Components/Table/TableRow.tsx +13 -5
- package/UI/Components/TelemetryViewer/FacetVisibility.ts +229 -0
- package/UI/Components/TelemetryViewer/ResourceFacetConfigs.ts +46 -0
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +11 -0
- package/UI/Components/TelemetryViewer/components/FacetSearchInput.tsx +79 -0
- package/UI/Components/TelemetryViewer/components/FacetSectionHeader.tsx +69 -0
- package/UI/Components/TelemetryViewer/components/FacetShowMoreButton.tsx +36 -0
- package/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.tsx +88 -0
- package/UI/Components/TelemetryViewer/components/LockedFilterActions.tsx +205 -0
- package/UI/Components/TelemetryViewer/components/LockedFilterChip.tsx +496 -0
- package/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.tsx +30 -10
- package/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.tsx +203 -10
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSection.tsx +60 -73
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +94 -7
- package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +17 -2
- package/UI/Components/TelemetryViewer/types.ts +19 -0
- package/UI/Components/TelemetryViewer/useFacetSearchExemptions.ts +158 -0
- package/UI/Components/TelemetryViewer/useFacetSectionSearch.ts +102 -0
- package/UI/Utils/Clipboard.ts +68 -2
- package/UI/Utils/Navigation.ts +17 -2
- package/UI/Utils/Telemetry/TelemetryEntityNames.ts +620 -0
- package/UI/Utils/Telemetry/UseTelemetryEntityNames.ts +151 -0
- package/Utils/AI/InvestigationReport.ts +1789 -0
- package/Utils/API.ts +90 -1
- package/Utils/Rum/SessionReplayHealth.ts +11 -0
- package/Utils/Rum/SessionReplayRecordingEnded.ts +134 -0
- package/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.ts +427 -0
- package/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.ts +197 -0
- package/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.ts +464 -0
- package/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.ts +567 -0
- package/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.ts +299 -0
- package/Utils/SecurityEvent/Connectors/OktaNormalizer.ts +467 -0
- package/Utils/SecurityEvent/Connectors/SplunkNormalizer.ts +439 -0
- package/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.ts +124 -12
- package/Utils/Telemetry/CrossSignalScope.ts +22 -8
- package/Utils/Telemetry/EntityRelationship.ts +8 -0
- package/Utils/Telemetry/LockedFilterSearch.ts +412 -0
- package/Utils/Telemetry/NetworkHost.ts +43 -0
- package/Utils/Telemetry/OriginAllowList.ts +139 -4
- package/Utils/Traces/CriticalPath.ts +10 -4
- package/build/dist/Models/DatabaseModels/Index.js +4 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RumApplication.js +1 -1
- package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
- package/build/dist/Models/DatabaseModels/SecurityEventConnection.js +490 -0
- package/build/dist/Models/DatabaseModels/SecurityEventConnection.js.map +1 -0
- package/build/dist/Models/DatabaseModels/SecurityEventConnectionRun.js +287 -0
- package/build/dist/Models/DatabaseModels/SecurityEventConnectionRun.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +2 -2
- package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +336 -27
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js +182 -7
- package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js.map +1 -1
- package/build/dist/Server/API/SecurityEventConnectionAPI.js +171 -0
- package/build/dist/Server/API/SecurityEventConnectionAPI.js.map +1 -0
- package/build/dist/Server/API/TelemetryAPI.js +248 -170
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.js +40 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +57 -4
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/ExceptionAggregationService.js +7 -16
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +8 -0
- package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +4 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/InventoryItemService.js +22 -0
- package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +8 -17
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +4 -14
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/SecurityEventConnectionRunService.js +9 -0
- package/build/dist/Server/Services/SecurityEventConnectionRunService.js.map +1 -0
- package/build/dist/Server/Services/SecurityEventConnectionService.js +356 -0
- package/build/dist/Server/Services/SecurityEventConnectionService.js.map +1 -0
- package/build/dist/Server/Services/TraceAggregationService.js +51 -25
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +9 -0
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +3 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +14 -7
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationEvidence.js +468 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationEvidence.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationReferences.js +230 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationReferences.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +32 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js +6 -2
- package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +59 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +5 -3
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.js +752 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.js +493 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.js +352 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.js +405 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.js +466 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.js +344 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.js +511 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.js +406 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.js +336 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.js +474 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.js +417 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.js +314 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.js +494 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.js +719 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.js +404 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.js +209 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.js +40 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.js +494 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.js +379 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Types.js +27 -0
- package/build/dist/Server/Utils/SecurityEvent/Connectors/Types.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +234 -61
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.js +537 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +572 -115
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js +35 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventDedupe.js +52 -0
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventDedupe.js.map +1 -0
- package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +521 -32
- package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +10 -0
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +8 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/KubernetesResourceAttributes.js +80 -0
- package/build/dist/Server/Utils/Telemetry/KubernetesResourceAttributes.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +122 -67
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceFacetPlanner.js +146 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetPlanner.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +174 -248
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +492 -0
- package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TraceContextPropagation.js +259 -0
- package/build/dist/Server/Utils/Telemetry/TraceContextPropagation.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry.js +11 -5
- package/build/dist/Server/Utils/Telemetry.js.map +1 -1
- package/build/dist/Types/AI/InvestigationEvidence.js +2 -0
- package/build/dist/Types/AI/InvestigationEvidence.js.map +1 -0
- package/build/dist/Types/Permission.js +2 -2
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplay.js +95 -0
- package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplayApi.js.map +1 -1
- package/build/dist/Types/SecurityEvent/Connectors/ConnectorDiagnostics.js +18 -0
- package/build/dist/Types/SecurityEvent/Connectors/ConnectorDiagnostics.js.map +1 -0
- package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.js +2 -0
- package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.js.map +1 -0
- package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.js +374 -0
- package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.js.map +1 -0
- package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.js +35 -0
- package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.js.map +1 -0
- package/build/dist/Types/SecurityEvent/GoogleSecOpsRegion.js +35 -0
- package/build/dist/Types/SecurityEvent/GoogleSecOpsRegion.js.map +1 -0
- package/build/dist/Types/Telemetry/EntityType.js +14 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
- package/build/dist/Types/Telemetry/ExceptionSpanScope.js +59 -0
- package/build/dist/Types/Telemetry/ExceptionSpanScope.js.map +1 -0
- package/build/dist/Types/Telemetry/LockedFilterDetail.js +16 -0
- package/build/dist/Types/Telemetry/LockedFilterDetail.js.map +1 -0
- package/build/dist/Types/Telemetry/ResourceEntityFacet.js +16 -10
- package/build/dist/Types/Telemetry/ResourceEntityFacet.js.map +1 -1
- package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +119 -0
- package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -0
- package/build/dist/UI/Components/Card/Card.js +34 -17
- package/build/dist/UI/Components/Card/Card.js.map +1 -1
- package/build/dist/UI/Components/Checkbox/Checkbox.js +6 -4
- package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
- package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js +5 -1
- package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js.map +1 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +1 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
- package/build/dist/UI/Components/Detail/Detail.js +63 -13
- package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
- package/build/dist/UI/Components/ErrorBoundary.js +34 -0
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsEntityNames.js +535 -0
- package/build/dist/UI/Components/LogsViewer/LogsEntityNames.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +117 -57
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +5 -7
- package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/FacetSection.js +31 -44
- package/build/dist/UI/Components/LogsViewer/components/FacetSection.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +17 -3
- package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +19 -3
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +64 -18
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +100 -41
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +13 -5
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/InlineReferences.js +403 -0
- package/build/dist/UI/Components/Markdown.tsx/InlineReferences.js.map +1 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +197 -179
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js +30 -21
- package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +12 -0
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/ModelDetail.js +46 -12
- package/build/dist/UI/Components/ModelDetail/ModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelList/ModelList.js +26 -7
- package/build/dist/UI/Components/ModelList/ModelList.js.map +1 -1
- package/build/dist/UI/Components/Page/ModelPage.js +62 -34
- package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
- package/build/dist/UI/Components/Table/Table.js +3 -1
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +8 -1
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js +111 -0
- package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/ResourceFacetConfigs.js +22 -0
- package/build/dist/UI/Components/TelemetryViewer/ResourceFacetConfigs.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/FacetSearchInput.js +36 -0
- package/build/dist/UI/Components/TelemetryViewer/components/FacetSearchInput.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/FacetSectionHeader.js +21 -0
- package/build/dist/UI/Components/TelemetryViewer/components/FacetSectionHeader.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/FacetShowMoreButton.js +14 -0
- package/build/dist/UI/Components/TelemetryViewer/components/FacetShowMoreButton.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.js +27 -0
- package/build/dist/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterActions.js +88 -0
- package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterActions.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js +228 -0
- package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.js +6 -6
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.js +111 -12
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js +27 -40
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +70 -10
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +17 -3
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/types.js +0 -4
- package/build/dist/UI/Components/TelemetryViewer/types.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/useFacetSearchExemptions.js +70 -0
- package/build/dist/UI/Components/TelemetryViewer/useFacetSearchExemptions.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/useFacetSectionSearch.js +52 -0
- package/build/dist/UI/Components/TelemetryViewer/useFacetSectionSearch.js.map +1 -0
- package/build/dist/UI/Utils/Clipboard.js +59 -2
- package/build/dist/UI/Utils/Clipboard.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +11 -2
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +471 -0
- package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -0
- package/build/dist/UI/Utils/Telemetry/UseTelemetryEntityNames.js +113 -0
- package/build/dist/UI/Utils/Telemetry/UseTelemetryEntityNames.js.map +1 -0
- package/build/dist/Utils/AI/InvestigationReport.js +1241 -0
- package/build/dist/Utils/AI/InvestigationReport.js.map +1 -0
- package/build/dist/Utils/API.js +25 -0
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Rum/SessionReplayHealth.js +10 -0
- package/build/dist/Utils/Rum/SessionReplayHealth.js.map +1 -1
- package/build/dist/Utils/Rum/SessionReplayRecordingEnded.js +54 -0
- package/build/dist/Utils/Rum/SessionReplayRecordingEnded.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.js +311 -0
- package/build/dist/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.js +150 -0
- package/build/dist/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.js +328 -0
- package/build/dist/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.js +405 -0
- package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.js +212 -0
- package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/OktaNormalizer.js +351 -0
- package/build/dist/Utils/SecurityEvent/Connectors/OktaNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/Connectors/SplunkNormalizer.js +348 -0
- package/build/dist/Utils/SecurityEvent/Connectors/SplunkNormalizer.js.map +1 -0
- package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js +103 -10
- package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js.map +1 -1
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +16 -5
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/build/dist/Utils/Telemetry/EntityRelationship.js +7 -0
- package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
- package/build/dist/Utils/Telemetry/LockedFilterSearch.js +277 -0
- package/build/dist/Utils/Telemetry/LockedFilterSearch.js.map +1 -0
- package/build/dist/Utils/Telemetry/NetworkHost.js +39 -0
- package/build/dist/Utils/Telemetry/NetworkHost.js.map +1 -0
- package/build/dist/Utils/Telemetry/OriginAllowList.js +105 -4
- package/build/dist/Utils/Telemetry/OriginAllowList.js.map +1 -1
- package/build/dist/Utils/Traces/CriticalPath.js +9 -4
- package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
- package/package.json +1 -1
- package/Tests/UI/Rum/RecordingHealthStrip.test.tsx +0 -600
- package/UI/Components/GanttChart/Bar/BarLabel.tsx +0 -17
- package/UI/Components/GanttChart/Bar/Index.tsx +0 -149
- package/UI/Components/GanttChart/ChartContainer.tsx +0 -50
- package/UI/Components/GanttChart/Index.tsx +0 -90
- package/UI/Components/GanttChart/Row/Index.tsx +0 -22
- package/UI/Components/GanttChart/Row/Row.tsx +0 -231
- package/UI/Components/GanttChart/Row/RowLabel.tsx +0 -30
- package/UI/Components/GanttChart/Rows.tsx +0 -59
- package/UI/Components/GanttChart/Timeline/Index.tsx +0 -46
- package/UI/Components/GanttChart/Timeline/TimelineInterval.tsx +0 -33
- package/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.tsx +0 -43
- package/build/dist/UI/Components/GanttChart/Bar/BarLabel.js +0 -8
- package/build/dist/UI/Components/GanttChart/Bar/BarLabel.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Bar/Index.js +0 -77
- package/build/dist/UI/Components/GanttChart/Bar/Index.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/ChartContainer.js +0 -33
- package/build/dist/UI/Components/GanttChart/ChartContainer.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Index.js +0 -39
- package/build/dist/UI/Components/GanttChart/Index.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Row/Index.js +0 -7
- package/build/dist/UI/Components/GanttChart/Row/Index.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Row/Row.js +0 -106
- package/build/dist/UI/Components/GanttChart/Row/Row.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Row/RowLabel.js +0 -10
- package/build/dist/UI/Components/GanttChart/Row/RowLabel.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Rows.js +0 -19
- package/build/dist/UI/Components/GanttChart/Rows.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Timeline/Index.js +0 -16
- package/build/dist/UI/Components/GanttChart/Timeline/Index.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Timeline/TimelineInterval.js +0 -13
- package/build/dist/UI/Components/GanttChart/Timeline/TimelineInterval.js.map +0 -1
- package/build/dist/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.js +0 -13
- package/build/dist/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.js.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SecurityConnectorCheck,
|
|
3
|
+
SecurityConnectorSample,
|
|
4
|
+
} from "./ConnectorDiagnostics";
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* Run bookkeeping for the Security Event Connections framework. Mirrors
|
|
8
|
+
* GoogleSecOpsDiagnostics.ts on purpose: the diagnostics UI and the run
|
|
9
|
+
* executor treat the two families the same way, and a customer who has
|
|
10
|
+
* both should not have to learn two vocabularies.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export type SecurityEventConnectionRunType =
|
|
14
|
+
| "test"
|
|
15
|
+
| "poll"
|
|
16
|
+
| "preview"
|
|
17
|
+
| "backfill";
|
|
18
|
+
|
|
19
|
+
export type SecurityEventConnectionRunStatus =
|
|
20
|
+
| "queued"
|
|
21
|
+
| "running"
|
|
22
|
+
| "success"
|
|
23
|
+
| "empty"
|
|
24
|
+
| "partial"
|
|
25
|
+
| "failed";
|
|
26
|
+
|
|
27
|
+
export interface SecurityEventConnectionRunOptions {
|
|
28
|
+
type: SecurityEventConnectionRunType;
|
|
29
|
+
runId?: string | undefined;
|
|
30
|
+
startTime?: string | undefined;
|
|
31
|
+
endTime?: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface SecurityEventConnectionRunResult {
|
|
35
|
+
type: SecurityEventConnectionRunType;
|
|
36
|
+
provider: string;
|
|
37
|
+
runId?: string | undefined;
|
|
38
|
+
status: SecurityEventConnectionRunStatus;
|
|
39
|
+
startedAt: string;
|
|
40
|
+
completedAt: string;
|
|
41
|
+
durationMs: number;
|
|
42
|
+
windowStart: string;
|
|
43
|
+
windowEnd: string;
|
|
44
|
+
// Records returned by the source before normalization.
|
|
45
|
+
fetchedCount: number;
|
|
46
|
+
// Rows written to the security event store.
|
|
47
|
+
ingestedCount: number;
|
|
48
|
+
// Records already stored under the same source identifier.
|
|
49
|
+
duplicateCount: number;
|
|
50
|
+
// Records the connector did not recognize as events.
|
|
51
|
+
rejectedCount: number;
|
|
52
|
+
// Records that failed normalization.
|
|
53
|
+
failedCount: number;
|
|
54
|
+
// False when a bound or a partial response left part of the window unread.
|
|
55
|
+
complete: boolean;
|
|
56
|
+
requestCount: number;
|
|
57
|
+
warnings: Array<string>;
|
|
58
|
+
samples: Array<SecurityConnectorSample>;
|
|
59
|
+
checks: Array<SecurityConnectorCheck>;
|
|
60
|
+
eventTimeStart?: string | undefined;
|
|
61
|
+
eventTimeEnd?: string | undefined;
|
|
62
|
+
error?: string | undefined;
|
|
63
|
+
/*
|
|
64
|
+
* Adaptive catch-up, scheduled polls only. chunkMinutes is the minutes of
|
|
65
|
+
* creation time this poll read past the saved cursor (from the window
|
|
66
|
+
* start when there was no usable cursor); the overlap before the cursor is
|
|
67
|
+
* not counted. nextChunkMinutes is the chunk the next scheduled poll is
|
|
68
|
+
* given. A poll that could not read its window halves it (or, when the
|
|
69
|
+
* source reads in ascending creation order, resumes from the last record
|
|
70
|
+
* read); a complete poll never shrinks it and doubles it back towards the
|
|
71
|
+
* 24 hour maximum; a failed poll keeps it. forcedAdvance records a one
|
|
72
|
+
* minute window that still could not be read completely and was skipped
|
|
73
|
+
* past so polling keeps moving.
|
|
74
|
+
*/
|
|
75
|
+
chunkMinutes?: number | undefined;
|
|
76
|
+
nextChunkMinutes?: number | undefined;
|
|
77
|
+
forcedAdvance?: boolean | undefined;
|
|
78
|
+
/*
|
|
79
|
+
* ISO time no scheduled window may start before. Set to the window end of
|
|
80
|
+
* a forced advance and carried forward while cursor minus the provider's
|
|
81
|
+
* overlap is still earlier than it: without it, a 15 or 30 minute overlap
|
|
82
|
+
* drags every following window back over the minute that overflowed,
|
|
83
|
+
* each of those polls overflows on the same records, and polling skips
|
|
84
|
+
* one more minute per poll for the whole overlap.
|
|
85
|
+
*/
|
|
86
|
+
overlapFloor?: string | undefined;
|
|
87
|
+
}
|
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
import IconProp from "../../Icon/IconProp";
|
|
2
|
+
import SecurityEventConnectorProvider from "./SecurityEventConnectorProvider";
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* Everything the product needs to know about a provider that is NOT code:
|
|
6
|
+
* what to call it, which fields its connection form asks for, which of
|
|
7
|
+
* those are secrets, where its docs live, and how it attributes the
|
|
8
|
+
* events it imports. Shared by the dashboard (form generation, table
|
|
9
|
+
* labels, provider picker), the server (validation of config and secrets
|
|
10
|
+
* on create/update) and the docs tests (every provider has a page that
|
|
11
|
+
* names every field).
|
|
12
|
+
*
|
|
13
|
+
* Field keys are the keys stored in SecurityEventConnection.config
|
|
14
|
+
* (non-secret, readable) and SecurityEventConnection.secrets (encrypted,
|
|
15
|
+
* write-only) respectively. Connectors read their settings by these keys.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export type SecurityEventConnectorCategory =
|
|
19
|
+
| "SIEM"
|
|
20
|
+
| "EDR / XDR"
|
|
21
|
+
| "Cloud security"
|
|
22
|
+
| "Identity";
|
|
23
|
+
|
|
24
|
+
export const SecurityEventConnectorCategories: Array<SecurityEventConnectorCategory> =
|
|
25
|
+
["SIEM", "EDR / XDR", "Cloud security", "Identity"];
|
|
26
|
+
|
|
27
|
+
export type ConnectorFieldType =
|
|
28
|
+
| "text"
|
|
29
|
+
| "url"
|
|
30
|
+
| "password"
|
|
31
|
+
| "number"
|
|
32
|
+
| "toggle"
|
|
33
|
+
| "dropdown";
|
|
34
|
+
|
|
35
|
+
export interface ConnectorFieldOption {
|
|
36
|
+
label: string;
|
|
37
|
+
value: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface ConnectorField {
|
|
41
|
+
key: string;
|
|
42
|
+
title: string;
|
|
43
|
+
description: string;
|
|
44
|
+
type: ConnectorFieldType;
|
|
45
|
+
required: boolean;
|
|
46
|
+
placeholder?: string | undefined;
|
|
47
|
+
options?: Array<ConnectorFieldOption> | undefined;
|
|
48
|
+
defaultValue?: string | boolean | number | undefined;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface SecurityEventConnectorDefinition {
|
|
52
|
+
provider: SecurityEventConnectorProvider;
|
|
53
|
+
title: string;
|
|
54
|
+
// Stored on every imported event; also the dedupe scope.
|
|
55
|
+
vendorName: string;
|
|
56
|
+
productName: string;
|
|
57
|
+
description: string;
|
|
58
|
+
category: SecurityEventConnectorCategory;
|
|
59
|
+
icon: IconProp;
|
|
60
|
+
// Docs path under /docs, e.g. "/docs/integrations/microsoft-sentinel".
|
|
61
|
+
docsPath: string;
|
|
62
|
+
defaultPollIntervalInMinutes: number;
|
|
63
|
+
configFields: Array<ConnectorField>;
|
|
64
|
+
secretFields: Array<ConnectorField>;
|
|
65
|
+
/*
|
|
66
|
+
* Whether the provider distinguishes alerting from non-alerting records
|
|
67
|
+
* so the "alerts only" toggle on the connection means something.
|
|
68
|
+
*/
|
|
69
|
+
supportsAlertingOnlyToggle: boolean;
|
|
70
|
+
// What one imported record is, in the customer's own vocabulary.
|
|
71
|
+
importedRecordName: string;
|
|
72
|
+
/*
|
|
73
|
+
* How far before the saved cursor each poll starts. The creation
|
|
74
|
+
* timestamp a source filters on is not always the moment the record
|
|
75
|
+
* became readable: AWS Security Hub filters on the provider's CreatedAt,
|
|
76
|
+
* which can precede delivery to Security Hub by many minutes, and Okta
|
|
77
|
+
* documents that bounded System Log requests can omit delayed events.
|
|
78
|
+
* Records re-read inside the overlap are dropped by the id dedupe, so a
|
|
79
|
+
* generous overlap costs requests, never duplicates.
|
|
80
|
+
*/
|
|
81
|
+
cursorOverlapInMinutes: number;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const MICROSOFT_CLOUD_OPTIONS: Array<ConnectorFieldOption> = [
|
|
85
|
+
{ label: "Azure public cloud", value: "public" },
|
|
86
|
+
{ label: "Azure Government (US)", value: "usgov" },
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
export const SecurityEventConnectorCatalog: Array<SecurityEventConnectorDefinition> =
|
|
90
|
+
[
|
|
91
|
+
{
|
|
92
|
+
provider: SecurityEventConnectorProvider.MicrosoftSentinel,
|
|
93
|
+
title: "Microsoft Sentinel",
|
|
94
|
+
vendorName: "Microsoft",
|
|
95
|
+
productName: "Microsoft Sentinel",
|
|
96
|
+
description:
|
|
97
|
+
"Import Sentinel incidents from a Log Analytics workspace as Incident Finding events.",
|
|
98
|
+
category: "SIEM",
|
|
99
|
+
icon: IconProp.ShieldCheck,
|
|
100
|
+
docsPath: "/docs/integrations/microsoft-sentinel",
|
|
101
|
+
defaultPollIntervalInMinutes: 5,
|
|
102
|
+
supportsAlertingOnlyToggle: false,
|
|
103
|
+
importedRecordName: "incident",
|
|
104
|
+
cursorOverlapInMinutes: 1,
|
|
105
|
+
configFields: [
|
|
106
|
+
{
|
|
107
|
+
key: "tenantId",
|
|
108
|
+
title: "Directory (tenant) ID",
|
|
109
|
+
description:
|
|
110
|
+
"The Microsoft Entra tenant that owns the app registration.",
|
|
111
|
+
type: "text",
|
|
112
|
+
required: true,
|
|
113
|
+
placeholder: "00000000-0000-0000-0000-000000000000",
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
key: "clientId",
|
|
117
|
+
title: "Application (client) ID",
|
|
118
|
+
description:
|
|
119
|
+
"The app registration granted the Microsoft Sentinel Reader role on the workspace.",
|
|
120
|
+
type: "text",
|
|
121
|
+
required: true,
|
|
122
|
+
placeholder: "00000000-0000-0000-0000-000000000000",
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
key: "subscriptionId",
|
|
126
|
+
title: "Subscription ID",
|
|
127
|
+
description: "The Azure subscription that contains the workspace.",
|
|
128
|
+
type: "text",
|
|
129
|
+
required: true,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
key: "resourceGroup",
|
|
133
|
+
title: "Resource group",
|
|
134
|
+
description: "The resource group of the Log Analytics workspace.",
|
|
135
|
+
type: "text",
|
|
136
|
+
required: true,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
key: "workspaceName",
|
|
140
|
+
title: "Workspace name",
|
|
141
|
+
description:
|
|
142
|
+
"The Log Analytics workspace Microsoft Sentinel is enabled on.",
|
|
143
|
+
type: "text",
|
|
144
|
+
required: true,
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
key: "cloud",
|
|
148
|
+
title: "Cloud",
|
|
149
|
+
description: "Which Azure cloud hosts the tenant and workspace.",
|
|
150
|
+
type: "dropdown",
|
|
151
|
+
required: true,
|
|
152
|
+
options: MICROSOFT_CLOUD_OPTIONS,
|
|
153
|
+
defaultValue: "public",
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
secretFields: [
|
|
157
|
+
{
|
|
158
|
+
key: "clientSecret",
|
|
159
|
+
title: "Client secret",
|
|
160
|
+
description:
|
|
161
|
+
"A client secret of the app registration. Encrypted at rest and never returned by the API.",
|
|
162
|
+
type: "password",
|
|
163
|
+
required: true,
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
provider: SecurityEventConnectorProvider.MicrosoftDefenderXdr,
|
|
169
|
+
title: "Microsoft Defender XDR",
|
|
170
|
+
vendorName: "Microsoft",
|
|
171
|
+
productName: "Microsoft Defender XDR",
|
|
172
|
+
description:
|
|
173
|
+
"Import Defender XDR alerts through the Microsoft Graph security API as Detection Finding events.",
|
|
174
|
+
category: "EDR / XDR",
|
|
175
|
+
icon: IconProp.ShieldExclamation,
|
|
176
|
+
docsPath: "/docs/integrations/microsoft-defender-xdr",
|
|
177
|
+
defaultPollIntervalInMinutes: 5,
|
|
178
|
+
supportsAlertingOnlyToggle: false,
|
|
179
|
+
importedRecordName: "alert",
|
|
180
|
+
cursorOverlapInMinutes: 1,
|
|
181
|
+
configFields: [
|
|
182
|
+
{
|
|
183
|
+
key: "tenantId",
|
|
184
|
+
title: "Directory (tenant) ID",
|
|
185
|
+
description:
|
|
186
|
+
"The Microsoft Entra tenant that owns the app registration.",
|
|
187
|
+
type: "text",
|
|
188
|
+
required: true,
|
|
189
|
+
placeholder: "00000000-0000-0000-0000-000000000000",
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
key: "clientId",
|
|
193
|
+
title: "Application (client) ID",
|
|
194
|
+
description:
|
|
195
|
+
"The app registration granted the SecurityAlert.Read.All application permission.",
|
|
196
|
+
type: "text",
|
|
197
|
+
required: true,
|
|
198
|
+
placeholder: "00000000-0000-0000-0000-000000000000",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
key: "cloud",
|
|
202
|
+
title: "Cloud",
|
|
203
|
+
description: "Which Azure cloud hosts the tenant.",
|
|
204
|
+
type: "dropdown",
|
|
205
|
+
required: true,
|
|
206
|
+
options: MICROSOFT_CLOUD_OPTIONS,
|
|
207
|
+
defaultValue: "public",
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
secretFields: [
|
|
211
|
+
{
|
|
212
|
+
key: "clientSecret",
|
|
213
|
+
title: "Client secret",
|
|
214
|
+
description:
|
|
215
|
+
"A client secret of the app registration. Encrypted at rest and never returned by the API.",
|
|
216
|
+
type: "password",
|
|
217
|
+
required: true,
|
|
218
|
+
},
|
|
219
|
+
],
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
provider: SecurityEventConnectorProvider.CrowdStrikeFalcon,
|
|
223
|
+
title: "CrowdStrike Falcon",
|
|
224
|
+
vendorName: "CrowdStrike",
|
|
225
|
+
productName: "Falcon",
|
|
226
|
+
description:
|
|
227
|
+
"Import Falcon alerts (endpoint, identity and cloud detections) as Detection Finding events.",
|
|
228
|
+
category: "EDR / XDR",
|
|
229
|
+
icon: IconProp.Bolt,
|
|
230
|
+
docsPath: "/docs/integrations/crowdstrike-falcon",
|
|
231
|
+
defaultPollIntervalInMinutes: 5,
|
|
232
|
+
supportsAlertingOnlyToggle: false,
|
|
233
|
+
importedRecordName: "alert",
|
|
234
|
+
cursorOverlapInMinutes: 1,
|
|
235
|
+
configFields: [
|
|
236
|
+
{
|
|
237
|
+
key: "clientId",
|
|
238
|
+
title: "Client ID",
|
|
239
|
+
description:
|
|
240
|
+
"The Falcon API client ID. The client needs the Alerts: Read scope.",
|
|
241
|
+
type: "text",
|
|
242
|
+
required: true,
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
key: "cloud",
|
|
246
|
+
title: "Falcon cloud",
|
|
247
|
+
description:
|
|
248
|
+
"The CrowdStrike cloud your customer ID (CID) is hosted in; it decides the API hostname.",
|
|
249
|
+
type: "dropdown",
|
|
250
|
+
required: true,
|
|
251
|
+
options: [
|
|
252
|
+
{ label: "US-1 (api.crowdstrike.com)", value: "us-1" },
|
|
253
|
+
{ label: "US-2 (api.us-2.crowdstrike.com)", value: "us-2" },
|
|
254
|
+
{ label: "EU-1 (api.eu-1.crowdstrike.com)", value: "eu-1" },
|
|
255
|
+
{
|
|
256
|
+
label: "US-GOV-1 (api.laggar.gcw.crowdstrike.com)",
|
|
257
|
+
value: "us-gov-1",
|
|
258
|
+
},
|
|
259
|
+
],
|
|
260
|
+
defaultValue: "us-1",
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
secretFields: [
|
|
264
|
+
{
|
|
265
|
+
key: "clientSecret",
|
|
266
|
+
title: "Client secret",
|
|
267
|
+
description:
|
|
268
|
+
"The Falcon API client secret. Encrypted at rest and never returned by the API.",
|
|
269
|
+
type: "password",
|
|
270
|
+
required: true,
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
provider: SecurityEventConnectorProvider.SplunkEnterpriseSecurity,
|
|
276
|
+
title: "Splunk Enterprise Security",
|
|
277
|
+
vendorName: "Splunk",
|
|
278
|
+
productName: "Splunk Enterprise Security",
|
|
279
|
+
description:
|
|
280
|
+
"Import notable events from Splunk Enterprise Security (or any saved search) as Detection Finding events.",
|
|
281
|
+
category: "SIEM",
|
|
282
|
+
icon: IconProp.Search,
|
|
283
|
+
docsPath: "/docs/integrations/splunk",
|
|
284
|
+
defaultPollIntervalInMinutes: 5,
|
|
285
|
+
supportsAlertingOnlyToggle: false,
|
|
286
|
+
importedRecordName: "notable event",
|
|
287
|
+
cursorOverlapInMinutes: 1,
|
|
288
|
+
configFields: [
|
|
289
|
+
{
|
|
290
|
+
key: "url",
|
|
291
|
+
title: "Splunk management URL",
|
|
292
|
+
description:
|
|
293
|
+
"The REST API base URL of the search head, usually on port 8089.",
|
|
294
|
+
type: "url",
|
|
295
|
+
required: true,
|
|
296
|
+
placeholder: "https://splunk.example.com:8089",
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
key: "searchString",
|
|
300
|
+
title: "Search",
|
|
301
|
+
description:
|
|
302
|
+
"The SPL that selects the events to import. The connector adds the time range itself; do not include earliest or latest.",
|
|
303
|
+
type: "text",
|
|
304
|
+
required: false,
|
|
305
|
+
placeholder: "index=notable",
|
|
306
|
+
defaultValue: "index=notable",
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
key: "username",
|
|
310
|
+
title: "Username",
|
|
311
|
+
description:
|
|
312
|
+
"Only when authenticating with a password instead of an authentication token.",
|
|
313
|
+
type: "text",
|
|
314
|
+
required: false,
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
secretFields: [
|
|
318
|
+
{
|
|
319
|
+
key: "apiToken",
|
|
320
|
+
title: "Authentication token",
|
|
321
|
+
description:
|
|
322
|
+
"A Splunk authentication token (Settings > Tokens). Leave empty when using username and password.",
|
|
323
|
+
type: "password",
|
|
324
|
+
required: false,
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
key: "password",
|
|
328
|
+
title: "Password",
|
|
329
|
+
description:
|
|
330
|
+
"The password for the username above. Leave empty when using an authentication token.",
|
|
331
|
+
type: "password",
|
|
332
|
+
required: false,
|
|
333
|
+
},
|
|
334
|
+
],
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
provider: SecurityEventConnectorProvider.ElasticSecurity,
|
|
338
|
+
title: "Elastic Security",
|
|
339
|
+
vendorName: "Elastic",
|
|
340
|
+
productName: "Elastic Security",
|
|
341
|
+
description:
|
|
342
|
+
"Import detection alerts from Elastic Security through the Kibana detections API as Detection Finding events.",
|
|
343
|
+
category: "SIEM",
|
|
344
|
+
icon: IconProp.ShieldCheck,
|
|
345
|
+
docsPath: "/docs/integrations/elastic-security",
|
|
346
|
+
defaultPollIntervalInMinutes: 5,
|
|
347
|
+
supportsAlertingOnlyToggle: false,
|
|
348
|
+
importedRecordName: "alert",
|
|
349
|
+
cursorOverlapInMinutes: 1,
|
|
350
|
+
configFields: [
|
|
351
|
+
{
|
|
352
|
+
key: "kibanaUrl",
|
|
353
|
+
title: "Kibana URL",
|
|
354
|
+
description: "The base URL of Kibana, without a trailing path.",
|
|
355
|
+
type: "url",
|
|
356
|
+
required: true,
|
|
357
|
+
placeholder: "https://kibana.example.com",
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
key: "space",
|
|
361
|
+
title: "Kibana space",
|
|
362
|
+
description:
|
|
363
|
+
"The space that holds the detection rules. Leave empty for the default space.",
|
|
364
|
+
type: "text",
|
|
365
|
+
required: false,
|
|
366
|
+
},
|
|
367
|
+
],
|
|
368
|
+
secretFields: [
|
|
369
|
+
{
|
|
370
|
+
key: "apiKey",
|
|
371
|
+
title: "API key",
|
|
372
|
+
description:
|
|
373
|
+
"A Kibana API key (the base64 encoded id:key value) with read access to detection alerts. Encrypted at rest and never returned by the API.",
|
|
374
|
+
type: "password",
|
|
375
|
+
required: true,
|
|
376
|
+
},
|
|
377
|
+
],
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
provider: SecurityEventConnectorProvider.AwsSecurityHub,
|
|
381
|
+
title: "AWS Security Hub",
|
|
382
|
+
vendorName: "Amazon Web Services",
|
|
383
|
+
productName: "AWS Security Hub",
|
|
384
|
+
description:
|
|
385
|
+
"Import Security Hub findings (GuardDuty, Inspector, Macie, IAM Access Analyzer and partner products) as Detection and Compliance Finding events.",
|
|
386
|
+
category: "Cloud security",
|
|
387
|
+
icon: IconProp.Cloud,
|
|
388
|
+
docsPath: "/docs/integrations/aws-security-hub",
|
|
389
|
+
defaultPollIntervalInMinutes: 5,
|
|
390
|
+
supportsAlertingOnlyToggle: false,
|
|
391
|
+
importedRecordName: "finding",
|
|
392
|
+
cursorOverlapInMinutes: 30,
|
|
393
|
+
configFields: [
|
|
394
|
+
{
|
|
395
|
+
key: "region",
|
|
396
|
+
title: "Region",
|
|
397
|
+
description:
|
|
398
|
+
"The AWS region of the Security Hub administrator or aggregation account.",
|
|
399
|
+
type: "text",
|
|
400
|
+
required: true,
|
|
401
|
+
placeholder: "us-east-1",
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
key: "accessKeyId",
|
|
405
|
+
title: "Access key ID",
|
|
406
|
+
description:
|
|
407
|
+
"An IAM access key with the securityhub:GetFindings permission.",
|
|
408
|
+
type: "text",
|
|
409
|
+
required: true,
|
|
410
|
+
placeholder: "AKIA...",
|
|
411
|
+
},
|
|
412
|
+
],
|
|
413
|
+
secretFields: [
|
|
414
|
+
{
|
|
415
|
+
key: "secretAccessKey",
|
|
416
|
+
title: "Secret access key",
|
|
417
|
+
description:
|
|
418
|
+
"The secret access key for the access key ID above. Encrypted at rest and never returned by the API.",
|
|
419
|
+
type: "password",
|
|
420
|
+
required: true,
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
key: "sessionToken",
|
|
424
|
+
title: "Session token",
|
|
425
|
+
description:
|
|
426
|
+
"Only for temporary credentials. Leave empty for a long-lived access key.",
|
|
427
|
+
type: "password",
|
|
428
|
+
required: false,
|
|
429
|
+
},
|
|
430
|
+
],
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
provider: SecurityEventConnectorProvider.OktaSystemLog,
|
|
434
|
+
title: "Okta System Log",
|
|
435
|
+
vendorName: "Okta",
|
|
436
|
+
productName: "Okta System Log",
|
|
437
|
+
description:
|
|
438
|
+
"Import authentication, MFA, account and policy events from the Okta System Log as OCSF identity events.",
|
|
439
|
+
category: "Identity",
|
|
440
|
+
icon: IconProp.Key,
|
|
441
|
+
docsPath: "/docs/integrations/okta",
|
|
442
|
+
defaultPollIntervalInMinutes: 5,
|
|
443
|
+
supportsAlertingOnlyToggle: false,
|
|
444
|
+
importedRecordName: "log event",
|
|
445
|
+
cursorOverlapInMinutes: 15,
|
|
446
|
+
configFields: [
|
|
447
|
+
{
|
|
448
|
+
key: "orgUrl",
|
|
449
|
+
title: "Okta organization URL",
|
|
450
|
+
description: "Your Okta org URL, without a trailing path.",
|
|
451
|
+
type: "url",
|
|
452
|
+
required: true,
|
|
453
|
+
placeholder: "https://acme.okta.com",
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
key: "filter",
|
|
457
|
+
title: "Event filter",
|
|
458
|
+
description:
|
|
459
|
+
"Optional Okta System Log filter expression. Leave empty to import the security-relevant event families the connector selects by default.",
|
|
460
|
+
type: "text",
|
|
461
|
+
required: false,
|
|
462
|
+
placeholder: 'eventType sw "user.session" or eventType sw "security"',
|
|
463
|
+
},
|
|
464
|
+
],
|
|
465
|
+
secretFields: [
|
|
466
|
+
{
|
|
467
|
+
key: "apiToken",
|
|
468
|
+
title: "API token",
|
|
469
|
+
description:
|
|
470
|
+
"An Okta API token (SSWS) for a read-only administrator. Encrypted at rest and never returned by the API.",
|
|
471
|
+
type: "password",
|
|
472
|
+
required: true,
|
|
473
|
+
},
|
|
474
|
+
],
|
|
475
|
+
},
|
|
476
|
+
];
|
|
477
|
+
|
|
478
|
+
export function getSecurityEventConnectorDefinition(
|
|
479
|
+
provider: string | undefined,
|
|
480
|
+
): SecurityEventConnectorDefinition | undefined {
|
|
481
|
+
return SecurityEventConnectorCatalog.find(
|
|
482
|
+
(definition: SecurityEventConnectorDefinition): boolean => {
|
|
483
|
+
return definition.provider === provider;
|
|
484
|
+
},
|
|
485
|
+
);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
export function getSecurityEventConnectorTitle(
|
|
489
|
+
provider: string | undefined,
|
|
490
|
+
): string {
|
|
491
|
+
return getSecurityEventConnectorDefinition(provider)?.title || provider || "";
|
|
492
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The security sources OneUptime can poll through the managed
|
|
3
|
+
* Security Event Connections framework. Each value is the stable
|
|
4
|
+
* identifier stored on SecurityEventConnection.provider, used to look up
|
|
5
|
+
* the server-side connector in SecurityEventConnectorRegistry and the
|
|
6
|
+
* form/help metadata in SecurityEventConnectorCatalog.
|
|
7
|
+
*
|
|
8
|
+
* Google SecOps predates this framework and keeps its own model
|
|
9
|
+
* (GoogleSecOpsConnection) and poller; it is deliberately not listed here.
|
|
10
|
+
*/
|
|
11
|
+
enum SecurityEventConnectorProvider {
|
|
12
|
+
MicrosoftSentinel = "microsoft-sentinel",
|
|
13
|
+
MicrosoftDefenderXdr = "microsoft-defender-xdr",
|
|
14
|
+
CrowdStrikeFalcon = "crowdstrike-falcon",
|
|
15
|
+
SplunkEnterpriseSecurity = "splunk",
|
|
16
|
+
ElasticSecurity = "elastic-security",
|
|
17
|
+
AwsSecurityHub = "aws-security-hub",
|
|
18
|
+
OktaSystemLog = "okta",
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default SecurityEventConnectorProvider;
|
|
22
|
+
|
|
23
|
+
export const AllSecurityEventConnectorProviders: Array<SecurityEventConnectorProvider> =
|
|
24
|
+
[
|
|
25
|
+
SecurityEventConnectorProvider.MicrosoftSentinel,
|
|
26
|
+
SecurityEventConnectorProvider.MicrosoftDefenderXdr,
|
|
27
|
+
SecurityEventConnectorProvider.CrowdStrikeFalcon,
|
|
28
|
+
SecurityEventConnectorProvider.SplunkEnterpriseSecurity,
|
|
29
|
+
SecurityEventConnectorProvider.ElasticSecurity,
|
|
30
|
+
SecurityEventConnectorProvider.AwsSecurityHub,
|
|
31
|
+
SecurityEventConnectorProvider.OktaSystemLog,
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
export function isSecurityEventConnectorProvider(
|
|
35
|
+
value: unknown,
|
|
36
|
+
): value is SecurityEventConnectorProvider {
|
|
37
|
+
return (
|
|
38
|
+
typeof value === "string" &&
|
|
39
|
+
(AllSecurityEventConnectorProviders as Array<string>).includes(value)
|
|
40
|
+
);
|
|
41
|
+
}
|
|
@@ -23,13 +23,50 @@ export interface GoogleSecOpsDetectionSample {
|
|
|
23
23
|
isAlert?: boolean | undefined;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
/*
|
|
27
|
+
* "warn" is a step that completed but left something for the reader: an
|
|
28
|
+
* optional source (curated rules) the tenant cannot read, returned objects
|
|
29
|
+
* that were counted and discarded, or a pass a request or time budget
|
|
30
|
+
* stopped. A budget-stopped pass leaves the poll partial, so the next
|
|
31
|
+
* scheduled window is narrowed; the other warnings do not affect the
|
|
32
|
+
* cursor. "failed" is a step that threw, and the cursor is held.
|
|
33
|
+
*/
|
|
26
34
|
export interface GoogleSecOpsDiagnosticCheck {
|
|
27
35
|
name: string;
|
|
28
|
-
status: "success" | "failed";
|
|
36
|
+
status: "success" | "failed" | "warn";
|
|
29
37
|
durationMs: number;
|
|
30
38
|
message: string;
|
|
31
39
|
}
|
|
32
40
|
|
|
41
|
+
/*
|
|
42
|
+
* Which timestamp the run's window was applied to. Polls list by the time
|
|
43
|
+
* Google CREATED a detection, because a rule that runs hourly creates its
|
|
44
|
+
* detections long after the events they describe; preview and backfill
|
|
45
|
+
* use the detection-time range the person picked (with created time read
|
|
46
|
+
* as well) so what they see matches the SecOps alerts view.
|
|
47
|
+
*/
|
|
48
|
+
export type GoogleSecOpsRunBasis = "created-time" | "detection-time";
|
|
49
|
+
|
|
50
|
+
// How many records each of the three read passes returned, before the union.
|
|
51
|
+
export interface GoogleSecOpsSourceCounts {
|
|
52
|
+
ruleDetections: number;
|
|
53
|
+
curatedDetections: number;
|
|
54
|
+
alertsView: number;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/*
|
|
58
|
+
* createdTime minus detectionTime over the fetched records. A lag larger
|
|
59
|
+
* than the poll interval is the exact case a detection-time cursor would
|
|
60
|
+
* skip, which is why the numbers are kept on every run.
|
|
61
|
+
*/
|
|
62
|
+
export interface GoogleSecOpsCreationLag {
|
|
63
|
+
// Records carrying both timestamps.
|
|
64
|
+
measured: number;
|
|
65
|
+
// Records created more than pollIntervalInMinutes + 1 minute after their detection time.
|
|
66
|
+
lateCount: number;
|
|
67
|
+
maxLagMinutes: number;
|
|
68
|
+
}
|
|
69
|
+
|
|
33
70
|
export interface GoogleSecOpsRunResult {
|
|
34
71
|
type: GoogleSecOpsRunType;
|
|
35
72
|
runId?: string | undefined;
|
|
@@ -40,6 +77,9 @@ export interface GoogleSecOpsRunResult {
|
|
|
40
77
|
windowStart: string;
|
|
41
78
|
windowEnd: string;
|
|
42
79
|
includeNonAlertingDetections: boolean;
|
|
80
|
+
basis?: GoogleSecOpsRunBasis | undefined;
|
|
81
|
+
sourceCounts?: GoogleSecOpsSourceCounts | undefined;
|
|
82
|
+
creationLag?: GoogleSecOpsCreationLag | undefined;
|
|
43
83
|
fetchedCount: number;
|
|
44
84
|
ingestedCount: number;
|
|
45
85
|
duplicateCount: number;
|
|
@@ -53,4 +93,19 @@ export interface GoogleSecOpsRunResult {
|
|
|
53
93
|
eventTimeStart?: string | undefined;
|
|
54
94
|
eventTimeEnd?: string | undefined;
|
|
55
95
|
error?: string | undefined;
|
|
96
|
+
/*
|
|
97
|
+
* Adaptive catch-up, scheduled polls only. chunkMinutes is the minutes of
|
|
98
|
+
* creation time this poll read past the saved cursor (from the window
|
|
99
|
+
* start when there was no usable cursor); the overlap before the cursor is
|
|
100
|
+
* not counted. nextChunkMinutes is the chunk the next scheduled poll is
|
|
101
|
+
* given. A poll that could not read its window halves it (or, when the
|
|
102
|
+
* source reads in ascending creation order, resumes from the last record
|
|
103
|
+
* read); a complete poll never shrinks it and doubles it back towards the
|
|
104
|
+
* 24 hour maximum; a failed poll keeps it. forcedAdvance records a one
|
|
105
|
+
* minute window that still could not be read completely and was skipped
|
|
106
|
+
* past so polling keeps moving.
|
|
107
|
+
*/
|
|
108
|
+
chunkMinutes?: number | undefined;
|
|
109
|
+
nextChunkMinutes?: number | undefined;
|
|
110
|
+
forcedAdvance?: boolean | undefined;
|
|
56
111
|
}
|