@oneuptime/common 12.0.25 → 12.0.26

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 (834) hide show
  1. package/Models/AnalyticsModels/Index.ts +2 -0
  2. package/Models/AnalyticsModels/ThreatIntelIndicator.ts +413 -0
  3. package/Models/DatabaseModels/AlertSeverity.ts +4 -1
  4. package/Models/DatabaseModels/CephClusterFeed.ts +625 -0
  5. package/Models/DatabaseModels/CloudResourceFeed.ts +625 -0
  6. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +13 -0
  7. package/Models/DatabaseModels/DetectionRule.ts +9 -3
  8. package/Models/DatabaseModels/DockerHostFeed.ts +625 -0
  9. package/Models/DatabaseModels/DockerSwarmClusterFeed.ts +628 -0
  10. package/Models/DatabaseModels/GoogleSecOpsConnection.ts +9 -3
  11. package/Models/DatabaseModels/HostFeed.ts +625 -0
  12. package/Models/DatabaseModels/IncidentSeverity.ts +4 -1
  13. package/Models/DatabaseModels/Index.ts +22 -0
  14. package/Models/DatabaseModels/KubernetesClusterFeed.ts +628 -0
  15. package/Models/DatabaseModels/Monitor.ts +87 -0
  16. package/Models/DatabaseModels/NetworkDevice.ts +96 -5
  17. package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +92 -6
  18. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +301 -31
  19. package/Models/DatabaseModels/NetworkSite.ts +120 -0
  20. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +1 -0
  21. package/Models/DatabaseModels/PodmanHostFeed.ts +625 -0
  22. package/Models/DatabaseModels/ProxmoxClusterFeed.ts +626 -0
  23. package/Models/DatabaseModels/ScheduledMaintenance.ts +67 -0
  24. package/Models/DatabaseModels/ServiceFeed.ts +625 -0
  25. package/Models/DatabaseModels/TelemetrySourceMap.ts +474 -0
  26. package/Models/DatabaseModels/ThreatIntelFeed.ts +758 -0
  27. package/Models/DatabaseModels/UserOnCallLog.ts +1 -0
  28. package/Models/DatabaseModels/UserTotpAuth.ts +1 -0
  29. package/Models/DatabaseModels/UserWebAuthn.ts +1 -0
  30. package/Server/API/AlertAPI.ts +23 -1
  31. package/Server/API/BaseAPI.ts +14 -3
  32. package/Server/API/IncidentAPI.ts +41 -1
  33. package/Server/API/IncidentEpisodeAPI.ts +23 -1
  34. package/Server/API/MicrosoftTeamsAPI.ts +31 -2
  35. package/Server/API/ScheduledMaintenanceAPI.ts +23 -1
  36. package/Server/API/SlackAPI.ts +48 -0
  37. package/Server/API/TelemetryAPI.ts +167 -42
  38. package/Server/API/UserOnCallLogTimelineAPI.ts +75 -61
  39. package/Server/API/UserTotpAuthAPI.ts +67 -1
  40. package/Server/API/UserWebAuthnAPI.ts +44 -1
  41. package/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.ts +57 -0
  42. package/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.ts +49 -0
  43. package/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.ts +129 -0
  44. package/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.ts +54 -0
  45. package/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.ts +64 -0
  46. package/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.ts +64 -0
  47. package/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.ts +72 -0
  48. package/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.ts +31 -0
  49. package/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.ts +489 -0
  50. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +18 -0
  51. package/Server/Middleware/IdentityRateLimit.ts +53 -3
  52. package/Server/Services/AIService.ts +181 -41
  53. package/Server/Services/CephClusterFeedService.ts +99 -0
  54. package/Server/Services/CephClusterLabelRuleEngineService.ts +29 -0
  55. package/Server/Services/CephClusterOwnerRuleEngineService.ts +23 -0
  56. package/Server/Services/CephClusterOwnerTeamService.ts +129 -0
  57. package/Server/Services/CephClusterOwnerUserService.ts +123 -0
  58. package/Server/Services/CephClusterService.ts +223 -2
  59. package/Server/Services/CloudResourceFeedService.ts +99 -0
  60. package/Server/Services/CloudResourceLabelRuleEngineService.ts +30 -0
  61. package/Server/Services/CloudResourceOwnerRuleEngineService.ts +33 -0
  62. package/Server/Services/CloudResourceOwnerTeamService.ts +129 -0
  63. package/Server/Services/CloudResourceOwnerUserService.ts +123 -0
  64. package/Server/Services/CloudResourceService.ts +227 -2
  65. package/Server/Services/DatabaseService.ts +265 -0
  66. package/Server/Services/DockerHostFeedService.ts +99 -0
  67. package/Server/Services/DockerHostLabelRuleEngineService.ts +29 -0
  68. package/Server/Services/DockerHostOwnerRuleEngineService.ts +23 -0
  69. package/Server/Services/DockerHostOwnerTeamService.ts +129 -0
  70. package/Server/Services/DockerHostOwnerUserService.ts +123 -0
  71. package/Server/Services/DockerHostService.ts +227 -2
  72. package/Server/Services/DockerSwarmClusterFeedService.ts +102 -0
  73. package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +30 -0
  74. package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +24 -0
  75. package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +133 -0
  76. package/Server/Services/DockerSwarmClusterOwnerUserService.ts +127 -0
  77. package/Server/Services/DockerSwarmClusterService.ts +229 -2
  78. package/Server/Services/EnterpriseLicenseService.ts +15 -7
  79. package/Server/Services/ExceptionAggregationService.ts +12 -2
  80. package/Server/Services/HostFeedService.ts +99 -0
  81. package/Server/Services/HostLabelRuleEngineService.ts +29 -0
  82. package/Server/Services/HostOwnerRuleEngineService.ts +23 -0
  83. package/Server/Services/HostOwnerTeamService.ts +129 -0
  84. package/Server/Services/HostOwnerUserService.ts +123 -0
  85. package/Server/Services/HostService.ts +215 -2
  86. package/Server/Services/IncidentService.ts +11 -0
  87. package/Server/Services/Index.ts +24 -0
  88. package/Server/Services/KubernetesClusterFeedService.ts +99 -0
  89. package/Server/Services/KubernetesClusterLabelRuleEngineService.ts +30 -0
  90. package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +24 -0
  91. package/Server/Services/KubernetesClusterOwnerTeamService.ts +133 -0
  92. package/Server/Services/KubernetesClusterOwnerUserService.ts +127 -0
  93. package/Server/Services/KubernetesClusterService.ts +231 -2
  94. package/Server/Services/LogAggregationService.ts +23 -280
  95. package/Server/Services/MetricAggregationService.ts +98 -1
  96. package/Server/Services/MonitorService.ts +177 -13
  97. package/Server/Services/MonitorTemplateService.ts +111 -0
  98. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +777 -86
  99. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +199 -16
  100. package/Server/Services/NetworkDeviceDiscoveryScanService.ts +1055 -14
  101. package/Server/Services/NetworkDeviceService.ts +750 -4
  102. package/Server/Services/NetworkInterfaceService.ts +415 -0
  103. package/Server/Services/NetworkSiteService.ts +485 -52
  104. package/Server/Services/PodmanHostFeedService.ts +99 -0
  105. package/Server/Services/PodmanHostLabelRuleEngineService.ts +29 -0
  106. package/Server/Services/PodmanHostOwnerRuleEngineService.ts +23 -0
  107. package/Server/Services/PodmanHostOwnerTeamService.ts +129 -0
  108. package/Server/Services/PodmanHostOwnerUserService.ts +123 -0
  109. package/Server/Services/PodmanHostService.ts +227 -2
  110. package/Server/Services/ProjectService.ts +16 -10
  111. package/Server/Services/ProxmoxClusterFeedService.ts +99 -0
  112. package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +30 -0
  113. package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +24 -0
  114. package/Server/Services/ProxmoxClusterOwnerTeamService.ts +131 -0
  115. package/Server/Services/ProxmoxClusterOwnerUserService.ts +124 -0
  116. package/Server/Services/ProxmoxClusterService.ts +225 -2
  117. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +61 -0
  118. package/Server/Services/ServiceFeedService.ts +99 -0
  119. package/Server/Services/ServiceLabelRuleEngineService.ts +29 -0
  120. package/Server/Services/ServiceOwnerRuleEngineService.ts +26 -0
  121. package/Server/Services/ServiceOwnerTeamService.ts +129 -0
  122. package/Server/Services/ServiceOwnerUserService.ts +123 -0
  123. package/Server/Services/ServiceService.ts +227 -3
  124. package/Server/Services/StatusPageSubscriberService.ts +7 -0
  125. package/Server/Services/TelemetryAttributeService.ts +13 -3
  126. package/Server/Services/TelemetrySourceMapService.ts +307 -0
  127. package/Server/Services/ThreatIntelFeedService.ts +222 -0
  128. package/Server/Services/ThreatIntelIndicatorService.ts +428 -0
  129. package/Server/Services/TraceAggregationService.ts +101 -11
  130. package/Server/Services/UserService.ts +13 -6
  131. package/Server/Services/UserTwoFactorBackupCodeService.ts +127 -0
  132. package/Server/Services/UserWebhookService.ts +11 -2
  133. package/Server/Static/Brand/README.md +38 -0
  134. package/Server/Static/Brand/favicons/apple-touch-icon.png +0 -0
  135. package/Server/Static/Brand/favicons/favicon-16x16.png +0 -0
  136. package/Server/Static/Brand/favicons/favicon-32x32.png +0 -0
  137. package/Server/Static/Brand/favicons/favicon.ico +0 -0
  138. package/Server/Static/Brand/favicons/safari-pinned-tab.svg +31 -0
  139. package/Server/Static/Brand/hou-wb.svg +1 -0
  140. package/Server/Static/Brand/oneuptime-logo.svg +1 -0
  141. package/Server/Static/Brand/ou-wb.svg +1 -0
  142. package/Server/Static/Vendor/README.md +4 -0
  143. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +13 -3
  144. package/Server/Types/Database/AggregateBy.ts +83 -0
  145. package/Server/Types/Database/AggregateResultUtil.ts +126 -0
  146. package/Server/Types/Database/JSONColumnQuery.ts +18 -0
  147. package/Server/Types/Database/QueryHelper.ts +40 -0
  148. package/Server/Types/Database/QueryUtil.ts +26 -0
  149. package/Server/Types/Workflow/Components/API/Utils.ts +10 -1
  150. package/Server/Types/Workflow/Components/JavaScript.ts +8 -0
  151. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +9 -0
  152. package/Server/Utils/AI/SRE/InvestigationGrader.ts +18 -0
  153. package/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.ts +422 -0
  154. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +176 -0
  155. package/Server/Utils/DataSource/HttpFetch.ts +18 -0
  156. package/Server/Utils/Database/RelationIdUtil.ts +42 -0
  157. package/Server/Utils/Marketing/MarketingEventUtil.ts +38 -9
  158. package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +34 -3
  159. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +9 -1
  160. package/Server/Utils/Monitor/Criteria/SyntheticMonitor.ts +28 -10
  161. package/Server/Utils/Monitor/MonitorAlert.ts +541 -332
  162. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +330 -64
  163. package/Server/Utils/Monitor/MonitorIncident.ts +640 -434
  164. package/Server/Utils/Monitor/MonitorResource.ts +226 -49
  165. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +46 -3
  166. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +23 -102
  167. package/Server/Utils/Monitor/PerEntityCriteriaFanOut.ts +329 -0
  168. package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +427 -0
  169. package/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.ts +310 -0
  170. package/Server/Utils/OnCallNotificationContext.ts +686 -0
  171. package/Server/Utils/PrivateNetworkWebhookConfig.ts +549 -0
  172. package/Server/Utils/ResourceFeed/ResourceFeedUtil.ts +139 -0
  173. package/Server/Utils/Response.ts +11 -1
  174. package/Server/Utils/SSRFProtection.ts +230 -60
  175. package/Server/Utils/SecurityEvent/ConnectorErrorMessage.ts +106 -0
  176. package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +84 -284
  177. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +47 -20
  178. package/Server/Utils/SecurityEvent/SecurityEventAlerting.ts +318 -0
  179. package/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.ts +199 -0
  180. package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.ts +252 -0
  181. package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.ts +739 -0
  182. package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.ts +533 -0
  183. package/Server/Utils/StartServer.ts +83 -56
  184. package/Server/Utils/StatusPageSubscriberWebhook.ts +3 -0
  185. package/Server/Utils/Telemetry/SourceMapResolver.ts +480 -0
  186. package/Server/Utils/TwoFactorBackupCodeNotification.ts +106 -0
  187. package/Server/Utils/VM/VMAPI.ts +3 -0
  188. package/Server/Utils/VM/VMRunner.ts +27 -1
  189. package/Server/Utils/VendorAssets.ts +42 -0
  190. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +136 -6
  191. package/Server/Views/AcknowledgeUserOnCallNotification.ejs +11 -9
  192. package/Server/Views/Partials/Head.ejs +9 -9
  193. package/Server/Views/Partials/OnCallNotificationDetails.ejs +48 -0
  194. package/Server/Views/ViewMessage.ejs +11 -9
  195. package/Tests/App/Accounts/LoginTwoFactorRecovery.test.tsx +972 -0
  196. package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +401 -0
  197. package/Tests/App/Dashboard/DiscoveryScanEditForm.test.tsx +707 -0
  198. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +1908 -18
  199. package/Tests/App/Dashboard/ResourceFeed.test.tsx +230 -0
  200. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +216 -0
  201. package/Tests/App/Dashboard/TopologyAddToMonitoring.test.tsx +192 -0
  202. package/Tests/App/Dashboard/WorkspaceNotificationRuleConditions.test.tsx +439 -0
  203. package/Tests/Models/DatabaseModels/DateColumnDeserialization.test.ts +182 -0
  204. package/Tests/Models/DatabaseModels/RelationColumnModelTypeCoverage.test.ts +82 -0
  205. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +398 -0
  206. package/Tests/Models/DiscoveryScanNameColumn.test.ts +151 -16
  207. package/Tests/Models/DiscoveryScanSnmpEnabledColumn.test.ts +593 -0
  208. package/Tests/Models/NetworkDeviceCreateContract.test.ts +102 -0
  209. package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +607 -0
  210. package/Tests/Server/API/AIGenerationRequestBudget.test.ts +355 -0
  211. package/Tests/Server/API/AIKillSwitchBackstop.test.ts +602 -0
  212. package/Tests/Server/API/BaseAPIUpdateDateColumns.test.ts +154 -0
  213. package/Tests/Server/API/MicrosoftTeamsBotTestEndpoint.test.ts +335 -0
  214. package/Tests/Server/API/UserOnCallLogTimelineAcknowledgePage.test.ts +611 -0
  215. package/Tests/Server/API/UserTotpAuthAPI.test.ts +498 -4
  216. package/Tests/Server/API/UserWebAuthnBackupCodeMinting.test.ts +682 -0
  217. package/Tests/Server/Infrastructure/ExampleDockerfiles.test.ts +595 -0
  218. package/Tests/Server/Services/AIServiceDailyBudget.test.ts +9 -0
  219. package/Tests/Server/Services/AIServiceProjectAccess.test.ts +6 -0
  220. package/Tests/Server/Services/AutoImportScanCredentialSelect.test.ts +18 -0
  221. package/Tests/Server/Services/DatabaseServiceAggregateBy.test.ts +590 -0
  222. package/Tests/Server/Services/DatabaseServiceUpdateWriteRouting.test.ts +12 -0
  223. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +162 -26
  224. package/Tests/Server/Services/EnterpriseLicenseServiceCreate.test.ts +292 -0
  225. package/Tests/Server/Services/FeedRetentionConsistency.test.ts +119 -12
  226. package/Tests/Server/Services/LogAggregationAttributeOperators.test.ts +109 -0
  227. package/Tests/Server/Services/MetricAggregationAttributeOperators.test.ts +170 -0
  228. package/Tests/Server/Services/MonitorTemplateServiceNetworkDeviceSync.test.ts +383 -0
  229. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +997 -3
  230. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +830 -0
  231. package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +528 -0
  232. package/Tests/Server/Services/NetworkDeviceDiscoveryScanService.test.ts +3141 -1
  233. package/Tests/Server/Services/NetworkDeviceRegisteredHostnames.test.ts +1023 -0
  234. package/Tests/Server/Services/NetworkDeviceSiteAssignmentRuleSkip.test.ts +728 -0
  235. package/Tests/Server/Services/NetworkInterfaceServiceUpsert.test.ts +795 -0
  236. package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +903 -0
  237. package/Tests/Server/Services/NetworkSiteService.test.ts +165 -24
  238. package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +5 -3
  239. package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +5 -2
  240. package/Tests/Server/Services/ResourceCreationFeedWrites.test.ts +304 -0
  241. package/Tests/Server/Services/ResourceFeedServices.test.ts +269 -0
  242. package/Tests/Server/Services/ResourceOwnerFeedWrites.test.ts +245 -0
  243. package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +792 -0
  244. package/Tests/Server/Services/TelemetrySourceMapService.test.ts +483 -0
  245. package/Tests/Server/Services/ThreatIntelFeedService.test.ts +351 -0
  246. package/Tests/Server/Services/ThreatIntelIndicatorService.test.ts +366 -0
  247. package/Tests/Server/Services/TraceAggregationAttributeOperators.test.ts +507 -0
  248. package/Tests/Server/Services/UserTwoFactorBackupCodeGenerateIfNone.test.ts +705 -0
  249. package/Tests/Server/Services/WorkspaceNotificationRuleOnCallDutyPolicy.test.ts +306 -0
  250. package/Tests/Server/Types/Database/AggregateResultUtil.test.ts +386 -0
  251. package/Tests/Server/Types/Database/Permissions/SelectRejectionMessageContract.test.ts +424 -0
  252. package/Tests/Server/Types/Database/QueryHelperWildcard.test.ts +142 -0
  253. package/Tests/Server/Types/Workflow/Components/ApiComponentPrivateNetwork.test.ts +163 -0
  254. package/Tests/Server/Types/Workflow/Components/JavaScriptPrivateNetwork.test.ts +124 -0
  255. package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +5 -0
  256. package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +39 -1
  257. package/Tests/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.test.ts +338 -0
  258. package/Tests/Server/Utils/AnalyticsDatabase/StatementGeneratorWildcard.test.ts +383 -0
  259. package/Tests/Server/Utils/Marketing/EmittedMarketingEvent.ts +23 -0
  260. package/Tests/Server/Utils/Marketing/MarketingEventUtil.test.ts +51 -0
  261. package/Tests/Server/Utils/Monitor/Criteria/SyntheticMonitorCriteria.test.ts +259 -0
  262. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +557 -0
  263. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +12 -2
  264. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkLogWritePath.test.ts +404 -0
  265. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +8 -2
  266. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +125 -98
  267. package/Tests/Server/Utils/Monitor/PerEntityCriteriaFanOut.test.ts +444 -0
  268. package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1112 -0
  269. package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +717 -0
  270. package/Tests/Server/Utils/NetworkDevice/RulePatternValidator.test.ts +78 -0
  271. package/Tests/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.test.ts +363 -0
  272. package/Tests/Server/Utils/OfflineAssetHygiene.test.ts +35 -0
  273. package/Tests/Server/Utils/OnCallNotificationContext.test.ts +908 -0
  274. package/Tests/Server/Utils/PrivateNetworkWebhookConfig.test.ts +423 -0
  275. package/Tests/Server/Utils/ResourceFeed/ResourceFeedUtil.test.ts +191 -0
  276. package/Tests/Server/Utils/SSRFProtectionPrivateNetwork.test.ts +597 -0
  277. package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +819 -0
  278. package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +381 -0
  279. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +417 -0
  280. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +819 -0
  281. package/Tests/Server/Utils/SecurityEvent/SecurityEventAlerting.test.ts +246 -0
  282. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.test.ts +282 -0
  283. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.test.ts +312 -0
  284. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.test.ts +854 -0
  285. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.test.ts +437 -0
  286. package/Tests/Server/Utils/StartServerErrorStatus.test.ts +225 -0
  287. package/Tests/Server/Utils/StatusPage/MonitorRulePatternValidator.test.ts +62 -0
  288. package/Tests/Server/Utils/StatusPageSubscriberWebhookPrivateNetwork.test.ts +119 -0
  289. package/Tests/Server/Utils/Telemetry/SourceMapResolver.test.ts +542 -0
  290. package/Tests/Server/Utils/TwoFactorBackupCodeNotification.test.ts +272 -0
  291. package/Tests/Server/Utils/VM/VMRunnerPrivateNetworkWiring.test.ts +111 -0
  292. package/Tests/Server/Utils/VendorAssets.test.ts +117 -0
  293. package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +101 -4
  294. package/Tests/Server/Utils/Workspace/MicrosoftTeamsInstallStateDiagnostics.test.ts +922 -0
  295. package/Tests/Server/Utils/Workspace/MicrosoftTeamsRosterDiagnosticMessages.test.ts +642 -0
  296. package/Tests/Server/Views/OnCallAcknowledgePage.test.ts +430 -0
  297. package/Tests/Types/API/URLQueryString.test.ts +472 -0
  298. package/Tests/Types/BaseDatabase/Wildcard.test.ts +163 -0
  299. package/Tests/Types/BaseDatabase/WildcardPattern.test.ts +149 -0
  300. package/Tests/Types/Database/DateColumnValue.test.ts +265 -0
  301. package/Tests/Types/DateToIsoStringOrNull.test.ts +67 -0
  302. package/Tests/Types/Log/LogQueryToFilter.test.ts +218 -43
  303. package/Tests/Types/Monitor/KubernetesTemplateGroupByKeys.test.ts +225 -0
  304. package/Tests/Types/Monitor/TemplateGroupByKeys.test.ts +296 -0
  305. package/Tests/Types/NetworkAutomation/RuleRunResult.test.ts +102 -0
  306. package/Tests/Types/NetworkAutomation/RuleRunResultDescribe.test.ts +145 -0
  307. package/Tests/Types/NetworkSite/SiteHealthRollupPolicy.test.ts +58 -0
  308. package/Tests/Types/SerializableObjectDictionaryImportCycle.test.ts +15 -0
  309. package/Tests/Types/Telemetry/TelemetrySearchQuery.test.ts +620 -0
  310. package/Tests/Types/WhatsApp/WhatsAppTemplates.test.ts +110 -0
  311. package/Tests/Types/Workspace/NotificationRuleConditionUtil.test.ts +76 -6
  312. package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +16 -4
  313. package/Tests/Types/Workspace/NotificationRules/OnCallDutyPolicyConditions.test.ts +669 -0
  314. package/Tests/UI/Components/DictionaryFilterOperatorWildcard.test.ts +175 -0
  315. package/Tests/UI/Components/IconOpticalSize.test.tsx +377 -0
  316. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardInstallGuidance.test.tsx +332 -0
  317. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsInstallGuidanceContent.test.tsx +643 -0
  318. package/Tests/Utils/Monitor/InterfaceInventoryUtil.test.ts +824 -0
  319. package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +626 -0
  320. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +718 -0
  321. package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +59 -0
  322. package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +287 -2
  323. package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +73 -0
  324. package/Tests/Utils/NetworkDiscovery/PingMonitorBuilder.test.ts +317 -0
  325. package/Tests/Utils/NetworkDiscovery/RescanIntervalUtil.test.ts +262 -0
  326. package/Tests/Utils/NetworkDiscovery/ScanModeUtil.test.ts +474 -0
  327. package/Tests/Utils/NetworkDiscovery/SnmpScanConfigUtil.test.ts +2442 -0
  328. package/Tests/Utils/NetworkSite/SiteMaintenanceUtil.test.ts +188 -0
  329. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +522 -0
  330. package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +694 -0
  331. package/Tests/Utils/SecurityEvent/ThreatIntel/StixPatternParser.test.ts +281 -0
  332. package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +87 -67
  333. package/Types/API/URL.ts +45 -10
  334. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +8 -0
  335. package/Types/BaseDatabase/NotWildcard.ts +86 -0
  336. package/Types/BaseDatabase/Wildcard.ts +89 -0
  337. package/Types/BaseDatabase/WildcardPattern.ts +176 -0
  338. package/Types/Database/DateColumnValue.ts +184 -0
  339. package/Types/Database/TableColumn.ts +40 -5
  340. package/Types/Date.ts +37 -0
  341. package/Types/Email/EmailTemplateType.ts +1 -0
  342. package/Types/JSON.ts +8 -0
  343. package/Types/Log/LogQueryToFilter.ts +167 -129
  344. package/Types/Monitor/DockerAlertTemplates.ts +43 -12
  345. package/Types/Monitor/HostAlertTemplates.ts +31 -3
  346. package/Types/Monitor/KubernetesAlertTemplates.ts +98 -0
  347. package/Types/Monitor/MonitorStep.ts +49 -0
  348. package/Types/Monitor/PodmanAlertTemplates.ts +39 -12
  349. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +14 -0
  350. package/Types/Monitor/SnmpMonitor/LldpNeighbor.ts +11 -0
  351. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +11 -4
  352. package/Types/NetworkAutomation/RuleRunResult.ts +191 -2
  353. package/Types/NetworkSite/SiteHealthRollupPolicy.ts +96 -0
  354. package/Types/Permission.ts +411 -0
  355. package/Types/Probe/ProbeApiIngestResponse.ts +42 -0
  356. package/Types/SecurityEvent/ThreatIntelConstants.ts +118 -0
  357. package/Types/SerializableObjectDictionary.ts +8 -0
  358. package/Types/Telemetry/SourceMap.ts +56 -0
  359. package/Types/Telemetry/TelemetrySearchQuery.ts +949 -0
  360. package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +12 -1
  361. package/UI/Components/Dictionary/DictionaryFilterOperator.ts +83 -0
  362. package/UI/Components/Icon/Icon.tsx +28 -1
  363. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +26 -4
  364. package/UI/Components/LogsViewer/components/LogSearchHelp.tsx +34 -16
  365. package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +15 -2
  366. package/Utils/Metrics/MetricExplorerUrl.ts +77 -15
  367. package/Utils/Monitor/InterfaceInventoryUtil.ts +251 -0
  368. package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +333 -0
  369. package/Utils/Monitor/NetworkTopologyUtil.ts +249 -28
  370. package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +14 -6
  371. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +2 -0
  372. package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +49 -18
  373. package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +215 -0
  374. package/Utils/NetworkDiscovery/RescanIntervalUtil.ts +148 -0
  375. package/Utils/NetworkDiscovery/ScanModeUtil.ts +105 -0
  376. package/Utils/NetworkDiscovery/SnmpScanConfigUtil.ts +827 -0
  377. package/Utils/NetworkSite/SiteMaintenanceUtil.ts +110 -0
  378. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +350 -19
  379. package/Utils/NetworkSite/SiteUptimeUtil.ts +422 -21
  380. package/Utils/SecurityEvent/ThreatIntel/StixPatternParser.ts +383 -0
  381. package/Utils/Telemetry/CrossSignalScope.ts +37 -39
  382. package/build/dist/Models/AnalyticsModels/Index.js +2 -0
  383. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  384. package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js +325 -0
  385. package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js.map +1 -0
  386. package/build/dist/Models/DatabaseModels/AlertSeverity.js +4 -1
  387. package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
  388. package/build/dist/Models/DatabaseModels/CephClusterFeed.js +648 -0
  389. package/build/dist/Models/DatabaseModels/CephClusterFeed.js.map +1 -0
  390. package/build/dist/Models/DatabaseModels/CloudResourceFeed.js +648 -0
  391. package/build/dist/Models/DatabaseModels/CloudResourceFeed.js.map +1 -0
  392. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +11 -0
  393. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  394. package/build/dist/Models/DatabaseModels/DetectionRule.js +9 -3
  395. package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
  396. package/build/dist/Models/DatabaseModels/DockerHostFeed.js +648 -0
  397. package/build/dist/Models/DatabaseModels/DockerHostFeed.js.map +1 -0
  398. package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js +648 -0
  399. package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js.map +1 -0
  400. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +9 -3
  401. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
  402. package/build/dist/Models/DatabaseModels/HostFeed.js +648 -0
  403. package/build/dist/Models/DatabaseModels/HostFeed.js.map +1 -0
  404. package/build/dist/Models/DatabaseModels/IncidentSeverity.js +4 -1
  405. package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
  406. package/build/dist/Models/DatabaseModels/Index.js +22 -0
  407. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  408. package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js +648 -0
  409. package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js.map +1 -0
  410. package/build/dist/Models/DatabaseModels/Monitor.js +81 -0
  411. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  412. package/build/dist/Models/DatabaseModels/NetworkDevice.js +103 -7
  413. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  414. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +91 -6
  415. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
  416. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +276 -31
  417. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  418. package/build/dist/Models/DatabaseModels/NetworkSite.js +124 -1
  419. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
  420. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
  421. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  422. package/build/dist/Models/DatabaseModels/PodmanHostFeed.js +648 -0
  423. package/build/dist/Models/DatabaseModels/PodmanHostFeed.js.map +1 -0
  424. package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js +648 -0
  425. package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js.map +1 -0
  426. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +66 -0
  427. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  428. package/build/dist/Models/DatabaseModels/ServiceFeed.js +648 -0
  429. package/build/dist/Models/DatabaseModels/ServiceFeed.js.map +1 -0
  430. package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js +496 -0
  431. package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js.map +1 -0
  432. package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +800 -0
  433. package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -0
  434. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +1 -0
  435. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
  436. package/build/dist/Models/DatabaseModels/UserTotpAuth.js +1 -0
  437. package/build/dist/Models/DatabaseModels/UserTotpAuth.js.map +1 -1
  438. package/build/dist/Models/DatabaseModels/UserWebAuthn.js +1 -0
  439. package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
  440. package/build/dist/Server/API/AlertAPI.js +18 -1
  441. package/build/dist/Server/API/AlertAPI.js.map +1 -1
  442. package/build/dist/Server/API/BaseAPI.js +8 -1
  443. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  444. package/build/dist/Server/API/IncidentAPI.js +35 -1
  445. package/build/dist/Server/API/IncidentAPI.js.map +1 -1
  446. package/build/dist/Server/API/IncidentEpisodeAPI.js +18 -1
  447. package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
  448. package/build/dist/Server/API/MicrosoftTeamsAPI.js +30 -2
  449. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  450. package/build/dist/Server/API/ScheduledMaintenanceAPI.js +18 -1
  451. package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
  452. package/build/dist/Server/API/SlackAPI.js +45 -0
  453. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  454. package/build/dist/Server/API/TelemetryAPI.js +100 -35
  455. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  456. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +64 -59
  457. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
  458. package/build/dist/Server/API/UserTotpAuthAPI.js +65 -1
  459. package/build/dist/Server/API/UserTotpAuthAPI.js.map +1 -1
  460. package/build/dist/Server/API/UserWebAuthnAPI.js +42 -1
  461. package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
  462. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js +26 -0
  463. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js.map +1 -0
  464. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js +22 -0
  465. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js.map +1 -0
  466. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js +88 -0
  467. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js.map +1 -0
  468. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js +39 -0
  469. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js.map +1 -0
  470. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js +34 -0
  471. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js.map +1 -0
  472. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js +32 -0
  473. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js.map +1 -0
  474. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js +61 -0
  475. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js.map +1 -0
  476. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js +23 -0
  477. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js.map +1 -0
  478. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js +179 -0
  479. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js.map +1 -0
  480. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +18 -0
  481. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  482. package/build/dist/Server/Middleware/IdentityRateLimit.js +40 -3
  483. package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
  484. package/build/dist/Server/Services/AIService.js +177 -30
  485. package/build/dist/Server/Services/AIService.js.map +1 -1
  486. package/build/dist/Server/Services/CephClusterFeedService.js +89 -0
  487. package/build/dist/Server/Services/CephClusterFeedService.js.map +1 -0
  488. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +27 -3
  489. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
  490. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +21 -0
  491. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
  492. package/build/dist/Server/Services/CephClusterOwnerTeamService.js +120 -0
  493. package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -1
  494. package/build/dist/Server/Services/CephClusterOwnerUserService.js +113 -0
  495. package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -1
  496. package/build/dist/Server/Services/CephClusterService.js +175 -1
  497. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  498. package/build/dist/Server/Services/CloudResourceFeedService.js +89 -0
  499. package/build/dist/Server/Services/CloudResourceFeedService.js.map +1 -0
  500. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +27 -3
  501. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
  502. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +28 -3
  503. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
  504. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +120 -0
  505. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -1
  506. package/build/dist/Server/Services/CloudResourceOwnerUserService.js +113 -0
  507. package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -1
  508. package/build/dist/Server/Services/CloudResourceService.js +177 -1
  509. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  510. package/build/dist/Server/Services/DatabaseService.js +201 -0
  511. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  512. package/build/dist/Server/Services/DockerHostFeedService.js +89 -0
  513. package/build/dist/Server/Services/DockerHostFeedService.js.map +1 -0
  514. package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +27 -3
  515. package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
  516. package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +21 -0
  517. package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
  518. package/build/dist/Server/Services/DockerHostOwnerTeamService.js +120 -0
  519. package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -1
  520. package/build/dist/Server/Services/DockerHostOwnerUserService.js +113 -0
  521. package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -1
  522. package/build/dist/Server/Services/DockerHostService.js +177 -1
  523. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  524. package/build/dist/Server/Services/DockerSwarmClusterFeedService.js +90 -0
  525. package/build/dist/Server/Services/DockerSwarmClusterFeedService.js.map +1 -0
  526. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +27 -3
  527. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
  528. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +21 -0
  529. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
  530. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +120 -0
  531. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -1
  532. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +113 -0
  533. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -1
  534. package/build/dist/Server/Services/DockerSwarmClusterService.js +175 -1
  535. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  536. package/build/dist/Server/Services/EnterpriseLicenseService.js +40 -30
  537. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  538. package/build/dist/Server/Services/ExceptionAggregationService.js +8 -2
  539. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  540. package/build/dist/Server/Services/HostFeedService.js +89 -0
  541. package/build/dist/Server/Services/HostFeedService.js.map +1 -0
  542. package/build/dist/Server/Services/HostLabelRuleEngineService.js +27 -3
  543. package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
  544. package/build/dist/Server/Services/HostOwnerRuleEngineService.js +21 -0
  545. package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
  546. package/build/dist/Server/Services/HostOwnerTeamService.js +120 -0
  547. package/build/dist/Server/Services/HostOwnerTeamService.js.map +1 -1
  548. package/build/dist/Server/Services/HostOwnerUserService.js +113 -0
  549. package/build/dist/Server/Services/HostOwnerUserService.js.map +1 -1
  550. package/build/dist/Server/Services/HostService.js +175 -1
  551. package/build/dist/Server/Services/HostService.js.map +1 -1
  552. package/build/dist/Server/Services/IncidentService.js +10 -0
  553. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  554. package/build/dist/Server/Services/Index.js +24 -0
  555. package/build/dist/Server/Services/Index.js.map +1 -1
  556. package/build/dist/Server/Services/KubernetesClusterFeedService.js +89 -0
  557. package/build/dist/Server/Services/KubernetesClusterFeedService.js.map +1 -0
  558. package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +27 -3
  559. package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
  560. package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +21 -0
  561. package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
  562. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +120 -0
  563. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -1
  564. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +113 -0
  565. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -1
  566. package/build/dist/Server/Services/KubernetesClusterService.js +177 -1
  567. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  568. package/build/dist/Server/Services/LogAggregationService.js +19 -196
  569. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  570. package/build/dist/Server/Services/MetricAggregationService.js +59 -0
  571. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  572. package/build/dist/Server/Services/MonitorService.js +115 -13
  573. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  574. package/build/dist/Server/Services/MonitorTemplateService.js +86 -0
  575. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  576. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +561 -67
  577. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  578. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +130 -16
  579. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  580. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +850 -8
  581. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
  582. package/build/dist/Server/Services/NetworkDeviceService.js +594 -5
  583. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  584. package/build/dist/Server/Services/NetworkInterfaceService.js +306 -0
  585. package/build/dist/Server/Services/NetworkInterfaceService.js.map +1 -1
  586. package/build/dist/Server/Services/NetworkSiteService.js +408 -47
  587. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  588. package/build/dist/Server/Services/PodmanHostFeedService.js +89 -0
  589. package/build/dist/Server/Services/PodmanHostFeedService.js.map +1 -0
  590. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +27 -3
  591. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
  592. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +21 -0
  593. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
  594. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +120 -0
  595. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -1
  596. package/build/dist/Server/Services/PodmanHostOwnerUserService.js +113 -0
  597. package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -1
  598. package/build/dist/Server/Services/PodmanHostService.js +177 -1
  599. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  600. package/build/dist/Server/Services/ProjectService.js +40 -30
  601. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  602. package/build/dist/Server/Services/ProxmoxClusterFeedService.js +89 -0
  603. package/build/dist/Server/Services/ProxmoxClusterFeedService.js.map +1 -0
  604. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +27 -3
  605. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
  606. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +21 -0
  607. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
  608. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +120 -0
  609. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -1
  610. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +113 -0
  611. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -1
  612. package/build/dist/Server/Services/ProxmoxClusterService.js +175 -1
  613. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  614. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +56 -0
  615. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  616. package/build/dist/Server/Services/ServiceFeedService.js +89 -0
  617. package/build/dist/Server/Services/ServiceFeedService.js.map +1 -0
  618. package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +27 -3
  619. package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
  620. package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +24 -0
  621. package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
  622. package/build/dist/Server/Services/ServiceOwnerTeamService.js +120 -0
  623. package/build/dist/Server/Services/ServiceOwnerTeamService.js.map +1 -1
  624. package/build/dist/Server/Services/ServiceOwnerUserService.js +113 -0
  625. package/build/dist/Server/Services/ServiceOwnerUserService.js.map +1 -1
  626. package/build/dist/Server/Services/ServiceService.js +173 -2
  627. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  628. package/build/dist/Server/Services/StatusPageSubscriberService.js +7 -0
  629. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  630. package/build/dist/Server/Services/TelemetryAttributeService.js +9 -3
  631. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  632. package/build/dist/Server/Services/TelemetrySourceMapService.js +265 -0
  633. package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -0
  634. package/build/dist/Server/Services/ThreatIntelFeedService.js +157 -0
  635. package/build/dist/Server/Services/ThreatIntelFeedService.js.map +1 -0
  636. package/build/dist/Server/Services/ThreatIntelIndicatorService.js +276 -0
  637. package/build/dist/Server/Services/ThreatIntelIndicatorService.js.map +1 -0
  638. package/build/dist/Server/Services/TraceAggregationService.js +62 -6
  639. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  640. package/build/dist/Server/Services/UserService.js +22 -13
  641. package/build/dist/Server/Services/UserService.js.map +1 -1
  642. package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js +120 -0
  643. package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js.map +1 -1
  644. package/build/dist/Server/Services/UserWebhookService.js +11 -2
  645. package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
  646. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +12 -1
  647. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  648. package/build/dist/Server/Types/Database/AggregateBy.js +2 -0
  649. package/build/dist/Server/Types/Database/AggregateBy.js.map +1 -0
  650. package/build/dist/Server/Types/Database/AggregateResultUtil.js +90 -0
  651. package/build/dist/Server/Types/Database/AggregateResultUtil.js.map +1 -0
  652. package/build/dist/Server/Types/Database/JSONColumnQuery.js +14 -0
  653. package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -1
  654. package/build/dist/Server/Types/Database/QueryHelper.js +42 -0
  655. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  656. package/build/dist/Server/Types/Database/QueryUtil.js +18 -0
  657. package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
  658. package/build/dist/Server/Types/Workflow/Components/API/Utils.js +10 -1
  659. package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
  660. package/build/dist/Server/Types/Workflow/Components/JavaScript.js +8 -0
  661. package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
  662. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +8 -0
  663. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
  664. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +15 -0
  665. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
  666. package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js +266 -0
  667. package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js.map +1 -0
  668. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +134 -0
  669. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  670. package/build/dist/Server/Utils/DataSource/HttpFetch.js +8 -0
  671. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  672. package/build/dist/Server/Utils/Database/RelationIdUtil.js +31 -0
  673. package/build/dist/Server/Utils/Database/RelationIdUtil.js.map +1 -1
  674. package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js +26 -8
  675. package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js.map +1 -1
  676. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +42 -17
  677. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
  678. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +9 -1
  679. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  680. package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js +15 -2
  681. package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js.map +1 -1
  682. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +386 -271
  683. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  684. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +278 -64
  685. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  686. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +469 -350
  687. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  688. package/build/dist/Server/Utils/Monitor/MonitorResource.js +183 -44
  689. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  690. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +46 -3
  691. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
  692. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +18 -91
  693. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  694. package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js +194 -0
  695. package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js.map +1 -0
  696. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +332 -0
  697. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -0
  698. package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js +279 -0
  699. package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js.map +1 -0
  700. package/build/dist/Server/Utils/OnCallNotificationContext.js +415 -0
  701. package/build/dist/Server/Utils/OnCallNotificationContext.js.map +1 -0
  702. package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js +424 -0
  703. package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js.map +1 -0
  704. package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +108 -0
  705. package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js.map +1 -0
  706. package/build/dist/Server/Utils/Response.js +12 -1
  707. package/build/dist/Server/Utils/Response.js.map +1 -1
  708. package/build/dist/Server/Utils/SSRFProtection.js +160 -58
  709. package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
  710. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +89 -0
  711. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -0
  712. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +75 -234
  713. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
  714. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +41 -16
  715. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  716. package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js +217 -0
  717. package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js.map +1 -0
  718. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js +103 -0
  719. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js.map +1 -0
  720. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js +168 -0
  721. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js.map +1 -0
  722. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js +527 -0
  723. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js.map +1 -0
  724. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js +376 -0
  725. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js.map +1 -0
  726. package/build/dist/Server/Utils/StartServer.js +70 -44
  727. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  728. package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +3 -0
  729. package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -1
  730. package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js +327 -0
  731. package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js.map +1 -0
  732. package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js +84 -0
  733. package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js.map +1 -0
  734. package/build/dist/Server/Utils/VM/VMAPI.js.map +1 -1
  735. package/build/dist/Server/Utils/VM/VMRunner.js +10 -1
  736. package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
  737. package/build/dist/Server/Utils/VendorAssets.js +29 -0
  738. package/build/dist/Server/Utils/VendorAssets.js.map +1 -1
  739. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +121 -6
  740. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  741. package/build/dist/Types/API/URL.js +40 -10
  742. package/build/dist/Types/API/URL.js.map +1 -1
  743. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +8 -0
  744. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  745. package/build/dist/Types/BaseDatabase/NotWildcard.js +72 -0
  746. package/build/dist/Types/BaseDatabase/NotWildcard.js.map +1 -0
  747. package/build/dist/Types/BaseDatabase/Wildcard.js +75 -0
  748. package/build/dist/Types/BaseDatabase/Wildcard.js.map +1 -0
  749. package/build/dist/Types/BaseDatabase/WildcardPattern.js +137 -0
  750. package/build/dist/Types/BaseDatabase/WildcardPattern.js.map +1 -0
  751. package/build/dist/Types/Database/DateColumnValue.js +125 -0
  752. package/build/dist/Types/Database/DateColumnValue.js.map +1 -0
  753. package/build/dist/Types/Database/TableColumn.js +18 -2
  754. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  755. package/build/dist/Types/Date.js +31 -0
  756. package/build/dist/Types/Date.js.map +1 -1
  757. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  758. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  759. package/build/dist/Types/JSON.js +2 -0
  760. package/build/dist/Types/JSON.js.map +1 -1
  761. package/build/dist/Types/Log/LogQueryToFilter.js +111 -108
  762. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
  763. package/build/dist/Types/Monitor/DockerAlertTemplates.js +40 -16
  764. package/build/dist/Types/Monitor/DockerAlertTemplates.js.map +1 -1
  765. package/build/dist/Types/Monitor/HostAlertTemplates.js +29 -7
  766. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -1
  767. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +98 -4
  768. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  769. package/build/dist/Types/Monitor/MonitorStep.js +40 -0
  770. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  771. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +36 -16
  772. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -1
  773. package/build/dist/Types/NetworkAutomation/RuleRunResult.js +90 -0
  774. package/build/dist/Types/NetworkAutomation/RuleRunResult.js.map +1 -1
  775. package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js +84 -0
  776. package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js.map +1 -0
  777. package/build/dist/Types/Permission.js +354 -0
  778. package/build/dist/Types/Permission.js.map +1 -1
  779. package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js +100 -0
  780. package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js.map +1 -0
  781. package/build/dist/Types/SerializableObjectDictionary.js +8 -0
  782. package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
  783. package/build/dist/Types/Telemetry/SourceMap.js +9 -0
  784. package/build/dist/Types/Telemetry/SourceMap.js.map +1 -0
  785. package/build/dist/Types/Telemetry/TelemetrySearchQuery.js +661 -0
  786. package/build/dist/Types/Telemetry/TelemetrySearchQuery.js.map +1 -0
  787. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +12 -1
  788. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
  789. package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js +67 -0
  790. package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js.map +1 -1
  791. package/build/dist/UI/Components/Icon/Icon.js +28 -1
  792. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  793. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +25 -4
  794. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  795. package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js +36 -16
  796. package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js.map +1 -1
  797. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +14 -2
  798. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
  799. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +54 -9
  800. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
  801. package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js +128 -0
  802. package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js.map +1 -0
  803. package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +190 -0
  804. package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -0
  805. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +206 -28
  806. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  807. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +14 -7
  808. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
  809. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  810. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +34 -18
  811. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
  812. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +163 -0
  813. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -0
  814. package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js +99 -0
  815. package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js.map +1 -0
  816. package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js +85 -0
  817. package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js.map +1 -0
  818. package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js +560 -0
  819. package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js.map +1 -0
  820. package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js +56 -0
  821. package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js.map +1 -0
  822. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +185 -10
  823. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  824. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +248 -21
  825. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -1
  826. package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js +255 -0
  827. package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js.map +1 -0
  828. package/build/dist/Utils/Telemetry/CrossSignalScope.js +27 -30
  829. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
  830. package/package.json +2 -1
  831. package/Tests/Types/Log/LogQueryParser.test.ts +0 -186
  832. package/Types/Log/LogQueryParser.ts +0 -252
  833. package/build/dist/Types/Log/LogQueryParser.js +0 -200
  834. package/build/dist/Types/Log/LogQueryParser.js.map +0 -1
