@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
@@ -45,6 +45,16 @@ jest.mock("../../../Server/Utils/Telemetry", () => {
45
45
  recordExceptionMarkSpanAsErrorAndEndSpan: (data: unknown): unknown => {
46
46
  return recordExceptionMock(data);
47
47
  },
48
+ /*
49
+ * CaptureSpan ends spans through Telemetry.endSpan rather than calling
50
+ * span.end() directly, so that ending twice on the error path (the
51
+ * recorder's finally, then the decorator's) is a no-op instead of an SDK
52
+ * "You can only call end() on a span once" diagnostic. The real
53
+ * implementation guards on the span's endTime; the fake just forwards.
54
+ */
55
+ endSpan: (span: { end: () => void }): void => {
56
+ span.end();
57
+ },
48
58
  },
49
59
  };
50
60
  });
@@ -286,3 +296,138 @@ describe("Telemetry.isSpanExportEnabled (real module)", () => {
286
296
  expect(RealTelemetry.isSpanExportEnabled()).toBe(false);
287
297
  });
288
298
  });
299
+
300
+ /*
301
+ * THE MULTI-FRAME CONTRACT.
302
+ *
303
+ * One thrown error propagates through every decorated frame on its way out,
304
+ * and each frame's catch calls the recorder on its OWN span. Nothing here
305
+ * deduplicates — the report-once marker lives inside the recorder, where it
306
+ * can be asserted against real exception events (see
307
+ * Tests/Server/Utils/Telemetry.test.ts). What this file pins is the shape the
308
+ * recorder depends on: N frames means N recorder calls carrying the SAME
309
+ * object identity, and every frame still ends its own span exactly once.
310
+ *
311
+ * Nothing covered this before, which is why the N-fold occuranceCount
312
+ * inflation shipped.
313
+ */
314
+ describe("CaptureSpan across nested frames", () => {
315
+ beforeEach(() => {
316
+ spanExportEnabled = true;
317
+ });
318
+
319
+ test("an error crossing three frames reaches the recorder three times, as one object", () => {
320
+ const boom: Error = new Error("one failure, three frames");
321
+
322
+ const inner: (...args: Array<any>) => any = decorate(
323
+ undefined,
324
+ () => {
325
+ throw boom;
326
+ },
327
+ "inner",
328
+ );
329
+ const middle: (...args: Array<any>) => any = decorate(
330
+ undefined,
331
+ () => {
332
+ return inner();
333
+ },
334
+ "middle",
335
+ );
336
+ const outer: (...args: Array<any>) => any = decorate(
337
+ undefined,
338
+ () => {
339
+ return middle();
340
+ },
341
+ "outer",
342
+ );
343
+
344
+ expect(() => {
345
+ return outer();
346
+ }).toThrow(boom);
347
+
348
+ expect(recordExceptionMock).toHaveBeenCalledTimes(3);
349
+
350
+ /*
351
+ * Identity, not equality. The report-once marker is a non-enumerable
352
+ * symbol written onto the thrown value itself, so it only works if every
353
+ * frame sees the very same object — a wrapped or copied error would
354
+ * report N times again.
355
+ */
356
+ for (const call of recordExceptionMock.mock.calls) {
357
+ expect((call[0] as { exception: unknown }).exception).toBe(boom);
358
+ }
359
+
360
+ // Three spans created, three ended. No double-end, no leak.
361
+ expect(startActiveSpanMock).toHaveBeenCalledTimes(3);
362
+ expect(fakeSpan.end).toHaveBeenCalledTimes(3);
363
+ });
364
+
365
+ test("the same holds for async frames", async () => {
366
+ const boom: Error = new Error("async, three frames");
367
+
368
+ const inner: (...args: Array<any>) => any = decorate(
369
+ undefined,
370
+ async (): Promise<never> => {
371
+ throw boom;
372
+ },
373
+ "inner",
374
+ );
375
+ const middle: (...args: Array<any>) => any = decorate(
376
+ undefined,
377
+ async (): Promise<unknown> => {
378
+ return inner();
379
+ },
380
+ "middle",
381
+ );
382
+ const outer: (...args: Array<any>) => any = decorate(
383
+ undefined,
384
+ async (): Promise<unknown> => {
385
+ return middle();
386
+ },
387
+ "outer",
388
+ );
389
+
390
+ await expect(outer()).rejects.toBe(boom);
391
+
392
+ expect(recordExceptionMock).toHaveBeenCalledTimes(3);
393
+ expect(fakeSpan.end).toHaveBeenCalledTimes(3);
394
+ });
395
+
396
+ /*
397
+ * A span that already carries an ERROR must not be downgraded to OK. That is
398
+ * reachable whenever a decorated method swallows an error and signals
399
+ * failure another way — Express middleware calling next(err) is the case
400
+ * that actually occurs — because the decorator then sees a normal return.
401
+ * The SDK's own setStatus guard does not help: it only early-returns when
402
+ * the CURRENT status is already OK.
403
+ */
404
+ test("a success return does not overwrite an ERROR status set from inside", () => {
405
+ const erroredSpan: FakeSpan & { status?: { code: number } } = {
406
+ setStatus: jest.fn(),
407
+ end: jest.fn(),
408
+ status: { code: 2 }, // SpanStatusCode.ERROR
409
+ };
410
+
411
+ startActiveSpanMock.mockImplementationOnce((data: any) => {
412
+ return data.fn(erroredSpan);
413
+ });
414
+
415
+ const wrapped: (...args: Array<any>) => any = decorate(undefined, () => {
416
+ return "swallowed the error and returned normally";
417
+ });
418
+
419
+ wrapped();
420
+
421
+ expect(erroredSpan.setStatus).not.toHaveBeenCalled();
422
+ });
423
+
424
+ test("a span with no observable status is still marked OK", () => {
425
+ const wrapped: (...args: Array<any>) => any = decorate(undefined, () => {
426
+ return "fine";
427
+ });
428
+
429
+ wrapped();
430
+
431
+ expect(fakeSpan.setStatus).toHaveBeenCalledWith({ code: 1 });
432
+ });
433
+ });
@@ -1,27 +1,13 @@
1
1
  /*
2
- * AI triage verdict for a telemetry exception group. Decides how the
3
- * automatic fix lane treats the group:
2
+ * The AI triage verdict and the fault domain declared by the throwing code are
3
+ * the SAME vocabulary, so they are the same enum. It lives in
4
+ * Common/Types/Telemetry/ErrorClass.ts, which is importable from the emit path
5
+ * (Types-only, no server dependencies) as well as from the AI lane.
4
6
  *
5
- * - CodeFault: a defect in the monitored code the only class the
6
- * automatic lane opens fix pull requests for.
7
- * - UserError: expected consequence of invalid end-user input (bad
8
- * parameters, malformed values). The right change, if any, is earlier
9
- * validation and clearer error UX — routed to a human, never auto-fixed.
10
- * - ExpectedDenial: an intentional check doing its job (auth failure,
11
- * plan/paywall denial, scanner/fuzzer probe tripping validation).
12
- * Never auto-fixed; optionally auto-archived.
13
- * - Infrastructure: environmental conditions (timeouts, connection
14
- * resets, resource exhaustion) where a code "fix" is usually tuning —
15
- * routed to a human.
16
- * - Unknown: triage could not decide — treated conservatively (no
17
- * automatic fix).
7
+ * This path is kept so the triage runner, the insight scanner and their tests
8
+ * keep compiling and because "the AI's verdict" is a genuinely useful name
9
+ * at those call sites. It is one SOURCE of the field, not a separate concept:
10
+ * a class declared by the throwing code outranks it, and a human's click
11
+ * outranks both.
18
12
  */
