@oneuptime/common 13.0.4 → 13.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) 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/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +55 -2
  160. package/Tests/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.test.ts +1240 -0
  161. package/Tests/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.test.ts +1853 -0
  162. package/Tests/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.test.ts +1129 -0
  163. package/Tests/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.test.ts +1066 -0
  164. package/Tests/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.test.ts +1568 -0
  165. package/Tests/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.test.ts +930 -0
  166. package/Tests/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.test.ts +1409 -0
  167. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.test.ts +763 -0
  168. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.test.ts +1296 -0
  169. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.test.ts +1102 -0
  170. package/Tests/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.test.ts +1174 -0
  171. package/Tests/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.test.ts +1032 -0
  172. package/Tests/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.test.ts +1558 -0
  173. package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.test.ts +3041 -0
  174. package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.test.ts +1168 -0
  175. package/Tests/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.test.ts +906 -0
  176. package/Tests/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.test.ts +1068 -0
  177. package/Tests/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.test.ts +1004 -0
  178. package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.test.ts +784 -0
  179. package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.test.ts +113 -1
  180. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +5 -1
  181. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsDiagnostics.test.ts +93 -13
  182. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsHttpIntegration.test.ts +23 -1
  183. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +25 -3
  184. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +22 -8
  185. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +82 -16
  186. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSearchDetections.test.ts +730 -0
  187. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsThreePassPoller.test.ts +1577 -0
  188. package/Tests/Server/Utils/SessionReplay/SessionReplayOriginAllowlist.test.ts +41 -0
  189. package/Tests/Server/Utils/SessionReplay/SessionReplayReadServiceQueries.test.ts +1453 -18
  190. package/Tests/Server/Utils/Telemetry/KubernetesResourceAttributes.test.ts +162 -0
  191. package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +460 -13
  192. package/Tests/Server/Utils/Telemetry/ResourceFacetPlanner.test.ts +678 -0
  193. package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +348 -2
  194. package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +525 -0
  195. package/Tests/Server/Utils/Telemetry/TraceContextPropagation.test.ts +420 -0
  196. package/Tests/Types/Rum/SessionReplayApiContracts.test.ts +73 -0
  197. package/Tests/Types/Rum/SessionReplayTransportContracts.test.ts +95 -0
  198. package/Tests/Types/SecurityEvent/Connectors/ConnectorDiagnostics.test.ts +82 -0
  199. package/Tests/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.test.ts +314 -0
  200. package/Tests/Types/Telemetry/ExceptionSpanScope.test.ts +89 -0
  201. package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +96 -0
  202. package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +304 -0
  203. package/Tests/UI/Components/ActiveFilterChipsLockedFilters.test.tsx +357 -0
  204. package/Tests/UI/Components/Card.test.tsx +312 -1
  205. package/Tests/UI/Components/CardModelDetailHeaderLayout.test.tsx +253 -0
  206. package/Tests/UI/Components/CardModelDetailRefresher.test.tsx +342 -0
  207. package/Tests/UI/Components/Checkbox.test.tsx +79 -0
  208. package/Tests/UI/Components/CopyTextButton.test.tsx +142 -0
  209. package/Tests/UI/Components/DetailCompactStyle.test.tsx +621 -0
  210. package/Tests/UI/Components/ErrorBoundary.test.tsx +60 -0
  211. package/Tests/UI/Components/FacetSections.test.tsx +581 -0
  212. package/Tests/UI/Components/FacetSidebarControls.test.tsx +812 -0
  213. package/Tests/UI/Components/FacetVisibility.test.ts +429 -0
  214. package/Tests/UI/Components/LockedFilterActions.test.tsx +396 -0
  215. package/Tests/UI/Components/LockedFilterChip.test.tsx +651 -0
  216. package/Tests/UI/Components/LogsEntityNames.test.ts +1769 -0
  217. package/Tests/UI/Components/LogsEntityNamesComponents.test.tsx +696 -0
  218. package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +600 -0
  219. package/Tests/UI/Components/LogsViewerEntityNames.test.tsx +713 -0
  220. package/Tests/UI/Components/MarkdownInlineReferences.test.tsx +2079 -0
  221. package/Tests/UI/Components/MemberRoleAssignment.test.tsx +446 -0
  222. package/Tests/UI/Components/ModelDetailRefetch.test.tsx +397 -0
  223. package/Tests/UI/Components/ModelListRefetch.test.tsx +233 -0
  224. package/Tests/UI/Components/ModelPageModelChange.test.tsx +409 -0
  225. package/Tests/UI/Components/PaginationIntegration.test.tsx +25 -0
  226. package/Tests/UI/Components/ResourceFacetConfigs.test.ts +172 -0
  227. package/Tests/UI/Components/SavedViewsSidebarIntegration.test.tsx +32 -14
  228. package/Tests/UI/Components/TableSortAndMobileColumns.test.tsx +44 -1
  229. package/Tests/UI/Components/TelemetryActiveFilterChipsLockedFilters.test.tsx +304 -0
  230. package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +718 -0
  231. package/Tests/UI/Monitor/EvaluationLogList.test.tsx +303 -0
  232. package/Tests/UI/Monitor/MonitorSummarySnapshotRender.test.tsx +55 -1
  233. package/Tests/UI/Rum/FidelityNotices.test.ts +22 -0
  234. package/Tests/UI/Rum/RecordingHealthCard.test.tsx +120 -136
  235. package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +988 -0
  236. package/Tests/UI/Rum/ReplayCard.test.tsx +32 -0
  237. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +709 -12
  238. package/Tests/UI/Rum/ReplayHeader.test.tsx +50 -1
  239. package/Tests/UI/Rum/ReplayPinControl.test.tsx +67 -10
  240. package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +41 -12
  241. package/Tests/UI/Rum/ReplayStage.test.tsx +663 -1
  242. package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +173 -0
  243. package/Tests/UI/Rum/ReplayUi.test.tsx +189 -2
  244. package/Tests/UI/Rum/ReplayUserSessionsMenu.test.tsx +91 -0
  245. package/Tests/UI/Rum/SessionReplayEmptyState.test.tsx +1 -1
  246. package/Tests/UI/Rum/SessionReplaySettingsPolicyLoading.test.tsx +585 -0
  247. package/Tests/UI/Rum/SessionReplayTable.test.tsx +844 -51
  248. package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +29 -1
  249. package/Tests/UI/Telemetry/TelemetryDetailPanel.test.tsx +288 -0
  250. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +31 -1
  251. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +6 -0
  252. package/Tests/UI/Utils/Clipboard.test.ts +154 -0
  253. package/Tests/UI/Utils/Navigation.test.ts +24 -0
  254. package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +2205 -0
  255. package/Tests/UI/Utils/Telemetry/UseTelemetryEntityNames.test.tsx +844 -0
  256. package/Tests/Utils/AI/InvestigationReport.test.ts +2430 -0
  257. package/Tests/Utils/APIOutgoingRequestTracer.test.ts +137 -0
  258. package/Tests/Utils/Rum/SessionReplayHealthDiagnosis.test.ts +40 -0
  259. package/Tests/Utils/Rum/SessionReplayRecordingEnded.test.ts +619 -0
  260. package/Tests/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.test.ts +631 -0
  261. package/Tests/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.test.ts +479 -0
  262. package/Tests/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.test.ts +507 -0
  263. package/Tests/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.test.ts +686 -0
  264. package/Tests/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.test.ts +474 -0
  265. package/Tests/Utils/SecurityEvent/Connectors/OktaNormalizer.test.ts +736 -0
  266. package/Tests/Utils/SecurityEvent/Connectors/SplunkNormalizer.test.ts +407 -0
  267. package/Tests/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.test.ts +129 -0
  268. package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +57 -1
  269. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +36 -0
  270. package/Tests/Utils/Telemetry/LockedFilterSearch.test.ts +600 -0
  271. package/Tests/Utils/Telemetry/NetworkHost.test.ts +48 -0
  272. package/Tests/Utils/Telemetry/OriginAllowList.test.ts +154 -0
  273. package/Tests/Utils/Traces/CriticalPath.test.ts +25 -0
  274. package/Types/AI/AIChatTypes.ts +8 -0
  275. package/Types/AI/InvestigationEvidence.ts +96 -0
  276. package/Types/Monitor/MonitorEvaluationSummary.ts +5 -0
  277. package/Types/Permission.ts +2 -2
  278. package/Types/Rum/SessionReplay.ts +109 -0
  279. package/Types/Rum/SessionReplayApi.ts +31 -0
  280. package/Types/SecurityEvent/Connectors/ConnectorDiagnostics.ts +111 -0
  281. package/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.ts +87 -0
  282. package/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.ts +492 -0
  283. package/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.ts +41 -0
  284. package/Types/SecurityEvent/GoogleSecOpsDiagnostics.ts +56 -1
  285. package/Types/SecurityEvent/GoogleSecOpsRegion.ts +34 -0
  286. package/Types/Telemetry/EntityType.ts +14 -0
  287. package/Types/Telemetry/ExceptionSpanScope.ts +83 -0
  288. package/Types/Telemetry/LockedFilterDetail.ts +46 -0
  289. package/Types/Telemetry/ResourceEntityFacet.ts +17 -10
  290. package/Types/Telemetry/ResourceFacetCatalog.ts +171 -0
  291. package/UI/Components/Card/Card.tsx +118 -83
  292. package/UI/Components/Checkbox/Checkbox.tsx +8 -5
  293. package/UI/Components/CopyTextButton/CopyTextButton.tsx +7 -1
  294. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +4 -1
  295. package/UI/Components/Detail/Detail.tsx +137 -22
  296. package/UI/Components/ErrorBoundary.tsx +38 -0
  297. package/UI/Components/LogsViewer/LogsEntityNames.ts +912 -0
  298. package/UI/Components/LogsViewer/LogsViewer.tsx +156 -77
  299. package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +28 -11
  300. package/UI/Components/LogsViewer/components/FacetSection.tsx +66 -79
  301. package/UI/Components/LogsViewer/components/FacetValueRow.tsx +17 -2
  302. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +45 -5
  303. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +100 -19
  304. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +156 -39
  305. package/UI/Components/LogsViewer/components/LogsTable.tsx +30 -8
  306. package/UI/Components/LogsViewer/types.ts +6 -0
  307. package/UI/Components/Markdown.tsx/InlineReferences.tsx +628 -0
  308. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +385 -312
  309. package/UI/Components/MemberRoleAssignment/MemberRoleAssignment.tsx +50 -22
  310. package/UI/Components/ModelDetail/CardModelDetail.tsx +15 -0
  311. package/UI/Components/ModelDetail/ModelDetail.tsx +64 -19
  312. package/UI/Components/ModelList/ModelList.tsx +33 -8
  313. package/UI/Components/Page/ModelPage.tsx +119 -54
  314. package/UI/Components/Table/Table.tsx +8 -0
  315. package/UI/Components/Table/TableRow.tsx +13 -5
  316. package/UI/Components/TelemetryViewer/FacetVisibility.ts +229 -0
  317. package/UI/Components/TelemetryViewer/ResourceFacetConfigs.ts +46 -0
  318. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +11 -0
  319. package/UI/Components/TelemetryViewer/components/FacetSearchInput.tsx +79 -0
  320. package/UI/Components/TelemetryViewer/components/FacetSectionHeader.tsx +69 -0
  321. package/UI/Components/TelemetryViewer/components/FacetShowMoreButton.tsx +36 -0
  322. package/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.tsx +88 -0
  323. package/UI/Components/TelemetryViewer/components/LockedFilterActions.tsx +205 -0
  324. package/UI/Components/TelemetryViewer/components/LockedFilterChip.tsx +496 -0
  325. package/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.tsx +30 -10
  326. package/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.tsx +203 -10
  327. package/UI/Components/TelemetryViewer/components/TelemetryFacetSection.tsx +60 -73
  328. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +94 -7
  329. package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +17 -2
  330. package/UI/Components/TelemetryViewer/types.ts +19 -0
  331. package/UI/Components/TelemetryViewer/useFacetSearchExemptions.ts +158 -0
  332. package/UI/Components/TelemetryViewer/useFacetSectionSearch.ts +102 -0
  333. package/UI/Utils/Clipboard.ts +68 -2
  334. package/UI/Utils/Navigation.ts +17 -2
  335. package/UI/Utils/Telemetry/TelemetryEntityNames.ts +620 -0
  336. package/UI/Utils/Telemetry/UseTelemetryEntityNames.ts +151 -0
  337. package/Utils/AI/InvestigationReport.ts +1789 -0
  338. package/Utils/API.ts +90 -1
  339. package/Utils/Rum/SessionReplayHealth.ts +11 -0
  340. package/Utils/Rum/SessionReplayRecordingEnded.ts +134 -0
  341. package/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.ts +427 -0
  342. package/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.ts +197 -0
  343. package/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.ts +464 -0
  344. package/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.ts +567 -0
  345. package/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.ts +299 -0
  346. package/Utils/SecurityEvent/Connectors/OktaNormalizer.ts +467 -0
  347. package/Utils/SecurityEvent/Connectors/SplunkNormalizer.ts +439 -0
  348. package/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.ts +124 -12
  349. package/Utils/Telemetry/CrossSignalScope.ts +22 -8
  350. package/Utils/Telemetry/EntityRelationship.ts +8 -0
  351. package/Utils/Telemetry/LockedFilterSearch.ts +412 -0
  352. package/Utils/Telemetry/NetworkHost.ts +43 -0
  353. package/Utils/Telemetry/OriginAllowList.ts +139 -4
  354. package/Utils/Traces/CriticalPath.ts +10 -4
  355. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  356. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  357. package/build/dist/Models/DatabaseModels/RumApplication.js +1 -1
  358. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
  359. package/build/dist/Models/DatabaseModels/SecurityEventConnection.js +490 -0
  360. package/build/dist/Models/DatabaseModels/SecurityEventConnection.js.map +1 -0
  361. package/build/dist/Models/DatabaseModels/SecurityEventConnectionRun.js +287 -0
  362. package/build/dist/Models/DatabaseModels/SecurityEventConnectionRun.js.map +1 -0
  363. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +2 -2
  364. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
  365. package/build/dist/Server/API/AIInvestigationAPI.js +336 -27
  366. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  367. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js +182 -7
  368. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js.map +1 -1
  369. package/build/dist/Server/API/SecurityEventConnectionAPI.js +171 -0
  370. package/build/dist/Server/API/SecurityEventConnectionAPI.js.map +1 -0
  371. package/build/dist/Server/API/TelemetryAPI.js +248 -170
  372. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  373. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.js +40 -0
  374. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792700000000-AddSecurityEventConnections.js.map +1 -0
  375. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  376. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  377. package/build/dist/Server/Middleware/TelemetryIngest.js +57 -4
  378. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  379. package/build/dist/Server/Services/ExceptionAggregationService.js +7 -16
  380. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  381. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +8 -0
  382. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -1
  383. package/build/dist/Server/Services/Index.js +4 -0
  384. package/build/dist/Server/Services/Index.js.map +1 -1
  385. package/build/dist/Server/Services/InventoryItemService.js +22 -0
  386. package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
  387. package/build/dist/Server/Services/LogAggregationService.js +8 -17
  388. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  389. package/build/dist/Server/Services/MetricAggregationService.js +4 -14
  390. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  391. package/build/dist/Server/Services/SecurityEventConnectionRunService.js +9 -0
  392. package/build/dist/Server/Services/SecurityEventConnectionRunService.js.map +1 -0
  393. package/build/dist/Server/Services/SecurityEventConnectionService.js +356 -0
  394. package/build/dist/Server/Services/SecurityEventConnectionService.js.map +1 -0
  395. package/build/dist/Server/Services/TraceAggregationService.js +51 -25
  396. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  397. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +9 -0
  398. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  399. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +3 -0
  400. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
  401. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +14 -7
  402. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  403. package/build/dist/Server/Utils/AI/SRE/InvestigationEvidence.js +468 -0
  404. package/build/dist/Server/Utils/AI/SRE/InvestigationEvidence.js.map +1 -0
  405. package/build/dist/Server/Utils/AI/SRE/InvestigationReferences.js +230 -0
  406. package/build/dist/Server/Utils/AI/SRE/InvestigationReferences.js.map +1 -0
  407. package/build/dist/Server/Utils/AI/Toolbox/Index.js +32 -0
  408. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  409. package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js +6 -2
  410. package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js.map +1 -1
  411. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +59 -0
  412. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  413. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +5 -3
  414. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  415. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.js +752 -0
  416. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.js.map +1 -0
  417. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.js +493 -0
  418. package/build/dist/Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.js.map +1 -0
  419. package/build/dist/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.js +352 -0
  420. package/build/dist/Server/Utils/SecurityEvent/Connectors/ConnectorPlatformHealth.js.map +1 -0
  421. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.js +405 -0
  422. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconClient.js.map +1 -0
  423. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.js +466 -0
  424. package/build/dist/Server/Utils/SecurityEvent/Connectors/CrowdStrikeFalcon/CrowdStrikeFalconConnector.js.map +1 -0
  425. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.js +344 -0
  426. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityClient.js.map +1 -0
  427. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.js +511 -0
  428. package/build/dist/Server/Utils/SecurityEvent/Connectors/ElasticSecurity/ElasticSecurityConnector.js.map +1 -0
  429. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.js +406 -0
  430. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrClient.js.map +1 -0
  431. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.js +336 -0
  432. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdr/MicrosoftDefenderXdrConnector.js.map +1 -0
  433. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.js +474 -0
  434. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelClient.js.map +1 -0
  435. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.js +417 -0
  436. package/build/dist/Server/Utils/SecurityEvent/Connectors/MicrosoftSentinel/MicrosoftSentinelConnector.js.map +1 -0
  437. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.js +314 -0
  438. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaClient.js.map +1 -0
  439. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.js +494 -0
  440. package/build/dist/Server/Utils/SecurityEvent/Connectors/Okta/OktaConnector.js.map +1 -0
  441. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.js +719 -0
  442. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionPoller.js.map +1 -0
  443. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.js +404 -0
  444. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionRunExecutor.js.map +1 -0
  445. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.js +209 -0
  446. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectionTester.js.map +1 -0
  447. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.js +40 -0
  448. package/build/dist/Server/Utils/SecurityEvent/Connectors/SecurityEventConnectorRegistry.js.map +1 -0
  449. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.js +494 -0
  450. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkClient.js.map +1 -0
  451. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.js +379 -0
  452. package/build/dist/Server/Utils/SecurityEvent/Connectors/Splunk/SplunkConnector.js.map +1 -0
  453. package/build/dist/Server/Utils/SecurityEvent/Connectors/Types.js +27 -0
  454. package/build/dist/Server/Utils/SecurityEvent/Connectors/Types.js.map +1 -0
  455. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +234 -61
  456. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
  457. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.js +537 -0
  458. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsConnectionTester.js.map +1 -0
  459. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +572 -115
  460. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  461. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js +35 -1
  462. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js.map +1 -1
  463. package/build/dist/Server/Utils/SecurityEvent/SecurityEventDedupe.js +52 -0
  464. package/build/dist/Server/Utils/SecurityEvent/SecurityEventDedupe.js.map +1 -0
  465. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +521 -32
  466. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
  467. package/build/dist/Server/Utils/StartServer.js +10 -0
  468. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  469. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +8 -0
  470. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  471. package/build/dist/Server/Utils/Telemetry/KubernetesResourceAttributes.js +80 -0
  472. package/build/dist/Server/Utils/Telemetry/KubernetesResourceAttributes.js.map +1 -0
  473. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +122 -67
  474. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
  475. package/build/dist/Server/Utils/Telemetry/ResourceFacetPlanner.js +146 -0
  476. package/build/dist/Server/Utils/Telemetry/ResourceFacetPlanner.js.map +1 -0
  477. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +174 -248
  478. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  479. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +492 -0
  480. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -0
  481. package/build/dist/Server/Utils/Telemetry/TraceContextPropagation.js +259 -0
  482. package/build/dist/Server/Utils/Telemetry/TraceContextPropagation.js.map +1 -0
  483. package/build/dist/Server/Utils/Telemetry.js +11 -5
  484. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  485. package/build/dist/Types/AI/InvestigationEvidence.js +2 -0
  486. package/build/dist/Types/AI/InvestigationEvidence.js.map +1 -0
  487. package/build/dist/Types/Permission.js +2 -2
  488. package/build/dist/Types/Permission.js.map +1 -1
  489. package/build/dist/Types/Rum/SessionReplay.js +95 -0
  490. package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
  491. package/build/dist/Types/Rum/SessionReplayApi.js.map +1 -1
  492. package/build/dist/Types/SecurityEvent/Connectors/ConnectorDiagnostics.js +18 -0
  493. package/build/dist/Types/SecurityEvent/Connectors/ConnectorDiagnostics.js.map +1 -0
  494. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.js +2 -0
  495. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectionDiagnostics.js.map +1 -0
  496. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.js +374 -0
  497. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorCatalog.js.map +1 -0
  498. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.js +35 -0
  499. package/build/dist/Types/SecurityEvent/Connectors/SecurityEventConnectorProvider.js.map +1 -0
  500. package/build/dist/Types/SecurityEvent/GoogleSecOpsRegion.js +35 -0
  501. package/build/dist/Types/SecurityEvent/GoogleSecOpsRegion.js.map +1 -0
  502. package/build/dist/Types/Telemetry/EntityType.js +14 -0
  503. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  504. package/build/dist/Types/Telemetry/ExceptionSpanScope.js +59 -0
  505. package/build/dist/Types/Telemetry/ExceptionSpanScope.js.map +1 -0
  506. package/build/dist/Types/Telemetry/LockedFilterDetail.js +16 -0
  507. package/build/dist/Types/Telemetry/LockedFilterDetail.js.map +1 -0
  508. package/build/dist/Types/Telemetry/ResourceEntityFacet.js +16 -10
  509. package/build/dist/Types/Telemetry/ResourceEntityFacet.js.map +1 -1
  510. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +119 -0
  511. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -0
  512. package/build/dist/UI/Components/Card/Card.js +34 -17
  513. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  514. package/build/dist/UI/Components/Checkbox/Checkbox.js +6 -4
  515. package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
  516. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js +5 -1
  517. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js.map +1 -1
  518. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +1 -1
  519. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  520. package/build/dist/UI/Components/Detail/Detail.js +63 -13
  521. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  522. package/build/dist/UI/Components/ErrorBoundary.js +34 -0
  523. package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
  524. package/build/dist/UI/Components/LogsViewer/LogsEntityNames.js +535 -0
  525. package/build/dist/UI/Components/LogsViewer/LogsEntityNames.js.map +1 -0
  526. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +117 -57
  527. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  528. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +5 -7
  529. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -1
  530. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js +31 -44
  531. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js.map +1 -1
  532. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +17 -3
  533. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
  534. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +19 -3
  535. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  536. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +64 -18
  537. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  538. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +100 -41
  539. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  540. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +13 -5
  541. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  542. package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
  543. package/build/dist/UI/Components/Markdown.tsx/InlineReferences.js +403 -0
  544. package/build/dist/UI/Components/Markdown.tsx/InlineReferences.js.map +1 -0
  545. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +197 -179
  546. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  547. package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js +30 -21
  548. package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js.map +1 -1
  549. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +12 -0
  550. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
  551. package/build/dist/UI/Components/ModelDetail/ModelDetail.js +46 -12
  552. package/build/dist/UI/Components/ModelDetail/ModelDetail.js.map +1 -1
  553. package/build/dist/UI/Components/ModelList/ModelList.js +26 -7
  554. package/build/dist/UI/Components/ModelList/ModelList.js.map +1 -1
  555. package/build/dist/UI/Components/Page/ModelPage.js +62 -34
  556. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  557. package/build/dist/UI/Components/Table/Table.js +3 -1
  558. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  559. package/build/dist/UI/Components/Table/TableRow.js +8 -1
  560. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  561. package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js +111 -0
  562. package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js.map +1 -0
  563. package/build/dist/UI/Components/TelemetryViewer/ResourceFacetConfigs.js +22 -0
  564. package/build/dist/UI/Components/TelemetryViewer/ResourceFacetConfigs.js.map +1 -0
  565. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +1 -1
  566. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  567. package/build/dist/UI/Components/TelemetryViewer/components/FacetSearchInput.js +36 -0
  568. package/build/dist/UI/Components/TelemetryViewer/components/FacetSearchInput.js.map +1 -0
  569. package/build/dist/UI/Components/TelemetryViewer/components/FacetSectionHeader.js +21 -0
  570. package/build/dist/UI/Components/TelemetryViewer/components/FacetSectionHeader.js.map +1 -0
  571. package/build/dist/UI/Components/TelemetryViewer/components/FacetShowMoreButton.js +14 -0
  572. package/build/dist/UI/Components/TelemetryViewer/components/FacetShowMoreButton.js.map +1 -0
  573. package/build/dist/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.js +27 -0
  574. package/build/dist/UI/Components/TelemetryViewer/components/HiddenFacetsFooter.js.map +1 -0
  575. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterActions.js +88 -0
  576. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterActions.js.map +1 -0
  577. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js +228 -0
  578. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js.map +1 -0
  579. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.js +6 -6
  580. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryActiveFilterChips.js.map +1 -1
  581. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.js +111 -12
  582. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryDetailPanel.js.map +1 -1
  583. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js +27 -40
  584. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSection.js.map +1 -1
  585. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +70 -10
  586. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  587. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +17 -3
  588. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
  589. package/build/dist/UI/Components/TelemetryViewer/types.js +0 -4
  590. package/build/dist/UI/Components/TelemetryViewer/types.js.map +1 -1
  591. package/build/dist/UI/Components/TelemetryViewer/useFacetSearchExemptions.js +70 -0
  592. package/build/dist/UI/Components/TelemetryViewer/useFacetSearchExemptions.js.map +1 -0
  593. package/build/dist/UI/Components/TelemetryViewer/useFacetSectionSearch.js +52 -0
  594. package/build/dist/UI/Components/TelemetryViewer/useFacetSectionSearch.js.map +1 -0
  595. package/build/dist/UI/Utils/Clipboard.js +59 -2
  596. package/build/dist/UI/Utils/Clipboard.js.map +1 -1
  597. package/build/dist/UI/Utils/Navigation.js +11 -2
  598. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  599. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +471 -0
  600. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -0
  601. package/build/dist/UI/Utils/Telemetry/UseTelemetryEntityNames.js +113 -0
  602. package/build/dist/UI/Utils/Telemetry/UseTelemetryEntityNames.js.map +1 -0
  603. package/build/dist/Utils/AI/InvestigationReport.js +1241 -0
  604. package/build/dist/Utils/AI/InvestigationReport.js.map +1 -0
  605. package/build/dist/Utils/API.js +25 -0
  606. package/build/dist/Utils/API.js.map +1 -1
  607. package/build/dist/Utils/Rum/SessionReplayHealth.js +10 -0
  608. package/build/dist/Utils/Rum/SessionReplayHealth.js.map +1 -1
  609. package/build/dist/Utils/Rum/SessionReplayRecordingEnded.js +54 -0
  610. package/build/dist/Utils/Rum/SessionReplayRecordingEnded.js.map +1 -0
  611. package/build/dist/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.js +311 -0
  612. package/build/dist/Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer.js.map +1 -0
  613. package/build/dist/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.js +150 -0
  614. package/build/dist/Utils/SecurityEvent/Connectors/CrowdStrikeFalconNormalizer.js.map +1 -0
  615. package/build/dist/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.js +328 -0
  616. package/build/dist/Utils/SecurityEvent/Connectors/ElasticSecurityNormalizer.js.map +1 -0
  617. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.js +405 -0
  618. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftDefenderXdrNormalizer.js.map +1 -0
  619. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.js +212 -0
  620. package/build/dist/Utils/SecurityEvent/Connectors/MicrosoftSentinelNormalizer.js.map +1 -0
  621. package/build/dist/Utils/SecurityEvent/Connectors/OktaNormalizer.js +351 -0
  622. package/build/dist/Utils/SecurityEvent/Connectors/OktaNormalizer.js.map +1 -0
  623. package/build/dist/Utils/SecurityEvent/Connectors/SplunkNormalizer.js +348 -0
  624. package/build/dist/Utils/SecurityEvent/Connectors/SplunkNormalizer.js.map +1 -0
  625. package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js +103 -10
  626. package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js.map +1 -1
  627. package/build/dist/Utils/Telemetry/CrossSignalScope.js +16 -5
  628. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
  629. package/build/dist/Utils/Telemetry/EntityRelationship.js +7 -0
  630. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
  631. package/build/dist/Utils/Telemetry/LockedFilterSearch.js +277 -0
  632. package/build/dist/Utils/Telemetry/LockedFilterSearch.js.map +1 -0
  633. package/build/dist/Utils/Telemetry/NetworkHost.js +39 -0
  634. package/build/dist/Utils/Telemetry/NetworkHost.js.map +1 -0
  635. package/build/dist/Utils/Telemetry/OriginAllowList.js +105 -4
  636. package/build/dist/Utils/Telemetry/OriginAllowList.js.map +1 -1
  637. package/build/dist/Utils/Traces/CriticalPath.js +9 -4
  638. package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
  639. package/package.json +1 -1
  640. package/Tests/UI/Rum/RecordingHealthStrip.test.tsx +0 -600
  641. package/UI/Components/GanttChart/Bar/BarLabel.tsx +0 -17
  642. package/UI/Components/GanttChart/Bar/Index.tsx +0 -149
  643. package/UI/Components/GanttChart/ChartContainer.tsx +0 -50
  644. package/UI/Components/GanttChart/Index.tsx +0 -90
  645. package/UI/Components/GanttChart/Row/Index.tsx +0 -22
  646. package/UI/Components/GanttChart/Row/Row.tsx +0 -231
  647. package/UI/Components/GanttChart/Row/RowLabel.tsx +0 -30
  648. package/UI/Components/GanttChart/Rows.tsx +0 -59
  649. package/UI/Components/GanttChart/Timeline/Index.tsx +0 -46
  650. package/UI/Components/GanttChart/Timeline/TimelineInterval.tsx +0 -33
  651. package/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.tsx +0 -43
  652. package/build/dist/UI/Components/GanttChart/Bar/BarLabel.js +0 -8
  653. package/build/dist/UI/Components/GanttChart/Bar/BarLabel.js.map +0 -1
  654. package/build/dist/UI/Components/GanttChart/Bar/Index.js +0 -77
  655. package/build/dist/UI/Components/GanttChart/Bar/Index.js.map +0 -1
  656. package/build/dist/UI/Components/GanttChart/ChartContainer.js +0 -33
  657. package/build/dist/UI/Components/GanttChart/ChartContainer.js.map +0 -1
  658. package/build/dist/UI/Components/GanttChart/Index.js +0 -39
  659. package/build/dist/UI/Components/GanttChart/Index.js.map +0 -1
  660. package/build/dist/UI/Components/GanttChart/Row/Index.js +0 -7
  661. package/build/dist/UI/Components/GanttChart/Row/Index.js.map +0 -1
  662. package/build/dist/UI/Components/GanttChart/Row/Row.js +0 -106
  663. package/build/dist/UI/Components/GanttChart/Row/Row.js.map +0 -1
  664. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js +0 -10
  665. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js.map +0 -1
  666. package/build/dist/UI/Components/GanttChart/Rows.js +0 -19
  667. package/build/dist/UI/Components/GanttChart/Rows.js.map +0 -1
  668. package/build/dist/UI/Components/GanttChart/Timeline/Index.js +0 -16
  669. package/build/dist/UI/Components/GanttChart/Timeline/Index.js.map +0 -1
  670. package/build/dist/UI/Components/GanttChart/Timeline/TimelineInterval.js +0 -13
  671. package/build/dist/UI/Components/GanttChart/Timeline/TimelineInterval.js.map +0 -1
  672. package/build/dist/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.js +0 -13
  673. package/build/dist/UI/Components/GanttChart/Timeline/TimelineIntervalMarks.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsSecurityHubClient.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,493 @@
