@oneuptime/common 12.0.33 → 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 (652) hide show
  1. package/Models/AnalyticsModels/RumSession.ts +117 -1
  2. package/Models/AnalyticsModels/RumSessionChunk.ts +13 -0
  3. package/Models/DatabaseModels/AlertCustomField.ts +77 -3
  4. package/Models/DatabaseModels/ApiKeyPermission.ts +3 -27
  5. package/Models/DatabaseModels/IncidentCustomField.ts +77 -3
  6. package/Models/DatabaseModels/InventoryItemCustomField.ts +77 -3
  7. package/Models/DatabaseModels/MonitorCustomField.ts +77 -3
  8. package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +77 -3
  9. package/Models/DatabaseModels/RumApplication.ts +6 -6
  10. package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +77 -3
  11. package/Models/DatabaseModels/StatusPageCustomField.ts +77 -3
  12. package/Models/DatabaseModels/TeamCustomField.ts +77 -3
  13. package/Models/DatabaseModels/TeamMember.ts +0 -9
  14. package/Models/DatabaseModels/TeamMemberCustomField.ts +77 -3
  15. package/Models/DatabaseModels/TeamPermission.ts +3 -24
  16. package/Models/DatabaseModels/TelemetryIngestionKey.ts +260 -0
  17. package/Models/DatabaseModels/UserTelegram.ts +0 -4
  18. package/Scripts/benchmark-fanin-capacity.js +181 -0
  19. package/Server/API/TelemetryAPI.ts +1284 -164
  20. package/Server/API/UserNotificationSettingAPI.ts +55 -0
  21. package/Server/API/UserTelegramAPI.ts +48 -4
  22. package/Server/EnvironmentConfig.ts +35 -2
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1791300000000-AddTelemetryIngestionKeyType.ts +91 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1791400000000-SessionReplayRecordEverySessionByDefault.ts +67 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1791500000000-WidenCustomFieldDropdownOptions.ts +139 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1791600000000-AddCustomFieldValueMapping.ts +121 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  28. package/Server/Infrastructure/QueueWorker.ts +20 -14
  29. package/Server/Infrastructure/Semaphore.ts +2 -0
  30. package/Server/Middleware/TelemetryIngest.ts +453 -7
  31. package/Server/Services/AccessTokenService.ts +1 -0
  32. package/Server/Services/AlertCustomFieldService.ts +98 -0
  33. package/Server/Services/AlertService.ts +37 -0
  34. package/Server/Services/ApiKeyPermissionService.ts +461 -29
  35. package/Server/Services/CustomFieldMappingService.ts +879 -0
  36. package/Server/Services/GlobalConfigService.ts +194 -0
  37. package/Server/Services/IncidentCustomFieldService.ts +98 -0
  38. package/Server/Services/IncidentService.ts +35 -0
  39. package/Server/Services/MetricService.ts +194 -0
  40. package/Server/Services/MonitorService.ts +32 -0
  41. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +78 -25
  42. package/Server/Services/ProjectService.ts +22 -0
  43. package/Server/Services/RoutineEmailSettingsService.ts +73 -0
  44. package/Server/Services/RumSessionReplayViewService.ts +104 -24
  45. package/Server/Services/ScheduledMaintenanceCustomFieldService.ts +98 -0
  46. package/Server/Services/ScheduledMaintenanceService.ts +32 -0
  47. package/Server/Services/TeamMemberService.ts +78 -0
  48. package/Server/Services/TeamPermissionService.ts +235 -3
  49. package/Server/Services/TelemetryIngestionKeyService.ts +722 -19
  50. package/Server/Services/UserNotificationSettingService.ts +34 -6
  51. package/Server/Services/UserTelegramService.ts +326 -5
  52. package/Server/Types/Database/QueryHelper.ts +2 -0
  53. package/Server/Utils/APIKey/AccessPermission.ts +5 -2
  54. package/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.ts +54 -0
  55. package/Server/Utils/CustomField/CustomFieldMappingRegistry.ts +415 -0
  56. package/Server/Utils/CustomField/CustomFieldMappingValidator.ts +335 -0
  57. package/Server/Utils/DataSource/EgressGuard.ts +177 -8
  58. package/Server/Utils/EmailRollup/EmailRollupConstants.ts +38 -5
  59. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +57 -4
  60. package/Server/Utils/FrontendEnvironment.ts +40 -0
  61. package/Server/Utils/LogRedaction.ts +20 -0
  62. package/Server/Utils/Logger.ts +11 -0
  63. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +338 -77
  64. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +30 -4
  65. package/Server/Utils/Monitor/MonitorAlert.ts +29 -6
  66. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +110 -15
  67. package/Server/Utils/Monitor/MonitorIncident.ts +22 -6
  68. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +29 -0
  69. package/Server/Utils/Monitor/SeriesContextEnricher.ts +304 -0
  70. package/Server/Utils/SSRFProtection.ts +217 -10
  71. package/Server/Utils/SessionReplay/SessionReplayGateCache.ts +239 -138
  72. package/Server/Utils/SessionReplay/SessionReplayHealthCounters.ts +305 -0
  73. package/Server/Utils/SessionReplay/SessionReplayReadService.ts +1430 -289
  74. package/Server/Utils/StartServer.ts +2 -17
  75. package/Server/Utils/TelegramVerificationToken.ts +185 -0
  76. package/Server/Utils/Telemetry/PinServiceName.ts +197 -0
  77. package/Server/Utils/Telemetry/TelemetryFanInWriter.ts +38 -16
  78. package/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.ts +92 -0
  79. package/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.ts +217 -0
  80. package/Server/Utils/VM/VMAPI.ts +1 -0
  81. package/Server/Utils/VM/VMRunner.ts +975 -95
  82. package/Tests/App/AdminDashboard/AdminHeaderSmallScreens.test.tsx +202 -0
  83. package/Tests/App/Dashboard/DashboardHeaderSmallScreens.test.tsx +404 -0
  84. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +468 -0
  85. package/Tests/App/Dashboard/NotificationEmailPreferences.test.tsx +399 -0
  86. package/Tests/App/StatusPage/StatusPageLastUpdated.test.tsx +263 -0
  87. package/Tests/App/StatusPage/StatusPageOverviewLiveAndSearch.test.tsx +753 -0
  88. package/Tests/App/StatusPage/StatusPageResourceSearchBox.test.tsx +224 -0
  89. package/Tests/Models/AnalyticsModels/RumSessionReplayColumns.test.ts +262 -0
  90. package/Tests/Models/CustomFieldMappingColumns.test.ts +166 -0
  91. package/Tests/Models/DatabaseModels/SessionReplayModels.test.ts +20 -6
  92. package/Tests/ResponsiveVisibility.test.ts +115 -0
  93. package/Tests/ResponsiveVisibility.ts +183 -0
  94. package/Tests/Server/API/SessionReplayAPI.test.ts +1940 -216
  95. package/Tests/Server/API/UserNotificationSettingAPI.test.ts +186 -0
  96. package/Tests/Server/API/UserTelegramAPISecurity.test.ts +231 -0
  97. package/Tests/Server/EnvironmentConfigFrontendSecurity.test.ts +234 -0
  98. package/Tests/Server/Infrastructure/Postgres/CustomFieldValueMappingMigration.test.ts +202 -0
  99. package/Tests/Server/Infrastructure/Postgres/InventoryItemArchiveMigration.test.ts +41 -0
  100. package/Tests/Server/Infrastructure/Postgres/SessionReplayRecordEverySessionByDefaultMigration.test.ts +169 -0
  101. package/Tests/Server/Infrastructure/QueueWorkerTimeout.test.ts +210 -0
  102. package/Tests/Server/Infrastructure/TelemetryExporterDeploymentConfig.test.ts +130 -0
  103. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +4 -1
  104. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +1163 -0
  105. package/Tests/Server/Middleware/TelemetryIngestTokenLog.test.ts +5 -3
  106. package/Tests/Server/Services/AddTelemetryIngestionKeyTypeMigration.test.ts +555 -0
  107. package/Tests/Server/Services/ApiKeyPermissionSecurity.test.ts +678 -0
  108. package/Tests/Server/Services/ApiKeyPermissionService.test.ts +276 -28
  109. package/Tests/Server/Services/CustomFieldDropdownOptionsColumnWidth.test.ts +431 -0
  110. package/Tests/Server/Services/CustomFieldMappingService.test.ts +850 -0
  111. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +32 -0
  112. package/Tests/Server/Services/GlobalConfigService.test.ts +414 -1
  113. package/Tests/Server/Services/MetricRawEntityKeyPrune.test.ts +592 -0
  114. package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +226 -1
  115. package/Tests/Server/Services/RoutineEmailSettingsPostgres.test.ts +329 -0
  116. package/Tests/Server/Services/RumSessionReplayViewService.test.ts +267 -0
  117. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +9 -0
  118. package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +9 -0
  119. package/Tests/Server/Services/TeamPrivilegeEscalation.test.ts +834 -0
  120. package/Tests/Server/Services/TelemetryIngestionKeyPolicyResolution.test.ts +814 -0
  121. package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +998 -0
  122. package/Tests/Server/Services/UserNotificationSettingRollupRouting.test.ts +141 -0
  123. package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +18 -10
  124. package/Tests/Server/Services/UserTelegramVerificationSecurity.test.ts +688 -0
  125. package/Tests/Server/Utils/AI/SRE/Insights/FixRouting.test.ts +497 -0
  126. package/Tests/Server/Utils/AI/Toolbox/Serializer.test.ts +383 -0
  127. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +7 -3
  128. package/Tests/Server/Utils/AnalyticsDatabase/ClusterConfig.test.ts +315 -0
  129. package/Tests/Server/Utils/CustomField/CustomFieldMappingValidator.test.ts +437 -0
  130. package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +300 -11
  131. package/Tests/Server/Utils/EmailRollup/EmailRollupBurstWindow.test.ts +83 -0
  132. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerBehaviour.test.ts +1 -1
  133. package/Tests/Server/Utils/EmailRollup/EmailRollupFlushRunnerPreferences.test.ts +362 -0
  134. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +77 -1
  135. package/Tests/Server/Utils/FrontendEnvironment.test.ts +190 -0
  136. package/Tests/Server/Utils/LogRedaction.test.ts +26 -0
  137. package/Tests/Server/Utils/LoggerCredentialLeak.test.ts +23 -9
  138. package/Tests/Server/Utils/Monitor/Criteria/CompareCriteriaAggregation.test.ts +584 -0
  139. package/Tests/Server/Utils/Monitor/Criteria/IncomingRequestHeaderCriteria.test.ts +236 -0
  140. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +437 -0
  141. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilSeriesContext.test.ts +176 -0
  142. package/Tests/Server/Utils/Monitor/SeriesContextEnricher.test.ts +356 -0
  143. package/Tests/Server/Utils/SSRFProtectionCloudServiceAddresses.test.ts +595 -0
  144. package/Tests/Server/Utils/SessionReplay/SessionReplayGateCachePolicy.test.ts +198 -1
  145. package/Tests/Server/Utils/SessionReplay/SessionReplayHealthCounters.test.ts +453 -0
  146. package/Tests/Server/Utils/SessionReplay/SessionReplayReadServiceQueries.test.ts +1378 -0
  147. package/Tests/Server/Utils/SessionReplayOriginAllowListRefactor.test.ts +420 -0
  148. package/Tests/Server/Utils/TelegramVerificationToken.test.ts +253 -0
  149. package/Tests/Server/Utils/Telemetry/PinServiceName.test.ts +666 -0
  150. package/Tests/Server/Utils/Telemetry/TelemetryFanInWriterCapacity.test.ts +458 -0
  151. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +424 -0
  152. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.test.ts +528 -0
  153. package/Tests/Server/Utils/TelemetryExporterEnvironment.test.ts +56 -0
  154. package/Tests/Server/Utils/VM/VMRunnerHostBridgeLatency.test.ts +74 -0
  155. package/Tests/Server/Utils/VM/VMRunnerPrivateNetworkWiring.test.ts +100 -7
  156. package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +1176 -6
  157. package/Tests/Types/CustomField/CustomFieldMappingCatalog.test.ts +220 -0
  158. package/Tests/Types/CustomField/CustomFieldValueMapping.test.ts +348 -0
  159. package/Tests/Types/JSONFunctions.test.ts +260 -0
  160. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +422 -53
  161. package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +495 -15
  162. package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +191 -45
  163. package/Tests/Types/Monitor/HostAlertTemplates.test.ts +370 -42
  164. package/Tests/Types/Monitor/IotAlertTemplates.test.ts +375 -20
  165. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +636 -42
  166. package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +189 -0
  167. package/Tests/Types/Monitor/KubernetesTemplateGroupByKeys.test.ts +95 -14
  168. package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +190 -21
  169. package/Tests/Types/Monitor/ProxmoxAlertTemplates.test.ts +352 -22
  170. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationAlertDebuggability.test.ts +363 -0
  171. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +93 -18
  172. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +259 -0
  173. package/Tests/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.test.ts +476 -0
  174. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +136 -0
  175. package/Tests/Types/Monitor/SeriesContext/SeriesDebugHints.test.ts +661 -0
  176. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +507 -0
  177. package/Tests/Types/Monitor/ServiceAlertTemplates.test.ts +270 -0
  178. package/Tests/Types/Monitor/TemplateGroupByKeys.test.ts +38 -10
  179. package/Tests/Types/Monitor/Utils/RecommendationCriteriaAssertions.ts +102 -0
  180. package/Tests/Types/NotificationSetting/RoutineEmailEvents.test.ts +47 -0
  181. package/Tests/Types/Rum/SessionReplayApiContracts.test.ts +608 -0
  182. package/Tests/Types/Rum/SessionReplayCustomEvents.test.ts +434 -0
  183. package/Tests/Types/WebsiteRequest.test.ts +285 -3
  184. package/Tests/UI/Components/Charts/ChartBucketIdentity.test.ts +16 -3
  185. package/Tests/UI/Components/Charts/ChartTrailingBucketGap.test.ts +691 -0
  186. package/Tests/UI/Components/ComponentsModal.test.tsx +12 -4
  187. package/Tests/UI/Components/ComponentsModalUsability.test.tsx +518 -0
  188. package/Tests/UI/Components/CustomFields/CustomFieldsDetailMapping.test.tsx +324 -0
  189. package/Tests/UI/Components/CustomFields/MapFromCustomFieldInput.test.tsx +176 -0
  190. package/Tests/UI/Components/Graphs/DayUptimeGraph.test.tsx +484 -0
  191. package/Tests/UI/Components/HeaderRightRail.test.tsx +157 -0
  192. package/Tests/UI/Components/IconDropdownItem.test.tsx +102 -0
  193. package/Tests/UI/Components/JSONTablePrototypePollution.test.tsx +117 -0
  194. package/Tests/UI/Components/KeyboardShortcutsModal.test.tsx +214 -0
  195. package/Tests/UI/Components/ModelTable/ModelTableWrapContent.test.tsx +561 -0
  196. package/Tests/UI/Components/MonitorGraphs/UptimeBarDayModal.test.tsx +302 -0
  197. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +28 -12
  198. package/Tests/UI/Components/ShortcutDialogGuard.test.tsx +74 -0
  199. package/Tests/UI/Components/StatusPage/ResourceGroupSectionAutoExpand.test.tsx +248 -0
  200. package/Tests/UI/Components/TableCellWrapping.test.tsx +625 -0
  201. package/Tests/UI/Components/TableLoadingStates.test.tsx +205 -0
  202. package/Tests/UI/Components/Workflow/NodePlacement.test.ts +148 -0
  203. package/Tests/UI/Components/Workflow/Workflow.test.tsx +981 -0
  204. package/Tests/UI/ConfigBrowserTelemetry.test.ts +70 -0
  205. package/Tests/UI/Rum/ChunkLoader.test.ts +1036 -2
  206. package/Tests/UI/Rum/FidelityNotices.test.ts +187 -0
  207. package/Tests/UI/Rum/InactivityMap.test.ts +341 -0
  208. package/Tests/UI/Rum/PrivacySummaryCard.test.tsx +259 -0
  209. package/Tests/UI/Rum/RecordingHealthCard.test.tsx +855 -0
  210. package/Tests/UI/Rum/RecordingHealthStrip.test.tsx +594 -0
  211. package/Tests/UI/Rum/ReplayCard.test.tsx +451 -0
  212. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +536 -0
  213. package/Tests/UI/Rum/ReplayEngine.test.ts +2503 -0
  214. package/Tests/UI/Rum/ReplayEngineTypes.test.ts +171 -0
  215. package/Tests/UI/Rum/ReplayHeader.test.tsx +711 -0
  216. package/Tests/UI/Rum/ReplayLink.test.tsx +119 -0
  217. package/Tests/UI/Rum/ReplayPinControl.test.tsx +408 -0
  218. package/Tests/UI/Rum/ReplayPlaybackIntent.test.ts +152 -0
  219. package/Tests/UI/Rum/ReplayRail.test.tsx +1296 -0
  220. package/Tests/UI/Rum/ReplayRailDetail.test.tsx +900 -0
  221. package/Tests/UI/Rum/ReplayScrubber.test.tsx +763 -147
  222. package/Tests/UI/Rum/ReplaySignalTypes.test.ts +189 -0
  223. package/Tests/UI/Rum/ReplaySignals.test.ts +1579 -0
  224. package/Tests/UI/Rum/ReplayStage.test.tsx +396 -473
  225. package/Tests/UI/Rum/ReplayStageOverlays.test.tsx +918 -0
  226. package/Tests/UI/Rum/ReplayTimeline.test.tsx +696 -0
  227. package/Tests/UI/Rum/SessionReplayEmptyState.test.tsx +499 -0
  228. package/Tests/UI/Rum/SessionReplaySearchBar.test.tsx +346 -0
  229. package/Tests/UI/Rum/SessionReplaySetupGuide.test.tsx +545 -0
  230. package/Tests/UI/Rum/SessionReplayTable.test.tsx +991 -0
  231. package/Tests/UI/Rum/TargetedCapturePanel.test.tsx +254 -0
  232. package/Tests/UI/Telemetry/BrowserExporterIsolation.test.ts +71 -0
  233. package/Tests/UI/Utils/GlobalKeyboardShortcut.test.ts +344 -0
  234. package/Tests/Utils/API.test.ts +308 -0
  235. package/Tests/Utils/HTTPResponseBodyReader.test.ts +323 -0
  236. package/Tests/Utils/NetworkDiscovery/DiscoveryScanStatus.test.ts +117 -0
  237. package/Tests/Utils/Rum/ChunkMath.test.ts +83 -0
  238. package/Tests/Utils/Rum/SessionReplayHealthDiagnosis.test.ts +993 -0
  239. package/Tests/Utils/Rum/SessionReplayStringMap.test.ts +245 -0
  240. package/Tests/Utils/StatusPage/ResourceSearch.test.ts +631 -0
  241. package/Tests/Utils/Telemetry/OriginAllowList.test.ts +633 -0
  242. package/Tests/Utils/Uptime/DayUptimeGraphUtil.test.ts +461 -0
  243. package/Tests/Utils/ValueFormatter.test.ts +148 -0
  244. package/Types/CustomField/CustomFieldMappingCatalog.ts +161 -0
  245. package/Types/CustomField/CustomFieldMappingSourceResource.ts +19 -0
  246. package/Types/CustomField/CustomFieldValueMapping.ts +288 -0
  247. package/Types/Icon/IconProp.ts +1 -0
  248. package/Types/JSONFunctions.ts +189 -43
  249. package/Types/Monitor/CephAlertTemplates.ts +157 -195
  250. package/Types/Monitor/DockerAlertTemplates.ts +338 -128
  251. package/Types/Monitor/DockerSwarmAlertTemplates.ts +95 -112
  252. package/Types/Monitor/HostAlertTemplates.ts +302 -130
  253. package/Types/Monitor/IotAlertTemplates.ts +112 -104
  254. package/Types/Monitor/KubernetesAlertTemplates.ts +415 -224
  255. package/Types/Monitor/KubernetesMetricCatalog.ts +23 -19
  256. package/Types/Monitor/PodmanAlertTemplates.ts +116 -163
  257. package/Types/Monitor/ProxmoxAlertTemplates.ts +217 -99
  258. package/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.ts +98 -6
  259. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +44 -7
  260. package/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.ts +383 -0
  261. package/Types/Monitor/RumAlertTemplates.ts +46 -7
  262. package/Types/Monitor/SeriesContext/SeriesDebugHints.ts +596 -0
  263. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +554 -0
  264. package/Types/Monitor/ServiceAlertTemplates.ts +98 -11
  265. package/Types/Monitor/UptimeHistoryLabels.ts +56 -0
  266. package/Types/NotificationSetting/RoutineEmailEvents.ts +30 -0
  267. package/Types/Rum/SessionReplay.ts +209 -0
  268. package/Types/Rum/SessionReplayApi.ts +722 -0
  269. package/Types/Rum/SessionReplayCaptureTrigger.ts +21 -12
  270. package/Types/Rum/SessionReplayConsentMode.ts +11 -7
  271. package/Types/Rum/SessionReplayCustomEvents.ts +549 -0
  272. package/Types/Rum/SessionReplayHealth.ts +238 -0
  273. package/Types/Telemetry/TelemetryIngestSurface.ts +95 -0
  274. package/Types/Telemetry/TelemetryIngestionKeyPolicy.ts +75 -0
  275. package/Types/Telemetry/TelemetryIngestionKeyType.ts +29 -0
  276. package/Types/WebsiteRequest.ts +85 -3
  277. package/UI/Components/Charts/Area/AreaChart.tsx +13 -2
  278. package/UI/Components/Charts/Bar/BarChart.tsx +6 -2
  279. package/UI/Components/Charts/Line/LineChart.tsx +13 -2
  280. package/UI/Components/Charts/Types/XAxis/XAxis.ts +29 -0
  281. package/UI/Components/Charts/Utils/DataPoint.ts +22 -3
  282. package/UI/Components/Charts/Utils/TimeAnnotation.ts +76 -9
  283. package/UI/Components/Charts/Utils/XAxis.ts +217 -0
  284. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +143 -25
  285. package/UI/Components/CustomFields/MapFromCustomFieldInput.tsx +216 -0
  286. package/UI/Components/Graphs/DayUptimeGraph.tsx +173 -8
  287. package/UI/Components/Graphs/UptimeBarTooltip.tsx +22 -278
  288. package/UI/Components/Graphs/UptimeDaySummary.tsx +327 -0
  289. package/UI/Components/Header/Header.tsx +25 -9
  290. package/UI/Components/Header/IconDropdown/IconDropdownItem.tsx +10 -1
  291. package/UI/Components/Header/IconDropdown/IconDropdownMenu.tsx +6 -1
  292. package/UI/Components/Header/ProjectPicker/ProjectPicker.tsx +6 -1
  293. package/UI/Components/HeaderAlert/NotificationBell/NotificationBellDropdown.tsx +6 -1
  294. package/UI/Components/Icon/Icon.tsx +11 -0
  295. package/UI/Components/JSONTable/JSONTable.tsx +2 -2
  296. package/UI/Components/KeyboardShortcut/KeyboardShortcutsModal.tsx +125 -0
  297. package/UI/Components/KeyboardShortcut/Screenshots/README.md +19 -0
  298. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-command-palette.png +0 -0
  299. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-dialog-dark.png +0 -0
  300. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-dialog.png +0 -0
  301. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-help-menu.png +0 -0
  302. package/UI/Components/KeyboardShortcut/Screenshots/keyboard-shortcuts-narrow.png +0 -0
  303. package/UI/Components/ModelTable/Column.ts +15 -0
  304. package/UI/Components/Monitor/SeriesDebugCommandsViewer.tsx +64 -0
  305. package/UI/Components/Monitor/SeriesLabelsViewer.tsx +93 -0
  306. package/UI/Components/MonitorGraphs/Uptime.tsx +14 -2
  307. package/UI/Components/MonitorGraphs/UptimeBarDayModal.tsx +63 -10
  308. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +44 -0
  309. package/UI/Components/StatusPage/ResourceGroupSection.tsx +40 -0
  310. package/UI/Components/Table/CellClassName.ts +81 -0
  311. package/UI/Components/Table/TableRow.tsx +20 -14
  312. package/UI/Components/Table/TableSkeletonRows.tsx +9 -9
  313. package/UI/Components/Table/Types/Column.ts +36 -0
  314. package/UI/Components/Tooltip/Tooltip.tsx +11 -1
  315. package/UI/Components/Workflow/ComponentsModal.tsx +60 -39
  316. package/UI/Components/Workflow/NodePlacement.ts +57 -0
  317. package/UI/Components/Workflow/Workflow.tsx +47 -18
  318. package/UI/Config.ts +15 -33
  319. package/UI/Utils/GlobalKeyboardShortcut.ts +208 -0
  320. package/UI/Utils/Telemetry/BrowserTelemetryConfig.ts +28 -0
  321. package/UI/Utils/Telemetry/Telemetry.ts +10 -8
  322. package/Utils/API.ts +129 -3
  323. package/Utils/HTTPResponseBodyReader.ts +221 -0
  324. package/Utils/NetworkDiscovery/DiscoveryScanStatus.ts +77 -0
  325. package/Utils/Rum/ChunkMath.ts +106 -0
  326. package/Utils/Rum/SessionReplayHealth.ts +732 -0
  327. package/Utils/Rum/SessionReplayStringMap.ts +226 -0
  328. package/Utils/Schema/ModelSchema.ts +1 -0
  329. package/Utils/StatusPage/ResourceSearch.ts +290 -0
  330. package/Utils/Telemetry/OriginAllowList.ts +355 -0
  331. package/Utils/Uptime/DayUptimeGraphUtil.ts +205 -0
  332. package/Utils/ValueFormatter.ts +35 -1
  333. package/build/dist/Models/AnalyticsModels/RumSession.js +102 -19
  334. package/build/dist/Models/AnalyticsModels/RumSession.js.map +1 -1
  335. package/build/dist/Models/AnalyticsModels/RumSessionChunk.js +11 -9
  336. package/build/dist/Models/AnalyticsModels/RumSessionChunk.js.map +1 -1
  337. package/build/dist/Models/DatabaseModels/AlertCustomField.js +79 -3
  338. package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
  339. package/build/dist/Models/DatabaseModels/ApiKeyPermission.js +3 -27
  340. package/build/dist/Models/DatabaseModels/ApiKeyPermission.js.map +1 -1
  341. package/build/dist/Models/DatabaseModels/IncidentCustomField.js +79 -3
  342. package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
  343. package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js +79 -3
  344. package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js.map +1 -1
  345. package/build/dist/Models/DatabaseModels/MonitorCustomField.js +79 -3
  346. package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
  347. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +79 -3
  348. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -1
  349. package/build/dist/Models/DatabaseModels/RumApplication.js +6 -6
  350. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
  351. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +79 -3
  352. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
  353. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +79 -3
  354. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -1
  355. package/build/dist/Models/DatabaseModels/TeamCustomField.js +79 -3
  356. package/build/dist/Models/DatabaseModels/TeamCustomField.js.map +1 -1
  357. package/build/dist/Models/DatabaseModels/TeamMember.js +0 -9
  358. package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -1
  359. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js +79 -3
  360. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js.map +1 -1
  361. package/build/dist/Models/DatabaseModels/TeamPermission.js +3 -24
  362. package/build/dist/Models/DatabaseModels/TeamPermission.js.map +1 -1
  363. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +267 -0
  364. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
  365. package/build/dist/Models/DatabaseModels/UserTelegram.js +0 -4
  366. package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -1
  367. package/build/dist/Server/API/TelemetryAPI.js +769 -109
  368. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  369. package/build/dist/Server/API/UserNotificationSettingAPI.js +35 -0
  370. package/build/dist/Server/API/UserNotificationSettingAPI.js.map +1 -0
  371. package/build/dist/Server/API/UserTelegramAPI.js +28 -6
  372. package/build/dist/Server/API/UserTelegramAPI.js.map +1 -1
  373. package/build/dist/Server/EnvironmentConfig.js +29 -2
  374. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  375. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791300000000-AddTelemetryIngestionKeyType.js +60 -0
  376. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791300000000-AddTelemetryIngestionKeyType.js.map +1 -0
  377. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791400000000-SessionReplayRecordEverySessionByDefault.js +53 -0
  378. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791400000000-SessionReplayRecordEverySessionByDefault.js.map +1 -0
  379. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791500000000-WidenCustomFieldDropdownOptions.js +82 -0
  380. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791500000000-WidenCustomFieldDropdownOptions.js.map +1 -0
  381. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791600000000-AddCustomFieldValueMapping.js +46 -0
  382. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791600000000-AddCustomFieldValueMapping.js.map +1 -0
  383. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  384. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  385. package/build/dist/Server/Infrastructure/QueueWorker.js +19 -7
  386. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  387. package/build/dist/Server/Infrastructure/Semaphore.js +1 -0
  388. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  389. package/build/dist/Server/Middleware/TelemetryIngest.js +315 -8
  390. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  391. package/build/dist/Server/Services/AccessTokenService.js +1 -0
  392. package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
  393. package/build/dist/Server/Services/AlertCustomFieldService.js +93 -0
  394. package/build/dist/Server/Services/AlertCustomFieldService.js.map +1 -1
  395. package/build/dist/Server/Services/AlertService.js +34 -0
  396. package/build/dist/Server/Services/AlertService.js.map +1 -1
  397. package/build/dist/Server/Services/ApiKeyPermissionService.js +331 -28
  398. package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
  399. package/build/dist/Server/Services/CustomFieldMappingService.js +614 -0
  400. package/build/dist/Server/Services/CustomFieldMappingService.js.map +1 -0
  401. package/build/dist/Server/Services/GlobalConfigService.js +133 -0
  402. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  403. package/build/dist/Server/Services/IncidentCustomFieldService.js +93 -0
  404. package/build/dist/Server/Services/IncidentCustomFieldService.js.map +1 -1
  405. package/build/dist/Server/Services/IncidentService.js +32 -0
  406. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  407. package/build/dist/Server/Services/MetricService.js +163 -0
  408. package/build/dist/Server/Services/MetricService.js.map +1 -1
  409. package/build/dist/Server/Services/MonitorService.js +29 -0
  410. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  411. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +79 -27
  412. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  413. package/build/dist/Server/Services/ProjectService.js +22 -0
  414. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  415. package/build/dist/Server/Services/RoutineEmailSettingsService.js +69 -0
  416. package/build/dist/Server/Services/RoutineEmailSettingsService.js.map +1 -0
  417. package/build/dist/Server/Services/RumSessionReplayViewService.js +86 -24
  418. package/build/dist/Server/Services/RumSessionReplayViewService.js.map +1 -1
  419. package/build/dist/Server/Services/ScheduledMaintenanceCustomFieldService.js +93 -0
  420. package/build/dist/Server/Services/ScheduledMaintenanceCustomFieldService.js.map +1 -1
  421. package/build/dist/Server/Services/ScheduledMaintenanceService.js +29 -0
  422. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  423. package/build/dist/Server/Services/TeamMemberService.js +62 -2
  424. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  425. package/build/dist/Server/Services/TeamPermissionService.js +166 -3
  426. package/build/dist/Server/Services/TeamPermissionService.js.map +1 -1
  427. package/build/dist/Server/Services/TelemetryIngestionKeyService.js +562 -18
  428. package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
  429. package/build/dist/Server/Services/UserNotificationSettingService.js +26 -6
  430. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  431. package/build/dist/Server/Services/UserTelegramService.js +257 -4
  432. package/build/dist/Server/Services/UserTelegramService.js.map +1 -1
  433. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  434. package/build/dist/Server/Utils/APIKey/AccessPermission.js +2 -2
  435. package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
  436. package/build/dist/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.js +27 -0
  437. package/build/dist/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.js.map +1 -0
  438. package/build/dist/Server/Utils/CustomField/CustomFieldMappingRegistry.js +226 -0
  439. package/build/dist/Server/Utils/CustomField/CustomFieldMappingRegistry.js.map +1 -0
  440. package/build/dist/Server/Utils/CustomField/CustomFieldMappingValidator.js +189 -0
  441. package/build/dist/Server/Utils/CustomField/CustomFieldMappingValidator.js.map +1 -0
  442. package/build/dist/Server/Utils/DataSource/EgressGuard.js +121 -7
  443. package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
  444. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js +38 -5
  445. package/build/dist/Server/Utils/EmailRollup/EmailRollupConstants.js.map +1 -1
  446. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +44 -2
  447. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -1
  448. package/build/dist/Server/Utils/FrontendEnvironment.js +33 -0
  449. package/build/dist/Server/Utils/FrontendEnvironment.js.map +1 -0
  450. package/build/dist/Server/Utils/LogRedaction.js +20 -0
  451. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  452. package/build/dist/Server/Utils/Logger.js +10 -0
  453. package/build/dist/Server/Utils/Logger.js.map +1 -1
  454. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +287 -68
  455. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  456. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +20 -4
  457. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
  458. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +29 -6
  459. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  460. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +88 -13
  461. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  462. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +22 -6
  463. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  464. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +22 -0
  465. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  466. package/build/dist/Server/Utils/Monitor/SeriesContextEnricher.js +237 -0
  467. package/build/dist/Server/Utils/Monitor/SeriesContextEnricher.js.map +1 -0
  468. package/build/dist/Server/Utils/SSRFProtection.js +136 -9
  469. package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
  470. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js +174 -89
  471. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js.map +1 -1
  472. package/build/dist/Server/Utils/SessionReplay/SessionReplayHealthCounters.js +223 -0
  473. package/build/dist/Server/Utils/SessionReplay/SessionReplayHealthCounters.js.map +1 -0
  474. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +945 -164
  475. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
  476. package/build/dist/Server/Utils/StartServer.js +3 -14
  477. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  478. package/build/dist/Server/Utils/TelegramVerificationToken.js +129 -0
  479. package/build/dist/Server/Utils/TelegramVerificationToken.js.map +1 -0
  480. package/build/dist/Server/Utils/Telemetry/PinServiceName.js +163 -0
  481. package/build/dist/Server/Utils/Telemetry/PinServiceName.js.map +1 -0
  482. package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js +28 -15
  483. package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js.map +1 -1
  484. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js +64 -0
  485. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js.map +1 -0
  486. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.js +171 -0
  487. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyRateLimiter.js.map +1 -0
  488. package/build/dist/Server/Utils/VM/VMAPI.js.map +1 -1
  489. package/build/dist/Server/Utils/VM/VMRunner.js +780 -69
  490. package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
  491. package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js +60 -0
  492. package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js.map +1 -0
  493. package/build/dist/Types/CustomField/CustomFieldMappingSourceResource.js +20 -0
  494. package/build/dist/Types/CustomField/CustomFieldMappingSourceResource.js.map +1 -0
  495. package/build/dist/Types/CustomField/CustomFieldValueMapping.js +141 -0
  496. package/build/dist/Types/CustomField/CustomFieldValueMapping.js.map +1 -0
  497. package/build/dist/Types/Icon/IconProp.js +1 -0
  498. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  499. package/build/dist/Types/JSONFunctions.js +118 -37
  500. package/build/dist/Types/JSONFunctions.js.map +1 -1
  501. package/build/dist/Types/Monitor/CephAlertTemplates.js +130 -171
  502. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -1
  503. package/build/dist/Types/Monitor/DockerAlertTemplates.js +286 -121
  504. package/build/dist/Types/Monitor/DockerAlertTemplates.js.map +1 -1
  505. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js +84 -105
  506. package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js.map +1 -1
  507. package/build/dist/Types/Monitor/HostAlertTemplates.js +250 -122
  508. package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -1
  509. package/build/dist/Types/Monitor/IotAlertTemplates.js +81 -81
  510. package/build/dist/Types/Monitor/IotAlertTemplates.js.map +1 -1
  511. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +375 -215
  512. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  513. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js +19 -19
  514. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js.map +1 -1
  515. package/build/dist/Types/Monitor/PodmanAlertTemplates.js +104 -153
  516. package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -1
  517. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +156 -91
  518. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -1
  519. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js +67 -6
  520. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js.map +1 -1
  521. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +38 -7
  522. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  523. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js +261 -0
  524. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js.map +1 -0
  525. package/build/dist/Types/Monitor/RumAlertTemplates.js +46 -7
  526. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
  527. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js +422 -0
  528. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js.map +1 -0
  529. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +441 -0
  530. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -0
  531. package/build/dist/Types/Monitor/ServiceAlertTemplates.js +79 -15
  532. package/build/dist/Types/Monitor/ServiceAlertTemplates.js.map +1 -1
  533. package/build/dist/Types/Monitor/UptimeHistoryLabels.js +17 -0
  534. package/build/dist/Types/Monitor/UptimeHistoryLabels.js.map +1 -0
  535. package/build/dist/Types/NotificationSetting/RoutineEmailEvents.js +29 -0
  536. package/build/dist/Types/NotificationSetting/RoutineEmailEvents.js.map +1 -0
  537. package/build/dist/Types/Rum/SessionReplay.js +117 -0
  538. package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
  539. package/build/dist/Types/Rum/SessionReplayApi.js +181 -0
  540. package/build/dist/Types/Rum/SessionReplayApi.js.map +1 -0
  541. package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js +21 -12
  542. package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js.map +1 -1
  543. package/build/dist/Types/Rum/SessionReplayConsentMode.js +11 -7
  544. package/build/dist/Types/Rum/SessionReplayConsentMode.js.map +1 -1
  545. package/build/dist/Types/Rum/SessionReplayCustomEvents.js +172 -0
  546. package/build/dist/Types/Rum/SessionReplayCustomEvents.js.map +1 -0
  547. package/build/dist/Types/Rum/SessionReplayHealth.js +37 -0
  548. package/build/dist/Types/Rum/SessionReplayHealth.js.map +1 -0
  549. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +85 -0
  550. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -0
  551. package/build/dist/Types/Telemetry/TelemetryIngestionKeyPolicy.js +15 -0
  552. package/build/dist/Types/Telemetry/TelemetryIngestionKeyPolicy.js.map +1 -0
  553. package/build/dist/Types/Telemetry/TelemetryIngestionKeyType.js +30 -0
  554. package/build/dist/Types/Telemetry/TelemetryIngestionKeyType.js.map +1 -0
  555. package/build/dist/Types/WebsiteRequest.js +55 -3
  556. package/build/dist/Types/WebsiteRequest.js.map +1 -1
  557. package/build/dist/UI/Components/Charts/Area/AreaChart.js +13 -2
  558. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  559. package/build/dist/UI/Components/Charts/Bar/BarChart.js +6 -2
  560. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  561. package/build/dist/UI/Components/Charts/Line/LineChart.js +13 -2
  562. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  563. package/build/dist/UI/Components/Charts/Types/XAxis/XAxis.js.map +1 -1
  564. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +15 -3
  565. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  566. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +40 -9
  567. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -1
  568. package/build/dist/UI/Components/Charts/Utils/XAxis.js +186 -0
  569. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  570. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +80 -6
  571. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  572. package/build/dist/UI/Components/CustomFields/MapFromCustomFieldInput.js +118 -0
  573. package/build/dist/UI/Components/CustomFields/MapFromCustomFieldInput.js.map +1 -0
  574. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +112 -7
  575. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
  576. package/build/dist/UI/Components/Graphs/UptimeBarTooltip.js +5 -162
  577. package/build/dist/UI/Components/Graphs/UptimeBarTooltip.js.map +1 -1
  578. package/build/dist/UI/Components/Graphs/UptimeDaySummary.js +181 -0
  579. package/build/dist/UI/Components/Graphs/UptimeDaySummary.js.map +1 -0
  580. package/build/dist/UI/Components/Header/Header.js +2 -3
  581. package/build/dist/UI/Components/Header/Header.js.map +1 -1
  582. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js +2 -1
  583. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js.map +1 -1
  584. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js +7 -1
  585. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js.map +1 -1
  586. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js +7 -1
  587. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js.map +1 -1
  588. package/build/dist/UI/Components/HeaderAlert/NotificationBell/NotificationBellDropdown.js +7 -1
  589. package/build/dist/UI/Components/HeaderAlert/NotificationBell/NotificationBellDropdown.js.map +1 -1
  590. package/build/dist/UI/Components/Icon/Icon.js +5 -0
  591. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  592. package/build/dist/UI/Components/JSONTable/JSONTable.js +2 -2
  593. package/build/dist/UI/Components/JSONTable/JSONTable.js.map +1 -1
  594. package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcutsModal.js +35 -0
  595. package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcutsModal.js.map +1 -0
  596. package/build/dist/UI/Components/Monitor/SeriesDebugCommandsViewer.js +34 -0
  597. package/build/dist/UI/Components/Monitor/SeriesDebugCommandsViewer.js.map +1 -0
  598. package/build/dist/UI/Components/Monitor/SeriesLabelsViewer.js +49 -0
  599. package/build/dist/UI/Components/Monitor/SeriesLabelsViewer.js.map +1 -0
  600. package/build/dist/UI/Components/MonitorGraphs/Uptime.js +1 -1
  601. package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
  602. package/build/dist/UI/Components/MonitorGraphs/UptimeBarDayModal.js +32 -6
  603. package/build/dist/UI/Components/MonitorGraphs/UptimeBarDayModal.js.map +1 -1
  604. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +38 -0
  605. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  606. package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js +22 -1
  607. package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js.map +1 -1
  608. package/build/dist/UI/Components/Table/CellClassName.js +55 -0
  609. package/build/dist/UI/Components/Table/CellClassName.js.map +1 -0
  610. package/build/dist/UI/Components/Table/TableRow.js +16 -13
  611. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  612. package/build/dist/UI/Components/Table/TableSkeletonRows.js +9 -8
  613. package/build/dist/UI/Components/Table/TableSkeletonRows.js.map +1 -1
  614. package/build/dist/UI/Components/Tooltip/Tooltip.js +25 -1
  615. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  616. package/build/dist/UI/Components/Workflow/ComponentsModal.js +47 -30
  617. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  618. package/build/dist/UI/Components/Workflow/NodePlacement.js +37 -0
  619. package/build/dist/UI/Components/Workflow/NodePlacement.js.map +1 -0
  620. package/build/dist/UI/Components/Workflow/Workflow.js +35 -18
  621. package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
  622. package/build/dist/UI/Config.js +10 -20
  623. package/build/dist/UI/Config.js.map +1 -1
  624. package/build/dist/UI/Utils/GlobalKeyboardShortcut.js +138 -0
  625. package/build/dist/UI/Utils/GlobalKeyboardShortcut.js.map +1 -0
  626. package/build/dist/UI/Utils/Telemetry/BrowserTelemetryConfig.js +14 -0
  627. package/build/dist/UI/Utils/Telemetry/BrowserTelemetryConfig.js.map +1 -0
  628. package/build/dist/UI/Utils/Telemetry/Telemetry.js +7 -5
  629. package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
  630. package/build/dist/Utils/API.js +67 -5
  631. package/build/dist/Utils/API.js.map +1 -1
  632. package/build/dist/Utils/HTTPResponseBodyReader.js +157 -0
  633. package/build/dist/Utils/HTTPResponseBodyReader.js.map +1 -0
  634. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js +69 -0
  635. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js.map +1 -0
  636. package/build/dist/Utils/Rum/ChunkMath.js +76 -0
  637. package/build/dist/Utils/Rum/ChunkMath.js.map +1 -1
  638. package/build/dist/Utils/Rum/SessionReplayHealth.js +534 -0
  639. package/build/dist/Utils/Rum/SessionReplayHealth.js.map +1 -0
  640. package/build/dist/Utils/Rum/SessionReplayStringMap.js +165 -0
  641. package/build/dist/Utils/Rum/SessionReplayStringMap.js.map +1 -0
  642. package/build/dist/Utils/Schema/ModelSchema.js +1 -0
  643. package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
  644. package/build/dist/Utils/StatusPage/ResourceSearch.js +200 -0
  645. package/build/dist/Utils/StatusPage/ResourceSearch.js.map +1 -0
  646. package/build/dist/Utils/Telemetry/OriginAllowList.js +299 -0
  647. package/build/dist/Utils/Telemetry/OriginAllowList.js.map +1 -0
  648. package/build/dist/Utils/Uptime/DayUptimeGraphUtil.js +147 -0
  649. package/build/dist/Utils/Uptime/DayUptimeGraphUtil.js.map +1 -0
  650. package/build/dist/Utils/ValueFormatter.js +32 -1
  651. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  652. package/package.json +1 -1