@@ -11,6 +11,7 @@ import ObjectID from "../../Types/ObjectID";
11
11
  import UserNotificationStatus from "../../Types/UserNotification/UserNotificationStatus";
12
12
  import UserOnCallLogTimeline from "../../Models/DatabaseModels/UserOnCallLogTimeline";
13
13
  import Route from "../../Types/API/Route";
14
+ import { detailsToJSON, getOnCallNotificationContext, getResourceReference, } from "../Utils/OnCallNotificationContext";
14
15
  export default class UserNotificationLogTimelineAPI extends BaseAPI {
15
16
  constructor() {
16
17
  var _a, _b, _c;
@@ -68,7 +69,7 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
68
69
  */
69
70
  this.router.get(`${(_b = new this.entityType()
70
71
  .getCrudApiPath()) === null || _b === void 0 ? void 0 : _b.toString()}/acknowledge-page/:itemId`, async (req, res, next) => {
71
- var _a, _b, _c, _d;
72
+ var _a, _b, _c, _d, _e, _f;
72
73
  try {
73
74
  req = req;
74
75
  if (!req.params["itemId"]) {
@@ -83,22 +84,26 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
83
84
  triggeredByIncidentId: true,
84
85
  triggeredByIncident: {
85
86
  title: true,
86
- description: true,
87
87
  },
88
88
  triggeredByAlertId: true,
89
89
  triggeredByAlert: {
90
90
  title: true,
91
- description: true,
92
91
  },
93
92
  triggeredByAlertEpisodeId: true,
94
93
  triggeredByAlertEpisode: {
95
94
  title: true,
96
- description: true,
97
95
  },
98
96
  triggeredByIncidentEpisodeId: true,
99
97
  triggeredByIncidentEpisode: {
100
98
  title: true,
101
- description: true,
99
+ },
100
+ /*
101
+ * The timestamps below are rendered in the recipient's own
102
+ * timezone. Formatting them in the container's zone would tell
103
+ * an on-call engineer nothing.
104
+ */
105
+ user: {
106
+ timezone: true,
102
107
  },
103
108
  },
104
109
  props: {
@@ -108,17 +113,26 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
108
113
  if (!timelineItem) {
109
114
  return Response.sendErrorResponse(req, res, new BadDataException("Invalid item Id"));
110
115
  }
111
- const notificationType = timelineItem.triggeredByIncidentId
112
- ? "Incident"
113
- : timelineItem.triggeredByIncidentEpisodeId
114
- ? "Incident Episode"
115
- : timelineItem.triggeredByAlertEpisodeId
116
- ? "Alert Episode"
117
- : "Alert";
118
- const notificationTitle = ((_a = timelineItem.triggeredByIncident) === null || _a === void 0 ? void 0 : _a.title) ||
119
- ((_b = timelineItem.triggeredByIncidentEpisode) === null || _b === void 0 ? void 0 : _b.title) ||
120
- ((_c = timelineItem.triggeredByAlertEpisode) === null || _c === void 0 ? void 0 : _c.title) ||
121
- ((_d = timelineItem.triggeredByAlert) === null || _d === void 0 ? void 0 : _d.title) ||
116
+ const reference = getResourceReference(timelineItem);
117
+ const notificationType = reference
118
+ ? reference.resourceType.toString()
119
+ : "Alert";
120
+ /*
121
+ * The context read is what puts severity, state, project, monitors
122
+ * and the time it was raised on the page. It is best effort on
123
+ * purpose: a deleted resource, or a resource this notification no
124
+ * longer points at, must still leave a page the engineer can
125
+ * acknowledge from.
126
+ */
127
+ const context = await getOnCallNotificationContext({
128
+ timelineItem: timelineItem,
129
+ timezone: (_b = (_a = timelineItem.user) === null || _a === void 0 ? void 0 : _a.timezone) === null || _b === void 0 ? void 0 : _b.toString(),
130
+ });
131
+ const notificationTitle = (context === null || context === void 0 ? void 0 : context.resourceTitle) ||
132
+ ((_c = timelineItem.triggeredByIncident) === null || _c === void 0 ? void 0 : _c.title) ||
133
+ ((_d = timelineItem.triggeredByIncidentEpisode) === null || _d === void 0 ? void 0 : _d.title) ||
134
+ ((_e = timelineItem.triggeredByAlertEpisode) === null || _e === void 0 ? void 0 : _e.title) ||
135
+ ((_f = timelineItem.triggeredByAlert) === null || _f === void 0 ? void 0 : _f.title) ||
122
136
  "";
123
137
  const host = await DatabaseConfig.getHost();
124
138
  const httpProtocol = await DatabaseConfig.getHttpProtocol();
@@ -129,6 +143,10 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
129
143
  acknowledgeUrl: new URL(httpProtocol, host, new Route(AppApiRoute.toString())
130
144
  .addRoute(new UserOnCallLogTimeline().crudApiPath)
131
145
  .addRoute("/acknowledge/" + itemId.toString())).toString(),
146
+ resourceNumber: (context === null || context === void 0 ? void 0 : context.resourceNumber) || "",
147
+ resourceTitle: notificationTitle,
148
+ resourceDescription: (context === null || context === void 0 ? void 0 : context.resourceDescription) || "",
149
+ details: detailsToJSON((context === null || context === void 0 ? void 0 : context.details) || []),
132
150
  });
133
151
  }
134
152
  catch (error) {
@@ -138,7 +156,7 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
138
156
  // This is the link that actually acknowledges the notification.
139
157
  this.router.get(`${(_c = new this.entityType()
140
158
  .getCrudApiPath()) === null || _c === void 0 ? void 0 : _c.toString()}/acknowledge/:itemId`, async (req, res, next) => {
141
- var _a, _b;
159
+ var _a, _b, _c, _d, _e, _f, _g, _h;
142
160
  try {
143
161
  req = req;
144
162
  if (!req.params["itemId"]) {
@@ -168,6 +186,9 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
168
186
  },
169
187
  acknowledgedAt: true,
170
188
  isAcknowledged: true,
189
+ user: {
190
+ timezone: true,
191
+ },
171
192
  },
172
193
  props: {
173
194
  isRoot: true,
@@ -178,52 +199,36 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
178
199
  }
179
200
  const host = await DatabaseConfig.getHost();
180
201
  const httpProtocol = await DatabaseConfig.getHttpProtocol();
181
- const getResourceInfo = () => {
182
- var _a, _b, _c, _d;
183
- if (timelineItem.triggeredByIncidentId) {
184
- return {
185
- type: "Incident",
186
- path: "incidents",
187
- id: timelineItem.triggeredByIncidentId,
188
- title: ((_a = timelineItem.triggeredByIncident) === null || _a === void 0 ? void 0 : _a.title) || "",
189
- };
190
- }
191
- if (timelineItem.triggeredByIncidentEpisodeId) {
192
- return {
193
- type: "Incident Episode",
194
- path: "incidents/episodes",
195
- id: timelineItem.triggeredByIncidentEpisodeId,
196
- title: ((_b = timelineItem.triggeredByIncidentEpisode) === null || _b === void 0 ? void 0 : _b.title) || "",
197
- };
198
- }
199
- if (timelineItem.triggeredByAlertEpisodeId) {
200
- return {
201
- type: "Alert Episode",
202
- path: "alerts/episodes",
203
- id: timelineItem.triggeredByAlertEpisodeId,
204
- title: ((_c = timelineItem.triggeredByAlertEpisode) === null || _c === void 0 ? void 0 : _c.title) || "",
205
- };
206
- }
207
- if (timelineItem.triggeredByAlertId) {
208
- return {
209
- type: "Alert",
210
- path: "alerts",
211
- id: timelineItem.triggeredByAlertId,
212
- title: ((_d = timelineItem.triggeredByAlert) === null || _d === void 0 ? void 0 : _d.title) || "",
213
- };
214
- }
215
- return { type: "", path: "", id: new ObjectID(""), title: "" };
216
- };
217
- const resourceInfo = getResourceInfo();
202
+ // Determine the resource type and ID for routing.
203
+ const reference = getResourceReference(timelineItem);
204
+ const fallbackTitle = ((_a = timelineItem.triggeredByIncident) === null || _a === void 0 ? void 0 : _a.title) ||
205
+ ((_b = timelineItem.triggeredByIncidentEpisode) === null || _b === void 0 ? void 0 : _b.title) ||
206
+ ((_c = timelineItem.triggeredByAlertEpisode) === null || _c === void 0 ? void 0 : _c.title) ||
207
+ ((_d = timelineItem.triggeredByAlert) === null || _d === void 0 ? void 0 : _d.title) ||
208
+ "";
218
209
  if (timelineItem.isAcknowledged) {
219
210
  // already acknowledged. Then show already acknowledged page with view details button.
220
- const viewDetailsRoute = new Route(DashboardRoute.toString()).addRoute(`/${(_a = timelineItem.projectId) === null || _a === void 0 ? void 0 : _a.toString()}/${resourceInfo.path}/${resourceInfo.id.toString()}`);
211
+ /*
212
+ * Same context the acknowledge page shows. Someone who follows the
213
+ * link twice - or whose colleague got there first - still needs to
214
+ * know what the page they are looking at is about.
215
+ */
216
+ const context = await getOnCallNotificationContext({
217
+ timelineItem: timelineItem,
218
+ timezone: (_f = (_e = timelineItem.user) === null || _e === void 0 ? void 0 : _e.timezone) === null || _f === void 0 ? void 0 : _f.toString(),
219
+ });
220
+ const acknowledgedTitle = (context === null || context === void 0 ? void 0 : context.resourceTitle) || fallbackTitle;
221
+ const viewDetailsRoute = new Route(DashboardRoute.toString()).addRoute(`/${(_g = timelineItem.projectId) === null || _g === void 0 ? void 0 : _g.toString()}/${(reference === null || reference === void 0 ? void 0 : reference.dashboardPath) || ""}/${(reference === null || reference === void 0 ? void 0 : reference.resourceId.toString()) || ""}`);
221
222
  const viewDetailsUrl = new URL(httpProtocol, host, viewDetailsRoute);
222
223
  return Response.render(req, res, "/usr/src/Common/Server/Views/ViewMessage.ejs", {
223
- title: `Notification Already Acknowledged - ${resourceInfo.title}`,
224
+ title: `Notification Already Acknowledged - ${acknowledgedTitle}`,
224
225
  message: `This notification has already been acknowledged.`,
225
- viewDetailsText: `View ${resourceInfo.type}`,
226
+ viewDetailsText: `View ${(reference === null || reference === void 0 ? void 0 : reference.resourceType.toString()) || ""}`,
226
227
  viewDetailsUrl: viewDetailsUrl.toString(),
228
+ resourceNumber: (context === null || context === void 0 ? void 0 : context.resourceNumber) || "",
229
+ resourceTitle: acknowledgedTitle,
230
+ resourceDescription: (context === null || context === void 0 ? void 0 : context.resourceDescription) || "",
231
+ details: detailsToJSON((context === null || context === void 0 ? void 0 : context.details) || []),
227
232
  });
228
233
  }
229
234
  await this.service.updateOneById({
@@ -239,8 +244,8 @@ export default class UserNotificationLogTimelineAPI extends BaseAPI {
239
244
  },
240
245
  });
241
246
  // redirect to dashboard to the resource page.
242
- if (resourceInfo.path) {
243
- const resourceRoute = new Route(DashboardRoute.toString()).addRoute(`/${(_b = timelineItem.projectId) === null || _b === void 0 ? void 0 : _b.toString()}/${resourceInfo.path}/${resourceInfo.id.toString()}`);
247
+ if (reference) {
248
+ const resourceRoute = new Route(DashboardRoute.toString()).addRoute(`/${(_h = timelineItem.projectId) === null || _h === void 0 ? void 0 : _h.toString()}/${reference.dashboardPath}/${reference.resourceId.toString()}`);
244
249
  return Response.redirect(req, res, new URL(httpProtocol, host, resourceRoute));
245
250
  }
246
251
  return Response.sendErrorResponse(req, res, new BadDataException("Invalid item Id"));
@@ -1 +1 @@
1
- {"version":3,"file":"UserOnCallLogTimelineAPI.js","sourceRoot":"","sources":["../../../../Server/API/UserOnCallLogTimelineAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserOnCallLogTimelineAPI.js","sourceRoot":"","sources":["../../../../Server/API/UserOnCallLogTimelineAPI.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,12 @@ import BaseAPI from "./BaseAPI";
5
5
  import UserTotpAuth from "../../Models/DatabaseModels/UserTotpAuth";
6
6
  import BadDataException from "../../Types/Exception/BadDataException";
7
7
  import TotpAuth from "../Utils/TotpAuth";
8
+ import TwoFactorBackupCode from "../Utils/TwoFactorBackupCode";
8
9
  import Response from "../Utils/Response";
9
10
  import UserService from "../Services/UserService";
11
+ import UserTwoFactorBackupCodeService from "../Services/UserTwoFactorBackupCodeService";
12
+ import logger from "../Utils/Logger";
13
+ import TwoFactorBackupCodeNotification from "../Utils/TwoFactorBackupCodeNotification";
10
14
  export default class UserTotpAuthAPI extends BaseAPI {
11
15
  constructor() {
12
16
  var _a;
@@ -68,7 +72,67 @@ export default class UserTotpAuthAPI extends BaseAPI {
68
72
  isRoot: true,
69
73
  },
70
74
  });
71
- return Response.sendEmptySuccessResponse(req, res);
75
+ /*
76
+ * The account now has a second factor, which means it now has
77
+ * something to lose. Mint the recovery codes here rather than
78
+ * leaving them to a button the user has to go and find: a set that
79
+ * is never generated is the same as no recovery route at all, which
80
+ * is the state this endpoint used to leave every account in.
81
+ *
82
+ * `generateForUserIfNone` and not a regeneration -- adding a SECOND
83
+ * authenticator app must not void the codes the user printed when
84
+ * they added the first. It returns null in that case and the
85
+ * response simply carries no codes.
86
+ *
87
+ * THE RESPONSE IS THE ONLY COPY. Only keyed digests are stored, so
88
+ * whatever is returned here is the one and only time these strings
89
+ * exist; the profile page is expected to raise the same
90
+ * acknowledge-before-closing modal it raises for a manual
91
+ * regeneration. That is also why nothing is minted anywhere the user
92
+ * is not looking at a screen that can show it.
93
+ *
94
+ * A failure to mint must not fail the validation. The factor IS
95
+ * verified by this point -- the row is written -- so throwing here
96
+ * would tell the user their authenticator did not work when it did,
97
+ * and send them round the enrolment loop again. The profile card
98
+ * already warns an account holding no codes, so the fallback is a
99
+ * state the product knows how to talk about.
100
+ */
101
+ let backupCodes = null;
102
+ try {
103
+ backupCodes =
104
+ await UserTwoFactorBackupCodeService.generateForUserIfNone({
105
+ userId: userTotpAuth.userId,
106
+ });
107
+ }
108
+ catch (backupCodeError) {
109
+ logger.error(backupCodeError);
110
+ }
111
+ /*
112
+ * Tell the account holder, at their address rather than in this
113
+ * browser. Ten sign-in credentials have just come into existence on
114
+ * this account, and this route is authenticated by a session alone
115
+ * -- so a stolen session is enough to create them. The mail does not
116
+ * prevent that; it makes it visible to the person it was done to.
117
+ */
118
+ if (backupCodes && backupCodes.length > 0) {
119
+ TwoFactorBackupCodeNotification.notifyCodesCreated({
120
+ userId: userTotpAuth.userId,
121
+ codeCount: backupCodes.length,
122
+ });
123
+ }
124
+ return Response.sendJsonObjectResponse(req, res, {
125
+ /*
126
+ * Hyphenated for the page to render as-is, exactly as the
127
+ * regenerate route does. The verify route normalizes whatever
128
+ * comes back.
129
+ */
130
+ backupCodes: backupCodes
131
+ ? backupCodes.map((code) => {
132
+ return TwoFactorBackupCode.formatForDisplay(code);
133
+ })
134
+ : [],
135
+ });
72
136
  }
73
137
  catch (err) {
74
138
  next(err);
@@ -1 +1 @@
1
- {"version":3,"file":"UserTotpAuthAPI.js","sourceRoot":"","sources":["../../../../Server/API/UserTotpAuthAPI.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,mBAEN,MAAM,iCAAiC,CAAC;AAOzC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,0CAA0C,CAAC;AACpE,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAG5C;IACC;;QACE,KAAK,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,MAAA,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,0CAAE,QAAQ,EAAE,WAAW,EAChE,cAAc,CAAC,iBAAiB,EAChC,KAAK,EAAE,GAAmB,EAAE,GAAoB,EAAE,IAAkB,EAAE,EAAE;;YACtE,IAAI,CAAC;gBACH,MAAM,YAAY,GAChB,MAAM,mBAAmB,CAAC,WAAW,CAAC;oBACpC,EAAE,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChC,MAAM,EAAE;wBACN,eAAe,EAAE,IAAI;wBACrB,MAAM,EAAE,IAAI;qBACb;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEL,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;gBACpD,CAAC;gBAED,IACE,CAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,QAAQ,EAAE;qBAC/B,MAAC,GAAwB,CAAC,iBAAiB,0CAAE,MAAM,CAAC,QAAQ,EAAE,CAAA,EAC9D,CAAC;oBACD,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;gBAC1D,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,CAAC;gBAED,kBAAkB;gBAClB,MAAM,IAAI,GAAgB,MAAM,WAAW,CAAC,WAAW,CAAC;oBACtD,EAAE,EAAE,YAAY,CAAC,MAAO;oBACxB,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;qBACZ;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,OAAO,GAAY,QAAQ,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,YAAY,CAAC,eAAe,IAAI,EAAE;oBAC1C,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,KAAM;iBACnB,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC7C,CAAC;gBAED,mCAAmC;gBAEnC,MAAM,mBAAmB,CAAC,aAAa,CAAC;oBACtC,EAAE,EAAE,YAAY,CAAC,EAAG;oBACpB,IAAI,EAAE;wBACJ,UAAU,EAAE,IAAI;qBACjB;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"UserTotpAuthAPI.js","sourceRoot":"","sources":["../../../../Server/API/UserTotpAuthAPI.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,mBAEN,MAAM,iCAAiC,CAAC;AAOzC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,YAAY,MAAM,0CAA0C,CAAC;AACpE,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,8BAA8B,MAAM,4CAA4C,CAAC;AACxF,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,+BAA+B,MAAM,0CAA0C,CAAC;AAEvF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,OAG5C;IACC;;QACE,KAAK,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,MAAA,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,0CAAE,QAAQ,EAAE,WAAW,EAChE,cAAc,CAAC,iBAAiB,EAChC,KAAK,EAAE,GAAmB,EAAE,GAAoB,EAAE,IAAkB,EAAE,EAAE;;YACtE,IAAI,CAAC;gBACH,MAAM,YAAY,GAChB,MAAM,mBAAmB,CAAC,WAAW,CAAC;oBACpC,EAAE,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChC,MAAM,EAAE;wBACN,eAAe,EAAE,IAAI;wBACrB,MAAM,EAAE,IAAI;qBACb;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEL,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;gBACpD,CAAC;gBAED,IACE,CAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,QAAQ,EAAE;qBAC/B,MAAC,GAAwB,CAAC,iBAAiB,0CAAE,MAAM,CAAC,QAAQ,EAAE,CAAA,EAC9D,CAAC;oBACD,MAAM,IAAI,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;gBAC1D,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,CAAC;gBAED,kBAAkB;gBAClB,MAAM,IAAI,GAAgB,MAAM,WAAW,CAAC,WAAW,CAAC;oBACtD,EAAE,EAAE,YAAY,CAAC,MAAO;oBACxB,MAAM,EAAE;wBACN,KAAK,EAAE,IAAI;qBACZ;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAC/C,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;gBACrD,CAAC;gBAED,MAAM,OAAO,GAAY,QAAQ,CAAC,WAAW,CAAC;oBAC5C,MAAM,EAAE,YAAY,CAAC,eAAe,IAAI,EAAE;oBAC1C,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,KAAM;iBACnB,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAC7C,CAAC;gBAED,mCAAmC;gBAEnC,MAAM,mBAAmB,CAAC,aAAa,CAAC;oBACtC,EAAE,EAAE,YAAY,CAAC,EAAG;oBACpB,IAAI,EAAE;wBACJ,UAAU,EAAE,IAAI;qBACjB;oBACD,KAAK,EAAE;wBACL,MAAM,EAAE,IAAI;qBACb;iBACF,CAAC,CAAC;gBAEH;;;;;;;;;;;;;;;;;;;;;;;;;mBAyBG;gBACH,IAAI,WAAW,GAAyB,IAAI,CAAC;gBAE7C,IAAI,CAAC;oBACH,WAAW;wBACT,MAAM,8BAA8B,CAAC,qBAAqB,CAAC;4BACzD,MAAM,EAAE,YAAY,CAAC,MAAO;yBAC7B,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAChC,CAAC;gBAED;;;;;;mBAMG;gBACH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,+BAA+B,CAAC,kBAAkB,CAAC;wBACjD,MAAM,EAAE,YAAY,CAAC,MAAO;wBAC5B,SAAS,EAAE,WAAW,CAAC,MAAM;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE;oBAC/C;;;;uBAIG;oBACH,WAAW,EAAE,WAAW;wBACtB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;4BAC/B,OAAO,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;wBACpD,CAAC,CAAC;wBACJ,CAAC,CAAC,EAAE;iBACP,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
@@ -5,6 +5,10 @@ import UserWebAuthn from "../../Models/DatabaseModels/UserWebAuthn";
5
5
  import BadDataException from "../../Types/Exception/BadDataException";
6
6
  import Response from "../Utils/Response";
7
7
  import CommonAPI from "./CommonAPI";
8
+ import UserTwoFactorBackupCodeService from "../Services/UserTwoFactorBackupCodeService";
9
+ import TwoFactorBackupCode from "../Utils/TwoFactorBackupCode";
10
+ import logger from "../Utils/Logger";
11
+ import TwoFactorBackupCodeNotification from "../Utils/TwoFactorBackupCodeNotification";
8
12
  export default class UserWebAuthnAPI extends BaseAPI {
9
13
  constructor() {
10
14
  var _a, _b, _c;
@@ -33,7 +37,44 @@ export default class UserWebAuthnAPI extends BaseAPI {
33
37
  name: name,
34
38
  props: databaseProps,
35
39
  });
36
- return Response.sendEmptySuccessResponse(req, res);
40
+ /*
41
+ * A security key is a second factor that can be left in a taxi, so
42
+ * registering one is a moment that needs a recovery route behind it.
43
+ * Minted here for the same reason -- and with the same
44
+ * only-if-there-are-none rule -- as on the TOTP validate route; see
45
+ * the note there. A key added ALONGSIDE an authenticator app finds
46
+ * codes already present and changes nothing.
47
+ *
48
+ * Never fatal to the registration: the credential is already saved
49
+ * at this point, so an error here would report a failure for work
50
+ * that succeeded.
51
+ */
52
+ let backupCodes = null;
53
+ if (databaseProps.userId) {
54
+ try {
55
+ backupCodes =
56
+ await UserTwoFactorBackupCodeService.generateForUserIfNone({
57
+ userId: databaseProps.userId,
58
+ });
59
+ }
60
+ catch (backupCodeError) {
61
+ logger.error(backupCodeError);
62
+ }
63
+ }
64
+ /* See the note on the TOTP validate route. */
65
+ if (backupCodes && backupCodes.length > 0 && databaseProps.userId) {
66
+ TwoFactorBackupCodeNotification.notifyCodesCreated({
67
+ userId: databaseProps.userId,
68
+ codeCount: backupCodes.length,
69
+ });
70
+ }
71
+ return Response.sendJsonObjectResponse(req, res, {
72
+ backupCodes: backupCodes
73
+ ? backupCodes.map((code) => {
74
+ return TwoFactorBackupCode.formatForDisplay(code);
75
+ })
76
+ : [],
77
+ });
37
78
  }
38
79
  catch (err) {
39
80
  next(err);
@@ -1 +1 @@
1
- {"version":3,"file":"UserWebAuthnAPI.js","sourceRoot":"","sources":["../../../../Server/API/UserWebAuthnAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserWebAuthnAPI.js","sourceRoot":"","sources":["../../../../Server/API/UserWebAuthnAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export class MigrationName1787923136162 {
2
+ constructor() {
3
+ this.name = "MigrationName1787923136162";
4
+ }
5
+ async up(queryRunner) {
6
+ await queryRunner.query(`CREATE TABLE "ThreatIntelFeed" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(50) NOT NULL, "description" character varying(500), "apiRootUrl" character varying(500) NOT NULL, "collectionId" character varying(100) NOT NULL, "apiToken" text, "basicAuthUsername" character varying(100), "basicAuthPassword" text, "isEnabled" boolean NOT NULL DEFAULT true, "pollIntervalInMinutes" integer NOT NULL DEFAULT '60', "minimumConfidence" integer NOT NULL DEFAULT '0', "shouldCreateAlert" boolean NOT NULL DEFAULT true, "shouldWriteDetectionFinding" boolean NOT NULL DEFAULT true, "shouldCreateIncident" boolean NOT NULL DEFAULT false, "alertSeverityId" uuid, "incidentSeverityId" uuid, "lastPolledAt" TIMESTAMP WITH TIME ZONE, "cursor" character varying(500), "nextPageToken" text, "lastPollSummary" character varying(500), "lastError" text, "lastEvaluatedAt" TIMESTAMP WITH TIME ZONE, "lastMatchAt" TIMESTAMP WITH TIME ZONE, "lastMatchError" text, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_f439b1608d006621778c77a13de" PRIMARY KEY ("_id"))`);
7
+ await queryRunner.query(`CREATE INDEX "IDX_5cb2e4e831d2e3b78a636e8aa3" ON "ThreatIntelFeed" ("projectId") `);
8
+ await queryRunner.query(`CREATE INDEX "IDX_1a73c0779724e007780632b751" ON "ThreatIntelFeed" ("isEnabled") `);
9
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" ADD CONSTRAINT "FK_5cb2e4e831d2e3b78a636e8aa3c" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
10
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" ADD CONSTRAINT "FK_2ffbb2319e575d9707009ef9621" FOREIGN KEY ("alertSeverityId") REFERENCES "AlertSeverity"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
11
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" ADD CONSTRAINT "FK_3fa2aadff928287f194db3bdbdd" FOREIGN KEY ("incidentSeverityId") REFERENCES "IncidentSeverity"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
12
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" ADD CONSTRAINT "FK_faced98393bfb0882cd8929ac8a" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
13
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" ADD CONSTRAINT "FK_fa32bd7c42ea2b291e649940c7f" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
14
+ }
15
+ async down(queryRunner) {
16
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" DROP CONSTRAINT "FK_fa32bd7c42ea2b291e649940c7f"`);
17
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" DROP CONSTRAINT "FK_faced98393bfb0882cd8929ac8a"`);
18
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" DROP CONSTRAINT "FK_3fa2aadff928287f194db3bdbdd"`);
19
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" DROP CONSTRAINT "FK_2ffbb2319e575d9707009ef9621"`);
20
+ await queryRunner.query(`ALTER TABLE "ThreatIntelFeed" DROP CONSTRAINT "FK_5cb2e4e831d2e3b78a636e8aa3c"`);
21
+ await queryRunner.query(`DROP INDEX "public"."IDX_1a73c0779724e007780632b751"`);
22
+ await queryRunner.query(`DROP INDEX "public"."IDX_5cb2e4e831d2e3b78a636e8aa3"`);
23
+ await queryRunner.query(`DROP TABLE "ThreatIntelFeed"`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=1787923136162-MigrationName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1787923136162-MigrationName.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,0BAA0B;IAAvC;QACS,SAAI,GAAG,4BAA4B,CAAC;IAqD7C,CAAC;IAnDQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,gxCAAgxC,CACjxC,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mFAAmF,CACpF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,mFAAmF,CACpF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2KAA2K,CAC5K,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,wLAAwL,CACzL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8LAA8L,CAC/L,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+KAA+K,CAChL,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+KAA+K,CAChL,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,gFAAgF,CACjF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gFAAgF,CACjF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gFAAgF,CACjF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gFAAgF,CACjF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,gFAAgF,CACjF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ export class AddAutoProvisionedNetworkDeviceMonitors1789600000000 {
2
+ constructor() {
3
+ this.name = "AddAutoProvisionedNetworkDeviceMonitors1789600000000";
4
+ }
5
+ async up(queryRunner) {
6
+ await queryRunner.query(`ALTER TABLE "Monitor" ADD "autoProvisionedNetworkDeviceId" uuid`);
7
+ await queryRunner.query(`ALTER TABLE "NetworkDeviceAutoImportRule" ADD "monitorTemplateId" uuid`);
8
+ await queryRunner.query(`CREATE UNIQUE INDEX "IDX_monitor_auto_provisioned_device_template_unique" ON "Monitor" ("autoProvisionedNetworkDeviceId", "monitorTemplateId") WHERE "deletedAt" IS NULL AND "autoProvisionedNetworkDeviceId" IS NOT NULL AND "monitorTemplateId" IS NOT NULL`);
9
+ await queryRunner.query(`CREATE INDEX "IDX_network_device_auto_import_rule_monitorTemplateId" ON "NetworkDeviceAutoImportRule" ("monitorTemplateId") `);
10
+ await queryRunner.query(`ALTER TABLE "Monitor" ADD CONSTRAINT "FK_monitor_auto_provisioned_network_device" FOREIGN KEY ("autoProvisionedNetworkDeviceId") REFERENCES "NetworkDevice"("_id") ON DELETE RESTRICT ON UPDATE NO ACTION`);
11
+ await queryRunner.query(`ALTER TABLE "NetworkDeviceAutoImportRule" ADD CONSTRAINT "FK_nd_auto_import_rule_monitorTemplateId" FOREIGN KEY ("monitorTemplateId") REFERENCES "MonitorTemplate"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
12
+ }
13
+ async down(queryRunner) {
14
+ await queryRunner.query(`ALTER TABLE "NetworkDeviceAutoImportRule" DROP CONSTRAINT "FK_nd_auto_import_rule_monitorTemplateId"`);
15
+ await queryRunner.query(`ALTER TABLE "Monitor" DROP CONSTRAINT "FK_monitor_auto_provisioned_network_device"`);
16
+ await queryRunner.query(`DROP INDEX "public"."IDX_network_device_auto_import_rule_monitorTemplateId"`);
17
+ await queryRunner.query(`DROP INDEX "public"."IDX_monitor_auto_provisioned_device_template_unique"`);
18
+ await queryRunner.query(`ALTER TABLE "NetworkDeviceAutoImportRule" DROP COLUMN "monitorTemplateId"`);
19
+ await queryRunner.query(`ALTER TABLE "Monitor" DROP COLUMN "autoProvisionedNetworkDeviceId"`);
20
+ }
21
+ }
22
+ //# sourceMappingURL=1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,oDAAoD;IAAjE;QAGS,SAAI,GAAW,sDAAsD,CAAC;IA2C/E,CAAC;IAzCQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,iEAAiE,CAClE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,wEAAwE,CACzE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+PAA+P,CAChQ,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,8HAA8H,CAC/H,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2MAA2M,CAC5M,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,kNAAkN,CACnN,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,sGAAsG,CACvG,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oFAAoF,CACrF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,6EAA6E,CAC9E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2EAA2E,CAC5E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,2EAA2E,CAC5E,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oEAAoE,CACrE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,88 @@
1
+ /*
2
+ * What a network estate of eighty thousand devices and a thousand-odd sites
3
+ * needs from Postgres.
4
+ *
5
+ * Before this, the hottest queries in the network product were sequential
6
+ * scans of the whole NetworkDevice table — including the polling claim loop,
7
+ * which every probe runs on every cycle and which had no index on `probeId` at
8
+ * all, a foreign key creating none in Postgres.
9
+ *
10
+ * Measured on a seeded 80,000-device fleet, before → after:
11
+ *
12
+ * device list, first page 14.4 ms → 0.10 ms
13
+ * device list, Status facet 13.7 ms → 0.12 ms
14
+ * probe claim (40,000 devices) 117 ms → 0.85 ms (2,702 → 86 buffers)
15
+ */
16
+ export class AddNetworkScaleIndexes1789700000000 {
17
+ constructor() {
18
+ this.name = "AddNetworkScaleIndexes1789700000000";
19
+ }
20
+ async up(queryRunner) {
21
+ /*
22
+ * `nextPollAt` becomes NOT NULL, defaulting to now.
23
+ *
24
+ * NULL meant "poll as soon as possible", so the claim query had to read
25
+ * `(nextPollAt IS NULL OR nextPollAt <= now)` ordered `ASC NULLS FIRST`.
26
+ * A btree is ASC NULLS LAST, so that ordering could never be served by an
27
+ * index however the index was declared: every claim cycle sequentially
28
+ * scanned the probe's whole slice of the fleet and top-N sorted it, inside
29
+ * a transaction already holding FOR UPDATE row locks.
30
+ *
31
+ * `now()` says exactly what NULL said, in a value the index can order.
32
+ *
33
+ * The backfill runs first and must: SET NOT NULL rejects the statement
34
+ * outright if a single row still holds NULL. `createdAt` rather than
35
+ * `now()` for those rows, so a device that has been waiting to be polled
36
+ * since it was created keeps its place at the front of the queue instead
37
+ * of going to the back of it.
38
+ */
39
+ await queryRunner.query(`UPDATE "NetworkDevice" SET "nextPollAt" = "createdAt" WHERE "nextPollAt" IS NULL`);
40
+ await queryRunner.query(`ALTER TABLE "NetworkDevice" ALTER COLUMN "nextPollAt" SET NOT NULL`);
41
+ await queryRunner.query(`ALTER TABLE "NetworkDevice" ALTER COLUMN "nextPollAt" SET DEFAULT now()`);
42
+ /*
43
+ * Superseded by IDX_15660584d280ed474504cb4021, which has it as a prefix.
44
+ * Keeping both would cost every insert and update a second index write for
45
+ * nothing — and this is a table every SNMP poll updates.
46
+ */
47
+ await queryRunner.query(`DROP INDEX "public"."IDX_878d6fc3878837bb01e09b2f3f"`);
48
+ // The device list's default page, and every fleet-wide count over it.
49
+ await queryRunner.query(`CREATE INDEX "IDX_15660584d280ed474504cb4021" ON "NetworkDevice" ("projectId", "isArchived", "createdAt") `);
50
+ /*
51
+ * The Status facet and the summary strip's three counts, plus the
52
+ * Overview's "longest out of contact" list, which is what `lastSeenAt` is
53
+ * doing on the end.
54
+ */
55
+ await queryRunner.query(`CREATE INDEX "IDX_87566f1ca6cc63ee3afd3aeaff" ON "NetworkDevice" ("projectId", "isArchived", "isReachable", "lastSeenAt") `);
56
+ // Every per-site rollup, the hierarchy drill-down, and the unassigned count.
57
+ await queryRunner.query(`CREATE INDEX "IDX_42360e479fb36f6d34c0e3c485" ON "NetworkDevice" ("projectId", "siteId") `);
58
+ /*
59
+ * PARTIAL: dark ports are a small minority of a healthy fleet, so this
60
+ * stays tiny and an interface flap only touches it when the count crosses
61
+ * zero. A full index on a column every SNMP walk rewrites would be write
62
+ * amplification for the sake of one eight-row list.
63
+ */
64
+ await queryRunner.query(`CREATE INDEX "IDX_5767b485012a9b4b49d0f99b6a" ON "NetworkDevice" ("projectId", "interfacesDown") WHERE "interfacesDown" > 0 AND "isArchived" = false`);
65
+ // The polling claim loop. See the nextPollAt note above.
66
+ await queryRunner.query(`CREATE INDEX "IDX_52f8f551a9796060489ebaf31c" ON "NetworkDevice" ("probeId", "nextPollAt") `);
67
+ // The Sites summary strip's grouped status count, and the unhealthy list.
68
+ await queryRunner.query(`CREATE INDEX "IDX_387febc5598c05f9795463292c" ON "NetworkSite" ("projectId", "currentMonitorStatusId") `);
69
+ }
70
+ async down(queryRunner) {
71
+ await queryRunner.query(`DROP INDEX "public"."IDX_387febc5598c05f9795463292c"`);
72
+ await queryRunner.query(`DROP INDEX "public"."IDX_52f8f551a9796060489ebaf31c"`);
73
+ await queryRunner.query(`DROP INDEX "public"."IDX_5767b485012a9b4b49d0f99b6a"`);
74
+ await queryRunner.query(`DROP INDEX "public"."IDX_42360e479fb36f6d34c0e3c485"`);
75
+ await queryRunner.query(`DROP INDEX "public"."IDX_87566f1ca6cc63ee3afd3aeaff"`);
76
+ await queryRunner.query(`DROP INDEX "public"."IDX_15660584d280ed474504cb4021"`);
77
+ await queryRunner.query(`CREATE INDEX "IDX_878d6fc3878837bb01e09b2f3f" ON "NetworkDevice" ("projectId", "isArchived") `);
78
+ /*
79
+ * The rows the backfill filled in are indistinguishable from real
80
+ * schedules, so `down` restores the shape of the column and not its
81
+ * former NULLs. Nothing reads NULL as anything but "due now", which is
82
+ * what those rows already say.
83
+ */
84
+ await queryRunner.query(`ALTER TABLE "NetworkDevice" ALTER COLUMN "nextPollAt" DROP DEFAULT`);
85
+ await queryRunner.query(`ALTER TABLE "NetworkDevice" ALTER COLUMN "nextPollAt" DROP NOT NULL`);
86
+ }
87
+ }
88
+ //# sourceMappingURL=1789700000000-AddNetworkScaleIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1789700000000-AddNetworkScaleIndexes.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,mCAAmC;IAAhD;QACS,SAAI,GAAW,qCAAqC,CAAC;IA8G9D,CAAC;IA5GQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC;;;;;;;;;;;;;;;;;WAiBG;QACH,MAAM,WAAW,CAAC,KAAK,CACrB,kFAAkF,CACnF,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,oEAAoE,CACrE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,yEAAyE,CAC1E,CAAC;QAEF;;;;WAIG;QACH,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QAEF,sEAAsE;QACtE,MAAM,WAAW,CAAC,KAAK,CACrB,4GAA4G,CAC7G,CAAC;QACF;;;;WAIG;QACH,MAAM,WAAW,CAAC,KAAK,CACrB,4HAA4H,CAC7H,CAAC;QACF,6EAA6E;QAC7E,MAAM,WAAW,CAAC,KAAK,CACrB,2FAA2F,CAC5F,CAAC;QACF;;;;;WAKG;QACH,MAAM,WAAW,CAAC,KAAK,CACrB,sJAAsJ,CACvJ,CAAC;QACF,yDAAyD;QACzD,MAAM,WAAW,CAAC,KAAK,CACrB,6FAA6F,CAC9F,CAAC;QACF,0EAA0E;QAC1E,MAAM,WAAW,CAAC,KAAK,CACrB,yGAAyG,CAC1G,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,sDAAsD,CACvD,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+FAA+F,CAChG,CAAC;QACF;;;;;WAKG;QACH,MAAM,WAAW,CAAC,KAAK,CACrB,oEAAoE,CACrE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,qEAAqE,CACtE,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,39 @@
1
+ /*
2
+ * lastError on both security-event connectors becomes unbounded text.
3
+ *
4
+ * Both columns were varchar(500), and both hold an error produced
5
+ * elsewhere: the Google SecOps client echoes up to 500 characters of the
6
+ * Chronicle response body behind a ~46 character prefix, and a ClickHouse
7
+ * error echoes the whole compiled query. Either overflows 500, and
8
+ * DatabaseService.checkMaxLengthOfFields turns that overflow into a
9
+ * BadDataException — thrown from inside the catch block that was trying to
10
+ * record the failure, which took the whole poll/evaluation tick down with
11
+ * it and left lastError and its lastPolledAt/lastEvaluatedAt stamp null.
12
+ *
13
+ * ALTER COLUMN ... TYPE rather than the DROP + ADD pair TypeORM generates
14
+ * for this change: varchar -> text is binary-coercible in Postgres, so
15
+ * this preserves whatever error is currently stored instead of discarding
16
+ * it on upgrade. Same end state, same shape as the MonitorSecret
17
+ * secretValue widening in 1720024126646.
18
+ */
19
+ export class WidenSecurityEventLastErrorColumns1789800000000 {
20
+ constructor() {
21
+ this.name = "WidenSecurityEventLastErrorColumns1789800000000";
22
+ }
23
+ async up(queryRunner) {
24
+ await queryRunner.query(`ALTER TABLE "DetectionRule" ALTER COLUMN "lastError" TYPE text`);
25
+ await queryRunner.query(`ALTER TABLE "GoogleSecOpsConnection" ALTER COLUMN "lastError" TYPE text`);
26
+ }
27
+ /*
28
+ * Reversing narrows the column, so anything already stored past 500
29
+ * characters has to go somewhere: truncate it rather than let the ALTER
30
+ * fail on existing rows.
31
+ */
32
+ async down(queryRunner) {
33
+ await queryRunner.query(`UPDATE "GoogleSecOpsConnection" SET "lastError" = LEFT("lastError", 500) WHERE LENGTH("lastError") > 500`);
34
+ await queryRunner.query(`ALTER TABLE "GoogleSecOpsConnection" ALTER COLUMN "lastError" TYPE character varying(500)`);
35
+ await queryRunner.query(`UPDATE "DetectionRule" SET "lastError" = LEFT("lastError", 500) WHERE LENGTH("lastError") > 500`);
36
+ await queryRunner.query(`ALTER TABLE "DetectionRule" ALTER COLUMN "lastError" TYPE character varying(500)`);
37
+ }
38
+ }
39
+ //# sourceMappingURL=1789800000000-WidenSecurityEventLastErrorColumns.js.map