1
+ import BadDataException from "../../../../../Types/Exception/BadDataException";
2
+ import SecurityEventConnectorProvider from "../../../../../Types/SecurityEvent/Connectors/SecurityEventConnectorProvider";
3
+ import AwsSecurityHubNormalizer from "../../../../../Utils/SecurityEvent/Connectors/AwsSecurityHubNormalizer";
4
+ import DataSourceHttpFetch from "../../../DataSource/HttpFetch";
5
+ import { redactLogString } from "../../../LogRedaction";
6
+ import ConnectorErrorMessage from "../../ConnectorErrorMessage";
7
+ import { makeCheck, readSettingString, } from "../Types";
8
+ import AwsSecurityHubClient, { AWS_SECURITY_HUB_DEFAULT_PAGE_SIZE, AwsSecurityHubHttpError, } from "./AwsSecurityHubClient";
9
+ /*
10
+ * AWS Security Hub connector: imports findings from one Region of one
11
+ * account (ideally the delegated administrator's home Region, where
12
+ * cross-Region aggregation collects every member account's findings) as
13
+ * OCSF Detection Findings, or Compliance Findings for control checks.
14
+ *
15
+ * Polling is by the finding's CreatedAt (see Connectors/Types.ts for why
16
+ * creation time is the cursor basis). A GuardDuty finding is created when
17
+ * GuardDuty has evaluated enough activity to raise it, and a control
18
+ * finding when Security Hub first evaluates the resource — both can be
19
+ * long after FirstObservedAt, so a cursor over observation time would
20
+ * skip them. CreatedAt is still the PROVIDER's timestamp, and delivery to
21
+ * Security Hub lags it by minutes, so the catalog gives this provider a 30
22
+ * minute cursor overlap; the dedupe by finding Id drops what the overlap
23
+ * re-reads.
24
+ *
25
+ * GetFindings is sorted by CreatedAt ascending, so when a request or
26
+ * record bound stops a fetch, every finding created before the last one
27
+ * read has been read: fetchEvents reports that CreatedAt as resumeAfter
28
+ * and the poller moves on from there instead of re-reading the window.
29
+ *
30
+ * Security Hub has no notion of "alerting" findings, so the connection's
31
+ * alertingOnly flag is not consulted (the catalog marks the toggle as
32
+ * unsupported).
33
+ */
34
+ const PROVIDER_TITLE = "AWS Security Hub";
35
+ const DAY_IN_MS = 24 * 60 * 60 * 1000;
36
+ /*
37
+ * Wording of a request that never got an HTTP status: the client's own
38
+ * deadline, or the production transport's "Could not reach data source"
39
+ * wrapper around a DNS, connection, TLS or timeout failure.
40
+ */
41
+ const CONNECTIVITY_FAILURE_REGEX = /timed out|timeout|could not reach data source|econnrefused|econnreset|enotfound|etimedout|eai_again/i;
42
+ export default class AwsSecurityHubConnector {
43
+ constructor(transport) {
44
+ this.provider = SecurityEventConnectorProvider.AwsSecurityHub;
45
+ this.transport =
46
+ transport ||
47
+ ((request) => {
48
+ return DataSourceHttpFetch.fetch(request);
49
+ });
50
+ }
51
+ /*
52
+ * Settings are read by the catalog's field keys so the form, the service
53
+ * validation and this connector can never disagree on a key name.
54
+ */
55
+ static resolveSettings(settings) {
56
+ const config = settings.config || {};
57
+ const secrets = settings.secrets || {};
58
+ return {
59
+ region: readSettingString(config, "region").toLowerCase(),
60
+ accessKeyId: readSettingString(config, "accessKeyId"),
61
+ secretAccessKey: readSettingString(secrets, "secretAccessKey"),
62
+ sessionToken: readSettingString(secrets, "sessionToken"),
63
+ };
64
+ }
65
+ validateSettings(settings) {
66
+ if (settings.provider !== this.provider) {
67
+ throw new BadDataException(`Settings are for provider "${String(settings.provider)}", not ${PROVIDER_TITLE}.`);
68
+ }
69
+ const resolved = AwsSecurityHubConnector.resolveSettings(settings);
70
+ AwsSecurityHubClient.validateRegion(resolved.region);
71
+ AwsSecurityHubClient.validateAccessKeyId(resolved.accessKeyId);
72
+ if (!resolved.secretAccessKey) {
73
+ throw new BadDataException("Secret access key is required.");
74
+ }
75
+ /*
76
+ * Temporary credentials (ASIA... ids) only work with their session
77
+ * token; a missing token fails every request with
78
+ * UnrecognizedClientException, which reads like a wrong key. Catch it
79
+ * here where the message can name the field.
80
+ */
81
+ if (resolved.accessKeyId.startsWith("ASIA") && !resolved.sessionToken) {
82
+ throw new BadDataException("Session token is required for a temporary access key (an Access key ID starting with ASIA).");
83
+ }
84
+ /*
85
+ * The reverse mistake: a long-lived AKIA... key with a session token
86
+ * left over from earlier temporary credentials. AWS signs the token in
87
+ * and rejects every request with "The security token included in the
88
+ * request is invalid", which reads like a wrong key. Name both fields
89
+ * so the person editing knows which one to clear.
90
+ */
91
+ if (resolved.accessKeyId.startsWith("AKIA") && resolved.sessionToken) {
92
+ throw new BadDataException("Session token must be empty for a long-lived access key (an Access key ID starting with AKIA). Remove the stored Session token, or enter the temporary Access key ID (starting with ASIA) that the token was issued with.");
93
+ }
94
+ }
95
+ createClient(settings, requestTimeoutInMs) {
96
+ const resolved = AwsSecurityHubConnector.resolveSettings(settings);
97
+ return new AwsSecurityHubClient({
98
+ region: resolved.region,
99
+ accessKeyId: resolved.accessKeyId,
100
+ secretAccessKey: resolved.secretAccessKey,
101
+ sessionToken: resolved.sessionToken || undefined,
102
+ transport: this.transport,
103
+ requestTimeoutInMs,
104
+ });
105
+ }
106
+ /*
107
+ * ---------------------------------------------------------------------
108
+ * Test connection
109
+ * ---------------------------------------------------------------------
110
+ */
111
+ /*
112
+ * AWS has no separate token step: a single signed GetFindings for one
113
+ * finding over the last day answers both "are the credentials right"
114
+ * and "may this identity read findings", because AWS verifies the
115
+ * signature before Security Hub evaluates the IAM policy. Only an
116
+ * AccessDeniedException or InvalidAccessException proves the signature
117
+ * was verified, so only those pass authentication and fail the read
118
+ * permission; every other failure, a code-less 403 included, fails
119
+ * authentication.
120
+ */
121
+ async testConnection(settings, options) {
122
+ const checks = [];
123
+ const now = new Date();
124
+ const dayAgo = new Date(now.getTime() - DAY_IN_MS);
125
+ const weekAgo = new Date(now.getTime() - 7 * DAY_IN_MS);
126
+ const region = readSettingString(settings.config || {}, "region");
127
+ let client;
128
+ try {
129
+ this.validateSettings(settings);
130
+ client = this.createClient(settings, options.requestTimeoutInMs);
131
+ }
132
+ catch (error) {
133
+ checks.push(makeCheck({
134
+ key: "authentication",
135
+ name: "Authenticate with AWS",
136
+ status: "fail",
137
+ startedAtMs: Date.now(),
138
+ message: redactLogString(ConnectorErrorMessage.toMessage(error)),
139
+ remediation: "Correct the highlighted setting and test again. Nothing was contacted.",
140
+ }));
141
+ checks.push(AwsSecurityHubConnector.skipped("read-permission", "Read findings", "Skipped because the configuration is not usable."));
142
+ checks.push(AwsSecurityHubConnector.skipped("detections-available", "Findings available to import", "Skipped because the configuration is not usable."));
143
+ return checks;
144
+ }
145
+ // 1 + 2. One signed GetFindings for a single finding created in the last day.
146
+ const probeStartedMs = Date.now();
147
+ try {
148
+ const page = await client.getFindings({
149
+ startTime: dayAgo,
150
+ endTime: now,
151
+ maxResults: 1,
152
+ });
153
+ checks.push(makeCheck({
154
+ key: "authentication",
155
+ name: "Authenticate with AWS",
156
+ status: "pass",
157
+ startedAtMs: probeStartedMs,
158
+ message: `Security Hub in ${region} accepted the Signature Version 4 request signed with the access key.`,
159
+ }));
160
+ checks.push(makeCheck({
161
+ key: "read-permission",
162
+ name: "Read findings",
163
+ status: "pass",
164
+ startedAtMs: probeStartedMs,
165
+ message: page.findings.length
166
+ ? "Security Hub answered a GetFindings query; the IAM identity is allowed securityhub:GetFindings."
167
+ : "Security Hub answered a GetFindings query (no finding was created in the last 24 hours); the IAM identity is allowed securityhub:GetFindings.",
168
+ details: {
169
+ region,
170
+ sampleFindingCount: page.findings.length,
171
+ },
172
+ }));
173
+ }
174
+ catch (error) {
175
+ const message = redactLogString(ConnectorErrorMessage.toMessage(error));
176
+ if (AwsSecurityHubConnector.isPermissionFailure(error)) {
177
+ checks.push(makeCheck({
178
+ key: "authentication",
179
+ name: "Authenticate with AWS",
180
+ status: "pass",
181
+ startedAtMs: probeStartedMs,
182
+ message: `Security Hub in ${region} verified the request signature, so the access key and secret are valid.`,
183
+ }));
184
+ checks.push(makeCheck({
185
+ key: "read-permission",
186
+ name: "Read findings",
187
+ status: "fail",
188
+ startedAtMs: probeStartedMs,
189
+ message,
190
+ remediation: AwsSecurityHubConnector.readRemediation(error, message),
191
+ }));
192
+ checks.push(AwsSecurityHubConnector.skipped("detections-available", "Findings available to import", "Skipped because findings could not be read."));
193
+ return checks;
194
+ }
195
+ checks.push(makeCheck({
196
+ key: "authentication",
197
+ name: "Authenticate with AWS",
198
+ status: "fail",
199
+ startedAtMs: probeStartedMs,
200
+ message,
201
+ remediation: AwsSecurityHubConnector.authenticationRemediation(error, message),
202
+ }));
203
+ checks.push(AwsSecurityHubConnector.skipped("read-permission", "Read findings", "Skipped because authentication failed."));
204
+ checks.push(AwsSecurityHubConnector.skipped("detections-available", "Findings available to import", "Skipped because authentication failed."));
205
+ return checks;
206
+ }
207
+ // 3. Availability: bounded counts over the last day and the last week.
208
+ const countStartedMs = Date.now();
209
+ try {
210
+ const last24h = await client.countFindingsCreated({
211
+ startTime: dayAgo,
212
+ endTime: now,
213
+ maxResults: AWS_SECURITY_HUB_DEFAULT_PAGE_SIZE,
214
+ });
215
+ const last7d = await client.countFindingsCreated({
216
+ startTime: weekAgo,
217
+ endTime: now,
218
+ maxResults: AWS_SECURITY_HUB_DEFAULT_PAGE_SIZE,
219
+ });
220
+ const label24h = AwsSecurityHubConnector.countLabel(last24h);
221
+ const label7d = AwsSecurityHubConnector.countLabel(last7d);
222
+ const nothing = last24h.count === 0 &&
223
+ last7d.count === 0 &&
224
+ !last24h.hasMore &&
225
+ !last7d.hasMore;
226
+ checks.push(makeCheck(Object.assign(Object.assign({ key: "detections-available", name: "Findings available to import", status: nothing ? "warn" : "pass", startedAtMs: countStartedMs, message: nothing
227
+ ? "No findings were created in the last 7 days. Polling will import new findings as Security Hub creates them."
228
+ : `${label24h} finding${last24h.count === 1 && !last24h.hasMore ? "" : "s"} created in the last 24 hours and ${label7d} in the last 7 days.` }, (nothing
229
+ ? {
230
+ remediation: "Confirm that Security Hub has integrations (GuardDuty, Inspector, Macie, IAM Access Analyzer, partner products) or security standards enabled in this Region, and that this account is the administrator or home Region if you expect other accounts' and Regions' findings here. A quiet account is not a connector fault.",
231
+ }
232
+ : {})), { details: {
233
+ createdLast24h: last24h.count,
234
+ hasMoreLast24h: last24h.hasMore,
235
+ createdLast7d: last7d.count,
236
+ hasMoreLast7d: last7d.hasMore,
237
+ } })));
238
+ }
239
+ catch (error) {
240
+ const message = redactLogString(ConnectorErrorMessage.toMessage(error));
241
+ checks.push(makeCheck({
242
+ key: "detections-available",
243
+ name: "Findings available to import",
244
+ status: "fail",
245
+ startedAtMs: countStartedMs,
246
+ message,
247
+ remediation: AwsSecurityHubConnector.readRemediation(error, message),
248
+ }));
249
+ }
250
+ return checks;
251
+ }
252
+ static skipped(key, name, message) {
253
+ return makeCheck({
254
+ key,
255
+ name,
256
+ status: "skip",
257
+ startedAtMs: Date.now(),
258
+ message,
259
+ });
260
+ }
261
+ static countLabel(count) {
262
+ return count.hasMore ? `${count.count}+` : String(count.count);
263
+ }
264
+ /*
265
+ * The client puts "(HTTP <status>)" in every status-bearing message, so
266
+ * remediation can key off the status without re-parsing vendor bodies.
267
+ */
268
+ static statusFromMessage(message) {
269
+ const match = message.match(/\(HTTP (\d{3})\)/);
270
+ return match ? Number(match[1]) : null;
271
+ }
272
+ /*
273
+ * A failure whose recovered error code is AccessDeniedException or
274
+ * InvalidAccessException came from Security Hub's authorization, after
275
+ * AWS verified the signature. The decision reads the code the client
276
+ * recovered (header, body, or AWS's message wording), never the hint
277
+ * text: a hint naming securityhub:GetFindings once turned a wrong secret
278
+ * behind the header-dropping production transport into "the access key
279
+ * and secret are valid".
280
+ */
281
+ static isPermissionFailure(error) {
282
+ return (error instanceof AwsSecurityHubHttpError &&
283
+ error.failureKind === "authorization");
284
+ }
285
+ // The AWS error code the client recovered, or "" for other failures.
286
+ static errorCodeOf(error) {
287
+ return error instanceof AwsSecurityHubHttpError ? error.errorCode : "";
288
+ }
289
+ /*
290
+ * A request that never produced an HTTP status: the client's own
291
+ * deadline ("timed out after N seconds"), or the production transport's
292
+ * "Could not reach data source: ..." wrapper around a DNS failure, a
293
+ * refused connection, a TLS problem, its own timeout or the egress
294
+ * guard. None of these say anything about the credentials, so the
295
+ * remediation must point at the network, not at IAM.
296
+ */
297
+ static isConnectivityFailure(message) {
298
+ if (AwsSecurityHubConnector.statusFromMessage(message) !== null) {
299
+ return false;
300
+ }
301
+ return CONNECTIVITY_FAILURE_REGEX.test(message);
302
+ }
303
+ static connectivityRemediation() {
304
+ return "Security Hub could not be reached or did not answer in time. Check outbound HTTPS access (DNS, firewall, proxy) from the OneUptime app and worker processes to securityhub.<region>.amazonaws.com and test again.";
305
+ }
306
+ static authenticationRemediation(error, message) {
307
+ const status = AwsSecurityHubConnector.statusFromMessage(message);
308
+ const code = AwsSecurityHubConnector.errorCodeOf(error);
309
+ if (AwsSecurityHubConnector.isConnectivityFailure(message)) {
310
+ return AwsSecurityHubConnector.connectivityRemediation();
311
+ }
312
+ if (code === "ExpiredTokenException" ||
313
+ code === "ExpiredToken" ||
314
+ message.includes("ExpiredToken")) {
315
+ return "The temporary credentials have expired. Issue new credentials with STS and use Update credentials on the connection, or switch to a long-lived access key.";
316
+ }
317
+ if (code === "RequestExpired" ||
318
+ code === "RequestTimeTooSkewed" ||
319
+ message.includes("RequestExpired") ||
320
+ message.includes("RequestTimeTooSkewed") ||
321
+ message.includes("Signature expired") ||
322
+ message.includes("Signature not yet current")) {
323
+ return "AWS rejected the request time. The OneUptime server clock is more than five minutes off; fix NTP on the app and worker hosts and test again.";
324
+ }
325
+ if (status === 404) {
326
+ return "No Security Hub endpoint answered at this Region. Compare the Region with the AWS console's Region selector (for example us-east-1) and test again.";
327
+ }
328
+ if (status === 429) {
329
+ return "Security Hub is throttling GetFindings for this account. Wait a minute and test again.";
330
+ }
331
+ if (status !== null && status >= 500) {
332
+ return "Security Hub reported a server-side problem. Test again in a few minutes; polling retries on its own.";
333
+ }
334
+ /*
335
+ * A 403 with no recoverable code: the response did not say whether
336
+ * the signature or the IAM policy refused it, so point at both, the
337
+ * credentials first because that is what an unnamed rejection usually
338
+ * is.
339
+ */
340
+ if (status === 403 &&
341
+ !(error instanceof AwsSecurityHubHttpError &&
342
+ error.failureKind === "authentication")) {
343
+ return "AWS answered 403 without an error code, so the response does not say whether the credentials or the IAM policy refused the request. First compare the Access key ID in IAM > Users > the connector user > Security credentials with the connection and paste a fresh Secret access key (plus the Session token for an ASIA key, none for an AKIA key). If the credentials are right, allow securityhub:GetFindings for that user or role.";
344
+ }
345
+ return "Open IAM > Users > the connector user > Security credentials and compare the Access key ID with the connection, then create a new access key and paste its Secret access key. For temporary credentials also paste the Session token (leave it empty for a long-lived AKIA key), and use the Region where Security Hub is enabled.";
346
+ }
347
+ static readRemediation(error, message) {
348
+ const status = AwsSecurityHubConnector.statusFromMessage(message);
349
+ const code = AwsSecurityHubConnector.errorCodeOf(error);
350
+ if (AwsSecurityHubConnector.isConnectivityFailure(message)) {
351
+ return AwsSecurityHubConnector.connectivityRemediation();
352
+ }
353
+ if (code === "InvalidAccessException" ||
354
+ message.includes("InvalidAccessException")) {
355
+ return "Enable Security Hub in this Region for this account (Security Hub > Get started), or point the connection at the delegated administrator account's home Region where findings are aggregated.";
356
+ }
357
+ if (code === "AccessDeniedException" || status === 403) {
358
+ return "Allow securityhub:GetFindings for the IAM identity: attach the AWSSecurityHubReadOnlyAccess managed policy, or an inline policy with Action securityhub:GetFindings on Resource *, to the user or role whose access key the connection uses. To see member accounts' findings, use a key from the Security Hub delegated administrator account in its home (aggregation) Region.";
359
+ }
360
+ if (status === 429) {
361
+ return "Security Hub is throttling GetFindings for this account. Wait a minute and test again.";
362
+ }
363
+ if (status !== null && status >= 500) {
364
+ return "Security Hub reported a server-side problem. Test again in a few minutes; polling retries on its own.";
365
+ }
366
+ return "Read the message: it names the step that failed and the response AWS returned. Correct the setting it points at and test again.";
367
+ }
368
+ /*
369
+ * ---------------------------------------------------------------------
370
+ * Fetch
371
+ * ---------------------------------------------------------------------
372
+ */
373
+ async fetchEvents(settings, window, options) {
374
+ /*
375
+ * The same validation the form and the tester run, so a settings row
376
+ * for another provider or a temporary key saved without its session
377
+ * token is refused here with the field named, before a request that
378
+ * would only fail with an opaque UnrecognizedClientException.
379
+ */
380
+ this.validateSettings(settings);
381
+ const client = this.createClient(settings, options.requestTimeoutInMs);
382
+ const result = {
383
+ events: [],
384
+ fetchedCount: 0,
385
+ rejectedCount: 0,
386
+ failedCount: 0,
387
+ complete: true,
388
+ requestCount: 0,
389
+ warnings: [],
390
+ samples: [],
391
+ };
392
+ const maxRequests = Math.max(1, Math.floor(options.maxRequests));
393
+ const maxEvents = Math.max(1, Math.floor(options.maxEvents));
394
+ const sampleLimit = Math.max(0, Math.floor(options.sampleLimit));
395
+ let nextToken = null;
396
+ /*
397
+ * CreatedAt of the last finding read, in the API's ascending order.
398
+ * Every finding read counts, including ones the normalizer rejects:
399
+ * the point is how far through the window the read got.
400
+ */
401
+ let lastCreatedAt = undefined;
402
+ while (true) {
403
+ if (result.requestCount >= maxRequests) {
404
+ result.complete = false;
405
+ result.resumeAfter = lastCreatedAt;
406
+ result.warnings.push(`Stopped after ${result.requestCount} findings requests (the per-run request limit) before the window was fully read. ${AwsSecurityHubConnector.progressSentence(lastCreatedAt)}`);
407
+ break;
408
+ }
409
+ const page = await client.getFindings({
410
+ startTime: window.startTime,
411
+ endTime: window.endTime,
412
+ maxResults: AWS_SECURITY_HUB_DEFAULT_PAGE_SIZE,
413
+ nextToken,
414
+ });
415
+ result.requestCount++;
416
+ let findings = page.findings;
417
+ const remaining = maxEvents - result.fetchedCount;
418
+ let eventBoundHit = false;
419
+ if (findings.length > remaining) {
420
+ findings = findings.slice(0, Math.max(0, remaining));
421
+ eventBoundHit = true;
422
+ }
423
+ for (const raw of findings) {
424
+ result.fetchedCount++;
425
+ const createdAt = AwsSecurityHubConnector.readCreatedAt(raw);
426
+ if (createdAt) {
427
+ lastCreatedAt = createdAt;
428
+ }
429
+ if (!AwsSecurityHubNormalizer.isRecognized(raw)) {
430
+ result.rejectedCount++;
431
+ continue;
432
+ }
433
+ try {
434
+ const normalized = AwsSecurityHubNormalizer.normalize(raw);
435
+ result.events.push(normalized);
436
+ if (result.samples.length < sampleLimit) {
437
+ result.samples.push(AwsSecurityHubConnector.toSample(normalized));
438
+ }
439
+ }
440
+ catch (_a) {
441
+ result.failedCount++;
442
+ }
443
+ }
444
+ if (eventBoundHit ||
445
+ (page.nextToken && result.fetchedCount >= maxEvents)) {
446
+ result.complete = false;
447
+ result.resumeAfter = lastCreatedAt;
448
+ result.warnings.push(`Stopped after ${result.fetchedCount} findings (the per-run record limit) before the window was fully read. ${AwsSecurityHubConnector.progressSentence(lastCreatedAt)}`);
449
+ break;
450
+ }
451
+ if (!page.nextToken) {
452
+ break;
453
+ }
454
+ nextToken = page.nextToken;
455
+ }
456
+ return result;
457
+ }
458
+ /*
459
+ * A finding's CreatedAt as a Date, or undefined when it is missing or
460
+ * unparseable. ASFF allows up to nine fractional digits; Date keeps
461
+ * milliseconds, which only ever rounds the resume point earlier, so the
462
+ * next poll re-reads (and dedupes) rather than skips.
463
+ */
464
+ static readCreatedAt(raw) {
465
+ const value = raw["CreatedAt"];
466
+ if (typeof value !== "string" || !value.trim()) {
467
+ return undefined;
468
+ }
469
+ const parsed = new Date(value.trim());
470
+ return Number.isNaN(parsed.getTime()) ? undefined : parsed;
471
+ }
472
+ /*
473
+ * How far a stopped read got, in the warning the run records. The
474
+ * poller decides what the next poll does with it and says so itself.
475
+ */
476
+ static progressSentence(lastCreatedAt) {
477
+ return lastCreatedAt
478
+ ? `The last finding read was created at ${lastCreatedAt.toISOString()}.`
479
+ : "No finding read carried a readable CreatedAt, so no resume point is reported.";
480
+ }
481
+ static toSample(event) {
482
+ const createdTime = String(event.attributes["CreatedAt"] || "");
483
+ const observedTime = String(event.attributes["FirstObservedAt"] || "");
484
+ return Object.assign(Object.assign({ id: event.eventUid, title: event.message, severity: event.severityName }, (createdTime ? { createdTime } : {})), {
485
+ /*
486
+ * The sample's eventTime is the finding's own first-observed time
487
+ * when the product reported one, so the diagnostics view can show
488
+ * how far behind the activity a finding was created.
489
+ */
490
+ eventTime: observedTime || event.time.toISOString() });
491
+ }
492
+ }
493
+ //# sourceMappingURL=AwsSecurityHubConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AwsSecurityHubConnector.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/SecurityEvent/Connectors/AwsSecurityHub/AwsSecurityHubConnector.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,iDAAiD,CAAC;AAG/E,OAAO,8BAA8B,MAAM,8EAA8E,CAAC;AAK1H,OAAO,wBAAwB,MAAM,wEAAwE,CAAC;AAC9G,OAAO,mBAEN,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,qBAAqB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAQL,SAAS,EACT,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,oBAAoB,EAAE,EAC3B,kCAAkC,EAGlC,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,cAAc,GAAW,kBAAkB,CAAC;AAClD,MAAM,SAAS,GAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9C;;;;GAIG;AACH,MAAM,0BAA0B,GAC9B,sGAAsG,CAAC;AASzG,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAM1C,YAAmB,SAA0C;QALtD,aAAQ,GACb,8BAA8B,CAAC,cAAc,CAAC;QAK9C,IAAI,CAAC,SAAS;YACZ,SAAS;gBACT,CAAC,CAAC,OAA8B,EAAE,EAAE;oBAClC,OAAO,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,eAAe,CAC5B,QAAmC;QAEnC,MAAM,MAAM,GAAe,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;QACjD,MAAM,OAAO,GAAe,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnD,OAAO;YACL,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,EAAE;YACzD,WAAW,EAAE,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC;YACrD,eAAe,EAAE,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC;YAC9D,YAAY,EAAE,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC;SACzD,CAAC;IACJ,CAAC;IAEM,gBAAgB,CAAC,QAAmC;QACzD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,IAAI,gBAAgB,CACxB,8BAA8B,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,cAAc,GAAG,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GACZ,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEpD,oBAAoB,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrD,oBAAoB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE/D,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;QAC/D,CAAC;QAED;;;;;WAKG;QACH,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACtE,MAAM,IAAI,gBAAgB,CACxB,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QAED;;;;;;WAMG;QACH,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;YACrE,MAAM,IAAI,gBAAgB,CACxB,2NAA2N,CAC5N,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,YAAY,CAClB,QAAmC,EACnC,kBAA0B;QAE1B,MAAM,QAAQ,GACZ,uBAAuB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEpD,OAAO,IAAI,oBAAoB,CAAC;YAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,eAAe,EAAE,QAAQ,CAAC,eAAe;YACzC,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS;YAChD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,kBAAkB;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IAEH;;;;;;;;;OASG;IACI,KAAK,CAAC,cAAc,CACzB,QAAmC,EACnC,OAA6B;QAE7B,MAAM,MAAM,GAAkC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAS,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;QACzD,MAAM,OAAO,GAAS,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAW,iBAAiB,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE1E,IAAI,MAA4B,CAAC;QAEjC,IAAI,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAChC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;gBACR,GAAG,EAAE,gBAAgB;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gBACvB,OAAO,EAAE,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChE,WAAW,EACT,wEAAwE;aAC3E,CAAC,CACH,CAAC;YACF,MAAM,CAAC,IAAI,CACT,uBAAuB,CAAC,OAAO,CAC7B,iBAAiB,EACjB,eAAe,EACf,kDAAkD,CACnD,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CACT,uBAAuB,CAAC,OAAO,CAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,kDAAkD,CACnD,CACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,8EAA8E;QAC9E,MAAM,cAAc,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,GAA+B,MAAM,MAAM,CAAC,WAAW,CAAC;gBAChE,SAAS,EAAE,MAAM;gBACjB,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;gBACR,GAAG,EAAE,gBAAgB;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,cAAc;gBAC3B,OAAO,EAAE,mBAAmB,MAAM,uEAAuE;aAC1G,CAAC,CACH,CAAC;YACF,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;gBACR,GAAG,EAAE,iBAAiB;gBACtB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,cAAc;gBAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAC3B,CAAC,CAAC,iGAAiG;oBACnG,CAAC,CAAC,+IAA+I;gBACnJ,OAAO,EAAE;oBACP,MAAM;oBACN,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;iBACzC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAW,eAAe,CACrC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CACvC,CAAC;YAEF,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;oBACR,GAAG,EAAE,gBAAgB;oBACrB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,cAAc;oBAC3B,OAAO,EAAE,mBAAmB,MAAM,0EAA0E;iBAC7G,CAAC,CACH,CAAC;gBACF,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;oBACR,GAAG,EAAE,iBAAiB;oBACtB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,MAAM;oBACd,WAAW,EAAE,cAAc;oBAC3B,OAAO;oBACP,WAAW,EAAE,uBAAuB,CAAC,eAAe,CAClD,KAAK,EACL,OAAO,CACR;iBACF,CAAC,CACH,CAAC;gBACF,MAAM,CAAC,IAAI,CACT,uBAAuB,CAAC,OAAO,CAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,6CAA6C,CAC9C,CACF,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;gBACR,GAAG,EAAE,gBAAgB;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,cAAc;gBAC3B,OAAO;gBACP,WAAW,EAAE,uBAAuB,CAAC,yBAAyB,CAC5D,KAAK,EACL,OAAO,CACR;aACF,CAAC,CACH,CAAC;YACF,MAAM,CAAC,IAAI,CACT,uBAAuB,CAAC,OAAO,CAC7B,iBAAiB,EACjB,eAAe,EACf,wCAAwC,CACzC,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CACT,uBAAuB,CAAC,OAAO,CAC7B,sBAAsB,EACtB,8BAA8B,EAC9B,wCAAwC,CACzC,CACF,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uEAAuE;QACvE,MAAM,cAAc,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,OAAO,GACX,MAAM,MAAM,CAAC,oBAAoB,CAAC;gBAChC,SAAS,EAAE,MAAM;gBACjB,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,kCAAkC;aAC/C,CAAC,CAAC;YACL,MAAM,MAAM,GACV,MAAM,MAAM,CAAC,oBAAoB,CAAC;gBAChC,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE,GAAG;gBACZ,UAAU,EAAE,kCAAkC;aAC/C,CAAC,CAAC;YAEL,MAAM,QAAQ,GAAW,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACrE,MAAM,OAAO,GAAW,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,OAAO,GACX,OAAO,CAAC,KAAK,KAAK,CAAC;gBACnB,MAAM,CAAC,KAAK,KAAK,CAAC;gBAClB,CAAC,OAAO,CAAC,OAAO;gBAChB,CAAC,MAAM,CAAC,OAAO,CAAC;YAElB,MAAM,CAAC,IAAI,CACT,SAAS,+BACP,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,8BAA8B,EACpC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACjC,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE,OAAO;oBACd,CAAC,CAAC,6GAA6G;oBAC/G,CAAC,CAAC,GAAG,QAAQ,WAAW,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,qCAAqC,OAAO,sBAAsB,IAC3I,CAAC,OAAO;gBACT,CAAC,CAAC;oBACE,WAAW,EACT,6TAA6T;iBAChU;gBACH,CAAC,CAAC,EAAE,CAAC,KACP,OAAO,EAAE;oBACP,cAAc,EAAE,OAAO,CAAC,KAAK;oBAC7B,cAAc,EAAE,OAAO,CAAC,OAAO;oBAC/B,aAAa,EAAE,MAAM,CAAC,KAAK;oBAC3B,aAAa,EAAE,MAAM,CAAC,OAAO;iBAC9B,IACD,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAW,eAAe,CACrC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CACvC,CAAC;YACF,MAAM,CAAC,IAAI,CACT,SAAS,CAAC;gBACR,GAAG,EAAE,sBAAsB;gBAC3B,IAAI,EAAE,8BAA8B;gBACpC,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,cAAc;gBAC3B,OAAO;gBACP,WAAW,EAAE,uBAAuB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;aACrE,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,OAAO,CACpB,GAAW,EACX,IAAY,EACZ,OAAe;QAEf,OAAO,SAAS,CAAC;YACf,GAAG;YACH,IAAI;YACJ,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,KAAiC;QACzD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,iBAAiB,CAAC,OAAe;QAC9C,MAAM,KAAK,GAA4B,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEzE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,mBAAmB,CAAC,KAAc;QAC/C,OAAO,CACL,KAAK,YAAY,uBAAuB;YACxC,KAAK,CAAC,WAAW,KAAK,eAAe,CACtC,CAAC;IACJ,CAAC;IAED,qEAAqE;IAC7D,MAAM,CAAC,WAAW,CAAC,KAAc;QACvC,OAAO,KAAK,YAAY,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,qBAAqB,CAAC,OAAe;QAClD,IAAI,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAEO,MAAM,CAAC,uBAAuB;QACpC,OAAO,mNAAmN,CAAC;IAC7N,CAAC;IAEO,MAAM,CAAC,yBAAyB,CACtC,KAAc,EACd,OAAe;QAEf,MAAM,MAAM,GACV,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAW,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;QAC3D,CAAC;QAED,IACE,IAAI,KAAK,uBAAuB;YAChC,IAAI,KAAK,cAAc;YACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAChC,CAAC;YACD,OAAO,4JAA4J,CAAC;QACtK,CAAC;QAED,IACE,IAAI,KAAK,gBAAgB;YACzB,IAAI,KAAK,sBAAsB;YAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACrC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAC7C,CAAC;YACD,OAAO,8IAA8I,CAAC;QACxJ,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,qJAAqJ,CAAC;QAC/J,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,wFAAwF,CAAC;QAClG,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACrC,OAAO,uGAAuG,CAAC;QACjH,CAAC;QAED;;;;;WAKG;QACH,IACE,MAAM,KAAK,GAAG;YACd,CAAC,CACC,KAAK,YAAY,uBAAuB;gBACxC,KAAK,CAAC,WAAW,KAAK,gBAAgB,CACvC,EACD,CAAC;YACD,OAAO,2aAA2a,CAAC;QACrb,CAAC;QAED,OAAO,oUAAoU,CAAC;IAC9U,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,KAAc,EAAE,OAAe;QAC5D,MAAM,MAAM,GACV,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,GAAW,uBAAuB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,uBAAuB,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;QAC3D,CAAC;QAED,IACE,IAAI,KAAK,wBAAwB;YACjC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAC1C,CAAC;YACD,OAAO,+LAA+L,CAAC;QACzM,CAAC;QAED,IAAI,IAAI,KAAK,uBAAuB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACvD,OAAO,kXAAkX,CAAC;QAC5X,CAAC;QAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,wFAAwF,CAAC;QAClG,CAAC;QAED,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACrC,OAAO,uGAAuG,CAAC;QACjH,CAAC;QAED,OAAO,iIAAiI,CAAC;IAC3I,CAAC;IAED;;;;OAIG;IAEI,KAAK,CAAC,WAAW,CACtB,QAAmC,EACnC,MAA4B,EAC5B,OAA8B;QAE9B;;;;;WAKG;QACH,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAyB,IAAI,CAAC,YAAY,CACpD,QAAQ,EACR,OAAO,CAAC,kBAAkB,CAC3B,CAAC;QAEF,MAAM,MAAM,GAAyB;YACnC,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,MAAM,WAAW,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACrE,MAAM,WAAW,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAEzE,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC;;;;WAIG;QACH,IAAI,aAAa,GAAqB,SAAS,CAAC;QAEhD,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,MAAM,CAAC,YAAY,IAAI,WAAW,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,iBAAiB,MAAM,CAAC,YAAY,oFAAoF,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAClL,CAAC;gBACF,MAAM;YACR,CAAC;YAED,MAAM,IAAI,GAA+B,MAAM,MAAM,CAAC,WAAW,CAAC;gBAChE,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,kCAAkC;gBAC9C,SAAS;aACV,CAAC,CAAC;YACH,MAAM,CAAC,YAAY,EAAE,CAAC;YAEtB,IAAI,QAAQ,GAAsB,IAAI,CAAC,QAAQ,CAAC;YAChD,MAAM,SAAS,GAAW,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;YAC1D,IAAI,aAAa,GAAY,KAAK,CAAC;YAEnC,IAAI,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;gBAChC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBACrD,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,YAAY,EAAE,CAAC;gBAEtB,MAAM,SAAS,GACb,uBAAuB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAE7C,IAAI,SAAS,EAAE,CAAC;oBACd,aAAa,GAAG,SAAS,CAAC;gBAC5B,CAAC;gBAED,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,CAAC,aAAa,EAAE,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,UAAU,GACd,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAE/B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;wBACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAAC,WAAM,CAAC;oBACP,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,IACE,aAAa;gBACb,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC,EACpD,CAAC;gBACD,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACxB,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,iBAAiB,MAAM,CAAC,YAAY,0EAA0E,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CACxK,CAAC;gBACF,MAAM;YACR,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM;YACR,CAAC;YAED,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAAC,GAAe;QAC1C,MAAM,KAAK,GAAY,GAAG,CAAC,WAAW,CAAC,CAAC;QAExC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,gBAAgB,CAAC,aAA+B;QAC7D,OAAO,aAAa;YAClB,CAAC,CAAC,wCAAwC,aAAa,CAAC,WAAW,EAAE,GAAG;YACxE,CAAC,CAAC,+EAA+E,CAAC;IACtF,CAAC;IAEO,MAAM,CAAC,QAAQ,CACrB,KAA8B;QAE9B,MAAM,WAAW,GAAW,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,YAAY,GAAW,MAAM,CACjC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAC1C,CAAC;QAEF,qCACE,EAAE,EAAE,KAAK,CAAC,QAAQ,EAClB,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,QAAQ,EAAE,KAAK,CAAC,YAAY,IACzB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC;;;;eAIG;YACH,SAAS,EAAE,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IACnD;IACJ,CAAC;CACF"}