@oneuptime/common 12.0.32 → 12.0.34

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 (1191) hide show
  1. package/Models/AnalyticsModels/RumSession.ts +117 -1
  2. package/Models/AnalyticsModels/RumSessionChunk.ts +13 -0
  3. package/Models/AnalyticsModels/Span.ts +14 -0
  4. package/Models/DatabaseModels/AlertCustomField.ts +77 -3
  5. package/Models/DatabaseModels/ApiKeyPermission.ts +3 -27
  6. package/Models/DatabaseModels/EnterpriseLicense.ts +56 -0
  7. package/Models/DatabaseModels/IncidentCustomField.ts +77 -3
  8. package/Models/DatabaseModels/Index.ts +10 -0
  9. package/Models/DatabaseModels/InventoryItemCustomField.ts +77 -3
  10. package/Models/DatabaseModels/Monitor.ts +76 -0
  11. package/Models/DatabaseModels/MonitorCustomField.ts +77 -3
  12. package/Models/DatabaseModels/NetworkAlertPolicy.ts +690 -0
  13. package/Models/DatabaseModels/NetworkDevice.ts +176 -1
  14. package/Models/DatabaseModels/NetworkSite.ts +201 -2
  15. package/Models/DatabaseModels/NetworkSiteType.ts +102 -3
  16. package/Models/DatabaseModels/NetworkSnmpCredentialProfile.ts +841 -0
  17. package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +77 -3
  18. package/Models/DatabaseModels/RumApplication.ts +6 -6
  19. package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +77 -3
  20. package/Models/DatabaseModels/StatusPageCustomField.ts +77 -3
  21. package/Models/DatabaseModels/TeamCustomField.ts +77 -3
  22. package/Models/DatabaseModels/TeamMember.ts +0 -9
  23. package/Models/DatabaseModels/TeamMemberCustomField.ts +77 -3
  24. package/Models/DatabaseModels/TeamPermission.ts +3 -24
  25. package/Models/DatabaseModels/TelemetryException.ts +119 -0
  26. package/Models/DatabaseModels/TelemetryIngestionKey.ts +260 -0
  27. package/Models/DatabaseModels/UserNotificationEmailRollupBatch.ts +334 -0
  28. package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +370 -0
  29. package/Models/DatabaseModels/UserNotificationEmailRollupSetting.ts +282 -0
  30. package/Models/DatabaseModels/UserTelegram.ts +0 -4
  31. package/Scripts/benchmark-fanin-capacity.js +181 -0
  32. package/Server/API/EnterpriseLicenseAPI.ts +391 -64
  33. package/Server/API/LlmProviderAPI.ts +137 -22
  34. package/Server/API/TelemetryAPI.ts +1284 -164
  35. package/Server/API/UserNotificationSettingAPI.ts +55 -0
  36. package/Server/API/UserTelegramAPI.ts +48 -4
  37. package/Server/EnvironmentConfig.ts +49 -2
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.ts +55 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.ts +31 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.ts +124 -0
  41. package/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.ts +132 -0
  42. package/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.ts +79 -0
  43. package/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.ts +191 -0
  44. package/Server/Infrastructure/Postgres/SchemaMigrations/1791300000000-AddTelemetryIngestionKeyType.ts +91 -0
  45. package/Server/Infrastructure/Postgres/SchemaMigrations/1791400000000-SessionReplayRecordEverySessionByDefault.ts +67 -0
  46. package/Server/Infrastructure/Postgres/SchemaMigrations/1791500000000-WidenCustomFieldDropdownOptions.ts +139 -0
  47. package/Server/Infrastructure/Postgres/SchemaMigrations/1791600000000-AddCustomFieldValueMapping.ts +121 -0
  48. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  49. package/Server/Infrastructure/QueueWorker.ts +59 -23
  50. package/Server/Infrastructure/Semaphore.ts +2 -0
  51. package/Server/Middleware/BearerTokenAuthorization.ts +12 -0
  52. package/Server/Middleware/ProjectAuthorization.ts +11 -0
  53. package/Server/Middleware/SCIMAuthorization.ts +12 -0
  54. package/Server/Middleware/TelemetryIngest.ts +464 -7
  55. package/Server/Services/AIBillingService.ts +101 -27
  56. package/Server/Services/AccessTokenService.ts +1 -0
  57. package/Server/Services/AlertCustomFieldService.ts +98 -0
  58. package/Server/Services/AlertService.ts +37 -0
  59. package/Server/Services/ApiKeyPermissionService.ts +461 -29
  60. package/Server/Services/CustomFieldMappingService.ts +879 -0
  61. package/Server/Services/EnterpriseLicenseInstanceService.ts +197 -0
  62. package/Server/Services/EnterpriseLicenseService.ts +55 -0
  63. package/Server/Services/GlobalConfigService.ts +194 -0
  64. package/Server/Services/IncidentCustomFieldService.ts +98 -0
  65. package/Server/Services/IncidentService.ts +35 -0
  66. package/Server/Services/Index.ts +10 -0
  67. package/Server/Services/MetricService.ts +194 -0
  68. package/Server/Services/MonitorService.ts +175 -21
  69. package/Server/Services/MonitorStatusTimelineService.ts +150 -8
  70. package/Server/Services/MonitorTemplateService.ts +217 -1
  71. package/Server/Services/NetworkAlertPolicyEngineService.ts +2159 -0
  72. package/Server/Services/NetworkAlertPolicyService.ts +944 -0
  73. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +87 -35
  74. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +60 -15
  75. package/Server/Services/NetworkDeviceService.ts +1032 -73
  76. package/Server/Services/NetworkSiteService.ts +1502 -129
  77. package/Server/Services/NetworkSiteTypeService.ts +1216 -0
  78. package/Server/Services/NetworkSnmpCredentialProfileService.ts +238 -0
  79. package/Server/Services/NotificationService.ts +118 -28
  80. package/Server/Services/ProjectService.ts +127 -48
  81. package/Server/Services/RoutineEmailSettingsService.ts +73 -0
  82. package/Server/Services/RumSessionReplayViewService.ts +104 -24
  83. package/Server/Services/ScheduledMaintenanceCustomFieldService.ts +98 -0
  84. package/Server/Services/ScheduledMaintenanceService.ts +32 -0
  85. package/Server/Services/StatusPagePrivateUserService.ts +103 -3
  86. package/Server/Services/TeamMemberService.ts +78 -0
  87. package/Server/Services/TeamPermissionService.ts +235 -3
  88. package/Server/Services/TelemetryIngestionKeyService.ts +722 -19
  89. package/Server/Services/UserNotificationEmailRollupBatchService.ts +78 -0
  90. package/Server/Services/UserNotificationEmailRollupItemService.ts +79 -0
  91. package/Server/Services/UserNotificationEmailRollupSettingService.ts +113 -0
  92. package/Server/Services/UserNotificationSettingService.ts +90 -25
  93. package/Server/Services/UserService.ts +95 -0
  94. package/Server/Services/UserTelegramService.ts +326 -5
  95. package/Server/Types/Database/QueryHelper.ts +4 -2
  96. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +14 -3
  97. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +10 -0
  98. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +10 -0
  99. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +62 -1
  100. package/Server/Utils/AI/Toolbox/AlertTools.ts +15 -1
  101. package/Server/Utils/APIKey/AccessPermission.ts +5 -2
  102. package/Server/Utils/Billing/BillingFailureNoticeThrottle.ts +80 -0
  103. package/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.ts +54 -0
  104. package/Server/Utils/CustomField/CustomFieldMappingRegistry.ts +415 -0
  105. package/Server/Utils/CustomField/CustomFieldMappingValidator.ts +335 -0
  106. package/Server/Utils/DataSource/EgressGuard.ts +177 -8
  107. package/Server/Utils/DataSource/HttpFetch.ts +9 -2
  108. package/Server/Utils/EmailRollup/EmailRollupConstants.ts +131 -0
  109. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +925 -0
  110. package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +781 -0
  111. package/Server/Utils/EmailRollup/EmailRollupWriter.ts +368 -0
  112. package/Server/Utils/FrontendEnvironment.ts +40 -0
  113. package/Server/Utils/LLM/LLMService.ts +78 -0
  114. package/Server/Utils/LogRedaction.ts +28 -0
  115. package/Server/Utils/Logger.ts +90 -1
  116. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +338 -77
  117. package/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.ts +190 -0
  118. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +9 -2
  119. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +30 -4
  120. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +61 -1
  121. package/Server/Utils/Monitor/MonitorAlert.ts +29 -6
  122. package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +14 -0
  123. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +159 -15
  124. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +255 -4
  125. package/Server/Utils/Monitor/MonitorIncident.ts +22 -6
  126. package/Server/Utils/Monitor/MonitorMetricUtil.ts +41 -0
  127. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +72 -0
  128. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +499 -19
  129. package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +66 -10
  130. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +238 -44
  131. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +146 -39
  132. package/Server/Utils/Monitor/SeriesContextEnricher.ts +304 -0
  133. package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +31 -18
  134. package/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.ts +213 -0
  135. package/Server/Utils/OutboundUserAgent.ts +152 -0
  136. package/Server/Utils/SSRFProtection.ts +217 -10
  137. package/Server/Utils/SessionReplay/SessionReplayGateCache.ts +239 -138
  138. package/Server/Utils/SessionReplay/SessionReplayHealthCounters.ts +305 -0
  139. package/Server/Utils/SessionReplay/SessionReplayReadService.ts +1430 -289
  140. package/Server/Utils/StartServer.ts +53 -36
  141. package/Server/Utils/TelegramVerificationToken.ts +185 -0
  142. package/Server/Utils/Telemetry/CaptureSpan.ts +32 -8
  143. package/Server/Utils/Telemetry/ErrorClassResolver.ts +120 -0
  144. package/Server/Utils/Telemetry/PinServiceName.ts +197 -0
  145. package/Server/Utils/Telemetry/SpanUtil.ts +33 -0
  146. package/Server/Utils/Telemetry/TelemetryFanInWriter.ts +38 -16
  147. package/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.ts +92 -0
  148. package/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.ts +217 -0
  149. package/Server/Utils/Telemetry.ts +198 -51
  150. package/Server/Utils/VM/VMAPI.ts +1 -0
  151. package/Server/Utils/VM/VMRunner.ts +975 -95
  152. package/Server/Views/Partials/SensitiveUrlToken.ejs +140 -0
  153. package/Tests/App/AdminDashboard/AdminHeaderSmallScreens.test.tsx +202 -0
  154. package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +134 -33
  155. package/Tests/App/Dashboard/AskAiSuggestedPrompts.test.ts +279 -0
  156. package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +517 -0
  157. package/Tests/App/Dashboard/DashboardHeaderSmallScreens.test.tsx +404 -0
  158. package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +26 -0
  159. package/Tests/App/Dashboard/DeviceStatusHero.test.tsx +588 -0
  160. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +486 -9
  161. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +632 -0
  162. package/Tests/App/Dashboard/MonitorRecommendationCreateProgress.test.tsx +682 -0
  163. package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +4 -2
  164. package/Tests/App/Dashboard/NetworkDeviceCreateFormMonitorBinding.test.tsx +676 -0
  165. package/Tests/App/Dashboard/NetworkDeviceCreateFormPingMonitor.test.tsx +791 -0
  166. package/Tests/App/Dashboard/NetworkDeviceCreateFormProbeAndSnmp.test.tsx +833 -0
  167. package/Tests/App/Dashboard/NetworkDeviceCriteriaFilter.test.ts +161 -0
  168. package/Tests/App/Dashboard/NetworkDeviceSettingsMonitoringSection.test.tsx +458 -0
  169. package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +41 -5
  170. package/Tests/App/Dashboard/NotificationEmailPreferences.test.tsx +399 -0
  171. package/Tests/App/Dashboard/PingMonitorProvisioning.test.ts +368 -0
  172. package/Tests/App/Dashboard/RecommendationCard.test.tsx +796 -0
  173. package/Tests/App/Dashboard/RecommendationToolbar.test.tsx +519 -0
  174. package/Tests/App/Dashboard/RecommendationsList.test.tsx +661 -0
  175. package/Tests/App/Dashboard/UseBulkCreatePingMonitors.test.tsx +899 -0
  176. package/Tests/App/Dashboard/UseBulkSnmpCredentialProfileActions.test.tsx +732 -0
  177. package/Tests/App/SensitiveUrlTokenBootstrap.test.ts +256 -0
  178. package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +11 -1
  179. package/Tests/App/StatusPage/StatusPageLastUpdated.test.tsx +263 -0
  180. package/Tests/App/StatusPage/StatusPageLoginCodeBootstrap.test.ts +9 -4
  181. package/Tests/App/StatusPage/StatusPageOverviewLiveAndSearch.test.tsx +753 -0
  182. package/Tests/App/StatusPage/StatusPageResourceSearchBox.test.tsx +224 -0
  183. package/Tests/Models/AnalyticsModels/RumSessionReplayColumns.test.ts +262 -0
  184. package/Tests/Models/CustomFieldMappingColumns.test.ts +166 -0
  185. package/Tests/Models/DatabaseModels/SessionReplayModels.test.ts +20 -6
  186. package/Tests/Models/NetworkSiteHierarchy.test.ts +41 -4
  187. package/Tests/ResponsiveVisibility.test.ts +115 -0
  188. package/Tests/ResponsiveVisibility.ts +183 -0
  189. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +951 -7
  190. package/Tests/Server/API/LlmProviderConnectionTest.test.ts +522 -0
  191. package/Tests/Server/API/SessionReplayAPI.test.ts +1940 -216
  192. package/Tests/Server/API/UserNotificationSettingAPI.test.ts +186 -0
  193. package/Tests/Server/API/UserTelegramAPISecurity.test.ts +231 -0
  194. package/Tests/Server/EnvironmentConfigFrontendSecurity.test.ts +234 -0
  195. package/Tests/Server/Infrastructure/Postgres/CustomFieldValueMappingMigration.test.ts +202 -0
  196. package/Tests/Server/Infrastructure/Postgres/InventoryItemArchiveMigration.test.ts +41 -0
  197. package/Tests/Server/Infrastructure/Postgres/NetworkSnmpCredentialProfilesAndAlertPoliciesMigration.test.ts +854 -0
  198. package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +18 -0
  199. package/Tests/Server/Infrastructure/Postgres/SessionReplayRecordEverySessionByDefaultMigration.test.ts +169 -0
  200. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +535 -0
  201. package/Tests/Server/Infrastructure/QueueWorkerTimeout.test.ts +210 -0
  202. package/Tests/Server/Infrastructure/TelemetryExporterDeploymentConfig.test.ts +130 -0
  203. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +4 -1
  204. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +1163 -0
  205. package/Tests/Server/Middleware/TelemetryIngestTokenLog.test.ts +5 -3
  206. package/Tests/Server/Services/AIChatPrivacyPin.test.ts +560 -0
  207. package/Tests/Server/Services/AddTelemetryIngestionKeyTypeMigration.test.ts +555 -0
  208. package/Tests/Server/Services/ApiKeyPermissionSecurity.test.ts +678 -0
  209. package/Tests/Server/Services/ApiKeyPermissionService.test.ts +276 -28
  210. package/Tests/Server/Services/BillingRechargeOwnerEmailGuards.test.ts +783 -0
  211. package/Tests/Server/Services/CustomFieldDropdownOptionsColumnWidth.test.ts +431 -0
  212. package/Tests/Server/Services/CustomFieldMappingService.test.ts +850 -0
  213. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +32 -0
  214. package/Tests/Server/Services/EnterpriseLicenseInstanceServiceDeletionUsage.test.ts +707 -0
  215. package/Tests/Server/Services/EnterpriseLicenseServiceUsageAggregationLock.test.ts +329 -0
  216. package/Tests/Server/Services/GlobalConfigService.test.ts +414 -1
  217. package/Tests/Server/Services/MetricRawEntityKeyPrune.test.ts +592 -0
  218. package/Tests/Server/Services/MonitorServiceDeleteNetworkDeviceCleanup.test.ts +294 -0
  219. package/Tests/Server/Services/MonitorStatusBridgeProbePath.test.ts +802 -0
  220. package/Tests/Server/Services/MonitorStatusTimelineService.test.ts +72 -2
  221. package/Tests/Server/Services/NetworkAlertPolicyEngineHooks.test.ts +752 -0
  222. package/Tests/Server/Services/NetworkAlertPolicyEngineService.test.ts +1849 -0
  223. package/Tests/Server/Services/NetworkAlertPolicyModel.test.ts +1793 -0
  224. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +273 -5
  225. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +97 -12
  226. package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +148 -3
  227. package/Tests/Server/Services/NetworkDeviceMonitorBindingUpdateGuard.test.ts +514 -0
  228. package/Tests/Server/Services/NetworkDeviceMonitorStatusStamp.test.ts +447 -58
  229. package/Tests/Server/Services/NetworkDeviceMonitoringMethodTransition.test.ts +739 -0
  230. package/Tests/Server/Services/NetworkDevicePollingTenancy.test.ts +501 -0
  231. package/Tests/Server/Services/NetworkDeviceSiteDefaultProbe.test.ts +432 -0
  232. package/Tests/Server/Services/NetworkSiteMonitoringDefaults.test.ts +498 -0
  233. package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +337 -55
  234. package/Tests/Server/Services/NetworkSiteService.test.ts +1868 -131
  235. package/Tests/Server/Services/NetworkSiteTypeService.test.ts +1109 -0
  236. package/Tests/Server/Services/NetworkSnmpCredentialProfileModel.test.ts +926 -0
  237. package/Tests/Server/Services/NetworkSnmpCredentialProfileService.test.ts +796 -0
  238. package/Tests/Server/Services/ProjectServiceNetworkSiteTypeDefaults.test.ts +214 -0
  239. package/Tests/Server/Services/RoutineEmailSettingsPostgres.test.ts +329 -0
  240. package/Tests/Server/Services/RumSessionReplayViewService.test.ts +267 -0
  241. package/Tests/Server/Services/StatusPagePrivateUserEmailChangePasswordResetExpiry.test.ts +269 -0
  242. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +9 -0
  243. package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +9 -0
  244. package/Tests/Server/Services/TeamPrivilegeEscalation.test.ts +834 -0
  245. package/Tests/Server/Services/TelemetryIngestionKeyPolicyResolution.test.ts +814 -0
  246. package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +998 -0
  247. package/Tests/Server/Services/UserEmailChangePasswordResetExpiry.test.ts +472 -0
  248. package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +569 -0
  249. package/Tests/Server/Services/UserNotificationEmailRollupSettingModel.test.ts +314 -0
  250. package/Tests/Server/Services/UserNotificationEmailRollupSettingService.test.ts +409 -0
  251. package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +997 -0
  252. package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +110 -1
  253. package/Tests/Server/Services/UserTelegramVerificationSecurity.test.ts +688 -0
  254. package/Tests/Server/Types/Database/Permissions/DashboardAccessPermission.test.ts +321 -0
  255. package/Tests/Server/Types/Database/QueryHelperOperators.test.ts +17 -0
  256. package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +124 -0
  257. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +208 -0
  258. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +235 -0
  259. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +253 -0
  260. package/Tests/Server/Utils/AI/SRE/Insights/FixRouting.test.ts +497 -0
  261. package/Tests/Server/Utils/AI/Toolbox/Serializer.test.ts +383 -0
  262. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +7 -3
  263. package/Tests/Server/Utils/AnalyticsDatabase/ClusterConfig.test.ts +315 -0
  264. package/Tests/Server/Utils/Captcha.test.ts +422 -0
  265. package/Tests/Server/Utils/CustomField/CustomFieldMappingValidator.test.ts +437 -0
  266. package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +300 -11
  267. package/Tests/Server/Utils/DataSource/HttpFetch.test.ts +96 -2
  268. package/Tests/Server/Utils/Database/MigrationFailureLog.test.ts +466 -0
  269. package/Tests/Server/Utils/EmailRollup/EmailRollupBurstWindow.test.ts +83 -0
  270. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerBehaviour.test.ts +1096 -0
  271. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerClaim.test.ts +466 -0
  272. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerPreferences.test.ts +362 -0
  273. package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +1428 -0
  274. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +828 -0
  275. package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +864 -0
  276. package/Tests/Server/Utils/FrontendEnvironment.test.ts +190 -0
  277. package/Tests/Server/Utils/LogRedaction.test.ts +26 -0
  278. package/Tests/Server/Utils/LoggerCredentialLeak.test.ts +23 -9
  279. package/Tests/Server/Utils/LoggerFaultDemotion.test.ts +346 -0
  280. package/Tests/Server/Utils/Monitor/Criteria/CompareCriteriaAggregation.test.ts +584 -0
  281. package/Tests/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.test.ts +633 -0
  282. package/Tests/Server/Utils/Monitor/Criteria/IncomingRequestHeaderCriteria.test.ts +236 -0
  283. package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +196 -0
  284. package/Tests/Server/Utils/Monitor/DatabaseMetricWrite.test.ts +367 -0
  285. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +437 -0
  286. package/Tests/Server/Utils/Monitor/MonitorCriteriaObservationBuilderUnits.test.ts +100 -0
  287. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +5 -0
  288. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilSeriesContext.test.ts +176 -0
  289. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +512 -31
  290. package/Tests/Server/Utils/Monitor/NetworkDeviceMetricUtil.test.ts +252 -0
  291. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +479 -42
  292. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +351 -5
  293. package/Tests/Server/Utils/Monitor/SeriesContextEnricher.test.ts +356 -0
  294. package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +136 -12
  295. package/Tests/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.test.ts +306 -0
  296. package/Tests/Server/Utils/OutboundUserAgent.test.ts +266 -0
  297. package/Tests/Server/Utils/SSRFProtectionCloudServiceAddresses.test.ts +595 -0
  298. package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClientUserAgent.test.ts +141 -0
  299. package/Tests/Server/Utils/SessionReplay/SessionReplayGateCachePolicy.test.ts +198 -1
  300. package/Tests/Server/Utils/SessionReplay/SessionReplayHealthCounters.test.ts +453 -0
  301. package/Tests/Server/Utils/SessionReplay/SessionReplayReadServiceQueries.test.ts +1378 -0
  302. package/Tests/Server/Utils/SessionReplayOriginAllowListRefactor.test.ts +420 -0
  303. package/Tests/Server/Utils/TelegramVerificationToken.test.ts +253 -0
  304. package/Tests/Server/Utils/Telemetry/ErrorClassResolver.test.ts +298 -0
  305. package/Tests/Server/Utils/Telemetry/PinServiceName.test.ts +666 -0
  306. package/Tests/Server/Utils/Telemetry/TelemetryFanInWriterCapacity.test.ts +458 -0
  307. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +424 -0
  308. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.test.ts +528 -0
  309. package/Tests/Server/Utils/Telemetry.test.ts +456 -66
  310. package/Tests/Server/Utils/TelemetryExporterEnvironment.test.ts +56 -0
  311. package/Tests/Server/Utils/VM/VMRunnerHostBridgeLatency.test.ts +74 -0
  312. package/Tests/Server/Utils/VM/VMRunnerPrivateNetworkWiring.test.ts +100 -7
  313. package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +1176 -6
  314. package/Tests/Types/CustomField/CustomFieldMappingCatalog.test.ts +220 -0
  315. package/Tests/Types/CustomField/CustomFieldValueMapping.test.ts +348 -0
  316. package/Tests/Types/JSONFunctions.test.ts +260 -0
  317. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +422 -53
  318. package/Tests/Types/Monitor/DatabaseMetricCatalog.test.ts +388 -0
  319. package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +495 -15
  320. package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +191 -45
  321. package/Tests/Types/Monitor/HostAlertTemplates.test.ts +370 -42
  322. package/Tests/Types/Monitor/IotAlertTemplates.test.ts +375 -20
  323. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +636 -42
  324. package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +189 -0
  325. package/Tests/Types/Monitor/KubernetesTemplateGroupByKeys.test.ts +95 -14
  326. package/Tests/Types/Monitor/MonitorStepDatabaseMonitor.test.ts +243 -0
  327. package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
  328. package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
  329. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +16 -7
  330. package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +60 -0
  331. package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +190 -21
  332. package/Tests/Types/Monitor/ProxmoxAlertTemplates.test.ts +352 -22
  333. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationAlertDebuggability.test.ts +363 -0
  334. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +93 -18
  335. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +259 -0
  336. package/Tests/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.test.ts +476 -0
  337. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +136 -0
  338. package/Tests/Types/Monitor/SeriesContext/SeriesDebugHints.test.ts +661 -0
  339. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +507 -0
  340. package/Tests/Types/Monitor/ServiceAlertTemplates.test.ts +270 -0
  341. package/Tests/Types/Monitor/TemplateGroupByKeys.test.ts +38 -10
  342. package/Tests/Types/Monitor/Utils/RecommendationCriteriaAssertions.ts +102 -0
  343. package/Tests/Types/NetworkDevice/NetworkAlertPolicyScope.test.ts +655 -0
  344. package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +115 -26
  345. package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +39 -0
  346. package/Tests/Types/NotificationSetting/NotificationEmailRollupPolicy.test.ts +299 -0
  347. package/Tests/Types/NotificationSetting/RoutineEmailEvents.test.ts +47 -0
  348. package/Tests/Types/Rum/SessionReplayApiContracts.test.ts +608 -0
  349. package/Tests/Types/Rum/SessionReplayCustomEvents.test.ts +434 -0
  350. package/Tests/Types/Telemetry/ErrorClass.test.ts +483 -0
  351. package/Tests/Types/WebsiteRequest.test.ts +285 -3
  352. package/Tests/UI/Components/BasicRadioButtons.test.tsx +336 -0
  353. package/Tests/UI/Components/Charts/ChartBucketIdentity.test.ts +16 -3
  354. package/Tests/UI/Components/Charts/ChartTrailingBucketGap.test.ts +691 -0
  355. package/Tests/UI/Components/ComponentsModal.test.tsx +12 -4
  356. package/Tests/UI/Components/ComponentsModalUsability.test.tsx +518 -0
  357. package/Tests/UI/Components/CustomFields/CustomFieldsDetailMapping.test.tsx +324 -0
  358. package/Tests/UI/Components/CustomFields/MapFromCustomFieldInput.test.tsx +176 -0
  359. package/Tests/UI/Components/Graphs/DayUptimeGraph.test.tsx +484 -0
  360. package/Tests/UI/Components/HeaderRightRail.test.tsx +157 -0
  361. package/Tests/UI/Components/IconDropdownItem.test.tsx +102 -0
  362. package/Tests/UI/Components/JSONTablePrototypePollution.test.tsx +117 -0
  363. package/Tests/UI/Components/KeyboardShortcutsModal.test.tsx +214 -0
  364. package/Tests/UI/Components/ModelTable/ModelTableWrapContent.test.tsx +561 -0
  365. package/Tests/UI/Components/MonitorGraphs/UptimeBarDayModal.test.tsx +302 -0
  366. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +43 -12
  367. package/Tests/UI/Components/ProgressBar.test.tsx +38 -2
  368. package/Tests/UI/Components/ShortcutDialogGuard.test.tsx +74 -0
  369. package/Tests/UI/Components/SideMenuItem.test.tsx +226 -4
  370. package/Tests/UI/Components/SideMenuSection.test.tsx +310 -0
  371. package/Tests/UI/Components/SideOverSubmitState.test.tsx +335 -0
  372. package/Tests/UI/Components/StatusPage/ResourceGroupSectionAutoExpand.test.tsx +248 -0
  373. package/Tests/UI/Components/TableCellWrapping.test.tsx +625 -0
  374. package/Tests/UI/Components/TableLoadingStates.test.tsx +205 -0
  375. package/Tests/UI/Components/Workflow/NodePlacement.test.ts +148 -0
  376. package/Tests/UI/Components/Workflow/Workflow.test.tsx +981 -0
  377. package/Tests/UI/ConfigBrowserTelemetry.test.ts +70 -0
  378. package/Tests/UI/Rum/ChunkLoader.test.ts +1036 -2
  379. package/Tests/UI/Rum/FidelityNotices.test.ts +187 -0
  380. package/Tests/UI/Rum/InactivityMap.test.ts +341 -0
  381. package/Tests/UI/Rum/PrivacySummaryCard.test.tsx +259 -0
  382. package/Tests/UI/Rum/RecordingHealthCard.test.tsx +855 -0
  383. package/Tests/UI/Rum/RecordingHealthStrip.test.tsx +594 -0
  384. package/Tests/UI/Rum/ReplayCard.test.tsx +451 -0
  385. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +536 -0
  386. package/Tests/UI/Rum/ReplayEngine.test.ts +2503 -0
  387. package/Tests/UI/Rum/ReplayEngineTypes.test.ts +171 -0
  388. package/Tests/UI/Rum/ReplayHeader.test.tsx +711 -0
  389. package/Tests/UI/Rum/ReplayLink.test.tsx +119 -0
  390. package/Tests/UI/Rum/ReplayPinControl.test.tsx +408 -0
  391. package/Tests/UI/Rum/ReplayPlaybackIntent.test.ts +152 -0
  392. package/Tests/UI/Rum/ReplayRail.test.tsx +1296 -0
  393. package/Tests/UI/Rum/ReplayRailDetail.test.tsx +900 -0
  394. package/Tests/UI/Rum/ReplayScrubber.test.tsx +763 -147
  395. package/Tests/UI/Rum/ReplaySignalTypes.test.ts +189 -0
  396. package/Tests/UI/Rum/ReplaySignals.test.ts +1579 -0
  397. package/Tests/UI/Rum/ReplayStage.test.tsx +396 -473
  398. package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +918 -0
  399. package/Tests/UI/Rum/ReplayTimeline.test.tsx +696 -0
  400. package/Tests/UI/Rum/SessionReplayEmptyState.test.tsx +499 -0
  401. package/Tests/UI/Rum/SessionReplaySearchBar.test.tsx +346 -0
  402. package/Tests/UI/Rum/SessionReplaySetupGuide.test.tsx +545 -0
  403. package/Tests/UI/Rum/SessionReplayTable.test.tsx +991 -0
  404. package/Tests/UI/Rum/TargetedCapturePanel.test.tsx +254 -0
  405. package/Tests/UI/Telemetry/BrowserExporterIsolation.test.ts +71 -0
  406. package/Tests/UI/Utils/GlobalKeyboardShortcut.test.ts +344 -0
  407. package/Tests/UI/Utils/PageScrollLock.test.tsx +377 -0
  408. package/Tests/UI/Utils/PermissionGate.test.ts +78 -0
  409. package/Tests/UI/Utils/SensitiveUrlToken.test.ts +140 -0
  410. package/Tests/Utils/API.test.ts +308 -0
  411. package/Tests/Utils/EnterpriseLicenseSeats.test.ts +69 -0
  412. package/Tests/Utils/EnterpriseLicenseSync.test.ts +7 -1
  413. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +433 -2
  414. package/Tests/Utils/HTTPResponseBodyReader.test.ts +323 -0
  415. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +280 -1
  416. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
  417. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +38 -0
  418. package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +284 -23
  419. package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +177 -0
  420. package/Tests/Utils/NetworkDevice/MonitoringMethodThreadedClassifiers.test.ts +992 -0
  421. package/Tests/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.test.ts +427 -0
  422. package/Tests/Utils/NetworkDevice/ReachabilityStampConsistency.test.ts +185 -0
  423. package/Tests/Utils/NetworkDevice/SnmpCredentialUtil.test.ts +268 -0
  424. package/Tests/Utils/NetworkDiscovery/AutoImportRuleMatcher.test.ts +55 -5
  425. package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +98 -21
  426. package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +98 -20
  427. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +8 -7
  428. package/Tests/Utils/NetworkDiscovery/DiscoveryScanStatus.test.ts +117 -0
  429. package/Tests/Utils/NetworkDiscovery/PingMonitorBuilderForAddress.test.ts +274 -0
  430. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +230 -51
  431. package/Tests/Utils/NetworkSite/TypeHierarchyUtil.test.ts +209 -0
  432. package/Tests/Utils/Rum/ChunkMath.test.ts +83 -0
  433. package/Tests/Utils/Rum/SessionReplayHealthDiagnosis.test.ts +993 -0
  434. package/Tests/Utils/Rum/SessionReplayStringMap.test.ts +245 -0
  435. package/Tests/Utils/StatusPage/ResourceSearch.test.ts +631 -0
  436. package/Tests/Utils/Telemetry/CaptureSpanExportGating.test.ts +145 -0
  437. package/Tests/Utils/Telemetry/OriginAllowList.test.ts +633 -0
  438. package/Tests/Utils/Uptime/DayUptimeGraphUtil.test.ts +461 -0
  439. package/Tests/Utils/ValueFormatter.test.ts +148 -0
  440. package/Types/AI/ExceptionAIClassification.ts +10 -24
  441. package/Types/CustomField/CustomFieldMappingCatalog.ts +161 -0
  442. package/Types/CustomField/CustomFieldMappingSourceResource.ts +19 -0
  443. package/Types/CustomField/CustomFieldValueMapping.ts +288 -0
  444. package/Types/Email/EmailTemplateType.ts +2 -0
  445. package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +5 -0
  446. package/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.ts +13 -0
  447. package/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.ts +6 -0
  448. package/Types/Exception/ApiException.ts +10 -0
  449. package/Types/Exception/BadDataException.ts +11 -0
  450. package/Types/Exception/BadRequestException.ts +11 -0
  451. package/Types/Exception/Exception.ts +65 -0
  452. package/Types/Exception/ForbiddenException.ts +10 -0
  453. package/Types/Exception/NotAuthenticatedException.ts +10 -0
  454. package/Types/Exception/NotAuthorizedException.ts +10 -0
  455. package/Types/Exception/NotFoundException.ts +11 -0
  456. package/Types/Exception/PayloadTooLargeException.ts +11 -0
  457. package/Types/Exception/PaymentRequiredException.ts +10 -0
  458. package/Types/Exception/ServiceUnavailableException.ts +10 -0
  459. package/Types/Exception/SsoAuthorizationException.ts +10 -0
  460. package/Types/Exception/TenantNotFoundException.ts +11 -0
  461. package/Types/Exception/TimeoutException.ts +10 -0
  462. package/Types/Exception/TooManyRequestsException.ts +10 -0
  463. package/Types/Exception/UnableToReachServer.ts +10 -0
  464. package/Types/Exception/WebsiteRequestException.ts +10 -0
  465. package/Types/Icon/IconProp.ts +1 -0
  466. package/Types/JSONFunctions.ts +189 -43
  467. package/Types/Monitor/CephAlertTemplates.ts +157 -195
  468. package/Types/Monitor/CriteriaFilter.ts +60 -2
  469. package/Types/Monitor/DatabaseMetricCatalog.ts +693 -0
  470. package/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.ts +83 -0
  471. package/Types/Monitor/DockerAlertTemplates.ts +338 -128
  472. package/Types/Monitor/DockerSwarmAlertTemplates.ts +95 -112
  473. package/Types/Monitor/HostAlertTemplates.ts +302 -130
  474. package/Types/Monitor/IotAlertTemplates.ts +112 -104
  475. package/Types/Monitor/KubernetesAlertTemplates.ts +415 -224
  476. package/Types/Monitor/KubernetesMetricCatalog.ts +23 -19
  477. package/Types/Monitor/MonitorCriteriaInstance.ts +76 -0
  478. package/Types/Monitor/MonitorMetricType.ts +71 -0
  479. package/Types/Monitor/MonitorStep.ts +76 -0
  480. package/Types/Monitor/MonitorStepDatabaseMonitor.ts +171 -0
  481. package/Types/Monitor/MonitorStepSqlMonitor.ts +2 -20
  482. package/Types/Monitor/MonitorType.ts +47 -1
  483. package/Types/Monitor/PodmanAlertTemplates.ts +116 -163
  484. package/Types/Monitor/ProxmoxAlertTemplates.ts +217 -99
  485. package/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.ts +98 -6
  486. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +44 -7
  487. package/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.ts +383 -0
  488. package/Types/Monitor/RumAlertTemplates.ts +46 -7
  489. package/Types/Monitor/SeriesContext/SeriesDebugHints.ts +596 -0
  490. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +554 -0
  491. package/Types/Monitor/ServiceAlertTemplates.ts +98 -11
  492. package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +22 -1
  493. package/Types/Monitor/SqlConnectionConfig.ts +31 -0
  494. package/Types/Monitor/UptimeHistoryLabels.ts +56 -0
  495. package/Types/NetworkDevice/NetworkAlertPolicyScope.ts +343 -0
  496. package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +42 -22
  497. package/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.ts +30 -0
  498. package/Types/NotificationSetting/NotificationEmailRollupCategory.ts +255 -0
  499. package/Types/NotificationSetting/NotificationEmailRollupPolicy.ts +104 -0
  500. package/Types/NotificationSetting/RoutineEmailEvents.ts +30 -0
  501. package/Types/Permission.ts +90 -0
  502. package/Types/Probe/ProbeMonitorResponse.ts +16 -0
  503. package/Types/Rum/SessionReplay.ts +209 -0
  504. package/Types/Rum/SessionReplayApi.ts +722 -0
  505. package/Types/Rum/SessionReplayCaptureTrigger.ts +21 -12
  506. package/Types/Rum/SessionReplayConsentMode.ts +11 -7
  507. package/Types/Rum/SessionReplayCustomEvents.ts +549 -0
  508. package/Types/Rum/SessionReplayHealth.ts +238 -0
  509. package/Types/Telemetry/ErrorClass.ts +274 -0
  510. package/Types/Telemetry/TelemetryIngestSurface.ts +95 -0
  511. package/Types/Telemetry/TelemetryIngestionKeyPolicy.ts +75 -0
  512. package/Types/Telemetry/TelemetryIngestionKeyType.ts +29 -0
  513. package/Types/Telemetry/UnitOfWork.ts +59 -0
  514. package/Types/WebsiteRequest.ts +85 -3
  515. package/UI/Components/Charts/Area/AreaChart.tsx +13 -2
  516. package/UI/Components/Charts/Bar/BarChart.tsx +6 -2
  517. package/UI/Components/Charts/Line/LineChart.tsx +13 -2
  518. package/UI/Components/Charts/Types/XAxis/XAxis.ts +29 -0
  519. package/UI/Components/Charts/Utils/DataPoint.ts +22 -3
  520. package/UI/Components/Charts/Utils/TimeAnnotation.ts +76 -9
  521. package/UI/Components/Charts/Utils/XAxis.ts +217 -0
  522. package/UI/Components/CommandPalette/CommandPalette.tsx +2 -8
  523. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +143 -25
  524. package/UI/Components/CustomFields/MapFromCustomFieldInput.tsx +216 -0
  525. package/UI/Components/EditionLabel/EditionLabel.tsx +4 -0
  526. package/UI/Components/Graphs/DayUptimeGraph.tsx +173 -8
  527. package/UI/Components/Graphs/UptimeBarTooltip.tsx +22 -278
  528. package/UI/Components/Graphs/UptimeDaySummary.tsx +327 -0
  529. package/UI/Components/Header/Header.tsx +25 -9
  530. package/UI/Components/Header/IconDropdown/IconDropdownItem.tsx +10 -1
  531. package/UI/Components/Header/IconDropdown/IconDropdownMenu.tsx +6 -1
  532. package/UI/Components/Header/ProjectPicker/ProjectPicker.tsx +6 -1
  533. package/UI/Components/HeaderAlert/NotificationBell/NotificationBellDropdown.tsx +6 -1
  534. package/UI/Components/Icon/Icon.tsx +11 -0
  535. package/UI/Components/JSONTable/JSONTable.tsx +2 -2
  536. package/UI/Components/KeyboardShortcut/KeyboardShortcutsModal.tsx +125 -0
  537. package/UI/Components/KeyboardShortcut/Screenshots/README.md +19 -0
  538. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-command-palette.png +0 -0
  539. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-dialog-dark.png +0 -0
  540. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-dialog.png +0 -0
  541. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-help-menu.png +0 -0
  542. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-narrow.png +0 -0
  543. package/UI/Components/Modal/Modal.tsx +2 -8
  544. package/UI/Components/ModelTable/Column.ts +15 -0
  545. package/UI/Components/Monitor/SeriesDebugCommandsViewer.tsx +64 -0
  546. package/UI/Components/Monitor/SeriesLabelsViewer.tsx +93 -0
  547. package/UI/Components/MonitorGraphs/Uptime.tsx +14 -2
  548. package/UI/Components/MonitorGraphs/UptimeBarDayModal.tsx +63 -10
  549. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +88 -0
  550. package/UI/Components/ProgressBar/ProgressBar.tsx +12 -1
  551. package/UI/Components/RadioButtons/BasicRadioButtons.tsx +37 -7
  552. package/UI/Components/SideMenu/SideMenu.tsx +123 -5
  553. package/UI/Components/SideMenu/SideMenuItem.tsx +76 -84
  554. package/UI/Components/SideMenu/SideMenuSection.tsx +55 -23
  555. package/UI/Components/SideOver/SideOver.tsx +21 -20
  556. package/UI/Components/StatusPage/ResourceGroupSection.tsx +40 -0
  557. package/UI/Components/Table/CellClassName.ts +81 -0
  558. package/UI/Components/Table/TableRow.tsx +20 -14
  559. package/UI/Components/Table/TableSkeletonRows.tsx +9 -9
  560. package/UI/Components/Table/Types/Column.ts +36 -0
  561. package/UI/Components/Tooltip/Tooltip.tsx +11 -1
  562. package/UI/Components/Workflow/ComponentsModal.tsx +60 -39
  563. package/UI/Components/Workflow/NodePlacement.ts +57 -0
  564. package/UI/Components/Workflow/Workflow.tsx +47 -18
  565. package/UI/Config.ts +15 -33
  566. package/UI/Utils/GlobalKeyboardShortcut.ts +208 -0
  567. package/UI/Utils/PageScrollLock.ts +79 -3
  568. package/UI/Utils/PermissionGate.ts +61 -0
  569. package/UI/Utils/SensitiveUrlToken.ts +112 -0
  570. package/UI/Utils/Telemetry/BrowserTelemetryConfig.ts +28 -0
  571. package/UI/Utils/Telemetry/Telemetry.ts +10 -8
  572. package/UI/Utils/TestLLMProvider.ts +11 -0
  573. package/Utils/API.ts +129 -3
  574. package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +16 -0
  575. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +191 -11
  576. package/Utils/HTTPResponseBodyReader.ts +221 -0
  577. package/Utils/Monitor/MonitorMetricType.ts +153 -1
  578. package/Utils/Monitor/NetworkTopologyUtil.ts +23 -3
  579. package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +65 -14
  580. package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +43 -14
  581. package/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.ts +247 -0
  582. package/Utils/NetworkDevice/SnmpCredentialUtil.ts +68 -0
  583. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +15 -7
  584. package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +52 -17
  585. package/Utils/NetworkDiscovery/DiscoveryImportEligibility.ts +55 -23
  586. package/Utils/NetworkDiscovery/DiscoveryScanStatus.ts +77 -0
  587. package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +115 -13
  588. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +66 -20
  589. package/Utils/NetworkSite/TypeHierarchyUtil.ts +313 -0
  590. package/Utils/Rum/ChunkMath.ts +106 -0
  591. package/Utils/Rum/SessionReplayHealth.ts +732 -0
  592. package/Utils/Rum/SessionReplayStringMap.ts +226 -0
  593. package/Utils/Schema/ModelSchema.ts +1 -0
  594. package/Utils/StatusPage/ResourceSearch.ts +290 -0
  595. package/Utils/Telemetry/OriginAllowList.ts +355 -0
  596. package/Utils/Uptime/DayUptimeGraphUtil.ts +205 -0
  597. package/Utils/ValueFormatter.ts +35 -1
  598. package/build/dist/Models/AnalyticsModels/RumSession.js +102 -19
  599. package/build/dist/Models/AnalyticsModels/RumSession.js.map +1 -1
  600. package/build/dist/Models/AnalyticsModels/RumSessionChunk.js +11 -9
  601. package/build/dist/Models/AnalyticsModels/RumSessionChunk.js.map +1 -1
  602. package/build/dist/Models/AnalyticsModels/Span.js +14 -0
  603. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  604. package/build/dist/Models/DatabaseModels/AlertCustomField.js +79 -3
  605. package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
  606. package/build/dist/Models/DatabaseModels/ApiKeyPermission.js +3 -27
  607. package/build/dist/Models/DatabaseModels/ApiKeyPermission.js.map +1 -1
  608. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +59 -0
  609. package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
  610. package/build/dist/Models/DatabaseModels/IncidentCustomField.js +79 -3
  611. package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
  612. package/build/dist/Models/DatabaseModels/Index.js +10 -0
  613. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  614. package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js +79 -3
  615. package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js.map +1 -1
  616. package/build/dist/Models/DatabaseModels/Monitor.js +75 -0
  617. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  618. package/build/dist/Models/DatabaseModels/MonitorCustomField.js +79 -3
  619. package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
  620. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js +713 -0
  621. package/build/dist/Models/DatabaseModels/NetworkAlertPolicy.js.map +1 -0
  622. package/build/dist/Models/DatabaseModels/NetworkDevice.js +180 -1
  623. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  624. package/build/dist/Models/DatabaseModels/NetworkSite.js +200 -2
  625. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
  626. package/build/dist/Models/DatabaseModels/NetworkSiteType.js +102 -3
  627. package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -1
  628. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js +878 -0
  629. package/build/dist/Models/DatabaseModels/NetworkSnmpCredentialProfile.js.map +1 -0
  630. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +79 -3
  631. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -1
  632. package/build/dist/Models/DatabaseModels/RumApplication.js +6 -6
  633. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
  634. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +79 -3
  635. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
  636. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +79 -3
  637. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -1
  638. package/build/dist/Models/DatabaseModels/TeamCustomField.js +79 -3
  639. package/build/dist/Models/DatabaseModels/TeamCustomField.js.map +1 -1
  640. package/build/dist/Models/DatabaseModels/TeamMember.js +0 -9
  641. package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -1
  642. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js +79 -3
  643. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js.map +1 -1
  644. package/build/dist/Models/DatabaseModels/TeamPermission.js +3 -24
  645. package/build/dist/Models/DatabaseModels/TeamPermission.js.map +1 -1
  646. package/build/dist/Models/DatabaseModels/TelemetryException.js +123 -0
  647. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  648. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +267 -0
  649. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
  650. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js +363 -0
  651. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupBatch.js.map +1 -0
  652. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +402 -0
  653. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -0
  654. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js +296 -0
  655. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupSetting.js.map +1 -0
  656. package/build/dist/Models/DatabaseModels/UserTelegram.js +0 -4
  657. package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -1
  658. package/build/dist/Server/API/EnterpriseLicenseAPI.js +273 -60
  659. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  660. package/build/dist/Server/API/LlmProviderAPI.js +108 -13
  661. package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
  662. package/build/dist/Server/API/TelemetryAPI.js +769 -109
  663. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  664. package/build/dist/Server/API/UserNotificationSettingAPI.js +35 -0
  665. package/build/dist/Server/API/UserNotificationSettingAPI.js.map +1 -0
  666. package/build/dist/Server/API/UserTelegramAPI.js +28 -6
  667. package/build/dist/Server/API/UserTelegramAPI.js.map +1 -1
  668. package/build/dist/Server/EnvironmentConfig.js +41 -2
  669. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  670. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js +24 -0
  671. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790700000000-AddNetworkSiteTypeParentHierarchy.js.map +1 -0
  672. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js +16 -0
  673. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddEnterpriseLicenseUsageProvenance.js.map +1 -0
  674. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js +111 -0
  675. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790900000000-AddTelemetryExceptionErrorClass.js.map +1 -0
  676. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js +77 -0
  677. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791000000000-AddUserNotificationEmailRollup.js.map +1 -0
  678. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js +50 -0
  679. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791100000000-AddUserNotificationEmailRollupSetting.js.map +1 -0
  680. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js +83 -0
  681. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791200000000-AddNetworkSnmpCredentialProfilesAndAlertPolicies.js.map +1 -0
  682. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791300000000-AddTelemetryIngestionKeyType.js +60 -0
  683. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791300000000-AddTelemetryIngestionKeyType.js.map +1 -0
  684. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791400000000-SessionReplayRecordEverySessionByDefault.js +53 -0
  685. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791400000000-SessionReplayRecordEverySessionByDefault.js.map +1 -0
  686. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791500000000-WidenCustomFieldDropdownOptions.js +82 -0
  687. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791500000000-WidenCustomFieldDropdownOptions.js.map +1 -0
  688. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791600000000-AddCustomFieldValueMapping.js +46 -0
  689. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791600000000-AddCustomFieldValueMapping.js.map +1 -0
  690. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  691. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  692. package/build/dist/Server/Infrastructure/QueueWorker.js +52 -12
  693. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  694. package/build/dist/Server/Infrastructure/Semaphore.js +1 -0
  695. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  696. package/build/dist/Server/Middleware/BearerTokenAuthorization.js +12 -0
  697. package/build/dist/Server/Middleware/BearerTokenAuthorization.js.map +1 -1
  698. package/build/dist/Server/Middleware/ProjectAuthorization.js +11 -0
  699. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  700. package/build/dist/Server/Middleware/SCIMAuthorization.js +12 -0
  701. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
  702. package/build/dist/Server/Middleware/TelemetryIngest.js +326 -8
  703. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  704. package/build/dist/Server/Services/AIBillingService.js +70 -16
  705. package/build/dist/Server/Services/AIBillingService.js.map +1 -1
  706. package/build/dist/Server/Services/AccessTokenService.js +1 -0
  707. package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
  708. package/build/dist/Server/Services/AlertCustomFieldService.js +93 -0
  709. package/build/dist/Server/Services/AlertCustomFieldService.js.map +1 -1
  710. package/build/dist/Server/Services/AlertService.js +34 -0
  711. package/build/dist/Server/Services/AlertService.js.map +1 -1
  712. package/build/dist/Server/Services/ApiKeyPermissionService.js +331 -28
  713. package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
  714. package/build/dist/Server/Services/CustomFieldMappingService.js +614 -0
  715. package/build/dist/Server/Services/CustomFieldMappingService.js.map +1 -0
  716. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js +167 -0
  717. package/build/dist/Server/Services/EnterpriseLicenseInstanceService.js.map +1 -1
  718. package/build/dist/Server/Services/EnterpriseLicenseService.js +39 -0
  719. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  720. package/build/dist/Server/Services/GlobalConfigService.js +133 -0
  721. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  722. package/build/dist/Server/Services/IncidentCustomFieldService.js +93 -0
  723. package/build/dist/Server/Services/IncidentCustomFieldService.js.map +1 -1
  724. package/build/dist/Server/Services/IncidentService.js +32 -0
  725. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  726. package/build/dist/Server/Services/Index.js +10 -0
  727. package/build/dist/Server/Services/Index.js.map +1 -1
  728. package/build/dist/Server/Services/MetricService.js +163 -0
  729. package/build/dist/Server/Services/MetricService.js.map +1 -1
  730. package/build/dist/Server/Services/MonitorService.js +148 -21
  731. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  732. package/build/dist/Server/Services/MonitorStatusTimelineService.js +127 -8
  733. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  734. package/build/dist/Server/Services/MonitorTemplateService.js +162 -0
  735. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  736. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js +1683 -0
  737. package/build/dist/Server/Services/NetworkAlertPolicyEngineService.js.map +1 -0
  738. package/build/dist/Server/Services/NetworkAlertPolicyService.js +732 -0
  739. package/build/dist/Server/Services/NetworkAlertPolicyService.js.map +1 -0
  740. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +89 -36
  741. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  742. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +54 -11
  743. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  744. package/build/dist/Server/Services/NetworkDeviceService.js +841 -70
  745. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  746. package/build/dist/Server/Services/NetworkSiteService.js +1145 -107
  747. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  748. package/build/dist/Server/Services/NetworkSiteTypeService.js +863 -0
  749. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -1
  750. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js +217 -0
  751. package/build/dist/Server/Services/NetworkSnmpCredentialProfileService.js.map +1 -0
  752. package/build/dist/Server/Services/NotificationService.js +80 -17
  753. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  754. package/build/dist/Server/Services/ProjectService.js +88 -30
  755. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  756. package/build/dist/Server/Services/RoutineEmailSettingsService.js +69 -0
  757. package/build/dist/Server/Services/RoutineEmailSettingsService.js.map +1 -0
  758. package/build/dist/Server/Services/RumSessionReplayViewService.js +86 -24
  759. package/build/dist/Server/Services/RumSessionReplayViewService.js.map +1 -1
  760. package/build/dist/Server/Services/ScheduledMaintenanceCustomFieldService.js +93 -0
  761. package/build/dist/Server/Services/ScheduledMaintenanceCustomFieldService.js.map +1 -1
  762. package/build/dist/Server/Services/ScheduledMaintenanceService.js +29 -0
  763. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  764. package/build/dist/Server/Services/StatusPagePrivateUserService.js +92 -2
  765. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  766. package/build/dist/Server/Services/TeamMemberService.js +62 -2
  767. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  768. package/build/dist/Server/Services/TeamPermissionService.js +166 -3
  769. package/build/dist/Server/Services/TeamPermissionService.js.map +1 -1
  770. package/build/dist/Server/Services/TelemetryIngestionKeyService.js +562 -18
  771. package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
  772. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js +76 -0
  773. package/build/dist/Server/Services/UserNotificationEmailRollupBatchService.js.map +1 -0
  774. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js +77 -0
  775. package/build/dist/Server/Services/UserNotificationEmailRollupItemService.js.map +1 -0
  776. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js +111 -0
  777. package/build/dist/Server/Services/UserNotificationEmailRollupSettingService.js.map +1 -0
  778. package/build/dist/Server/Services/UserNotificationSettingService.js +66 -20
  779. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  780. package/build/dist/Server/Services/UserService.js +90 -0
  781. package/build/dist/Server/Services/UserService.js.map +1 -1
  782. package/build/dist/Server/Services/UserTelegramService.js +257 -4
  783. package/build/dist/Server/Services/UserTelegramService.js.map +1 -1
  784. package/build/dist/Server/Types/Database/QueryHelper.js +1 -1
  785. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  786. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +14 -3
  787. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  788. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +10 -0
  789. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
  790. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +10 -0
  791. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
  792. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +54 -1
  793. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
  794. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +18 -4
  795. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
  796. package/build/dist/Server/Utils/APIKey/AccessPermission.js +2 -2
  797. package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
  798. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js +59 -0
  799. package/build/dist/Server/Utils/Billing/BillingFailureNoticeThrottle.js.map +1 -0
  800. package/build/dist/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.js +27 -0
  801. package/build/dist/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.js.map +1 -0
  802. package/build/dist/Server/Utils/CustomField/CustomFieldMappingRegistry.js +226 -0
  803. package/build/dist/Server/Utils/CustomField/CustomFieldMappingRegistry.js.map +1 -0
  804. package/build/dist/Server/Utils/CustomField/CustomFieldMappingValidator.js +189 -0
  805. package/build/dist/Server/Utils/CustomField/CustomFieldMappingValidator.js.map +1 -0
  806. package/build/dist/Server/Utils/DataSource/EgressGuard.js +121 -7
  807. package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
  808. package/build/dist/Server/Utils/DataSource/HttpFetch.js +2 -1
  809. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  810. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js +124 -0
  811. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js.map +1 -0
  812. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +733 -0
  813. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -0
  814. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +497 -0
  815. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -0
  816. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +257 -0
  817. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -0
  818. package/build/dist/Server/Utils/FrontendEnvironment.js +33 -0
  819. package/build/dist/Server/Utils/FrontendEnvironment.js.map +1 -0
  820. package/build/dist/Server/Utils/LLM/LLMService.js +64 -1
  821. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  822. package/build/dist/Server/Utils/LogRedaction.js +28 -0
  823. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  824. package/build/dist/Server/Utils/Logger.js +73 -1
  825. package/build/dist/Server/Utils/Logger.js.map +1 -1
  826. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +287 -68
  827. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  828. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js +141 -0
  829. package/build/dist/Server/Utils/Monitor/Criteria/DatabaseMonitorCriteria.js.map +1 -0
  830. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
  831. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  832. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +20 -4
  833. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
  834. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +51 -1
  835. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  836. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +29 -6
  837. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  838. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +7 -0
  839. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -1
  840. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +125 -13
  841. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  842. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +158 -6
  843. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
  844. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +22 -6
  845. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  846. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
  847. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  848. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +54 -0
  849. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  850. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +330 -21
  851. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  852. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +55 -10
  853. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
  854. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +178 -49
  855. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
  856. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +119 -29
  857. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  858. package/build/dist/Server/Utils/Monitor/SeriesContextEnricher.js +237 -0
  859. package/build/dist/Server/Utils/Monitor/SeriesContextEnricher.js.map +1 -0
  860. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +30 -17
  861. package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -1
  862. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js +158 -0
  863. package/build/dist/Server/Utils/NetworkSite/NetworkSiteHierarchyLock.js.map +1 -0
  864. package/build/dist/Server/Utils/OutboundUserAgent.js +123 -0
  865. package/build/dist/Server/Utils/OutboundUserAgent.js.map +1 -0
  866. package/build/dist/Server/Utils/SSRFProtection.js +136 -9
  867. package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
  868. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js +174 -89
  869. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js.map +1 -1
  870. package/build/dist/Server/Utils/SessionReplay/SessionReplayHealthCounters.js +223 -0
  871. package/build/dist/Server/Utils/SessionReplay/SessionReplayHealthCounters.js.map +1 -0
  872. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +945 -164
  873. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
  874. package/build/dist/Server/Utils/StartServer.js +41 -28
  875. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  876. package/build/dist/Server/Utils/TelegramVerificationToken.js +129 -0
  877. package/build/dist/Server/Utils/TelegramVerificationToken.js.map +1 -0
  878. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js +28 -8
  879. package/build/dist/Server/Utils/Telemetry/CaptureSpan.js.map +1 -1
  880. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js +95 -0
  881. package/build/dist/Server/Utils/Telemetry/ErrorClassResolver.js.map +1 -0
  882. package/build/dist/Server/Utils/Telemetry/PinServiceName.js +163 -0
  883. package/build/dist/Server/Utils/Telemetry/PinServiceName.js.map +1 -0
  884. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +29 -0
  885. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
  886. package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js +28 -15
  887. package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js.map +1 -1
  888. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js +64 -0
  889. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js.map +1 -0
  890. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.js +171 -0
  891. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.js.map +1 -0
  892. package/build/dist/Server/Utils/Telemetry.js +162 -46
  893. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  894. package/build/dist/Server/Utils/VM/VMAPI.js.map +1 -1
  895. package/build/dist/Server/Utils/VM/VMRunner.js +780 -69
  896. package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
  897. package/build/dist/Types/AI/ExceptionAIClassification.js +10 -24
  898. package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -1
  899. package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js +60 -0
  900. package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js.map +1 -0
  901. package/build/dist/Types/CustomField/CustomFieldMappingSourceResource.js +20 -0
  902. package/build/dist/Types/CustomField/CustomFieldMappingSourceResource.js.map +1 -0
  903. package/build/dist/Types/CustomField/CustomFieldValueMapping.js +141 -0
  904. package/build/dist/Types/CustomField/CustomFieldValueMapping.js.map +1 -0
  905. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  906. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  907. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js +2 -0
  908. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUsageSnapshot.js.map +1 -0
  909. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js +7 -0
  910. package/build/dist/Types/EnterpriseLicense/EnterpriseLicenseUserCountSource.js.map +1 -0
  911. package/build/dist/Types/Exception/ApiException.js +9 -0
  912. package/build/dist/Types/Exception/ApiException.js.map +1 -1
  913. package/build/dist/Types/Exception/BadDataException.js +10 -0
  914. package/build/dist/Types/Exception/BadDataException.js.map +1 -1
  915. package/build/dist/Types/Exception/BadRequestException.js +10 -0
  916. package/build/dist/Types/Exception/BadRequestException.js.map +1 -1
  917. package/build/dist/Types/Exception/Exception.js +56 -0
  918. package/build/dist/Types/Exception/Exception.js.map +1 -1
  919. package/build/dist/Types/Exception/ForbiddenException.js +9 -0
  920. package/build/dist/Types/Exception/ForbiddenException.js.map +1 -1
  921. package/build/dist/Types/Exception/NotAuthenticatedException.js +9 -0
  922. package/build/dist/Types/Exception/NotAuthenticatedException.js.map +1 -1
  923. package/build/dist/Types/Exception/NotAuthorizedException.js +9 -0
  924. package/build/dist/Types/Exception/NotAuthorizedException.js.map +1 -1
  925. package/build/dist/Types/Exception/NotFoundException.js +10 -0
  926. package/build/dist/Types/Exception/NotFoundException.js.map +1 -1
  927. package/build/dist/Types/Exception/PayloadTooLargeException.js +10 -0
  928. package/build/dist/Types/Exception/PayloadTooLargeException.js.map +1 -1
  929. package/build/dist/Types/Exception/PaymentRequiredException.js +9 -0
  930. package/build/dist/Types/Exception/PaymentRequiredException.js.map +1 -1
  931. package/build/dist/Types/Exception/ServiceUnavailableException.js +9 -0
  932. package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -1
  933. package/build/dist/Types/Exception/SsoAuthorizationException.js +9 -0
  934. package/build/dist/Types/Exception/SsoAuthorizationException.js.map +1 -1
  935. package/build/dist/Types/Exception/TenantNotFoundException.js +10 -0
  936. package/build/dist/Types/Exception/TenantNotFoundException.js.map +1 -1
  937. package/build/dist/Types/Exception/TimeoutException.js +9 -0
  938. package/build/dist/Types/Exception/TimeoutException.js.map +1 -1
  939. package/build/dist/Types/Exception/TooManyRequestsException.js +9 -0
  940. package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -1
  941. package/build/dist/Types/Exception/UnableToReachServer.js +9 -0
  942. package/build/dist/Types/Exception/UnableToReachServer.js.map +1 -1
  943. package/build/dist/Types/Exception/WebsiteRequestException.js +9 -0
  944. package/build/dist/Types/Exception/WebsiteRequestException.js.map +1 -1
  945. package/build/dist/Types/Icon/IconProp.js +1 -0
  946. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  947. package/build/dist/Types/JSONFunctions.js +118 -37
  948. package/build/dist/Types/JSONFunctions.js.map +1 -1
  949. package/build/dist/Types/Monitor/CephAlertTemplates.js +130 -171
  950. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -1
  951. package/build/dist/Types/Monitor/CriteriaFilter.js +45 -2
  952. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  953. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js +594 -0
  954. package/build/dist/Types/Monitor/DatabaseMetricCatalog.js.map +1 -0
  955. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js +21 -0
  956. package/build/dist/Types/Monitor/DatabaseMonitor/DatabaseMonitorResponse.js.map +1 -0
  957. package/build/dist/Types/Monitor/DockerAlertTemplates.js +286 -121
  958. package/build/dist/Types/Monitor/DockerAlertTemplates.js.map +1 -1
  959. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js +84 -105
  960. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js.map +1 -1
  961. package/build/dist/Types/Monitor/HostAlertTemplates.js +250 -122
  962. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -1
  963. package/build/dist/Types/Monitor/IotAlertTemplates.js +81 -81
  964. package/build/dist/Types/Monitor/IotAlertTemplates.js.map +1 -1
  965. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +375 -215
  966. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  967. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js +19 -19
  968. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js.map +1 -1
  969. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +70 -0
  970. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  971. package/build/dist/Types/Monitor/MonitorMetricType.js +61 -0
  972. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  973. package/build/dist/Types/Monitor/MonitorStep.js +54 -0
  974. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  975. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js +122 -0
  976. package/build/dist/Types/Monitor/MonitorStepDatabaseMonitor.js.map +1 -0
  977. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  978. package/build/dist/Types/Monitor/MonitorType.js +45 -1
  979. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  980. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +104 -153
  981. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -1
  982. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +156 -91
  983. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -1
  984. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js +67 -6
  985. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js.map +1 -1
  986. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +38 -7
  987. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  988. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js +261 -0
  989. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js.map +1 -0
  990. package/build/dist/Types/Monitor/RumAlertTemplates.js +46 -7
  991. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
  992. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js +422 -0
  993. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js.map +1 -0
  994. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +441 -0
  995. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -0
  996. package/build/dist/Types/Monitor/ServiceAlertTemplates.js +79 -15
  997. package/build/dist/Types/Monitor/ServiceAlertTemplates.js.map +1 -1
  998. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +21 -1
  999. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
  1000. package/build/dist/Types/Monitor/SqlConnectionConfig.js +2 -0
  1001. package/build/dist/Types/Monitor/SqlConnectionConfig.js.map +1 -0
  1002. package/build/dist/Types/Monitor/UptimeHistoryLabels.js +17 -0
  1003. package/build/dist/Types/Monitor/UptimeHistoryLabels.js.map +1 -0
  1004. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js +172 -0
  1005. package/build/dist/Types/NetworkDevice/NetworkAlertPolicyScope.js.map +1 -0
  1006. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +40 -22
  1007. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -1
  1008. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js +26 -0
  1009. package/build/dist/Types/NetworkSite/DefaultNetworkSiteTypeHierarchy.js.map +1 -0
  1010. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js +186 -0
  1011. package/build/dist/Types/NotificationSetting/NotificationEmailRollupCategory.js.map +1 -0
  1012. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js +87 -0
  1013. package/build/dist/Types/NotificationSetting/NotificationEmailRollupPolicy.js.map +1 -0
  1014. package/build/dist/Types/NotificationSetting/RoutineEmailEvents.js +29 -0
  1015. package/build/dist/Types/NotificationSetting/RoutineEmailEvents.js.map +1 -0
  1016. package/build/dist/Types/Permission.js +80 -0
  1017. package/build/dist/Types/Permission.js.map +1 -1
  1018. package/build/dist/Types/Rum/SessionReplay.js +117 -0
  1019. package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
  1020. package/build/dist/Types/Rum/SessionReplayApi.js +181 -0
  1021. package/build/dist/Types/Rum/SessionReplayApi.js.map +1 -0
  1022. package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js +21 -12
  1023. package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js.map +1 -1
  1024. package/build/dist/Types/Rum/SessionReplayConsentMode.js +11 -7
  1025. package/build/dist/Types/Rum/SessionReplayConsentMode.js.map +1 -1
  1026. package/build/dist/Types/Rum/SessionReplayCustomEvents.js +172 -0
  1027. package/build/dist/Types/Rum/SessionReplayCustomEvents.js.map +1 -0
  1028. package/build/dist/Types/Rum/SessionReplayHealth.js +37 -0
  1029. package/build/dist/Types/Rum/SessionReplayHealth.js.map +1 -0
  1030. package/build/dist/Types/Telemetry/ErrorClass.js +216 -0
  1031. package/build/dist/Types/Telemetry/ErrorClass.js.map +1 -0
  1032. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +85 -0
  1033. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -0
  1034. package/build/dist/Types/Telemetry/TelemetryIngestionKeyPolicy.js +15 -0
  1035. package/build/dist/Types/Telemetry/TelemetryIngestionKeyPolicy.js.map +1 -0
  1036. package/build/dist/Types/Telemetry/TelemetryIngestionKeyType.js +30 -0
  1037. package/build/dist/Types/Telemetry/TelemetryIngestionKeyType.js.map +1 -0
  1038. package/build/dist/Types/Telemetry/UnitOfWork.js +59 -0
  1039. package/build/dist/Types/Telemetry/UnitOfWork.js.map +1 -0
  1040. package/build/dist/Types/WebsiteRequest.js +55 -3
  1041. package/build/dist/Types/WebsiteRequest.js.map +1 -1
  1042. package/build/dist/UI/Components/Charts/Area/AreaChart.js +13 -2
  1043. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  1044. package/build/dist/UI/Components/Charts/Bar/BarChart.js +6 -2
  1045. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  1046. package/build/dist/UI/Components/Charts/Line/LineChart.js +13 -2
  1047. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  1048. package/build/dist/UI/Components/Charts/Types/XAxis/XAxis.js.map +1 -1
  1049. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +15 -3
  1050. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  1051. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +40 -9
  1052. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -1
  1053. package/build/dist/UI/Components/Charts/Utils/XAxis.js +186 -0
  1054. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  1055. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +2 -7
  1056. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  1057. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +80 -6
  1058. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  1059. package/build/dist/UI/Components/CustomFields/MapFromCustomFieldInput.js +118 -0
  1060. package/build/dist/UI/Components/CustomFields/MapFromCustomFieldInput.js.map +1 -0
  1061. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +3 -0
  1062. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  1063. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +112 -7
  1064. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
  1065. package/build/dist/UI/Components/Graphs/UptimeBarTooltip.js +5 -162
  1066. package/build/dist/UI/Components/Graphs/UptimeBarTooltip.js.map +1 -1
  1067. package/build/dist/UI/Components/Graphs/UptimeDaySummary.js +181 -0
  1068. package/build/dist/UI/Components/Graphs/UptimeDaySummary.js.map +1 -0
  1069. package/build/dist/UI/Components/Header/Header.js +2 -3
  1070. package/build/dist/UI/Components/Header/Header.js.map +1 -1
  1071. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js +2 -1
  1072. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js.map +1 -1
  1073. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js +7 -1
  1074. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js.map +1 -1
  1075. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js +7 -1
  1076. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js.map +1 -1
  1077. package/build/dist/UI/Components/HeaderAlert/NotificationBell/NotificationBellDropdown.js +7 -1
  1078. package/build/dist/UI/Components/HeaderAlert/NotificationBell/NotificationBellDropdown.js.map +1 -1
  1079. package/build/dist/UI/Components/Icon/Icon.js +5 -0
  1080. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  1081. package/build/dist/UI/Components/JSONTable/JSONTable.js +2 -2
  1082. package/build/dist/UI/Components/JSONTable/JSONTable.js.map +1 -1
  1083. package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcutsModal.js +35 -0
  1084. package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcutsModal.js.map +1 -0
  1085. package/build/dist/UI/Components/Modal/Modal.js +2 -7
  1086. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  1087. package/build/dist/UI/Components/Monitor/SeriesDebugCommandsViewer.js +34 -0
  1088. package/build/dist/UI/Components/Monitor/SeriesDebugCommandsViewer.js.map +1 -0
  1089. package/build/dist/UI/Components/Monitor/SeriesLabelsViewer.js +49 -0
  1090. package/build/dist/UI/Components/Monitor/SeriesLabelsViewer.js.map +1 -0
  1091. package/build/dist/UI/Components/MonitorGraphs/Uptime.js +1 -1
  1092. package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
  1093. package/build/dist/UI/Components/MonitorGraphs/UptimeBarDayModal.js +32 -6
  1094. package/build/dist/UI/Components/MonitorGraphs/UptimeBarDayModal.js.map +1 -1
  1095. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +77 -0
  1096. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  1097. package/build/dist/UI/Components/ProgressBar/ProgressBar.js +12 -1
  1098. package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
  1099. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +6 -6
  1100. package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
  1101. package/build/dist/UI/Components/SideMenu/SideMenu.js +67 -5
  1102. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  1103. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +49 -53
  1104. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  1105. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +25 -7
  1106. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  1107. package/build/dist/UI/Components/SideOver/SideOver.js +5 -20
  1108. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  1109. package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js +22 -1
  1110. package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js.map +1 -1
  1111. package/build/dist/UI/Components/Table/CellClassName.js +55 -0
  1112. package/build/dist/UI/Components/Table/CellClassName.js.map +1 -0
  1113. package/build/dist/UI/Components/Table/TableRow.js +16 -13
  1114. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  1115. package/build/dist/UI/Components/Table/TableSkeletonRows.js +9 -8
  1116. package/build/dist/UI/Components/Table/TableSkeletonRows.js.map +1 -1
  1117. package/build/dist/UI/Components/Tooltip/Tooltip.js +25 -1
  1118. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  1119. package/build/dist/UI/Components/Workflow/ComponentsModal.js +47 -30
  1120. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  1121. package/build/dist/UI/Components/Workflow/NodePlacement.js +37 -0
  1122. package/build/dist/UI/Components/Workflow/NodePlacement.js.map +1 -0
  1123. package/build/dist/UI/Components/Workflow/Workflow.js +35 -18
  1124. package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
  1125. package/build/dist/UI/Config.js +10 -20
  1126. package/build/dist/UI/Config.js.map +1 -1
  1127. package/build/dist/UI/Utils/GlobalKeyboardShortcut.js +138 -0
  1128. package/build/dist/UI/Utils/GlobalKeyboardShortcut.js.map +1 -0
  1129. package/build/dist/UI/Utils/PageScrollLock.js +31 -3
  1130. package/build/dist/UI/Utils/PageScrollLock.js.map +1 -1
  1131. package/build/dist/UI/Utils/PermissionGate.js +42 -1
  1132. package/build/dist/UI/Utils/PermissionGate.js.map +1 -1
  1133. package/build/dist/UI/Utils/SensitiveUrlToken.js +97 -0
  1134. package/build/dist/UI/Utils/SensitiveUrlToken.js.map +1 -0
  1135. package/build/dist/UI/Utils/Telemetry/BrowserTelemetryConfig.js +14 -0
  1136. package/build/dist/UI/Utils/Telemetry/BrowserTelemetryConfig.js.map +1 -0
  1137. package/build/dist/UI/Utils/Telemetry/Telemetry.js +7 -5
  1138. package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
  1139. package/build/dist/UI/Utils/TestLLMProvider.js +4 -5
  1140. package/build/dist/UI/Utils/TestLLMProvider.js.map +1 -1
  1141. package/build/dist/Utils/API.js +67 -5
  1142. package/build/dist/Utils/API.js.map +1 -1
  1143. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +15 -0
  1144. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -1
  1145. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +111 -9
  1146. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  1147. package/build/dist/Utils/HTTPResponseBodyReader.js +157 -0
  1148. package/build/dist/Utils/HTTPResponseBodyReader.js.map +1 -0
  1149. package/build/dist/Utils/Monitor/MonitorMetricType.js +109 -1
  1150. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  1151. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +8 -3
  1152. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  1153. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +27 -7
  1154. package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
  1155. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +7 -5
  1156. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -1
  1157. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js +180 -0
  1158. package/build/dist/Utils/NetworkDevice/NetworkAlertPolicyBootstrapUtil.js.map +1 -0
  1159. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js +12 -0
  1160. package/build/dist/Utils/NetworkDevice/SnmpCredentialUtil.js.map +1 -0
  1161. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js +15 -5
  1162. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  1163. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +44 -15
  1164. package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
  1165. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js +52 -23
  1166. package/build/dist/Utils/NetworkDiscovery/DiscoveryImportEligibility.js.map +1 -1
  1167. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js +69 -0
  1168. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js.map +1 -0
  1169. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +85 -13
  1170. package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -1
  1171. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +30 -15
  1172. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  1173. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js +191 -0
  1174. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js.map +1 -0
  1175. package/build/dist/Utils/Rum/ChunkMath.js +76 -0
  1176. package/build/dist/Utils/Rum/ChunkMath.js.map +1 -1
  1177. package/build/dist/Utils/Rum/SessionReplayHealth.js +534 -0
  1178. package/build/dist/Utils/Rum/SessionReplayHealth.js.map +1 -0
  1179. package/build/dist/Utils/Rum/SessionReplayStringMap.js +165 -0
  1180. package/build/dist/Utils/Rum/SessionReplayStringMap.js.map +1 -0
  1181. package/build/dist/Utils/Schema/ModelSchema.js +1 -0
  1182. package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
  1183. package/build/dist/Utils/StatusPage/ResourceSearch.js +200 -0
  1184. package/build/dist/Utils/StatusPage/ResourceSearch.js.map +1 -0
  1185. package/build/dist/Utils/Telemetry/OriginAllowList.js +299 -0
  1186. package/build/dist/Utils/Telemetry/OriginAllowList.js.map +1 -0
  1187. package/build/dist/Utils/Uptime/DayUptimeGraphUtil.js +147 -0
  1188. package/build/dist/Utils/Uptime/DayUptimeGraphUtil.js.map +1 -0
  1189. package/build/dist/Utils/ValueFormatter.js +32 -1
  1190. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  1191. package/package.json +2 -2
