@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,82 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ /*
4
+ * The generator was run against a database that did not yet have
5
+ * 1786625176831-AddMonitoringMethodToNetworkDevice applied, so it also
6
+ * emitted that migration's NetworkDevice.monitoringMethod / monitorId
7
+ * statements. Those are removed here: running them twice fails with
8
+ * "column already exists", and each migration owns one change.
9
+ */
10
+ export class AddNetworkDeviceLink1786634985763 implements MigrationInterface {
11
+ public name: string = "AddNetworkDeviceLink1786634985763";
12
+
13
+ public async up(queryRunner: QueryRunner): Promise<void> {
14
+ await queryRunner.query(
15
+ `CREATE TABLE "NetworkDeviceLink" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100), "fromDeviceId" uuid NOT NULL, "toDeviceId" uuid NOT NULL, "fromPortName" character varying(100), "toPortName" character varying(100), "monitorId" uuid, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_44f9eb8a79f74fbad22970dcd69" PRIMARY KEY ("_id"))`,
16
+ );
17
+ await queryRunner.query(
18
+ `CREATE INDEX "IDX_c13d3b043b6ff5b1f6b3875e7c" ON "NetworkDeviceLink" ("projectId") `,
19
+ );
20
+ await queryRunner.query(
21
+ `CREATE INDEX "IDX_3aa05e29761d9144b2fab79ddd" ON "NetworkDeviceLink" ("fromDeviceId") `,
22
+ );
23
+ await queryRunner.query(
24
+ `CREATE INDEX "IDX_860dd94c53f67b093d90f8acd9" ON "NetworkDeviceLink" ("toDeviceId") `,
25
+ );
26
+ await queryRunner.query(
27
+ `CREATE INDEX "IDX_3382158f7a89861165c7bf040d" ON "NetworkDeviceLink" ("projectId", "fromDeviceId") `,
28
+ );
29
+ await queryRunner.query(
30
+ `ALTER TABLE "NetworkDeviceLink" ADD CONSTRAINT "FK_c13d3b043b6ff5b1f6b3875e7c2" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
31
+ );
32
+ await queryRunner.query(
33
+ `ALTER TABLE "NetworkDeviceLink" ADD CONSTRAINT "FK_3aa05e29761d9144b2fab79ddda" FOREIGN KEY ("fromDeviceId") REFERENCES "NetworkDevice"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
34
+ );
35
+ await queryRunner.query(
36
+ `ALTER TABLE "NetworkDeviceLink" ADD CONSTRAINT "FK_860dd94c53f67b093d90f8acd91" FOREIGN KEY ("toDeviceId") REFERENCES "NetworkDevice"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
37
+ );
38
+ await queryRunner.query(
39
+ `ALTER TABLE "NetworkDeviceLink" ADD CONSTRAINT "FK_56a26ec58d99b2c70061ea1d737" FOREIGN KEY ("monitorId") REFERENCES "Monitor"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
40
+ );
41
+ await queryRunner.query(
42
+ `ALTER TABLE "NetworkDeviceLink" ADD CONSTRAINT "FK_1c0841ce17c095d7dc06f1bdb73" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
43
+ );
44
+ await queryRunner.query(
45
+ `ALTER TABLE "NetworkDeviceLink" ADD CONSTRAINT "FK_60fb427dfafc613acacdbf58125" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
46
+ );
47
+ }
48
+
49
+ public async down(queryRunner: QueryRunner): Promise<void> {
50
+ await queryRunner.query(
51
+ `ALTER TABLE "NetworkDeviceLink" DROP CONSTRAINT "FK_60fb427dfafc613acacdbf58125"`,
52
+ );
53
+ await queryRunner.query(
54
+ `ALTER TABLE "NetworkDeviceLink" DROP CONSTRAINT "FK_1c0841ce17c095d7dc06f1bdb73"`,
55
+ );
56
+ await queryRunner.query(
57
+ `ALTER TABLE "NetworkDeviceLink" DROP CONSTRAINT "FK_56a26ec58d99b2c70061ea1d737"`,
58
+ );
59
+ await queryRunner.query(
60
+ `ALTER TABLE "NetworkDeviceLink" DROP CONSTRAINT "FK_860dd94c53f67b093d90f8acd91"`,
61
+ );
62
+ await queryRunner.query(
63
+ `ALTER TABLE "NetworkDeviceLink" DROP CONSTRAINT "FK_3aa05e29761d9144b2fab79ddda"`,
64
+ );
65
+ await queryRunner.query(
66
+ `ALTER TABLE "NetworkDeviceLink" DROP CONSTRAINT "FK_c13d3b043b6ff5b1f6b3875e7c2"`,
67
+ );
68
+ await queryRunner.query(
69
+ `DROP INDEX "public"."IDX_3382158f7a89861165c7bf040d"`,
70
+ );
71
+ await queryRunner.query(
72
+ `DROP INDEX "public"."IDX_860dd94c53f67b093d90f8acd9"`,
73
+ );
74
+ await queryRunner.query(
75
+ `DROP INDEX "public"."IDX_3aa05e29761d9144b2fab79ddd"`,
76
+ );
77
+ await queryRunner.query(
78
+ `DROP INDEX "public"."IDX_c13d3b043b6ff5b1f6b3875e7c"`,
79
+ );
80
+ await queryRunner.query(`DROP TABLE "NetworkDeviceLink"`);
81
+ }
82
+ }
@@ -0,0 +1,91 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ export class AddNetworkDeviceLinkRule1786639512056
4
+ implements MigrationInterface
5
+ {
6
+ public name: string = "AddNetworkDeviceLinkRule1786639512056";
7
+
8
+ public async up(queryRunner: QueryRunner): Promise<void> {
9
+ await queryRunner.query(
10
+ `CREATE TABLE "NetworkDeviceLinkRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying, "isEnabled" boolean NOT NULL DEFAULT true, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_2ddb1aa4f3ebf1181c867001d93" PRIMARY KEY ("_id"))`,
11
+ );
12
+ await queryRunner.query(
13
+ `CREATE TABLE "NetworkDeviceLinkRuleChildLabel" ("networkDeviceLinkRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_0fe51b1818df74cdbb691b2d014" PRIMARY KEY ("networkDeviceLinkRuleId", "labelId"))`,
14
+ );
15
+ await queryRunner.query(
16
+ `CREATE INDEX "IDX_2cd62497b9d2eacd85a15ce959" ON "NetworkDeviceLinkRuleChildLabel" ("networkDeviceLinkRuleId") `,
17
+ );
18
+ await queryRunner.query(
19
+ `CREATE INDEX "IDX_3e708d3fe03877842995b20298" ON "NetworkDeviceLinkRuleChildLabel" ("labelId") `,
20
+ );
21
+ await queryRunner.query(
22
+ `CREATE TABLE "NetworkDeviceLinkRuleParentLabel" ("networkDeviceLinkRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_9cd76252ff3e8b372eaa8ad8dc3" PRIMARY KEY ("networkDeviceLinkRuleId", "labelId"))`,
23
+ );
24
+ await queryRunner.query(
25
+ `CREATE INDEX "IDX_34a873cf2a83fb4b9b1d953246" ON "NetworkDeviceLinkRuleParentLabel" ("networkDeviceLinkRuleId") `,
26
+ );
27
+ await queryRunner.query(
28
+ `CREATE INDEX "IDX_93befe63403330b0bca7d57019" ON "NetworkDeviceLinkRuleParentLabel" ("labelId") `,
29
+ );
30
+ await queryRunner.query(
31
+ `ALTER TABLE "NetworkDeviceLinkRule" ADD CONSTRAINT "FK_ed9e718e957729564f332fed37c" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
32
+ );
33
+ await queryRunner.query(
34
+ `ALTER TABLE "NetworkDeviceLinkRule" ADD CONSTRAINT "FK_3e743cfde6ab41d3231d87e2313" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
35
+ );
36
+ await queryRunner.query(
37
+ `ALTER TABLE "NetworkDeviceLinkRule" ADD CONSTRAINT "FK_e1309ec901d89b516e8d4289dab" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
38
+ );
39
+ await queryRunner.query(
40
+ `ALTER TABLE "NetworkDeviceLinkRuleChildLabel" ADD CONSTRAINT "FK_2cd62497b9d2eacd85a15ce959e" FOREIGN KEY ("networkDeviceLinkRuleId") REFERENCES "NetworkDeviceLinkRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
41
+ );
42
+ await queryRunner.query(
43
+ `ALTER TABLE "NetworkDeviceLinkRuleChildLabel" ADD CONSTRAINT "FK_3e708d3fe03877842995b202984" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
44
+ );
45
+ await queryRunner.query(
46
+ `ALTER TABLE "NetworkDeviceLinkRuleParentLabel" ADD CONSTRAINT "FK_34a873cf2a83fb4b9b1d953246a" FOREIGN KEY ("networkDeviceLinkRuleId") REFERENCES "NetworkDeviceLinkRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
47
+ );
48
+ await queryRunner.query(
49
+ `ALTER TABLE "NetworkDeviceLinkRuleParentLabel" ADD CONSTRAINT "FK_93befe63403330b0bca7d570195" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
50
+ );
51
+ }
52
+
53
+ public async down(queryRunner: QueryRunner): Promise<void> {
54
+ await queryRunner.query(
55
+ `ALTER TABLE "NetworkDeviceLinkRuleParentLabel" DROP CONSTRAINT "FK_93befe63403330b0bca7d570195"`,
56
+ );
57
+ await queryRunner.query(
58
+ `ALTER TABLE "NetworkDeviceLinkRuleParentLabel" DROP CONSTRAINT "FK_34a873cf2a83fb4b9b1d953246a"`,
59
+ );
60
+ await queryRunner.query(
61
+ `ALTER TABLE "NetworkDeviceLinkRuleChildLabel" DROP CONSTRAINT "FK_3e708d3fe03877842995b202984"`,
62
+ );
63
+ await queryRunner.query(
64
+ `ALTER TABLE "NetworkDeviceLinkRuleChildLabel" DROP CONSTRAINT "FK_2cd62497b9d2eacd85a15ce959e"`,
65
+ );
66
+ await queryRunner.query(
67
+ `ALTER TABLE "NetworkDeviceLinkRule" DROP CONSTRAINT "FK_e1309ec901d89b516e8d4289dab"`,
68
+ );
69
+ await queryRunner.query(
70
+ `ALTER TABLE "NetworkDeviceLinkRule" DROP CONSTRAINT "FK_3e743cfde6ab41d3231d87e2313"`,
71
+ );
72
+ await queryRunner.query(
73
+ `ALTER TABLE "NetworkDeviceLinkRule" DROP CONSTRAINT "FK_ed9e718e957729564f332fed37c"`,
74
+ );
75
+ await queryRunner.query(
76
+ `DROP INDEX "public"."IDX_93befe63403330b0bca7d57019"`,
77
+ );
78
+ await queryRunner.query(
79
+ `DROP INDEX "public"."IDX_34a873cf2a83fb4b9b1d953246"`,
80
+ );
81
+ await queryRunner.query(`DROP TABLE "NetworkDeviceLinkRuleParentLabel"`);
82
+ await queryRunner.query(
83
+ `DROP INDEX "public"."IDX_3e708d3fe03877842995b20298"`,
84
+ );
85
+ await queryRunner.query(
86
+ `DROP INDEX "public"."IDX_2cd62497b9d2eacd85a15ce959"`,
87
+ );
88
+ await queryRunner.query(`DROP TABLE "NetworkDeviceLinkRuleChildLabel"`);
89
+ await queryRunner.query(`DROP TABLE "NetworkDeviceLinkRule"`);
90
+ }
91
+ }
@@ -0,0 +1,47 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ export class AddNetworkTopologySuppression1786639972982
4
+ implements MigrationInterface
5
+ {
6
+ public name: string = "AddNetworkTopologySuppression1786639972982";
7
+
8
+ public async up(queryRunner: QueryRunner): Promise<void> {
9
+ await queryRunner.query(
10
+ `CREATE TABLE "NetworkTopologySuppression" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "nodeKey" character varying(100) NOT NULL, "nodeName" character varying(100), "reason" character varying, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_23e2ab457691c1cd0540892f07c" PRIMARY KEY ("_id"))`,
11
+ );
12
+ await queryRunner.query(
13
+ `CREATE INDEX "IDX_55b908ff54796e52649bc674db" ON "NetworkTopologySuppression" ("projectId") `,
14
+ );
15
+ await queryRunner.query(
16
+ `CREATE INDEX "IDX_342a8f179fe044baa04c92c0f0" ON "NetworkTopologySuppression" ("projectId", "nodeKey") `,
17
+ );
18
+ await queryRunner.query(
19
+ `ALTER TABLE "NetworkTopologySuppression" ADD CONSTRAINT "FK_55b908ff54796e52649bc674dba" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
20
+ );
21
+ await queryRunner.query(
22
+ `ALTER TABLE "NetworkTopologySuppression" ADD CONSTRAINT "FK_614e5f6ec61c79bf9beec90aeb5" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
23
+ );
24
+ await queryRunner.query(
25
+ `ALTER TABLE "NetworkTopologySuppression" ADD CONSTRAINT "FK_12c1cb1eb837b79e2f9f6c067ed" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
26
+ );
27
+ }
28
+
29
+ public async down(queryRunner: QueryRunner): Promise<void> {
30
+ await queryRunner.query(
31
+ `ALTER TABLE "NetworkTopologySuppression" DROP CONSTRAINT "FK_12c1cb1eb837b79e2f9f6c067ed"`,
32
+ );
33
+ await queryRunner.query(
34
+ `ALTER TABLE "NetworkTopologySuppression" DROP CONSTRAINT "FK_614e5f6ec61c79bf9beec90aeb5"`,
35
+ );
36
+ await queryRunner.query(
37
+ `ALTER TABLE "NetworkTopologySuppression" DROP CONSTRAINT "FK_55b908ff54796e52649bc674dba"`,
38
+ );
39
+ await queryRunner.query(
40
+ `DROP INDEX "public"."IDX_342a8f179fe044baa04c92c0f0"`,
41
+ );
42
+ await queryRunner.query(
43
+ `DROP INDEX "public"."IDX_55b908ff54796e52649bc674db"`,
44
+ );
45
+ await queryRunner.query(`DROP TABLE "NetworkTopologySuppression"`);
46
+ }
47
+ }
@@ -0,0 +1,255 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ /*
4
+ * The entity registry is now the Inventory product, so its two tables take
5
+ * the product's name: TelemetryEntity -> InventoryItem, and
6
+ * TelemetryEntityRelationship -> InventoryItemRelationship.
7
+ *
8
+ * Written by hand rather than generated, because a generator cannot express a
9
+ * rename: TypeORM sees an unknown table plus a missing one and emits
10
+ * DROP + CREATE, which would discard every row. `ALTER TABLE ... RENAME`
11
+ * preserves the data, and preserves each row's `_id` — which matters here
12
+ * beyond the usual reasons, because the relationship rows reference items by
13
+ * `entityKey` rather than by id, and `entityKey` is a hash of the entity's
14
+ * identifying attributes. Nothing about the identity of an item changes.
15
+ *
16
+ * The bulk of this file exists because Postgres does NOT rename a table's
17
+ * indexes and constraints along with the table — they keep names derived from
18
+ * the old one. TypeORM's default naming strategy derives those names from the
19
+ * table name:
20
+ *
21
+ * indexName = "IDX_" + sha1(`${table}_${sortedColumns.join("_")}`)[0..26]
22
+ * foreignKeyName = "FK_" + sha1(`${table}_${sortedColumns.join("_")}`)[0..27]
23
+ *
24
+ * so after the rename TypeORM expects entirely different names, and the
25
+ * Postgres Schema Drift job (which migrates an empty database and then tries
26
+ * to generate a migration against the result) would find every index and
27
+ * foreign key misnamed and fail. Each new name below is that formula applied
28
+ * to the new table name; each old name is the one actually in the database
29
+ * today, taken from the migration history.
30
+ *
31
+ * Primary keys are renamed too, for tidiness rather than necessity — they are
32
+ * hand-named (PK_TelemetryEntity) rather than hashed, and the drift check does
33
+ * not compare them.
34
+ */
35
+
36
+ interface RenamePair {
37
+ from: string;
38
+ to: string;
39
+ }
40
+
41
+ const INVENTORY_ITEM_INDEXES: Array<RenamePair> = [
42
+ // (projectId)
43
+ {
44
+ from: "IDX_4e1ef427f431558a59263d6463",
45
+ to: "IDX_0bb390eced5f2ad83ebe9e3f89",
46
+ },
47
+ // (lastSeenAt)
48
+ {
49
+ from: "IDX_6f5b6d2bb634b2396f2dee6ab1",
50
+ to: "IDX_f624a34cbb01fafd0bada7ae34",
51
+ },
52
+ // (source)
53
+ {
54
+ from: "IDX_8106b1d6443d982b12e3318318",
55
+ to: "IDX_02f47bb3925e22998491eaf45f",
56
+ },
57
+ // (projectId, entityType)
58
+ {
59
+ from: "IDX_e2ad53c6527cd8d74a63d2fda7",
60
+ to: "IDX_658398f4f8df74f7e7e52da917",
61
+ },
62
+ // (projectId, resourceType, resourceId)
63
+ {
64
+ from: "IDX_64e28273ad4bc2543316ef82d2",
65
+ to: "IDX_0fae1af0a94799f56e054c7287",
66
+ },
67
+ // UNIQUE (projectId, entityType, entityKey) - the ingest upsert conflict target
68
+ {
69
+ from: "IDX_cd0b36552d8224cbb200eedc4e",
70
+ to: "IDX_924abab6b3627f33e8128eb68a",
71
+ },
72
+ ];
73
+
74
+ const INVENTORY_ITEM_FOREIGN_KEYS: Array<RenamePair> = [
75
+ // (projectId)
76
+ {
77
+ from: "FK_4e1ef427f431558a59263d6463d",
78
+ to: "FK_0bb390eced5f2ad83ebe9e3f895",
79
+ },
80
+ // (createdByUserId)
81
+ {
82
+ from: "FK_5c79b80b19265b19b2f40b3f6bb",
83
+ to: "FK_56782122cd3d6c3571b6aecb630",
84
+ },
85
+ // (deletedByUserId)
86
+ {
87
+ from: "FK_28d95749a9f6f712448c371eb7d",
88
+ to: "FK_c27f19553f14afe37b7658e26f3",
89
+ },
90
+ ];
91
+
92
+ const RELATIONSHIP_INDEXES: Array<RenamePair> = [
93
+ // (projectId)
94
+ {
95
+ from: "IDX_69e77606b8cd6b0a340b561ee8",
96
+ to: "IDX_31c667da9702b73b9b14dde9f8",
97
+ },
98
+ // (lastSeenAt)
99
+ {
100
+ from: "IDX_ff3c08f70cd90cd30909ab4508",
101
+ to: "IDX_5ff147fc0c3c2d8c1c3cd4a945",
102
+ },
103
+ // (source)
104
+ {
105
+ from: "IDX_26ea726e2ee8fa622348581ac1",
106
+ to: "IDX_4ba505deea1919c5af962e9e99",
107
+ },
108
+ // (projectId, fromEntityKey)
109
+ {
110
+ from: "IDX_cf1de4c74c6034f957103e6434",
111
+ to: "IDX_be7667908537bf39191c74efa6",
112
+ },
113
+ // (projectId, toEntityKey)
114
+ {
115
+ from: "IDX_0207b1a581cc3b588835a526f5",
116
+ to: "IDX_a4063035857f6ae859f576a9a6",
117
+ },
118
+ // UNIQUE (projectId, fromEntityKey, toEntityKey, relationshipType)
119
+ {
120
+ from: "IDX_1b26aa0f1dc0856218b446b82e",
121
+ to: "IDX_bd1369d920d9653e1fddfd8de6",
122
+ },
123
+ ];
124
+
125
+ const RELATIONSHIP_FOREIGN_KEYS: Array<RenamePair> = [
126
+ // (projectId)
127
+ {
128
+ from: "FK_69e77606b8cd6b0a340b561ee88",
129
+ to: "FK_31c667da9702b73b9b14dde9f82",
130
+ },
131
+ // (createdByUserId)
132
+ {
133
+ from: "FK_e3bcf3792c0290f28e0c151ff61",
134
+ to: "FK_66d2a100b0bb0d0fe4c76b415f1",
135
+ },
136
+ // (deletedByUserId)
137
+ {
138
+ from: "FK_358f60285a6b280da4b7ce1703d",
139
+ to: "FK_ecb3b77afca41cef653ab8e0e33",
140
+ },
141
+ ];
142
+
143
+ const PRIMARY_KEYS: Array<RenamePair> = [
144
+ { from: "PK_TelemetryEntity", to: "PK_InventoryItem" },
145
+ {
146
+ from: "PK_TelemetryEntityRelationship",
147
+ to: "PK_InventoryItemRelationship",
148
+ },
149
+ ];
150
+
151
+ export class RenameTelemetryEntityToInventoryItem1786800000000
152
+ implements MigrationInterface
153
+ {
154
+ public name = "RenameTelemetryEntityToInventoryItem1786800000000";
155
+
156
+ private async renameIndexes(
157
+ queryRunner: QueryRunner,
158
+ pairs: Array<RenamePair>,
159
+ reverse: boolean,
160
+ ): Promise<void> {
161
+ for (const pair of pairs) {
162
+ const from: string = reverse ? pair.to : pair.from;
163
+ const to: string = reverse ? pair.from : pair.to;
164
+
165
+ await queryRunner.query(
166
+ `ALTER INDEX "public"."${from}" RENAME TO "${to}"`,
167
+ );
168
+ }
169
+ }
170
+
171
+ private async renameConstraints(
172
+ queryRunner: QueryRunner,
173
+ tableName: string,
174
+ pairs: Array<RenamePair>,
175
+ reverse: boolean,
176
+ ): Promise<void> {
177
+ for (const pair of pairs) {
178
+ const from: string = reverse ? pair.to : pair.from;
179
+ const to: string = reverse ? pair.from : pair.to;
180
+
181
+ await queryRunner.query(
182
+ `ALTER TABLE "${tableName}" RENAME CONSTRAINT "${from}" TO "${to}"`,
183
+ );
184
+ }
185
+ }
186
+
187
+ public async up(queryRunner: QueryRunner): Promise<void> {
188
+ /*
189
+ * Tables first: every statement after this one addresses them by their
190
+ * new name, and an index rename is table-independent anyway (index names
191
+ * are unique per schema, not per table).
192
+ */
193
+ await queryRunner.query(
194
+ `ALTER TABLE "TelemetryEntity" RENAME TO "InventoryItem"`,
195
+ );
196
+ await queryRunner.query(
197
+ `ALTER TABLE "TelemetryEntityRelationship" RENAME TO "InventoryItemRelationship"`,
198
+ );
199
+
200
+ await this.renameIndexes(queryRunner, INVENTORY_ITEM_INDEXES, false);
201
+ await this.renameIndexes(queryRunner, RELATIONSHIP_INDEXES, false);
202
+
203
+ await this.renameConstraints(
204
+ queryRunner,
205
+ "InventoryItem",
206
+ INVENTORY_ITEM_FOREIGN_KEYS,
207
+ false,
208
+ );
209
+ await this.renameConstraints(
210
+ queryRunner,
211
+ "InventoryItemRelationship",
212
+ RELATIONSHIP_FOREIGN_KEYS,
213
+ false,
214
+ );
215
+
216
+ await queryRunner.query(
217
+ `ALTER TABLE "InventoryItem" RENAME CONSTRAINT "${PRIMARY_KEYS[0]!.from}" TO "${PRIMARY_KEYS[0]!.to}"`,
218
+ );
219
+ await queryRunner.query(
220
+ `ALTER TABLE "InventoryItemRelationship" RENAME CONSTRAINT "${PRIMARY_KEYS[1]!.from}" TO "${PRIMARY_KEYS[1]!.to}"`,
221
+ );
222
+ }
223
+
224
+ public async down(queryRunner: QueryRunner): Promise<void> {
225
+ await queryRunner.query(
226
+ `ALTER TABLE "InventoryItemRelationship" RENAME CONSTRAINT "${PRIMARY_KEYS[1]!.to}" TO "${PRIMARY_KEYS[1]!.from}"`,
227
+ );
228
+ await queryRunner.query(
229
+ `ALTER TABLE "InventoryItem" RENAME CONSTRAINT "${PRIMARY_KEYS[0]!.to}" TO "${PRIMARY_KEYS[0]!.from}"`,
230
+ );
231
+
232
+ await this.renameConstraints(
233
+ queryRunner,
234
+ "InventoryItemRelationship",
235
+ RELATIONSHIP_FOREIGN_KEYS,
236
+ true,
237
+ );
238
+ await this.renameConstraints(
239
+ queryRunner,
240
+ "InventoryItem",
241
+ INVENTORY_ITEM_FOREIGN_KEYS,
242
+ true,
243
+ );
244
+
245
+ await this.renameIndexes(queryRunner, RELATIONSHIP_INDEXES, true);
246
+ await this.renameIndexes(queryRunner, INVENTORY_ITEM_INDEXES, true);
247
+
248
+ await queryRunner.query(
249
+ `ALTER TABLE "InventoryItemRelationship" RENAME TO "TelemetryEntityRelationship"`,
250
+ );
251
+ await queryRunner.query(
252
+ `ALTER TABLE "InventoryItem" RENAME TO "TelemetryEntity"`,
253
+ );
254
+ }
255
+ }
@@ -0,0 +1,107 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ /*
4
+ * Two additions to the Inventory product:
5
+ *
6
+ * Archiving — `isArchived` and its bookkeeping columns. This is the
7
+ * disposal route that actually works for this table: deleting a discovered
8
+ * or mirrored row does not stick, because ingest re-creates it on the next
9
+ * reconcile and the poller re-mirrors it on the next sweep. Archiving is a
10
+ * user annotation the reconciler never writes, so it survives
11
+ * re-registration.
12
+ *
13
+ * Custom fields — a `customFields` bag on the item plus the
14
+ * `InventoryItemCustomField` table that defines their shape, following the
15
+ * same two-part pattern as Monitor / Incident / ScheduledMaintenance.
16
+ *
17
+ * Hand-written for the same reason as the rename that precedes it: no
18
+ * database was reachable to run the generator against. Index and foreign key
19
+ * names are TypeORM's own (`"IDX_"/"FK_" + sha1(table_sortedColumns)`,
20
+ * truncated to 26 and 27 characters respectively), so the Schema Drift job
21
+ * finds nothing left to generate. The accompanying test recomputes every one
22
+ * of them from TypeORM's DefaultNamingStrategy.
23
+ */
24
+ export class AddInventoryItemArchiveAndCustomFields1786900000000
25
+ implements MigrationInterface
26
+ {
27
+ public name = "AddInventoryItemArchiveAndCustomFields1786900000000";
28
+
29
+ public async up(queryRunner: QueryRunner): Promise<void> {
30
+ await queryRunner.query(
31
+ `ALTER TABLE "InventoryItem" ADD "isArchived" boolean NOT NULL DEFAULT false`,
32
+ );
33
+ await queryRunner.query(
34
+ `ALTER TABLE "InventoryItem" ADD "archivedAt" TIMESTAMP WITH TIME ZONE`,
35
+ );
36
+ await queryRunner.query(
37
+ `ALTER TABLE "InventoryItem" ADD "archivedByUserId" uuid`,
38
+ );
39
+ await queryRunner.query(
40
+ `ALTER TABLE "InventoryItem" ADD "customFields" jsonb`,
41
+ );
42
+
43
+ /*
44
+ * Every list view filters on isArchived alongside the tenant column, so
45
+ * the two are indexed together rather than leaving isArchived to a scan.
46
+ */
47
+ await queryRunner.query(
48
+ `CREATE INDEX "IDX_0fef41416ab141b1f344fc96c3" ON "InventoryItem" ("projectId", "isArchived") `,
49
+ );
50
+
51
+ await queryRunner.query(
52
+ `ALTER TABLE "InventoryItem" ADD CONSTRAINT "FK_8567c6339bf4889d00d121b3047" FOREIGN KEY ("archivedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
53
+ );
54
+
55
+ await queryRunner.query(
56
+ `CREATE TABLE "InventoryItemCustomField" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "customFieldType" character varying(100), "dropdownOptions" character varying(500), "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_InventoryItemCustomField" PRIMARY KEY ("_id"))`,
57
+ );
58
+ await queryRunner.query(
59
+ `CREATE INDEX "IDX_9f6a4cbd2f57a69e5d6fab9854" ON "InventoryItemCustomField" ("projectId") `,
60
+ );
61
+ await queryRunner.query(
62
+ `ALTER TABLE "InventoryItemCustomField" ADD CONSTRAINT "FK_9f6a4cbd2f57a69e5d6fab9854d" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
63
+ );
64
+ await queryRunner.query(
65
+ `ALTER TABLE "InventoryItemCustomField" ADD CONSTRAINT "FK_8f121d4daca9d74f5f948511aef" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
66
+ );
67
+ await queryRunner.query(
68
+ `ALTER TABLE "InventoryItemCustomField" ADD CONSTRAINT "FK_85f9a41e4ecf947560491917527" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
69
+ );
70
+ }
71
+
72
+ public async down(queryRunner: QueryRunner): Promise<void> {
73
+ await queryRunner.query(
74
+ `ALTER TABLE "InventoryItemCustomField" DROP CONSTRAINT "FK_85f9a41e4ecf947560491917527"`,
75
+ );
76
+ await queryRunner.query(
77
+ `ALTER TABLE "InventoryItemCustomField" DROP CONSTRAINT "FK_8f121d4daca9d74f5f948511aef"`,
78
+ );
79
+ await queryRunner.query(
80
+ `ALTER TABLE "InventoryItemCustomField" DROP CONSTRAINT "FK_9f6a4cbd2f57a69e5d6fab9854d"`,
81
+ );
82
+ await queryRunner.query(
83
+ `DROP INDEX "public"."IDX_9f6a4cbd2f57a69e5d6fab9854"`,
84
+ );
85
+ await queryRunner.query(`DROP TABLE "InventoryItemCustomField"`);
86
+
87
+ await queryRunner.query(
88
+ `ALTER TABLE "InventoryItem" DROP CONSTRAINT "FK_8567c6339bf4889d00d121b3047"`,
89
+ );
90
+ await queryRunner.query(
91
+ `DROP INDEX "public"."IDX_0fef41416ab141b1f344fc96c3"`,
92
+ );
93
+
94
+ await queryRunner.query(
95
+ `ALTER TABLE "InventoryItem" DROP COLUMN "customFields"`,
96
+ );
97
+ await queryRunner.query(
98
+ `ALTER TABLE "InventoryItem" DROP COLUMN "archivedByUserId"`,
99
+ );
100
+ await queryRunner.query(
101
+ `ALTER TABLE "InventoryItem" DROP COLUMN "archivedAt"`,
102
+ );
103
+ await queryRunner.query(
104
+ `ALTER TABLE "InventoryItem" DROP COLUMN "isArchived"`,
105
+ );
106
+ }
107
+ }
@@ -0,0 +1,90 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ /*
4
+ * Schema for the on-call notification fallback: a page routed to a responder who
5
+ * has no notification rule matching the event's rule type and severity now goes
6
+ * out on whatever verified method they do have, instead of dead-ending with an
7
+ * Error status nobody reads.
8
+ *
9
+ * Hand-written rather than emitted by `npm run generate-postgres-migration`. The
10
+ * generator diffs the entire entity set against the live database, and several
11
+ * models in this worktree are being changed in parallel, so a generated file
12
+ * would have swept up unrelated in-flight columns. The statements below are
13
+ * exactly what the generator produces for these column definitions — compare
14
+ * `enableWhatsAppNotifications` (1759943124812) and `enableTelegramNotifications`
15
+ * (1776761171349) for the Project booleans, and `isFeatureFlagMonitorGroupsEnabled`
16
+ * in the InitialMigration for the nullable-with-default shape.
17
+ *
18
+ * UserNotificationRule.isOptOut is nullable because a rule that predates this
19
+ * column is simply not an opt-out; the DEFAULT covers rows written afterwards and
20
+ * the backfill for existing rows is the default itself. The two Project columns
21
+ * are NOT NULL like every other project boolean, so existing projects land on
22
+ * false: the fallback on, and no owner notification recorded as sent yet.
23
+ *
24
+ * UserOnCallLogTimeline.userNotificationRuleId is dropped to NULL-able because
25
+ * the fallback delivers through a UserNotificationRule constructed in memory and
26
+ * never saved — there is deliberately no stored rule behind a fallback page, so
27
+ * there is no id to record. It has been NOT NULL since the InitialMigration
28
+ * (1717605043663), which means that without this statement every fallback insert
29
+ * fails its required-field check and the feature cannot deliver anything at all.
30
+ * The foreign key on the column stays as it is: Postgres does not check a FK when
31
+ * the referencing column is NULL, so a NULL row is legal against the existing
32
+ * constraint and no index or constraint needs rebuilding.
33
+ */
34
+ export class AddOnCallNotificationFallbackColumns1787000000000
35
+ implements MigrationInterface
36
+ {
37
+ public name: string = "AddOnCallNotificationFallbackColumns1787000000000";
38
+
39
+ public async up(queryRunner: QueryRunner): Promise<void> {
40
+ await queryRunner.query(
41
+ `ALTER TABLE "UserNotificationRule" ADD "isOptOut" boolean DEFAULT false`,
42
+ );
43
+ await queryRunner.query(
44
+ `ALTER TABLE "Project" ADD "disableOnCallNotificationFallback" boolean NOT NULL DEFAULT false`,
45
+ );
46
+ await queryRunner.query(
47
+ `ALTER TABLE "Project" ADD "onCallFallbackUsedNotificationSentToOwners" boolean NOT NULL DEFAULT false`,
48
+ );
49
+ await queryRunner.query(
50
+ `ALTER TABLE "UserOnCallLogTimeline" ALTER COLUMN "userNotificationRuleId" DROP NOT NULL`,
51
+ );
52
+ }
53
+
54
+ public async down(queryRunner: QueryRunner): Promise<void> {
55
+ /*
56
+ * Restoring NOT NULL is only possible once nothing violates it, and after the
57
+ * fallback has run there will be timeline rows with a NULL rule id — one per
58
+ * fallback page delivered. A bare `SET NOT NULL` would abort the whole
59
+ * rollback on the first such row, so the rows are deleted first.
60
+ *
61
+ * This deletion is destructive and worth understanding before running down().
62
+ * What it removes is exactly the set of rows that could not have existed
63
+ * before this migration: fallback delivery records. Their history is real —
64
+ * they describe pages that were genuinely sent — but there is no way to
65
+ * express them in the pre-migration schema, so reverting the schema means
66
+ * giving them up. An operator who wants to keep the record should copy them
67
+ * out first:
68
+ *
69
+ * SELECT * FROM "UserOnCallLogTimeline" WHERE "userNotificationRuleId" IS NULL;
70
+ *
71
+ * Ordinary rows are untouched: before this migration the column was NOT NULL,
72
+ * so nothing predating it can match.
73
+ */
74
+ await queryRunner.query(
75
+ `DELETE FROM "UserOnCallLogTimeline" WHERE "userNotificationRuleId" IS NULL`,
76
+ );
77
+ await queryRunner.query(
78
+ `ALTER TABLE "UserOnCallLogTimeline" ALTER COLUMN "userNotificationRuleId" SET NOT NULL`,
79
+ );
80
+ await queryRunner.query(
81
+ `ALTER TABLE "Project" DROP COLUMN "onCallFallbackUsedNotificationSentToOwners"`,
82
+ );
83
+ await queryRunner.query(
84
+ `ALTER TABLE "Project" DROP COLUMN "disableOnCallNotificationFallback"`,
85
+ );
86
+ await queryRunner.query(
87
+ `ALTER TABLE "UserNotificationRule" DROP COLUMN "isOptOut"`,
88
+ );
89
+ }
90
+ }