@@ -0,0 +1,237 @@
1
+ import ColumnLength from "../../../Types/Database/ColumnLength";
2
+ import SeriesDebugHints from "../../../Types/Monitor/SeriesContext/SeriesDebugHints";
3
+ import SeriesLabelDisplay from "../../../Types/Monitor/SeriesContext/SeriesLabelDisplay";
4
+ /*
5
+ * Make a per-series alert or incident say WHICH pod, container, node or
6
+ * mount it is about.
7
+ *
8
+ * A grouped metric monitor raises one alert per breaching series and
9
+ * stores that series' identity in `seriesLabels`. Until now the identity
10
+ * stopped there: the title came from the criteria template, which is one
11
+ * fixed string shared by every series, so a cluster with fifty saturated
12
+ * pods produced fifty alerts whose titles were character-for-character
13
+ * identical. The identity was reachable - in a table, at the bottom of
14
+ * the alert detail page - but the alert list, the Slack message, the
15
+ * email and the phone notification all showed the same undifferentiated
16
+ * line.
17
+ *
18
+ * This enricher runs at creation time, after the criteria template has
19
+ * been rendered, and appends the series identity to the title and a
20
+ * resource + first-commands block to the description.
21
+ *
22
+ * Two properties matter and are covered by tests:
23
+ *
24
+ * - It never fights the user's own template. A title that already
25
+ * names the series (because the user wrote `{{resource.k8s.pod.name}}`
26
+ * into it, or because the new `{{seriesResourceSuffix}}` variable
27
+ * expanded there) is left exactly as the user wrote it. The check is
28
+ * on the VALUES, not on the placeholders, so it works the same
29
+ * whether the identity arrived from a template variable or was typed
30
+ * literally.
31
+ *
32
+ * - It is a no-op for whole-monitor alerts. A monitor with no group-by
33
+ * has no series identity, and nothing is appended.
34
+ */
35
+ /*
36
+ * Hoisted rather than written inline at its single use site: two lint
37
+ * rules disagree about parenthesising a regex literal in an expression
38
+ * and `--fix` oscillates between them (ESLintCircularFixesWarning). A
39
+ * named constant sidesteps the argument and reads better anyway.
40
+ */
41
+ const WordCharacterPattern = /[A-Za-z0-9]/;
42
+ class SeriesContextEnricher {
43
+ /**
44
+ * What counts as "part of the same word" when deciding whether a
45
+ * value found in the text is really a mention of it.
46
+ *
47
+ * Deliberately narrower than `\w`: `-`, `.`, `/` and `_` all appear
48
+ * inside the values themselves (pod names, mountpoints, Ceph daemon
49
+ * ids), so treating them as word characters would make a value that
50
+ * IS present look like part of a longer token.
51
+ */
52
+ static isWordCharacter(character) {
53
+ if (character === "") {
54
+ return false;
55
+ }
56
+ return WordCharacterPattern.test(character);
57
+ }
58
+ /**
59
+ * Whether `text` already names this label's value.
60
+ *
61
+ * Two ways to be already-named, and both matter:
62
+ *
63
+ * - This module's own rendering (`"Pod: web-1"`) is matched exactly.
64
+ * That is what makes the enricher idempotent, whatever the value
65
+ * looks like.
66
+ *
67
+ * - A distinctive value appearing anywhere on a token boundary. That
68
+ * is the user's own template - `{{resource.k8s.pod.name}}` has
69
+ * already expanded by the time this runs, so the check has to be
70
+ * on the VALUE, not on the placeholder. The boundary requirement
71
+ * stops a pod called `web` from counting as mentioned because the
72
+ * title happens to contain the word "website".
73
+ */
74
+ static isValueMentioned(input) {
75
+ const { text, label } = input;
76
+ if (text.includes(`${label.name}: ${label.value}`)) {
77
+ return true;
78
+ }
79
+ if (label.value.length < SeriesContextEnricher.MinimumMatchableValueLength) {
80
+ return false;
81
+ }
82
+ let searchFrom = 0;
83
+ for (;;) {
84
+ const index = text.indexOf(label.value, searchFrom);
85
+ if (index === -1) {
86
+ return false;
87
+ }
88
+ const before = index > 0 ? text.charAt(index - 1) : "";
89
+ const after = text.charAt(index + label.value.length);
90
+ if (!SeriesContextEnricher.isWordCharacter(before) &&
91
+ !SeriesContextEnricher.isWordCharacter(after)) {
92
+ return true;
93
+ }
94
+ searchFrom = index + 1;
95
+ }
96
+ }
97
+ /*
98
+ * The identity labels not already present in `text`.
99
+ *
100
+ * Deliberately per-label rather than all-or-nothing: a title that
101
+ * mentions the pod by name but not the namespace still gets the
102
+ * namespace appended, because dropping the rest whenever a user's
103
+ * template happened to mention one identifier would lose exactly the
104
+ * context this exists to add.
105
+ */
106
+ static getUnmentionedLabels(input) {
107
+ const labels = SeriesLabelDisplay.getDisplayLabels(input.seriesLabels);
108
+ if (labels.length === 0) {
109
+ return [];
110
+ }
111
+ const text = input.text || "";
112
+ return labels.filter((label) => {
113
+ return !SeriesContextEnricher.isValueMentioned({ text, label });
114
+ });
115
+ }
116
+ /*
117
+ * `title` with the series identity appended, or `title` unchanged when
118
+ * there is no identity to add or the title already carries it.
119
+ */
120
+ static enrichTitle(input) {
121
+ const title = input.title || "";
122
+ const unmentioned = SeriesContextEnricher.getUnmentionedLabels({
123
+ text: title,
124
+ seriesLabels: input.seriesLabels,
125
+ });
126
+ if (unmentioned.length === 0) {
127
+ return title;
128
+ }
129
+ /*
130
+ * Rebuild a label map from just the unmentioned labels so the
131
+ * shared formatter still applies its own ordering and title cap
132
+ * rather than this module reimplementing either.
133
+ */
134
+ const remaining = {};
135
+ for (const label of unmentioned) {
136
+ remaining[label.key] = label.value;
137
+ }
138
+ const suffix = SeriesLabelDisplay.buildTitleSuffix(remaining);
139
+ if (!suffix) {
140
+ return title;
141
+ }
142
+ /*
143
+ * `Alert.title` and `Incident.title` are LongText, i.e. 500
144
+ * characters. Overflowing the column does not produce a shortened
145
+ * title - it fails the INSERT, and the alert does not exist at all.
146
+ * That would turn a labelling improvement into dropped pages, so the
147
+ * appended identity is bounded here as well as per-value inside
148
+ * SeriesLabelDisplay.
149
+ *
150
+ * A base title that is ALREADY at or over the limit is returned
151
+ * untouched: it was going to fail with or without this enricher, and
152
+ * silently truncating what the user wrote is not this module's call
153
+ * to make.
154
+ */
155
+ if (title.length >= SeriesContextEnricher.MaxTitleLength) {
156
+ return title;
157
+ }
158
+ const room = SeriesContextEnricher.MaxTitleLength - title.length;
159
+ if (suffix.length <= room) {
160
+ return `${title}${suffix}`;
161
+ }
162
+ return `${title}${suffix.slice(0, room)}`;
163
+ }
164
+ /*
165
+ * `description` with an "Affected resource" block and the read-only
166
+ * commands worth running first appended.
167
+ *
168
+ * The description is what reaches Slack, email and the mobile push, so
169
+ * this is where the full identity goes - the title only has room for
170
+ * the top few labels.
171
+ */
172
+ static enrichDescription(input) {
173
+ const description = input.description || "";
174
+ const labels = SeriesLabelDisplay.getDisplayLabels(input.seriesLabels);
175
+ if (labels.length === 0) {
176
+ return description;
177
+ }
178
+ const sections = [];
179
+ /*
180
+ * Only skip the resource block when the description already names
181
+ * EVERY label. A description mentioning the pod but not the node is
182
+ * still missing the thing the engineer needs.
183
+ */
184
+ const unmentioned = SeriesContextEnricher.getUnmentionedLabels({
185
+ text: description,
186
+ seriesLabels: input.seriesLabels,
187
+ });
188
+ const block = SeriesLabelDisplay.buildMarkdownBlock(input.seriesLabels);
189
+ /*
190
+ * The exact-block check is the idempotency guarantee. Per-label
191
+ * matching alone cannot provide it: a one-character label value
192
+ * (a Ceph pool id, a Proxmox vmid) is deliberately not matched as a
193
+ * bare substring, so a second pass would append the block again.
194
+ */
195
+ if (unmentioned.length > 0 && block && !description.includes(block)) {
196
+ sections.push(block);
197
+ }
198
+ const commandsBlock = SeriesDebugHints.buildMarkdownBlock({
199
+ monitorType: input.monitorType,
200
+ seriesLabels: input.seriesLabels,
201
+ });
202
+ /*
203
+ * The commands embed the label values, so a description that
204
+ * already carries them would otherwise get a near-duplicate block
205
+ * appended on top of a user's own runbook snippet.
206
+ */
207
+ if (commandsBlock && !description.includes(commandsBlock)) {
208
+ sections.push(commandsBlock);
209
+ }
210
+ if (sections.length === 0) {
211
+ return description;
212
+ }
213
+ if (!description.trim()) {
214
+ return sections.join("\n\n");
215
+ }
216
+ return `${description}\n\n${sections.join("\n\n")}`;
217
+ }
218
+ }
219
+ /**
220
+ * The `title` column's own limit, taken from the schema rather than
221
+ * restated as a number - `Alert.title` and `Incident.title` are both
222
+ * `ColumnType.LongText`.
223
+ */
224
+ SeriesContextEnricher.MaxTitleLength = ColumnLength.LongText;
225
+ /**
226
+ * Shortest label value that may be matched as a bare substring.
227
+ *
228
+ * Ceph pool ids and Proxmox vmids are one or two characters, and
229
+ * "does the title contain 3?" is answered `true` by any title with a
230
+ * threshold in it ("Restarts > 3"). Below this length only this
231
+ * module's own `Name: value` rendering counts as a mention, which
232
+ * keeps idempotency without letting a coincidence swallow the
233
+ * identity.
234
+ */
235
+ SeriesContextEnricher.MinimumMatchableValueLength = 4;
236
+ export default SeriesContextEnricher;
237
+ //# sourceMappingURL=SeriesContextEnricher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeriesContextEnricher.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/SeriesContextEnricher.ts"],"names":[],"mappings":"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"}
@@ -21,9 +21,11 @@ import net from "net";
21
21
  * legitimate reason to reach one of them and none at all to reach the other:
22
22
  *
23
23
  * FORBIDDEN — loopback, unspecified, link-local (the 169.254.169.254 cloud
24
- * metadata endpoint lives here), multicast, reserved, broadcast, and the
25
- * hostnames that name them. Refused in every deployment. The only way past
26
- * is an exact entry in the instance's PRIVATE_NETWORK_WEBHOOK_ALLOWLIST.
24
+ * metadata endpoint lives here), cloud-platform control endpoints,
25
+ * IPv4-translation infrastructure, multicast, reserved, broadcast, and
26
+ * the hostnames that name them. Refused in every deployment. The only way
27
+ * past is an exact entry in the instance's
28
+ * PRIVATE_NETWORK_WEBHOOK_ALLOWLIST.
27
29
  *
28
30
  * PRIVATE — RFC-1918, CGNAT, IPv6 unique-local and site-local. Refused by
29
31
  * default, which is the only correct answer for multi-tenant SaaS, but a
@@ -105,6 +107,21 @@ export default class SSRFProtection {
105
107
  });
106
108
  }
107
109
  static async validateWebhookTargetIsSafe(rawUrl, options) {
110
+ await SSRFProtection.validateWebhookTarget(rawUrl, options, false);
111
+ }
112
+ /*
113
+ * Validate and return the exact addresses approved by that same DNS pass.
114
+ * A caller must pin these into its socket lookup; resolving the hostname a
115
+ * second time after validation reopens the DNS-rebinding window.
116
+ */
117
+ static async validateAndResolveWebhookTarget(rawUrl, options) {
118
+ const result = await SSRFProtection.validateWebhookTarget(rawUrl, options, true);
119
+ if (!result) {
120
+ throw new BadDataException("Request URL could not be resolved safely.");
121
+ }
122
+ return result;
123
+ }
124
+ static async validateWebhookTarget(rawUrl, options, returnValidatedTarget) {
108
125
  var _a;
109
126
  const label = (options === null || options === void 0 ? void 0 : options.targetLabel) || DEFAULT_TARGET_LABEL;
110
127
  const privateNetworkHint = (_a = options === null || options === void 0 ? void 0 : options.privateNetworkHint) !== null && _a !== void 0 ? _a : DEFAULT_PRIVATE_NETWORK_HINT;
@@ -167,6 +184,15 @@ export default class SSRFProtection {
167
184
  * comparison for the privilege.
168
185
  */
169
186
  const whatwgHostname = SSRFProtection.getBareHostname(rawUrl);
187
+ let canonicalUrl = null;
188
+ if (returnValidatedTarget) {
189
+ try {
190
+ canonicalUrl = new globalThis.URL(rawUrl.toString());
191
+ }
192
+ catch (_c) {
193
+ throw new BadDataException(`${label} is not a valid URL`);
194
+ }
195
+ }
170
196
  const hostnames = whatwgHostname && whatwgHostname !== hostname
171
197
  ? [hostname, whatwgHostname]
172
198
  : [hostname];
@@ -178,7 +204,11 @@ export default class SSRFProtection {
178
204
  * it was before the exception existed.
179
205
  */
180
206
  const isOptedIn = (options === null || options === void 0 ? void 0 : options.allowPrivateNetworkTargets) === true;
181
- const isPrivateTierAllowed = isOptedIn && PrivateNetworkWebhookConfig.isPrivateNetworkAllowed();
207
+ const shouldUseWebhookPolicy = (options === null || options === void 0 ? void 0 : options.privateNetworkAccessIsAllowed) === undefined;
208
+ const isPrivateTierAllowed = isOptedIn &&
209
+ (shouldUseWebhookPolicy
210
+ ? PrivateNetworkWebhookConfig.isPrivateNetworkAllowed()
211
+ : (options === null || options === void 0 ? void 0 : options.privateNetworkAccessIsAllowed) === true);
182
212
  /*
183
213
  * A host the operator named outright needs no further inspection — not the
184
214
  * tier check, and not DNS. That is the whole point of naming
@@ -186,7 +216,7 @@ export default class SSRFProtection {
186
216
  * and the operator has said to trust it anyway.
187
217
  */
188
218
  const isHostAllowlisted = (host) => {
189
- if (!isOptedIn) {
219
+ if (!isOptedIn || !shouldUseWebhookPolicy) {
190
220
  return false;
191
221
  }
192
222
  return SSRFProtection.isIpLiteral(host)
@@ -205,20 +235,38 @@ export default class SSRFProtection {
205
235
  throw new BadDataException(`${label} points to a private network address and is not allowed.${privateNetworkHint}`);
206
236
  }
207
237
  }
238
+ const resolvedAddressesByHostname = new Map();
208
239
  for (const host of hostnames) {
209
- if (SSRFProtection.isIpLiteral(host) || isHostAllowlisted(host)) {
240
+ const isConnectionHostname = returnValidatedTarget && host === whatwgHostname;
241
+ if (SSRFProtection.isIpLiteral(host) ||
242
+ (isHostAllowlisted(host) && !isConnectionHostname)) {
210
243
  continue;
211
244
  }
212
245
  let resolved = [];
213
246
  try {
214
247
  resolved = await dns.promises.lookup(host, { all: true });
215
248
  }
216
- catch (_c) {
249
+ catch (_d) {
217
250
  throw new BadDataException(`${label} hostname could not be resolved via DNS.`);
218
251
  }
219
- for (const entry of resolved) {
252
+ if (resolved.length === 0 && isConnectionHostname) {
253
+ throw new BadDataException(`${label} hostname could not be resolved via DNS.`);
254
+ }
255
+ const normalizedAddresses = resolved.map((entry) => {
220
256
  const address = entry.address.toLowerCase();
257
+ return {
258
+ address: address,
259
+ family: entry.family || net.isIP(address),
260
+ };
261
+ });
262
+ resolvedAddressesByHostname.set(host, normalizedAddresses);
263
+ if (isHostAllowlisted(host)) {
264
+ continue;
265
+ }
266
+ for (const entry of normalizedAddresses) {
267
+ const address = entry.address;
221
268
  if (isOptedIn &&
269
+ shouldUseWebhookPolicy &&
222
270
  PrivateNetworkWebhookConfig.isAddressAllowed(address)) {
223
271
  continue;
224
272
  }
@@ -231,6 +279,24 @@ export default class SSRFProtection {
231
279
  }
232
280
  }
233
281
  }
282
+ if (!returnValidatedTarget) {
283
+ return null;
284
+ }
285
+ if (!canonicalUrl || !whatwgHostname) {
286
+ throw new BadDataException(`${label} is not a valid URL`);
287
+ }
288
+ if (SSRFProtection.isIpLiteral(whatwgHostname)) {
289
+ const address = SSRFProtection.stripZoneId(whatwgHostname);
290
+ return {
291
+ url: canonicalUrl,
292
+ addresses: [{ address: address, family: net.isIP(address) }],
293
+ };
294
+ }
295
+ const addresses = resolvedAddressesByHostname.get(whatwgHostname);
296
+ if (!addresses || addresses.length === 0) {
297
+ throw new BadDataException(`${label} hostname could not be resolved via DNS.`);
298
+ }
299
+ return { url: canonicalUrl, addresses: addresses };
234
300
  }
235
301
  /*
236
302
  * Everything up to and including the LAST "@" is userinfo, never the host.
@@ -363,7 +429,9 @@ export default class SSRFProtection {
363
429
  * IPv4-compatible (::/96), NAT64 (64:ff9b::/96), 6to4 (2002::/16), and
364
430
  * Teredo (2001:0000::/32) - are handed to the IPv4 classifier, so an
365
431
  * embedded 10.0.0.1 is PRIVATE and an embedded 169.254.169.254 is FORBIDDEN
366
- * exactly as the bare forms are.
432
+ * exactly as the bare forms are. Cloud-provider service addresses and
433
+ * translation prefixes that should never be monitor targets are FORBIDDEN
434
+ * outright, before the general unique-local/public verdicts are considered.
367
435
  */
368
436
  static classifyIpv6(address) {
369
437
  const groups = SSRFProtection.expandIpv6(address);
@@ -394,6 +462,16 @@ export default class SSRFProtection {
394
462
  if (isZeroThrough(7) && groups[7] === 1) {
395
463
  return WebhookAddressTier.Forbidden;
396
464
  }
465
+ /*
466
+ * ::ffff:0:0:0/96 — legacy SIIT IPv4-translatable prefix (RFC 2765).
467
+ * Unlike ::ffff:0:0/96 below, the embedded bits do not describe a target
468
+ * that can be safely classified as public. The translation endpoint is
469
+ * infrastructure and must not become reachable through the private-network
470
+ * opt-in.
471
+ */
472
+ if (isZeroThrough(4) && groups[4] === 0xffff && groups[5] === 0) {
473
+ return WebhookAddressTier.Forbidden;
474
+ }
397
475
  // ::ffff:0:0/96 — IPv4-mapped.
398
476
  if (isZeroThrough(5) && groups[5] === 0xffff) {
399
477
  return SSRFProtection.classifyIpv4(embeddedIpv4(6));
@@ -407,6 +485,10 @@ export default class SSRFProtection {
407
485
  groups[5] === 0) {
408
486
  return SSRFProtection.classifyIpv4(embeddedIpv4(6));
409
487
  }
488
+ // 64:ff9b:1::/48 — local-use IPv4/IPv6 translation prefix (RFC 8215).
489
+ if (groups[0] === 0x0064 && groups[1] === 0xff9b && groups[2] === 1) {
490
+ return WebhookAddressTier.Forbidden;
491
+ }
410
492
  // ::/96 — IPv4-compatible (deprecated, still routable by some stacks).
411
493
  if (isZeroThrough(6)) {
412
494
  return SSRFProtection.classifyIpv4(embeddedIpv4(6));
@@ -424,6 +506,19 @@ export default class SSRFProtection {
424
506
  return SSRFProtection.strictestTier(SSRFProtection.classifyIpv4(embeddedIpv4(2)), SSRFProtection.classifyIpv4(embeddedIpv4(6, true)));
425
507
  }
426
508
  const first = groups[0];
509
+ // fd00:ec2::/32 — AWS IPv6 link-local service range.
510
+ if (first === 0xfd00 && groups[1] === 0x0ec2) {
511
+ return WebhookAddressTier.Forbidden;
512
+ }
513
+ // fd20:ce::254 — Google Cloud's IPv6 metadata server.
514
+ if (first === 0xfd20 &&
515
+ groups[1] === 0x00ce &&
516
+ groups.slice(2, 7).every((group) => {
517
+ return group === 0;
518
+ }) &&
519
+ groups[7] === 0x0254) {
520
+ return WebhookAddressTier.Forbidden;
521
+ }
427
522
  // fe80::/10 — link-local.
428
523
  if ((first & 0xffc0) === 0xfe80) {
429
524
  return WebhookAddressTier.Forbidden;
@@ -440,6 +535,10 @@ export default class SSRFProtection {
440
535
  if ((first & 0xffc0) === 0xfec0) {
441
536
  return WebhookAddressTier.Private;
442
537
  }
538
+ // 2001:db8::/32 — documentation-only, never a globally reachable target.
539
+ if (first === 0x2001 && groups[1] === 0x0db8) {
540
+ return WebhookAddressTier.Private;
541
+ }
443
542
  return WebhookAddressTier.Public;
444
543
  }
445
544
  static strictestTier(left, right) {
@@ -469,6 +568,23 @@ export default class SSRFProtection {
469
568
  return WebhookAddressTier.Forbidden;
470
569
  }
471
570
  const [first, second] = octets;
571
+ /*
572
+ * Cloud-platform service addresses that are outside ordinary link-local
573
+ * space. Alibaba's endpoint sits inside CGNAT and Azure's WireServer uses
574
+ * a globally-routable-looking address, so both must be checked before the
575
+ * general PRIVATE/Public ranges below.
576
+ */
577
+ if ((first === 100 &&
578
+ second === 100 &&
579
+ octets[2] === 100 &&
580
+ octets[3] === 200) ||
581
+ (first === 168 &&
582
+ second === 63 &&
583
+ octets[2] === 129 &&
584
+ octets[3] === 16) ||
585
+ (first === 192 && second === 0 && octets[2] === 0 && octets[3] === 192)) {
586
+ return WebhookAddressTier.Forbidden;
587
+ }
472
588
  if (first === 0) {
473
589
  return WebhookAddressTier.Forbidden; // 0.0.0.0/8 — "this host".
474
590
  }
@@ -495,6 +611,17 @@ export default class SSRFProtection {
495
611
  if (first === 100 && (second & 0xc0) === 64) {
496
612
  return WebhookAddressTier.Private; // CGNAT 100.64/10
497
613
  }
614
+ if (first === 192 && second === 0 && octets[2] === 0) {
615
+ return WebhookAddressTier.Private; // IETF protocol assignments 192.0.0/24
616
+ }
617
+ if (first === 198 && (second & 0xfe) === 18) {
618
+ return WebhookAddressTier.Private; // benchmarking 198.18/15
619
+ }
620
+ if ((first === 192 && second === 0 && octets[2] === 2) ||
621
+ (first === 198 && second === 51 && octets[2] === 100) ||
622
+ (first === 203 && second === 0 && octets[2] === 113)) {
623
+ return WebhookAddressTier.Private; // RFC 5737 documentation ranges
624
+ }
498
625
  return WebhookAddressTier.Public;
499
626
  }
500
627
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"SSRFProtection.js","sourceRoot":"","sources":["../../../../Server/Utils/SSRFProtection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SSRFProtection.js","sourceRoot":"","sources":["../../../../Server/Utils/SSRFProtection.ts"],"names":[],"mappings":"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"}