@oneuptime/common 13.0.3 → 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/LoggerCore.test.ts +597 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +55 -2
- package/Tests/Server/Utils/Monitor/MonitorTemplateUtil.test.ts +1109 -0
- 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/EntityRegistry.test.ts +711 -0
- 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 +868 -0
- package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +525 -0
- package/Tests/Server/Utils/Telemetry/TraceContextPropagation.test.ts +420 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilCorePaths.test.ts +1014 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveRotation.test.ts +9 -6
- package/Tests/Types/Rules/RuleCriteriaFieldRegistry.test.ts +276 -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/LlmConventions.test.ts +495 -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/SessionReplayHealth.test.ts +884 -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/OnCallDutyPolicy/Layer.ts +12 -0
- package/Types/Permission.ts +2 -2
- package/Types/Rules/RuleCriteriaFieldRegistry.ts +12 -0
- 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/OnCallDutyPolicy/Layer.js +11 -0
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/Permission.js +2 -2
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +9 -0
- package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.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,111 @@
|
|
|
1
|
+
import { JSONObject } from "../../JSON";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* The shape every "Test connection" produces, whichever source is behind
|
|
5
|
+
* it — Google SecOps and every provider in the Security Event Connections
|
|
6
|
+
* framework return the same report, so one dashboard component renders
|
|
7
|
+
* all of them.
|
|
8
|
+
*
|
|
9
|
+
* A report is a checklist, not a boolean. The customer complaint this was
|
|
10
|
+
* built for ("connected, but nothing is ingested") is never answered by
|
|
11
|
+
* "credentials accepted": it needs, in order, whether the source can be
|
|
12
|
+
* reached, whether it allows reading detections, whether there is
|
|
13
|
+
* anything to import right now, and whether OneUptime's own scheduler and
|
|
14
|
+
* workers are actually running. Each of those is a check with its own
|
|
15
|
+
* remediation text, so a failed step tells the reader what to do next
|
|
16
|
+
* instead of leaving them with a status word.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
export type SecurityConnectorCheckStatus = "pass" | "fail" | "warn" | "skip";
|
|
20
|
+
|
|
21
|
+
export interface SecurityConnectorCheck {
|
|
22
|
+
/*
|
|
23
|
+
* Stable machine key (kebab-case), e.g. "authentication",
|
|
24
|
+
* "worker-consumers". UI groups and tests key off it; the human name may
|
|
25
|
+
* be reworded freely.
|
|
26
|
+
*/
|
|
27
|
+
key: string;
|
|
28
|
+
name: string;
|
|
29
|
+
status: SecurityConnectorCheckStatus;
|
|
30
|
+
durationMs: number;
|
|
31
|
+
// What was observed, in one or two sentences. Credentials are never here.
|
|
32
|
+
message: string;
|
|
33
|
+
// What to do when the check did not pass. Omitted for passing checks.
|
|
34
|
+
remediation?: string | undefined;
|
|
35
|
+
// Structured extras for the UI (counts, timestamps). Never credentials.
|
|
36
|
+
details?: JSONObject | undefined;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* What the tester could learn about the OneUptime deployment itself. Every
|
|
41
|
+
* probe is independently best-effort: `null` means "could not determine",
|
|
42
|
+
* which the UI renders as unknown rather than as healthy.
|
|
43
|
+
*/
|
|
44
|
+
export interface ConnectorPlatformStatus {
|
|
45
|
+
// Processes consuming the Worker queue (BullMQ getWorkersCount).
|
|
46
|
+
workerConsumers: number | null;
|
|
47
|
+
// Whether the minute-cadence poll scheduler is registered on the queue.
|
|
48
|
+
schedulerRegistered: boolean | null;
|
|
49
|
+
schedulerNextRunAt?: string | undefined;
|
|
50
|
+
queueWaiting: number | null;
|
|
51
|
+
queueFailed: number | null;
|
|
52
|
+
// Whether the analytics database that stores security events answered.
|
|
53
|
+
storageReachable: boolean | null;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export interface SecurityConnectorSample {
|
|
57
|
+
id: string;
|
|
58
|
+
title: string;
|
|
59
|
+
severity: string;
|
|
60
|
+
// When the source created the record.
|
|
61
|
+
createdTime?: string | undefined;
|
|
62
|
+
// The record's own event/detection time, which may be much earlier.
|
|
63
|
+
eventTime?: string | undefined;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export type SecurityConnectorTestStatus = "pass" | "fail" | "warn";
|
|
67
|
+
|
|
68
|
+
export interface SecurityConnectorTestReport {
|
|
69
|
+
// Provider identifier, e.g. "google-secops" or a SecurityEventConnectorProvider value.
|
|
70
|
+
provider: string;
|
|
71
|
+
status: SecurityConnectorTestStatus;
|
|
72
|
+
startedAt: string;
|
|
73
|
+
completedAt: string;
|
|
74
|
+
durationMs: number;
|
|
75
|
+
checks: Array<SecurityConnectorCheck>;
|
|
76
|
+
// One-paragraph verdict written for the person reading the modal.
|
|
77
|
+
summary: string;
|
|
78
|
+
platform?: ConnectorPlatformStatus | undefined;
|
|
79
|
+
/*
|
|
80
|
+
* Availability counts, keyed by a stable name the UI knows how to label,
|
|
81
|
+
* e.g. { createdLast24h: 12, createdLast7d: 140, hasMoreLast7d: false }.
|
|
82
|
+
*/
|
|
83
|
+
counts?: JSONObject | undefined;
|
|
84
|
+
samples?: Array<SecurityConnectorSample> | undefined;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Fold check statuses into the report verdict: any failure fails the
|
|
89
|
+
* report; otherwise any warning makes it a warning; skips are neutral.
|
|
90
|
+
*/
|
|
91
|
+
export function summarizeCheckStatuses(
|
|
92
|
+
checks: Array<SecurityConnectorCheck>,
|
|
93
|
+
): SecurityConnectorTestStatus {
|
|
94
|
+
if (
|
|
95
|
+
checks.some((check: SecurityConnectorCheck): boolean => {
|
|
96
|
+
return check.status === "fail";
|
|
97
|
+
})
|
|
98
|
+
) {
|
|
99
|
+
return "fail";
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (
|
|
103
|
+
checks.some((check: SecurityConnectorCheck): boolean => {
|
|
104
|
+
return check.status === "warn";
|
|
105
|
+
})
|
|
106
|
+
) {
|
|
107
|
+
return "warn";
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return "pass";
|
|
111
|
+
}
|
|
@@ -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
|
+
}
|