@oneuptime/common 12.0.25 → 12.0.27

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 (856) 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/HostnameAuthorityParsing.test.ts +1 -0
  298. package/Tests/Types/API/URLMailtoQueryString.test.ts +439 -0
  299. package/Tests/Types/API/URLQueryString.test.ts +481 -0
  300. package/Tests/Types/API/URLRouteQuerySeparation.test.ts +491 -0
  301. package/Tests/Types/BaseDatabase/Wildcard.test.ts +163 -0
  302. package/Tests/Types/BaseDatabase/WildcardPattern.test.ts +149 -0
  303. package/Tests/Types/Database/DateColumnValue.test.ts +265 -0
  304. package/Tests/Types/DateToIsoStringOrNull.test.ts +67 -0
  305. package/Tests/Types/Log/LogQueryToFilter.test.ts +218 -43
  306. package/Tests/Types/Monitor/KubernetesTemplateGroupByKeys.test.ts +225 -0
  307. package/Tests/Types/Monitor/TemplateGroupByKeys.test.ts +296 -0
  308. package/Tests/Types/NetworkAutomation/RuleRunResult.test.ts +102 -0
  309. package/Tests/Types/NetworkAutomation/RuleRunResultDescribe.test.ts +145 -0
  310. package/Tests/Types/NetworkSite/SiteHealthRollupPolicy.test.ts +58 -0
  311. package/Tests/Types/SerializableObjectDictionaryImportCycle.test.ts +15 -0
  312. package/Tests/Types/Telemetry/TelemetrySearchQuery.test.ts +620 -0
  313. package/Tests/Types/WhatsApp/WhatsAppTemplates.test.ts +110 -0
  314. package/Tests/Types/Workspace/NotificationRuleConditionUtil.test.ts +76 -6
  315. package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +16 -4
  316. package/Tests/Types/Workspace/NotificationRules/OnCallDutyPolicyConditions.test.ts +669 -0
  317. package/Tests/UI/Components/DictionaryFilterOperatorWildcard.test.ts +175 -0
  318. package/Tests/UI/Components/IconOpticalSize.test.tsx +377 -0
  319. package/Tests/UI/Components/LogsHistogramDragTooltip.test.tsx +393 -0
  320. package/Tests/UI/Components/LogsViewerHistogramZoom.test.tsx +248 -0
  321. package/Tests/UI/Components/TelemetryHistogramDragTooltip.test.tsx +205 -0
  322. package/Tests/UI/Components/UseHistogramZoom.test.tsx +262 -0
  323. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardInstallGuidance.test.tsx +332 -0
  324. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsInstallGuidanceContent.test.tsx +643 -0
  325. package/Tests/Utils/Monitor/InterfaceInventoryUtil.test.ts +824 -0
  326. package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +626 -0
  327. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +718 -0
  328. package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +59 -0
  329. package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +287 -2
  330. package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +73 -0
  331. package/Tests/Utils/NetworkDiscovery/PingMonitorBuilder.test.ts +317 -0
  332. package/Tests/Utils/NetworkDiscovery/RescanIntervalUtil.test.ts +262 -0
  333. package/Tests/Utils/NetworkDiscovery/ScanModeUtil.test.ts +474 -0
  334. package/Tests/Utils/NetworkDiscovery/SnmpScanConfigUtil.test.ts +2442 -0
  335. package/Tests/Utils/NetworkSite/SiteMaintenanceUtil.test.ts +188 -0
  336. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +522 -0
  337. package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +694 -0
  338. package/Tests/Utils/SecurityEvent/ThreatIntel/StixPatternParser.test.ts +281 -0
  339. package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +87 -67
  340. package/Types/API/URL.ts +100 -28
  341. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +8 -0
  342. package/Types/BaseDatabase/NotWildcard.ts +86 -0
  343. package/Types/BaseDatabase/Wildcard.ts +89 -0
  344. package/Types/BaseDatabase/WildcardPattern.ts +176 -0
  345. package/Types/Database/DateColumnValue.ts +184 -0
  346. package/Types/Database/TableColumn.ts +40 -5
  347. package/Types/Date.ts +37 -0
  348. package/Types/Email/EmailTemplateType.ts +1 -0
  349. package/Types/JSON.ts +8 -0
  350. package/Types/Log/LogQueryToFilter.ts +167 -129
  351. package/Types/Monitor/DockerAlertTemplates.ts +43 -12
  352. package/Types/Monitor/HostAlertTemplates.ts +31 -3
  353. package/Types/Monitor/KubernetesAlertTemplates.ts +98 -0
  354. package/Types/Monitor/MonitorStep.ts +49 -0
  355. package/Types/Monitor/PodmanAlertTemplates.ts +39 -12
  356. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +14 -0
  357. package/Types/Monitor/SnmpMonitor/LldpNeighbor.ts +11 -0
  358. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +11 -4
  359. package/Types/NetworkAutomation/RuleRunResult.ts +191 -2
  360. package/Types/NetworkSite/SiteHealthRollupPolicy.ts +96 -0
  361. package/Types/Permission.ts +411 -0
  362. package/Types/Probe/ProbeApiIngestResponse.ts +42 -0
  363. package/Types/SecurityEvent/ThreatIntelConstants.ts +118 -0
  364. package/Types/SerializableObjectDictionary.ts +8 -0
  365. package/Types/Telemetry/SourceMap.ts +56 -0
  366. package/Types/Telemetry/TelemetrySearchQuery.ts +949 -0
  367. package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +12 -1
  368. package/UI/Components/Charts/Utils/useHistogramZoom.ts +101 -0
  369. package/UI/Components/Dictionary/DictionaryFilterOperator.ts +83 -0
  370. package/UI/Components/Icon/Icon.tsx +28 -1
  371. package/UI/Components/LogsViewer/LogsViewer.tsx +19 -3
  372. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +26 -4
  373. package/UI/Components/LogsViewer/components/LogSearchHelp.tsx +34 -16
  374. package/UI/Components/LogsViewer/components/LogsHistogram.tsx +52 -1
  375. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +18 -2
  376. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +52 -1
  377. package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +15 -2
  378. package/Utils/Metrics/MetricExplorerUrl.ts +77 -15
  379. package/Utils/Monitor/InterfaceInventoryUtil.ts +251 -0
  380. package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +333 -0
  381. package/Utils/Monitor/NetworkTopologyUtil.ts +249 -28
  382. package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +14 -6
  383. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +2 -0
  384. package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +49 -18
  385. package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +215 -0
  386. package/Utils/NetworkDiscovery/RescanIntervalUtil.ts +148 -0
  387. package/Utils/NetworkDiscovery/ScanModeUtil.ts +105 -0
  388. package/Utils/NetworkDiscovery/SnmpScanConfigUtil.ts +827 -0
  389. package/Utils/NetworkSite/SiteMaintenanceUtil.ts +110 -0
  390. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +350 -19
  391. package/Utils/NetworkSite/SiteUptimeUtil.ts +422 -21
  392. package/Utils/SecurityEvent/ThreatIntel/StixPatternParser.ts +383 -0
  393. package/Utils/Telemetry/CrossSignalScope.ts +37 -39
  394. package/build/dist/Models/AnalyticsModels/Index.js +2 -0
  395. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  396. package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js +325 -0
  397. package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js.map +1 -0
  398. package/build/dist/Models/DatabaseModels/AlertSeverity.js +4 -1
  399. package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
  400. package/build/dist/Models/DatabaseModels/CephClusterFeed.js +648 -0
  401. package/build/dist/Models/DatabaseModels/CephClusterFeed.js.map +1 -0
  402. package/build/dist/Models/DatabaseModels/CloudResourceFeed.js +648 -0
  403. package/build/dist/Models/DatabaseModels/CloudResourceFeed.js.map +1 -0
  404. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +11 -0
  405. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  406. package/build/dist/Models/DatabaseModels/DetectionRule.js +9 -3
  407. package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
  408. package/build/dist/Models/DatabaseModels/DockerHostFeed.js +648 -0
  409. package/build/dist/Models/DatabaseModels/DockerHostFeed.js.map +1 -0
  410. package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js +648 -0
  411. package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js.map +1 -0
  412. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +9 -3
  413. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
  414. package/build/dist/Models/DatabaseModels/HostFeed.js +648 -0
  415. package/build/dist/Models/DatabaseModels/HostFeed.js.map +1 -0
  416. package/build/dist/Models/DatabaseModels/IncidentSeverity.js +4 -1
  417. package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
  418. package/build/dist/Models/DatabaseModels/Index.js +22 -0
  419. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  420. package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js +648 -0
  421. package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js.map +1 -0
  422. package/build/dist/Models/DatabaseModels/Monitor.js +81 -0
  423. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  424. package/build/dist/Models/DatabaseModels/NetworkDevice.js +103 -7
  425. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  426. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +91 -6
  427. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
  428. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +276 -31
  429. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  430. package/build/dist/Models/DatabaseModels/NetworkSite.js +124 -1
  431. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
  432. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
  433. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  434. package/build/dist/Models/DatabaseModels/PodmanHostFeed.js +648 -0
  435. package/build/dist/Models/DatabaseModels/PodmanHostFeed.js.map +1 -0
  436. package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js +648 -0
  437. package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js.map +1 -0
  438. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +66 -0
  439. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  440. package/build/dist/Models/DatabaseModels/ServiceFeed.js +648 -0
  441. package/build/dist/Models/DatabaseModels/ServiceFeed.js.map +1 -0
  442. package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js +496 -0
  443. package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js.map +1 -0
  444. package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +800 -0
  445. package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -0
  446. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +1 -0
  447. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
  448. package/build/dist/Models/DatabaseModels/UserTotpAuth.js +1 -0
  449. package/build/dist/Models/DatabaseModels/UserTotpAuth.js.map +1 -1
  450. package/build/dist/Models/DatabaseModels/UserWebAuthn.js +1 -0
  451. package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
  452. package/build/dist/Server/API/AlertAPI.js +18 -1
  453. package/build/dist/Server/API/AlertAPI.js.map +1 -1
  454. package/build/dist/Server/API/BaseAPI.js +8 -1
  455. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  456. package/build/dist/Server/API/IncidentAPI.js +35 -1
  457. package/build/dist/Server/API/IncidentAPI.js.map +1 -1
  458. package/build/dist/Server/API/IncidentEpisodeAPI.js +18 -1
  459. package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
  460. package/build/dist/Server/API/MicrosoftTeamsAPI.js +30 -2
  461. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  462. package/build/dist/Server/API/ScheduledMaintenanceAPI.js +18 -1
  463. package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
  464. package/build/dist/Server/API/SlackAPI.js +45 -0
  465. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  466. package/build/dist/Server/API/TelemetryAPI.js +100 -35
  467. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  468. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +64 -59
  469. package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
  470. package/build/dist/Server/API/UserTotpAuthAPI.js +65 -1
  471. package/build/dist/Server/API/UserTotpAuthAPI.js.map +1 -1
  472. package/build/dist/Server/API/UserWebAuthnAPI.js +42 -1
  473. package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
  474. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js +26 -0
  475. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js.map +1 -0
  476. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js +22 -0
  477. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js.map +1 -0
  478. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js +88 -0
  479. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js.map +1 -0
  480. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js +39 -0
  481. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js.map +1 -0
  482. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js +34 -0
  483. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js.map +1 -0
  484. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js +32 -0
  485. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js.map +1 -0
  486. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js +61 -0
  487. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js.map +1 -0
  488. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js +23 -0
  489. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js.map +1 -0
  490. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js +179 -0
  491. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js.map +1 -0
  492. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +18 -0
  493. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  494. package/build/dist/Server/Middleware/IdentityRateLimit.js +40 -3
  495. package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
  496. package/build/dist/Server/Services/AIService.js +177 -30
  497. package/build/dist/Server/Services/AIService.js.map +1 -1
  498. package/build/dist/Server/Services/CephClusterFeedService.js +89 -0
  499. package/build/dist/Server/Services/CephClusterFeedService.js.map +1 -0
  500. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +27 -3
  501. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
  502. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +21 -0
  503. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
  504. package/build/dist/Server/Services/CephClusterOwnerTeamService.js +120 -0
  505. package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -1
  506. package/build/dist/Server/Services/CephClusterOwnerUserService.js +113 -0
  507. package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -1
  508. package/build/dist/Server/Services/CephClusterService.js +175 -1
  509. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  510. package/build/dist/Server/Services/CloudResourceFeedService.js +89 -0
  511. package/build/dist/Server/Services/CloudResourceFeedService.js.map +1 -0
  512. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +27 -3
  513. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
  514. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +28 -3
  515. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
  516. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +120 -0
  517. package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -1
  518. package/build/dist/Server/Services/CloudResourceOwnerUserService.js +113 -0
  519. package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -1
  520. package/build/dist/Server/Services/CloudResourceService.js +177 -1
  521. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  522. package/build/dist/Server/Services/DatabaseService.js +201 -0
  523. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  524. package/build/dist/Server/Services/DockerHostFeedService.js +89 -0
  525. package/build/dist/Server/Services/DockerHostFeedService.js.map +1 -0
  526. package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +27 -3
  527. package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
  528. package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +21 -0
  529. package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
  530. package/build/dist/Server/Services/DockerHostOwnerTeamService.js +120 -0
  531. package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -1
  532. package/build/dist/Server/Services/DockerHostOwnerUserService.js +113 -0
  533. package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -1
  534. package/build/dist/Server/Services/DockerHostService.js +177 -1
  535. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  536. package/build/dist/Server/Services/DockerSwarmClusterFeedService.js +90 -0
  537. package/build/dist/Server/Services/DockerSwarmClusterFeedService.js.map +1 -0
  538. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +27 -3
  539. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
  540. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +21 -0
  541. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
  542. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +120 -0
  543. package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -1
  544. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +113 -0
  545. package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -1
  546. package/build/dist/Server/Services/DockerSwarmClusterService.js +175 -1
  547. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  548. package/build/dist/Server/Services/EnterpriseLicenseService.js +40 -30
  549. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  550. package/build/dist/Server/Services/ExceptionAggregationService.js +8 -2
  551. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  552. package/build/dist/Server/Services/HostFeedService.js +89 -0
  553. package/build/dist/Server/Services/HostFeedService.js.map +1 -0
  554. package/build/dist/Server/Services/HostLabelRuleEngineService.js +27 -3
  555. package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
  556. package/build/dist/Server/Services/HostOwnerRuleEngineService.js +21 -0
  557. package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
  558. package/build/dist/Server/Services/HostOwnerTeamService.js +120 -0
  559. package/build/dist/Server/Services/HostOwnerTeamService.js.map +1 -1
  560. package/build/dist/Server/Services/HostOwnerUserService.js +113 -0
  561. package/build/dist/Server/Services/HostOwnerUserService.js.map +1 -1
  562. package/build/dist/Server/Services/HostService.js +175 -1
  563. package/build/dist/Server/Services/HostService.js.map +1 -1
  564. package/build/dist/Server/Services/IncidentService.js +10 -0
  565. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  566. package/build/dist/Server/Services/Index.js +24 -0
  567. package/build/dist/Server/Services/Index.js.map +1 -1
  568. package/build/dist/Server/Services/KubernetesClusterFeedService.js +89 -0
  569. package/build/dist/Server/Services/KubernetesClusterFeedService.js.map +1 -0
  570. package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +27 -3
  571. package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
  572. package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +21 -0
  573. package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
  574. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +120 -0
  575. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -1
  576. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +113 -0
  577. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -1
  578. package/build/dist/Server/Services/KubernetesClusterService.js +177 -1
  579. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  580. package/build/dist/Server/Services/LogAggregationService.js +19 -196
  581. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  582. package/build/dist/Server/Services/MetricAggregationService.js +59 -0
  583. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  584. package/build/dist/Server/Services/MonitorService.js +115 -13
  585. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  586. package/build/dist/Server/Services/MonitorTemplateService.js +86 -0
  587. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  588. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +561 -67
  589. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  590. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +130 -16
  591. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  592. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +850 -8
  593. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
  594. package/build/dist/Server/Services/NetworkDeviceService.js +594 -5
  595. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  596. package/build/dist/Server/Services/NetworkInterfaceService.js +306 -0
  597. package/build/dist/Server/Services/NetworkInterfaceService.js.map +1 -1
  598. package/build/dist/Server/Services/NetworkSiteService.js +408 -47
  599. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  600. package/build/dist/Server/Services/PodmanHostFeedService.js +89 -0
  601. package/build/dist/Server/Services/PodmanHostFeedService.js.map +1 -0
  602. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +27 -3
  603. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
  604. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +21 -0
  605. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
  606. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +120 -0
  607. package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -1
  608. package/build/dist/Server/Services/PodmanHostOwnerUserService.js +113 -0
  609. package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -1
  610. package/build/dist/Server/Services/PodmanHostService.js +177 -1
  611. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  612. package/build/dist/Server/Services/ProjectService.js +40 -30
  613. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  614. package/build/dist/Server/Services/ProxmoxClusterFeedService.js +89 -0
  615. package/build/dist/Server/Services/ProxmoxClusterFeedService.js.map +1 -0
  616. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +27 -3
  617. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
  618. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +21 -0
  619. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
  620. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +120 -0
  621. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -1
  622. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +113 -0
  623. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -1
  624. package/build/dist/Server/Services/ProxmoxClusterService.js +175 -1
  625. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  626. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +56 -0
  627. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  628. package/build/dist/Server/Services/ServiceFeedService.js +89 -0
  629. package/build/dist/Server/Services/ServiceFeedService.js.map +1 -0
  630. package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +27 -3
  631. package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
  632. package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +24 -0
  633. package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
  634. package/build/dist/Server/Services/ServiceOwnerTeamService.js +120 -0
  635. package/build/dist/Server/Services/ServiceOwnerTeamService.js.map +1 -1
  636. package/build/dist/Server/Services/ServiceOwnerUserService.js +113 -0
  637. package/build/dist/Server/Services/ServiceOwnerUserService.js.map +1 -1
  638. package/build/dist/Server/Services/ServiceService.js +173 -2
  639. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  640. package/build/dist/Server/Services/StatusPageSubscriberService.js +7 -0
  641. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  642. package/build/dist/Server/Services/TelemetryAttributeService.js +9 -3
  643. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  644. package/build/dist/Server/Services/TelemetrySourceMapService.js +265 -0
  645. package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -0
  646. package/build/dist/Server/Services/ThreatIntelFeedService.js +157 -0
  647. package/build/dist/Server/Services/ThreatIntelFeedService.js.map +1 -0
  648. package/build/dist/Server/Services/ThreatIntelIndicatorService.js +276 -0
  649. package/build/dist/Server/Services/ThreatIntelIndicatorService.js.map +1 -0
  650. package/build/dist/Server/Services/TraceAggregationService.js +62 -6
  651. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  652. package/build/dist/Server/Services/UserService.js +22 -13
  653. package/build/dist/Server/Services/UserService.js.map +1 -1
  654. package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js +120 -0
  655. package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js.map +1 -1
  656. package/build/dist/Server/Services/UserWebhookService.js +11 -2
  657. package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
  658. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +12 -1
  659. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  660. package/build/dist/Server/Types/Database/AggregateBy.js +2 -0
  661. package/build/dist/Server/Types/Database/AggregateBy.js.map +1 -0
  662. package/build/dist/Server/Types/Database/AggregateResultUtil.js +90 -0
  663. package/build/dist/Server/Types/Database/AggregateResultUtil.js.map +1 -0
  664. package/build/dist/Server/Types/Database/JSONColumnQuery.js +14 -0
  665. package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -1
  666. package/build/dist/Server/Types/Database/QueryHelper.js +42 -0
  667. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  668. package/build/dist/Server/Types/Database/QueryUtil.js +18 -0
  669. package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
  670. package/build/dist/Server/Types/Workflow/Components/API/Utils.js +10 -1
  671. package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
  672. package/build/dist/Server/Types/Workflow/Components/JavaScript.js +8 -0
  673. package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
  674. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +8 -0
  675. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
  676. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +15 -0
  677. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
  678. package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js +266 -0
  679. package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js.map +1 -0
  680. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +134 -0
  681. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  682. package/build/dist/Server/Utils/DataSource/HttpFetch.js +8 -0
  683. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  684. package/build/dist/Server/Utils/Database/RelationIdUtil.js +31 -0
  685. package/build/dist/Server/Utils/Database/RelationIdUtil.js.map +1 -1
  686. package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js +26 -8
  687. package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js.map +1 -1
  688. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +42 -17
  689. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
  690. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +9 -1
  691. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  692. package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js +15 -2
  693. package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js.map +1 -1
  694. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +386 -271
  695. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  696. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +278 -64
  697. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  698. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +469 -350
  699. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  700. package/build/dist/Server/Utils/Monitor/MonitorResource.js +183 -44
  701. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  702. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +46 -3
  703. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
  704. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +18 -91
  705. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  706. package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js +194 -0
  707. package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js.map +1 -0
  708. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +332 -0
  709. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -0
  710. package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js +279 -0
  711. package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js.map +1 -0
  712. package/build/dist/Server/Utils/OnCallNotificationContext.js +415 -0
  713. package/build/dist/Server/Utils/OnCallNotificationContext.js.map +1 -0
  714. package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js +424 -0
  715. package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js.map +1 -0
  716. package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +108 -0
  717. package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js.map +1 -0
  718. package/build/dist/Server/Utils/Response.js +12 -1
  719. package/build/dist/Server/Utils/Response.js.map +1 -1
  720. package/build/dist/Server/Utils/SSRFProtection.js +160 -58
  721. package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
  722. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +89 -0
  723. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -0
  724. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +75 -234
  725. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
  726. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +41 -16
  727. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  728. package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js +217 -0
  729. package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js.map +1 -0
  730. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js +103 -0
  731. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js.map +1 -0
  732. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js +168 -0
  733. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js.map +1 -0
  734. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js +527 -0
  735. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js.map +1 -0
  736. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js +376 -0
  737. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js.map +1 -0
  738. package/build/dist/Server/Utils/StartServer.js +70 -44
  739. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  740. package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +3 -0
  741. package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -1
  742. package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js +327 -0
  743. package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js.map +1 -0
  744. package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js +84 -0
  745. package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js.map +1 -0
  746. package/build/dist/Server/Utils/VM/VMAPI.js.map +1 -1
  747. package/build/dist/Server/Utils/VM/VMRunner.js +10 -1
  748. package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
  749. package/build/dist/Server/Utils/VendorAssets.js +29 -0
  750. package/build/dist/Server/Utils/VendorAssets.js.map +1 -1
  751. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +121 -6
  752. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  753. package/build/dist/Types/API/URL.js +88 -27
  754. package/build/dist/Types/API/URL.js.map +1 -1
  755. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +8 -0
  756. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  757. package/build/dist/Types/BaseDatabase/NotWildcard.js +72 -0
  758. package/build/dist/Types/BaseDatabase/NotWildcard.js.map +1 -0
  759. package/build/dist/Types/BaseDatabase/Wildcard.js +75 -0
  760. package/build/dist/Types/BaseDatabase/Wildcard.js.map +1 -0
  761. package/build/dist/Types/BaseDatabase/WildcardPattern.js +137 -0
  762. package/build/dist/Types/BaseDatabase/WildcardPattern.js.map +1 -0
  763. package/build/dist/Types/Database/DateColumnValue.js +125 -0
  764. package/build/dist/Types/Database/DateColumnValue.js.map +1 -0
  765. package/build/dist/Types/Database/TableColumn.js +18 -2
  766. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  767. package/build/dist/Types/Date.js +31 -0
  768. package/build/dist/Types/Date.js.map +1 -1
  769. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  770. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  771. package/build/dist/Types/JSON.js +2 -0
  772. package/build/dist/Types/JSON.js.map +1 -1
  773. package/build/dist/Types/Log/LogQueryToFilter.js +111 -108
  774. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
  775. package/build/dist/Types/Monitor/DockerAlertTemplates.js +40 -16
  776. package/build/dist/Types/Monitor/DockerAlertTemplates.js.map +1 -1
  777. package/build/dist/Types/Monitor/HostAlertTemplates.js +29 -7
  778. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -1
  779. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +98 -4
  780. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  781. package/build/dist/Types/Monitor/MonitorStep.js +40 -0
  782. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  783. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +36 -16
  784. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -1
  785. package/build/dist/Types/NetworkAutomation/RuleRunResult.js +90 -0
  786. package/build/dist/Types/NetworkAutomation/RuleRunResult.js.map +1 -1
  787. package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js +84 -0
  788. package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js.map +1 -0
  789. package/build/dist/Types/Permission.js +354 -0
  790. package/build/dist/Types/Permission.js.map +1 -1
  791. package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js +100 -0
  792. package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js.map +1 -0
  793. package/build/dist/Types/SerializableObjectDictionary.js +8 -0
  794. package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
  795. package/build/dist/Types/Telemetry/SourceMap.js +9 -0
  796. package/build/dist/Types/Telemetry/SourceMap.js.map +1 -0
  797. package/build/dist/Types/Telemetry/TelemetrySearchQuery.js +661 -0
  798. package/build/dist/Types/Telemetry/TelemetrySearchQuery.js.map +1 -0
  799. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +12 -1
  800. package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
  801. package/build/dist/UI/Components/Charts/Utils/useHistogramZoom.js +47 -0
  802. package/build/dist/UI/Components/Charts/Utils/useHistogramZoom.js.map +1 -0
  803. package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js +67 -0
  804. package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js.map +1 -1
  805. package/build/dist/UI/Components/Icon/Icon.js +28 -1
  806. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  807. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +15 -3
  808. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  809. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +25 -4
  810. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  811. package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js +36 -16
  812. package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js.map +1 -1
  813. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +33 -5
  814. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
  815. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +14 -2
  816. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  817. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +33 -5
  818. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  819. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +14 -2
  820. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
  821. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +54 -9
  822. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
  823. package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js +128 -0
  824. package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js.map +1 -0
  825. package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +190 -0
  826. package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -0
  827. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +206 -28
  828. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  829. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +14 -7
  830. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
  831. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  832. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +34 -18
  833. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
  834. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +163 -0
  835. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -0
  836. package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js +99 -0
  837. package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js.map +1 -0
  838. package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js +85 -0
  839. package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js.map +1 -0
  840. package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js +560 -0
  841. package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js.map +1 -0
  842. package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js +56 -0
  843. package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js.map +1 -0
  844. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +185 -10
  845. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  846. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +248 -21
  847. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -1
  848. package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js +255 -0
  849. package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js.map +1 -0
  850. package/build/dist/Utils/Telemetry/CrossSignalScope.js +27 -30
  851. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
  852. package/package.json +2 -1
  853. package/Tests/Types/Log/LogQueryParser.test.ts +0 -186
  854. package/Types/Log/LogQueryParser.ts +0 -252
  855. package/build/dist/Types/Log/LogQueryParser.js +0 -200
  856. package/build/dist/Types/Log/LogQueryParser.js.map +0 -1
