@oneuptime/common 12.0.8 → 12.0.9

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 (769) hide show
  1. package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +1 -1
  2. package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +1 -1
  3. package/Models/DatabaseModels/AIConversation.ts +32 -0
  4. package/Models/DatabaseModels/AIConversationMessage.ts +41 -0
  5. package/Models/DatabaseModels/AlertEpisodeMember.ts +27 -0
  6. package/Models/DatabaseModels/IncidentEpisodeMember.ts +28 -0
  7. package/Models/DatabaseModels/Index.ts +12 -4
  8. package/Models/DatabaseModels/{TelemetryEntity.ts → InventoryItem.ts} +139 -9
  9. package/Models/DatabaseModels/InventoryItemCustomField.ts +434 -0
  10. package/Models/DatabaseModels/{TelemetryEntityRelationship.ts → InventoryItemRelationship.ts} +8 -8
  11. package/Models/DatabaseModels/NetworkDevice.ts +141 -0
  12. package/Models/DatabaseModels/NetworkDeviceLink.ts +699 -0
  13. package/Models/DatabaseModels/NetworkDeviceLinkRule.ts +467 -0
  14. package/Models/DatabaseModels/NetworkTopologySuppression.ts +429 -0
  15. package/Models/DatabaseModels/OnCallDutyPolicyFeed.ts +9 -0
  16. package/Models/DatabaseModels/Project.ts +78 -0
  17. package/Models/DatabaseModels/UserCall.ts +42 -0
  18. package/Models/DatabaseModels/UserEmail.ts +44 -0
  19. package/Models/DatabaseModels/UserNotificationRule.ts +425 -55
  20. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +24 -2
  21. package/Models/DatabaseModels/UserPush.ts +49 -0
  22. package/Models/DatabaseModels/UserSMS.ts +43 -0
  23. package/Models/DatabaseModels/UserTelegram.ts +59 -0
  24. package/Models/DatabaseModels/UserWebhook.ts +52 -0
  25. package/Models/DatabaseModels/UserWhatsApp.ts +41 -0
  26. package/Models/DatabaseModels/WorkflowVariable.ts +12 -0
  27. package/Server/API/AIChatAPI.ts +315 -1
  28. package/Server/API/DashboardAPI.ts +217 -1
  29. package/Server/API/OnCallReadinessAPI.ts +841 -0
  30. package/Server/API/TeamComplianceAPI.ts +69 -17
  31. package/Server/API/TelemetryAPI.ts +220 -12
  32. package/Server/EnvironmentConfig.ts +52 -0
  33. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +22 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +4 -4
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.ts +5 -5
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1786625176831-AddMonitoringMethodToNetworkDevice.ts +35 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1786634985763-AddNetworkDeviceLink.ts +82 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1786639512056-AddNetworkDeviceLinkRule.ts +91 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1786639972982-AddNetworkTopologySuppression.ts +47 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/1786800000000-RenameTelemetryEntityToInventoryItem.ts +255 -0
  41. package/Server/Infrastructure/Postgres/SchemaMigrations/1786900000000-AddInventoryItemArchiveAndCustomFields.ts +107 -0
  42. package/Server/Infrastructure/Postgres/SchemaMigrations/1787000000000-AddOnCallNotificationFallbackColumns.ts +90 -0
  43. package/Server/Infrastructure/Postgres/SchemaMigrations/1787100000000-AddAIConversationPageContext.ts +39 -0
  44. package/Server/Infrastructure/Postgres/SchemaMigrations/1787200000000-AddAIChatMessageFeedback.ts +33 -0
  45. package/Server/Infrastructure/Postgres/SchemaMigrations/1787300000000-AddEpisodeMemberNotifyIndexes.ts +59 -0
  46. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  47. package/Server/Infrastructure/Queue.ts +78 -13
  48. package/Server/Middleware/PublicDashboardRateLimit.ts +593 -0
  49. package/Server/Services/AIService.ts +7 -0
  50. package/Server/Services/AlertEpisodeStateTimelineService.ts +29 -0
  51. package/Server/Services/AlertSeverityService.ts +63 -0
  52. package/Server/Services/DashboardService.ts +9 -10
  53. package/Server/Services/DatabaseService.ts +32 -2
  54. package/Server/Services/IncidentEpisodeStateTimelineService.ts +29 -0
  55. package/Server/Services/IncidentSeverityService.ts +76 -0
  56. package/Server/Services/Index.ts +12 -4
  57. package/Server/Services/InventoryItemCustomFieldService.ts +9 -0
  58. package/Server/Services/{TelemetryEntityRelationshipService.ts → InventoryItemRelationshipService.ts} +4 -4
  59. package/Server/Services/{TelemetryEntityService.ts → InventoryItemService.ts} +89 -20
  60. package/Server/Services/LogAggregationService.ts +45 -8
  61. package/Server/Services/MetricAggregationService.ts +121 -0
  62. package/Server/Services/MetricService.ts +7 -7
  63. package/Server/Services/NetworkDeviceLinkRuleService.ts +10 -0
  64. package/Server/Services/NetworkDeviceLinkService.ts +84 -0
  65. package/Server/Services/NetworkDeviceService.ts +140 -0
  66. package/Server/Services/NetworkSiteService.ts +77 -25
  67. package/Server/Services/NetworkTopologySuppressionService.ts +84 -0
  68. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +41 -29
  69. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +8 -0
  70. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +62 -13
  71. package/Server/Services/OnCallDutyPolicyScheduleService.ts +61 -1
  72. package/Server/Services/OnCallNotificationAlertingService.ts +742 -0
  73. package/Server/Services/OnCallReadinessService.ts +2803 -0
  74. package/Server/Services/OnCallSetupReminderService.ts +955 -0
  75. package/Server/Services/ProfileAggregationService.ts +123 -0
  76. package/Server/Services/StatusPageService.ts +9 -10
  77. package/Server/Services/TeamComplianceService.ts +429 -252
  78. package/Server/Services/UserCallService.ts +26 -1
  79. package/Server/Services/UserEmailService.ts +26 -1
  80. package/Server/Services/UserNotificationRuleAdminService.ts +1183 -0
  81. package/Server/Services/UserNotificationRuleService.ts +3812 -333
  82. package/Server/Services/UserOnCallLogService.ts +561 -48
  83. package/Server/Services/UserPushService.ts +29 -0
  84. package/Server/Services/UserService.ts +11 -0
  85. package/Server/Services/UserSmsService.ts +26 -1
  86. package/Server/Services/UserTelegramService.ts +24 -1
  87. package/Server/Services/UserWebhookService.ts +28 -1
  88. package/Server/Services/UserWhatsAppService.ts +24 -1
  89. package/Server/Types/Database/Permissions/BasePermission.ts +19 -0
  90. package/Server/Types/Database/Permissions/CreatePermission.ts +164 -0
  91. package/Server/Types/Database/Permissions/OwnerOnlyColumnPermission.ts +340 -0
  92. package/Server/Types/Database/Permissions/QueryPermission.ts +48 -0
  93. package/Server/Types/Database/Permissions/TenantPermission.ts +8 -1
  94. package/Server/Types/Workflow/Components/API/Delete.ts +1 -1
  95. package/Server/Types/Workflow/Components/API/Get.ts +1 -1
  96. package/Server/Types/Workflow/Components/API/Patch.ts +1 -1
  97. package/Server/Types/Workflow/Components/API/Post.ts +1 -1
  98. package/Server/Types/Workflow/Components/API/Put.ts +1 -1
  99. package/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.ts +29 -5
  100. package/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.ts +18 -10
  101. package/Server/Types/Workflow/Components/BaseModel/ModelArguments.ts +55 -0
  102. package/Server/Types/Workflow/Components/Conditions/IfElse.ts +3 -17
  103. package/Server/Types/Workflow/Components/Email.ts +25 -7
  104. package/Server/Types/Workflow/Components/JavaScript.ts +10 -3
  105. package/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts +1 -1
  106. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +643 -48
  107. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +32 -3
  108. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +20 -6
  109. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +7 -0
  110. package/Server/Utils/AI/Toolbox/AIActionTools.ts +2 -2
  111. package/Server/Utils/AI/Toolbox/AIMetaTools.ts +863 -0
  112. package/Server/Utils/AI/Toolbox/AlertTools.ts +177 -15
  113. package/Server/Utils/AI/Toolbox/IncidentTools.ts +191 -10
  114. package/Server/Utils/AI/Toolbox/Index.ts +48 -0
  115. package/Server/Utils/AI/Toolbox/MonitorTools.ts +298 -11
  116. package/Server/Utils/AI/Toolbox/NoteWriteTools.ts +295 -0
  117. package/Server/Utils/AI/Toolbox/OnCallTools.ts +1246 -0
  118. package/Server/Utils/AI/Toolbox/RunbookTools.ts +424 -0
  119. package/Server/Utils/AI/Toolbox/SloTools.ts +456 -0
  120. package/Server/Utils/AI/Toolbox/StatusPageTools.ts +559 -0
  121. package/Server/Utils/AI/Toolbox/TeamTools.ts +327 -0
  122. package/Server/Utils/AI/Toolbox/TimelineTools.ts +615 -0
  123. package/Server/Utils/AI/Toolbox/WorkflowProbeTools.ts +664 -0
  124. package/Server/Utils/ClientIp.ts +221 -0
  125. package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +47 -0
  126. package/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.ts +163 -0
  127. package/Server/Utils/Dashboard/PublicDashboardSloWidget.ts +147 -0
  128. package/Server/Utils/Express.ts +12 -17
  129. package/Server/Utils/LLM/LLMService.ts +85 -8
  130. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +204 -10
  131. package/Server/Utils/SSRFProtection.ts +98 -23
  132. package/Server/Utils/StartServer.ts +12 -3
  133. package/Server/Utils/Telemetry/EntityRegistry.ts +205 -18
  134. package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +25 -25
  135. package/Server/Utils/Telemetry/TelemetryEntity.ts +160 -52
  136. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +7 -3
  137. package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +2146 -0
  138. package/Tests/App/Dashboard/CreateWorkflowModal.test.tsx +561 -0
  139. package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +2470 -0
  140. package/Tests/App/Dashboard/OnCallPreventionGuards.test.tsx +1897 -0
  141. package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +3606 -0
  142. package/Tests/App/Dashboard/OnCallRulesDeleteGuard.test.tsx +784 -0
  143. package/Tests/App/Dashboard/OnCallRulesTable.test.tsx +1119 -0
  144. package/Tests/App/Dashboard/SloWidgetFetching.test.tsx +531 -0
  145. package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +1312 -0
  146. package/Tests/App/Dashboard/UserSettingsSetupChecklistPage.test.tsx +1390 -0
  147. package/Tests/Models/InventoryItemModel.test.ts +174 -0
  148. package/Tests/Models/InventoryItemNaming.test.ts +302 -0
  149. package/Tests/Server/API/AIChatCancelAndFeedback.test.ts +437 -0
  150. package/Tests/Server/API/DashboardPublicRateLimit.test.ts +659 -0
  151. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +18 -0
  152. package/Tests/Server/API/DashboardPublicSloAPI.test.ts +880 -0
  153. package/Tests/Server/API/Helpers.ts +24 -15
  154. package/Tests/Server/API/OnCallReadinessAPI.test.ts +2680 -0
  155. package/Tests/Server/API/OnCallSetupReminderAPI.test.ts +915 -0
  156. package/Tests/Server/Infrastructure/Postgres/EpisodeMemberNotifyIndexesMigration.test.ts +533 -0
  157. package/Tests/Server/Infrastructure/Postgres/InventoryItemArchiveMigration.test.ts +213 -0
  158. package/Tests/Server/Infrastructure/Postgres/RenameInventoryItemMigration.test.ts +432 -0
  159. package/Tests/Server/Infrastructure/Queue.test.ts +293 -0
  160. package/Tests/Server/Middleware/PublicDashboardRateLimit.test.ts +1645 -0
  161. package/Tests/Server/Services/AdminRuleEditGuards.test.ts +2848 -0
  162. package/Tests/Server/Services/DeliverNotificationForRuleExtraction.test.ts +1393 -0
  163. package/Tests/Server/Services/EpisodeRuleSeverityRepair.test.ts +1802 -0
  164. package/Tests/Server/Services/EpisodeStateTimelineNote.test.ts +304 -0
  165. package/Tests/Server/Services/InventoryItemDisplayName.test.ts +339 -0
  166. package/Tests/Server/Services/{TelemetryEntityManualCreate.test.ts → InventoryItemManualCreate.test.ts} +27 -27
  167. package/Tests/Server/Services/IpAllowlistSpoofing.test.ts +450 -0
  168. package/Tests/Server/Services/LogAggregationService.test.ts +235 -1
  169. package/Tests/Server/Services/MetricAggregationService.test.ts +231 -0
  170. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +80 -29
  171. package/Tests/Server/Services/MetricServiceAggregate.test.ts +30 -30
  172. package/Tests/Server/Services/NetworkSiteService.test.ts +18 -3
  173. package/Tests/Server/Services/NotificationChannelEventCoverage.test.ts +1728 -0
  174. package/Tests/Server/Services/NotificationDeletionImpact.test.ts +2402 -0
  175. package/Tests/Server/Services/OnCallDutyPolicyExecutionLogTimelineGapFeed.test.ts +394 -0
  176. package/Tests/Server/Services/OnCallNotificationFallback.test.ts +1744 -0
  177. package/Tests/Server/Services/OnCallReadinessService.test.ts +4295 -0
  178. package/Tests/Server/Services/OnCallSetupReminder.test.ts +1272 -0
  179. package/Tests/Server/Services/OnCallWeeklyReadinessDigest.test.ts +1021 -0
  180. package/Tests/Server/Services/ProfileAggregationService.test.ts +296 -0
  181. package/Tests/Server/Services/SeverityCreationRuleBackfill.test.ts +1536 -0
  182. package/Tests/Server/Services/SeverityRuleBackfill.test.ts +1818 -0
  183. package/Tests/Server/Services/TeamComplianceServiceBehaviour.test.ts +1845 -0
  184. package/Tests/Server/Services/UserNotificationRuleAdminGuards.test.ts +1394 -0
  185. package/Tests/Server/Services/UserNotificationRuleDefaultCreation.test.ts +1166 -0
  186. package/Tests/Server/Services/UserNotificationRuleExecuteItem.test.ts +1468 -0
  187. package/Tests/Server/Services/UserOnCallLogNoNotificationRules.test.ts +1457 -0
  188. package/Tests/Server/Types/Database/Permissions/AdminNotificationRuleAccess.test.ts +1546 -0
  189. package/Tests/Server/Types/Database/Permissions/CreateOwnershipScoping.test.ts +529 -0
  190. package/Tests/Server/Types/Database/Permissions/OwnerOnlyColumns.test.ts +1219 -0
  191. package/Tests/Server/Types/Database/Permissions/UserNotificationRuleScoping.test.ts +1089 -0
  192. package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +2 -1
  193. package/Tests/Server/Types/Workflow/Components/BaseModelDatabaseComponents.test.ts +190 -0
  194. package/Tests/Server/Types/Workflow/Components/ChatWebhookComponents.test.ts +44 -14
  195. package/Tests/Server/Types/Workflow/Components/Email.test.ts +151 -0
  196. package/Tests/Server/Types/Workflow/Components/IfElse.test.ts +98 -0
  197. package/Tests/Server/Types/Workflow/Components/JavaScript.test.ts +51 -0
  198. package/Tests/Server/Utils/AI/AIMetaTools.test.ts +586 -0
  199. package/Tests/Server/Utils/AI/AlertMonitorFilters.test.ts +582 -0
  200. package/Tests/Server/Utils/AI/ChatAgentRunner.test.ts +726 -0
  201. package/Tests/Server/Utils/AI/IncidentToolsFilters.test.ts +315 -0
  202. package/Tests/Server/Utils/AI/LLMServiceStopReason.test.ts +314 -0
  203. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +26 -3
  204. package/Tests/Server/Utils/AI/NoteWriteTools.test.ts +268 -0
  205. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +169 -0
  206. package/Tests/Server/Utils/AI/OnCallTools.test.ts +664 -0
  207. package/Tests/Server/Utils/AI/RunbookTools.test.ts +325 -0
  208. package/Tests/Server/Utils/AI/SloTools.test.ts +306 -0
  209. package/Tests/Server/Utils/AI/StatusPageTools.test.ts +391 -0
  210. package/Tests/Server/Utils/AI/TeamTools.test.ts +257 -0
  211. package/Tests/Server/Utils/AI/TimelineTools.test.ts +472 -0
  212. package/Tests/Server/Utils/AI/WorkflowProbeTools.test.ts +428 -0
  213. package/Tests/Server/Utils/ClientIp.test.ts +438 -0
  214. package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +171 -0
  215. package/Tests/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.test.ts +383 -0
  216. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +23 -25
  217. package/Tests/Server/Utils/MicrosoftTeamsWebhookUrlValidation.test.ts +6 -0
  218. package/Tests/Server/Utils/Monitor/Criteria/DnssecMonitorCriteria.test.ts +307 -0
  219. package/Tests/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.test.ts +468 -0
  220. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorTelemetryDeepLinks.test.ts +460 -0
  221. package/Tests/Server/Utils/ResponseRateLimitStatusCodes.test.ts +137 -0
  222. package/Tests/Server/Utils/SSRFProtectionBypasses.test.ts +40 -8
  223. package/Tests/Server/Utils/SSRFProtectionUserInfo.test.ts +351 -0
  224. package/Tests/Server/Utils/Telemetry/EntityRegistryRetirement.test.ts +531 -0
  225. package/Tests/Server/Utils/Telemetry/InventoryEntityRegistry.test.ts +15 -15
  226. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +356 -39
  227. package/Tests/Types/IP/IP.test.ts +263 -0
  228. package/Tests/Types/IP/IPWhitelist.test.ts +197 -0
  229. package/Tests/Types/IP/IPv6.test.ts +12 -1
  230. package/Tests/Types/Monitor/SnmpOid.test.ts +64 -0
  231. package/Tests/Types/NetworkDevice/NetworkDeviceMonitoringMethod.test.ts +110 -0
  232. package/Tests/Types/OnCallDutyPolicy/LayerUtilMergeAudit.test.ts +106 -0
  233. package/Tests/Types/OnCallDutyPolicy/LayerUtilMergeDifferential.test.ts +511 -0
  234. package/Tests/Types/OnCallDutyPolicy/ScheduleCoverageEndToEnd.test.ts +489 -0
  235. package/Tests/Types/OnCallDutyPolicy/ScheduleCoverageGapTolerance.test.ts +479 -0
  236. package/Tests/Types/OnCallDutyPolicy/ScheduleCoverageState.test.ts +822 -0
  237. package/Tests/Types/Telemetry/EntityTypeGroups.test.ts +6 -6
  238. package/Tests/Types/Workflow/BaseModelComponents.test.ts +429 -0
  239. package/Tests/Types/Workflow/Components/BaseModel.test.ts +225 -0
  240. package/Tests/Types/Workflow/IntegrationCredentialMetadata.test.ts +100 -0
  241. package/Tests/Types/Workflow/TemplateSyntax.test.ts +112 -0
  242. package/Tests/Types/Workflow/Templates.test.ts +916 -101
  243. package/Tests/UI/Components/ActiveFilterChipsOpenRoute.test.tsx +82 -0
  244. package/Tests/UI/Components/ComponentsModal.test.tsx +564 -7
  245. package/Tests/UI/Components/KeyboardShortcut.test.tsx +95 -0
  246. package/Tests/UI/Components/LogDetailsPanelCrossSignal.test.tsx +448 -0
  247. package/Tests/UI/Components/LogsTableCrossLinks.test.tsx +263 -0
  248. package/Tests/UI/Components/PendingProjectInvitations.test.tsx +913 -0
  249. package/Tests/UI/Components/SimpleLogViewer.test.tsx +228 -0
  250. package/Tests/UI/Components/TableRowSelectability.test.tsx +312 -0
  251. package/Tests/UI/Components/Workflow/GraphLint.test.ts +72 -0
  252. package/Tests/UI/Components/Workflow/GraphLintSummary.test.ts +755 -0
  253. package/Tests/UI/Components/Workflow/ModelColumnEditor.test.ts +242 -7
  254. package/Tests/UI/Components/Workflow/ModelColumnEditorServerContract.test.ts +15 -7
  255. package/Tests/UI/Components/Workflow/ModelSchema.test.ts +242 -28
  256. package/Tests/UI/Components/Workflow/RunStatusWatcher.test.ts +59 -1
  257. package/Tests/UI/Components/Workflow/StepTraceViewer.test.tsx +256 -0
  258. package/Tests/UI/Components/Workflow/UseRunWatch.test.tsx +665 -0
  259. package/Tests/UI/Components/Workflow/WorkflowIssuesModal.test.tsx +485 -0
  260. package/Tests/UI/Components/Workflow/WorkflowLogModal.test.tsx +478 -0
  261. package/Tests/UI/Components/Workflow/WorkflowStatusBar.test.tsx +379 -0
  262. package/Tests/UI/EsbuildConfig.test.ts +607 -0
  263. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +5 -0
  264. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +11 -4
  265. package/Tests/UI/Utils/ModelAPICreateMiscData.test.ts +94 -0
  266. package/Tests/UI/Utils/Platform.test.ts +147 -0
  267. package/Tests/UI/Utils/ProjectInvitationDisplay.test.ts +357 -0
  268. package/Tests/Utils/Monitor/NetworkDeviceLinkRuleUtil.test.ts +198 -0
  269. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +487 -0
  270. package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +698 -0
  271. package/Tests/__mocks__/bullmq.js +55 -0
  272. package/Types/AI/AIChatMessageStatus.ts +8 -1
  273. package/Types/AI/AIChatTypes.ts +12 -0
  274. package/Types/Database/AccessControl/OwnerOnlyColumn.ts +88 -0
  275. package/Types/Exception/ExceptionCode.ts +2 -0
  276. package/Types/Exception/ServiceUnavailableException.ts +8 -0
  277. package/Types/Exception/TooManyRequestsException.ts +8 -0
  278. package/Types/IP/IP.ts +93 -47
  279. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +49 -3
  280. package/Types/NetworkDevice/NetworkDeviceMonitoringMethod.ts +55 -0
  281. package/Types/OnCallDutyPolicy/Layer.ts +203 -149
  282. package/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.ts +13 -0
  283. package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +155 -10
  284. package/Types/Permission.ts +193 -0
  285. package/Types/Telemetry/EntityRelationshipType.ts +1 -1
  286. package/Types/Telemetry/EntitySource.ts +1 -1
  287. package/Types/Telemetry/EntityType.ts +1 -1
  288. package/Types/Telemetry/EntityTypeGroups.ts +1 -1
  289. package/Types/Workflow/Components/BaseModel.ts +75 -29
  290. package/Types/Workflow/Components/Discord.ts +1 -0
  291. package/Types/Workflow/Components/Email.ts +12 -3
  292. package/Types/Workflow/Components/JavaScript.ts +7 -0
  293. package/Types/Workflow/Components/MicrosoftTeams.ts +3 -2
  294. package/Types/Workflow/Components/Slack.ts +1 -0
  295. package/Types/Workflow/Components/Telegram.ts +1 -0
  296. package/Types/Workflow/TemplateSyntax.ts +44 -0
  297. package/Types/Workflow/Templates.ts +2097 -45
  298. package/UI/Components/Calendar/Calendar.css +43 -0
  299. package/UI/Components/Calendar/Calendar.tsx +8 -0
  300. package/UI/Components/Card/Card.tsx +2 -2
  301. package/UI/Components/Checkbox/Checkbox.tsx +16 -0
  302. package/UI/Components/Dictionary/Dictionary.tsx +48 -9
  303. package/UI/Components/FormModal/BasicFormModal.tsx +2 -1
  304. package/UI/Components/Header/HeaderIconDropdownButton.tsx +53 -3
  305. package/UI/Components/Input/Input.tsx +1 -0
  306. package/UI/Components/KeyboardShortcut/KeyboardKey.ts +185 -0
  307. package/UI/Components/KeyboardShortcut/KeyboardShortcut.tsx +87 -0
  308. package/UI/Components/LogsViewer/LogsViewer.tsx +28 -0
  309. package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +31 -0
  310. package/UI/Components/LogsViewer/components/KeyboardShortcutsHelp.tsx +18 -18
  311. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +363 -14
  312. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +11 -0
  313. package/UI/Components/LogsViewer/components/LogsTable.tsx +155 -12
  314. package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +29 -0
  315. package/UI/Components/LogsViewer/types.ts +23 -0
  316. package/UI/Components/Markdown.tsx/MarkdownEditor.tsx +9 -2
  317. package/UI/Components/Navbar/NavBarMenuModal.tsx +15 -30
  318. package/UI/Components/ProjectInvitations/PendingProjectInvitations.tsx +442 -0
  319. package/UI/Components/SimpleLogViewer/SimpleLogViewer.tsx +23 -1
  320. package/UI/Components/Table/Table.tsx +49 -16
  321. package/UI/Components/Table/TableBody.tsx +53 -28
  322. package/UI/Components/Table/TableHeader.tsx +13 -0
  323. package/UI/Components/Table/TableRow.tsx +58 -26
  324. package/UI/Components/Workflow/ArgumentsForm.tsx +155 -9
  325. package/UI/Components/Workflow/ComponentReturnValueViewer.tsx +26 -0
  326. package/UI/Components/Workflow/ComponentSettingsModal.tsx +10 -1
  327. package/UI/Components/Workflow/ComponentValuePickerModal.tsx +135 -7
  328. package/UI/Components/Workflow/ComponentsModal.tsx +116 -22
  329. package/UI/Components/Workflow/DocumentationViewer.tsx +59 -9
  330. package/UI/Components/Workflow/GraphLint.ts +42 -5
  331. package/UI/Components/Workflow/GraphLintSummary.ts +390 -0
  332. package/UI/Components/Workflow/ModelColumnEditor.tsx +154 -22
  333. package/UI/Components/Workflow/ModelSchema.ts +115 -33
  334. package/UI/Components/Workflow/RunStatusWatcher.ts +1 -1
  335. package/UI/Components/Workflow/StepTraceViewer.tsx +1 -1
  336. package/UI/Components/Workflow/UseRunWatch.ts +212 -0
  337. package/UI/Components/Workflow/VariableModal.tsx +6 -2
  338. package/UI/Components/Workflow/Workflow.tsx +49 -3
  339. package/UI/Components/Workflow/WorkflowIssuesModal.tsx +255 -0
  340. package/UI/Components/Workflow/WorkflowLogModal.tsx +128 -0
  341. package/UI/Components/Workflow/WorkflowStatusBar.tsx +224 -0
  342. package/UI/Utils/AIChatExport/ConversationMarkdown.ts +10 -0
  343. package/UI/Utils/ModelAPI/ModelAPI.ts +7 -1
  344. package/UI/Utils/Platform.ts +149 -0
  345. package/UI/Utils/ProjectInvitationDisplay.ts +118 -0
  346. package/UI/esbuild-config.js +22 -1
  347. package/Utils/Monitor/NetworkDeviceLinkRuleUtil.ts +187 -0
  348. package/Utils/Monitor/NetworkTopologyUtil.ts +888 -164
  349. package/Utils/Telemetry/CrossSignalScope.ts +502 -0
  350. package/Utils/Telemetry/EntityKey.ts +5 -5
  351. package/Utils/Telemetry/EntityRelationship.ts +1 -1
  352. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +1 -1
  353. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +1 -1
  354. package/build/dist/Models/DatabaseModels/AIConversation.js +32 -0
  355. package/build/dist/Models/DatabaseModels/AIConversation.js.map +1 -1
  356. package/build/dist/Models/DatabaseModels/AIConversationMessage.js +42 -0
  357. package/build/dist/Models/DatabaseModels/AIConversationMessage.js.map +1 -1
  358. package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js +28 -0
  359. package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js.map +1 -1
  360. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +29 -0
  361. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -1
  362. package/build/dist/Models/DatabaseModels/Index.js +12 -4
  363. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  364. package/build/dist/Models/DatabaseModels/{TelemetryEntity.js → InventoryItem.js} +167 -31
  365. package/build/dist/Models/DatabaseModels/InventoryItem.js.map +1 -0
  366. package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js +454 -0
  367. package/build/dist/Models/DatabaseModels/InventoryItemCustomField.js.map +1 -0
  368. package/build/dist/Models/DatabaseModels/{TelemetryEntityRelationship.js → InventoryItemRelationship.js} +27 -27
  369. package/build/dist/Models/DatabaseModels/InventoryItemRelationship.js.map +1 -0
  370. package/build/dist/Models/DatabaseModels/NetworkDevice.js +141 -0
  371. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  372. package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js +719 -0
  373. package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js.map +1 -0
  374. package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js +475 -0
  375. package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js.map +1 -0
  376. package/build/dist/Models/DatabaseModels/NetworkTopologySuppression.js +446 -0
  377. package/build/dist/Models/DatabaseModels/NetworkTopologySuppression.js.map +1 -0
  378. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js +9 -0
  379. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js.map +1 -1
  380. package/build/dist/Models/DatabaseModels/Project.js +80 -0
  381. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  382. package/build/dist/Models/DatabaseModels/UserCall.js +46 -2
  383. package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
  384. package/build/dist/Models/DatabaseModels/UserEmail.js +48 -2
  385. package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
  386. package/build/dist/Models/DatabaseModels/UserNotificationRule.js +424 -55
  387. package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
  388. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +24 -2
  389. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  390. package/build/dist/Models/DatabaseModels/UserPush.js +51 -1
  391. package/build/dist/Models/DatabaseModels/UserPush.js.map +1 -1
  392. package/build/dist/Models/DatabaseModels/UserSMS.js +47 -2
  393. package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
  394. package/build/dist/Models/DatabaseModels/UserTelegram.js +65 -3
  395. package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -1
  396. package/build/dist/Models/DatabaseModels/UserWebhook.js +56 -2
  397. package/build/dist/Models/DatabaseModels/UserWebhook.js.map +1 -1
  398. package/build/dist/Models/DatabaseModels/UserWhatsApp.js +45 -2
  399. package/build/dist/Models/DatabaseModels/UserWhatsApp.js.map +1 -1
  400. package/build/dist/Models/DatabaseModels/WorkflowVariable.js +12 -0
  401. package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
  402. package/build/dist/Server/API/AIChatAPI.js +237 -1
  403. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  404. package/build/dist/Server/API/DashboardAPI.js +165 -13
  405. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  406. package/build/dist/Server/API/OnCallReadinessAPI.js +599 -0
  407. package/build/dist/Server/API/OnCallReadinessAPI.js.map +1 -0
  408. package/build/dist/Server/API/TeamComplianceAPI.js +68 -9
  409. package/build/dist/Server/API/TeamComplianceAPI.js.map +1 -1
  410. package/build/dist/Server/API/TelemetryAPI.js +129 -18
  411. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  412. package/build/dist/Server/EnvironmentConfig.js +45 -0
  413. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  414. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +22 -0
  415. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  416. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js +4 -4
  417. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786625176831-AddMonitoringMethodToNetworkDevice.js +18 -0
  418. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786625176831-AddMonitoringMethodToNetworkDevice.js.map +1 -0
  419. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786634985763-AddNetworkDeviceLink.js +39 -0
  420. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786634985763-AddNetworkDeviceLink.js.map +1 -0
  421. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639512056-AddNetworkDeviceLinkRule.js +38 -0
  422. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639512056-AddNetworkDeviceLinkRule.js.map +1 -0
  423. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639972982-AddNetworkTopologySuppression.js +22 -0
  424. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786639972982-AddNetworkTopologySuppression.js.map +1 -0
  425. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786800000000-RenameTelemetryEntityToInventoryItem.js +150 -0
  426. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786800000000-RenameTelemetryEntityToInventoryItem.js.map +1 -0
  427. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786900000000-AddInventoryItemArchiveAndCustomFields.js +57 -0
  428. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786900000000-AddInventoryItemArchiveAndCustomFields.js.map +1 -0
  429. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787000000000-AddOnCallNotificationFallbackColumns.js +69 -0
  430. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787000000000-AddOnCallNotificationFallbackColumns.js.map +1 -0
  431. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787100000000-AddAIConversationPageContext.js +32 -0
  432. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787100000000-AddAIConversationPageContext.js.map +1 -0
  433. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787200000000-AddAIChatMessageFeedback.js +26 -0
  434. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787200000000-AddAIChatMessageFeedback.js.map +1 -0
  435. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787300000000-AddEpisodeMemberNotifyIndexes.js +48 -0
  436. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787300000000-AddEpisodeMemberNotifyIndexes.js.map +1 -0
  437. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  438. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  439. package/build/dist/Server/Infrastructure/Queue.js +72 -13
  440. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  441. package/build/dist/Server/Middleware/PublicDashboardRateLimit.js +399 -0
  442. package/build/dist/Server/Middleware/PublicDashboardRateLimit.js.map +1 -0
  443. package/build/dist/Server/Services/AIService.js +1 -0
  444. package/build/dist/Server/Services/AIService.js.map +1 -1
  445. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +24 -3
  446. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -1
  447. package/build/dist/Server/Services/AlertSeverityService.js +54 -0
  448. package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
  449. package/build/dist/Server/Services/DashboardService.js +10 -9
  450. package/build/dist/Server/Services/DashboardService.js.map +1 -1
  451. package/build/dist/Server/Services/DatabaseService.js +24 -2
  452. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  453. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +24 -3
  454. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -1
  455. package/build/dist/Server/Services/IncidentSeverityService.js +67 -0
  456. package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
  457. package/build/dist/Server/Services/Index.js +12 -4
  458. package/build/dist/Server/Services/Index.js.map +1 -1
  459. package/build/dist/Server/Services/InventoryItemCustomFieldService.js +9 -0
  460. package/build/dist/Server/Services/InventoryItemCustomFieldService.js.map +1 -0
  461. package/build/dist/Server/Services/{TelemetryEntityRelationshipService.js → InventoryItemRelationshipService.js} +6 -6
  462. package/build/dist/Server/Services/InventoryItemRelationshipService.js.map +1 -0
  463. package/build/dist/Server/Services/{TelemetryEntityService.js → InventoryItemService.js} +68 -23
  464. package/build/dist/Server/Services/InventoryItemService.js.map +1 -0
  465. package/build/dist/Server/Services/LogAggregationService.js +27 -8
  466. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  467. package/build/dist/Server/Services/MetricAggregationService.js +80 -0
  468. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  469. package/build/dist/Server/Services/MetricService.js +6 -6
  470. package/build/dist/Server/Services/MetricService.js.map +1 -1
  471. package/build/dist/Server/Services/NetworkDeviceLinkRuleService.js +9 -0
  472. package/build/dist/Server/Services/NetworkDeviceLinkRuleService.js.map +1 -0
  473. package/build/dist/Server/Services/NetworkDeviceLinkService.js +71 -0
  474. package/build/dist/Server/Services/NetworkDeviceLinkService.js.map +1 -0
  475. package/build/dist/Server/Services/NetworkDeviceService.js +113 -0
  476. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  477. package/build/dist/Server/Services/NetworkSiteService.js +53 -13
  478. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  479. package/build/dist/Server/Services/NetworkTopologySuppressionService.js +85 -0
  480. package/build/dist/Server/Services/NetworkTopologySuppressionService.js.map +1 -0
  481. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +48 -32
  482. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  483. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +8 -0
  484. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  485. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +51 -12
  486. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  487. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +57 -13
  488. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  489. package/build/dist/Server/Services/OnCallNotificationAlertingService.js +548 -0
  490. package/build/dist/Server/Services/OnCallNotificationAlertingService.js.map +1 -0
  491. package/build/dist/Server/Services/OnCallReadinessService.js +1961 -0
  492. package/build/dist/Server/Services/OnCallReadinessService.js.map +1 -0
  493. package/build/dist/Server/Services/OnCallSetupReminderService.js +738 -0
  494. package/build/dist/Server/Services/OnCallSetupReminderService.js.map +1 -0
  495. package/build/dist/Server/Services/ProfileAggregationService.js +68 -4
  496. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
  497. package/build/dist/Server/Services/StatusPageService.js +11 -10
  498. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  499. package/build/dist/Server/Services/TeamComplianceService.js +312 -160
  500. package/build/dist/Server/Services/TeamComplianceService.js.map +1 -1
  501. package/build/dist/Server/Services/UserCallService.js +24 -1
  502. package/build/dist/Server/Services/UserCallService.js.map +1 -1
  503. package/build/dist/Server/Services/UserEmailService.js +24 -1
  504. package/build/dist/Server/Services/UserEmailService.js.map +1 -1
  505. package/build/dist/Server/Services/UserNotificationRuleAdminService.js +858 -0
  506. package/build/dist/Server/Services/UserNotificationRuleAdminService.js.map +1 -0
  507. package/build/dist/Server/Services/UserNotificationRuleService.js +2830 -175
  508. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  509. package/build/dist/Server/Services/UserOnCallLogService.js +488 -43
  510. package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
  511. package/build/dist/Server/Services/UserPushService.js +26 -0
  512. package/build/dist/Server/Services/UserPushService.js.map +1 -1
  513. package/build/dist/Server/Services/UserService.js +10 -0
  514. package/build/dist/Server/Services/UserService.js.map +1 -1
  515. package/build/dist/Server/Services/UserSmsService.js +24 -1
  516. package/build/dist/Server/Services/UserSmsService.js.map +1 -1
  517. package/build/dist/Server/Services/UserTelegramService.js +22 -1
  518. package/build/dist/Server/Services/UserTelegramService.js.map +1 -1
  519. package/build/dist/Server/Services/UserWebhookService.js +25 -1
  520. package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
  521. package/build/dist/Server/Services/UserWhatsAppService.js +22 -1
  522. package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
  523. package/build/dist/Server/Types/Database/Permissions/BasePermission.js +12 -1
  524. package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
  525. package/build/dist/Server/Types/Database/Permissions/CreatePermission.js +126 -0
  526. package/build/dist/Server/Types/Database/Permissions/CreatePermission.js.map +1 -1
  527. package/build/dist/Server/Types/Database/Permissions/OwnerOnlyColumnPermission.js +254 -0
  528. package/build/dist/Server/Types/Database/Permissions/OwnerOnlyColumnPermission.js.map +1 -0
  529. package/build/dist/Server/Types/Database/Permissions/QueryPermission.js +47 -2
  530. package/build/dist/Server/Types/Database/Permissions/QueryPermission.js.map +1 -1
  531. package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +7 -0
  532. package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
  533. package/build/dist/Server/Types/Workflow/Components/API/Delete.js +1 -1
  534. package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
  535. package/build/dist/Server/Types/Workflow/Components/API/Get.js +1 -1
  536. package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
  537. package/build/dist/Server/Types/Workflow/Components/API/Patch.js +1 -1
  538. package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
  539. package/build/dist/Server/Types/Workflow/Components/API/Post.js +1 -1
  540. package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
  541. package/build/dist/Server/Types/Workflow/Components/API/Put.js +1 -1
  542. package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
  543. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js +21 -5
  544. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js.map +1 -1
  545. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js +14 -10
  546. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js.map +1 -1
  547. package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js +31 -0
  548. package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js.map +1 -1
  549. package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js +3 -9
  550. package/build/dist/Server/Types/Workflow/Components/Conditions/IfElse.js.map +1 -1
  551. package/build/dist/Server/Types/Workflow/Components/Email.js +15 -4
  552. package/build/dist/Server/Types/Workflow/Components/Email.js.map +1 -1
  553. package/build/dist/Server/Types/Workflow/Components/JavaScript.js +7 -2
  554. package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
  555. package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js +1 -1
  556. package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js.map +1 -1
  557. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +514 -56
  558. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  559. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +20 -3
  560. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
  561. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +19 -6
  562. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  563. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +7 -0
  564. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  565. package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js +2 -2
  566. package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -1
  567. package/build/dist/Server/Utils/AI/Toolbox/AIMetaTools.js +692 -0
  568. package/build/dist/Server/Utils/AI/Toolbox/AIMetaTools.js.map +1 -0
  569. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js +148 -12
  570. package/build/dist/Server/Utils/AI/Toolbox/AlertTools.js.map +1 -1
  571. package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js +157 -10
  572. package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js.map +1 -1
  573. package/build/dist/Server/Utils/AI/Toolbox/Index.js +37 -0
  574. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  575. package/build/dist/Server/Utils/AI/Toolbox/MonitorTools.js +259 -14
  576. package/build/dist/Server/Utils/AI/Toolbox/MonitorTools.js.map +1 -1
  577. package/build/dist/Server/Utils/AI/Toolbox/NoteWriteTools.js +235 -0
  578. package/build/dist/Server/Utils/AI/Toolbox/NoteWriteTools.js.map +1 -0
  579. package/build/dist/Server/Utils/AI/Toolbox/OnCallTools.js +1000 -0
  580. package/build/dist/Server/Utils/AI/Toolbox/OnCallTools.js.map +1 -0
  581. package/build/dist/Server/Utils/AI/Toolbox/RunbookTools.js +356 -0
  582. package/build/dist/Server/Utils/AI/Toolbox/RunbookTools.js.map +1 -0
  583. package/build/dist/Server/Utils/AI/Toolbox/SloTools.js +394 -0
  584. package/build/dist/Server/Utils/AI/Toolbox/SloTools.js.map +1 -0
  585. package/build/dist/Server/Utils/AI/Toolbox/StatusPageTools.js +465 -0
  586. package/build/dist/Server/Utils/AI/Toolbox/StatusPageTools.js.map +1 -0
  587. package/build/dist/Server/Utils/AI/Toolbox/TeamTools.js +280 -0
  588. package/build/dist/Server/Utils/AI/Toolbox/TeamTools.js.map +1 -0
  589. package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js +527 -0
  590. package/build/dist/Server/Utils/AI/Toolbox/TimelineTools.js.map +1 -0
  591. package/build/dist/Server/Utils/AI/Toolbox/WorkflowProbeTools.js +548 -0
  592. package/build/dist/Server/Utils/AI/Toolbox/WorkflowProbeTools.js.map +1 -0
  593. package/build/dist/Server/Utils/ClientIp.js +137 -0
  594. package/build/dist/Server/Utils/ClientIp.js.map +1 -0
  595. package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +38 -0
  596. package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -1
  597. package/build/dist/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.js +89 -0
  598. package/build/dist/Server/Utils/Dashboard/PublicDashboardSloHistoryPolicy.js.map +1 -0
  599. package/build/dist/Server/Utils/Dashboard/PublicDashboardSloWidget.js +77 -0
  600. package/build/dist/Server/Utils/Dashboard/PublicDashboardSloWidget.js.map +1 -0
  601. package/build/dist/Server/Utils/Express.js +12 -12
  602. package/build/dist/Server/Utils/Express.js.map +1 -1
  603. package/build/dist/Server/Utils/LLM/LLMService.js +70 -7
  604. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  605. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +121 -11
  606. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  607. package/build/dist/Server/Utils/SSRFProtection.js +82 -21
  608. package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
  609. package/build/dist/Server/Utils/StartServer.js +12 -4
  610. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  611. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +165 -18
  612. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  613. package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +11 -11
  614. package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
  615. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +122 -47
  616. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  617. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +7 -3
  618. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  619. package/build/dist/Types/AI/AIChatMessageStatus.js +8 -1
  620. package/build/dist/Types/AI/AIChatMessageStatus.js.map +1 -1
  621. package/build/dist/Types/AI/AIChatTypes.js +12 -0
  622. package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
  623. package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js +60 -0
  624. package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js.map +1 -0
  625. package/build/dist/Types/Exception/ExceptionCode.js +2 -0
  626. package/build/dist/Types/Exception/ExceptionCode.js.map +1 -1
  627. package/build/dist/Types/Exception/ServiceUnavailableException.js +8 -0
  628. package/build/dist/Types/Exception/ServiceUnavailableException.js.map +1 -0
  629. package/build/dist/Types/Exception/TooManyRequestsException.js +8 -0
  630. package/build/dist/Types/Exception/TooManyRequestsException.js.map +1 -0
  631. package/build/dist/Types/IP/IP.js +87 -43
  632. package/build/dist/Types/IP/IP.js.map +1 -1
  633. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js +50 -0
  634. package/build/dist/Types/NetworkDevice/NetworkDeviceMonitoringMethod.js.map +1 -0
  635. package/build/dist/Types/OnCallDutyPolicy/Layer.js +186 -123
  636. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  637. package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js +13 -0
  638. package/build/dist/Types/OnCallDutyPolicy/OnCallDutyPolicyStatus.js.map +1 -1
  639. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +105 -11
  640. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
  641. package/build/dist/Types/Permission.js +174 -0
  642. package/build/dist/Types/Permission.js.map +1 -1
  643. package/build/dist/Types/Telemetry/EntityRelationshipType.js +1 -1
  644. package/build/dist/Types/Telemetry/EntitySource.js +1 -1
  645. package/build/dist/Types/Telemetry/EntityType.js +1 -1
  646. package/build/dist/Types/Telemetry/EntityTypeGroups.js +1 -1
  647. package/build/dist/Types/Telemetry/EntityTypeGroups.js.map +1 -1
  648. package/build/dist/Types/Workflow/Components/BaseModel.js +66 -28
  649. package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
  650. package/build/dist/Types/Workflow/Components/Discord.js +1 -0
  651. package/build/dist/Types/Workflow/Components/Discord.js.map +1 -1
  652. package/build/dist/Types/Workflow/Components/Email.js +12 -3
  653. package/build/dist/Types/Workflow/Components/Email.js.map +1 -1
  654. package/build/dist/Types/Workflow/Components/JavaScript.js +7 -0
  655. package/build/dist/Types/Workflow/Components/JavaScript.js.map +1 -1
  656. package/build/dist/Types/Workflow/Components/MicrosoftTeams.js +3 -2
  657. package/build/dist/Types/Workflow/Components/MicrosoftTeams.js.map +1 -1
  658. package/build/dist/Types/Workflow/Components/Slack.js +1 -0
  659. package/build/dist/Types/Workflow/Components/Slack.js.map +1 -1
  660. package/build/dist/Types/Workflow/Components/Telegram.js +1 -0
  661. package/build/dist/Types/Workflow/Components/Telegram.js.map +1 -1
  662. package/build/dist/Types/Workflow/TemplateSyntax.js +12 -0
  663. package/build/dist/Types/Workflow/TemplateSyntax.js.map +1 -1
  664. package/build/dist/Types/Workflow/Templates.js +1931 -38
  665. package/build/dist/Types/Workflow/Templates.js.map +1 -1
  666. package/build/dist/UI/Components/Calendar/Calendar.js +1 -1
  667. package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
  668. package/build/dist/UI/Components/Checkbox/Checkbox.js +1 -1
  669. package/build/dist/UI/Components/Checkbox/Checkbox.js.map +1 -1
  670. package/build/dist/UI/Components/Dictionary/Dictionary.js +25 -11
  671. package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
  672. package/build/dist/UI/Components/FormModal/BasicFormModal.js.map +1 -1
  673. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +27 -4
  674. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
  675. package/build/dist/UI/Components/Input/Input.js +1 -0
  676. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  677. package/build/dist/UI/Components/KeyboardShortcut/KeyboardKey.js +163 -0
  678. package/build/dist/UI/Components/KeyboardShortcut/KeyboardKey.js.map +1 -0
  679. package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcut.js +47 -0
  680. package/build/dist/UI/Components/KeyboardShortcut/KeyboardShortcut.js.map +1 -0
  681. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +4 -4
  682. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  683. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +11 -1
  684. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -1
  685. package/build/dist/UI/Components/LogsViewer/components/KeyboardShortcutsHelp.js +10 -8
  686. package/build/dist/UI/Components/LogsViewer/components/KeyboardShortcutsHelp.js.map +1 -1
  687. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +227 -14
  688. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  689. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +5 -0
  690. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  691. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +69 -5
  692. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  693. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +8 -0
  694. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
  695. package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
  696. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js +9 -2
  697. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js.map +1 -1
  698. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +8 -21
  699. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  700. package/build/dist/UI/Components/ProjectInvitations/PendingProjectInvitations.js +251 -0
  701. package/build/dist/UI/Components/ProjectInvitations/PendingProjectInvitations.js.map +1 -0
  702. package/build/dist/UI/Components/SimpleLogViewer/SimpleLogViewer.js +9 -2
  703. package/build/dist/UI/Components/SimpleLogViewer/SimpleLogViewer.js.map +1 -1
  704. package/build/dist/UI/Components/Table/Table.js +27 -15
  705. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  706. package/build/dist/UI/Components/Table/TableBody.js +24 -18
  707. package/build/dist/UI/Components/Table/TableBody.js.map +1 -1
  708. package/build/dist/UI/Components/Table/TableHeader.js +9 -1
  709. package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
  710. package/build/dist/UI/Components/Table/TableRow.js +29 -21
  711. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  712. package/build/dist/UI/Components/Workflow/ArgumentsForm.js +130 -12
  713. package/build/dist/UI/Components/Workflow/ArgumentsForm.js.map +1 -1
  714. package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js +10 -1
  715. package/build/dist/UI/Components/Workflow/ComponentReturnValueViewer.js.map +1 -1
  716. package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js +4 -4
  717. package/build/dist/UI/Components/Workflow/ComponentSettingsModal.js.map +1 -1
  718. package/build/dist/UI/Components/Workflow/ComponentValuePickerModal.js +57 -7
  719. package/build/dist/UI/Components/Workflow/ComponentValuePickerModal.js.map +1 -1
  720. package/build/dist/UI/Components/Workflow/ComponentsModal.js +53 -18
  721. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  722. package/build/dist/UI/Components/Workflow/DocumentationViewer.js +19 -6
  723. package/build/dist/UI/Components/Workflow/DocumentationViewer.js.map +1 -1
  724. package/build/dist/UI/Components/Workflow/GraphLint.js +33 -4
  725. package/build/dist/UI/Components/Workflow/GraphLint.js.map +1 -1
  726. package/build/dist/UI/Components/Workflow/GraphLintSummary.js +231 -0
  727. package/build/dist/UI/Components/Workflow/GraphLintSummary.js.map +1 -0
  728. package/build/dist/UI/Components/Workflow/ModelColumnEditor.js +116 -21
  729. package/build/dist/UI/Components/Workflow/ModelColumnEditor.js.map +1 -1
  730. package/build/dist/UI/Components/Workflow/ModelSchema.js +72 -34
  731. package/build/dist/UI/Components/Workflow/ModelSchema.js.map +1 -1
  732. package/build/dist/UI/Components/Workflow/RunStatusWatcher.js +1 -1
  733. package/build/dist/UI/Components/Workflow/RunStatusWatcher.js.map +1 -1
  734. package/build/dist/UI/Components/Workflow/StepTraceViewer.js +1 -1
  735. package/build/dist/UI/Components/Workflow/StepTraceViewer.js.map +1 -1
  736. package/build/dist/UI/Components/Workflow/UseRunWatch.js +123 -0
  737. package/build/dist/UI/Components/Workflow/UseRunWatch.js.map +1 -0
  738. package/build/dist/UI/Components/Workflow/VariableModal.js +3 -2
  739. package/build/dist/UI/Components/Workflow/VariableModal.js.map +1 -1
  740. package/build/dist/UI/Components/Workflow/Workflow.js +41 -1
  741. package/build/dist/UI/Components/Workflow/Workflow.js.map +1 -1
  742. package/build/dist/UI/Components/Workflow/WorkflowIssuesModal.js +99 -0
  743. package/build/dist/UI/Components/Workflow/WorkflowIssuesModal.js.map +1 -0
  744. package/build/dist/UI/Components/Workflow/WorkflowLogModal.js +56 -0
  745. package/build/dist/UI/Components/Workflow/WorkflowLogModal.js.map +1 -0
  746. package/build/dist/UI/Components/Workflow/WorkflowStatusBar.js +92 -0
  747. package/build/dist/UI/Components/Workflow/WorkflowStatusBar.js.map +1 -0
  748. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +9 -0
  749. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -1
  750. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +1 -1
  751. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
  752. package/build/dist/UI/Utils/Platform.js +118 -0
  753. package/build/dist/UI/Utils/Platform.js.map +1 -0
  754. package/build/dist/UI/Utils/ProjectInvitationDisplay.js +106 -0
  755. package/build/dist/UI/Utils/ProjectInvitationDisplay.js.map +1 -0
  756. package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js +108 -0
  757. package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js.map +1 -0
  758. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +642 -136
  759. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  760. package/build/dist/Utils/Telemetry/CrossSignalScope.js +328 -0
  761. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -0
  762. package/build/dist/Utils/Telemetry/EntityKey.js +5 -5
  763. package/build/dist/Utils/Telemetry/EntityRelationship.js +1 -1
  764. package/jest.config.json +1 -0
  765. package/package.json +1 -1
  766. package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +0 -1
  767. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +0 -1
  768. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +0 -1
  769. package/build/dist/Server/Services/TelemetryEntityService.js.map +0 -1