19
- enum ExceptionAIClassification {
20
- CodeFault = "code-fault",
21
- UserError = "user-error",
22
- ExpectedDenial = "expected-denial",
23
- Infrastructure = "infrastructure",
24
- Unknown = "unknown",
25
- }
26
-
27
- export default ExceptionAIClassification;
13
+ export { default } from "../Telemetry/ErrorClass";
@@ -99,6 +99,8 @@ enum EmailTemplateType {
99
99
 
100
100
  EnterpriseLicenseUserLimitBreach = "EnterpriseLicenseUserLimitBreach.hbs",
101
101
  EnterpriseLicenseExpiryReminder = "EnterpriseLicenseExpiryReminder.hbs",
102
+
103
+ NotificationRollup = "NotificationRollup.hbs",
102
104
  }
103
105
 
104
106
  export default EmailTemplateType;
@@ -11,6 +11,11 @@ type EnterpriseLicenseInstanceSummary = {
11
11
  instanceId: string;
12
12
  host: string | null;
13
13
  userCount: number | null;
14
+ /*
15
+ * Whether this row contributed to currentUserCount at the server's cutoff.
16
+ * Optional so installations remain compatible with older license servers.
17
+ */
18
+ isCountedTowardsUsage?: boolean | undefined;
14
19
  // ISO date string of the most recent usage report from this instance.
15
20
  lastReportedAt: string | null;
16
21
  /*
@@ -0,0 +1,13 @@
1
+ /*
2
+ * A point-in-time, privacy-preserving view of enterprise license usage for
3
+ * the Admin Dashboard. Email hashes stay on the server; instance ids are
4
+ * enough to render statuses from the exact same cutoff as the aggregate.
5
+ */
6
+ export default interface EnterpriseLicenseUsageSnapshot {
7
+ currentUserCount: number | null;
8
+ activeInstanceIds: Array<string>;
9
+ masterAdminEmails: Array<string>;
10
+ calculatedAt: string;
11
+ lastUsageReportedAt: string | null;
12
+ nextInstanceStatusChangeAt: string | null;
13
+ }
@@ -0,0 +1,6 @@
1
+ enum EnterpriseLicenseUserCountSource {
2
+ Instance = "instance",
3
+ Legacy = "legacy",
4
+ }
5
+
6
+ export default EnterpriseLicenseUserCountSource;
@@ -1,5 +1,6 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class APIException extends Exception {
5
6
  private _error: Error | null = null;
@@ -16,4 +17,13 @@ export default class APIException extends Exception {
16
17
  this.error = error;
17
18
  }
18
19
  }
20
+
21
+ /*
22
+ * The environment failed, not our code and not the caller. Stays an
23
+ * Issue: it is a real failure worth a human, it is just never something the
24
+ * automatic fix lane should open a pull request for.
25
+ */
26
+ protected override getErrorClass(): ErrorClass {
27
+ return ErrorClass.Infrastructure;
28
+ }
19
29
  }