@@ -58,15 +58,18 @@ export default class MonitorAlert {
58
58
  },
59
59
  });
60
60
  // check if should close the alert.
61
+ const resolvedAlertIds = new Set();
61
62
  for (const openAlert of openAlerts) {
62
63
  const shouldClose = this.shouldCloseAlert({
63
64
  openAlert,
64
65
  autoResolveCriteriaInstanceIdAlertIdsDictionary: input.autoResolveCriteriaInstanceIdAlertIdsDictionary,
65
66
  criteriaInstance: input.criteriaInstance,
66
67
  breachingSeriesFingerprints: input.breachingSeriesFingerprints,
68
+ breachingSeriesFingerprintsByCriteriaId: input.breachingSeriesFingerprintsByCriteriaId,
67
69
  disableSeriesAbsenceResolution: input.disableSeriesAbsenceResolution,
68
70
  });
69
71
  if (shouldClose) {
72
+ resolvedAlertIds.add(openAlert.id.toString());
70
73
  // then resolve alert.
71
74
  await this.resolveOpenAlert({
72
75
  openAlert: openAlert,
@@ -85,7 +88,19 @@ export default class MonitorAlert {
85
88
  });
86
89
  }
87
90
  }
88
- return openAlerts;
91
+ /*
92
+ * Return the alerts that are still open AFTER this pass. The create
93
+ * path dedupes against this list, and an alert this pass just
94
+ * resolved must not count as "already active" — that combination
95
+ * resolved a stale whole-monitor alert and then refused to create
96
+ * the per-series alerts meant to replace it.
97
+ */
98
+ if (resolvedAlertIds.size === 0) {
99
+ return openAlerts;
100
+ }
101
+ return openAlerts.filter((openAlert) => {
102
+ return !resolvedAlertIds.has(openAlert.id.toString());
103
+ });
89
104
  }