@@ -8,13 +8,109 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import NotAuthenticatedException from "../../Types/Exception/NotAuthenticatedException";
11
+ import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
12
+ import TooManyRequestsException from "../../Types/Exception/TooManyRequestsException";
13
+ import { DEFAULT_BROWSER_KEY_REQUESTS_PER_MINUTE, } from "../../Types/Telemetry/TelemetryIngestionKeyPolicy";
14
+ import TelemetryIngestionKeyType from "../../Types/Telemetry/TelemetryIngestionKeyType";
15
+ import { BROWSER_ALLOWED_INGEST_SURFACES, getIngestSurfaceReadableName, } from "../../Types/Telemetry/TelemetryIngestSurface";
16
+ import OriginAllowList from "../../Utils/Telemetry/OriginAllowList";
17
+ import { headerValueToString, } from "../../Server/Utils/Express";
11
18
  import TelemetryIngestionKeyService from "../../Server/Services/TelemetryIngestionKeyService";
12
19
  import Response from "../Utils/Response";
13
20
  import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
14
21
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
22
  import SpanUtil from "../Utils/Telemetry/SpanUtil";
16
- export default class TelemetryIngest {
23
+ import TelemetryIngestionKeyRateLimiter, { TelemetryIngestionKeyLimitOutcome, } from "../Utils/Telemetry/TelemetryIngestionKeyRateLimiter";
24
+ /*
25
+ * A Redis outage puts EVERY ingest request on the counter-unavailable path,
26
+ * so an unguarded log line there is one line per ingested request for as long
27
+ * as the outage lasts. The ingest path is the highest-volume surface in the
28
+ * product, so that buries the very incident it is reporting. Same throttle as
29
+ * PublicDashboardRateLimit and the limiter itself.
30
+ */
31
+ const COUNTER_UNAVAILABLE_LOG_INTERVAL_MS = 60 * 1000;
32
+ /*
33
+ * Readable name used when a legacy call site did not name its surface. See
34
+ * isAuthorizedServiceMiddleware for why such call sites are treated as
35
+ * server-only.
36
+ */
37
+ const UNNAMED_SURFACE_READABLE_NAME = "this ingest endpoint";
38
+ /*
39
+ * How many requests per minute this key may make, or null for "no limit".
40
+ *
41
+ * Exported so the branches can be pinned directly in tests without standing
42
+ * up an Express request, a Redis client and a mocked service just to observe
43
+ * an arithmetic decision.
44
+ *
45
+ * The asymmetry in the fallback is the whole backwards-compatibility story of
46
+ * this feature: an existing Server key has requestsPerMinuteLimit NULL and
47
+ * must keep behaving exactly as it did before this shipped, which means no
48
+ * limit and - see the call site - not even a Redis round trip. A Browser key
49
+ * with NULL falls back to the shipped default instead, because a public key
50
+ * with no ceiling is the thing we are trying to stop shipping: "the customer
51
+ * did not configure a limit" cannot be allowed to mean "unlimited" there.
52
+ */
53
+ export const getEffectiveRequestsPerMinuteLimit = (policy) => {
54
+ /*
55
+ * An explicit limit wins for both key types, including a Server key: a
56
+ * customer who deliberately set a ceiling on a server key asked for one
57
+ * and should get it.
58
+ */
59
+ if (typeof policy.requestsPerMinuteLimit === "number" &&
60
+ Number.isFinite(policy.requestsPerMinuteLimit) &&
61
+ policy.requestsPerMinuteLimit > 0) {
62
+ return policy.requestsPerMinuteLimit;
63
+ }
64
+ if (policy.keyType === TelemetryIngestionKeyType.Browser) {
65
+ return DEFAULT_BROWSER_KEY_REQUESTS_PER_MINUTE;
66
+ }
67
+ return null;
68
+ };
69
+ class TelemetryIngest {
70
+ /*
71
+ * Build the ingest guard for one named surface.
72
+ *
73
+ * Every ingest route says which surface it is, and the guard answers
74
+ * "may this key write here?" against BROWSER_ALLOWED_INGEST_SURFACES. That
75
+ * is what stops a key scraped off a public page from being replayed into
76
+ * profile / syslog / Fluent / Pyroscope / source-map / Kubernetes-cost /
77
+ * change-event / security-event ingest, none of which any browser has
78
+ * business calling.
79
+ *
80
+ * This returns a thin closure around a single @CaptureSpan-decorated
81
+ * method rather than being decorated itself: a decorator on a factory would
82
+ * open a span when the route table is built at boot, once, and never again
83
+ * per request. Passing the surface as an argument keeps exactly one
84
+ * decorated frame, on the function that actually handles a request.
85
+ */
86
+ static forSurface(surface) {
87
+ return (req, res, next) => {
88
+ return TelemetryIngest.authorizeIngestRequest(surface, req, res, next);
89
+ };
90
+ }
91
+ /**
92
+ * Backwards-compatible alias for call sites that have not been moved to
93
+ * forSurface().
94
+ *
95
+ * It authorizes with NO named surface, which is treated as SERVER-ONLY: a
96
+ * Browser key is refused here. That direction is deliberate. Routes are
97
+ * being migrated to forSurface() one by one, and a route that is missed
98
+ * must fail CLOSED - a missed browser-capable route is a public credential
99
+ * reaching an endpoint nobody decided it should reach, whereas a missed
100
+ * server-only route is a customer seeing "use a server ingestion key" and
101
+ * filing a bug we can fix in a line. The default must never be the
102
+ * permissive one.
103
+ */
17
104
  static async isAuthorizedServiceMiddleware(req, res, next) {
105
+ return TelemetryIngest.authorizeIngestRequest(null, req, res, next);
106
+ }
107
+ /*
108
+ * The single decorated frame that does the work.
109
+ *
110
+ * `surface` is null only for the legacy alias above, and null means
111
+ * "server-only, unnamed".
112
+ */
113
+ static async authorizeIngestRequest(surface, req, res, next) {
18
114
  try {
19
115
  // check header.
20
116
  let oneuptimeToken = req.headers["x-oneuptime-token"];
@@ -37,8 +133,14 @@ export default class TelemetryIngest {
37
133
  */
38
134
  return Response.sendErrorResponse(req, res, new NotAuthenticatedException("Missing ingestion token. Send your OneUptime telemetry ingestion key in the x-oneuptime-token header."));
39
135
  }
40
- const projectId = await TelemetryIngestionKeyService.getProjectIdFromSecretKey(oneuptimeToken.toString());
41
- if (!projectId) {
136
+ /*
137
+ * One lookup resolves everything the guard needs. The policy is NOT a
138
+ * decision - a disabled or expired key still resolves - so that each
139
+ * refusal below can say precisely why, rather than every failure mode
140
+ * collapsing into an indistinguishable "invalid token".
141
+ */
142
+ const policy = await TelemetryIngestionKeyService.getPolicyFromSecretKey(oneuptimeToken.toString());
143
+ if (!policy) {
42
144
  /*
43
145
  * The token value itself is deliberately NOT logged: ingestion
44
146
  * keys are secrets, and a mistyped-but-nearly-valid token in a
@@ -53,22 +155,238 @@ export default class TelemetryIngest {
53
155
  */
54
156
  return Response.sendErrorResponse(req, res, new NotAuthenticatedException("Invalid ingestion token. Send a valid OneUptime telemetry ingestion key in the x-oneuptime-token header."));
55
157
  }
56
- req.projectId = projectId;
57
- // Tag span with project context for telemetry ingestion observability
158
+ /*
159
+ * Kill switch, checked before anything else about the key, so that
160
+ * turning a leaked key off is the one action guaranteed to stop it
161
+ * regardless of which surface it is hitting or what its allowlist says.
162
+ *
163
+ * 403 rather than 401: the credential was recognised, it is simply not
164
+ * permitted to write. That distinction is what lets a customer tell
165
+ * "I pasted the wrong key" apart from "someone switched my key off",
166
+ * which are very different Tuesday afternoons.
167
+ */
168
+ if (policy.isEnabled === false) {
169
+ return Response.sendErrorResponse(req, res, new NotAuthorizedException("This telemetry ingestion key has been disabled."));
170
+ }
171
+ /*
172
+ * Expiry. 401 here rather than 403 for the same reason as the branches
173
+ * above: OTLP treats 401 as non-retryable, so a collector holding an
174
+ * expired key logs the failure once instead of retry-storming an
175
+ * endpoint that will never accept it again.
176
+ *
177
+ * The exact expiry timestamp is deliberately kept out of the response.
178
+ * The caller has failed to authenticate; the key's configuration is
179
+ * visible in the dashboard to the people actually entitled to it, and
180
+ * there is no reason to hand details of a project's credentials to
181
+ * whoever happens to be holding a dead one.
182
+ */
183
+ if (policy.expiresAt && policy.expiresAt.getTime() <= Date.now()) {
184
+ return Response.sendErrorResponse(req, res, new NotAuthenticatedException("This telemetry ingestion key expired."));
185
+ }
186
+ const isBrowserKey = policy.keyType === TelemetryIngestionKeyType.Browser;
187
+ if (isBrowserKey) {
188
+ /*
189
+ * Surface allowlist. `surface === null` (the legacy alias) is not in
190
+ * the set by construction, so an un-migrated route refuses browser
191
+ * keys - see isAuthorizedServiceMiddleware for why that is the safe
192
+ * direction.
193
+ */
194
+ const isSurfaceAllowedForBrowserKey = surface !== null && BROWSER_ALLOWED_INGEST_SURFACES.has(surface);
195
+ if (!isSurfaceAllowedForBrowserKey) {
196
+ const readableSurfaceName = surface
197
+ ? getIngestSurfaceReadableName(surface)
198
+ : UNNAMED_SURFACE_READABLE_NAME;
199
+ return Response.sendErrorResponse(req, res, new NotAuthorizedException(`A browser ingestion key cannot be used for ${readableSurfaceName}. Use a server ingestion key.`));
200
+ }
201
+ const originRefusalMessage = TelemetryIngest.getOriginRefusalMessage(req, policy);
202
+ if (originRefusalMessage) {
203
+ return Response.sendErrorResponse(req, res, new NotAuthorizedException(originRefusalMessage));
204
+ }
205
+ }
206
+ /*
207
+ * Rate limit.
208
+ *
209
+ * A null effective limit means "no limit", and it short-circuits BEFORE
210
+ * Redis is touched. That is why the limit is computed here rather than
211
+ * left to the limiter: the overwhelmingly common case is an existing
212
+ * Server key with no configured limit, and that path must pay literally
213
+ * nothing - no client lookup, no round trip, no added latency on every
214
+ * OTLP payload the product accepts. This feature is not allowed to make
215
+ * today's ingest slower.
216
+ */
217
+ const effectiveLimitPerMinute = getEffectiveRequestsPerMinuteLimit(policy);
218
+ if (effectiveLimitPerMinute !== null) {
219
+ const decision = await TelemetryIngestionKeyRateLimiter.consume({
220
+ ingestionKeyId: policy.ingestionKeyId,
221
+ limitPerMinute: effectiveLimitPerMinute,
222
+ });
223
+ if (decision.outcome === TelemetryIngestionKeyLimitOutcome.RateLimited) {
224
+ if (decision.retryAfterSeconds) {
225
+ TelemetryIngest.setRetryAfterHeader(res, decision.retryAfterSeconds);
226
+ }
227
+ /*
228
+ * Log only the request that crossed the line. A rejected client
229
+ * keeps knocking by definition, so logging every refusal turns an
230
+ * ingest flood into a second flood in the log pipeline - which is
231
+ * exactly what an operator does not need while trying to work out
232
+ * WHICH key is being abused.
233
+ */
234
+ if (decision.isFirstRejectionInWindow) {
235
+ logger.warn(`TelemetryIngest: ingestion key ${policy.ingestionKeyId.toString()} exceeded its limit of ${effectiveLimitPerMinute} requests per minute`);
236
+ }
237
+ return Response.sendErrorResponse(req, res, new TooManyRequestsException("Too many telemetry requests for this ingestion key. Please retry later."));
238
+ }
239
+ if (decision.outcome ===
240
+ TelemetryIngestionKeyLimitOutcome.CounterUnavailable) {
241
+ /*
242
+ * FAIL OPEN. Redis is unreachable, so no ceiling can be honoured
243
+ * either way, and we admit the request.
244
+ *
245
+ * This limit bounds ABUSE of a key that leaked; it is not a privacy
246
+ * control and not a hard billing quota. Failing closed would stop
247
+ * every paying customer's production telemetry for the length of a
248
+ * Redis blip, and the gap is permanent because dropped spans are
249
+ * never replayed - an infrastructure hiccup would become
250
+ * customer-visible data loss, with the operator's incident
251
+ * dashboards dark at exactly the wrong moment. Failing open hands
252
+ * an attacker who already holds a scraped key an unbounded window
253
+ * for the duration of the blip, while the origin allowlist, the
254
+ * surface allowlist and the kill switch all still apply (they
255
+ * resolve from Postgres, not Redis) and Redis being down is itself
256
+ * alarmed on.
257
+ *
258
+ * SessionReplayRateLimiter makes the opposite call for the opposite
259
+ * reason: a recording is a video of a real person, and accepting an
260
+ * unbounded volume of that is not a recoverable mistake.
261
+ */
262
+ if (TelemetryIngest.shouldLogCounterUnavailable()) {
263
+ logger.warn("TelemetryIngest: ingestion key rate limit counter unavailable, admitting telemetry unthrottled");
264
+ }
265
+ }
266
+ }
267
+ req.projectId = policy.projectId;
268
+ req.ingestionKeyPolicy = policy;
269
+ /*
270
+ * Tag span with project context for telemetry ingestion observability.
271
+ * Key type and surface are here because they are the two dimensions
272
+ * this feature is judged on: "are browser keys actually being used, and
273
+ * where" is unanswerable without them, and they turn "refusal rate by
274
+ * key type" into a one-line query.
275
+ */
58
276
  SpanUtil.addAttributesToCurrentSpan({
59
- projectId: projectId.toString(),
277
+ projectId: policy.projectId.toString(),
278
+ telemetryIngestionKeyType: policy.keyType,
279
+ telemetryIngestSurface: surface ? surface.toString() : "unspecified",
280
+ });
281
+ /*
282
+ * Fire and forget: lastUsedAt is bookkeeping for the dashboard, and the
283
+ * service already throttles the write and swallows its own errors.
284
+ * Awaiting it would put a database write on the hot path of every
285
+ * ingested payload for a column nobody reads in real time. The .catch
286
+ * is belt and braces so a rejection can never surface as an unhandled
287
+ * rejection.
288
+ */
289
+ TelemetryIngestionKeyService.markUsed(policy.ingestionKeyId).catch((err) => {
290
+ logger.warn(`TelemetryIngest: failed to record last used for ingestion key ${policy.ingestionKeyId.toString()}`);
291
+ logger.warn(err);
60
292
  });
61
293
  next();
62
294
  }
63
295
  catch (err) {
296
+ /*
297
+ * Record on THIS middleware's own @CaptureSpan span before handing the
298
+ * error to Express. The decorator sees a normal return (we call
299
+ * next(err) rather than rethrowing — Express 4 does not catch a
300
+ * rejection from an async middleware), so its recorder never runs and
301
+ * without this the error is invisible on the span it actually belongs
302
+ * to. Goes through SpanUtil so the event is typed by class name rather
303
+ * than by HTTP status, and so a rejected credential produces a `fault`
304
+ * event instead of an Issue.
305
+ */
306
+ SpanUtil.recordExceptionOnCurrentSpan(err);
64
307
  return next(err);
65
308
  }
66
309
  }
310
+ /*
311
+ * Origin enforcement for a Browser key. Returns the refusal message, or
312
+ * null when the request may proceed.
313
+ *
314
+ * NOTE THE DELIBERATE ASYMMETRY WITH SessionReplayGateCache: there an empty
315
+ * allowlist means "any origin", because session replay shipped that way and
316
+ * tightening it would break live installations. Here an empty allowlist
317
+ * REFUSES. A browser key is only safe to publish in a page because the
318
+ * allowlist exists - it is the one thing standing between "a credential
319
+ * anyone can read" and "a credential anyone can use" - so reading "no
320
+ * allowlist" as "any origin" would hand out precisely the unbounded public
321
+ * write key this whole feature exists to eliminate. Empty must fail closed.
322
+ *
323
+ * TelemetryIngestionKeyService refuses to create or update a Browser key
324
+ * with an empty allowlist, so for keys created after this ships the branch
325
+ * is unreachable; it is here for rows that predate it and for anything that
326
+ * writes the table without going through the service.
327
+ *
328
+ * AND BE HONEST ABOUT WHAT THIS BUYS: Origin is a browser-enforced header.
329
+ * A browser will not let page JavaScript forge it, which is what makes it
330
+ * meaningful against the actual threat here - someone lifting a key out of
331
+ * one site's page source and using it from another site. A non-browser
332
+ * client (curl, a script, a proxy) sets any Origin it likes, so this stops
333
+ * casual key reuse and nothing more. What actually contains a determined
334
+ * attacker is the rest of the set: the per-key rate limit bounds the
335
+ * volume, the pinned service.name stops forged data masquerading as backend
336
+ * telemetry, and the kill switch ends it outright.
337
+ */
338
+ static getOriginRefusalMessage(req, policy) {
339
+ const origin = headerValueToString(req.headers["origin"]);
340
+ if (!origin) {
341
+ /*
342
+ * Say the header is missing rather than echoing an empty string into
343
+ * the message - "Origin is not allowed" reads like a bug and tells the
344
+ * customer nothing about what to fix.
345
+ */
346
+ return "This request did not send an Origin header, so it cannot be checked against the allowed origins of this browser ingestion key. Use a server ingestion key for requests that are not sent by a browser.";
347
+ }
348
+ if (policy.allowedOrigins.length === 0 ||
349
+ !OriginAllowList.matches(origin, policy.allowedOrigins)) {
350
+ /*
351
+ * The origin is echoed back on purpose. It is the caller's own value,
352
+ * never a secret, and it is the single most useful thing a customer can
353
+ * be told while debugging an allowlist - the usual cause is a scheme,
354
+ * port or trailing-slash mismatch that stays invisible until the two
355
+ * strings are put side by side.
356
+ */
357
+ return `Origin ${origin} is not allowed for this browser ingestion key.`;
358
+ }
359
+ return null;
360
+ }
361
+ static shouldLogCounterUnavailable() {
362
+ const now = Date.now();
363
+ if (now - TelemetryIngest.counterUnavailableLastLoggedAt <
364
+ COUNTER_UNAVAILABLE_LOG_INTERVAL_MS) {
365
+ return false;
366
+ }
367
+ TelemetryIngest.counterUnavailableLastLoggedAt = now;
368
+ return true;
369
+ }
370
+ /*
371
+ * Reached through a runtime check because the response object is not always
372
+ * a real Express response - unit tests hand this middleware a bare object -
373
+ * and a missing header on a 429 is a far better outcome than a TypeError
374
+ * that turns a deliberate refusal into a 500. Same helper as
375
+ * PublicDashboardRateLimit.
376
+ */
377
+ static setRetryAfterHeader(res, retryAfterSeconds) {
378
+ const setHeader = res["setHeader"];
379
+ if (typeof setHeader === "function") {
380
+ setHeader.call(res, "Retry-After", String(retryAfterSeconds));
381
+ }
382
+ }
67
383
  }
384
+ TelemetryIngest.counterUnavailableLastLoggedAt = 0;
385
+ export default TelemetryIngest;
68
386
  __decorate([
69
387
  CaptureSpan(),
70
388
  __metadata("design:type", Function),
71
- __metadata("design:paramtypes", [Object, Object, Function]),
389
+ __metadata("design:paramtypes", [Object, Object, Object, Function]),
72
390
  __metadata("design:returntype", Promise)
73
- ], TelemetryIngest, "isAuthorizedServiceMiddleware", null);
391
+ ], TelemetryIngest, "authorizeIngestRequest", null);
74
392
  //# sourceMappingURL=TelemetryIngest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryIngest.js","sourceRoot":"","sources":["../../../../Server/Middleware/TelemetryIngest.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AAQxF,OAAO,4BAA4B,MAAM,oDAAoD,CAAC;AAC9F,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,MAAM,EAAE,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AAOnD,MAAM,CAAC,OAAO,OAAO,eAAe;IAEd,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAC/C,GAAmB,EACnB,GAAoB,EACpB,IAAkB;QAElB,IAAI,CAAC;YACH,gBAAgB;YAEhB,IAAI,cAAc,GAAuB,GAAG,CAAC,OAAO,CAClD,mBAAmB,CACE,CAAC;YAExB,yEAAyE;YACzE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAE3C,CAAC;YAChB,CAAC;YAED,yEAAyE;YACzE,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAE3C,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CACV,mCAAmC,EACnC,2BAA2B,CAAC,GAAU,CAAC,CACxC,CAAC;gBAEF;;;;;;mBAMG;gBACH,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,yBAAyB,CAC3B,uGAAuG,CACxG,CACF,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GACb,MAAM,4BAA4B,CAAC,yBAAyB,CAC1D,cAAc,CAAC,QAAQ,EAAE,CAC1B,CAAC;YAEJ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf;;;;;mBAKG;gBACH,MAAM,CAAC,KAAK,CACV,wBAAwB,EACxB,2BAA2B,CAAC,GAAU,CAAC,CACxC,CAAC;gBAEF;;;;mBAIG;gBACH,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,yBAAyB,CAC3B,0GAA0G,CAC3G,CACF,CAAC;YACJ,CAAC;YAEA,GAAwB,CAAC,SAAS,GAAG,SAAS,CAAC;YAEhD,sEAAsE;YACtE,QAAQ,CAAC,0BAA0B,CAAC;gBAClC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;aAChC,CAAC,CAAC;YAEH,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AA3FqB;IADnB,WAAW,EAAE;;;;0DA2Fb"}