@@ -1,8 +1,19 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class BadDataException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.BadDataException, message);
7
8
  }
9
+
10
+ /*
11
+ * The caller sent something we cannot accept. Nothing is broken; the
12
+ * request was. Promoted back to CodeFault by ErrorClassResolver when it is
13
+ * raised outside an HTTP request, because a background job has no client to
14
+ * blame — see Common/Server/Utils/Telemetry/ErrorClassResolver.ts.
15
+ */
16
+ protected override getErrorClass(): ErrorClass {
17
+ return ErrorClass.UserError;
18
+ }
8
19
  }
@@ -1,8 +1,19 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class BadRequestException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.BadDataException, message);
7
8
  }
9
+
10
+ /*
11
+ * The caller sent something we cannot accept. Nothing is broken; the
12
+ * request was. Promoted back to CodeFault by ErrorClassResolver when it is
13
+ * raised outside an HTTP request, because a background job has no client to
14
+ * blame — see Common/Server/Utils/Telemetry/ErrorClassResolver.ts.
15
+ */
16
+ protected override getErrorClass(): ErrorClass {
17
+ return ErrorClass.UserError;
18
+ }
8
19
  }
@@ -1,4 +1,8 @@
1
1
  import ExceptionCode from "./ExceptionCode";
2
+ import ErrorClass, {
3
+ tagErrorClass,
4
+ tagErrorClassAuthoritative,
5
+ } from "../Telemetry/ErrorClass";
2
6
 
