@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.
Files changed (687) hide show
  1. package/Models/DatabaseModels/Index.ts +4 -0
  2. package/Models/DatabaseModels/RumApplication.ts +1 -1
  3. package/Models/DatabaseModels/SecurityEventConnection.ts +457 -0
  4. package/Models/DatabaseModels/SecurityEventConnectionRun.ts +263 -0
  5. package/Models/DatabaseModels/TelemetryIngestionKey.ts +2 -2
  6. package/Server/API/AIInvestigationAPI.ts +484 -24
  7. package/Server/API/GoogleSecOpsConnectionAPI.ts +249 -8
  8. package/Server/API/SecurityEventConnectionAPI.ts +250 -0
  9. package/Server/API/TelemetryAPI.ts +402 -265
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.ts +99 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  12. package/Server/Middleware/TelemetryIngest.ts +101 -6
  13. package/Server/Services/ExceptionAggregationService.ts +7 -16
  14. package/Server/Services/GoogleSecOpsConnectionService.ts +15 -0
  15. package/Server/Services/Index.ts +4 -0
  16. package/Server/Services/InventoryItemService.ts +28 -0
  17. package/Server/Services/LogAggregationService.ts +17 -23
  18. package/Server/Services/MetricAggregationService.ts +4 -14
  19. package/Server/Services/SecurityEventConnectionRunService.ts +10 -0
  20. package/Server/Services/SecurityEventConnectionService.ts +538 -0
  21. package/Server/Services/TraceAggregationService.ts +77 -28
  22. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +9 -0
  23. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +13 -1
  24. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +15 -1
  25. package/Server/Utils/AI/SRE/InvestigationEvidence.ts +658 -0
  26. package/Server/Utils/AI/SRE/InvestigationReferences.ts +324 -0
  27. package/Server/Utils/AI/Toolbox/Index.ts +38 -0
  28. package/Server/Utils/AI/Toolbox/TimelineTools.ts +9 -2
  29. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +80 -0
  30. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +5 -3
  31. package/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.ts +1108 -0
  32. package/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.ts +732 -0
  33. package/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.ts +495 -0
  34. package/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.ts +689 -0
  35. package/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.ts +767 -0
  36. package/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.ts +571 -0
  37. package/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.ts +827 -0
  38. package/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.ts +610 -0
  39. package/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.ts +549 -0
  40. package/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.ts +830 -0
  41. package/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.ts +684 -0
  42. package/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.ts +487 -0
  43. package/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.ts +778 -0
  44. package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.ts +1002 -0
  45. package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.ts +556 -0
  46. package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.ts +275 -0
  47. package/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.ts +53 -0
  48. package/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.ts +709 -0
  49. package/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.ts +596 -0
  50. package/Server/Utils/SecurityEvent/Connectors/Types.ts +191 -0
  51. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +353 -65
  52. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.ts +777 -0
  53. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +747 -148
  54. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.ts +48 -2
  55. package/Server/Utils/SecurityEvent/SecurityEventDedupe.ts +81 -0
  56. package/Server/Utils/SessionReplay/SessionReplayReadService.ts +741 -40
  57. package/Server/Utils/StartServer.ts +10 -0
  58. package/Server/Utils/Telemetry/EntityRegistry.ts +8 -0
  59. package/Server/Utils/Telemetry/KubernetesResourceAttributes.ts +108 -0
  60. package/Server/Utils/Telemetry/ResourceEntityFilter.ts +174 -93
  61. package/Server/Utils/Telemetry/ResourceFacetPlanner.ts +251 -0
  62. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +248 -413
  63. package/Server/Utils/Telemetry/ServiceDependencyDiscovery.ts +668 -0
  64. package/Server/Utils/Telemetry/TraceContextPropagation.ts +348 -0
  65. package/Server/Utils/Telemetry.ts +18 -0
  66. package/Tests/App/Dashboard/AIInvestigationHeaderStatus.test.tsx +413 -0
  67. package/Tests/App/Dashboard/AIRootCauseFeedItem.test.tsx +285 -0
  68. package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +242 -0
  69. package/Tests/App/Dashboard/AlertEpisodeViewFields.test.tsx +601 -15
  70. package/Tests/App/Dashboard/ChangeAlertStateAIHeader.test.tsx +835 -0
  71. package/Tests/App/Dashboard/CloudResourceTelemetryScope.test.ts +41 -0
  72. package/Tests/App/Dashboard/ConnectionTestModal.test.tsx +604 -0
  73. package/Tests/App/Dashboard/ConnectorTestReportView.test.tsx +738 -0
  74. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +153 -6
  75. package/Tests/App/Dashboard/EntityDetailPanel.test.tsx +165 -0
  76. package/Tests/App/Dashboard/EpisodeChangeState.test.tsx +1069 -0
  77. package/Tests/App/Dashboard/EpisodeMembersCard.test.tsx +772 -0
  78. package/Tests/App/Dashboard/EventOverviewPages.test.tsx +2354 -0
  79. package/Tests/App/Dashboard/EventOverviewSkeleton.test.tsx +210 -0
  80. package/Tests/App/Dashboard/EventStatBar.test.tsx +392 -0
  81. package/Tests/App/Dashboard/EventStatusPanel.test.tsx +247 -0
  82. package/Tests/App/Dashboard/ExceptionAIAssistance.test.tsx +606 -0
  83. package/Tests/App/Dashboard/ExceptionBreadcrumbTimeline.test.tsx +273 -0
  84. package/Tests/App/Dashboard/ExceptionDetailSideMenu.test.tsx +176 -0
  85. package/Tests/App/Dashboard/ExceptionOverviewCards.test.tsx +366 -0
  86. package/Tests/App/Dashboard/ExceptionSignalPages.test.tsx +371 -0
  87. package/Tests/App/Dashboard/ExceptionStackFrameViewer.test.tsx +440 -0
  88. package/Tests/App/Dashboard/ExceptionSummary.test.tsx +381 -0
  89. package/Tests/App/Dashboard/ExceptionTriage.test.tsx +306 -0
  90. package/Tests/App/Dashboard/ExceptionsResourceFacets.test.tsx +604 -0
  91. package/Tests/App/Dashboard/ExceptionsViewerEntityChips.test.tsx +706 -0
  92. package/Tests/App/Dashboard/FeedOrdering.test.ts +32 -0
  93. package/Tests/App/Dashboard/GoogleSecOpsConnectionForm.test.tsx +838 -0
  94. package/Tests/App/Dashboard/GoogleSecOpsConnectionsErrors.test.tsx +18 -0
  95. package/Tests/App/Dashboard/GoogleSecOpsDiagnostics.test.tsx +297 -20
  96. package/Tests/App/Dashboard/IncidentEpisodeViewFields.test.tsx +618 -13
  97. package/Tests/App/Dashboard/InfrastructureExplorer.test.tsx +254 -207
  98. package/Tests/App/Dashboard/InfrastructureGraph.test.tsx +303 -135
  99. package/Tests/App/Dashboard/InvestigationEvidenceList.test.tsx +1251 -0
  100. package/Tests/App/Dashboard/InvestigationFeedRefresh.test.tsx +303 -0
  101. package/Tests/App/Dashboard/InvestigationPanel.test.tsx +876 -8
  102. package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +35 -0
  103. package/Tests/App/Dashboard/InvestigationReferenceLink.test.tsx +177 -0
  104. package/Tests/App/Dashboard/InvestigationReportView.test.tsx +1295 -0
  105. package/Tests/App/Dashboard/KubernetesImageReferenceView.test.tsx +114 -0
  106. package/Tests/App/Dashboard/KubernetesLogsTabChips.test.tsx +285 -0
  107. package/Tests/App/Dashboard/LogsEntityChipNames.test.tsx +316 -0
  108. package/Tests/App/Dashboard/LogsResourceFacetChips.test.tsx +361 -0
  109. package/Tests/App/Dashboard/ProfileTableEntityNames.test.tsx +432 -0
  110. package/Tests/App/Dashboard/ProfileViewEntityName.test.tsx +250 -0
  111. package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +10 -0
  112. package/Tests/App/Dashboard/ResourceLogsTabsBareLayout.test.tsx +700 -0
  113. package/Tests/App/Dashboard/ResourcePageEntityNameProps.test.tsx +803 -0
  114. package/Tests/App/Dashboard/RumSessionReplaySideMenu.test.tsx +11 -1
  115. package/Tests/App/Dashboard/ScheduledMaintenanceChangeState.test.tsx +1026 -0
  116. package/Tests/App/Dashboard/ScheduledMaintenanceFeedRefresh.test.tsx +436 -0
  117. package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +1195 -0
  118. package/Tests/App/Dashboard/SecurityEventConnectionFormModal.test.tsx +1022 -0
  119. package/Tests/App/Dashboard/SecurityEventConnectionsTable.test.tsx +905 -0
  120. package/Tests/App/Dashboard/SecurityEventsSideMenu.test.tsx +247 -0
  121. package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +375 -274
  122. package/Tests/App/Dashboard/SessionReplayAuditTable.test.tsx +410 -0
  123. package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +774 -0
  124. package/Tests/App/Dashboard/TopErrorsPanelResourceNames.test.tsx +316 -0
  125. package/Tests/App/Dashboard/TopologyDataLoading.test.tsx +30 -0
  126. package/Tests/App/Dashboard/TopologyPageNavigation.test.tsx +88 -24
  127. package/Tests/App/Dashboard/TraceExplorer.test.tsx +1590 -0
  128. package/Tests/App/Dashboard/TraceWaterfall.test.tsx +488 -0
  129. package/Tests/App/Dashboard/TracesAnalyticsSeriesLabels.test.tsx +367 -0
  130. package/Tests/App/Dashboard/TracesEntityNames.test.tsx +585 -0
  131. package/Tests/App/Dashboard/TracesResourceFacets.test.tsx +613 -0
  132. package/Tests/App/Dashboard/UseServiceNames.test.tsx +359 -0
  133. package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +7 -0
  134. package/Tests/Models/InventoryItemNaming.test.ts +132 -16
  135. package/Tests/Models/SecurityDomainAccessControl.test.ts +61 -17
  136. package/Tests/Server/API/AIInvestigationAPI.test.ts +611 -2
  137. package/Tests/Server/API/AIInvestigationEvidenceAPI.test.ts +1098 -0
  138. package/Tests/Server/API/GoogleSecOpsConnectionAPI.test.ts +409 -0
  139. package/Tests/Server/API/SecurityEventConnectionAPI.test.ts +856 -0
  140. package/Tests/Server/API/SessionReplayAPI.test.ts +528 -1
  141. package/Tests/Server/API/TelemetryFacetsAPI.test.ts +810 -0
  142. package/Tests/Server/Infrastructure/E2EClickHouseFixtureAccess.test.ts +240 -0
  143. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +229 -0
  144. package/Tests/Server/Services/InventoryItemDisplayName.test.ts +66 -0
  145. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +28 -1
  146. package/Tests/Server/Services/SecurityEventConnectionService.test.ts +1233 -0
  147. package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +53 -0
  148. package/Tests/Server/Services/TelemetryResourceFacetCounting.test.ts +218 -0
  149. package/Tests/Server/Services/TelemetryResourceFacetFilters.test.ts +155 -1
  150. package/Tests/Server/Services/TraceAggregationExceptionScope.test.ts +142 -0
  151. package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +85 -24
  152. package/Tests/Server/Types/Database/Permissions/SecurityRoleAccess.test.ts +33 -0
  153. package/Tests/Server/Utils/AI/InvestigationEvidence.test.ts +1395 -0
  154. package/Tests/Server/Utils/AI/InvestigationReferences.test.ts +616 -0
  155. package/Tests/Server/Utils/AI/TimelineTools.test.ts +119 -0
  156. package/Tests/Server/Utils/AI/Toolbox/AIToolbox.test.ts +151 -0
  157. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +65 -0
  158. package/Tests/Server/Utils/AnalyticsDatabase/StatementGeneratorExceptionScope.test.ts +224 -0
  159. package/Tests/Server/Utils/LoggerCore.test.ts +597 -0
  160. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +55 -2
  161. package/Tests/Server/Utils/Monitor/MonitorTemplateUtil.test.ts +1109 -0
  162. package/Tests/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.test.ts +1240 -0
  163. package/Tests/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.test.ts +1853 -0
  164. package/Tests/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.test.ts +1129 -0
  165. package/Tests/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.test.ts +1066 -0
  166. package/Tests/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.test.ts +1568 -0
  167. package/Tests/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.test.ts +930 -0
  168. package/Tests/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.test.ts +1409 -0
  169. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.test.ts +763 -0
  170. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.test.ts +1296 -0
  171. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.test.ts +1102 -0
  172. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.test.ts +1174 -0
  173. package/Tests/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.test.ts +1032 -0
  174. package/Tests/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.test.ts +1558 -0
  175. package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.test.ts +3041 -0
  176. package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.test.ts +1168 -0
  177. package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.test.ts +906 -0
  178. package/Tests/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.test.ts +1068 -0
  179. package/Tests/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.test.ts +1004 -0
  180. package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.test.ts +784 -0
  181. package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.test.ts +113 -1
  182. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +5 -1
  183. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsDiagnostics.test.ts +93 -13
  184. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsHttpIntegration.test.ts +23 -1
  185. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +25 -3
  186. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +22 -8
  187. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +82 -16
  188. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSearchDetections.test.ts +730 -0
  189. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsThreePassPoller.test.ts +1577 -0
  190. package/Tests/Server/Utils/SessionReplay/SessionReplayOriginAllowlist.test.ts +41 -0
  191. package/Tests/Server/Utils/SessionReplay/SessionReplayReadServiceQueries.test.ts +1453 -18
  192. package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +711 -0
  193. package/Tests/Server/Utils/Telemetry/KubernetesResourceAttributes.test.ts +162 -0
  194. package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +460 -13
  195. package/Tests/Server/Utils/Telemetry/ResourceFacetPlanner.test.ts +678 -0
  196. package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +868 -0
  197. package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +525 -0
  198. package/Tests/Server/Utils/Telemetry/TraceContextPropagation.test.ts +420 -0
  199. package/Tests/Types/OnCallDutyPolicy/LayerUtilCorePaths.test.ts +1014 -0
  200. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveRotation.test.ts +9 -6
  201. package/Tests/Types/Rules/RuleCriteriaFieldRegistry.test.ts +276 -0
  202. package/Tests/Types/Rum/SessionReplayApiContracts.test.ts +73 -0
  203. package/Tests/Types/Rum/SessionReplayTransportContracts.test.ts +95 -0
  204. package/Tests/Types/SecurityEvent/Connectors/ConnectorDiagnostics.test.ts +82 -0
  205. package/Tests/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.test.ts +314 -0
  206. package/Tests/Types/Telemetry/ExceptionSpanScope.test.ts +89 -0
  207. package/Tests/Types/Telemetry/LlmConventions.test.ts +495 -0
  208. package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +96 -0
  209. package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +304 -0
  210. package/Tests/UI/Components/ActiveFilterChipsLockedFilters.test.tsx +357 -0
  211. package/Tests/UI/Components/Card.test.tsx +312 -1
  212. package/Tests/UI/Components/CardModelDetailHeaderLayout.test.tsx +253 -0
  213. package/Tests/UI/Components/CardModelDetailRefresher.test.tsx +342 -0
  214. package/Tests/UI/Components/Checkbox.test.tsx +79 -0
  215. package/Tests/UI/Components/CopyTextButton.test.tsx +142 -0
  216. package/Tests/UI/Components/DetailCompactStyle.test.tsx +621 -0
  217. package/Tests/UI/Components/ErrorBoundary.test.tsx +60 -0
  218. package/Tests/UI/Components/FacetSections.test.tsx +581 -0
  219. package/Tests/UI/Components/FacetSidebarControls.test.tsx +812 -0
  220. package/Tests/UI/Components/FacetVisibility.test.ts +429 -0
  221. package/Tests/UI/Components/LockedFilterActions.test.tsx +396 -0
  222. package/Tests/UI/Components/LockedFilterChip.test.tsx +651 -0
  223. package/Tests/UI/Components/LogsEntityNames.test.ts +1769 -0
  224. package/Tests/UI/Components/LogsEntityNamesComponents.test.tsx +696 -0
  225. package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +600 -0
  226. package/Tests/UI/Components/LogsViewerEntityNames.test.tsx +713 -0
  227. package/Tests/UI/Components/MarkdownInlineReferences.test.tsx +2079 -0
  228. package/Tests/UI/Components/MemberRoleAssignment.test.tsx +446 -0
  229. package/Tests/UI/Components/ModelDetailRefetch.test.tsx +397 -0
  230. package/Tests/UI/Components/ModelListRefetch.test.tsx +233 -0
  231. package/Tests/UI/Components/ModelPageModelChange.test.tsx +409 -0
  232. package/Tests/UI/Components/PaginationIntegration.test.tsx +25 -0
  233. package/Tests/UI/Components/ResourceFacetConfigs.test.ts +172 -0
  234. package/Tests/UI/Components/SavedViewsSidebarIntegration.test.tsx +32 -14
  235. package/Tests/UI/Components/TableSortAndMobileColumns.test.tsx +44 -1
  236. package/Tests/UI/Components/TelemetryActiveFilterChipsLockedFilters.test.tsx +304 -0
  237. package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +718 -0
  238. package/Tests/UI/Monitor/EvaluationLogList.test.tsx +303 -0
  239. package/Tests/UI/Monitor/MonitorSummarySnapshotRender.test.tsx +55 -1
  240. package/Tests/UI/Rum/FidelityNotices.test.ts +22 -0
  241. package/Tests/UI/Rum/RecordingHealthCard.test.tsx +120 -136
  242. package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +988 -0
  243. package/Tests/UI/Rum/ReplayCard.test.tsx +32 -0
  244. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +709 -12
  245. package/Tests/UI/Rum/ReplayHeader.test.tsx +50 -1
  246. package/Tests/UI/Rum/ReplayPinControl.test.tsx +67 -10
  247. package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +41 -12
  248. package/Tests/UI/Rum/ReplayStage.test.tsx +663 -1
  249. package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +173 -0
  250. package/Tests/UI/Rum/ReplayUi.test.tsx +189 -2
  251. package/Tests/UI/Rum/ReplayUserSessionsMenu.test.tsx +91 -0
  252. package/Tests/UI/Rum/SessionReplayEmptyState.test.tsx +1 -1
  253. package/Tests/UI/Rum/SessionReplaySettingsPolicyLoading.test.tsx +585 -0
  254. package/Tests/UI/Rum/SessionReplayTable.test.tsx +844 -51
  255. package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +29 -1
  256. package/Tests/UI/Telemetry/TelemetryDetailPanel.test.tsx +288 -0
  257. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +31 -1
  258. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +6 -0
  259. package/Tests/UI/Utils/Clipboard.test.ts +154 -0
  260. package/Tests/UI/Utils/Navigation.test.ts +24 -0
  261. package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +2205 -0
  262. package/Tests/UI/Utils/Telemetry/UseTelemetryEntityNames.test.tsx +844 -0
  263. package/Tests/Utils/AI/InvestigationReport.test.ts +2430 -0
  264. package/Tests/Utils/APIOutgoingRequestTracer.test.ts +137 -0
  265. package/Tests/Utils/Rum/SessionReplayHealth.test.ts +884 -0
  266. package/Tests/Utils/Rum/SessionReplayHealthDiagnosis.test.ts +40 -0
  267. package/Tests/Utils/Rum/SessionReplayRecordingEnded.test.ts +619 -0
  268. package/Tests/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.test.ts +631 -0
  269. package/Tests/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.test.ts +479 -0
  270. package/Tests/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.test.ts +507 -0
  271. package/Tests/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.test.ts +686 -0
  272. package/Tests/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.test.ts +474 -0
  273. package/Tests/Utils/SecurityEvent/Connectors/OktaNormalizer.test.ts +736 -0
  274. package/Tests/Utils/SecurityEvent/Connectors/SplunkNormalizer.test.ts +407 -0
  275. package/Tests/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.test.ts +129 -0
  276. package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +57 -1
  277. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +36 -0
  278. package/Tests/Utils/Telemetry/LockedFilterSearch.test.ts +600 -0
  279. package/Tests/Utils/Telemetry/NetworkHost.test.ts +48 -0
  280. package/Tests/Utils/Telemetry/OriginAllowList.test.ts +154 -0
  281. package/Tests/Utils/Traces/CriticalPath.test.ts +25 -0
  282. package/Types/AI/AIChatTypes.ts +8 -0
  283. package/Types/AI/InvestigationEvidence.ts +96 -0
  284. package/Types/Monitor/MonitorEvaluationSummary.ts +5 -0
  285. package/Types/OnCallDutyPolicy/Layer.ts +12 -0
  286. package/Types/Permission.ts +2 -2
  287. package/Types/Rules/RuleCriteriaFieldRegistry.ts +12 -0
  288. package/Types/Rum/SessionReplay.ts +109 -0
  289. package/Types/Rum/SessionReplayApi.ts +31 -0
  290. package/Types/SecurityEvent/Connectors/ConnectorDiagnostics.ts +111 -0
  291. package/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.ts +87 -0
  292. package/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.ts +492 -0
  293. package/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.ts +41 -0
  294. package/Types/SecurityEvent/GoogleSecOpsDiagnostics.ts +56 -1
  295. package/Types/SecurityEvent/GoogleSecOpsRegion.ts +34 -0
  296. package/Types/Telemetry/EntityType.ts +14 -0
  297. package/Types/Telemetry/ExceptionSpanScope.ts +83 -0
  298. package/Types/Telemetry/LockedFilterDetail.ts +46 -0
  299. package/Types/Telemetry/ResourceEntityFacet.ts +17 -10
  300. package/Types/Telemetry/ResourceFacetCatalog.ts +171 -0
  301. package/UI/Components/Card/Card.tsx +118 -83
  302. package/UI/Components/Checkbox/Checkbox.tsx +8 -5
  303. package/UI/Components/CopyTextButton/CopyTextButton.tsx +7 -1
  304. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +4 -1
  305. package/UI/Components/Detail/Detail.tsx +137 -22
  306. package/UI/Components/ErrorBoundary.tsx +38 -0
  307. package/UI/Components/LogsViewer/LogsEntityNames.ts +912 -0
  308. package/UI/Components/LogsViewer/LogsViewer.tsx +156 -77
  309. package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +28 -11
  310. package/UI/Components/LogsViewer/components/FacetSection.tsx +66 -79
  311. package/UI/Components/LogsViewer/components/FacetValueRow.tsx +17 -2
  312. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +45 -5
  313. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +100 -19
  314. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +156 -39
  315. package/UI/Components/LogsViewer/components/LogsTable.tsx +30 -8
  316. package/UI/Components/LogsViewer/types.ts +6 -0
  317. package/UI/Components/Markdown.tsx/InlineReferences.tsx +628 -0
  318. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +385 -312
  319. package/UI/Components/MemberRoleAssignment/MemberRoleAssignment.tsx +50 -22
  320. package/UI/Components/ModelDetail/CardModelDetail.tsx +15 -0
  321. package/UI/Components/ModelDetail/ModelDetail.tsx +64 -19
  322. package/UI/Components/ModelList/ModelList.tsx +33 -8
  323. package/UI/Components/Page/ModelPage.tsx +119 -54
  324. package/UI/Components/Table/Table.tsx +8 -0
  325. package/UI/Components/Table/TableRow.tsx +13 -5
  326. package/UI/Components/TelemetryViewer/FacetVisibility.ts +229 -0
  327. package/UI/Components/TelemetryViewer/ResourceFacetConfigs.ts +46 -0
  328. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +11 -0
  329. package/UI/Components/TelemetryViewer/components/FacetSearchInput.tsx +79 -0
  330. package/UI/Components/TelemetryViewer/components/FacetSectionHeader.tsx +69 -0
  331. package/UI/Components/TelemetryViewer/components/FacetShowMoreButton.tsx +36 -0
  332. package/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.tsx +88 -0
  333. package/UI/Components/TelemetryViewer/components/LockedFilterActions.tsx +205 -0
  334. package/UI/Components/TelemetryViewer/components/LockedFilterChip.tsx +496 -0
  335. package/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.tsx +30 -10
  336. package/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.tsx +203 -10
  337. package/UI/Components/TelemetryViewer/components/TelemetryFacetSection.tsx +60 -73
  338. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +94 -7
  339. package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +17 -2
  340. package/UI/Components/TelemetryViewer/types.ts +19 -0
  341. package/UI/Components/TelemetryViewer/useFacetSearchExemptions.ts +158 -0
  342. package/UI/Components/TelemetryViewer/useFacetSectionSearch.ts +102 -0
  343. package/UI/Utils/Clipboard.ts +68 -2
  344. package/UI/Utils/Navigation.ts +17 -2
  345. package/UI/Utils/Telemetry/TelemetryEntityNames.ts +620 -0
  346. package/UI/Utils/Telemetry/UseTelemetryEntityNames.ts +151 -0
  347. package/Utils/AI/InvestigationReport.ts +1789 -0
  348. package/Utils/API.ts +90 -1
  349. package/Utils/Rum/SessionReplayHealth.ts +11 -0
  350. package/Utils/Rum/SessionReplayRecordingEnded.ts +134 -0
  351. package/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.ts +427 -0
  352. package/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.ts +197 -0
  353. package/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.ts +464 -0
  354. package/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.ts +567 -0
  355. package/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.ts +299 -0
  356. package/Utils/SecurityEvent/Connectors/OktaNormalizer.ts +467 -0
  357. package/Utils/SecurityEvent/Connectors/SplunkNormalizer.ts +439 -0
  358. package/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.ts +124 -12
  359. package/Utils/Telemetry/CrossSignalScope.ts +22 -8
  360. package/Utils/Telemetry/EntityRelationship.ts +8 -0
  361. package/Utils/Telemetry/LockedFilterSearch.ts +412 -0
  362. package/Utils/Telemetry/NetworkHost.ts +43 -0
  363. package/Utils/Telemetry/OriginAllowList.ts +139 -4
  364. package/Utils/Traces/CriticalPath.ts +10 -4
  365. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  366. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  367. package/build/dist/Models/DatabaseModels/RumApplication.js +1 -1
  368. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
  369. package/build/dist/Models/DatabaseModels/SecurityEventConnection.js +490 -0
  370. package/build/dist/Models/DatabaseModels/SecurityEventConnection.js.map +1 -0
  371. package/build/dist/Models/DatabaseModels/SecurityEventConnectionRun.js +287 -0
  372. package/build/dist/Models/DatabaseModels/SecurityEventConnectionRun.js.map +1 -0
  373. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +2 -2
  374. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
  375. package/build/dist/Server/API/AIInvestigationAPI.js +336 -27
  376. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  377. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js +182 -7
  378. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js.map +1 -1
  379. package/build/dist/Server/API/SecurityEventConnectionAPI.js +171 -0
  380. package/build/dist/Server/API/SecurityEventConnectionAPI.js.map +1 -0
  381. package/build/dist/Server/API/TelemetryAPI.js +248 -170
  382. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  383. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.js +40 -0
  384. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.js.map +1 -0
  385. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  386. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  387. package/build/dist/Server/Middleware/TelemetryIngest.js +57 -4
  388. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  389. package/build/dist/Server/Services/ExceptionAggregationService.js +7 -16
  390. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  391. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +8 -0
  392. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -1
  393. package/build/dist/Server/Services/Index.js +4 -0
  394. package/build/dist/Server/Services/Index.js.map +1 -1
  395. package/build/dist/Server/Services/InventoryItemService.js +22 -0
  396. package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
  397. package/build/dist/Server/Services/LogAggregationService.js +8 -17
  398. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  399. package/build/dist/Server/Services/MetricAggregationService.js +4 -14
  400. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  401. package/build/dist/Server/Services/SecurityEventConnectionRunService.js +9 -0
  402. package/build/dist/Server/Services/SecurityEventConnectionRunService.js.map +1 -0
  403. package/build/dist/Server/Services/SecurityEventConnectionService.js +356 -0
  404. package/build/dist/Server/Services/SecurityEventConnectionService.js.map +1 -0
  405. package/build/dist/Server/Services/TraceAggregationService.js +51 -25
  406. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  407. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +9 -0
  408. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  409. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +3 -0
  410. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
  411. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +14 -7
  412. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  413. package/build/dist/Server/Utils/AI/SRE/InvestigationEvidence.js +468 -0
  414. package/build/dist/Server/Utils/AI/SRE/InvestigationEvidence.js.map +1 -0
  415. package/build/dist/Server/Utils/AI/SRE/InvestigationReferences.js +230 -0
  416. package/build/dist/Server/Utils/AI/SRE/InvestigationReferences.js.map +1 -0
  417. package/build/dist/Server/Utils/AI/Toolbox/Index.js +32 -0
  418. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  419. package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js +6 -2
  420. package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js.map +1 -1
  421. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +59 -0
  422. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  423. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +5 -3
  424. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  425. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.js +752 -0
  426. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.js.map +1 -0
  427. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.js +493 -0
  428. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.js.map +1 -0
  429. package/build/dist/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.js +352 -0
  430. package/build/dist/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.js.map +1 -0
  431. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.js +405 -0
  432. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.js.map +1 -0
  433. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.js +466 -0
  434. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.js.map +1 -0
  435. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.js +344 -0
  436. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.js.map +1 -0
  437. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.js +511 -0
  438. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.js.map +1 -0
  439. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.js +406 -0
  440. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.js.map +1 -0
  441. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.js +336 -0
  442. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.js.map +1 -0
  443. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.js +474 -0
  444. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.js.map +1 -0
  445. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.js +417 -0
  446. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.js.map +1 -0
  447. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.js +314 -0
  448. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.js.map +1 -0
  449. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.js +494 -0
  450. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.js.map +1 -0
  451. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.js +719 -0
  452. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.js.map +1 -0
  453. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.js +404 -0
  454. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.js.map +1 -0
  455. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.js +209 -0
  456. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.js.map +1 -0
  457. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.js +40 -0
  458. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.js.map +1 -0
  459. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.js +494 -0
  460. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.js.map +1 -0
  461. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.js +379 -0
  462. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.js.map +1 -0
  463. package/build/dist/Server/Utils/SecurityEvent/Connectors/Types.js +27 -0
  464. package/build/dist/Server/Utils/SecurityEvent/Connectors/Types.js.map +1 -0
  465. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +234 -61
  466. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
  467. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.js +537 -0
  468. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.js.map +1 -0
  469. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +572 -115
  470. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  471. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js +35 -1
  472. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js.map +1 -1
  473. package/build/dist/Server/Utils/SecurityEvent/SecurityEventDedupe.js +52 -0
  474. package/build/dist/Server/Utils/SecurityEvent/SecurityEventDedupe.js.map +1 -0
  475. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +521 -32
  476. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
  477. package/build/dist/Server/Utils/StartServer.js +10 -0
  478. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  479. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +8 -0
  480. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  481. package/build/dist/Server/Utils/Telemetry/KubernetesResourceAttributes.js +80 -0
  482. package/build/dist/Server/Utils/Telemetry/KubernetesResourceAttributes.js.map +1 -0
  483. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +122 -67
  484. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
  485. package/build/dist/Server/Utils/Telemetry/ResourceFacetPlanner.js +146 -0
  486. package/build/dist/Server/Utils/Telemetry/ResourceFacetPlanner.js.map +1 -0
  487. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +174 -248
  488. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  489. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +492 -0
  490. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -0
  491. package/build/dist/Server/Utils/Telemetry/TraceContextPropagation.js +259 -0
  492. package/build/dist/Server/Utils/Telemetry/TraceContextPropagation.js.map +1 -0
  493. package/build/dist/Server/Utils/Telemetry.js +11 -5
  494. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  495. package/build/dist/Types/AI/InvestigationEvidence.js +2 -0
  496. package/build/dist/Types/AI/InvestigationEvidence.js.map +1 -0
  497. package/build/dist/Types/OnCallDutyPolicy/Layer.js +11 -0
  498. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  499. package/build/dist/Types/Permission.js +2 -2
  500. package/build/dist/Types/Permission.js.map +1 -1
  501. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +9 -0
  502. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
  503. package/build/dist/Types/Rum/SessionReplay.js +95 -0
  504. package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
  505. package/build/dist/Types/Rum/SessionReplayApi.js.map +1 -1
  506. package/build/dist/Types/SecurityEvent/Connectors/ConnectorDiagnostics.js +18 -0
  507. package/build/dist/Types/SecurityEvent/Connectors/ConnectorDiagnostics.js.map +1 -0
  508. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.js +2 -0
  509. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.js.map +1 -0
  510. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.js +374 -0
  511. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.js.map +1 -0
  512. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.js +35 -0
  513. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.js.map +1 -0
  514. package/build/dist/Types/SecurityEvent/GoogleSecOpsRegion.js +35 -0
  515. package/build/dist/Types/SecurityEvent/GoogleSecOpsRegion.js.map +1 -0
  516. package/build/dist/Types/Telemetry/EntityType.js +14 -0
  517. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  518. package/build/dist/Types/Telemetry/ExceptionSpanScope.js +59 -0
  519. package/build/dist/Types/Telemetry/ExceptionSpanScope.js.map +1 -0
  520. package/build/dist/Types/Telemetry/LockedFilterDetail.js +16 -0
  521. package/build/dist/Types/Telemetry/LockedFilterDetail.js.map +1 -0
  522. package/build/dist/Types/Telemetry/ResourceEntityFacet.js +16 -10
  523. package/build/dist/Types/Telemetry/ResourceEntityFacet.js.map +1 -1
  524. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +119 -0
  525. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -0
  526. package/build/dist/UI/Components/Card/Card.js +34 -17
  527. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  528. package/build/dist/UI/Components/Checkbox/Checkbox.js +6 -4
  529. package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
  530. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js +5 -1
  531. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js.map +1 -1
  532. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +1 -1
  533. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  534. package/build/dist/UI/Components/Detail/Detail.js +63 -13
  535. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  536. package/build/dist/UI/Components/ErrorBoundary.js +34 -0
  537. package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
  538. package/build/dist/UI/Components/LogsViewer/LogsEntityNames.js +535 -0
  539. package/build/dist/UI/Components/LogsViewer/LogsEntityNames.js.map +1 -0
  540. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +117 -57
  541. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  542. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +5 -7
  543. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -1
  544. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js +31 -44
  545. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js.map +1 -1
  546. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +17 -3
  547. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
  548. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +19 -3
  549. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  550. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +64 -18
  551. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  552. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +100 -41
  553. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  554. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +13 -5
  555. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  556. package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
  557. package/build/dist/UI/Components/Markdown.tsx/InlineReferences.js +403 -0
  558. package/build/dist/UI/Components/Markdown.tsx/InlineReferences.js.map +1 -0
  559. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +197 -179
  560. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  561. package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js +30 -21
  562. package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js.map +1 -1
  563. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +12 -0
  564. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
  565. package/build/dist/UI/Components/ModelDetail/ModelDetail.js +46 -12
  566. package/build/dist/UI/Components/ModelDetail/ModelDetail.js.map +1 -1
  567. package/build/dist/UI/Components/ModelList/ModelList.js +26 -7
  568. package/build/dist/UI/Components/ModelList/ModelList.js.map +1 -1
  569. package/build/dist/UI/Components/Page/ModelPage.js +62 -34
  570. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  571. package/build/dist/UI/Components/Table/Table.js +3 -1
  572. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  573. package/build/dist/UI/Components/Table/TableRow.js +8 -1
  574. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  575. package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js +111 -0
  576. package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js.map +1 -0
  577. package/build/dist/UI/Components/TelemetryViewer/ResourceFacetConfigs.js +22 -0
  578. package/build/dist/UI/Components/TelemetryViewer/ResourceFacetConfigs.js.map +1 -0
  579. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +1 -1
  580. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  581. package/build/dist/UI/Components/TelemetryViewer/components/FacetSearchInput.js +36 -0
  582. package/build/dist/UI/Components/TelemetryViewer/components/FacetSearchInput.js.map +1 -0
  583. package/build/dist/UI/Components/TelemetryViewer/components/FacetSectionHeader.js +21 -0
  584. package/build/dist/UI/Components/TelemetryViewer/components/FacetSectionHeader.js.map +1 -0
  585. package/build/dist/UI/Components/TelemetryViewer/components/FacetShowMoreButton.js +14 -0
  586. package/build/dist/UI/Components/TelemetryViewer/components/FacetShowMoreButton.js.map +1 -0
  587. package/build/dist/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.js +27 -0
  588. package/build/dist/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.js.map +1 -0
  589. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterActions.js +88 -0
  590. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterActions.js.map +1 -0
  591. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js +228 -0
  592. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js.map +1 -0
  593. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.js +6 -6
  594. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.js.map +1 -1
  595. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.js +111 -12
  596. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.js.map +1 -1
  597. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js +27 -40
  598. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js.map +1 -1
  599. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +70 -10
  600. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  601. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +17 -3
  602. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
  603. package/build/dist/UI/Components/TelemetryViewer/types.js +0 -4
  604. package/build/dist/UI/Components/TelemetryViewer/types.js.map +1 -1
  605. package/build/dist/UI/Components/TelemetryViewer/useFacetSearchExemptions.js +70 -0
  606. package/build/dist/UI/Components/TelemetryViewer/useFacetSearchExemptions.js.map +1 -0
  607. package/build/dist/UI/Components/TelemetryViewer/useFacetSectionSearch.js +52 -0
  608. package/build/dist/UI/Components/TelemetryViewer/useFacetSectionSearch.js.map +1 -0
  609. package/build/dist/UI/Utils/Clipboard.js +59 -2
  610. package/build/dist/UI/Utils/Clipboard.js.map +1 -1
  611. package/build/dist/UI/Utils/Navigation.js +11 -2
  612. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  613. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +471 -0
  614. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -0
  615. package/build/dist/UI/Utils/Telemetry/UseTelemetryEntityNames.js +113 -0
  616. package/build/dist/UI/Utils/Telemetry/UseTelemetryEntityNames.js.map +1 -0
  617. package/build/dist/Utils/AI/InvestigationReport.js +1241 -0
  618. package/build/dist/Utils/AI/InvestigationReport.js.map +1 -0
  619. package/build/dist/Utils/API.js +25 -0
  620. package/build/dist/Utils/API.js.map +1 -1
  621. package/build/dist/Utils/Rum/SessionReplayHealth.js +10 -0
  622. package/build/dist/Utils/Rum/SessionReplayHealth.js.map +1 -1
  623. package/build/dist/Utils/Rum/SessionReplayRecordingEnded.js +54 -0
  624. package/build/dist/Utils/Rum/SessionReplayRecordingEnded.js.map +1 -0
  625. package/build/dist/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.js +311 -0
  626. package/build/dist/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.js.map +1 -0
  627. package/build/dist/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.js +150 -0
  628. package/build/dist/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.js.map +1 -0
  629. package/build/dist/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.js +328 -0
  630. package/build/dist/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.js.map +1 -0
  631. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.js +405 -0
  632. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.js.map +1 -0
  633. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.js +212 -0
  634. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.js.map +1 -0
  635. package/build/dist/Utils/SecurityEvent/Connectors/OktaNormalizer.js +351 -0
  636. package/build/dist/Utils/SecurityEvent/Connectors/OktaNormalizer.js.map +1 -0
  637. package/build/dist/Utils/SecurityEvent/Connectors/SplunkNormalizer.js +348 -0
  638. package/build/dist/Utils/SecurityEvent/Connectors/SplunkNormalizer.js.map +1 -0
  639. package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js +103 -10
  640. package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js.map +1 -1
  641. package/build/dist/Utils/Telemetry/CrossSignalScope.js +16 -5
  642. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
  643. package/build/dist/Utils/Telemetry/EntityRelationship.js +7 -0
  644. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
  645. package/build/dist/Utils/Telemetry/LockedFilterSearch.js +277 -0
  646. package/build/dist/Utils/Telemetry/LockedFilterSearch.js.map +1 -0
  647. package/build/dist/Utils/Telemetry/NetworkHost.js +39 -0
  648. package/build/dist/Utils/Telemetry/NetworkHost.js.map +1 -0
  649. package/build/dist/Utils/Telemetry/OriginAllowList.js +105 -4
  650. package/build/dist/Utils/Telemetry/OriginAllowList.js.map +1 -1
  651. package/build/dist/Utils/Traces/CriticalPath.js +9 -4
  652. package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
  653. package/package.json +1 -1
  654. package/Tests/UI/Rum/RecordingHealthStrip.test.tsx +0 -600
  655. package/UI/Components/GanttChart/Bar/BarLabel.tsx +0 -17
  656. package/UI/Components/GanttChart/Bar/Index.tsx +0 -149
  657. package/UI/Components/GanttChart/ChartContainer.tsx +0 -50
  658. package/UI/Components/GanttChart/Index.tsx +0 -90
  659. package/UI/Components/GanttChart/Row/Index.tsx +0 -22
  660. package/UI/Components/GanttChart/Row/Row.tsx +0 -231
  661. package/UI/Components/GanttChart/Row/RowLabel.tsx +0 -30
  662. package/UI/Components/GanttChart/Rows.tsx +0 -59
  663. package/UI/Components/GanttChart/Timeline/Index.tsx +0 -46
  664. package/UI/Components/GanttChart/Timeline/TimelineInterval.tsx +0 -33
  665. package/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.tsx +0 -43
  666. package/build/dist/UI/Components/GanttChart/Bar/BarLabel.js +0 -8
  667. package/build/dist/UI/Components/GanttChart/Bar/BarLabel.js.map +0 -1
  668. package/build/dist/UI/Components/GanttChart/Bar/Index.js +0 -77
  669. package/build/dist/UI/Components/GanttChart/Bar/Index.js.map +0 -1
  670. package/build/dist/UI/Components/GanttChart/ChartContainer.js +0 -33
  671. package/build/dist/UI/Components/GanttChart/ChartContainer.js.map +0 -1
  672. package/build/dist/UI/Components/GanttChart/Index.js +0 -39
  673. package/build/dist/UI/Components/GanttChart/Index.js.map +0 -1
  674. package/build/dist/UI/Components/GanttChart/Row/Index.js +0 -7
  675. package/build/dist/UI/Components/GanttChart/Row/Index.js.map +0 -1
  676. package/build/dist/UI/Components/GanttChart/Row/Row.js +0 -106
  677. package/build/dist/UI/Components/GanttChart/Row/Row.js.map +0 -1
  678. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js +0 -10
  679. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js.map +0 -1
  680. package/build/dist/UI/Components/GanttChart/Rows.js +0 -19
  681. package/build/dist/UI/Components/GanttChart/Rows.js.map +0 -1
  682. package/build/dist/UI/Components/GanttChart/Timeline/Index.js +0 -16
  683. package/build/dist/UI/Components/GanttChart/Timeline/Index.js.map +0 -1
  684. package/build/dist/UI/Components/GanttChart/Timeline/TimelineInterval.js +0 -13
  685. package/build/dist/UI/Components/GanttChart/Timeline/TimelineInterval.js.map +0 -1
  686. package/build/dist/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.js +0 -13
  687. package/build/dist/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.js.map +0 -1