1
+ {"version":3,"file":"TelemetryIngest.js","sourceRoot":"","sources":["../../../../Server/Middleware/TelemetryIngest.ts"],"names":[],"mappings":"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"}
@@ -17,15 +17,17 @@ import Email from "../../Types/Email";
17
17
  import ObjectID from "../../Types/ObjectID";
18
18
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
19
19
  import SlackUtil from "../Utils/Workspace/Slack/Slack";
20
+ import { BillingFailureNoticeKind, shouldSendBillingFailureNotice, } from "../Utils/Billing/BillingFailureNoticeThrottle";
20
21
  import URL from "../../Types/API/URL";
21
22
  export class AIBillingService extends BaseService {
22
23
  constructor() {
23
24
  super();
24
25
  }
25
- async rechargeBalance(projectId, amountInUSD) {
26
+ async rechargeBalance(projectId, amountInUSD, options) {
26
27
  if (!IsBillingEnabled) {
27
28
  throw new BadDataException("Billing is not enabled");
28
29
  }
30
+ const sendOwnerConfirmationEmail = (options === null || options === void 0 ? void 0 : options.sendOwnerConfirmationEmail) !== false;
29
31
  const project = await ProjectService.findOneById({
30
32
  id: projectId,
31
33
  select: {
@@ -47,9 +49,26 @@ export class AIBillingService extends BaseService {
47
49
  if (!project) {
48
50
  return 0;
49
51
  }
52
+ /*
53
+ * The no-payment-method branch below throws, and that throw lands in this
54
+ * method's own catch. Without this the FIRST no-payment-method failure
55
+ * sends two "ACTION REQUIRED" emails about the same fact, one from each
56
+ * place.
57
+ */
58
+ let ownersAlreadyToldAboutThisFailure = false;
50
59
  try {
51
60
  if (!(await BillingService.hasPaymentMethods(project.paymentProviderCustomerId))) {
52
- if (!project.failedAiBalanceChargeNotificationSentToOwners) {
61
+ /*
62
+ * The same 24h window as the catch below. The project boolean this
63
+ * branch used to latch on is cleared only by a SUCCESSFUL recharge, so
64
+ * a project that never manages one was told once and then never again.
65
+ */
66
+ ownersAlreadyToldAboutThisFailure = true;
67
+ const shouldTellOwners = await shouldSendBillingFailureNotice({
68
+ projectId: project.id,
69
+ kind: BillingFailureNoticeKind.AiCreditRechargeFailed,
70
+ });
71
+ if (shouldTellOwners) {
53
72
  await ProjectService.updateOneById({
54
73
  data: {
55
74
  failedAiBalanceChargeNotificationSentToOwners: true,
@@ -86,7 +105,18 @@ export class AIBillingService extends BaseService {
86
105
  isRoot: true,
87
106
  },
88
107
  });
89
- await ProjectService.sendEmailToProjectOwners(project.id, "AI Balance Recharge Successful for project - " + (project.name || ""), `We have successfully recharged your AI balance for project - ${project.name || ""} by ${amountInUSD} USD. Your current balance is ${updatedAmount / 100} USD.`);
108
+ /*
109
+ * The confirmation is suppressed for AUTO-recharge only. It used to fire
110
+ * unconditionally, and AI auto-recharge runs from the balance check on
111
+ * every AI call, so a busy project mailed every owner once per recharge.
112
+ * Somebody who deliberately clicked "Recharge" still gets told, because
113
+ * Project.sendInvoicesByEmail defaults to false and nothing else
114
+ * reliably confirms the charge.
115
+ */
116
+ if (sendOwnerConfirmationEmail) {
117
+ await ProjectService.sendEmailToProjectOwners(project.id, "AI Balance Recharge Successful for project - " +
118
+ (project.name || ""), `We have successfully recharged your AI balance for project - ${project.name || ""} by ${amountInUSD} USD. Your current balance is ${updatedAmount / 100} USD.`);
119
+ }
90
120
  // Send Slack notification for balance refill
91
121
  this.sendBalanceRefillSlackNotification({
92
122
  project: project,
@@ -99,17 +129,35 @@ export class AIBillingService extends BaseService {
99
129
  return updatedAmount;
100
130
  }
101
131
  catch (err) {
102
- await ProjectService.updateOneById({
103
- data: {
104
- failedAiBalanceChargeNotificationSentToOwners: true,
105
- },
106
- id: project.id,
107
- props: {
108
- isRoot: true,
109
- },
110
- });
111
- await ProjectService.sendEmailToProjectOwners(project.id, "ACTION REQUIRED: AI Balance Recharge Failed for project - " +
112
- (project.name || ""), `We have tried to recharge your AI balance for project - ${project.name || ""} and failed. Please make sure your payment method is up to date and has sufficient balance. You can add new payment methods in Project Settings.`);
132
+ /*
133
+ * This block used to write failedAiBalanceChargeNotificationSentToOwners
134
+ * and then send WITHOUT ever reading it, so a project with a declined
135
+ * card mailed every owner once per recharge attempt.
136
+ *
137
+ * A 24h window rather than that boolean, for the same reason as the
138
+ * SMS/call path: the boolean is only cleared by a SUCCESSFUL recharge,
139
+ * so latching on it would let "no card -> add a card -> the card is
140
+ * declined" end in permanent silence. See BillingFailureNoticeThrottle.
141
+ */
142
+ if (!ownersAlreadyToldAboutThisFailure) {
143
+ const shouldTellOwners = await shouldSendBillingFailureNotice({
144
+ projectId: project.id,
145
+ kind: BillingFailureNoticeKind.AiCreditRechargeFailed,
146
+ });
147
+ if (shouldTellOwners) {
148
+ await ProjectService.updateOneById({
149
+ data: {
150
+ failedAiBalanceChargeNotificationSentToOwners: true,
151
+ },
152
+ id: project.id,
153
+ props: {
154
+ isRoot: true,
155
+ },
156
+ });
157
+ await ProjectService.sendEmailToProjectOwners(project.id, "ACTION REQUIRED: AI Balance Recharge Failed for project - " +
158
+ (project.name || ""), `We have tried to recharge your AI balance for project - ${project.name || ""} and failed. Please make sure your payment method is up to date and has sufficient balance. You can add new payment methods in Project Settings.`);
159
+ }
160
+ }
113
161
  logger.error(err);
114
162
  throw err;
115
163
  }
@@ -147,7 +195,13 @@ export class AIBillingService extends BaseService {
147
195
  autoRechargeAiWhenCurrentBalanceFallsInUSD) {
148
196
  if ((project.aiCurrentBalanceInUSDCents || 0) / 100 <
149
197
  autoRechargeAiWhenCurrentBalanceFallsInUSD) {
150
- const updatedAmount = await this.rechargeBalance(projectId, autoAiRechargeByBalanceInUSD);
198
+ const updatedAmount = await this.rechargeBalance(projectId, autoAiRechargeByBalanceInUSD, {
199
+ /*
200
+ * This runs from the balance check on every AI call, so a
201
+ * success email here is one message to every owner per recharge.
202
+ */
203
+ sendOwnerConfirmationEmail: false,
204
+ });
151
205
  project.aiCurrentBalanceInUSDCents = updatedAmount;
152
206
  }
153
207
  }
@@ -177,7 +231,7 @@ ${project.createdOwnerName && project.createdOwnerEmail ? `*Project Created By:*
177
231
  __decorate([
178
232
  CaptureSpan(),
179
233
  __metadata("design:type", Function),
180
- __metadata("design:paramtypes", [ObjectID, Number]),
234
+ __metadata("design:paramtypes", [ObjectID, Number, Object]),
181
235
  __metadata("design:returntype", Promise)
182
236
  ], AIBillingService.prototype, "rechargeBalance", null);
183
237
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"AIBillingService.js","sourceRoot":"","sources":["../../../../Server/Services/AIBillingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIBillingService.js","sourceRoot":"","sources":["../../../../Server/Services/AIBillingService.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,7 @@ export class AccessTokenService extends BaseService {
120
120
  const teamPermissions = await TeamPermissionService.findBy({
121
121
  query: {
122
122
  teamId: QueryHelper.any(teamIds),
123
+ projectId: projectId,
123
124
  },
124
125
  select: {
125
126
  permission: true,
@@ -1 +1 @@
1
- {"version":3,"file":"AccessTokenService.js","sourceRoot":"","sources":["../../../../Server/Services/AccessTokenService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AccessTokenService.js","sourceRoot":"","sources":["../../../../Server/Services/AccessTokenService.ts"],"names":[],"mappings":"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"}