3
7
  export default class Exception extends Error {
4
8
  private _code: ExceptionCode = ExceptionCode.GeneralException;
@@ -14,6 +18,67 @@ export default class Exception extends Error {
14
18
  public constructor(code: ExceptionCode, message: string) {
15
19
  super(message);
16
20
  this.code = code;
21
+
22
+ /*
23
+ * Tag the fault domain at construction. Calling a prototype method from
24
+ * the base constructor dispatches to the subclass override (prototypes are
25
+ * wired before the constructor body runs), so each subclass answers for
26
+ * itself. getErrorClass must therefore never read subclass FIELDS — those
27
+ * initialize after super() returns — which is why every override returns a
28
+ * constant.
29
+ */
30
+ tagErrorClass(this, this.getErrorClass());
31
+ }
32
+
33
+ /*
34
+ * The fault domain for this exception class.
35
+ *
36
+ * CODE-FAULT IS THE BASE DEFAULT ON PURPOSE. A new subclass added without an
37
+ * override, or an exception whose author never thought about this, stays
38
+ * NOISY. The failure mode of the whole classification scheme must be
39
+ * over-reporting — there is no configuration in which silence is the
40
+ * default.
41
+ *
42
+ * This is deliberately keyed on the CLASS, not on `code`: BadDataException
43
+ * and BadRequestException are both 400, ServerException and
44
+ * DatabaseNotConnectedException are both 500, and five ExceptionCode members
45
+ * (NotImplemented=0, General=1, API=2, BadOperation=5, WebRequest=6) are not
46
+ * HTTP statuses at all.
47
+ *
48
+ * Note that declaring a class here is not the last word: a user-error or
49
+ * expected-denial raised OUTSIDE an HTTP request is promoted back to
50
+ * code-fault by ErrorClassResolver, because a background job has no client
51
+ * to blame.
52
+ */
53
+ protected getErrorClass(): ErrorClass {
54
+ return ErrorClass.CodeFault;
55
+ }
56
+
57
+ /**
58
+ * Override the declared fault domain for one particular throw, where the
59
+ * class-level default is wrong at a specific site. Chainable:
60
+ * `throw new BadDataException(msg).asCodeFault()`.
61
+ *
62
+ * These are AUTHORITATIVE: a developer looked at this one site and said what
63
+ * it is, so unlike the class-level default they are exempt from the
64
+ * unit-of-work promotion. Use them when the surrounding context genuinely
65
+ * changes the answer — e.g. a probe reporting that the endpoint it was asked
66
+ * to check is down, which is the product working, not a defect.
67
+ */
68
+ public asCodeFault(): this {
69
+ return tagErrorClassAuthoritative(this, ErrorClass.CodeFault);
70
+ }
71
+
72
+ public asUserError(): this {
73
+ return tagErrorClassAuthoritative(this, ErrorClass.UserError);
74
+ }
75
+
76
+ public asExpectedDenial(): this {
77
+ return tagErrorClassAuthoritative(this, ErrorClass.ExpectedDenial);
78
+ }
79
+
80
+ public asInfrastructure(): this {
81
+ return tagErrorClassAuthoritative(this, ErrorClass.Infrastructure);
17
82
  }
18
83
 
19
84
  public getMessage(): string {
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class ForbiddenException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.ForbiddenException, message);
7
8
  }
9
+
10
+ /*
11
+ * A check we deliberately wrote, doing exactly its job. Denying this
12
+ * request IS the correct behaviour, so it is not an Issue. Promoted back to
13
+ * CodeFault outside an HTTP request — see ErrorClassResolver.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.ExpectedDenial;
17
+ }
8
18
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class NotAuthenticatedException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.NotAuthenticatedException, message);
7
8
  }
9
+
10
+ /*
11
+ * A check we deliberately wrote, doing exactly its job. Denying this
12
+ * request IS the correct behaviour, so it is not an Issue. Promoted back to
13
+ * CodeFault outside an HTTP request — see ErrorClassResolver.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.ExpectedDenial;
17
+ }
8
18
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class NotAuthorizedException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.NotAuthorizedException, message);
7
8
  }
9
+
10
+ /*
11
+ * A check we deliberately wrote, doing exactly its job. Denying this
12
+ * request IS the correct behaviour, so it is not an Issue. Promoted back to
13
+ * CodeFault outside an HTTP request — see ErrorClassResolver.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.ExpectedDenial;
17
+ }
8
18
  }
@@ -1,8 +1,19 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class NotFoundException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.NotFoundException, message);
7
8
  }
9
+
10
+ /*
11
+ * The caller sent something we cannot accept. Nothing is broken; the
12
+ * request was. Promoted back to CodeFault by ErrorClassResolver when it is
13
+ * raised outside an HTTP request, because a background job has no client to
14
+ * blame — see Common/Server/Utils/Telemetry/ErrorClassResolver.ts.
15
+ */
16
+ protected override getErrorClass(): ErrorClass {
17
+ return ErrorClass.UserError;
18
+ }
8
19
  }
@@ -1,8 +1,19 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class PayloadTooLargeException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.PayloadTooLargeException, message);
7
8
  }