90
105
  /**
91
106
  * Event-driven (incoming-request / webhook) resolution: resolve the open
@@ -153,7 +168,7 @@ export default class MonitorAlert {
153
168
  }
154
169
  }
155
170
  static async criteriaMetCreateAlertsAndUpdateMonitorStatus(input) {
156
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
171
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17;
157
172
  const alertLogAttributes = {
158
173
  projectId: (_a = input.monitor.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
159
174
  };
@@ -165,19 +180,37 @@ export default class MonitorAlert {
165
180
  }))
166
181
  : undefined;
167
182
  // check active alerts and if there are open alerts, do not cretae anothr alert.
168
- const openAlerts = await this.checkOpenAlertsAndCloseIfResolved({
169
- monitorId: input.monitor.id,
170
- autoResolveCriteriaInstanceIdAlertIdsDictionary: input.autoResolveCriteriaInstanceIdAlertIdsDictionary,
171
- rootCause: input.rootCause,
172
- criteriaInstance: input.criteriaInstance,
173
- dataToProcess: input.dataToProcess,
174
- evaluationSummary: input.evaluationSummary,
175
- breachingSeriesFingerprints,
176
- disableSeriesAbsenceResolution: input.disableSeriesAbsenceResolution,
177
- });
183
+ const openAlerts = input.openAlerts !== undefined
184
+ ? input.openAlerts
185
+ : await this.checkOpenAlertsAndCloseIfResolved({
186
+ monitorId: input.monitor.id,
187
+ autoResolveCriteriaInstanceIdAlertIdsDictionary: input.autoResolveCriteriaInstanceIdAlertIdsDictionary,
188
+ rootCause: input.rootCause,
189
+ criteriaInstance: input.criteriaInstance,
190
+ dataToProcess: input.dataToProcess,
191
+ evaluationSummary: input.evaluationSummary,
192
+ breachingSeriesFingerprints,
193
+ breachingSeriesFingerprintsByCriteriaId: input.breachingSeriesFingerprintsByCriteriaId,
194
+ disableSeriesAbsenceResolution: input.disableSeriesAbsenceResolution,
195
+ });
178
196
  if (!((_c = input.criteriaInstance.data) === null || _c === void 0 ? void 0 : _c.createAlerts)) {
179
197
  return;
180
198
  }
199
+ /*
200
+ * Checked once, up front. It used to be tested deep inside the
201
+ * template x series loops with a `return`, which on a grouped
202
+ * monitor abandoned every series after the first.
203
+ */
204
+ if (DisableAutomaticAlertCreation) {
205
+ (_d = input.evaluationSummary) === null || _d === void 0 ? void 0 : _d.events.push({
206
+ type: "alert-skipped",
207
+ title: "Alert creation skipped",
208
+ message: "Automatic alert creation is disabled by environment configuration.",
209
+ relatedCriteriaId: (_e = input.criteriaInstance.data) === null || _e === void 0 ? void 0 : _e.id,
210
+ at: OneUptimeDate.getCurrentDate(),
211
+ });
212
+ return;
213
+ }
181
214
  /*
182
215
  * Alert-dependency suppression: a parent monitor is in a suppressing
183
216
  * status (offline by default), so skip creating any alert for this
@@ -185,14 +218,14 @@ export default class MonitorAlert {
185
218
  * purpose — an alert raised before the parent went down must still
186
219
  * resolve normally; only new creation is silenced.
187
220
  */