@@ -0,0 +1,535 @@
1
+ import { isResourceEntityFacetKey, isResourceFacetKey, isServiceFacetKey, } from "../../../Types/Telemetry/ResourceEntityFacet";
2
+ import { getResourceFacetLabelMap, getResourceFacetServiceTypeMap, } from "../../../Types/Telemetry/ResourceFacetCatalog";
3
+ import ServiceType from "../../../Types/Telemetry/ServiceType";
4
+ import { DEFAULT_TELEMETRY_ENTITY_LABEL, getTelemetryEntityDisplay, TELEMETRY_ENTITY_TYPES, } from "../../Utils/Telemetry/TelemetryEntityNames";
5
+ /*
6
+ * Non-Service resource facets name one specific table, so their ids can
7
+ * skip the Service-first probe and go straight to it. Every catalog resource
8
+ * type is listed — not only the four the viewer preloads — so a Proxmox
9
+ * cluster or IoT fleet facet value / chip is still sent to its own table.
10
+ * Catalog order is kept: findLoadedLogsResourceEntity probes the preloaded
11
+ * maps in this order.
12
+ */
13
+ export const LOGS_RESOURCE_FACET_ENTITY_TYPES = Object.fromEntries(getResourceFacetServiceTypeMap());
14
+ /*
15
+ * Telemetry entity ids are Postgres UUIDs. A chip value that is not one (a
16
+ * service name typed into the search bar that did not match a loaded
17
+ * Service) would only make every entity table answer "not found", so it is
18
+ * never sent to the resolver.
19
+ */
20
+ const ENTITY_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
21
+ export const isLogsEntityIdValue = (value) => {
22
+ return typeof value === "string" && ENTITY_ID_PATTERN.test(value.trim());
23
+ };
24
+ const nonEmpty = (value) => {
25
+ if (value === null || value === undefined) {
26
+ return undefined;
27
+ }
28
+ const text = `${value}`.trim();
29
+ return text.length > 0 ? text : undefined;
30
+ };
31
+ /*
32
+ * The name the viewer's preloaded maps already know for a resource facet
33
+ * value, or undefined. These win over the generic resolver: they are loaded
34
+ * anyway and carry extras (a Service's colour) the resolver does not.
35
+ */
36
+ export const getLoadedLogsEntityName = (facetKey, id, maps) => {
37
+ var _a, _b, _c, _d, _e;
38
+ if (isServiceFacetKey(facetKey)) {
39
+ return nonEmpty((_a = maps.serviceMap[id]) === null || _a === void 0 ? void 0 : _a.name);
40
+ }
41
+ if (facetKey === "hostId") {
42
+ const host = (_b = maps.hostMap) === null || _b === void 0 ? void 0 : _b[id];
43
+ return nonEmpty(host === null || host === void 0 ? void 0 : host.name) || nonEmpty(host === null || host === void 0 ? void 0 : host.hostIdentifier);
44
+ }
45
+ if (facetKey === "dockerHostId") {
46
+ const dockerHost = (_c = maps.dockerHostMap) === null || _c === void 0 ? void 0 : _c[id];
47
+ return nonEmpty(dockerHost === null || dockerHost === void 0 ? void 0 : dockerHost.name) || nonEmpty(dockerHost === null || dockerHost === void 0 ? void 0 : dockerHost.hostIdentifier);
48
+ }
49
+ if (facetKey === "podmanHostId") {
50
+ const podmanHost = (_d = maps.podmanHostMap) === null || _d === void 0 ? void 0 : _d[id];
51
+ return nonEmpty(podmanHost === null || podmanHost === void 0 ? void 0 : podmanHost.name) || nonEmpty(podmanHost === null || podmanHost === void 0 ? void 0 : podmanHost.hostIdentifier);
52
+ }
53
+ if (facetKey === "kubernetesClusterId") {
54
+ const cluster = (_e = maps.kubernetesClusterMap) === null || _e === void 0 ? void 0 : _e[id];
55
+ return nonEmpty(cluster === null || cluster === void 0 ? void 0 : cluster.name) || nonEmpty(cluster === null || cluster === void 0 ? void 0 : cluster.clusterIdentifier);
56
+ }
57
+ return undefined;
58
+ };
59
+ /*
60
+ * A primaryEntityId is polymorphic: agent-ingested host / container /
61
+ * cluster telemetry carries the Host / DockerHost / PodmanHost /
62
+ * KubernetesCluster id. Production log rows are not guaranteed to carry
63
+ * primaryEntityType, so the only way to tell such an id apart from a
64
+ * Service id without a network round trip is to look it up in the
65
+ * non-Service maps the viewer has already preloaded. Returns the name
66
+ * (name, else the machine identifier) and the table it was found in.
67
+ */
68
+ export const findLoadedLogsResourceEntity = (id, maps) => {
69
+ if (!id || !maps) {
70
+ return undefined;
71
+ }
72
+ for (const [facetKey, entityType] of Object.entries(LOGS_RESOURCE_FACET_ENTITY_TYPES)) {
73
+ const name = getLoadedLogsEntityName(facetKey, id, Object.assign(Object.assign({}, maps), { serviceMap: {} }));
74
+ if (name) {
75
+ return {
76
+ name,
77
+ entityType,
78
+ typeLabel: TELEMETRY_ENTITY_TYPES[entityType].label,
79
+ };
80
+ }
81
+ }
82
+ return undefined;
83
+ };
84
+ /*
85
+ * A parent (the Dashboard logs explorer) may hand chips over already named
86
+ * — e.g. "RUM Application: checkout-web". Its displayValue then differs from
87
+ * the id and must not be overwritten with anything less specific.
88
+ */
89
+ const hasParentResolvedDisplay = (filter) => {
90
+ return (typeof filter.displayValue === "string" &&
91
+ filter.displayValue.length > 0 &&
92
+ filter.displayValue !== filter.value);
93
+ };
94
+ /*
95
+ * Name one chip. Precedence for primaryEntityId / serviceId / hostId / … :
96
+ * 1. the preloaded map (existing behaviour, keeps the key as given);
97
+ * 2. a name the parent already supplied (left untouched);
98
+ * 3. for Service-keyed chips, a preloaded host / cluster with that id —
99
+ * the key becomes its type ("Host");
100
+ * 4. the generic resolver — for Service-keyed chips the key becomes the
101
+ * entity's type ("RUM Application"), for the typed resource facets the
102
+ * key ("Host") is already right and only the value changes;
103
+ * 5. otherwise the chip is returned as it came in.
104
+ * Non-resource chips are never touched.
105
+ */
106
+ export const enrichLogsActiveFilter = (filter, maps, entityNameMap) => {
107
+ if (!isResourceFacetKey(filter.facetKey) ||
108
+ typeof filter.value !== "string") {
109
+ return filter;
110
+ }
111
+ const loadedName = getLoadedLogsEntityName(filter.facetKey, filter.value, maps);
112
+ if (loadedName) {
113
+ return Object.assign(Object.assign({}, filter), { displayValue: loadedName });
114
+ }
115
+ if (hasParentResolvedDisplay(filter)) {
116
+ return filter;
117
+ }
118
+ /*
119
+ * A Service-keyed chip whose id is a preloaded host / cluster is named
120
+ * from that map, keyed by its type like a resolver answer would be. The
121
+ * id is then never sent to the resolver (collectLogsEntityIdsToResolve
122
+ * skips it), so this is the only place it gets named.
123
+ */
124
+ if (isServiceFacetKey(filter.facetKey)) {
125
+ const loadedResource = findLoadedLogsResourceEntity(filter.value, maps);
126
+ if (loadedResource) {
127
+ return Object.assign(Object.assign({}, filter), { displayKey: loadedResource.typeLabel, displayValue: loadedResource.name });
128
+ }
129
+ }
130
+ const resolved = entityNameMap === null || entityNameMap === void 0 ? void 0 : entityNameMap[filter.value];
131
+ if (!resolved) {
132
+ return filter;
133
+ }
134
+ if (isServiceFacetKey(filter.facetKey)) {
135
+ const display = getTelemetryEntityDisplay({
136
+ id: filter.value,
137
+ nameMap: entityNameMap,
138
+ fallbackKey: filter.displayKey,
139
+ });
140
+ return Object.assign(Object.assign({}, filter), { displayKey: display.key, displayValue: display.value });
141
+ }
142
+ return Object.assign(Object.assign({}, filter), { displayValue: resolved.name });
143
+ };
144
+ export const enrichLogsActiveFilters = (filters, maps, entityNameMap) => {
145
+ return (filters || []).map((filter) => {
146
+ return enrichLogsActiveFilter(filter, maps, entityNameMap);
147
+ });
148
+ };
149
+ /*
150
+ * A parent that knows what its scope ids are (a RUM page) labels the chip
151
+ * with the entity's type ("RUM Application") before the name has landed.
152
+ * Reading that label back as a type hint sends the id straight to its own
153
+ * table; unhinted, a non-Service id misses the Service probe and then fans
154
+ * out to every other entity table. "Service" is ambiguous (a Service or the
155
+ * project-level Unknown bucket) and is the generic default, so it is never
156
+ * read as a hint.
157
+ */
158
+ export const getTelemetryEntityTypeForChipKey = (displayKey) => {
159
+ const label = nonEmpty(displayKey);
160
+ if (!label || label === DEFAULT_TELEMETRY_ENTITY_LABEL) {
161
+ return undefined;
162
+ }
163
+ const matches = Object.keys(TELEMETRY_ENTITY_TYPES).filter((type) => {
164
+ return TELEMETRY_ENTITY_TYPES[type].label === label;
165
+ });
166
+ return matches.length === 1 ? matches[0] : undefined;
167
+ };
168
+ /*
169
+ * The server's name for a facet value, or undefined. A blank displayName, or
170
+ * one that merely echoes the value (an id the server could not name), is
171
+ * not a name: it must neither suppress the client-side resolver nor win
172
+ * over a name the viewer does have.
173
+ */
174
+ export const getServerFacetDisplayName = (facetValue) => {
175
+ var _a;
176
+ const displayName = nonEmpty(facetValue === null || facetValue === void 0 ? void 0 : facetValue.displayName);
177
+ if (!displayName || displayName === `${(_a = facetValue === null || facetValue === void 0 ? void 0 : facetValue.value) !== null && _a !== void 0 ? _a : ""}`.trim()) {
178
+ return undefined;
179
+ }
180
+ return displayName;
181
+ };
182
+ /*
183
+ * What a sidebar facet row prints: the server's name, then the viewer's
184
+ * display map (preloaded resources + resolver names), then undefined so the
185
+ * row falls back to the raw value.
186
+ */
187
+ export const getFacetValueDisplayLabel = (facetValue, valueDisplayMap) => {
188
+ return (getServerFacetDisplayName(facetValue) ||
189
+ nonEmpty(valueDisplayMap === null || valueDisplayMap === void 0 ? void 0 : valueDisplayMap[facetValue.value]) ||
190
+ undefined);
191
+ };
192
+ const getFacetDisplayNames = (facetData, facetKey) => {
193
+ const map = {};
194
+ for (const facetValue of (facetData === null || facetData === void 0 ? void 0 : facetData[facetKey]) || []) {
195
+ const displayName = getServerFacetDisplayName(facetValue);
196
+ if (displayName) {
197
+ map[facetValue.value] = displayName;
198
+ }
199
+ }
200
+ return map;
201
+ };
202
+ /*
203
+ * Everything the viewer shows that can name an entity by id and that the
204
+ * preloaded maps / server / parent have not named yet, gathered into ONE
205
+ * resolver request:
206
+ * - resource chips (base + user), unless already named;
207
+ * - the primaryEntityId of every displayed log missing from the
208
+ * preloaded maps (hinted by the row's primaryEntityType when the row
209
+ * carries it);
210
+ * - primaryEntityId search suggestions without a server displayName;
211
+ * - resource facet values in the sidebar without a server displayName.
212
+ *
213
+ * A Service-keyed id (chip, log row, suggestion) found in a preloaded
214
+ * non-Service map is named from that map by enrichLogsActiveFilter /
215
+ * getLogEntityDisplay / resolvePrimaryEntitySuggestions, so it is not
216
+ * requested. The sidebar's primaryEntityId rows only read serviceMap and
217
+ * the resolver, so such an id is still requested there, but hinted to the
218
+ * table it was found in rather than probing Services and fanning out.
219
+ */
220
+ export const collectLogsEntityIdsToResolve = (data) => {
221
+ var _a;
222
+ const ids = new Set();
223
+ const typeHints = {};
224
+ const add = (facetKey, rawId, hint, loadedResourceIds) => {
225
+ if (!isLogsEntityIdValue(rawId)) {
226
+ return;
227
+ }
228
+ const id = rawId.trim();
229
+ if (getLoadedLogsEntityName(facetKey, id, data.maps)) {
230
+ return;
231
+ }
232
+ const loadedResource = isServiceFacetKey(facetKey)
233
+ ? findLoadedLogsResourceEntity(id, data.maps)
234
+ : undefined;
235
+ // Default "skip": the caller names it from the preloaded map.
236
+ if (loadedResource && loadedResourceIds !== "hint") {
237
+ return;
238
+ }
239
+ ids.add(id);
240
+ const typeHint = LOGS_RESOURCE_FACET_ENTITY_TYPES[facetKey] ||
241
+ (loadedResource === null || loadedResource === void 0 ? void 0 : loadedResource.entityType) ||
242
+ (hint &&
243
+ Object.prototype.hasOwnProperty.call(TELEMETRY_ENTITY_TYPES, `${hint}`)
244
+ ? `${hint}`
245
+ : undefined);
246
+ if (typeHint && !typeHints[id]) {
247
+ typeHints[id] = typeHint;
248
+ }
249
+ };
250
+ for (const filter of data.filters || []) {
251
+ if (!isResourceFacetKey(filter.facetKey)) {
252
+ continue;
253
+ }
254
+ if (hasParentResolvedDisplay(filter)) {
255
+ continue;
256
+ }
257
+ add(filter.facetKey, filter.value, getTelemetryEntityTypeForChipKey(filter.displayKey));
258
+ }
259
+ for (const log of data.logs || []) {
260
+ add("primaryEntityId", (_a = log.primaryEntityId) === null || _a === void 0 ? void 0 : _a.toString(), log.primaryEntityType);
261
+ }
262
+ const serviceFacetDisplayNames = getFacetDisplayNames(data.facetData, "primaryEntityId");
263
+ for (const id of data.suggestionIds || []) {
264
+ if (serviceFacetDisplayNames[id]) {
265
+ continue;
266
+ }
267
+ add("primaryEntityId", id);
268
+ }
269
+ for (const [facetKey, values] of Object.entries(data.facetData || {})) {
270
+ if (!isResourceFacetKey(facetKey)) {
271
+ continue;
272
+ }
273
+ for (const facetValue of values || []) {
274
+ if (getServerFacetDisplayName(facetValue)) {
275
+ continue;
276
+ }
277
+ add(facetKey, facetValue.value, undefined, "hint");
278
+ }
279
+ }
280
+ return {
281
+ ids: Array.from(ids).sort(),
282
+ typeHints,
283
+ };
284
+ };
285
+ /*
286
+ * What a log row / details header shows for the log's primary entity:
287
+ * a preloaded Service (name + colour) first, then a preloaded host /
288
+ * cluster (agent-ingested telemetry is primary-keyed on it, and those ids
289
+ * are not sent to the resolver), then the generic resolver's name, then the
290
+ * raw id so the row is never blank.
291
+ */
292
+ export const getLogEntityDisplay = (data) => {
293
+ var _a;
294
+ const id = data.primaryEntityId || "";
295
+ const service = id ? data.serviceMap[id] : undefined;
296
+ const serviceName = nonEmpty(service === null || service === void 0 ? void 0 : service.name);
297
+ const color = (service === null || service === void 0 ? void 0 : service.serviceColor)
298
+ ? service.serviceColor.toString()
299
+ : undefined;
300
+ if (serviceName) {
301
+ return { name: serviceName, color, typeLabel: undefined };
302
+ }
303
+ const loadedResource = findLoadedLogsResourceEntity(id, data.resourceMaps);
304
+ if (loadedResource) {
305
+ return {
306
+ name: loadedResource.name,
307
+ color,
308
+ typeLabel: loadedResource.typeLabel,
309
+ };
310
+ }
311
+ const resolved = id
312
+ ? (_a = data.entityNameMap) === null || _a === void 0 ? void 0 : _a[id]
313
+ : undefined;
314
+ if (resolved) {
315
+ return { name: resolved.name, color, typeLabel: resolved.typeLabel };
316
+ }
317
+ return { name: id || undefined, color, typeLabel: undefined };
318
+ };
319
+ // id -> name for every entity the resolver named.
320
+ export const buildEntityNameDisplayMap = (entityNameMap) => {
321
+ const map = {};
322
+ for (const [id, entity] of Object.entries(entityNameMap || {})) {
323
+ if (entity === null || entity === void 0 ? void 0 : entity.name) {
324
+ map[id] = entity.name;
325
+ }
326
+ }
327
+ return map;
328
+ };
329
+ /*
330
+ * Sidebar facet row labels: resolver names underneath, the preloaded map on
331
+ * top (server displayName still wins inside FacetSection).
332
+ */
333
+ export const mergeFacetValueDisplayMap = (loadedDisplayMap, entityNameMap) => {
334
+ return Object.assign(Object.assign({}, buildEntityNameDisplayMap(entityNameMap)), (loadedDisplayMap || {}));
335
+ };
336
+ /*
337
+ * The `service:` value dropdown lists primaryEntityId ids. Show names —
338
+ * server facet displayName first (it covers every entity type), then the
339
+ * preloaded Service, then a preloaded host / cluster, then the generic
340
+ * resolver, then the id — and remember how to map the picked label back
341
+ * to the id the filter needs.
342
+ *
343
+ * The filter needs the id, and picking is by label, so every label must
344
+ * name exactly one id. Names are not unique across entity types (a Service
345
+ * and a RUM application can both be "checkout") or across case, and a
346
+ * shared label used to silently filter by whichever id came first. Every
347
+ * entity in a case-insensitive name clash is shown as "name (Type)"; if
348
+ * that is still ambiguous (same type) or the type is unknown, the id itself
349
+ * is shown. A plain typed "checkout" then misses the suggestions and falls
350
+ * back to the preloaded Service scan, as before.
351
+ */
352
+ export const resolvePrimaryEntitySuggestions = (data) => {
353
+ var _a, _b;
354
+ const displayNames = getFacetDisplayNames({ primaryEntityId: data.facetValues || [] }, "primaryEntityId");
355
+ const candidates = [];
356
+ const seenIds = new Set();
357
+ for (const id of data.ids) {
358
+ if (!id || seenIds.has(id)) {
359
+ continue;
360
+ }
361
+ seenIds.add(id);
362
+ const serviceName = nonEmpty((_a = data.serviceMap[id]) === null || _a === void 0 ? void 0 : _a.name);
363
+ const loadedResource = serviceName
364
+ ? undefined
365
+ : findLoadedLogsResourceEntity(id, data.resourceMaps);
366
+ const resolved = (_b = data.entityNameMap) === null || _b === void 0 ? void 0 : _b[id];
367
+ candidates.push({
368
+ id,
369
+ name: displayNames[id] ||
370
+ serviceName ||
371
+ (loadedResource === null || loadedResource === void 0 ? void 0 : loadedResource.name) ||
372
+ nonEmpty(resolved === null || resolved === void 0 ? void 0 : resolved.name) ||
373
+ id,
374
+ typeLabel: serviceName
375
+ ? TELEMETRY_ENTITY_TYPES[ServiceType.OpenTelemetry].label
376
+ : (loadedResource === null || loadedResource === void 0 ? void 0 : loadedResource.typeLabel) || nonEmpty(resolved === null || resolved === void 0 ? void 0 : resolved.typeLabel),
377
+ });
378
+ }
379
+ const countByLower = (values) => {
380
+ const counts = new Map();
381
+ for (const value of values) {
382
+ const lower = value.toLowerCase();
383
+ counts.set(lower, (counts.get(lower) || 0) + 1);
384
+ }
385
+ return counts;
386
+ };
387
+ const nameCounts = countByLower(candidates.map((candidate) => {
388
+ return candidate.name;
389
+ }));
390
+ const isClashing = (candidate) => {
391
+ // An unnamed id is its own label and ids are unique.
392
+ return (candidate.name !== candidate.id &&
393
+ (nameCounts.get(candidate.name.toLowerCase()) || 0) > 1);
394
+ };
395
+ /*
396
+ * Labels that need no qualifying are reserved first, so "checkout
397
+ * (Service)" made up for a clash never takes the label of an entity that
398
+ * is really called that.
399
+ */
400
+ const reserved = new Set();
401
+ for (const candidate of candidates) {
402
+ if (!isClashing(candidate)) {
403
+ reserved.add(candidate.name.toLowerCase());
404
+ }
405
+ }
406
+ const qualifiedLabelFor = (candidate) => {
407
+ return candidate.typeLabel
408
+ ? `${candidate.name} (${candidate.typeLabel})`
409
+ : undefined;
410
+ };
411
+ const qualifiedCounts = countByLower(candidates
412
+ .filter(isClashing)
413
+ .map((candidate) => {
414
+ return qualifiedLabelFor(candidate) || candidate.id;
415
+ }));
416
+ const labels = [];
417
+ const labelToId = {};
418
+ for (const candidate of candidates) {
419
+ let label = candidate.name;
420
+ if (isClashing(candidate)) {
421
+ const qualified = qualifiedLabelFor(candidate);
422
+ const lowerQualified = (qualified || "").toLowerCase();
423
+ label =
424
+ qualified &&
425
+ !reserved.has(lowerQualified) &&
426
+ (qualifiedCounts.get(lowerQualified) || 0) === 1
427
+ ? qualified
428
+ : candidate.id;
429
+ }
430
+ labels.push(label);
431
+ labelToId[label.toLowerCase()] = candidate.id;
432
+ }
433
+ return { labels, labelToId };
434
+ };
435
+ /*
436
+ * ---- Analytics view ----
437
+ *
438
+ * Group-by values for an entity dimension (primaryEntityId, or a typed
439
+ * resource id key) are ids; the chart keeps them as series keys (two
440
+ * entities with the same name must stay two series) and only the labels
441
+ * change.
442
+ */
443
+ export const ANALYTICS_DIMENSION_LABELS = Object.assign(Object.assign({ severityText: "Severity", primaryEntityId: "Service", serviceId: "Service" }, getResourceFacetLabelMap()), { traceId: "Trace ID", spanId: "Span ID" });
444
+ export const isAnalyticsEntityDimension = (key) => {
445
+ return isResourceFacetKey(key);
446
+ };
447
+ /*
448
+ * Ids to name for the analytics result on screen.
449
+ *
450
+ * Grouped rows (timeseries / table) are read by their own groupValues keys
451
+ * — the same keys the legend and table cells label them by. The group-by
452
+ * of the last fetch is not a safe guide: it belongs to whichever chart type
453
+ * fetched last, so after switching chart type the leftover rows of the
454
+ * other type (grouped differently) had their ids dropped from the request
455
+ * and their names fell back to UUIDs until the refetch landed.
456
+ *
457
+ * A top list item carries only a value, so it is read against
458
+ * `groupByFields[0]`, the dimension its label is rendered with.
459
+ */
460
+ export const collectAnalyticsEntityIds = (data) => {
461
+ const ids = new Set();
462
+ const typeHints = {};
463
+ const add = (key, value) => {
464
+ if (!isAnalyticsEntityDimension(key) || !isLogsEntityIdValue(value)) {
465
+ return;
466
+ }
467
+ const id = value.trim();
468
+ ids.add(id);
469
+ const hint = LOGS_RESOURCE_FACET_ENTITY_TYPES[key];
470
+ if (hint && !typeHints[id]) {
471
+ typeHints[id] = hint;
472
+ }
473
+ };
474
+ for (const row of data.groupedRows || []) {
475
+ for (const [key, value] of Object.entries((row === null || row === void 0 ? void 0 : row.groupValues) || {})) {
476
+ add(key, value);
477
+ }
478
+ }
479
+ const topListKey = data.groupByFields[0];
480
+ if (topListKey) {
481
+ for (const item of data.topListItems || []) {
482
+ add(topListKey, item.value);
483
+ }
484
+ }
485
+ return { ids: Array.from(ids).sort(), typeHints };
486
+ };
487
+ // Label for one group-by value: the entity name for entity dimensions.
488
+ export const getAnalyticsGroupValueLabel = (key, value, entityNameMap) => {
489
+ var _a;
490
+ if (!key || !isAnalyticsEntityDimension(key) || !value) {
491
+ return value;
492
+ }
493
+ return ((_a = entityNameMap === null || entityNameMap === void 0 ? void 0 : entityNameMap[value]) === null || _a === void 0 ? void 0 : _a.name) || value;
494
+ };
495
+ /*
496
+ * Column header for a group-by dimension. Entity dimensions use the type of
497
+ * the values when they all resolved to the same one (a RUM application's
498
+ * logs grouped by entity read "RUM Application"); a mixed or unresolved set
499
+ * keeps the generic label. Other known dimensions get their friendly label;
500
+ * attribute keys stay as typed.
501
+ */
502
+ export const getAnalyticsDimensionLabel = (key, values, entityNameMap) => {
503
+ const fallback = ANALYTICS_DIMENSION_LABELS[key] || key;
504
+ if (!isAnalyticsEntityDimension(key) || isResourceEntityFacetKey(key)) {
505
+ return fallback;
506
+ }
507
+ const nonEmptyValues = values.filter((value) => {
508
+ return Boolean(value);
509
+ });
510
+ if (nonEmptyValues.length === 0) {
511
+ return fallback;
512
+ }
513
+ const labels = new Set();
514
+ for (const value of nonEmptyValues) {
515
+ const resolved = entityNameMap === null || entityNameMap === void 0 ? void 0 : entityNameMap[value];
516
+ if (!resolved) {
517
+ return fallback;
518
+ }
519
+ labels.add(resolved.typeLabel);
520
+ }
521
+ return labels.size === 1 ? Array.from(labels)[0] : fallback;
522
+ };
523
+ /*
524
+ * Legend / tooltip label for a timeseries series. The series key joins the
525
+ * row's group values with " / " (see pivotTimeseriesData); the label joins
526
+ * the same values after naming them.
527
+ */
528
+ export const getAnalyticsSeriesLabel = (groupValues, entityNameMap) => {
529
+ return Object.entries(groupValues)
530
+ .map(([key, value]) => {
531
+ return getAnalyticsGroupValueLabel(key, value, entityNameMap);
532
+ })
533
+ .join(" / ");
534
+ };
535
+ //# sourceMappingURL=LogsEntityNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogsEntityNames.js","sourceRoot":"","sources":["../../../../../UI/Components/LogsViewer/LogsEntityNames.ts"],"names":[],"mappings":"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"}