9
+
10
+ /*
11
+ * The caller sent something we cannot accept. Nothing is broken; the
12
+ * request was. Promoted back to CodeFault by ErrorClassResolver when it is
13
+ * raised outside an HTTP request, because a background job has no client to
14
+ * blame — see Common/Server/Utils/Telemetry/ErrorClassResolver.ts.
15
+ */
16
+ protected override getErrorClass(): ErrorClass {
17
+ return ErrorClass.UserError;
18
+ }
8
19
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class PaymentRequiredException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.PaymentRequiredException, message);
7
8
  }
9
+
10
+ /*
11
+ * A check we deliberately wrote, doing exactly its job. Denying this
12
+ * request IS the correct behaviour, so it is not an Issue. Promoted back to
13
+ * CodeFault outside an HTTP request — see ErrorClassResolver.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.ExpectedDenial;
17
+ }
8
18
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class ServiceUnavailableException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.ServiceUnavailableException, message);
7
8
  }
9
+
10
+ /*
11
+ * The environment failed, not our code and not the caller. Stays an
12
+ * Issue: it is a real failure worth a human, it is just never something the
13
+ * automatic fix lane should open a pull request for.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.Infrastructure;
17
+ }
8
18
  }
@@ -1,5 +1,6 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class SSOAuthorizationException extends Exception {
5
6
  private static message: string = "SSO Authorization Required";
@@ -14,4 +15,13 @@ export default class SSOAuthorizationException extends Exception {
14
15
  public static isException(errorMessage: string): boolean {
15
16
  return errorMessage === SSOAuthorizationException.message;
16
17
  }
18
+
19
+ /*
20
+ * A check we deliberately wrote, doing exactly its job. Denying this
21
+ * request IS the correct behaviour, so it is not an Issue. Promoted back to
22
+ * CodeFault outside an HTTP request — see ErrorClassResolver.
23
+ */
24
+ protected override getErrorClass(): ErrorClass {
25
+ return ErrorClass.ExpectedDenial;
26
+ }
17
27
  }
@@ -1,8 +1,19 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class TenantNotFoundException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.TenantNotFoundException, message);
7
8
  }
9
+
10
+ /*
11
+ * The caller sent something we cannot accept. Nothing is broken; the
12
+ * request was. Promoted back to CodeFault by ErrorClassResolver when it is
13
+ * raised outside an HTTP request, because a background job has no client to
14
+ * blame — see Common/Server/Utils/Telemetry/ErrorClassResolver.ts.
15
+ */
16
+ protected override getErrorClass(): ErrorClass {
17
+ return ErrorClass.UserError;
18
+ }
8
19
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class TimeoutException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.TimeoutException, message);
7
8
  }
9
+
10
+ /*
11
+ * The environment failed, not our code and not the caller. Stays an
12
+ * Issue: it is a real failure worth a human, it is just never something the
13
+ * automatic fix lane should open a pull request for.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.Infrastructure;
17
+ }
8
18
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class TooManyRequestsException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.TooManyRequestsException, message);
7
8
  }
9
+
10
+ /*
11
+ * A check we deliberately wrote, doing exactly its job. Denying this
12
+ * request IS the correct behaviour, so it is not an Issue. Promoted back to
13
+ * CodeFault outside an HTTP request — see ErrorClassResolver.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.ExpectedDenial;
17
+ }
8
18
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class UnableToReachServer extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.UnabletoReachServerException, message);
7
8
  }
9
+
10
+ /*
11
+ * The environment failed, not our code and not the caller. Stays an
12
+ * Issue: it is a real failure worth a human, it is just never something the
13
+ * automatic fix lane should open a pull request for.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.Infrastructure;
17
+ }
8
18
  }
@@ -1,8 +1,18 @@
1
1
  import Exception from "./Exception";
2
2
  import ExceptionCode from "./ExceptionCode";
3
+ import ErrorClass from "../Telemetry/ErrorClass";
3
4
 
4
5
  export default class WebsiteRequestException extends Exception {
5
6
  public constructor(message: string) {
6
7
  super(ExceptionCode.WebRequestException, message);
7
8
  }
9
+
10
+ /*
11
+ * The environment failed, not our code and not the caller. Stays an
12
+ * Issue: it is a real failure worth a human, it is just never something the
13
+ * automatic fix lane should open a pull request for.
14
+ */
15
+ protected override getErrorClass(): ErrorClass {
16
+ return ErrorClass.Infrastructure;
17
+ }
8
18
  }