188
- if ((_d = input.dependencySuppression) === null || _d === void 0 ? void 0 : _d.isSuppressed) {
221
+ if ((_f = input.dependencySuppression) === null || _f === void 0 ? void 0 : _f.isSuppressed) {
189
222
  const suppressionReason = MonitorDependencySuppression.buildSuppressionReason(input.dependencySuppression.suppressingParents);
190
- logger.debug(`${(_e = input.monitor.id) === null || _e === void 0 ? void 0 : _e.toString()} - Skipping alert creation: ${suppressionReason}.`, alertLogAttributes);
191
- (_f = input.evaluationSummary) === null || _f === void 0 ? void 0 : _f.events.push({
223
+ logger.debug(`${(_g = input.monitor.id) === null || _g === void 0 ? void 0 : _g.toString()} - Skipping alert creation: ${suppressionReason}.`, alertLogAttributes);
224
+ (_h = input.evaluationSummary) === null || _h === void 0 ? void 0 : _h.events.push({
192
225
  type: "alert-skipped",
193
226
  title: "Alert suppressed by monitor dependency",
194
227
  message: `Skipped creating alerts because ${suppressionReason}. This monitor's status still updates normally; open alerts still auto-resolve.`,
195
- relatedCriteriaId: (_g = input.criteriaInstance.data) === null || _g === void 0 ? void 0 : _g.id,
228
+ relatedCriteriaId: (_j = input.criteriaInstance.data) === null || _j === void 0 ? void 0 : _j.id,
196
229
  at: OneUptimeDate.getCurrentDate(),
197
230
  });
198
231
  return;
@@ -228,245 +261,275 @@ export default class MonitorAlert {
228
261
  * created alert's owners alongside the criteria-configured ones.
229
262
  */
230
263
  let networkDeviceOwners = null;
231
- for (const criteriaAlert of ((_h = input.criteriaInstance.data) === null || _h === void 0 ? void 0 : _h.alerts) || []) {
264
+ for (const criteriaAlert of ((_k = input.criteriaInstance.data) === null || _k === void 0 ? void 0 : _k.alerts) || []) {
232
265
  for (const seriesMatch of seriesToProcess) {
233
- const seriesFingerprint = seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.fingerprint;
234
- const seriesLabels = seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.labels;
235
- const seriesRootCause = (seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.rootCause) || input.rootCause;
236
- /*
237
- * Per-series scheduled-maintenance suppression: skip creating an
238
- * alert for a series whose resource is inside an ongoing
239
- * maintenance window. Other series on the same monitor are
240
- * unaffected. Only *new* creation is suppressed existing open
241
- * alerts follow the normal resolve path.
242
- */
243
- if (seriesFingerprint &&
244
- ((_j = input.suppressedSeriesFingerprints) === null || _j === void 0 ? void 0 : _j.has(seriesFingerprint))) {
245
- logger.debug(`${(_k = input.monitor.id) === null || _k === void 0 ? void 0 : _k.toString()} - Skipping alert for series ${seriesFingerprint}: its resource is under an active scheduled maintenance window.`, alertLogAttributes);
246
- (_l = input.evaluationSummary) === null || _l === void 0 ? void 0 : _l.events.push({
247
- type: "alert-skipped",
248
- title: "Alert suppressed by scheduled maintenance",
249
- message: "Skipped creating an alert because the resource for this series is under an active scheduled maintenance window.",
250
- relatedCriteriaId: (_m = input.criteriaInstance.data) === null || _m === void 0 ? void 0 : _m.id,
251
- at: OneUptimeDate.getCurrentDate(),
266
+ try {
267
+ const seriesFingerprint = seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.fingerprint;
268
+ const seriesLabels = seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.labels;
269
+ const seriesRootCause = (seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.rootCause) || input.rootCause;
270
+ /*
271
+ * Per-series scheduled-maintenance suppression: skip creating an
272
+ * alert for a series whose resource is inside an ongoing
273
+ * maintenance window. Other series on the same monitor are
274
+ * unaffected. Only *new* creation is suppressed — existing open
275
+ * alerts follow the normal resolve path.
276
+ */
277
+ if (seriesFingerprint &&
278
+ ((_l = input.suppressedSeriesFingerprints) === null || _l === void 0 ? void 0 : _l.has(seriesFingerprint))) {
279
+ logger.debug(`${(_m = input.monitor.id) === null || _m === void 0 ? void 0 : _m.toString()} - Skipping alert for series ${seriesFingerprint}: its resource is under an active scheduled maintenance window.`, alertLogAttributes);
280
+ (_o = input.evaluationSummary) === null || _o === void 0 ? void 0 : _o.events.push({
281
+ type: "alert-skipped",
282
+ title: "Alert suppressed by scheduled maintenance",
283
+ message: "Skipped creating an alert because the resource for this series is under an active scheduled maintenance window.",
284
+ relatedCriteriaId: (_p = input.criteriaInstance.data) === null || _p === void 0 ? void 0 : _p.id,
285
+ at: OneUptimeDate.getCurrentDate(),
286
+ });
287
+ continue;
288
+ }
289
+ /*
290
+ * Mirror the create path: `createdCriteriaId` is only set when the
291
+ * criteria has an `id`. Guard the `.toString()` with `?.` (a criteria
292
+ * with a missing id otherwise threw "Cannot read properties of
293
+ * undefined (reading 'toString')" and failed the queue job every
294
+ * cycle) and normalise both sides to `undefined` on missing so dedupe
295
+ * stays correct instead of creating a duplicate alert each cycle.
296
+ */
297
+ const alreadyOpenAlert = openAlerts.find((alert) => {
298
+ var _a, _b;
299
+ return ((alert.createdCriteriaId || undefined) ===
300
+ (((_b = (_a = input.criteriaInstance.data) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString()) || undefined) &&
301
+ (alert.seriesFingerprint || undefined) === seriesFingerprint);
252
302
  });
253
- continue;
254
- }
255
- /*
256
- * Mirror the create path: `createdCriteriaId` is only set when the
257
- * criteria has an `id`. Guard the `.toString()` with `?.` (a criteria
258
- * with a missing id otherwise threw "Cannot read properties of
259
- * undefined (reading 'toString')" and failed the queue job every
260
- * cycle) and normalise both sides to `undefined` on missing so dedupe
261
- * stays correct instead of creating a duplicate alert each cycle.
262
- */
263
- const alreadyOpenAlert = openAlerts.find((alert) => {
264
- var _a, _b;
265
- return ((alert.createdCriteriaId || undefined) ===
266
- (((_b = (_a = input.criteriaInstance.data) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.toString()) || undefined) &&
267
- (alert.seriesFingerprint || undefined) === seriesFingerprint);
268
- });
269
- const hasAlreadyOpenAlert = Boolean(alreadyOpenAlert);
270
- logger.debug(`${(_o = input.monitor.id) === null || _o === void 0 ? void 0 : _o.toString()} - Open Alert ${(_p = alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.id) === null || _p === void 0 ? void 0 : _p.toString()}`, alertLogAttributes);
271
- logger.debug(`${(_q = input.monitor.id) === null || _q === void 0 ? void 0 : _q.toString()} - Has open alert ${hasAlreadyOpenAlert}`, alertLogAttributes);
272
- if (hasAlreadyOpenAlert) {
273
- const renderedAlertTitle = (alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.title) || criteriaAlert.title;
274
- (_r = input.evaluationSummary) === null || _r === void 0 ? void 0 : _r.events.push({
275
- type: "alert-skipped",
276
- title: `Alert already active: ${renderedAlertTitle}`,
277
- message: "Skipped creating a new alert because an active alert exists for this criteria.",
278
- relatedCriteriaId: (_s = input.criteriaInstance.data) === null || _s === void 0 ? void 0 : _s.id,
279
- relatedAlertId: (_t = alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.id) === null || _t === void 0 ? void 0 : _t.toString(),
280
- relatedAlertNumber: alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.alertNumber,
281
- relatedAlertNumberWithPrefix: alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.alertNumberWithPrefix,
282
- at: OneUptimeDate.getCurrentDate(),
303
+ const hasAlreadyOpenAlert = Boolean(alreadyOpenAlert);
304
+ logger.debug(`${(_q = input.monitor.id) === null || _q === void 0 ? void 0 : _q.toString()} - Open Alert ${(_r = alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.id) === null || _r === void 0 ? void 0 : _r.toString()}`, alertLogAttributes);
305
+ logger.debug(`${(_s = input.monitor.id) === null || _s === void 0 ? void 0 : _s.toString()} - Has open alert ${hasAlreadyOpenAlert}`, alertLogAttributes);
306
+ if (hasAlreadyOpenAlert) {
307
+ const renderedAlertTitle = (alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.title) || criteriaAlert.title;
308
+ (_t = input.evaluationSummary) === null || _t === void 0 ? void 0 : _t.events.push({
309
+ type: "alert-skipped",
310
+ title: `Alert already active: ${renderedAlertTitle}`,
311
+ message: "Skipped creating a new alert because an active alert exists for this criteria.",
312
+ relatedCriteriaId: (_u = input.criteriaInstance.data) === null || _u === void 0 ? void 0 : _u.id,
313
+ relatedAlertId: (_v = alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.id) === null || _v === void 0 ? void 0 : _v.toString(),
314
+ relatedAlertNumber: alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.alertNumber,
315
+ relatedAlertNumberWithPrefix: alreadyOpenAlert === null || alreadyOpenAlert === void 0 ? void 0 : alreadyOpenAlert.alertNumberWithPrefix,
316
+ at: OneUptimeDate.getCurrentDate(),
317
+ });
318
+ continue;
319
+ }
320
+ // create alert here.
321
+ logger.debug(`${(_w = input.monitor.id) === null || _w === void 0 ? void 0 : _w.toString()} - Create alert.`, alertLogAttributes);
322
+ const alert = new Alert();
323
+ const storageMap = MonitorTemplateUtil.buildTemplateStorageMap({
324
+ monitorType: input.monitor.monitorType,
325
+ dataToProcess: input.dataToProcess,
326
+ monitor: input.monitor,
327
+ seriesLabels,
283
328
  });
284
- continue;
285
- }
286
- // create alert here.
287
- logger.debug(`${(_u = input.monitor.id) === null || _u === void 0 ? void 0 : _u.toString()} - Create alert.`, alertLogAttributes);
288
- const alert = new Alert();
289
- const storageMap = MonitorTemplateUtil.buildTemplateStorageMap({
290
- monitorType: input.monitor.monitorType,
291
- dataToProcess: input.dataToProcess,
292
- monitor: input.monitor,
293
- seriesLabels,
294
- });
295
- alert.title = MonitorTemplateUtil.processTemplateString({
296
- value: criteriaAlert.title,
297
- storageMap,
298
- });
299
- alert.description = MonitorTemplateUtil.processTemplateString({
300
- value: criteriaAlert.description,
301
- storageMap,
302
- });
303
- /*
304
- * A criteria severity belonging to *another* project is rejected by
305
- * AlertService on create. Throwing here would fail the whole
306
- * probe/telemetry ingest job for this monitor, so treat it as
307
- * "missing" and fall back to this project's own default — which is
308
- * also what stops the bad id spreading onto new alerts. See the same
309
- * fallback in MonitorIncident.
310
- */
311
- const isCriteriaSeverityUsable = await ProjectScopedReferenceValidator.isUsableInProject({
312
- projectId: input.monitor.projectId,
313
- id: criteriaAlert.alertSeverityId,
314
- service: AlertSeverityService,
315
- });
316
- if (((_v = criteriaAlert.alertSeverityId) === null || _v === void 0 ? void 0 : _v.toString()) &&
317
- !isCriteriaSeverityUsable) {
318
- logger.error(`${(_w = input.monitor.id) === null || _w === void 0 ? void 0 : _w.toString()} - Criteria "${(_x = input.criteriaInstance.data) === null || _x === void 0 ? void 0 : _x.name}" references alert severity ${criteriaAlert.alertSeverityId.toString()}, which does not belong to project ${(_y = input.monitor.projectId) === null || _y === void 0 ? void 0 : _y.toString()}. Falling back to this project's default severity.`);
319
- }
320
- if (!isCriteriaSeverityUsable) {
321
- // pick the critical criteria.
322
- const severity = await AlertSeverityService.findOneBy({
323
- query: {
324
- projectId: input.monitor.projectId,
325
- },
326
- sort: {
327
- order: SortOrder.Ascending,
328
- },
329
- props: {
330
- isRoot: true,
331
- },
332
- select: {
333
- _id: true,
334
- },
329
+ alert.title = MonitorTemplateUtil.processTemplateString({
330
+ value: criteriaAlert.title,
331
+ storageMap,
335
332
  });
336
- if (!severity) {
337
- throw new BadDataException("Project does not have alert severity");
333
+ alert.description = MonitorTemplateUtil.processTemplateString({
334
+ value: criteriaAlert.description,
335
+ storageMap,
336
+ });
337
+ /*
338
+ * A criteria severity belonging to *another* project is rejected by
339
+ * AlertService on create. Throwing here would fail the whole
340
+ * probe/telemetry ingest job for this monitor, so treat it as
341
+ * "missing" and fall back to this project's own default — which is
342
+ * also what stops the bad id spreading onto new alerts. See the same
343
+ * fallback in MonitorIncident.
344
+ */
345
+ const isCriteriaSeverityUsable = await ProjectScopedReferenceValidator.isUsableInProject({
346
+ projectId: input.monitor.projectId,
347
+ id: criteriaAlert.alertSeverityId,
348
+ service: AlertSeverityService,
349
+ });
350
+ if (((_x = criteriaAlert.alertSeverityId) === null || _x === void 0 ? void 0 : _x.toString()) &&
351
+ !isCriteriaSeverityUsable) {
352
+ logger.error(`${(_y = input.monitor.id) === null || _y === void 0 ? void 0 : _y.toString()} - Criteria "${(_z = input.criteriaInstance.data) === null || _z === void 0 ? void 0 : _z.name}" references alert severity ${criteriaAlert.alertSeverityId.toString()}, which does not belong to project ${(_0 = input.monitor.projectId) === null || _0 === void 0 ? void 0 : _0.toString()}. Falling back to this project's default severity.`);
338
353
  }
339
- else {
354
+ if (!isCriteriaSeverityUsable) {
355
+ // pick the critical criteria.
356
+ const severity = await AlertSeverityService.findOneBy({
357
+ query: {
358
+ projectId: input.monitor.projectId,
359
+ },
360
+ sort: {
361
+ order: SortOrder.Ascending,
362
+ },
363
+ props: {
364
+ isRoot: true,
365
+ },
366
+ select: {
367
+ _id: true,
368
+ },
369
+ });
370
+ if (!((_1 = severity === null || severity === void 0 ? void 0 : severity.id) === null || _1 === void 0 ? void 0 : _1.toString())) {
371
+ /*
372
+ * The project has no alert severity configured. Throwing here
373
+ * would fail the entire probe/telemetry ingest job — which
374
+ * then retries forever over a misconfiguration the worker
375
+ * cannot fix, and takes every other series on this monitor
376
+ * down with it. Skip this alert and log instead, exactly as
377
+ * the incident path does.
378
+ */
379
+ logger.error(`${(_2 = input.monitor.id) === null || _2 === void 0 ? void 0 : _2.toString()} - Cannot create alert: project ${(_3 = input.monitor.projectId) === null || _3 === void 0 ? void 0 : _3.toString()} has no alert severity configured. Skipping alert creation for criteria "${(_4 = input.criteriaInstance.data) === null || _4 === void 0 ? void 0 : _4.name}".`);
380
+ (_5 = input.evaluationSummary) === null || _5 === void 0 ? void 0 : _5.events.push({
381
+ type: "alert-skipped",
382
+ title: "Alert creation skipped",
383
+ message: "Skipped creating an alert because the project has no alert severity configured.",
384
+ relatedCriteriaId: (_6 = input.criteriaInstance.data) === null || _6 === void 0 ? void 0 : _6.id,
385
+ at: OneUptimeDate.getCurrentDate(),
386
+ });
387
+ continue;
388
+ }
340
389
  alert.alertSeverityId = severity.id;
341
390
  }
342
- }
343
- else {
344
- alert.alertSeverityId = criteriaAlert.alertSeverityId;
345
- }
346
- alert.monitor = input.monitor;
347
- alert.projectId = input.monitor.projectId;
348
- alert.rootCause = seriesRootCause;
349
- alert.createdStateLog = JSON.parse(JSON.stringify(input.dataToProcess, null, 2));
350
- /*
351
- * Same capture on every alert this evaluation opens - they all
352
- * came from the one check.
353
- */
354
- const serializedMonitorSummary = MonitorSummarySnapshotUtil.serialize(input.monitorSummary);
355
- if (serializedMonitorSummary) {
356
- alert.monitorSummary = serializedMonitorSummary;
357
- }
358
- if ((_z = input.criteriaInstance.data) === null || _z === void 0 ? void 0 : _z.id) {
359
- alert.createdCriteriaId = input.criteriaInstance.data.id.toString();
360
- }
361
- if (seriesFingerprint) {
362
- alert.seriesFingerprint = seriesFingerprint;
363
- }
364
- if (seriesLabels && Object.keys(seriesLabels).length > 0) {
365
- alert.seriesLabels = seriesLabels;
391
+ else {
392
+ alert.alertSeverityId = criteriaAlert.alertSeverityId;
393
+ }
394
+ alert.monitor = input.monitor;
395
+ alert.projectId = input.monitor.projectId;
396
+ alert.rootCause = seriesRootCause;
397
+ alert.createdStateLog = JSON.parse(JSON.stringify(input.dataToProcess, null, 2));
366
398
  /*
367
- * Attach every resource this series identifies host, docker
368
- * host, podman host, k8s cluster, service, and the Proxmox /
369
- * Ceph / Swarm / IoT clusters — resolved from the shared label
370
- * key map. Same call the incident path makes, so the two can't
371
- * drift apart again.
399
+ * Same capture on every alert this evaluation opens - they all
400
+ * came from the one check.
372
401
  */
373
- await SeriesResourceLinker.linkSeriesResourcesToModel({
402
+ const serializedMonitorSummary = MonitorSummarySnapshotUtil.serialize(input.monitorSummary);
403
+ if (serializedMonitorSummary) {
404
+ alert.monitorSummary = serializedMonitorSummary;
405
+ }
406
+ if ((_7 = input.criteriaInstance.data) === null || _7 === void 0 ? void 0 : _7.id) {
407
+ alert.createdCriteriaId = input.criteriaInstance.data.id.toString();
408
+ }
409
+ if (seriesFingerprint) {
410
+ alert.seriesFingerprint = seriesFingerprint;
411
+ }
412
+ if (seriesLabels && Object.keys(seriesLabels).length > 0) {
413
+ alert.seriesLabels = seriesLabels;
414
+ /*
415
+ * Attach every resource this series identifies — host, docker
416
+ * host, podman host, k8s cluster, service, and the Proxmox /
417
+ * Ceph / Swarm / IoT clusters — resolved from the shared label
418
+ * key map. Same call the incident path makes, so the two can't
419
+ * drift apart again.
420
+ */
421
+ await SeriesResourceLinker.linkSeriesResourcesToModel({
422
+ model: alert,
423
+ seriesLabels,
424
+ projectId: input.monitor.projectId,
425
+ monitorType: input.monitor.monitorType,
426
+ });
427
+ }
428
+ /*
429
+ * Deterministic resource link from the monitor's step config
430
+ * (resolved once above). For most monitor types this — not the
431
+ * label path above — is what makes the per-resource Activity
432
+ * tabs and badge counts see monitor-created alerts, because
433
+ * their criteria are ungrouped and emit no series labels at
434
+ * all. Runs for both grouped and ungrouped alerts, and merges
435
+ * with whatever the labels resolved.
436
+ */
437
+ SeriesResourceLinker.attachResolvedResources({
374
438
  model: alert,
375
- seriesLabels,
376
- projectId: input.monitor.projectId,
377
- monitorType: input.monitor.monitorType,
439
+ resolved: resourceContext,
378
440
  });
379
- }
380
- /*
381
- * Deterministic resource link from the monitor's step config
382
- * (resolved once above). For most monitor types this — not the
383
- * label path above — is what makes the per-resource Activity
384
- * tabs and badge counts see monitor-created alerts, because
385
- * their criteria are ungrouped and emit no series labels at
386
- * all. Runs for both grouped and ungrouped alerts, and merges
387
- * with whatever the labels resolved.
388
- */
389
- SeriesResourceLinker.attachResolvedResources({
390
- model: alert,
391
- resolved: resourceContext,
392
- });
393
- alert.onCallDutyPolicies =
394
- ((_0 = criteriaAlert.onCallPolicyIds) === null || _0 === void 0 ? void 0 : _0.map((id) => {
395
- const onCallPolicy = new OnCallDutyPolicy();
396
- onCallPolicy._id = id.toString();
397
- return onCallPolicy;
398
- })) || [];
399
- // Set labels from criteria
400
- alert.labels =
401
- ((_1 = criteriaAlert.labelIds) === null || _1 === void 0 ? void 0 : _1.map((id) => {
402
- const label = new Label();
403
- label._id = id.toString();
404
- return label;
405
- })) || [];
406
- alert.isCreatedAutomatically = true;
407
- if (criteriaAlert.isPrivate === true) {
408
- alert.isPrivate = true;
409
- }
410
- if (input.props.telemetryQuery) {
411
- alert.telemetryQuery = input.props.telemetryQuery;
412
- }
413
- if (input.dataToProcess &&
414
- input.dataToProcess.probeId) {
415
- alert.createdByProbeId = input.dataToProcess.probeId;
416
- }
417
- if (criteriaAlert.remediationNotes) {
418
- alert.remediationNotes = MonitorTemplateUtil.processTemplateString({
419
- value: criteriaAlert.remediationNotes,
420
- storageMap,
441
+ alert.onCallDutyPolicies =
442
+ ((_8 = criteriaAlert.onCallPolicyIds) === null || _8 === void 0 ? void 0 : _8.map((id) => {
443
+ const onCallPolicy = new OnCallDutyPolicy();
444
+ onCallPolicy._id = id.toString();
445
+ return onCallPolicy;
446
+ })) || [];
447
+ // Set labels from criteria
448
+ alert.labels =
449
+ ((_9 = criteriaAlert.labelIds) === null || _9 === void 0 ? void 0 : _9.map((id) => {
450
+ const label = new Label();
451
+ label._id = id.toString();
452
+ return label;
453
+ })) || [];
454
+ alert.isCreatedAutomatically = true;
455
+ if (criteriaAlert.isPrivate === true) {
456
+ alert.isPrivate = true;
457
+ }
458
+ if (input.props.telemetryQuery) {
459
+ alert.telemetryQuery = input.props.telemetryQuery;
460
+ }
461
+ if (input.dataToProcess &&
462
+ input.dataToProcess.probeId) {
463
+ alert.createdByProbeId = input.dataToProcess.probeId;
464
+ }
465
+ if (criteriaAlert.remediationNotes) {
466
+ alert.remediationNotes = MonitorTemplateUtil.processTemplateString({
467
+ value: criteriaAlert.remediationNotes,
468
+ storageMap,
469
+ });
470
+ }
471
+ const createdAlert = await AlertService.create({
472
+ data: alert,
473
+ props: {
474
+ isRoot: true,
475
+ },
421
476
  });
422
- }
423
- if (DisableAutomaticAlertCreation) {
424
- (_2 = input.evaluationSummary) === null || _2 === void 0 ? void 0 : _2.events.push({
425
- type: "alert-skipped",
426
- title: "Alert creation skipped",
427
- message: "Automatic alert creation is disabled by environment configuration.",
428
- relatedCriteriaId: (_3 = input.criteriaInstance.data) === null || _3 === void 0 ? void 0 : _3.id,
477
+ /*
478
+ * Add owner teams and users after alert creation. Owners configured
479
+ * on the criteria template are merged (deduped) with the owners of
480
+ * the network device this monitor watches, so device ownership flows
481
+ * into the alerts its monitor raises.
482
+ */
483
+ if (networkDeviceOwners === null) {
484
+ networkDeviceOwners =
485
+ await NetworkDeviceOwnerUserService.getDeviceOwnersForMonitor({
486
+ monitor: input.monitor,
487
+ monitorStepId: (_10 = input.dataToProcess.monitorStepId) === null || _10 === void 0 ? void 0 : _10.toString(),
488
+ });
489
+ }
490
+ const ownerUserIds = this.mergeOwnerIds(criteriaAlert.ownerUserIds || [], networkDeviceOwners.ownerUserIds);
491
+ const ownerTeamIds = this.mergeOwnerIds(criteriaAlert.ownerTeamIds || [], networkDeviceOwners.ownerTeamIds);
492
+ if (ownerTeamIds.length || ownerUserIds.length) {
493
+ await AlertService.addOwners(input.monitor.projectId, createdAlert.id, ownerUserIds, ownerTeamIds, true, // notify owners
494
+ {
495
+ isRoot: true,
496
+ });
497
+ }
498
+ (_11 = input.evaluationSummary) === null || _11 === void 0 ? void 0 : _11.events.push({
499
+ type: "alert-created",
500
+ title: `Alert created: ${createdAlert.title || criteriaAlert.title}`,
501
+ message: `Alert triggered from criteria "${((_12 = input.criteriaInstance.data) === null || _12 === void 0 ? void 0 : _12.name) || "Unnamed criteria"}".`,
502
+ relatedCriteriaId: (_13 = input.criteriaInstance.data) === null || _13 === void 0 ? void 0 : _13.id,
503
+ relatedAlertId: (_14 = createdAlert.id) === null || _14 === void 0 ? void 0 : _14.toString(),
504
+ relatedAlertNumber: createdAlert.alertNumber,
505
+ relatedAlertNumberWithPrefix: createdAlert.alertNumberWithPrefix,
429
506
  at: OneUptimeDate.getCurrentDate(),
430
507
  });
431
- return;
432
- }
433
- const createdAlert = await AlertService.create({
434
- data: alert,
435
- props: {
436
- isRoot: true,
437
- },
438
- });
439
- /*
440
- * Add owner teams and users after alert creation. Owners configured
441
- * on the criteria template are merged (deduped) with the owners of
442
- * the network device this monitor watches, so device ownership flows
443
- * into the alerts its monitor raises.
444
- */
445
- if (networkDeviceOwners === null) {
446
- networkDeviceOwners =
447
- await NetworkDeviceOwnerUserService.getDeviceOwnersForMonitor({
448
- monitor: input.monitor,
449
- monitorStepId: (_4 = input.dataToProcess.monitorStepId) === null || _4 === void 0 ? void 0 : _4.toString(),
450
- });
451
508
  }
452
- const ownerUserIds = this.mergeOwnerIds(criteriaAlert.ownerUserIds || [], networkDeviceOwners.ownerUserIds);
453
- const ownerTeamIds = this.mergeOwnerIds(criteriaAlert.ownerTeamIds || [], networkDeviceOwners.ownerTeamIds);
454
- if (ownerTeamIds.length || ownerUserIds.length) {
455
- await AlertService.addOwners(input.monitor.projectId, createdAlert.id, ownerUserIds, ownerTeamIds, true, // notify owners
456
- {
457
- isRoot: true,
509
+ catch (err) {
510
+ /*
511
+ * One series must not take the rest of the fleet down with it.
512
+ * Everything below this loop happens per host/container/key and
513
+ * touches the database; an error thrown from here used to
514
+ * propagate out of MonitorResource (which has no catch, only a
515
+ * `finally` that releases the lock) and abandon every series
516
+ * after the failing one, plus the monitor log for the tick.
517
+ */
518
+ logger.error(`${(_15 = input.monitor.id) === null || _15 === void 0 ? void 0 : _15.toString()} - Failed to create alert${(seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.fingerprint)
519
+ ? ` for series ${seriesMatch.fingerprint}`
520
+ : ""}.`);
521
+ logger.error(err);
522
+ (_16 = input.evaluationSummary) === null || _16 === void 0 ? void 0 : _16.events.push({
523
+ type: "alert-skipped",
524
+ title: "Alert creation failed",
525
+ message: `Could not create an alert${(seriesMatch === null || seriesMatch === void 0 ? void 0 : seriesMatch.fingerprint)
526
+ ? ` for series ${seriesMatch.fingerprint}`
527
+ : ""}: ${err instanceof Error ? err.message : String(err)}`,
528
+ relatedCriteriaId: (_17 = input.criteriaInstance.data) === null || _17 === void 0 ? void 0 : _17.id,
529
+ at: OneUptimeDate.getCurrentDate(),
458
530
  });
531
+ continue;
459
532
  }
460
- (_5 = input.evaluationSummary) === null || _5 === void 0 ? void 0 : _5.events.push({
461
- type: "alert-created",
462
- title: `Alert created: ${createdAlert.title || criteriaAlert.title}`,
463
- message: `Alert triggered from criteria "${((_6 = input.criteriaInstance.data) === null || _6 === void 0 ? void 0 : _6.name) || "Unnamed criteria"}".`,
464
- relatedCriteriaId: (_7 = input.criteriaInstance.data) === null || _7 === void 0 ? void 0 : _7.id,
465
- relatedAlertId: (_8 = createdAlert.id) === null || _8 === void 0 ? void 0 : _8.toString(),
466
- relatedAlertNumber: createdAlert.alertNumber,
467
- relatedAlertNumberWithPrefix: createdAlert.alertNumberWithPrefix,
468
- at: OneUptimeDate.getCurrentDate(),
469
- });
470
533
  }
471
534
  }
472
535
  }
@@ -532,8 +595,51 @@ export default class MonitorAlert {
532
595
  }
533
596
  }
534
597
  }
598
+ /**
599
+ * Is `openAlert`'s series still breaching the criteria that raised it?
600
+ *
601
+ * Prefers the per-criteria dictionary, which answers the question for
602
+ * the criteria that actually owns this alert. The single-set fallback
603
+ * only knows the winning criteria's breaches, so it has to approximate
604
+ * with `createAlerts` — a criteria that creates no alerts is a
605
+ * recovery criteria whose "matches" are healthy series, and counting
606
+ * those as breaches would pin an offline alert open forever.
607
+ */
608
+ static isSeriesStillBreaching(input) {
609
+ var _a, _b, _c, _d;
610
+ const owningCriteriaId = ((_a = input.openAlert.createdCriteriaId) === null || _a === void 0 ? void 0 : _a.toString()) || undefined;
611
+ if (input.breachingSeriesFingerprintsByCriteriaId && owningCriteriaId) {
612
+ return Boolean((_b = input.breachingSeriesFingerprintsByCriteriaId[owningCriteriaId]) === null || _b === void 0 ? void 0 : _b.has(input.openSeriesFingerprint));
613
+ }
614
+ const matchedCriteriaCreatesAlerts = ((_d = (_c = input.criteriaInstance) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.createAlerts) === true;
615
+ return (matchedCriteriaCreatesAlerts &&
616
+ input.breachingSeriesFingerprints.has(input.openSeriesFingerprint));
617
+ }
618
+ static wasCriteriaEvaluated(input) {
619
+ var _a;
620
+ const owningCriteriaId = ((_a = input.openAlert.createdCriteriaId) === null || _a === void 0 ? void 0 : _a.toString()) || undefined;
621
+ if (!owningCriteriaId) {
622
+ return true;
623
+ }
624
+ return (input.breachingSeriesFingerprintsByCriteriaId[owningCriteriaId] !==
625
+ undefined);
626
+ }
627
+ /**
628
+ * Alert auto-resolve lists templates by criteria; the presence of any
629
+ * template for a criteria means "this criteria's alerts are configured
630
+ * to auto-resolve".
631
+ */
632
+ static isAutoResolveConfiguredForAlert(input) {
633
+ var _a;
634
+ const createdCriteriaId = ((_a = input.openAlert.createdCriteriaId) === null || _a === void 0 ? void 0 : _a.toString()) || undefined;
635
+ if (!createdCriteriaId) {
636
+ return false;
637
+ }
638
+ const autoResolveTemplates = input.autoResolveCriteriaInstanceIdAlertIdsDictionary[createdCriteriaId];
639
+ return Boolean(autoResolveTemplates && autoResolveTemplates.length > 0);
640
+ }
535
641
  static shouldCloseAlert(input) {
536
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
642
+ var _a, _b, _c, _d, _e, _f;
537
643
  const openSeriesFingerprint = input.openAlert.seriesFingerprint || undefined;
538
644
  /*
539
645
  * Event-driven (incoming-request / webhook) per-key alerts must NEVER
@@ -546,53 +652,62 @@ export default class MonitorAlert {
546
652
  if (input.disableSeriesAbsenceResolution && openSeriesFingerprint) {
547
653
  return false;
548
654
  }
549
- /*
550
- * Per-series auto-resolve: when a breaching-series set is given and
551
- * this alert has a fingerprint, resolve whenever the fingerprint is
552
- * no longer in the set, independent of whether other series on the
553
- * same monitor are still breaching.
554
- */
555
- if (input.breachingSeriesFingerprints !== undefined &&
556
- openSeriesFingerprint) {
655
+ // Per-series mode: this evaluation knows which series are breaching.
656
+ if (input.breachingSeriesFingerprints !== undefined) {
557
657
  /*
558
- * The breaching set is the matched criteria's per-series matches.
559
- * On a recovery tick the matched criteria is the RECOVERY criteria
560
- * and its matches are healthy series, not breaches; counting them
561
- * would pin the open offline alert open forever. Membership only
562
- * counts as still-breaching when the matched criteria actually
563
- * creates alerts (createAlerts=false recovery criteria contributes
564
- * no breaches, letting the per-series alert auto-resolve).
658
+ * A whole-monitor alert (no fingerprint) on a monitor that now
659
+ * alerts per series. It was raised before the monitor was grouped,
660
+ * and nothing can ever dedupe against it again every alert from
661
+ * here on carries a fingerprint. Left alone it stays open forever
662
+ * while its replacements come and go. Resolve it, on the same
663
+ * auto-resolve terms as any other alert from its criteria.
565
664
  */
566
- const matchedCriteriaCreatesAlerts = ((_b = (_a = input.criteriaInstance) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.createAlerts) === true;
567
- const stillBreaching = matchedCriteriaCreatesAlerts &&
568
- input.breachingSeriesFingerprints.has(openSeriesFingerprint);
569
- if (stillBreaching) {
570
- return false;
665
+ if (!openSeriesFingerprint) {
666
+ if (input.disableSeriesAbsenceResolution) {
667
+ return false;
668
+ }
669
+ return MonitorAlert.isAutoResolveConfiguredForAlert({
670
+ openAlert: input.openAlert,
671
+ autoResolveCriteriaInstanceIdAlertIdsDictionary: input.autoResolveCriteriaInstanceIdAlertIdsDictionary,
672
+ });
571
673
  }
572
- if (!((_c = input.openAlert.createdCriteriaId) === null || _c === void 0 ? void 0 : _c.toString())) {
674
+ if (MonitorAlert.isSeriesStillBreaching({
675
+ openAlert: input.openAlert,
676
+ criteriaInstance: input.criteriaInstance,
677
+ openSeriesFingerprint,
678
+ breachingSeriesFingerprints: input.breachingSeriesFingerprints,
679
+ breachingSeriesFingerprintsByCriteriaId: input.breachingSeriesFingerprintsByCriteriaId,
680
+ })) {
573
681
  return false;
574
682
  }
575
- const autoResolveTemplates = input.autoResolveCriteriaInstanceIdAlertIdsDictionary[input.openAlert.createdCriteriaId.toString()];
576
683
  /*
577
- * Alert auto-resolve lists templates by criteria; presence of any
578
- * template for this criteria means "this criteria's alerts are
579
- * configured to auto-resolve", so resolve this series.
684
+ * The criteria that raised this alert was not evaluated on this
685
+ * tick at all (disabled, deleted, or the monitor stops at its
686
+ * first match). Absence of a breaching set for it is not evidence
687
+ * of recovery, so leave the alert alone.
580
688
  */
581
- if (autoResolveTemplates && autoResolveTemplates.length > 0) {
582
- return true;
689
+ if (input.breachingSeriesFingerprintsByCriteriaId &&
690
+ !MonitorAlert.wasCriteriaEvaluated({
691
+ openAlert: input.openAlert,
692
+ breachingSeriesFingerprintsByCriteriaId: input.breachingSeriesFingerprintsByCriteriaId,
693
+ })) {
694
+ return false;
583
695
  }
584
- return false;
696
+ return MonitorAlert.isAutoResolveConfiguredForAlert({
697
+ openAlert: input.openAlert,
698
+ autoResolveCriteriaInstanceIdAlertIdsDictionary: input.autoResolveCriteriaInstanceIdAlertIdsDictionary,
699
+ });
585
700
  }
586
- if (((_d = input.openAlert.createdCriteriaId) === null || _d === void 0 ? void 0 : _d.toString()) ===
587
- ((_g = (_f = (_e = input.criteriaInstance) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.id) === null || _g === void 0 ? void 0 : _g.toString())) {
701
+ if (((_a = input.openAlert.createdCriteriaId) === null || _a === void 0 ? void 0 : _a.toString()) ===
702
+ ((_d = (_c = (_b = input.criteriaInstance) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.id) === null || _d === void 0 ? void 0 : _d.toString())) {
588
703
  // same alert active. So, do not close.
589
704
  return false;
590
705
  }
591
706
  // If antoher criteria is active then, check if the alert id is present in the map.
592
- if (!((_h = input.openAlert.createdCriteriaId) === null || _h === void 0 ? void 0 : _h.toString())) {
707
+ if (!((_e = input.openAlert.createdCriteriaId) === null || _e === void 0 ? void 0 : _e.toString())) {
593
708
  return false;
594
709
  }
595
- if (input.autoResolveCriteriaInstanceIdAlertIdsDictionary[(_j = input.openAlert.createdCriteriaId) === null || _j === void 0 ? void 0 : _j.toString()]) {
710
+ if (input.autoResolveCriteriaInstanceIdAlertIdsDictionary[(_f = input.openAlert.createdCriteriaId) === null || _f === void 0 ? void 0 : _f.toString()]) {
596
711
  return true;
597
712
  }
598
713
  return false;