@@ -0,0 +1,548 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseConfig from "../DatabaseConfig";
11
+ import BaseService from "./BaseService";
12
+ import MailService from "./MailService";
13
+ import OnCallDutyPolicyOwnerTeamService from "./OnCallDutyPolicyOwnerTeamService";
14
+ import OnCallDutyPolicyOwnerUserService from "./OnCallDutyPolicyOwnerUserService";
15
+ import OnCallDutyPolicyService from "./OnCallDutyPolicyService";
16
+ import ProjectService from "./ProjectService";
17
+ import TeamMemberService from "./TeamMemberService";
18
+ import UserService from "./UserService";
19
+ import InProcessMemo from "../Utils/InProcessMemo";
20
+ import logger from "../Utils/Logger";
21
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
22
+ import URL from "../../Types/API/URL";
23
+ import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
24
+ import EmailTemplateType from "../../Types/Email/EmailTemplateType";
25
+ import NotificationRuleType from "../../Types/NotificationRule/NotificationRuleType";
26
+ /*
27
+ * One notification per (projectId, userId, ruleType) per 24 hours.
28
+ *
29
+ * The trigger for this service is an on-call page, and pages arrive in storms: a single
30
+ * bad deploy can execute the same policy against the same responder hundreds of times in
31
+ * an hour, and every one of those executions takes exactly the same "no matching rule"
32
+ * branch. Without a window the fix for silent page loss would be a mail storm, which is
33
+ * the same failure wearing better clothes — nobody reads the two hundredth copy either.
34
+ */
35
+ const NOTIFICATION_WINDOW_IN_MS = 24 * 60 * 60 * 1000;
36
+ /*
37
+ * Bounded so a large install cannot turn the throttle into a memory leak: the keys are
38
+ * (project, user, ruleType) triples and a busy install has a lot of them. Eviction is
39
+ * oldest-first, and an evicted key simply means one extra email — the durable project
40
+ * flag below still catches the common case.
41
+ */
42
+ const THROTTLE_MAX_ENTRIES = 10000;
43
+ export class OnCallNotificationAlertingService extends BaseService {
44
+ constructor() {
45
+ super(...arguments);
46
+ /*
47
+ * The fine-grained half of the throttle: exact (projectId, userId, ruleType) semantics,
48
+ * but only within one process.
49
+ *
50
+ * The durable half is Project.onCallFallbackUsedNotificationSentToOwners. A boolean
51
+ * column cannot record WHEN it was set, so it cannot express a 24h window on its own —
52
+ * it can only say "the owners have been told and nothing has cleared the flag yet".
53
+ * The two are combined in shouldNotifyOwners below, and the combination is deliberately
54
+ * biased towards sending: this whole phase exists because pages were being lost
55
+ * silently, and an extra owner email is a much cheaper mistake than a missed one.
56
+ */
57
+ this.ownerNotificationThrottle = new InProcessMemo({
58
+ ttlInMs: NOTIFICATION_WINDOW_IN_MS,
59
+ maxEntries: THROTTLE_MAX_ENTRIES,
60
+ });
61
+ /*
62
+ * The user-facing mail has no durable flag of its own by design. Constraint: the new
63
+ * project column throttles the OWNER mail, and reusing it here would let one responder's
64
+ * quiet period suppress the owners' alert (and vice versa). A per-process window is
65
+ * enough for the user mail because duplicates land in one person's inbox where they are
66
+ * self-evidently the same message, rather than fanning out across every project owner.
67
+ */
68
+ this.userNotificationThrottle = new InProcessMemo({
69
+ ttlInMs: NOTIFICATION_WINDOW_IN_MS,
70
+ maxEntries: THROTTLE_MAX_ENTRIES,
71
+ });
72
+ }
73
+ /**
74
+ * Tell the people who can fix it that a page either fell back to a channel nobody chose,
75
+ * or could not be delivered at all.
76
+ *
77
+ * Two audiences, notified independently so a failure to reach one never suppresses the
78
+ * other:
79
+ * - the on-call policy's owners, falling back to the project's owners — they own the
80
+ * configuration that is wrong;
81
+ * - the responder themselves — they own the notification rules that are missing.
82
+ *
83
+ * This never throws. It is called from the on-call delivery path, where an exception
84
+ * raised while explaining a delivery problem would turn a degraded page into a lost one.
85
+ * Every failure is logged instead.
86
+ */
87
+ async notifyOfUndeliverablePage(data) {
88
+ try {
89
+ if (!data.projectId || !data.userId) {
90
+ logger.error("OnCallNotificationAlertingService.notifyOfUndeliverablePage called without a projectId or userId. Nobody can be told about this undeliverable page.");
91
+ return;
92
+ }
93
+ const project = await ProjectService.findOneById({
94
+ id: data.projectId,
95
+ select: {
96
+ _id: true,
97
+ name: true,
98
+ onCallFallbackUsedNotificationSentToOwners: true,
99
+ },
100
+ props: {
101
+ isRoot: true,
102
+ },
103
+ });
104
+ if (!project) {
105
+ logger.error(`OnCallNotificationAlertingService: project ${data.projectId.toString()} not found, so nobody can be told that a page to user ${data.userId.toString()} was undeliverable.`);
106
+ return;
107
+ }
108
+ const user = await UserService.findOneById({
109
+ id: data.userId,
110
+ select: {
111
+ _id: true,
112
+ name: true,
113
+ email: true,
114
+ },
115
+ props: {
116
+ isRoot: true,
117
+ },
118
+ });
119
+ if (!user) {
120
+ logger.error(`OnCallNotificationAlertingService: user ${data.userId.toString()} not found while reporting an undeliverable page in project ${data.projectId.toString()}.`);
121
+ return;
122
+ }
123
+ /*
124
+ * Owners first. The responder is by definition the person whose notification setup
125
+ * just failed to reach them, so they are the LESS reliable of the two audiences —
126
+ * if the fallback delivered nothing, the user mail below may well go nowhere either.
127
+ *
128
+ * Each audience gets its own try/catch. A DB error while resolving the policy's
129
+ * owners says nothing about whether the responder can be emailed, and letting it
130
+ * cancel the second notification would make one broken lookup silence both halves
131
+ * of the alert.
132
+ */
133
+ try {
134
+ await this.notifyOwners({
135
+ data: data,
136
+ project: project,
137
+ user: user,
138
+ });
139
+ }
140
+ catch (err) {
141
+ logger.error(`OnCallNotificationAlertingService: failed to notify the owners of an undeliverable page in project ${data.projectId.toString()}.`);
142
+ logger.error(err);
143
+ }
144
+ try {
145
+ await this.notifyAffectedUser({
146
+ data: data,
147
+ project: project,
148
+ user: user,
149
+ });
150
+ }
151
+ catch (err) {
152
+ logger.error(`OnCallNotificationAlertingService: failed to notify user ${data.userId.toString()} that their page in project ${data.projectId.toString()} was undeliverable.`);
153
+ logger.error(err);
154
+ }
155
+ }
156
+ catch (err) {
157
+ logger.error("OnCallNotificationAlertingService.notifyOfUndeliverablePage failed. The page itself is unaffected; only the explanation was lost.");
158
+ logger.error(err);
159
+ }
160
+ }
161
+ /*
162
+ * Policy owners, then project owners. Not both: the policy owners are the specific,
163
+ * accountable audience, and mailing the whole ownership chain on every fallback is how
164
+ * owner notifications get filtered into a folder nobody opens.
165
+ */
166
+ async notifyOwners(input) {
167
+ var _a;
168
+ const { data, project, user } = input;
169
+ const throttleKey = this.getThrottleKey(data);
170
+ const shouldNotify = await this.shouldNotifyOwners({
171
+ project: project,
172
+ throttleKey: throttleKey,
173
+ });
174
+ if (!shouldNotify) {
175
+ logger.debug(`OnCallNotificationAlertingService: owner notification for ${throttleKey} suppressed by the ${NOTIFICATION_WINDOW_IN_MS / (60 * 60 * 1000)}h throttle.`);
176
+ return;
177
+ }
178
+ const subject = this.getOwnerEmailSubject({
179
+ data: data,
180
+ project: project,
181
+ });
182
+ const message = await this.getOwnerEmailMessageHtml({
183
+ data: data,
184
+ project: project,
185
+ user: user,
186
+ });
187
+ const policyOwners = await this.findOnCallDutyPolicyOwners(data.onCallDutyPolicyId);
188
+ if (policyOwners.length > 0) {
189
+ for (const owner of policyOwners) {
190
+ await this.sendSimpleMessage({
191
+ toUser: owner,
192
+ projectId: data.projectId,
193
+ subject: subject,
194
+ message: message,
195
+ });
196
+ }
197
+ }
198
+ else {
199
+ /*
200
+ * getOwners returns [] whenever no team in the project holds
201
+ * Permission.ProjectOwner, and sendEmailToProjectOwners then returns without
202
+ * sending anything and without saying so. That silence is exactly the failure mode
203
+ * this service exists to remove, so the emptiness is checked here and logged loudly:
204
+ * an install with no owner team is one where the last-resort alert has nowhere to
205
+ * go, and that is worth an error line in the logs even though nothing is broken
206
+ * from the code's point of view.
207
+ *
208
+ * The extra getOwners call this costs is deliberate. Re-implementing the send here
209
+ * to avoid it would fork the owner-mail path, and this runs at most once per
210
+ * (project, user, ruleType) per day.
211
+ */
212
+ const projectOwners = await ProjectService.getOwners(data.projectId);
213
+ if (projectOwners.length === 0) {
214
+ logger.error(`OnCallNotificationAlertingService: project ${data.projectId.toString()} has no on-call policy owners and no project owners, so there is nobody to tell that a page to ${((_a = user.email) === null || _a === void 0 ? void 0 : _a.toString()) || data.userId.toString()} was undeliverable. Grant Permission.ProjectOwner to a team so alerts like this one have a destination.`);
215
+ /*
216
+ * Throttled like a successful send so a page storm produces one loud line per
217
+ * (project, user, ruleType) per day rather than one per page — an error nobody
218
+ * can find in the noise is not better than the silence it replaced. The durable
219
+ * project flag is deliberately left alone: nothing was sent, so "the owners have
220
+ * been told" must stay false.
221
+ */
222
+ this.ownerNotificationThrottle.set(throttleKey, true);
223
+ return;
224
+ }
225
+ await ProjectService.sendEmailToProjectOwners(data.projectId, subject, message);
226
+ }
227
+ this.ownerNotificationThrottle.set(throttleKey, true);
228
+ await this.setOwnerNotificationFlag(data.projectId, true);
229
+ }
230
+ /*
231
+ * The throttle decision, split out because the interaction between the in-process window
232
+ * and the durable flag is the subtle part of this service.
233
+ */
234
+ async shouldNotifyOwners(input) {
235
+ const { project, throttleKey } = input;
236
+ if (this.ownerNotificationThrottle.get(throttleKey)) {
237
+ // This process mailed the owners about this exact triple inside the window.
238
+ return false;
239
+ }
240
+ if (project.onCallFallbackUsedNotificationSentToOwners) {
241
+ /*
242
+ * Another pod — or this one before a restart — already mailed the owners, and
243
+ * nothing has cleared the flag since. The column cannot tell us whether that was
244
+ * two minutes or two weeks ago, so there is no way to evaluate the window from it.
245
+ *
246
+ * Re-arm rather than guess. This page stays quiet (the owners did hear about the
247
+ * problem at some point) and the very next undeliverable page gets through, which
248
+ * means an install can never be permanently silenced by a latch nobody clears.
249
+ * The in-process key is deliberately NOT stamped here: stamping it would suppress
250
+ * that next page too, and a 24h silence after a pod restart is the one outcome this
251
+ * phase must not produce.
252
+ *
253
+ * The cost is bounded and known: across N pods this can produce up to one owner
254
+ * email per pod per triple per day instead of exactly one. That is the honest limit
255
+ * of what a project-scoped boolean can enforce, and it errs in the safe direction.
256
+ */
257
+ await this.setOwnerNotificationFlag(project.id, false);
258
+ return false;
259
+ }
260
+ return true;
261
+ }
262
+ async setOwnerNotificationFlag(projectId, value) {
263
+ await ProjectService.updateOneById({
264
+ id: projectId,
265
+ data: {
266
+ onCallFallbackUsedNotificationSentToOwners: value,
267
+ },
268
+ props: {
269
+ isRoot: true,
270
+ },
271
+ });
272
+ }
273
+ async notifyAffectedUser(input) {
274
+ const { data, project, user } = input;
275
+ if (!user.email) {
276
+ logger.error(`OnCallNotificationAlertingService: user ${data.userId.toString()} has no account email, so they cannot be told that their page in project ${data.projectId.toString()} was undeliverable.`);
277
+ return;
278
+ }
279
+ const throttleKey = this.getThrottleKey(data);
280
+ if (this.userNotificationThrottle.get(throttleKey)) {
281
+ logger.debug(`OnCallNotificationAlertingService: user notification for ${throttleKey} suppressed by the ${NOTIFICATION_WINDOW_IN_MS / (60 * 60 * 1000)}h throttle.`);
282
+ return;
283
+ }
284
+ const projectName = project.name || "your project";
285
+ const severity = data.severityName || "this severity";
286
+ const eventLabel = this.getRuleTypeLabel(data.ruleType);
287
+ const rulesLink = await this.getNotificationRulesLinkInDashboard(data.projectId, data.ruleType);
288
+ const subject = data.fallbackChannelsUsed.length > 0
289
+ ? `You were paged in ${projectName} without a notification rule`
290
+ : `A page in ${projectName} could not reach you`;
291
+ /*
292
+ * Same raw-HTML rule as the owner message: SimpleMessage.hbs renders `message`
293
+ * through a triple stache, so the project and severity names are escaped here. The
294
+ * channel list is generated by the fallback (["Email", "Push"]) rather than by a user,
295
+ * but it is escaped too so that stays safe if the fallback ever learns to name a
296
+ * channel after a user-supplied label.
297
+ */
298
+ const escapedLink = this.escapeHtml(rulesLink.toString());
299
+ const lines = [];
300
+ if (data.fallbackChannelsUsed.length > 0) {
301
+ lines.push(`You were paged for a ${this.escapeHtml(severity)} ${this.escapeHtml(eventLabel)} in ${this.escapeHtml(projectName)}, but you have no notification rule configured for it. We reached you on your verified ${this.escapeHtml(this.formatChannelList(data.fallbackChannelsUsed))} instead.`);
302
+ lines.push(`That fallback is a safety net, not a setting — it ignores everything you may have configured about how and when you want to be reached.`);
303
+ lines.push(`Set up a rule so future pages arrive the way you want them to: <a href="${escapedLink}">${escapedLink}</a>`);
304
+ }
305
+ else {
306
+ lines.push(`You were paged for a ${this.escapeHtml(severity)} ${this.escapeHtml(eventLabel)} in ${this.escapeHtml(projectName)} and we could not deliver it. You have no notification rule for it and no verified notification method to fall back on, so nothing was sent anywhere.`);
307
+ lines.push(`Until you add a verified notification method and a rule, every page routed to you is lost: <a href="${escapedLink}">${escapedLink}</a>`);
308
+ }
309
+ await this.sendSimpleMessage({
310
+ toUser: user,
311
+ projectId: data.projectId,
312
+ subject: subject,
313
+ message: lines.join("<br/><br/>"),
314
+ });
315
+ this.userNotificationThrottle.set(throttleKey, true);
316
+ }
317
+ getOwnerEmailSubject(input) {
318
+ const { data, project } = input;
319
+ const projectName = project.name || "your project";
320
+ /*
321
+ * The subject is rendered through {{title}} in EmailTitle.hbs, which Handlebars
322
+ * escapes, and is also used verbatim as the SMTP subject header. Escaping it here
323
+ * would double-escape the first and corrupt the second, so raw values belong here and
324
+ * escaped values belong in the message body only.
325
+ */
326
+ return data.fallbackChannelsUsed.length > 0
327
+ ? `On-call fallback used in ${projectName}`
328
+ : `A page in ${projectName} reached nobody`;
329
+ }
330
+ async getOwnerEmailMessageHtml(input) {
331
+ var _a, _b, _c;
332
+ const { data, project, user } = input;
333
+ /*
334
+ * Everything below is interpolated into ProjectService.sendEmailToProjectOwners, which
335
+ * hands `message` to SimpleMessage.hbs where InfoBlock renders it through a triple
336
+ * stache ({{{info}}}) — i.e. as RAW HTML. User names, project names and severity names
337
+ * are all user-controlled strings, so every one of them is escaped on the way in.
338
+ */
339
+ const projectName = this.escapeHtml(project.name || "your project");
340
+ const userName = this.escapeHtml(((_a = user.name) === null || _a === void 0 ? void 0 : _a.toString()) || ((_b = user.email) === null || _b === void 0 ? void 0 : _b.toString()) || "A responder");
341
+ const userEmail = this.escapeHtml(((_c = user.email) === null || _c === void 0 ? void 0 : _c.toString()) || "");
342
+ const severity = this.escapeHtml(data.severityName || "this severity");
343
+ const eventLabel = this.escapeHtml(this.getRuleTypeLabel(data.ruleType));
344
+ const lines = [];
345
+ if (data.fallbackChannelsUsed.length > 0) {
346
+ lines.push(`${userName}${userEmail ? ` (${userEmail})` : ""} was paged for a ${severity} ${eventLabel} in ${projectName}, but has no notification rule configured for it.`);
347
+ lines.push(`The page was delivered on their verified ${this.escapeHtml(this.formatChannelList(data.fallbackChannelsUsed))} as a fallback, so nobody was dropped this time.`);
348
+ }
349
+ else {
350
+ lines.push(`${userName}${userEmail ? ` (${userEmail})` : ""} was paged for a ${severity} ${eventLabel} in ${projectName} and the page could not be delivered.`);
351
+ lines.push(`They have no notification rule for it and no verified notification method to fall back on, so this page reached them on no channel at all. If they are the only responder on this escalation level, it reached nobody.`);
352
+ }
353
+ if (data.onCallDutyPolicyId) {
354
+ const policyName = await OnCallDutyPolicyService.getOnCallDutyPolicyName({
355
+ onCallDutyPolicyId: data.onCallDutyPolicyId,
356
+ });
357
+ const policyLink = await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(data.projectId, data.onCallDutyPolicyId);
358
+ lines.push(`On-call policy: <a href="${this.escapeHtml(policyLink.toString())}">${this.escapeHtml(policyName || "View policy")}</a>`);
359
+ }
360
+ lines.push(`Ask them to add a rule for ${severity} ${eventLabel} in User Settings &gt; On-Call Rules, or remove them from the escalation level if they are not meant to be paged for it.`);
361
+ return lines.join("<br/><br/>");
362
+ }
363
+ /*
364
+ * The policy's own owners: direct owner users, plus every member of an owner team.
365
+ * Returns [] when no policy id was supplied, which is the caller's signal to fall back
366
+ * to the project owners.
367
+ */
368
+ async findOnCallDutyPolicyOwners(onCallDutyPolicyId) {
369
+ if (!onCallDutyPolicyId) {
370
+ return [];
371
+ }
372
+ const ownerUsers = await OnCallDutyPolicyOwnerUserService.findBy({
373
+ query: {
374
+ onCallDutyPolicyId: onCallDutyPolicyId,
375
+ },
376
+ select: {
377
+ _id: true,
378
+ user: {
379
+ _id: true,
380
+ name: true,
381
+ email: true,
382
+ },
383
+ },
384
+ skip: 0,
385
+ limit: LIMIT_PER_PROJECT,
386
+ props: {
387
+ isRoot: true,
388
+ },
389
+ });
390
+ const ownerTeams = await OnCallDutyPolicyOwnerTeamService.findBy({
391
+ query: {
392
+ onCallDutyPolicyId: onCallDutyPolicyId,
393
+ },
394
+ select: {
395
+ _id: true,
396
+ teamId: true,
397
+ },
398
+ skip: 0,
399
+ limit: LIMIT_PER_PROJECT,
400
+ props: {
401
+ isRoot: true,
402
+ },
403
+ });
404
+ const users = [];
405
+ const seenUserIds = new Set();
406
+ const addUser = (user) => {
407
+ if (!user || !user.id || !user.email) {
408
+ return;
409
+ }
410
+ const key = user.id.toString();
411
+ if (seenUserIds.has(key)) {
412
+ return;
413
+ }
414
+ seenUserIds.add(key);
415
+ users.push(user);
416
+ };
417
+ for (const ownerUser of ownerUsers) {
418
+ addUser(ownerUser.user);
419
+ }
420
+ const teamIds = [];
421
+ for (const ownerTeam of ownerTeams) {
422
+ if (ownerTeam.teamId) {
423
+ teamIds.push(ownerTeam.teamId);
424
+ }
425
+ }
426
+ if (teamIds.length > 0) {
427
+ const teamUsers = await TeamMemberService.getUsersInTeams(teamIds);
428
+ for (const teamUser of teamUsers) {
429
+ addUser(teamUser);
430
+ }
431
+ }
432
+ return users;
433
+ }
434
+ async sendSimpleMessage(input) {
435
+ const { toUser, projectId, subject, message } = input;
436
+ if (!toUser.email) {
437
+ return;
438
+ }
439
+ const vars = {
440
+ subject: subject,
441
+ message: message,
442
+ };
443
+ try {
444
+ await MailService.sendMail({
445
+ toEmail: toUser.email,
446
+ templateType: EmailTemplateType.SimpleMessage,
447
+ vars: vars,
448
+ subject: subject,
449
+ }, {
450
+ projectId: projectId,
451
+ userId: toUser.id,
452
+ });
453
+ }
454
+ catch (err) {
455
+ /*
456
+ * Swallowed on purpose: one unreachable recipient must not stop the rest of the
457
+ * owner list from hearing about a page that reached nobody.
458
+ */
459
+ logger.error(`OnCallNotificationAlertingService: failed to email ${toUser.email.toString()} about an undeliverable on-call page.`);
460
+ logger.error(err);
461
+ }
462
+ }
463
+ getThrottleKey(data) {
464
+ return `${data.projectId.toString()}:${data.userId.toString()}:${data.ruleType}`;
465
+ }
466
+ /*
467
+ * NotificationRuleType's values are already English sentences ("When incident on-call
468
+ * policy is executed"), which read badly mid-sentence. These are the noun forms.
469
+ */
470
+ getRuleTypeLabel(ruleType) {
471
+ switch (ruleType) {
472
+ case NotificationRuleType.ON_CALL_EXECUTED_INCIDENT:
473
+ return "incident";
474
+ case NotificationRuleType.ON_CALL_EXECUTED_ALERT:
475
+ return "alert";
476
+ case NotificationRuleType.ON_CALL_EXECUTED_ALERT_EPISODE:
477
+ return "alert episode";
478
+ case NotificationRuleType.ON_CALL_EXECUTED_INCIDENT_EPISODE:
479
+ return "incident episode";
480
+ case NotificationRuleType.WHEN_USER_GOES_ON_CALL:
481
+ return "on-call shift start";
482
+ case NotificationRuleType.WHEN_USER_GOES_OFF_CALL:
483
+ return "on-call shift end";
484
+ default:
485
+ return "on-call notification";
486
+ }
487
+ }
488
+ /*
489
+ * The four severity-scoped rule types each have their own settings page, and sending
490
+ * someone to the wrong one is how a "fix your rules" email gets ignored. The two shift
491
+ * rule types are configured on the incident page alongside everything else.
492
+ *
493
+ * These path segments mirror UserSettingsRoutePath in the Dashboard's RouteMap. They are
494
+ * duplicated rather than imported because Common/Server cannot reach App sources — the
495
+ * same reason OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard spells its
496
+ * route out by hand.
497
+ */
498
+ getUserSettingsPathForRuleType(ruleType) {
499
+ switch (ruleType) {
500
+ case NotificationRuleType.ON_CALL_EXECUTED_ALERT:
501
+ return "alert-on-call-rules";
502
+ case NotificationRuleType.ON_CALL_EXECUTED_ALERT_EPISODE:
503
+ return "alert-episode-on-call-rules";
504
+ case NotificationRuleType.ON_CALL_EXECUTED_INCIDENT_EPISODE:
505
+ return "incident-episode-on-call-rules";
506
+ case NotificationRuleType.ON_CALL_EXECUTED_INCIDENT:
507
+ case NotificationRuleType.WHEN_USER_GOES_ON_CALL:
508
+ case NotificationRuleType.WHEN_USER_GOES_OFF_CALL:
509
+ return "incident-on-call-rules";
510
+ default:
511
+ return "notification-methods";
512
+ }
513
+ }
514
+ async getNotificationRulesLinkInDashboard(projectId, ruleType) {
515
+ const dashboardUrl = await DatabaseConfig.getDashboardUrl();
516
+ return URL.fromString(dashboardUrl.toString()).addRoute(`/${projectId.toString()}/user-settings/${this.getUserSettingsPathForRuleType(ruleType)}`);
517
+ }
518
+ formatChannelList(channels) {
519
+ if (channels.length === 0) {
520
+ return "";
521
+ }
522
+ if (channels.length === 1) {
523
+ return channels[0];
524
+ }
525
+ return `${channels.slice(0, -1).join(", ")} and ${channels[channels.length - 1]}`;
526
+ }
527
+ /*
528
+ * ProjectService.sendEmailToProjectOwners hands `message` to a triple-stache Handlebars
529
+ * partial, so nothing between here and the recipient's inbox escapes anything. This is
530
+ * the only escaping in that path.
531
+ */
532
+ escapeHtml(value) {
533
+ return value
534
+ .replace(/&/g, "&amp;")
535
+ .replace(/</g, "&lt;")
536
+ .replace(/>/g, "&gt;")
537
+ .replace(/"/g, "&quot;")
538
+ .replace(/'/g, "&#39;");
539
+ }
540
+ }
541
+ __decorate([
542
+ CaptureSpan(),
543
+ __metadata("design:type", Function),
544
+ __metadata("design:paramtypes", [Object]),
545
+ __metadata("design:returntype", Promise)
546
+ ], OnCallNotificationAlertingService.prototype, "notifyOfUndeliverablePage", null);
547
+ export default new OnCallNotificationAlertingService();
548
+ //# sourceMappingURL=OnCallNotificationAlertingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnCallNotificationAlertingService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallNotificationAlertingService.ts"],"names":[],"mappings":"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"}