@oneuptime/common 12.0.32 → 12.0.33

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 (597) hide show
  1. package/Models/AnalyticsModels/Span.ts +14 -0
  2. package/Models/DatabaseModels/EnterpriseLicense.ts +56 -0
  3. package/Models/DatabaseModels/Index.ts +10 -0
  4. package/Models/DatabaseModels/Monitor.ts +76 -0
  5. package/Models/DatabaseModels/NetworkAlertPolicy.ts +690 -0
  6. package/Models/DatabaseModels/NetworkDevice.ts +176 -1
  7. package/Models/DatabaseModels/NetworkSite.ts +201 -2
  8. package/Models/DatabaseModels/NetworkSiteType.ts +102 -3
  9. package/Models/DatabaseModels/NetworkSnmpCredentialProfile.ts +841 -0
  10. package/Models/DatabaseModels/TelemetryException.ts +119 -0
  11. package/Models/DatabaseModels/UserNotificationEmailRollupBatch.ts +334 -0
  12. package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +370 -0
  13. package/Models/DatabaseModels/UserNotificationEmailRollupSetting.ts +282 -0
  14. package/Server/API/EnterpriseLicenseAPI.ts +391 -64
  15. package/Server/API/LlmProviderAPI.ts +137 -22
  16. package/Server/EnvironmentConfig.ts +14 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.ts +55 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.ts +31 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.ts +124 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.ts +132 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.ts +79 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.ts +191 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  24. package/Server/Infrastructure/QueueWorker.ts +38 -8
  25. package/Server/Middleware/BearerTokenAuthorization.ts +12 -0
  26. package/Server/Middleware/ProjectAuthorization.ts +11 -0
  27. package/Server/Middleware/SCIMAuthorization.ts +12 -0
  28. package/Server/Middleware/TelemetryIngest.ts +11 -0
  29. package/Server/Services/AIBillingService.ts +101 -27
  30. package/Server/Services/EnterpriseLicenseInstanceService.ts +197 -0
  31. package/Server/Services/EnterpriseLicenseService.ts +55 -0
  32. package/Server/Services/Index.ts +10 -0
  33. package/Server/Services/MonitorService.ts +143 -21
  34. package/Server/Services/MonitorStatusTimelineService.ts +150 -8
  35. package/Server/Services/MonitorTemplateService.ts +217 -1
  36. package/Server/Services/NetworkAlertPolicyEngineService.ts +2159 -0
  37. package/Server/Services/NetworkAlertPolicyService.ts +944 -0
  38. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +9 -10
  39. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +60 -15
  40. package/Server/Services/NetworkDeviceService.ts +1032 -73
  41. package/Server/Services/NetworkSiteService.ts +1502 -129
  42. package/Server/Services/NetworkSiteTypeService.ts +1216 -0
  43. package/Server/Services/NetworkSnmpCredentialProfileService.ts +238 -0
  44. package/Server/Services/NotificationService.ts +118 -28
  45. package/Server/Services/ProjectService.ts +105 -48
  46. package/Server/Services/StatusPagePrivateUserService.ts +103 -3
  47. package/Server/Services/UserNotificationEmailRollupBatchService.ts +78 -0
  48. package/Server/Services/UserNotificationEmailRollupItemService.ts +79 -0
  49. package/Server/Services/UserNotificationEmailRollupSettingService.ts +113 -0
  50. package/Server/Services/UserNotificationSettingService.ts +62 -25
  51. package/Server/Services/UserService.ts +95 -0
  52. package/Server/Types/Database/QueryHelper.ts +2 -2
  53. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +14 -3
  54. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +10 -0
  55. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +10 -0
  56. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +62 -1
  57. package/Server/Utils/AI/Toolbox/AlertTools.ts +15 -1
  58. package/Server/Utils/Billing/BillingFailureNoticeThrottle.ts +80 -0
  59. package/Server/Utils/DataSource/HttpFetch.ts +9 -2
  60. package/Server/Utils/EmailRollup/EmailRollupConstants.ts +98 -0
  61. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +872 -0
  62. package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +781 -0
  63. package/Server/Utils/EmailRollup/EmailRollupWriter.ts +368 -0
  64. package/Server/Utils/LLM/LLMService.ts +78 -0
  65. package/Server/Utils/LogRedaction.ts +8 -0
  66. package/Server/Utils/Logger.ts +79 -1
  67. package/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.ts +190 -0
  68. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +9 -2
  69. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +61 -1
  70. package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +14 -0
  71. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +49 -0
  72. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +255 -4
  73. package/Server/Utils/Monitor/MonitorMetricUtil.ts +41 -0
  74. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +43 -0
  75. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +499 -19
  76. package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +66 -10
  77. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +238 -44
  78. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +146 -39
  79. package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +31 -18
  80. package/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.ts +213 -0
  81. package/Server/Utils/OutboundUserAgent.ts +152 -0
  82. package/Server/Utils/StartServer.ts +51 -19
  83. package/Server/Utils/Telemetry/CaptureSpan.ts +32 -8
  84. package/Server/Utils/Telemetry/ErrorClassResolver.ts +120 -0
  85. package/Server/Utils/Telemetry/SpanUtil.ts +33 -0
  86. package/Server/Utils/Telemetry.ts +198 -51
  87. package/Server/Views/Partials/SensitiveUrlToken.ejs +140 -0
  88. package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +134 -33
  89. package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +279 -0
  90. package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +517 -0
  91. package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +26 -0
  92. package/Tests/App/Dashboard/DeviceStatusHero.test.tsx +588 -0
  93. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +18 -9
  94. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +632 -0
  95. package/Tests/App/Dashboard/MonitorRecommendationCreateProgress.test.tsx +682 -0
  96. package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +4 -2
  97. package/Tests/App/Dashboard/NetworkDeviceCreateFormMonitorBinding.test.tsx +676 -0
  98. package/Tests/App/Dashboard/NetworkDeviceCreateFormPingMonitor.test.tsx +791 -0
  99. package/Tests/App/Dashboard/NetworkDeviceCreateFormProbeAndSnmp.test.tsx +833 -0
  100. package/Tests/App/Dashboard/NetworkDeviceCriteriaFilter.test.ts +161 -0
  101. package/Tests/App/Dashboard/NetworkDeviceSettingsMonitoringSection.test.tsx +458 -0
  102. package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +41 -5
  103. package/Tests/App/Dashboard/PingMonitorProvisioning.test.ts +368 -0
  104. package/Tests/App/Dashboard/RecommendationCard.test.tsx +796 -0
  105. package/Tests/App/Dashboard/RecommendationToolbar.test.tsx +519 -0
  106. package/Tests/App/Dashboard/RecommendationsList.test.tsx +661 -0
  107. package/Tests/App/Dashboard/UseBulkCreatePingMonitors.test.tsx +899 -0
  108. package/Tests/App/Dashboard/UseBulkSnmpCredentialProfileActions.test.tsx +732 -0
  109. package/Tests/App/SensitiveUrlTokenBootstrap.test.ts +256 -0
  110. package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +11 -1
  111. package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +9 -4
  112. package/Tests/Models/NetworkSiteHierarchy.test.ts +41 -4
  113. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +951 -7
  114. package/Tests/Server/API/LlmProviderConnectionTest.test.ts +522 -0
  115. package/Tests/Server/Infrastructure/Postgres/NetworkSnmpCredentialProfilesAndAlertPoliciesMigration.test.ts +854 -0
  116. package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +18 -0
  117. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +535 -0
  118. package/Tests/Server/Services/AIChatPrivacyPin.test.ts +560 -0
  119. package/Tests/Server/Services/BillingRechargeOwnerEmailGuards.test.ts +783 -0
  120. package/Tests/Server/Services/EnterpriseLicenseInstanceServiceDeletionUsage.test.ts +707 -0
  121. package/Tests/Server/Services/EnterpriseLicenseServiceUsageAggregationLock.test.ts +329 -0
  122. package/Tests/Server/Services/MonitorServiceDeleteNetworkDeviceCleanup.test.ts +294 -0
  123. package/Tests/Server/Services/MonitorStatusBridgeProbePath.test.ts +802 -0
  124. package/Tests/Server/Services/MonitorStatusTimelineService.test.ts +72 -2
  125. package/Tests/Server/Services/NetworkAlertPolicyEngineHooks.test.ts +752 -0
  126. package/Tests/Server/Services/NetworkAlertPolicyEngineService.test.ts +1849 -0
  127. package/Tests/Server/Services/NetworkAlertPolicyModel.test.ts +1793 -0
  128. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +47 -4
  129. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +97 -12
  130. package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +148 -3
  131. package/Tests/Server/Services/NetworkDeviceMonitorBindingUpdateGuard.test.ts +514 -0
  132. package/Tests/Server/Services/NetworkDeviceMonitorStatusStamp.test.ts +447 -58
  133. package/Tests/Server/Services/NetworkDeviceMonitoringMethodTransition.test.ts +739 -0
  134. package/Tests/Server/Services/NetworkDevicePollingTenancy.test.ts +501 -0
  135. package/Tests/Server/Services/NetworkDeviceSiteDefaultProbe.test.ts +432 -0
  136. package/Tests/Server/Services/NetworkSiteMonitoringDefaults.test.ts +498 -0
  137. package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +337 -55
  138. package/Tests/Server/Services/NetworkSiteService.test.ts +1868 -131
  139. package/Tests/Server/Services/NetworkSiteTypeService.test.ts +1109 -0
  140. package/Tests/Server/Services/NetworkSnmpCredentialProfileModel.test.ts +926 -0
  141. package/Tests/Server/Services/NetworkSnmpCredentialProfileService.test.ts +796 -0
  142. package/Tests/Server/Services/ProjectServiceNetworkSiteTypeDefaults.test.ts +214 -0
  143. package/Tests/Server/Services/StatusPagePrivateUserEmailChangePasswordResetExpiry.test.ts +269 -0
  144. package/Tests/Server/Services/UserEmailChangePasswordResetExpiry.test.ts +472 -0
  145. package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +569 -0
  146. package/Tests/Server/Services/UserNotificationEmailRollupSettingModel.test.ts +314 -0
  147. package/Tests/Server/Services/UserNotificationEmailRollupSettingService.test.ts +409 -0
  148. package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +856 -0
  149. package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +102 -1
  150. package/Tests/Server/Types/Database/Permissions/DashboardAccessPermission.test.ts +321 -0
  151. package/Tests/Server/Types/Database/QueryHelperOperators.test.ts +17 -0
  152. package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +124 -0
  153. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +208 -0
  154. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +235 -0
  155. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +253 -0
  156. package/Tests/Server/Utils/Captcha.test.ts +422 -0
  157. package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +96 -2
  158. package/Tests/Server/Utils/Database/MigrationFailureLog.test.ts +466 -0
  159. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerBehaviour.test.ts +1096 -0
  160. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerClaim.test.ts +466 -0
  161. package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +1428 -0
  162. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +752 -0
  163. package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +864 -0
  164. package/Tests/Server/Utils/LoggerFaultDemotion.test.ts +346 -0
  165. package/Tests/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.test.ts +633 -0
  166. package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +196 -0
  167. package/Tests/Server/Utils/Monitor/DatabaseMetricWrite.test.ts +367 -0
  168. package/Tests/Server/Utils/Monitor/MonitorCriteriaObservationBuilderUnits.test.ts +100 -0
  169. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +5 -0
  170. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +512 -31
  171. package/Tests/Server/Utils/Monitor/NetworkDeviceMetricUtil.test.ts +252 -0
  172. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +479 -42
  173. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +351 -5
  174. package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +136 -12
  175. package/Tests/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.test.ts +306 -0
  176. package/Tests/Server/Utils/OutboundUserAgent.test.ts +266 -0
  177. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClientUserAgent.test.ts +141 -0
  178. package/Tests/Server/Utils/Telemetry/ErrorClassResolver.test.ts +298 -0
  179. package/Tests/Server/Utils/Telemetry.test.ts +456 -66
  180. package/Tests/Types/Monitor/DatabaseMetricCatalog.test.ts +388 -0
  181. package/Tests/Types/Monitor/MonitorStepDatabaseMonitor.test.ts +243 -0
  182. package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
  183. package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
  184. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +16 -7
  185. package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +60 -0
  186. package/Tests/Types/NetworkDevice/NetworkAlertPolicyScope.test.ts +655 -0
  187. package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +115 -26
  188. package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +39 -0
  189. package/Tests/Types/NotificationSetting/NotificationEmailRollupPolicy.test.ts +299 -0
  190. package/Tests/Types/Telemetry/ErrorClass.test.ts +483 -0
  191. package/Tests/UI/Components/BasicRadioButtons.test.tsx +336 -0
  192. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +15 -0
  193. package/Tests/UI/Components/ProgressBar.test.tsx +38 -2
  194. package/Tests/UI/Components/SideMenuItem.test.tsx +226 -4
  195. package/Tests/UI/Components/SideMenuSection.test.tsx +310 -0
  196. package/Tests/UI/Components/SideOverSubmitState.test.tsx +335 -0
  197. package/Tests/UI/Utils/PageScrollLock.test.tsx +377 -0
  198. package/Tests/UI/Utils/PermissionGate.test.ts +78 -0
  199. package/Tests/UI/Utils/SensitiveUrlToken.test.ts +140 -0
  200. package/Tests/Utils/EnterpriseLicenseSeats.test.ts +69 -0
  201. package/Tests/Utils/EnterpriseLicenseSync.test.ts +7 -1
  202. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +433 -2
  203. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +280 -1
  204. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
  205. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +38 -0
  206. package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +284 -23
  207. package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +177 -0
  208. package/Tests/Utils/NetworkDevice/MonitoringMethodThreadedClassifiers.test.ts +992 -0
  209. package/Tests/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.test.ts +427 -0
  210. package/Tests/Utils/NetworkDevice/ReachabilityStampConsistency.test.ts +185 -0
  211. package/Tests/Utils/NetworkDevice/SnmpCredentialUtil.test.ts +268 -0
  212. package/Tests/Utils/NetworkDiscovery/AutoImportRuleMatcher.test.ts +55 -5
  213. package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +98 -21
  214. package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +98 -20
  215. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +8 -7
  216. package/Tests/Utils/NetworkDiscovery/PingMonitorBuilderForAddress.test.ts +274 -0
  217. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +230 -51
  218. package/Tests/Utils/NetworkSite/TypeHierarchyUtil.test.ts +209 -0
  219. package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +145 -0
  220. package/Types/AI/ExceptionAIClassification.ts +10 -24
  221. package/Types/Email/EmailTemplateType.ts +2 -0
  222. package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +5 -0
  223. package/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.ts +13 -0
  224. package/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.ts +6 -0
  225. package/Types/Exception/ApiException.ts +10 -0
  226. package/Types/Exception/BadDataException.ts +11 -0
  227. package/Types/Exception/BadRequestException.ts +11 -0
  228. package/Types/Exception/Exception.ts +65 -0
  229. package/Types/Exception/ForbiddenException.ts +10 -0
  230. package/Types/Exception/NotAuthenticatedException.ts +10 -0
  231. package/Types/Exception/NotAuthorizedException.ts +10 -0
  232. package/Types/Exception/NotFoundException.ts +11 -0
  233. package/Types/Exception/PayloadTooLargeException.ts +11 -0
  234. package/Types/Exception/PaymentRequiredException.ts +10 -0
  235. package/Types/Exception/ServiceUnavailableException.ts +10 -0
  236. package/Types/Exception/SsoAuthorizationException.ts +10 -0
  237. package/Types/Exception/TenantNotFoundException.ts +11 -0
  238. package/Types/Exception/TimeoutException.ts +10 -0
  239. package/Types/Exception/TooManyRequestsException.ts +10 -0
  240. package/Types/Exception/UnableToReachServer.ts +10 -0
  241. package/Types/Exception/WebsiteRequestException.ts +10 -0
  242. package/Types/Monitor/CriteriaFilter.ts +60 -2
  243. package/Types/Monitor/DatabaseMetricCatalog.ts +693 -0
  244. package/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.ts +83 -0
  245. package/Types/Monitor/MonitorCriteriaInstance.ts +76 -0
  246. package/Types/Monitor/MonitorMetricType.ts +71 -0
  247. package/Types/Monitor/MonitorStep.ts +76 -0
  248. package/Types/Monitor/MonitorStepDatabaseMonitor.ts +171 -0
  249. package/Types/Monitor/MonitorStepSqlMonitor.ts +2 -20
  250. package/Types/Monitor/MonitorType.ts +47 -1
  251. package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +22 -1
  252. package/Types/Monitor/SqlConnectionConfig.ts +31 -0
  253. package/Types/NetworkDevice/NetworkAlertPolicyScope.ts +343 -0
  254. package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +42 -22
  255. package/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.ts +30 -0
  256. package/Types/NotificationSetting/NotificationEmailRollupCategory.ts +255 -0
  257. package/Types/NotificationSetting/NotificationEmailRollupPolicy.ts +104 -0
  258. package/Types/Permission.ts +90 -0
  259. package/Types/Probe/ProbeMonitorResponse.ts +16 -0
  260. package/Types/Telemetry/ErrorClass.ts +274 -0
  261. package/Types/Telemetry/UnitOfWork.ts +59 -0
  262. package/UI/Components/CommandPalette/CommandPalette.tsx +2 -8
  263. package/UI/Components/EditionLabel/EditionLabel.tsx +4 -0
  264. package/UI/Components/Modal/Modal.tsx +2 -8
  265. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +44 -0
  266. package/UI/Components/ProgressBar/ProgressBar.tsx +12 -1
  267. package/UI/Components/RadioButtons/BasicRadioButtons.tsx +37 -7
  268. package/UI/Components/SideMenu/SideMenu.tsx +123 -5
  269. package/UI/Components/SideMenu/SideMenuItem.tsx +76 -84
  270. package/UI/Components/SideMenu/SideMenuSection.tsx +55 -23
  271. package/UI/Components/SideOver/SideOver.tsx +21 -20
  272. package/UI/Utils/PageScrollLock.ts +79 -3
  273. package/UI/Utils/PermissionGate.ts +61 -0
  274. package/UI/Utils/SensitiveUrlToken.ts +112 -0
  275. package/UI/Utils/TestLLMProvider.ts +11 -0
  276. package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +16 -0
  277. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +191 -11
  278. package/Utils/Monitor/MonitorMetricType.ts +153 -1
  279. package/Utils/Monitor/NetworkTopologyUtil.ts +23 -3
  280. package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +65 -14
  281. package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +43 -14
  282. package/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.ts +247 -0
  283. package/Utils/NetworkDevice/SnmpCredentialUtil.ts +68 -0
  284. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +15 -7
  285. package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +52 -17
  286. package/Utils/NetworkDiscovery/DiscoveryImportEligibility.ts +55 -23
  287. package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +115 -13
  288. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +66 -20
  289. package/Utils/NetworkSite/TypeHierarchyUtil.ts +313 -0
  290. package/build/dist/Models/AnalyticsModels/Span.js +14 -0
  291. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  292. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +59 -0
  293. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
  294. package/build/dist/Models/DatabaseModels/Index.js +10 -0
  295. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  296. package/build/dist/Models/DatabaseModels/Monitor.js +75 -0
  297. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  298. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js +713 -0
  299. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js.map +1 -0
  300. package/build/dist/Models/DatabaseModels/NetworkDevice.js +180 -1
  301. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  302. package/build/dist/Models/DatabaseModels/NetworkSite.js +200 -2
  303. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
  304. package/build/dist/Models/DatabaseModels/NetworkSiteType.js +102 -3
  305. package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -1
  306. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js +878 -0
  307. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js.map +1 -0
  308. package/build/dist/Models/DatabaseModels/TelemetryException.js +123 -0
  309. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  310. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js +363 -0
  311. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js.map +1 -0
  312. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +402 -0
  313. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -0
  314. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js +296 -0
  315. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js.map +1 -0
  316. package/build/dist/Server/API/EnterpriseLicenseAPI.js +273 -60
  317. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  318. package/build/dist/Server/API/LlmProviderAPI.js +108 -13
  319. package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
  320. package/build/dist/Server/EnvironmentConfig.js +12 -0
  321. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  322. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js +24 -0
  323. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js.map +1 -0
  324. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js +16 -0
  325. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js.map +1 -0
  326. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js +111 -0
  327. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js.map +1 -0
  328. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js +77 -0
  329. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js.map +1 -0
  330. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js +50 -0
  331. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js.map +1 -0
  332. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js +83 -0
  333. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js.map +1 -0
  334. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  335. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  336. package/build/dist/Server/Infrastructure/QueueWorker.js +33 -5
  337. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  338. package/build/dist/Server/Middleware/BearerTokenAuthorization.js +12 -0
  339. package/build/dist/Server/Middleware/BearerTokenAuthorization.js.map +1 -1
  340. package/build/dist/Server/Middleware/ProjectAuthorization.js +11 -0
  341. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  342. package/build/dist/Server/Middleware/SCIMAuthorization.js +12 -0
  343. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
  344. package/build/dist/Server/Middleware/TelemetryIngest.js +11 -0
  345. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  346. package/build/dist/Server/Services/AIBillingService.js +70 -16
  347. package/build/dist/Server/Services/AIBillingService.js.map +1 -1
  348. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +167 -0
  349. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -1
  350. package/build/dist/Server/Services/EnterpriseLicenseService.js +39 -0
  351. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  352. package/build/dist/Server/Services/Index.js +10 -0
  353. package/build/dist/Server/Services/Index.js.map +1 -1
  354. package/build/dist/Server/Services/MonitorService.js +119 -21
  355. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  356. package/build/dist/Server/Services/MonitorStatusTimelineService.js +127 -8
  357. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  358. package/build/dist/Server/Services/MonitorTemplateService.js +162 -0
  359. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  360. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js +1683 -0
  361. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js.map +1 -0
  362. package/build/dist/Server/Services/NetworkAlertPolicyService.js +732 -0
  363. package/build/dist/Server/Services/NetworkAlertPolicyService.js.map +1 -0
  364. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +10 -9
  365. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  366. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +54 -11
  367. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  368. package/build/dist/Server/Services/NetworkDeviceService.js +841 -70
  369. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  370. package/build/dist/Server/Services/NetworkSiteService.js +1145 -107
  371. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  372. package/build/dist/Server/Services/NetworkSiteTypeService.js +863 -0
  373. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -1
  374. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js +217 -0
  375. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js.map +1 -0
  376. package/build/dist/Server/Services/NotificationService.js +80 -17
  377. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  378. package/build/dist/Server/Services/ProjectService.js +66 -30
  379. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  380. package/build/dist/Server/Services/StatusPagePrivateUserService.js +92 -2
  381. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  382. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js +76 -0
  383. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js.map +1 -0
  384. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js +77 -0
  385. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js.map +1 -0
  386. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js +111 -0
  387. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js.map +1 -0
  388. package/build/dist/Server/Services/UserNotificationSettingService.js +46 -20
  389. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  390. package/build/dist/Server/Services/UserService.js +90 -0
  391. package/build/dist/Server/Services/UserService.js.map +1 -1
  392. package/build/dist/Server/Types/Database/QueryHelper.js +1 -1
  393. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  394. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +14 -3
  395. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  396. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +10 -0
  397. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
  398. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +10 -0
  399. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
  400. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +54 -1
  401. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
  402. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +18 -4
  403. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
  404. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js +59 -0
  405. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js.map +1 -0
  406. package/build/dist/Server/Utils/DataSource/HttpFetch.js +2 -1
  407. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  408. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js +91 -0
  409. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js.map +1 -0
  410. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +691 -0
  411. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -0
  412. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +497 -0
  413. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -0
  414. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +257 -0
  415. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -0
  416. package/build/dist/Server/Utils/LLM/LLMService.js +64 -1
  417. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  418. package/build/dist/Server/Utils/LogRedaction.js +8 -0
  419. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  420. package/build/dist/Server/Utils/Logger.js +63 -1
  421. package/build/dist/Server/Utils/Logger.js.map +1 -1
  422. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js +141 -0
  423. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js.map +1 -0
  424. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
  425. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  426. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +51 -1
  427. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  428. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +7 -0
  429. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
  430. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +37 -0
  431. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +158 -6
  433. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
  435. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +32 -0
  437. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +330 -21
  439. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  440. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +55 -10
  441. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
  442. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +178 -49
  443. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
  444. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +119 -29
  445. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  446. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +30 -17
  447. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -1
  448. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js +158 -0
  449. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js.map +1 -0
  450. package/build/dist/Server/Utils/OutboundUserAgent.js +123 -0
  451. package/build/dist/Server/Utils/OutboundUserAgent.js.map +1 -0
  452. package/build/dist/Server/Utils/StartServer.js +38 -14
  453. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  454. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +28 -8
  455. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
  456. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js +95 -0
  457. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js.map +1 -0
  458. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +29 -0
  459. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
  460. package/build/dist/Server/Utils/Telemetry.js +162 -46
  461. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  462. package/build/dist/Types/AI/ExceptionAIClassification.js +10 -24
  463. package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -1
  464. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  465. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  466. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js +2 -0
  467. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js.map +1 -0
  468. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js +7 -0
  469. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js.map +1 -0
  470. package/build/dist/Types/Exception/ApiException.js +9 -0
  471. package/build/dist/Types/Exception/ApiException.js.map +1 -1
  472. package/build/dist/Types/Exception/BadDataException.js +10 -0
  473. package/build/dist/Types/Exception/BadDataException.js.map +1 -1
  474. package/build/dist/Types/Exception/BadRequestException.js +10 -0
  475. package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
  476. package/build/dist/Types/Exception/Exception.js +56 -0
  477. package/build/dist/Types/Exception/Exception.js.map +1 -1
  478. package/build/dist/Types/Exception/ForbiddenException.js +9 -0
  479. package/build/dist/Types/Exception/ForbiddenException.js.map +1 -1
  480. package/build/dist/Types/Exception/NotAuthenticatedException.js +9 -0
  481. package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
  482. package/build/dist/Types/Exception/NotAuthorizedException.js +9 -0
  483. package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
  484. package/build/dist/Types/Exception/NotFoundException.js +10 -0
  485. package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
  486. package/build/dist/Types/Exception/PayloadTooLargeException.js +10 -0
  487. package/build/dist/Types/Exception/PayloadTooLargeException.js.map +1 -1
  488. package/build/dist/Types/Exception/PaymentRequiredException.js +9 -0
  489. package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
  490. package/build/dist/Types/Exception/ServiceUnavailableException.js +9 -0
  491. package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -1
  492. package/build/dist/Types/Exception/SsoAuthorizationException.js +9 -0
  493. package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
  494. package/build/dist/Types/Exception/TenantNotFoundException.js +10 -0
  495. package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
  496. package/build/dist/Types/Exception/TimeoutException.js +9 -0
  497. package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
  498. package/build/dist/Types/Exception/TooManyRequestsException.js +9 -0
  499. package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -1
  500. package/build/dist/Types/Exception/UnableToReachServer.js +9 -0
  501. package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
  502. package/build/dist/Types/Exception/WebsiteRequestException.js +9 -0
  503. package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
  504. package/build/dist/Types/Monitor/CriteriaFilter.js +45 -2
  505. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  506. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js +594 -0
  507. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js.map +1 -0
  508. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js +21 -0
  509. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js.map +1 -0
  510. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +70 -0
  511. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  512. package/build/dist/Types/Monitor/MonitorMetricType.js +61 -0
  513. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  514. package/build/dist/Types/Monitor/MonitorStep.js +54 -0
  515. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  516. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js +122 -0
  517. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js.map +1 -0
  518. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  519. package/build/dist/Types/Monitor/MonitorType.js +45 -1
  520. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  521. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +21 -1
  522. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
  523. package/build/dist/Types/Monitor/SqlConnectionConfig.js +2 -0
  524. package/build/dist/Types/Monitor/SqlConnectionConfig.js.map +1 -0
  525. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js +172 -0
  526. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js.map +1 -0
  527. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +40 -22
  528. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -1
  529. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js +26 -0
  530. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js.map +1 -0
  531. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js +186 -0
  532. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js.map +1 -0
  533. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js +87 -0
  534. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js.map +1 -0
  535. package/build/dist/Types/Permission.js +80 -0
  536. package/build/dist/Types/Permission.js.map +1 -1
  537. package/build/dist/Types/Telemetry/ErrorClass.js +216 -0
  538. package/build/dist/Types/Telemetry/ErrorClass.js.map +1 -0
  539. package/build/dist/Types/Telemetry/UnitOfWork.js +59 -0
  540. package/build/dist/Types/Telemetry/UnitOfWork.js.map +1 -0
  541. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +2 -7
  542. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  543. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +3 -0
  544. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  545. package/build/dist/UI/Components/Modal/Modal.js +2 -7
  546. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  547. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +39 -0
  548. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  549. package/build/dist/UI/Components/ProgressBar/ProgressBar.js +12 -1
  550. package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
  551. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +6 -6
  552. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
  553. package/build/dist/UI/Components/SideMenu/SideMenu.js +67 -5
  554. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  555. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +49 -53
  556. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  557. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +25 -7
  558. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  559. package/build/dist/UI/Components/SideOver/SideOver.js +5 -20
  560. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  561. package/build/dist/UI/Utils/PageScrollLock.js +31 -3
  562. package/build/dist/UI/Utils/PageScrollLock.js.map +1 -1
  563. package/build/dist/UI/Utils/PermissionGate.js +42 -1
  564. package/build/dist/UI/Utils/PermissionGate.js.map +1 -1
  565. package/build/dist/UI/Utils/SensitiveUrlToken.js +97 -0
  566. package/build/dist/UI/Utils/SensitiveUrlToken.js.map +1 -0
  567. package/build/dist/UI/Utils/TestLLMProvider.js +4 -5
  568. package/build/dist/UI/Utils/TestLLMProvider.js.map +1 -1
  569. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +15 -0
  570. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -1
  571. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +111 -9
  572. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  573. package/build/dist/Utils/Monitor/MonitorMetricType.js +109 -1
  574. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  575. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +8 -3
  576. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  577. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +27 -7
  578. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
  579. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +7 -5
  580. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -1
  581. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js +180 -0
  582. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js.map +1 -0
  583. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js +12 -0
  584. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js.map +1 -0
  585. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js +15 -5
  586. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  587. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +44 -15
  588. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
  589. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js +52 -23
  590. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js.map +1 -1
  591. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +85 -13
  592. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -1
  593. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +30 -15
  594. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  595. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js +191 -0
  596. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js.map +1 -0
  597. package/package.json +2 -2
