@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
@@ -1,24 +1,78 @@
1
+ import OnCallReadinessService from "./OnCallReadinessService";
1
2
  import TeamComplianceSettingService from "./TeamComplianceSettingService";
2
3
  import TeamMemberService from "./TeamMemberService";
3
4
  import UserEmailService from "./UserEmailService";
4
5
  import UserSmsService from "./UserSmsService";
5
6
  import UserCallService from "./UserCallService";
6
7
  import UserPushService from "./UserPushService";
7
- import IncidentSeverityService from "./IncidentSeverityService";
8
- import AlertSeverityService from "./AlertSeverityService";
9
- import UserNotificationRuleService from "./UserNotificationRuleService";
10
8
  import UserService from "./UserService";
11
9
  import TeamService from "./TeamService";
12
10
  import ComplianceRuleType from "../../Types/Team/ComplianceRuleType";
11
+ import NotificationRuleType from "../../Types/NotificationRule/NotificationRuleType";
13
12
  import BadDataException from "../../Types/Exception/BadDataException";
14
13
  import Includes from "../../Types/BaseDatabase/Includes";
14
+ import logger from "../Utils/Logger";
15
15
  import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
16
+ /*
17
+ * How many members' channel checks may be in flight at once. Each member costs
18
+ * one small indexed existence check per enabled channel rule (four at most), so
19
+ * twenty members in flight is up to eighty concurrent queries - enough to keep
20
+ * the page quick on a large team, and nowhere near enough to matter to a
21
+ * connection pool shared with the rest of the product. The number is a ceiling
22
+ * on the burst, not a target: a five-member team still issues five.
23
+ */
24
+ const MAX_CONCURRENT_MEMBER_CHECKS = 20;
25
+ /*
26
+ * Teams > View > Compliance. The route (`/team/compliance-status/:teamId`) and
27
+ * every field of the payload above are unchanged, because
28
+ * TeamComplianceStatusTable.tsx renders them verbatim - including the reason
29
+ * strings, which are printed as prose rather than mapped through any lookup.
30
+ *
31
+ * What changed in Phase 2 is where the answers come from. The two "does this
32
+ * user have on-call rules?" questions used to be answered here, by walking every
33
+ * severity in the project and issuing one findBy per severity per user; that
34
+ * walk got four things wrong (it ignored ruleType, so an off-call rule counted
35
+ * as incident coverage; it read only four of the seven channel columns, so a
36
+ * Telegram/WhatsApp/Webhook responder was reported unreachable; it capped alert
37
+ * severities at 100 while capping incident severities at LIMIT_PER_PROJECT; and
38
+ * it was quadratic). All four are now OnCallReadinessService's problem, answered
39
+ * from AT MOST TWO batched, cached computations for the whole team - which also
40
+ * means this page and the on-call readiness surfaces can no longer disagree
41
+ * about whether a given responder is covered.
42
+ *
43
+ * The four "does this user have a verified <channel>?" questions stay here, as
44
+ * direct existence checks. ComplianceRuleType names one specific channel per
45
+ * rule, so there is nothing to batch across severities and nothing for the
46
+ * readiness service to reconcile: both surfaces are asking the same table the
47
+ * same question and necessarily agree already.
48
+ *
49
+ * TENANT SCOPING. Every read below - including the team row itself - carries the
50
+ * projectId the caller was authorised for, and every read is made with
51
+ * `isRoot: true` because this page deliberately reports on people the reader may
52
+ * have no permission to read individually. Root reads mean the projectId in the
53
+ * QUERY is the only tenant boundary there is: the team was previously fetched by
54
+ * id alone, so a team id belonging to another project resolved and its members'
55
+ * reachability was described to a caller from outside that project. The id and
56
+ * the project are now asked for together, in one query, so a foreign team simply
57
+ * does not exist as far as this service is concerned.
58
+ */
16
59
  export default class TeamComplianceService {
17
60
  static async getTeamComplianceStatus(teamId, projectId) {
18
- var _a, _b, _c;
19
- // Get team details
20
- const team = await TeamService.findOneById({
21
- id: teamId,
61
+ /*
62
+ * The team is looked up BY ID AND BY PROJECT, together. Splitting those into
63
+ * "read by id, then compare projectId" would work just as well when written
64
+ * correctly, but the comparison is a line somebody can delete without the
65
+ * query looking wrong; a query that names both columns cannot be half-right.
66
+ *
67
+ * A team from another project therefore comes back null and is answered with
68
+ * the same "Team not found" a nonexistent id gets - deliberately identical,
69
+ * so this endpoint cannot be used to learn which team ids exist elsewhere.
70
+ */
71
+ const team = await TeamService.findOneBy({
72
+ query: {
73
+ _id: teamId.toString(),
74
+ projectId: projectId,
75
+ },
22
76
  select: {
23
77
  name: true,
24
78
  _id: true,
@@ -30,7 +84,14 @@ export default class TeamComplianceService {
30
84
  if (!team) {
31
85
  throw new BadDataException("Team not found");
32
86
  }
33
- // Get compliance settings for this team
87
+ /*
88
+ * LIMIT_PER_PROJECT, not 100, at all three sites below. The old cap was the
89
+ * worst kind of bug for a compliance page: a truncated list does not render
90
+ * as an error or as a warning, it renders as fewer rows - and a member who
91
+ * is simply absent from the table reads exactly like a member with nothing
92
+ * wrong. TeamComplianceSetting is one row per rule type today so its cap was
93
+ * harmless, but it is the same mistake and is fixed with the other two.
94
+ */
34
95
  const complianceSettings = await TeamComplianceSettingService.findBy({
35
96
  query: {
36
97
  teamId: teamId,
@@ -40,7 +101,7 @@ export default class TeamComplianceService {
40
101
  ruleType: true,
41
102
  enabled: true,
42
103
  },
43
- limit: 100,
104
+ limit: LIMIT_PER_PROJECT,
44
105
  skip: 0,
45
106
  props: {
46
107
  isRoot: true,
@@ -56,12 +117,24 @@ export default class TeamComplianceService {
56
117
  userId: true,
57
118
  _id: true,
58
119
  },
59
- limit: 100,
120
+ limit: LIMIT_PER_PROJECT,
60
121
  skip: 0,
61
122
  props: {
62
123
  isRoot: true,
63
124
  },
64
125
  });
126
+ /*
127
+ * LIMIT_PER_PROJECT is a ceiling, not a promise, and a page that hits it
128
+ * renders as fewer rows rather than as a warning - the 10,001st member is
129
+ * not reported non-compliant, they are absent, and an absent row reads as
130
+ * "no problem here". Ten thousand members on one team is not a shape any
131
+ * install has, which is why this is a log rather than a paging loop, but the
132
+ * day it happens the operator gets a sentence saying the page is incomplete
133
+ * instead of a table that quietly is.
134
+ */
135
+ if (teamMembers.length >= LIMIT_PER_PROJECT) {
136
+ logger.error(`TeamComplianceService read ${LIMIT_PER_PROJECT} members of team ${teamId.toString()} in project ${projectId.toString()} and stopped. The compliance page for this team is INCOMPLETE: members past that ceiling are absent from it entirely, and absence reads as compliance.`);
137
+ }
65
138
  const userIds = teamMembers
66
139
  .map((member) => {
67
140
  return member.userId;
@@ -78,43 +151,165 @@ export default class TeamComplianceService {
78
151
  _id: true,
79
152
  profilePictureId: true,
80
153
  },
81
- limit: 100,
154
+ limit: LIMIT_PER_PROJECT,
82
155
  skip: 0,
83
156
  props: {
84
157
  isRoot: true,
85
158
  },
86
159
  });
87
- // Check compliance for each user
88
- const userComplianceStatuses = [];
89
- for (const user of users) {
90
- const complianceStatus = await this.checkUserCompliance(user.id, projectId, complianceSettings.map((setting) => {
91
- return {
92
- ruleType: setting.ruleType,
93
- enabled: setting.enabled || false,
94
- };
95
- }));
96
- userComplianceStatuses.push(Object.assign({ userId: user.id, userName: ((_a = user.name) === null || _a === void 0 ? void 0 : _a.toString()) || ((_b = user.email) === null || _b === void 0 ? void 0 : _b.toString()) || "Unknown User", userEmail: ((_c = user.email) === null || _c === void 0 ? void 0 : _c.toString()) || "", userProfilePictureId: user.profilePictureId }, complianceStatus));
97
- }
160
+ const settings = complianceSettings.map((setting) => {
161
+ return {
162
+ ruleType: setting.ruleType,
163
+ enabled: setting.enabled || false,
164
+ };
165
+ });
166
+ const readinessByUserId = await this.getReadinessByUserId(users.map((user) => {
167
+ return user.id;
168
+ }), projectId, settings);
169
+ /*
170
+ * Users are checked concurrently rather than one at a time - there is no
171
+ * reason for Ada's lookups to wait on Grace's - but concurrently is not the
172
+ * same as all at once. Each user's channel rules cost up to four existence
173
+ * checks, so a bare Promise.all over a 5,000-member team opens twenty
174
+ * thousand simultaneous queries and the page that was meant to be faster
175
+ * takes the pool down with it. The bounded map keeps the parallelism and
176
+ * caps the burst, and it assigns results by index so the table's rows do not
177
+ * shuffle.
178
+ */
179
+ const userComplianceStatuses = await this.mapWithBoundedConcurrency(users, MAX_CONCURRENT_MEMBER_CHECKS, async (user) => {
180
+ var _a, _b, _c;
181
+ const complianceStatus = await this.checkUserCompliance(user.id, projectId, settings, readinessByUserId.get(user.id.toString()));
182
+ return Object.assign({ userId: user.id, userName: ((_a = user.name) === null || _a === void 0 ? void 0 : _a.toString()) || ((_b = user.email) === null || _b === void 0 ? void 0 : _b.toString()) || "Unknown User", userEmail: ((_c = user.email) === null || _c === void 0 ? void 0 : _c.toString()) || "", userProfilePictureId: user.profilePictureId }, complianceStatus);
183
+ });
98
184
  return {
99
185
  teamId: teamId,
100
186
  teamName: team.name || "Unknown Team",
101
- complianceSettings: complianceSettings.map((setting) => {
102
- return {
103
- ruleType: setting.ruleType,
104
- enabled: setting.enabled || false,
105
- };
106
- }),
187
+ complianceSettings: settings,
107
188
  userComplianceStatuses,
108
189
  };
109
190
  }
110
- static async checkUserCompliance(userId, projectId, complianceSettings) {
191
+ /*
192
+ * Readiness for a whole team, in AT MOST TWO readiness computations however
193
+ * many members the team has.
194
+ *
195
+ * The project-scope summary is asked for first and used as the source for
196
+ * everyone it happens to contain. It resolves every responder on every policy
197
+ * in the project in one batched pass, so for a team that exists because its
198
+ * members are on call - which is the only kind of team this page is really
199
+ * about - it answers for all of them at once, and it is very likely already
200
+ * warm in the readiness service's 60s cache because the On-Call banner and the
201
+ * readiness page request that same scope.
202
+ *
203
+ * Members the summary does not cover are those on no policy at all. They are
204
+ * still subject to the team's compliance rules, so they cannot be skipped -
205
+ * and they are now resolved in ONE batched `getReadinessForUsers` call rather
206
+ * than one `getReadinessForUser` per member.
207
+ *
208
+ * That distinction is the whole point of this function. `getReadinessForUser`
209
+ * resolves the project's ENTIRE responder set on every call, purely to work
210
+ * out which policies reach the one user it was asked about, so a 40-member
211
+ * team with 38 members on no policy used to cost 38 full project resolutions -
212
+ * hundreds of queries - to render one page. The batched entry point pays for
213
+ * that resolution once and answers for every member from it.
214
+ *
215
+ * A member the batch cannot resolve - somebody removed from the project
216
+ * between the member read above and this call - is simply absent from the map.
217
+ * They are NOT an error: one person leaving a team must not blank the page for
218
+ * the other thirty-nine. checkHasOnCallRules reports their on-call rules as
219
+ * unverified rather than as fine, because "we could not check" and "there is
220
+ * nothing wrong" are different answers and only one of them is true.
221
+ *
222
+ * Nothing is computed when neither on-call-rule setting is enabled: the
223
+ * channel rules do not consult readiness, so a team that only checks "has a
224
+ * verified email" must not pay for a project-wide readiness pass.
225
+ */
226
+ static async getReadinessByUserId(userIds, projectId, settings) {
227
+ const readinessByUserId = new Map();
228
+ if (userIds.length === 0) {
229
+ return readinessByUserId;
230
+ }
231
+ const needsReadiness = settings.some((setting) => {
232
+ return (setting.enabled &&
233
+ (setting.ruleType === ComplianceRuleType.HasIncidentOnCallRules ||
234
+ setting.ruleType === ComplianceRuleType.HasAlertOnCallRules));
235
+ });
236
+ if (!needsReadiness) {
237
+ return readinessByUserId;
238
+ }
239
+ const wanted = new Set(userIds.map((userId) => {
240
+ return userId.toString();
241
+ }));
242
+ const summary = await OnCallReadinessService.getReadinessForProject(projectId);
243
+ for (const readiness of summary.users) {
244
+ const key = readiness.userId.toString();
245
+ if (wanted.has(key)) {
246
+ readinessByUserId.set(key, readiness);
247
+ }
248
+ }
249
+ const missing = userIds.filter((userId) => {
250
+ return !readinessByUserId.has(userId.toString());
251
+ });
252
+ if (missing.length === 0) {
253
+ return readinessByUserId;
254
+ }
255
+ /*
256
+ * One call, whatever `missing.length` is. The batch answers only for the
257
+ * users it can resolve, so its result is keyed back onto the ids it carries
258
+ * rather than zipped against `missing` by position - a batch that dropped a
259
+ * user would otherwise shift everybody after them onto the wrong readiness,
260
+ * which is the single worst thing this page could do.
261
+ */
262
+ const filled = await OnCallReadinessService.getReadinessForUsers(missing, projectId);
263
+ for (const readiness of filled) {
264
+ readinessByUserId.set(readiness.userId.toString(), readiness);
265
+ }
266
+ return readinessByUserId;
267
+ }
268
+ /*
269
+ * Promise.all with a ceiling.
270
+ *
271
+ * Results are written into a pre-sized array by index rather than pushed, so
272
+ * the output order matches the input order no matter what order the workers
273
+ * happen to finish in. The table's rows are rendered in this order and a page
274
+ * whose rows reshuffle between renders is unreadable.
275
+ *
276
+ * Rejections are deliberately NOT swallowed here. A member whose data is
277
+ * merely absent is handled where that absence has meaning (see
278
+ * checkHasOnCallRules); a query that actually FAILS is an infrastructure
279
+ * fault, and turning it into "every member is non-compliant" would dress a
280
+ * database outage up as forty people misconfiguring their phones.
281
+ */
282
+ static async mapWithBoundedConcurrency(items, maxConcurrency, mapper) {
283
+ const results = new Array(items.length);
284
+ let cursor = 0;
285
+ const runWorker = async () => {
286
+ while (cursor < items.length) {
287
+ const index = cursor;
288
+ cursor++;
289
+ results[index] = await mapper(items[index]);
290
+ }
291
+ };
292
+ const workers = [];
293
+ for (let worker = 0; worker < Math.min(maxConcurrency, items.length); worker++) {
294
+ workers.push(runWorker());
295
+ }
296
+ await Promise.all(workers);
297
+ return results;
298
+ }
299
+ /*
300
+ * `readiness` is required and may be undefined, matching checkRuleCompliance:
301
+ * undefined is the answer "the batch could not resolve this member", and an
302
+ * OPTIONAL parameter would let a future caller forget to thread it through and
303
+ * silently turn every member into that case.
304
+ */
305
+ static async checkUserCompliance(userId, projectId, complianceSettings, readiness) {
111
306
  const nonCompliantRules = [];
112
307
  // Check each enabled compliance rule
113
308
  for (const setting of complianceSettings) {
114
309
  if (!setting.enabled) {
115
310
  continue;
116
311
  }
117
- const isCompliant = await this.checkRuleCompliance(userId, projectId, setting.ruleType);
312
+ const isCompliant = await this.checkRuleCompliance(userId, projectId, setting.ruleType, readiness);
118
313
  if (!isCompliant.compliant) {
119
314
  nonCompliantRules.push({
120
315
  ruleType: setting.ruleType,
@@ -127,7 +322,19 @@ export default class TeamComplianceService {
127
322
  nonCompliantRules,
128
323
  };
129
324
  }
130
- static async checkRuleCompliance(userId, projectId, ruleType) {
325
+ /*
326
+ * `readiness` is the caller's already-resolved UserReadiness for this user.
327
+ *
328
+ * It is a required parameter that may be undefined, rather than an optional
329
+ * one, and the difference matters: undefined means "the batch could not
330
+ * resolve this person", which is an answer, whereas an omitted argument would
331
+ * mean "the caller forgot" and used to be repaired by fetching readiness right
332
+ * here. That repair was a per-user, per-RULE fan-out hiding inside a function
333
+ * that looks like a pure predicate - the on-call rules are two of the six, so
334
+ * a team with both enabled paid for it twice per member - and it is gone. The
335
+ * only source of readiness is now the batch in getReadinessByUserId.
336
+ */
337
+ static async checkRuleCompliance(userId, projectId, ruleType, readiness) {
131
338
  switch (ruleType) {
132
339
  case ComplianceRuleType.HasNotificationEmailMethod:
133
340
  return await this.checkHasNotificationEmail(userId, projectId);
@@ -137,10 +344,23 @@ export default class TeamComplianceService {
137
344
  return await this.checkHasNotificationCall(userId, projectId);
138
345
  case ComplianceRuleType.HasNotificationPushMethod:
139
346
  return await this.checkHasNotificationPush(userId, projectId);
347
+ /*
348
+ * Not awaited: checkHasOnCallRules reads an array it was handed and makes
349
+ * no query at all, so there is nothing to wait for. An async wrapper would
350
+ * only make it look as though there were.
351
+ */
140
352
  case ComplianceRuleType.HasIncidentOnCallRules:
141
- return await this.checkHasIncidentOnCallRules(userId, projectId);
353
+ return this.checkHasOnCallRules({
354
+ notificationRuleType: NotificationRuleType.ON_CALL_EXECUTED_INCIDENT,
355
+ severityKind: "incident",
356
+ readiness: readiness,
357
+ });
142
358
  case ComplianceRuleType.HasAlertOnCallRules:
143
- return await this.checkHasAlertOnCallRules(userId, projectId);
359
+ return this.checkHasOnCallRules({
360
+ notificationRuleType: NotificationRuleType.ON_CALL_EXECUTED_ALERT,
361
+ severityKind: "alert",
362
+ readiness: readiness,
363
+ });
144
364
  default:
145
365
  return { compliant: true, reason: "" };
146
366
  }
@@ -239,141 +459,73 @@ export default class TeamComplianceService {
239
459
  reason: hasPush ? "" : "No verified push notification device configured",
240
460
  };
241
461
  }
242
- static async checkHasIncidentOnCallRules(userId, projectId) {
243
- // Get all incident severities for the project
244
- const incidentSeverities = await IncidentSeverityService.findBy({
245
- query: {
246
- projectId: projectId,
247
- },
248
- select: {
249
- _id: true,
250
- name: true,
251
- },
252
- props: {
253
- isRoot: true,
254
- },
255
- limit: LIMIT_PER_PROJECT,
256
- skip: 0,
257
- });
258
- if (incidentSeverities.length === 0) {
259
- return { compliant: true, reason: "" }; // No incident severities configured
260
- }
261
- // Check if user has notification rules for all incident severities
262
- const severityIds = incidentSeverities.map((severity) => {
263
- return severity._id;
264
- });
265
- const missingSeverities = [];
266
- for (const severityId of severityIds) {
267
- const notificationRules = await UserNotificationRuleService.findBy({
268
- query: {
269
- userId: userId,
270
- projectId: projectId,
271
- incidentSeverityId: severityId,
272
- },
273
- select: {
274
- _id: true,
275
- userCallId: true,
276
- userSmsId: true,
277
- userEmailId: true,
278
- userPushId: true,
279
- },
280
- props: {
281
- isRoot: true,
282
- },
283
- limit: 1,
284
- skip: 0,
285
- });
286
- // Check if user has at least one notification method configured for this severity
287
- const hasNotificationMethod = notificationRules.some((rule) => {
288
- return (rule.userCallId ||
289
- rule.userSmsId ||
290
- rule.userEmailId ||
291
- rule.userPushId);
292
- });
293
- if (!hasNotificationMethod) {
294
- const severity = incidentSeverities.find((s) => {
295
- var _a;
296
- return ((_a = s._id) === null || _a === void 0 ? void 0 : _a.toString()) === severityId.toString();
297
- });
298
- const severityName = (severity === null || severity === void 0 ? void 0 : severity.name) || severityId.toString();
299
- missingSeverities.push(severityName);
300
- }
301
- }
302
- if (missingSeverities.length > 0) {
462
+ /*
463
+ * Both on-call-rule compliance rules, answered off one readiness coverage
464
+ * array. A coverage cell is one (ruleType, severity) pair with the readiness
465
+ * service's verdict on it, which is what closes all four defects at once:
466
+ *
467
+ * - the cell is keyed BY ruleType, so a rule that only fires when the user
468
+ * goes off call can no longer be counted as incident coverage;
469
+ * - `hasRule` is true for a rule on any of the seven channels, so a responder
470
+ * whose only method is Telegram, WhatsApp or a webhook is no longer
471
+ * reported as having nothing;
472
+ * - the severities behind the cells are read with LIMIT_PER_PROJECT for both
473
+ * kinds, so the incident and alert halves can no longer disagree about how
474
+ * many severities a project may have;
475
+ * - and the whole array arrives from one batched read, rather than one findBy
476
+ * per severity per user.
477
+ *
478
+ * `isOptOut` is honoured as coverage, not as a gap. An opt-out row is the user
479
+ * saying "never notify me for this" on purpose; reporting that as a compliance
480
+ * failure would send an owner to fix something that is already the way it was
481
+ * asked to be. It matches the readiness contract, where Ready means every cell
482
+ * is covered OR explicitly muted.
483
+ *
484
+ * Readiness also reports cells for the two EPISODE rule types, and the
485
+ * ruleType filter drops them here. That is not an oversight: ComplianceRuleType
486
+ * has no episode rule, so the team's compliance settings never ask about
487
+ * episode coverage, and silently folding it into the incident or alert verdict
488
+ * would fail a team against a rule its owner never turned on. Episode coverage
489
+ * is visible on the readiness surfaces, where it is not gated by an opt-in
490
+ * per-team setting at all.
491
+ *
492
+ * The reason string names the missing severities in the order the readiness
493
+ * service reports them and falls back to the severity id when a severity has
494
+ * no name, because the owner reading it has to be able to act on it without
495
+ * opening anyone's settings.
496
+ *
497
+ * NO READINESS AT ALL is its own answer, and it is deliberately not a pass.
498
+ * The batch omits a user when it cannot resolve them - the ordinary cause
499
+ * being that they were removed from the project between the member read and
500
+ * the readiness read - and there are only two honest things to do with that:
501
+ * fail the whole page for everybody, or report the one row as unchecked. This
502
+ * feature exists because a responder can be silently unreachable, so reporting
503
+ * an unchecked responder as compliant would be the exact failure it was built
504
+ * to prevent, and failing the page over one departed member would take the
505
+ * other thirty-nine rows with it.
506
+ */
507
+ static checkHasOnCallRules(data) {
508
+ const userReadiness = data.readiness;
509
+ if (!userReadiness) {
303
510
  return {
304
511
  compliant: false,
305
- reason: `Missing notification rules for incident severities: ${missingSeverities.join(", ")}`,
512
+ reason: `Could not check ${data.severityKind} notification rules for this user - they may no longer be a member of this project`,
306
513
  };
307
514
  }
308
- return {
309
- compliant: true,
310
- reason: "",
311
- };
312
- }
313
- static async checkHasAlertOnCallRules(userId, projectId) {
314
- // Get all alert severities for the project
315
- const alertSeverities = await AlertSeverityService.findBy({
316
- query: {
317
- projectId: projectId,
318
- },
319
- select: {
320
- _id: true,
321
- name: true,
322
- },
323
- props: {
324
- isRoot: true,
325
- },
326
- limit: 100, // Assuming reasonable limit for severities
327
- skip: 0,
328
- });
329
- if (alertSeverities.length === 0) {
330
- return { compliant: true, reason: "" }; // No alert severities configured
331
- }
332
- // Check if user has notification rules for all alert severities
333
- const severityIds = alertSeverities.map((severity) => {
334
- return severity._id;
515
+ const missingSeverities = userReadiness.coverage
516
+ .filter((cell) => {
517
+ return (cell.ruleType === data.notificationRuleType &&
518
+ !cell.hasRule &&
519
+ !cell.isOptOut);
520
+ })
521
+ .map((cell) => {
522
+ var _a;
523
+ return cell.severityName || ((_a = cell.severityId) === null || _a === void 0 ? void 0 : _a.toString()) || "";
335
524
  });
336
- const missingSeverities = [];
337
- for (const severityId of severityIds) {
338
- const notificationRules = await UserNotificationRuleService.findBy({
339
- query: {
340
- userId: userId,
341
- projectId: projectId,
342
- alertSeverityId: severityId,
343
- },
344
- select: {
345
- _id: true,
346
- userCallId: true,
347
- userSmsId: true,
348
- userEmailId: true,
349
- userPushId: true,
350
- },
351
- props: {
352
- isRoot: true,
353
- },
354
- limit: 1,
355
- skip: 0,
356
- });
357
- // Check if user has at least one notification method configured for this severity
358
- const hasNotificationMethod = notificationRules.some((rule) => {
359
- return (rule.userCallId ||
360
- rule.userSmsId ||
361
- rule.userEmailId ||
362
- rule.userPushId);
363
- });
364
- if (!hasNotificationMethod) {
365
- const severity = alertSeverities.find((s) => {
366
- var _a;
367
- return ((_a = s._id) === null || _a === void 0 ? void 0 : _a.toString()) === severityId.toString();
368
- });
369
- const severityName = (severity === null || severity === void 0 ? void 0 : severity.name) || severityId.toString();
370
- missingSeverities.push(severityName);
371
- }
372
- }
373
525
  if (missingSeverities.length > 0) {
374
526
  return {
375
527
  compliant: false,
376
- reason: `Missing notification rules for alert severities: ${missingSeverities.join(", ")}`,
528
+ reason: `Missing notification rules for ${data.severityKind} severities: ${missingSeverities.join(", ")}`,
377
529
  };
378
530
  }
379
531
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"TeamComplianceService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamComplianceService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TeamComplianceService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamComplianceService.ts"],"names":[],"mappings":"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"}