@@ -0,0 +1,713 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import MonitorTemplate from "./MonitorTemplate";
11
+ import Project from "./Project";
12
+ import User from "./User";
13
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
14
+ import Route from "../../Types/API/Route";
15
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
16
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
17
+ import ColumnLength from "../../Types/Database/ColumnLength";
18
+ import ColumnType from "../../Types/Database/ColumnType";
19
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
20
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
21
+ import TableColumn from "../../Types/Database/TableColumn";
22
+ import TableColumnType from "../../Types/Database/TableColumnType";
23
+ import TableMetadata from "../../Types/Database/TableMetadata";
24
+ import TenantColumn from "../../Types/Database/TenantColumn";
25
+ import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
26
+ import IconProp from "../../Types/Icon/IconProp";
27
+ import ObjectID from "../../Types/ObjectID";
28
+ import Permission from "../../Types/Permission";
29
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
30
+ /*
31
+ * "Alert on a SET of devices."
32
+ *
33
+ * Every Network Device monitor watches exactly one device, so before this
34
+ * table an operator with two hundred warehouse switches who wanted
35
+ * "unreachable -> incident" on all of them created two hundred monitors by
36
+ * hand — and a two-hundred-and-first when the next switch was discovered.
37
+ * A policy says it once: WHICH devices (the scope: sites, roles, labels) and
38
+ * WHAT to alert on (a Network Device monitor template), and the engine keeps
39
+ * one monitor per matching device provisioned from that template as devices
40
+ * are added, re-sited, re-labelled and removed.
41
+ *
42
+ * The row is the intent; the monitors are the consequence. Nothing about a
43
+ * monitor is stored here — the engine (NetworkAlertPolicyEngineService)
44
+ * finds a policy's monitors by their provenance and owns their lifecycle.
45
+ *
46
+ * WHO MAY WRITE ONE. Creating a policy provisions monitors, and monitors are
47
+ * what the plan is billed on: an unscoped policy in a large estate is
48
+ * thousands of monitors from a single form submit. Create, update and delete
49
+ * are therefore held to ProjectOwner / ProjectAdmin and the policy's own
50
+ * granular permissions — no ProjectMember, no Viewer, and none of the
51
+ * Settings* roles that can edit a device role or a site type, because those
52
+ * are labels and this is spend. A member who needs to run policies is
53
+ * handed CreateNetworkAlertPolicy explicitly. Reading stays open to every
54
+ * project role: the policy list is how anybody finds out why a monitor
55
+ * exists.
56
+ *
57
+ * ONE POLICY PER TEMPLATE PER PROJECT, enforced by the partial unique index
58
+ * below. A provisioned monitor's provenance is (device, template) — the
59
+ * unique index Monitor itself carries — so that pair is the only key the
60
+ * engine has for "is this monitor mine?". A template used by two policies
61
+ * would make ownership of every (device, template) monitor ambiguous: both
62
+ * would claim it, the second to provision would fail on Monitor's index
63
+ * forever, and neither could safely tear it down when a device left its
64
+ * scope. Partial, so soft-deleted policies release their template and a
65
+ * template-less policy (after SET NULL) never collides with another.
66
+ */
67
+ let NetworkAlertPolicy = class NetworkAlertPolicy extends BaseModel {
68
+ constructor() {
69
+ super(...arguments);
70
+ this.project = undefined;
71
+ this.projectId = undefined;
72
+ this.name = undefined;
73
+ this.description = undefined;
74
+ this.isEnabled = undefined;
75
+ this.monitorTemplate = undefined;
76
+ this.monitorTemplateId = undefined;
77
+ this.scope = undefined;
78
+ /*
79
+ * THE ENGINE'S FOUR COLUMNS. Written only by NetworkAlertPolicyEngineService,
80
+ * as root, after each reconciliation pass; the API can read them and can
81
+ * never set them (create and update are empty, the
82
+ * Monitor.autoProvisionedNetworkDeviceId pairing). They are what the
83
+ * settings table shows against a policy so an operator can tell a policy
84
+ * that is quietly working from one that has been failing since Tuesday,
85
+ * without opening the monitor list to count.
86
+ */
87
+ this.lastSyncAt = undefined;
88
+ this.lastSyncError = undefined;
89
+ this.coveredDeviceCount = undefined;
90
+ this.templateSyncedAt = undefined;
91
+ this.createdByUser = undefined;
92
+ this.createdByUserId = undefined;
93
+ this.deletedByUser = undefined;
94
+ this.deletedByUserId = undefined;
95
+ }
96
+ };
97
+ __decorate([
98
+ ColumnAccessControl({
99
+ create: [
100
+ Permission.ProjectOwner,
101
+ Permission.ProjectAdmin,
102
+ Permission.CreateNetworkAlertPolicy,
103
+ ],
104
+ read: [
105
+ Permission.ProjectOwner,
106
+ Permission.ProjectAdmin,
107
+ Permission.ProjectMember,
108
+ Permission.Viewer,
109
+ Permission.ReadNetworkAlertPolicy,
110
+ ],
111
+ update: [],
112
+ }),
113
+ TableColumn({
114
+ manyToOneRelationColumn: "projectId",
115
+ type: TableColumnType.Entity,
116
+ modelType: Project,
117
+ title: "Project",
118
+ description: "Relation to Project Resource in which this object belongs",
119
+ }),
120
+ ManyToOne(() => {
121
+ return Project;
122
+ }, {
123
+ eager: false,
124
+ nullable: true,
125
+ onDelete: "CASCADE",
126
+ orphanedRowAction: "nullify",
127
+ }),
128
+ JoinColumn({ name: "projectId" }),
129
+ __metadata("design:type", Project)
130
+ ], NetworkAlertPolicy.prototype, "project", void 0);
131
+ __decorate([
132
+ ColumnAccessControl({
133
+ create: [
134
+ Permission.ProjectOwner,
135
+ Permission.ProjectAdmin,
136
+ Permission.CreateNetworkAlertPolicy,
137
+ ],
138
+ read: [
139
+ Permission.ProjectOwner,
140
+ Permission.ProjectAdmin,
141
+ Permission.ProjectMember,
142
+ Permission.Viewer,
143
+ Permission.ReadNetworkAlertPolicy,
144
+ ],
145
+ update: [],
146
+ }),
147
+ Index(),
148
+ TableColumn({
149
+ type: TableColumnType.ObjectID,
150
+ required: true,
151
+ canReadOnRelationQuery: true,
152
+ title: "Project ID",
153
+ description: "ID of your OneUptime Project in which this object belongs",
154
+ }),
155
+ Column({
156
+ type: ColumnType.ObjectID,
157
+ nullable: false,
158
+ transformer: ObjectID.getDatabaseTransformer(),
159
+ }),
160
+ __metadata("design:type", ObjectID)
161
+ ], NetworkAlertPolicy.prototype, "projectId", void 0);
162
+ __decorate([
163
+ ColumnAccessControl({
164
+ create: [
165
+ Permission.ProjectOwner,
166
+ Permission.ProjectAdmin,
167
+ Permission.CreateNetworkAlertPolicy,
168
+ ],
169
+ read: [
170
+ Permission.ProjectOwner,
171
+ Permission.ProjectAdmin,
172
+ Permission.ProjectMember,
173
+ Permission.Viewer,
174
+ Permission.ReadNetworkAlertPolicy,
175
+ ],
176
+ update: [
177
+ Permission.ProjectOwner,
178
+ Permission.ProjectAdmin,
179
+ Permission.EditNetworkAlertPolicy,
180
+ ],
181
+ }),
182
+ TableColumn({
183
+ required: true,
184
+ type: TableColumnType.ShortText,
185
+ canReadOnRelationQuery: true,
186
+ title: "Name",
187
+ description: "Any friendly name of this object",
188
+ example: "Warehouse switches - reachability",
189
+ }),
190
+ Column({
191
+ nullable: false,
192
+ type: ColumnType.ShortText,
193
+ length: ColumnLength.ShortText,
194
+ }),
195
+ UniqueColumnBy("projectId"),
196
+ __metadata("design:type", String)
197
+ ], NetworkAlertPolicy.prototype, "name", void 0);
198
+ __decorate([
199
+ ColumnAccessControl({
200
+ create: [
201
+ Permission.ProjectOwner,
202
+ Permission.ProjectAdmin,
203
+ Permission.CreateNetworkAlertPolicy,
204
+ ],
205
+ read: [
206
+ Permission.ProjectOwner,
207
+ Permission.ProjectAdmin,
208
+ Permission.ProjectMember,
209
+ Permission.Viewer,
210
+ Permission.ReadNetworkAlertPolicy,
211
+ ],
212
+ update: [
213
+ Permission.ProjectOwner,
214
+ Permission.ProjectAdmin,
215
+ Permission.EditNetworkAlertPolicy,
216
+ ],
217
+ }),
218
+ TableColumn({
219
+ required: false,
220
+ type: TableColumnType.LongText,
221
+ title: "Description",
222
+ description: "Friendly description that will help you remember",
223
+ example: "Every switch in a warehouse site raises an incident when unreachable.",
224
+ }),
225
+ Column({
226
+ nullable: true,
227
+ type: ColumnType.LongText,
228
+ length: ColumnLength.LongText,
229
+ }),
230
+ __metadata("design:type", String)
231
+ ], NetworkAlertPolicy.prototype, "description", void 0);
232
+ __decorate([
233
+ ColumnAccessControl({
234
+ create: [
235
+ Permission.ProjectOwner,
236
+ Permission.ProjectAdmin,
237
+ Permission.CreateNetworkAlertPolicy,
238
+ ],
239
+ read: [
240
+ Permission.ProjectOwner,
241
+ Permission.ProjectAdmin,
242
+ Permission.ProjectMember,
243
+ Permission.Viewer,
244
+ Permission.ReadNetworkAlertPolicy,
245
+ ],
246
+ update: [
247
+ Permission.ProjectOwner,
248
+ Permission.ProjectAdmin,
249
+ Permission.EditNetworkAlertPolicy,
250
+ ],
251
+ })
252
+ /*
253
+ * The pause switch. Off means the engine stops provisioning for this
254
+ * policy and stands down what it provisioned; the row, its scope and its
255
+ * template survive, so switching it back on restores the same set. This
256
+ * is the operator's way to take a policy out of service — clearing the
257
+ * template is not offered for that (see monitorTemplate).
258
+ */
259
+ ,
260
+ TableColumn({
261
+ isDefaultValueColumn: true,
262
+ required: true,
263
+ type: TableColumnType.Boolean,
264
+ canReadOnRelationQuery: true,
265
+ title: "Is Enabled",
266
+ description: "Whether this policy is active. Disable it to stop provisioning monitors for matching devices without deleting the policy.",
267
+ defaultValue: true,
268
+ }),
269
+ Column({
270
+ type: ColumnType.Boolean,
271
+ nullable: false,
272
+ default: true,
273
+ }),
274
+ __metadata("design:type", Boolean)
275
+ ], NetworkAlertPolicy.prototype, "isEnabled", void 0);
276
+ __decorate([
277
+ ColumnAccessControl({
278
+ create: [
279
+ Permission.ProjectOwner,
280
+ Permission.ProjectAdmin,
281
+ Permission.CreateNetworkAlertPolicy,
282
+ ],
283
+ read: [
284
+ Permission.ProjectOwner,
285
+ Permission.ProjectAdmin,
286
+ Permission.ProjectMember,
287
+ Permission.Viewer,
288
+ Permission.MonitorAdmin,
289
+ Permission.MonitorMember,
290
+ Permission.MonitorViewer,
291
+ Permission.ReadMonitorTemplate,
292
+ ],
293
+ update: [
294
+ Permission.ProjectOwner,
295
+ Permission.ProjectAdmin,
296
+ Permission.EditNetworkAlertPolicy,
297
+ ],
298
+ })
299
+ /*
300
+ * WHAT every matching device is alerted on: a Network Device monitor
301
+ * template, cloned once per device by the engine.
302
+ *
303
+ * Required to the operator, nullable to the database — and the gap is
304
+ * deliberate. The FK is SET NULL rather than CASCADE because a template is
305
+ * configuration and a policy is intent: deleting "Reachability v1" must
306
+ * not silently delete the six policies that used it, taking their scopes
307
+ * and names with them. Instead those policies lose their template, the
308
+ * engine treats a policy with no template exactly as it treats a disabled
309
+ * one (nothing to provision from, so nothing is provisioned), and the
310
+ * settings table can show "template deleted — pick another" against a row
311
+ * the operator can still recognise and repair. The service refuses to
312
+ * write the null itself; only the cascade produces it.
313
+ *
314
+ * Read permissions are the MonitorTemplate's own (the
315
+ * NetworkDeviceAutoImportRule precedent): selecting this relation reads a
316
+ * template's name and type, so it takes the permission that reading the
317
+ * template takes.
318
+ */
319
+ ,
320
+ TableColumn({
321
+ manyToOneRelationColumn: "monitorTemplateId",
322
+ type: TableColumnType.Entity,
323
+ modelType: MonitorTemplate,
324
+ required: true,
325
+ title: "Monitor Template",
326
+ description: "The Network Device monitor template every matching device gets a monitor cloned from. Deleting the template disables the policy rather than deleting it.",
327
+ }),
328
+ ManyToOne(() => {
329
+ return MonitorTemplate;
330
+ }, {
331
+ eager: false,
332
+ nullable: true,
333
+ onDelete: "SET NULL",
334
+ orphanedRowAction: "nullify",
335
+ }),
336
+ JoinColumn({ name: "monitorTemplateId" }),
337
+ __metadata("design:type", MonitorTemplate)
338
+ ], NetworkAlertPolicy.prototype, "monitorTemplate", void 0);
339
+ __decorate([
340
+ ColumnAccessControl({
341
+ create: [
342
+ Permission.ProjectOwner,
343
+ Permission.ProjectAdmin,
344
+ Permission.CreateNetworkAlertPolicy,
345
+ ],
346
+ read: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.Viewer,
351
+ Permission.MonitorAdmin,
352
+ Permission.MonitorMember,
353
+ Permission.MonitorViewer,
354
+ Permission.ReadMonitorTemplate,
355
+ ],
356
+ update: [
357
+ Permission.ProjectOwner,
358
+ Permission.ProjectAdmin,
359
+ Permission.EditNetworkAlertPolicy,
360
+ ],
361
+ }),
362
+ Index(),
363
+ TableColumn({
364
+ type: TableColumnType.ObjectID,
365
+ required: true,
366
+ canReadOnRelationQuery: true,
367
+ title: "Monitor Template ID",
368
+ description: "ID of the Network Device monitor template every matching device gets a monitor cloned from. Null only after the template was deleted, which disables the policy.",
369
+ }),
370
+ Column({
371
+ type: ColumnType.ObjectID,
372
+ nullable: true,
373
+ transformer: ObjectID.getDatabaseTransformer(),
374
+ }),
375
+ __metadata("design:type", ObjectID)
376
+ ], NetworkAlertPolicy.prototype, "monitorTemplateId", void 0);
377
+ __decorate([
378
+ ColumnAccessControl({
379
+ create: [
380
+ Permission.ProjectOwner,
381
+ Permission.ProjectAdmin,
382
+ Permission.CreateNetworkAlertPolicy,
383
+ ],
384
+ read: [
385
+ Permission.ProjectOwner,
386
+ Permission.ProjectAdmin,
387
+ Permission.ProjectMember,
388
+ Permission.Viewer,
389
+ Permission.ReadNetworkAlertPolicy,
390
+ ],
391
+ update: [
392
+ Permission.ProjectOwner,
393
+ Permission.ProjectAdmin,
394
+ Permission.EditNetworkAlertPolicy,
395
+ ],
396
+ })
397
+ /*
398
+ * WHICH devices: a NetworkAlertPolicyScope — site ids, device-role ids and
399
+ * label ids, ANDed across kinds and ORed within one, an empty kind
400
+ * matching everything. See Common/Types/NetworkDevice/
401
+ * NetworkAlertPolicyScope.ts for the rule and for why this is one jsonb
402
+ * column rather than three join tables.
403
+ *
404
+ * NOT NULL with a `{}` default: `{}` is "all devices", which is a real
405
+ * policy and the widest one, so the column must always hold a readable
406
+ * scope for the engine to evaluate. The service normalizes every write, so
407
+ * what is stored is always the canonical deduplicated form.
408
+ */
409
+ ,
410
+ TableColumn({
411
+ isDefaultValueColumn: true,
412
+ required: true,
413
+ type: TableColumnType.JSON,
414
+ title: "Scope",
415
+ description: "Which devices this policy covers: site ids, device role ids and label ids. A device must match every kind that is listed (AND) and any id within a kind (OR); a kind left empty matches every device. Empty altogether means every device in the project.",
416
+ defaultValue: {},
417
+ }),
418
+ Column({
419
+ type: ColumnType.JSON,
420
+ nullable: false,
421
+ default: () => {
422
+ return "'{}'";
423
+ },
424
+ }),
425
+ __metadata("design:type", Object)
426
+ ], NetworkAlertPolicy.prototype, "scope", void 0);
427
+ __decorate([
428
+ ColumnAccessControl({
429
+ create: [],
430
+ read: [
431
+ Permission.ProjectOwner,
432
+ Permission.ProjectAdmin,
433
+ Permission.ProjectMember,
434
+ Permission.Viewer,
435
+ Permission.ReadNetworkAlertPolicy,
436
+ ],
437
+ update: [],
438
+ }),
439
+ TableColumn({
440
+ type: TableColumnType.Date,
441
+ required: false,
442
+ canReadOnRelationQuery: true,
443
+ title: "Last Sync At",
444
+ description: "When the engine last reconciled this policy's monitors against its matching devices. Managed by the engine.",
445
+ }),
446
+ Column({
447
+ type: ColumnType.Date,
448
+ nullable: true,
449
+ }),
450
+ __metadata("design:type", Date)
451
+ ], NetworkAlertPolicy.prototype, "lastSyncAt", void 0);
452
+ __decorate([
453
+ ColumnAccessControl({
454
+ create: [],
455
+ read: [
456
+ Permission.ProjectOwner,
457
+ Permission.ProjectAdmin,
458
+ Permission.ProjectMember,
459
+ Permission.Viewer,
460
+ Permission.ReadNetworkAlertPolicy,
461
+ ],
462
+ update: [],
463
+ })
464
+ /*
465
+ * The last pass's failure, verbatim, or null after a clean one. Kept on
466
+ * the row rather than only in the logs because the operator reading the
467
+ * settings table is the one who can fix it — a deleted template, a
468
+ * monitor limit reached — and the log line is not where they are.
469
+ */
470
+ ,
471
+ TableColumn({
472
+ type: TableColumnType.LongText,
473
+ required: false,
474
+ title: "Last Sync Error",
475
+ description: "Why the engine's last reconciliation of this policy failed, if it did. Cleared by the next successful pass. Managed by the engine.",
476
+ }),
477
+ Column({
478
+ type: ColumnType.LongText,
479
+ nullable: true,
480
+ length: ColumnLength.LongText,
481
+ }),
482
+ __metadata("design:type", String)
483
+ ], NetworkAlertPolicy.prototype, "lastSyncError", void 0);
484
+ __decorate([
485
+ ColumnAccessControl({
486
+ create: [],
487
+ read: [
488
+ Permission.ProjectOwner,
489
+ Permission.ProjectAdmin,
490
+ Permission.ProjectMember,
491
+ Permission.Viewer,
492
+ Permission.ReadNetworkAlertPolicy,
493
+ ],
494
+ update: [],
495
+ })
496
+ /*
497
+ * How many devices the policy covered at its last pass — the number the
498
+ * settings table puts beside the scope sentence, so "Devices in 2 sites"
499
+ * reads "Devices in 2 sites (37)". A count, stamped, rather than a live
500
+ * query: the list page renders every policy at once and must not walk
501
+ * the device table per row to do it.
502
+ */
503
+ ,
504
+ TableColumn({
505
+ type: TableColumnType.Number,
506
+ required: false,
507
+ isDefaultValueColumn: true,
508
+ canReadOnRelationQuery: true,
509
+ title: "Covered Device Count",
510
+ description: "How many devices matched this policy's scope at the engine's last reconciliation. Managed by the engine.",
511
+ defaultValue: 0,
512
+ }),
513
+ Column({
514
+ type: ColumnType.Number,
515
+ nullable: true,
516
+ default: 0,
517
+ }),
518
+ __metadata("design:type", Number)
519
+ ], NetworkAlertPolicy.prototype, "coveredDeviceCount", void 0);
520
+ __decorate([
521
+ ColumnAccessControl({
522
+ create: [],
523
+ read: [
524
+ Permission.ProjectOwner,
525
+ Permission.ProjectAdmin,
526
+ Permission.ProjectMember,
527
+ Permission.Viewer,
528
+ Permission.ReadNetworkAlertPolicy,
529
+ ],
530
+ update: [],
531
+ })
532
+ /*
533
+ * When the policy's monitors were last brought in line with the TEMPLATE
534
+ * (as opposed to with the device set, which is lastSyncAt). A template
535
+ * edit changes what every provisioned monitor should look like; this is
536
+ * how the engine knows whether the fleet has caught up with it.
537
+ */
538
+ ,
539
+ TableColumn({
540
+ type: TableColumnType.Date,
541
+ required: false,
542
+ canReadOnRelationQuery: true,
543
+ title: "Template Synced At",
544
+ description: "When this policy's provisioned monitors were last re-synced from the monitor template. Managed by the engine.",
545
+ }),
546
+ Column({
547
+ type: ColumnType.Date,
548
+ nullable: true,
549
+ }),
550
+ __metadata("design:type", Date)
551
+ ], NetworkAlertPolicy.prototype, "templateSyncedAt", void 0);
552
+ __decorate([
553
+ ColumnAccessControl({
554
+ create: [
555
+ Permission.ProjectOwner,
556
+ Permission.ProjectAdmin,
557
+ Permission.CreateNetworkAlertPolicy,
558
+ ],
559
+ read: [
560
+ Permission.ProjectOwner,
561
+ Permission.ProjectAdmin,
562
+ Permission.ProjectMember,
563
+ Permission.Viewer,
564
+ Permission.ReadNetworkAlertPolicy,
565
+ ],
566
+ update: [],
567
+ }),
568
+ TableColumn({
569
+ manyToOneRelationColumn: "createdByUserId",
570
+ type: TableColumnType.Entity,
571
+ modelType: User,
572
+ title: "Created by User",
573
+ description: "Relation to User who created this object (if this object was created by a User)",
574
+ }),
575
+ ManyToOne(() => {
576
+ return User;
577
+ }, {
578
+ eager: false,
579
+ nullable: true,
580
+ onDelete: "SET NULL",
581
+ orphanedRowAction: "nullify",
582
+ }),
583
+ JoinColumn({ name: "createdByUserId" }),
584
+ __metadata("design:type", User)
585
+ ], NetworkAlertPolicy.prototype, "createdByUser", void 0);
586
+ __decorate([
587
+ ColumnAccessControl({
588
+ create: [
589
+ Permission.ProjectOwner,
590
+ Permission.ProjectAdmin,
591
+ Permission.CreateNetworkAlertPolicy,
592
+ ],
593
+ read: [
594
+ Permission.ProjectOwner,
595
+ Permission.ProjectAdmin,
596
+ Permission.ProjectMember,
597
+ Permission.Viewer,
598
+ Permission.ReadNetworkAlertPolicy,
599
+ ],
600
+ update: [],
601
+ }),
602
+ TableColumn({
603
+ type: TableColumnType.ObjectID,
604
+ title: "Created by User ID",
605
+ description: "User ID who created this object (if this object was created by a User)",
606
+ }),
607
+ Column({
608
+ type: ColumnType.ObjectID,
609
+ nullable: true,
610
+ transformer: ObjectID.getDatabaseTransformer(),
611
+ }),
612
+ __metadata("design:type", ObjectID)
613
+ ], NetworkAlertPolicy.prototype, "createdByUserId", void 0);
614
+ __decorate([
615
+ ColumnAccessControl({
616
+ create: [],
617
+ read: [
618
+ Permission.ProjectOwner,
619
+ Permission.ProjectAdmin,
620
+ Permission.ProjectMember,
621
+ Permission.Viewer,
622
+ Permission.ReadNetworkAlertPolicy,
623
+ ],
624
+ update: [],
625
+ }),
626
+ TableColumn({
627
+ manyToOneRelationColumn: "deletedByUserId",
628
+ type: TableColumnType.Entity,
629
+ title: "Deleted by User",
630
+ modelType: User,
631
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
632
+ }),
633
+ ManyToOne(() => {
634
+ return User;
635
+ }, {
636
+ cascade: false,
637
+ eager: false,
638
+ nullable: true,
639
+ onDelete: "SET NULL",
640
+ orphanedRowAction: "nullify",
641
+ }),
642
+ JoinColumn({ name: "deletedByUserId" }),
643
+ __metadata("design:type", User)
644
+ ], NetworkAlertPolicy.prototype, "deletedByUser", void 0);
645
+ __decorate([
646
+ ColumnAccessControl({
647
+ create: [],
648
+ read: [
649
+ Permission.ProjectOwner,
650
+ Permission.ProjectAdmin,
651
+ Permission.ProjectMember,
652
+ Permission.Viewer,
653
+ Permission.ReadNetworkAlertPolicy,
654
+ ],
655
+ update: [],
656
+ }),
657
+ TableColumn({
658
+ type: TableColumnType.ObjectID,
659
+ title: "Deleted by User ID",
660
+ description: "User ID who deleted this object (if this object was deleted by a User)",
661
+ }),
662
+ Column({
663
+ type: ColumnType.ObjectID,
664
+ nullable: true,
665
+ transformer: ObjectID.getDatabaseTransformer(),
666
+ }),
667
+ __metadata("design:type", ObjectID)
668
+ ], NetworkAlertPolicy.prototype, "deletedByUserId", void 0);
669
+ NetworkAlertPolicy = __decorate([
670
+ EnableDocumentation(),
671
+ TenantColumn("projectId"),
672
+ TableAccessControl({
673
+ create: [
674
+ Permission.ProjectOwner,
675
+ Permission.ProjectAdmin,
676
+ Permission.CreateNetworkAlertPolicy,
677
+ ],
678
+ read: [
679
+ Permission.ProjectOwner,
680
+ Permission.ProjectAdmin,
681
+ Permission.ProjectMember,
682
+ Permission.Viewer,
683
+ Permission.ReadNetworkAlertPolicy,
684
+ ],
685
+ delete: [
686
+ Permission.ProjectOwner,
687
+ Permission.ProjectAdmin,
688
+ Permission.DeleteNetworkAlertPolicy,
689
+ ],
690
+ update: [
691
+ Permission.ProjectOwner,
692
+ Permission.ProjectAdmin,
693
+ Permission.EditNetworkAlertPolicy,
694
+ ],
695
+ }),
696
+ CrudApiEndpoint(new Route("/network-alert-policy")),
697
+ Index("IDX_network_alert_policy_project_template_unique", ["projectId", "monitorTemplateId"], {
698
+ unique: true,
699
+ where: '"deletedAt" IS NULL AND "monitorTemplateId" IS NOT NULL',
700
+ }),
701
+ TableMetadata({
702
+ tableName: "NetworkAlertPolicy",
703
+ singularName: "Network Alert Policy",
704
+ pluralName: "Network Alert Policies",
705
+ icon: IconProp.Alert,
706
+ tableDescription: "Alert on a set of network devices at once: every device matching the policy's sites, roles and labels gets a Network Device monitor provisioned from the policy's monitor template, and kept as devices come and go.",
707
+ }),
708
+ Entity({
709
+ name: "NetworkAlertPolicy",
710
+ })
711
+ ], NetworkAlertPolicy);
712
+ export default NetworkAlertPolicy;
713
+ //# sourceMappingURL=NetworkAlertPolicy.js.map