@oneuptime/common 11.6.1 → 11.7.0

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 (420) hide show
  1. package/Models/AnalyticsModels/Index.ts +4 -0
  2. package/Models/AnalyticsModels/KubernetesCostAllocation.ts +842 -0
  3. package/Models/AnalyticsModels/NetworkFlow.ts +54 -0
  4. package/Models/AnalyticsModels/SloHistory.ts +243 -0
  5. package/Models/DatabaseModels/Index.ts +20 -0
  6. package/Models/DatabaseModels/NetworkDevice.ts +453 -6
  7. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +7 -6
  8. package/Models/DatabaseModels/NetworkEndpoint.ts +753 -0
  9. package/Models/DatabaseModels/NetworkSite.ts +1155 -0
  10. package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +517 -0
  11. package/Models/DatabaseModels/NetworkSiteLink.ts +611 -0
  12. package/Models/DatabaseModels/NetworkSiteStatusTimeline.ts +520 -0
  13. package/Models/DatabaseModels/NetworkSiteType.ts +499 -0
  14. package/Models/DatabaseModels/ServiceLevelObjective.ts +1115 -0
  15. package/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.ts +762 -0
  16. package/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.ts +444 -0
  17. package/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.ts +443 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.ts +359 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.ts +48 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.ts +65 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.ts +88 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.ts +391 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.ts +30 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  25. package/Server/Services/AnalyticsDatabaseService.ts +25 -9
  26. package/Server/Services/Index.ts +24 -0
  27. package/Server/Services/KubernetesCostAllocationService.ts +14 -0
  28. package/Server/Services/MetricService.ts +21 -2
  29. package/Server/Services/MonitorService.ts +22 -0
  30. package/Server/Services/NetworkDeviceService.ts +438 -2
  31. package/Server/Services/NetworkEndpointService.ts +414 -0
  32. package/Server/Services/NetworkSiteAssignmentRuleService.ts +98 -0
  33. package/Server/Services/NetworkSiteLinkService.ts +10 -0
  34. package/Server/Services/NetworkSiteService.ts +1254 -0
  35. package/Server/Services/NetworkSiteStatusTimelineService.ts +10 -0
  36. package/Server/Services/NetworkSiteTypeService.ts +10 -0
  37. package/Server/Services/ProjectService.ts +122 -2
  38. package/Server/Services/ServiceLevelObjectiveBurnRateRuleService.ts +457 -0
  39. package/Server/Services/ServiceLevelObjectiveOwnerTeamService.ts +10 -0
  40. package/Server/Services/ServiceLevelObjectiveOwnerUserService.ts +10 -0
  41. package/Server/Services/ServiceLevelObjectiveService.ts +685 -0
  42. package/Server/Services/SloHistoryService.ts +101 -0
  43. package/Server/Services/UserNotificationSettingService.ts +37 -0
  44. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +9 -0
  45. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +15 -0
  46. package/Server/Utils/AnalyticsDatabase/Statement.ts +39 -3
  47. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +87 -48
  48. package/Server/Utils/Memory.ts +9 -1
  49. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +190 -12
  50. package/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
  51. package/Server/Utils/Monitor/DnsResolutionCache.ts +129 -0
  52. package/Server/Utils/Monitor/MonitorResource.ts +4 -30
  53. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +214 -39
  54. package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +343 -0
  55. package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +251 -0
  56. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +176 -142
  57. package/Server/Utils/Monitor/OuiLookupUtil.ts +49 -0
  58. package/Server/Utils/Monitor/SnmpInterfaceRateUtil.ts +17 -13
  59. package/Server/Utils/WhatsAppTemplateUtil.ts +7 -3
  60. package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +135 -0
  61. package/Tests/Models/NetworkSiteHierarchy.test.ts +134 -0
  62. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +239 -0
  63. package/Tests/Server/Services/KubernetesCostAllocationAggregate.test.ts +338 -0
  64. package/Tests/Server/Services/MetricServiceAggregate.test.ts +142 -0
  65. package/Tests/Server/Services/NetworkDeviceSiteAssignment.test.ts +484 -0
  66. package/Tests/Server/Services/NetworkEndpointServiceUpsert.test.ts +686 -0
  67. package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +185 -0
  68. package/Tests/Server/Services/NetworkSiteService.test.ts +1354 -0
  69. package/Tests/Server/Services/ServiceLevelObjectiveBurnRateRuleService.test.ts +1313 -0
  70. package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +1988 -0
  71. package/Tests/Server/Utils/AnalyticsDatabase/Statement.test.ts +22 -0
  72. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +404 -0
  73. package/Tests/Server/Utils/Encryption.test.ts +70 -0
  74. package/Tests/Server/Utils/FileAttachmentMarkdownUtil.test.ts +225 -0
  75. package/Tests/Server/Utils/JsonWebToken.test.ts +175 -0
  76. package/Tests/Server/Utils/LocalFile.test.ts +258 -0
  77. package/Tests/Server/Utils/Memory.test.ts +213 -0
  78. package/Tests/Server/Utils/Monitor/Criteria/LogMonitorCriteria.test.ts +30 -0
  79. package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +385 -0
  80. package/Tests/Server/Utils/Monitor/DnsResolutionCache.test.ts +194 -0
  81. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +155 -0
  82. package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +600 -0
  83. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +151 -124
  84. package/Tests/Server/Utils/Monitor/SnmpInterfaceRateUtil.test.ts +496 -0
  85. package/Tests/Server/Utils/MonitorCriteriaDataExtractor.test.ts +175 -0
  86. package/Tests/Server/Utils/MonitorCriteriaMessageFormatter.test.ts +282 -0
  87. package/Tests/Server/Utils/OuiLookupUtil.test.ts +59 -0
  88. package/Tests/Server/Utils/SeriesResourceLabels.test.ts +117 -0
  89. package/Tests/Server/Utils/StackTraceParser.test.ts +370 -0
  90. package/Tests/Server/Utils/Stream.test.ts +87 -0
  91. package/Tests/Server/Utils/ValidateGlobalProviderProjectTeams.test.ts +221 -0
  92. package/Tests/Server/Utils/WhatsAppTemplateUtil.test.ts +199 -0
  93. package/Tests/Types/Database/CompareOperatorWireSerialization.test.ts +33 -0
  94. package/Tests/Types/Email.test.ts +198 -0
  95. package/Tests/Types/Kubernetes/KubernetesObjectParser.test.ts +177 -0
  96. package/Tests/Types/Log/LogQueryToFilter.test.ts +111 -0
  97. package/Tests/Types/Monitor/MonitorCriteria.test.ts +155 -0
  98. package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +465 -0
  99. package/Tests/Types/Monitor/MonitorStep.test.ts +183 -0
  100. package/Tests/Types/Monitor/MonitorStepNetworkDeviceMonitor.test.ts +141 -1
  101. package/Tests/Types/Monitor/MonitorSteps.test.ts +183 -0
  102. package/Tests/Types/Monitor/MonitorType.test.ts +59 -1
  103. package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +97 -0
  104. package/Tests/Types/Monitor/SnmpEndpointDiscovery.test.ts +151 -0
  105. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +110 -6
  106. package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +129 -0
  107. package/Tests/Types/SerializableObjectDictionary.test.ts +166 -0
  108. package/Tests/Types/Time/RangeStartAndEndDateTime.test.ts +98 -0
  109. package/Tests/Types/WebsiteRequest.test.ts +230 -0
  110. package/Tests/UI/Components/EntityFilterRoundTrip.test.tsx +103 -0
  111. package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +612 -0
  112. package/Tests/UI/Components/ModelTable/FilterDataToQuery.test.ts +275 -0
  113. package/Tests/UI/Utils/LogExport.test.ts +159 -0
  114. package/Tests/UI/Utils/Navigation.test.ts +183 -0
  115. package/Tests/UI/Utils/TableFilterUrlState.test.ts +539 -0
  116. package/Tests/UI/Utils/TableViewUrlState.test.ts +272 -0
  117. package/Tests/Utils/Base64.test.ts +51 -0
  118. package/Tests/Utils/Boolean.test.ts +76 -0
  119. package/Tests/Utils/Crypto.test.ts +48 -0
  120. package/Tests/Utils/Dashboard/DashboardSloComponent.test.ts +259 -0
  121. package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +162 -0
  122. package/Tests/Utils/Enum.test.ts +54 -0
  123. package/Tests/Utils/IpCanonicalUtil.test.ts +85 -0
  124. package/Tests/Utils/Memory.test.ts +44 -0
  125. package/Tests/Utils/Metrics/MetricSeriesFingerprint.test.ts +160 -0
  126. package/Tests/Utils/Monitor/EndpointAttachmentUtil.test.ts +836 -0
  127. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +218 -0
  128. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +447 -0
  129. package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +440 -0
  130. package/Tests/Utils/NetworkSite/MaterializedPathUtil.test.ts +205 -0
  131. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +221 -0
  132. package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +283 -0
  133. package/Tests/Utils/ObjectUtil.test.ts +30 -0
  134. package/Tests/Utils/Slo/SloBurnRateRuleState.test.ts +124 -0
  135. package/Tests/Utils/Slo/SloDuration.test.ts +148 -0
  136. package/Tests/Utils/Slo/SloHealth.test.ts +334 -0
  137. package/Tests/Utils/Slo/SloStatusColor.test.ts +89 -0
  138. package/Tests/Utils/Slo/SloUtil.test.ts +1980 -0
  139. package/Tests/Utils/Slo/SloWidgetFormat.test.ts +605 -0
  140. package/Tests/Utils/TechStack.test.ts +50 -0
  141. package/Tests/Utils/Traces/CriticalPath.test.ts +178 -0
  142. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +10 -0
  143. package/Types/BaseDatabase/EqualTo.ts +9 -1
  144. package/Types/BaseDatabase/EqualToOrNull.ts +9 -1
  145. package/Types/BaseDatabase/NotEqual.ts +9 -1
  146. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  147. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  148. package/Types/Dashboard/DashboardComponents/DashboardSloComponent.ts +42 -0
  149. package/Types/Dashboard/DashboardTemplates.ts +214 -0
  150. package/Types/Email/EmailTemplateType.ts +2 -0
  151. package/Types/Kubernetes/KubernetesCostIngest.ts +79 -0
  152. package/Types/Monitor/CriteriaFilter.ts +9 -0
  153. package/Types/Monitor/MonitorStep.ts +5 -8
  154. package/Types/Monitor/MonitorStepNetworkDeviceMonitor.ts +27 -5
  155. package/Types/Monitor/MonitorType.ts +15 -5
  156. package/Types/Monitor/SnmpMonitor/ArpEntry.ts +14 -0
  157. package/Types/Monitor/SnmpMonitor/FdbEntry.ts +18 -0
  158. package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +10 -3
  159. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +31 -5
  160. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +12 -0
  161. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +231 -3
  162. package/Types/NetworkSite/DefaultNetworkSiteType.ts +20 -0
  163. package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
  164. package/Types/Permission.ts +449 -0
  165. package/Types/ServiceLevelObjective/SliType.ts +6 -0
  166. package/Types/ServiceLevelObjective/SloMultiMonitorMode.ts +6 -0
  167. package/Types/ServiceLevelObjective/SloStatus.ts +9 -0
  168. package/Types/ServiceLevelObjective/SloWindowType.ts +6 -0
  169. package/Types/Telemetry/ServiceType.ts +1 -0
  170. package/UI/Components/Filters/EntityFilter.tsx +16 -0
  171. package/UI/Components/Filters/FilterViewer.tsx +22 -5
  172. package/UI/Components/List/List.tsx +8 -0
  173. package/UI/Components/ModelTable/BaseModelTable.tsx +309 -106
  174. package/UI/Components/ModelTable/FilterDataToQuery.ts +172 -0
  175. package/UI/Components/Navbar/NavBar.tsx +16 -2
  176. package/UI/Components/Navbar/NavBarMenuModal.tsx +3 -3
  177. package/UI/Utils/Navigation.ts +10 -0
  178. package/UI/Utils/TableFilterUrlState.ts +204 -17
  179. package/UI/Utils/TableViewUrlState.ts +165 -0
  180. package/Utils/Dashboard/Components/DashboardSloComponent.ts +114 -0
  181. package/Utils/Dashboard/Components/Index.ts +7 -0
  182. package/Utils/IpCanonicalUtil.ts +134 -0
  183. package/Utils/Monitor/EndpointAttachmentUtil.ts +508 -0
  184. package/Utils/Monitor/NetworkTopologyUtil.ts +157 -5
  185. package/Utils/NetworkSite/CidrMatchUtil.ts +296 -0
  186. package/Utils/NetworkSite/MaterializedPathUtil.ts +115 -0
  187. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +97 -0
  188. package/Utils/NetworkSite/SiteUptimeUtil.ts +111 -0
  189. package/Utils/Slo/SloBurnRateRuleState.ts +91 -0
  190. package/Utils/Slo/SloDuration.ts +165 -0
  191. package/Utils/Slo/SloEvaluation.ts +22 -0
  192. package/Utils/Slo/SloHealth.ts +302 -0
  193. package/Utils/Slo/SloStatusColor.ts +54 -0
  194. package/Utils/Slo/SloUtil.ts +637 -0
  195. package/Utils/Slo/SloWidgetFormat.ts +383 -0
  196. package/build/dist/Models/AnalyticsModels/Index.js +4 -0
  197. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  198. package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +713 -0
  199. package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -0
  200. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +44 -0
  201. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -1
  202. package/build/dist/Models/AnalyticsModels/SloHistory.js +218 -0
  203. package/build/dist/Models/AnalyticsModels/SloHistory.js.map +1 -0
  204. package/build/dist/Models/DatabaseModels/Index.js +20 -0
  205. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  206. package/build/dist/Models/DatabaseModels/NetworkDevice.js +458 -6
  207. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  208. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +0 -6
  209. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  210. package/build/dist/Models/DatabaseModels/NetworkEndpoint.js +779 -0
  211. package/build/dist/Models/DatabaseModels/NetworkEndpoint.js.map +1 -0
  212. package/build/dist/Models/DatabaseModels/NetworkSite.js +1180 -0
  213. package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -0
  214. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +534 -0
  215. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -0
  216. package/build/dist/Models/DatabaseModels/NetworkSiteLink.js +629 -0
  217. package/build/dist/Models/DatabaseModels/NetworkSiteLink.js.map +1 -0
  218. package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js +538 -0
  219. package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js.map +1 -0
  220. package/build/dist/Models/DatabaseModels/NetworkSiteType.js +522 -0
  221. package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -0
  222. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +1134 -0
  223. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -0
  224. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js +769 -0
  225. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js.map +1 -0
  226. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js +460 -0
  227. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js.map +1 -0
  228. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js +459 -0
  229. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js.map +1 -0
  230. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js +130 -0
  231. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js.map +1 -0
  232. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js +31 -0
  233. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js.map +1 -0
  234. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js +36 -0
  235. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js.map +1 -0
  236. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js +49 -0
  237. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js.map +1 -0
  238. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js +140 -0
  239. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js.map +1 -0
  240. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.js +21 -0
  241. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.js.map +1 -0
  242. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  243. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  244. package/build/dist/Server/Services/AnalyticsDatabaseService.js +23 -6
  245. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  246. package/build/dist/Server/Services/Index.js +24 -0
  247. package/build/dist/Server/Services/Index.js.map +1 -1
  248. package/build/dist/Server/Services/KubernetesCostAllocationService.js +12 -0
  249. package/build/dist/Server/Services/KubernetesCostAllocationService.js.map +1 -0
  250. package/build/dist/Server/Services/MetricService.js +21 -3
  251. package/build/dist/Server/Services/MetricService.js.map +1 -1
  252. package/build/dist/Server/Services/MonitorService.js +19 -0
  253. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  254. package/build/dist/Server/Services/NetworkDeviceService.js +351 -1
  255. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  256. package/build/dist/Server/Services/NetworkEndpointService.js +319 -0
  257. package/build/dist/Server/Services/NetworkEndpointService.js.map +1 -0
  258. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +90 -0
  259. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -0
  260. package/build/dist/Server/Services/NetworkSiteLinkService.js +9 -0
  261. package/build/dist/Server/Services/NetworkSiteLinkService.js.map +1 -0
  262. package/build/dist/Server/Services/NetworkSiteService.js +1038 -0
  263. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -0
  264. package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js +9 -0
  265. package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js.map +1 -0
  266. package/build/dist/Server/Services/NetworkSiteTypeService.js +9 -0
  267. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -0
  268. package/build/dist/Server/Services/ProjectService.js +98 -2
  269. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  270. package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js +358 -0
  271. package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js.map +1 -0
  272. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js +9 -0
  273. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js.map +1 -0
  274. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js +9 -0
  275. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js.map +1 -0
  276. package/build/dist/Server/Services/ServiceLevelObjectiveService.js +588 -0
  277. package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -0
  278. package/build/dist/Server/Services/SloHistoryService.js +77 -0
  279. package/build/dist/Server/Services/SloHistoryService.js.map +1 -0
  280. package/build/dist/Server/Services/UserNotificationSettingService.js +20 -0
  281. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  282. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +9 -0
  283. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  284. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +15 -0
  285. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  286. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +31 -0
  287. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
  288. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +76 -48
  289. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  290. package/build/dist/Server/Utils/Memory.js +9 -1
  291. package/build/dist/Server/Utils/Memory.js.map +1 -1
  292. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +132 -10
  293. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  294. package/build/dist/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
  295. package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js +77 -0
  296. package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js.map +1 -0
  297. package/build/dist/Server/Utils/Monitor/MonitorResource.js +21 -41
  298. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  299. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +152 -40
  300. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  301. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +262 -0
  302. package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -0
  303. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +201 -0
  304. package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -0
  305. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +152 -120
  306. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  307. package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js +44 -0
  308. package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js.map +1 -0
  309. package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js +10 -10
  310. package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js.map +1 -1
  311. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +5 -0
  312. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  313. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +10 -0
  314. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  315. package/build/dist/Types/BaseDatabase/EqualTo.js +9 -1
  316. package/build/dist/Types/BaseDatabase/EqualTo.js.map +1 -1
  317. package/build/dist/Types/BaseDatabase/EqualToOrNull.js +9 -1
  318. package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
  319. package/build/dist/Types/BaseDatabase/NotEqual.js +9 -1
  320. package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
  321. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  322. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  323. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  324. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  325. package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js +23 -0
  326. package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js.map +1 -0
  327. package/build/dist/Types/Dashboard/DashboardTemplates.js +205 -0
  328. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  329. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  330. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  331. package/build/dist/Types/Kubernetes/KubernetesCostIngest.js +21 -0
  332. package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -0
  333. package/build/dist/Types/Monitor/CriteriaFilter.js +1 -0
  334. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  335. package/build/dist/Types/Monitor/MonitorStep.js +5 -5
  336. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  337. package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js +8 -0
  338. package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js.map +1 -1
  339. package/build/dist/Types/Monitor/MonitorType.js +15 -5
  340. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  341. package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js +2 -0
  342. package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js.map +1 -0
  343. package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js +2 -0
  344. package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js.map +1 -0
  345. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +9 -3
  346. package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
  347. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +217 -3
  348. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  349. package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js +21 -0
  350. package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js.map +1 -0
  351. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
  352. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  353. package/build/dist/Types/Permission.js +409 -0
  354. package/build/dist/Types/Permission.js.map +1 -1
  355. package/build/dist/Types/ServiceLevelObjective/SliType.js +7 -0
  356. package/build/dist/Types/ServiceLevelObjective/SliType.js.map +1 -0
  357. package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js +7 -0
  358. package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js.map +1 -0
  359. package/build/dist/Types/ServiceLevelObjective/SloStatus.js +10 -0
  360. package/build/dist/Types/ServiceLevelObjective/SloStatus.js.map +1 -0
  361. package/build/dist/Types/ServiceLevelObjective/SloWindowType.js +7 -0
  362. package/build/dist/Types/ServiceLevelObjective/SloWindowType.js.map +1 -0
  363. package/build/dist/Types/Telemetry/ServiceType.js +1 -0
  364. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  365. package/build/dist/UI/Components/Filters/EntityFilter.js +15 -0
  366. package/build/dist/UI/Components/Filters/EntityFilter.js.map +1 -1
  367. package/build/dist/UI/Components/Filters/FilterViewer.js +19 -4
  368. package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
  369. package/build/dist/UI/Components/List/List.js +1 -1
  370. package/build/dist/UI/Components/List/List.js.map +1 -1
  371. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +235 -89
  372. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  373. package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js +96 -0
  374. package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js.map +1 -0
  375. package/build/dist/UI/Components/Navbar/NavBar.js +14 -2
  376. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  377. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +3 -2
  378. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  379. package/build/dist/UI/Utils/Navigation.js +9 -0
  380. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  381. package/build/dist/UI/Utils/TableFilterUrlState.js +159 -15
  382. package/build/dist/UI/Utils/TableFilterUrlState.js.map +1 -1
  383. package/build/dist/UI/Utils/TableViewUrlState.js +103 -0
  384. package/build/dist/UI/Utils/TableViewUrlState.js.map +1 -0
  385. package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js +93 -0
  386. package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js.map +1 -0
  387. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  388. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  389. package/build/dist/Utils/IpCanonicalUtil.js +110 -0
  390. package/build/dist/Utils/IpCanonicalUtil.js.map +1 -0
  391. package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js +311 -0
  392. package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js.map +1 -0
  393. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +98 -5
  394. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  395. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +222 -0
  396. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -0
  397. package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js +89 -0
  398. package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js.map +1 -0
  399. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +60 -0
  400. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -0
  401. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +76 -0
  402. package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -0
  403. package/build/dist/Utils/Slo/SloBurnRateRuleState.js +35 -0
  404. package/build/dist/Utils/Slo/SloBurnRateRuleState.js.map +1 -0
  405. package/build/dist/Utils/Slo/SloDuration.js +87 -0
  406. package/build/dist/Utils/Slo/SloDuration.js.map +1 -0
  407. package/build/dist/Utils/Slo/SloEvaluation.js +21 -0
  408. package/build/dist/Utils/Slo/SloEvaluation.js.map +1 -0
  409. package/build/dist/Utils/Slo/SloHealth.js +179 -0
  410. package/build/dist/Utils/Slo/SloHealth.js.map +1 -0
  411. package/build/dist/Utils/Slo/SloStatusColor.js +18 -0
  412. package/build/dist/Utils/Slo/SloStatusColor.js.map +1 -0
  413. package/build/dist/Utils/Slo/SloUtil.js +393 -0
  414. package/build/dist/Utils/Slo/SloUtil.js.map +1 -0
  415. package/build/dist/Utils/Slo/SloWidgetFormat.js +174 -0
  416. package/build/dist/Utils/Slo/SloWidgetFormat.js.map +1 -0
  417. package/package.json +2 -2
  418. package/Types/Dashboard/DashboardComponents/Index.ts +0 -7
  419. package/build/dist/Types/Dashboard/DashboardComponents/Index.js +0 -8
  420. package/build/dist/Types/Dashboard/DashboardComponents/Index.js.map +0 -1
@@ -0,0 +1,391 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ export class AddServiceLevelObjective1784987015619
4
+ implements MigrationInterface
5
+ {
6
+ public name = "AddServiceLevelObjective1784987015619";
7
+
8
+ public async up(queryRunner: QueryRunner): Promise<void> {
9
+ await queryRunner.query(
10
+ `CREATE TABLE "ServiceLevelObjective" ("_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), "slug" character varying(100) NOT NULL, "isEnabled" boolean NOT NULL DEFAULT true, "sliType" character varying NOT NULL DEFAULT 'Monitor Uptime', "multiMonitorMode" character varying NOT NULL DEFAULT 'Any Monitor Down', "metricQueryConfig" jsonb, "targetPercentage" numeric NOT NULL, "windowType" character varying NOT NULL DEFAULT 'Rolling', "windowDays" integer NOT NULL DEFAULT '30', "timezone" character varying(100), "atRiskThresholdPercentage" integer NOT NULL DEFAULT '20', "currentSliPercentage" numeric, "errorBudgetRemainingPercentage" numeric, "errorBudgetRemainingSeconds" integer, "errorBudgetTotalSeconds" integer, "currentBurnRate" numeric, "sloStatus" character varying NOT NULL DEFAULT 'Healthy', "statusChangeNotificationSentAt" TIMESTAMP WITH TIME ZONE, "lastEvaluatedAt" TIMESTAMP WITH TIME ZONE, "nextEvaluationAt" TIMESTAMP WITH TIME ZONE, "lastAccumulatedBucketEndAt" TIMESTAMP WITH TIME ZONE, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "UQ_ba02350ab59adf11ab31bfba090" UNIQUE ("slug"), CONSTRAINT "PK_02a26e6a5286aeb09e58326a287" PRIMARY KEY ("_id"))`,
11
+ );
12
+ await queryRunner.query(
13
+ `CREATE INDEX "IDX_c46e7cd584085573c357955389" ON "ServiceLevelObjective" ("projectId") `,
14
+ );
15
+ await queryRunner.query(
16
+ `CREATE INDEX "IDX_0529301be36c9c0224f721e4c3" ON "ServiceLevelObjective" ("name") `,
17
+ );
18
+ await queryRunner.query(
19
+ `CREATE INDEX "IDX_ba02350ab59adf11ab31bfba09" ON "ServiceLevelObjective" ("slug") `,
20
+ );
21
+ await queryRunner.query(
22
+ `CREATE INDEX "IDX_3a18ae1afc837908246d716ffd" ON "ServiceLevelObjective" ("isEnabled") `,
23
+ );
24
+ await queryRunner.query(
25
+ `CREATE INDEX "IDX_9ae72bfe937fb3a52bea2009d1" ON "ServiceLevelObjective" ("sloStatus") `,
26
+ );
27
+ await queryRunner.query(
28
+ `CREATE INDEX "IDX_0c55b55b9cc6777e482730080b" ON "ServiceLevelObjective" ("nextEvaluationAt") `,
29
+ );
30
+ await queryRunner.query(
31
+ `CREATE TABLE "ServiceLevelObjectiveBurnRateRule" ("_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, "serviceLevelObjectiveId" uuid NOT NULL, "name" character varying(100) NOT NULL, "isEnabled" boolean NOT NULL DEFAULT true, "burnRateThreshold" numeric NOT NULL, "longWindowInMinutes" integer NOT NULL, "shortWindowInMinutes" integer NOT NULL, "minimumSampleCount" integer, "refireSuppressionMinutes" integer, "alertSeverityId" uuid, "lastAlertCreatedAt" TIMESTAMP WITH TIME ZONE, "lastAlertResolvedAt" TIMESTAMP WITH TIME ZONE, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_09977f8f1fae6984d1c047a65a0" PRIMARY KEY ("_id"))`,
32
+ );
33
+ await queryRunner.query(
34
+ `CREATE INDEX "IDX_7569331f78148b6e53867aa5f7" ON "ServiceLevelObjectiveBurnRateRule" ("projectId") `,
35
+ );
36
+ await queryRunner.query(
37
+ `CREATE INDEX "IDX_981fd1395a10cad88ffa35ebfd" ON "ServiceLevelObjectiveBurnRateRule" ("serviceLevelObjectiveId") `,
38
+ );
39
+ await queryRunner.query(
40
+ `CREATE INDEX "IDX_d499f2cab7c1c41dc87a1c6156" ON "ServiceLevelObjectiveBurnRateRule" ("name") `,
41
+ );
42
+ await queryRunner.query(
43
+ `CREATE INDEX "IDX_35186fe6e401e695917e8b361d" ON "ServiceLevelObjectiveBurnRateRule" ("isEnabled") `,
44
+ );
45
+ await queryRunner.query(
46
+ `CREATE INDEX "IDX_f790e04533d2b79a7a27f4524b" ON "ServiceLevelObjectiveBurnRateRule" ("alertSeverityId") `,
47
+ );
48
+ await queryRunner.query(
49
+ `CREATE TABLE "ServiceLevelObjectiveOwnerUser" ("_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, "userId" uuid NOT NULL, "serviceLevelObjectiveId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_bc954ce3df97bb1ddfa671893e5" PRIMARY KEY ("_id"))`,
50
+ );
51
+ await queryRunner.query(
52
+ `CREATE INDEX "IDX_32e90aa7284ccedb801fe256f1" ON "ServiceLevelObjectiveOwnerUser" ("projectId") `,
53
+ );
54
+ await queryRunner.query(
55
+ `CREATE INDEX "IDX_02047e9714492b3f1c8e91b999" ON "ServiceLevelObjectiveOwnerUser" ("userId") `,
56
+ );
57
+ await queryRunner.query(
58
+ `CREATE INDEX "IDX_4994cd04a5e4794b3d61b2e6e5" ON "ServiceLevelObjectiveOwnerUser" ("serviceLevelObjectiveId") `,
59
+ );
60
+ await queryRunner.query(
61
+ `CREATE INDEX "IDX_bef5294b53ff9e9ca4f5a92e3a" ON "ServiceLevelObjectiveOwnerUser" ("isOwnerNotified") `,
62
+ );
63
+ await queryRunner.query(
64
+ `CREATE INDEX "IDX_be7506765e639c732a90783147" ON "ServiceLevelObjectiveOwnerUser" ("serviceLevelObjectiveId", "userId", "projectId") `,
65
+ );
66
+ await queryRunner.query(
67
+ `CREATE TABLE "ServiceLevelObjectiveOwnerTeam" ("_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, "teamId" uuid NOT NULL, "serviceLevelObjectiveId" uuid NOT NULL, "createdByUserId" uuid, "deletedByUserId" uuid, "isOwnerNotified" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_313ad90d395bc9e3619768c1ad4" PRIMARY KEY ("_id"))`,
68
+ );
69
+ await queryRunner.query(
70
+ `CREATE INDEX "IDX_efd3d0d3702596f5f17a1dee59" ON "ServiceLevelObjectiveOwnerTeam" ("projectId") `,
71
+ );
72
+ await queryRunner.query(
73
+ `CREATE INDEX "IDX_e1f9a4a97270d3450a42eb12a9" ON "ServiceLevelObjectiveOwnerTeam" ("teamId") `,
74
+ );
75
+ await queryRunner.query(
76
+ `CREATE INDEX "IDX_d338133d1cae58344006229440" ON "ServiceLevelObjectiveOwnerTeam" ("serviceLevelObjectiveId") `,
77
+ );
78
+ await queryRunner.query(
79
+ `CREATE INDEX "IDX_503bb58cee6939ee45fc94f81b" ON "ServiceLevelObjectiveOwnerTeam" ("isOwnerNotified") `,
80
+ );
81
+ await queryRunner.query(
82
+ `CREATE INDEX "IDX_53e4404ae86c9de055cf1dee02" ON "ServiceLevelObjectiveOwnerTeam" ("serviceLevelObjectiveId", "teamId", "projectId") `,
83
+ );
84
+ await queryRunner.query(
85
+ `CREATE TABLE "ServiceLevelObjectiveLabel" ("serviceLevelObjectiveId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_2fed536b8e53af3208a9b604816" PRIMARY KEY ("serviceLevelObjectiveId", "labelId"))`,
86
+ );
87
+ await queryRunner.query(
88
+ `CREATE INDEX "IDX_09469911554f1093b70999cc71" ON "ServiceLevelObjectiveLabel" ("serviceLevelObjectiveId") `,
89
+ );
90
+ await queryRunner.query(
91
+ `CREATE INDEX "IDX_7c9650fa5b4ba5a7e577b876e5" ON "ServiceLevelObjectiveLabel" ("labelId") `,
92
+ );
93
+ await queryRunner.query(
94
+ `CREATE TABLE "ServiceLevelObjectiveMonitor" ("serviceLevelObjectiveId" uuid NOT NULL, "monitorId" uuid NOT NULL, CONSTRAINT "PK_e7cb42e7fd4d3bc31e7a308c1f4" PRIMARY KEY ("serviceLevelObjectiveId", "monitorId"))`,
95
+ );
96
+ await queryRunner.query(
97
+ `CREATE INDEX "IDX_a14890fd4cec9286468d001b22" ON "ServiceLevelObjectiveMonitor" ("serviceLevelObjectiveId") `,
98
+ );
99
+ await queryRunner.query(
100
+ `CREATE INDEX "IDX_a57eae6948f19b1e97523f9a8e" ON "ServiceLevelObjectiveMonitor" ("monitorId") `,
101
+ );
102
+ await queryRunner.query(
103
+ `CREATE TABLE "ServiceLevelObjectiveDownMonitorStatus" ("serviceLevelObjectiveId" uuid NOT NULL, "monitorStatusId" uuid NOT NULL, CONSTRAINT "PK_3c64a2701713dc0b25fd196d1eb" PRIMARY KEY ("serviceLevelObjectiveId", "monitorStatusId"))`,
104
+ );
105
+ await queryRunner.query(
106
+ `CREATE INDEX "IDX_6ab2bff0fe27125c20cc479178" ON "ServiceLevelObjectiveDownMonitorStatus" ("serviceLevelObjectiveId") `,
107
+ );
108
+ await queryRunner.query(
109
+ `CREATE INDEX "IDX_7cf428df61316a8df6b9607999" ON "ServiceLevelObjectiveDownMonitorStatus" ("monitorStatusId") `,
110
+ );
111
+ await queryRunner.query(
112
+ `CREATE TABLE "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" ("serviceLevelObjectiveBurnRateRuleId" uuid NOT NULL, "onCallDutyPolicyId" uuid NOT NULL, CONSTRAINT "PK_257b38158d7deed031fe0b37404" PRIMARY KEY ("serviceLevelObjectiveBurnRateRuleId", "onCallDutyPolicyId"))`,
113
+ );
114
+ await queryRunner.query(
115
+ `CREATE INDEX "IDX_0c70c0ce5ed34cf8908da9e014" ON "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" ("serviceLevelObjectiveBurnRateRuleId") `,
116
+ );
117
+ await queryRunner.query(
118
+ `CREATE INDEX "IDX_35eb8923c8064a883954f7c969" ON "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" ("onCallDutyPolicyId") `,
119
+ );
120
+ await queryRunner.query(
121
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type":"Recurring","value":{"intervalType":"Day","intervalCount":{"_type":"PositiveNumber","value":1}}}'`,
122
+ );
123
+ await queryRunner.query(
124
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type":"RestrictionTimes","value":{"restictionType":"None","dayRestrictionTimes":null,"weeklyRestrictionTimes":[]}}'`,
125
+ );
126
+ await queryRunner.query(
127
+ `ALTER TABLE "ServiceLevelObjective" ADD CONSTRAINT "FK_c46e7cd584085573c3579553899" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
128
+ );
129
+ await queryRunner.query(
130
+ `ALTER TABLE "ServiceLevelObjective" ADD CONSTRAINT "FK_974aafc5e3a66a3a7368d485ffa" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
131
+ );
132
+ await queryRunner.query(
133
+ `ALTER TABLE "ServiceLevelObjective" ADD CONSTRAINT "FK_ff1296ae51710c26f904dfef2fd" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
134
+ );
135
+ await queryRunner.query(
136
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" ADD CONSTRAINT "FK_7569331f78148b6e53867aa5f7d" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
137
+ );
138
+ await queryRunner.query(
139
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" ADD CONSTRAINT "FK_981fd1395a10cad88ffa35ebfde" FOREIGN KEY ("serviceLevelObjectiveId") REFERENCES "ServiceLevelObjective"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
140
+ );
141
+ await queryRunner.query(
142
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" ADD CONSTRAINT "FK_f790e04533d2b79a7a27f4524bd" FOREIGN KEY ("alertSeverityId") REFERENCES "AlertSeverity"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
143
+ );
144
+ await queryRunner.query(
145
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" ADD CONSTRAINT "FK_38825b71e3f4460758f32c8ad2b" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
146
+ );
147
+ await queryRunner.query(
148
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" ADD CONSTRAINT "FK_e8c5423ee38943417d1b1153939" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
149
+ );
150
+ await queryRunner.query(
151
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" ADD CONSTRAINT "FK_32e90aa7284ccedb801fe256f16" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
152
+ );
153
+ await queryRunner.query(
154
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" ADD CONSTRAINT "FK_02047e9714492b3f1c8e91b9995" FOREIGN KEY ("userId") REFERENCES "User"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
155
+ );
156
+ await queryRunner.query(
157
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" ADD CONSTRAINT "FK_4994cd04a5e4794b3d61b2e6e58" FOREIGN KEY ("serviceLevelObjectiveId") REFERENCES "ServiceLevelObjective"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
158
+ );
159
+ await queryRunner.query(
160
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" ADD CONSTRAINT "FK_8546f9976d6b0c60a6cf94d2993" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
161
+ );
162
+ await queryRunner.query(
163
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" ADD CONSTRAINT "FK_dec4db5a0248fb01d7950d78812" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
164
+ );
165
+ await queryRunner.query(
166
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" ADD CONSTRAINT "FK_efd3d0d3702596f5f17a1dee595" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
167
+ );
168
+ await queryRunner.query(
169
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" ADD CONSTRAINT "FK_e1f9a4a97270d3450a42eb12a99" FOREIGN KEY ("teamId") REFERENCES "Team"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
170
+ );
171
+ await queryRunner.query(
172
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" ADD CONSTRAINT "FK_d338133d1cae58344006229440f" FOREIGN KEY ("serviceLevelObjectiveId") REFERENCES "ServiceLevelObjective"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`,
173
+ );
174
+ await queryRunner.query(
175
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" ADD CONSTRAINT "FK_e2f3df46a03efffd9e1a9029e67" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
176
+ );
177
+ await queryRunner.query(
178
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" ADD CONSTRAINT "FK_6f988b69e435922b6d721fbd412" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`,
179
+ );
180
+ await queryRunner.query(
181
+ `ALTER TABLE "ServiceLevelObjectiveLabel" ADD CONSTRAINT "FK_09469911554f1093b70999cc715" FOREIGN KEY ("serviceLevelObjectiveId") REFERENCES "ServiceLevelObjective"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
182
+ );
183
+ await queryRunner.query(
184
+ `ALTER TABLE "ServiceLevelObjectiveLabel" ADD CONSTRAINT "FK_7c9650fa5b4ba5a7e577b876e55" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
185
+ );
186
+ await queryRunner.query(
187
+ `ALTER TABLE "ServiceLevelObjectiveMonitor" ADD CONSTRAINT "FK_a14890fd4cec9286468d001b22f" FOREIGN KEY ("serviceLevelObjectiveId") REFERENCES "ServiceLevelObjective"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
188
+ );
189
+ await queryRunner.query(
190
+ `ALTER TABLE "ServiceLevelObjectiveMonitor" ADD CONSTRAINT "FK_a57eae6948f19b1e97523f9a8ec" FOREIGN KEY ("monitorId") REFERENCES "Monitor"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
191
+ );
192
+ await queryRunner.query(
193
+ `ALTER TABLE "ServiceLevelObjectiveDownMonitorStatus" ADD CONSTRAINT "FK_6ab2bff0fe27125c20cc4791780" FOREIGN KEY ("serviceLevelObjectiveId") REFERENCES "ServiceLevelObjective"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
194
+ );
195
+ await queryRunner.query(
196
+ `ALTER TABLE "ServiceLevelObjectiveDownMonitorStatus" ADD CONSTRAINT "FK_7cf428df61316a8df6b9607999d" FOREIGN KEY ("monitorStatusId") REFERENCES "MonitorStatus"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
197
+ );
198
+ await queryRunner.query(
199
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" ADD CONSTRAINT "FK_0c70c0ce5ed34cf8908da9e014b" FOREIGN KEY ("serviceLevelObjectiveBurnRateRuleId") REFERENCES "ServiceLevelObjectiveBurnRateRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
200
+ );
201
+ await queryRunner.query(
202
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" ADD CONSTRAINT "FK_35eb8923c8064a883954f7c9695" FOREIGN KEY ("onCallDutyPolicyId") REFERENCES "OnCallDutyPolicy"("_id") ON DELETE CASCADE ON UPDATE CASCADE`,
203
+ );
204
+ }
205
+
206
+ public async down(queryRunner: QueryRunner): Promise<void> {
207
+ await queryRunner.query(
208
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" DROP CONSTRAINT "FK_35eb8923c8064a883954f7c9695"`,
209
+ );
210
+ await queryRunner.query(
211
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy" DROP CONSTRAINT "FK_0c70c0ce5ed34cf8908da9e014b"`,
212
+ );
213
+ await queryRunner.query(
214
+ `ALTER TABLE "ServiceLevelObjectiveDownMonitorStatus" DROP CONSTRAINT "FK_7cf428df61316a8df6b9607999d"`,
215
+ );
216
+ await queryRunner.query(
217
+ `ALTER TABLE "ServiceLevelObjectiveDownMonitorStatus" DROP CONSTRAINT "FK_6ab2bff0fe27125c20cc4791780"`,
218
+ );
219
+ await queryRunner.query(
220
+ `ALTER TABLE "ServiceLevelObjectiveMonitor" DROP CONSTRAINT "FK_a57eae6948f19b1e97523f9a8ec"`,
221
+ );
222
+ await queryRunner.query(
223
+ `ALTER TABLE "ServiceLevelObjectiveMonitor" DROP CONSTRAINT "FK_a14890fd4cec9286468d001b22f"`,
224
+ );
225
+ await queryRunner.query(
226
+ `ALTER TABLE "ServiceLevelObjectiveLabel" DROP CONSTRAINT "FK_7c9650fa5b4ba5a7e577b876e55"`,
227
+ );
228
+ await queryRunner.query(
229
+ `ALTER TABLE "ServiceLevelObjectiveLabel" DROP CONSTRAINT "FK_09469911554f1093b70999cc715"`,
230
+ );
231
+ await queryRunner.query(
232
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" DROP CONSTRAINT "FK_6f988b69e435922b6d721fbd412"`,
233
+ );
234
+ await queryRunner.query(
235
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" DROP CONSTRAINT "FK_e2f3df46a03efffd9e1a9029e67"`,
236
+ );
237
+ await queryRunner.query(
238
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" DROP CONSTRAINT "FK_d338133d1cae58344006229440f"`,
239
+ );
240
+ await queryRunner.query(
241
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" DROP CONSTRAINT "FK_e1f9a4a97270d3450a42eb12a99"`,
242
+ );
243
+ await queryRunner.query(
244
+ `ALTER TABLE "ServiceLevelObjectiveOwnerTeam" DROP CONSTRAINT "FK_efd3d0d3702596f5f17a1dee595"`,
245
+ );
246
+ await queryRunner.query(
247
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" DROP CONSTRAINT "FK_dec4db5a0248fb01d7950d78812"`,
248
+ );
249
+ await queryRunner.query(
250
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" DROP CONSTRAINT "FK_8546f9976d6b0c60a6cf94d2993"`,
251
+ );
252
+ await queryRunner.query(
253
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" DROP CONSTRAINT "FK_4994cd04a5e4794b3d61b2e6e58"`,
254
+ );
255
+ await queryRunner.query(
256
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" DROP CONSTRAINT "FK_02047e9714492b3f1c8e91b9995"`,
257
+ );
258
+ await queryRunner.query(
259
+ `ALTER TABLE "ServiceLevelObjectiveOwnerUser" DROP CONSTRAINT "FK_32e90aa7284ccedb801fe256f16"`,
260
+ );
261
+ await queryRunner.query(
262
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" DROP CONSTRAINT "FK_e8c5423ee38943417d1b1153939"`,
263
+ );
264
+ await queryRunner.query(
265
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" DROP CONSTRAINT "FK_38825b71e3f4460758f32c8ad2b"`,
266
+ );
267
+ await queryRunner.query(
268
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" DROP CONSTRAINT "FK_f790e04533d2b79a7a27f4524bd"`,
269
+ );
270
+ await queryRunner.query(
271
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" DROP CONSTRAINT "FK_981fd1395a10cad88ffa35ebfde"`,
272
+ );
273
+ await queryRunner.query(
274
+ `ALTER TABLE "ServiceLevelObjectiveBurnRateRule" DROP CONSTRAINT "FK_7569331f78148b6e53867aa5f7d"`,
275
+ );
276
+ await queryRunner.query(
277
+ `ALTER TABLE "ServiceLevelObjective" DROP CONSTRAINT "FK_ff1296ae51710c26f904dfef2fd"`,
278
+ );
279
+ await queryRunner.query(
280
+ `ALTER TABLE "ServiceLevelObjective" DROP CONSTRAINT "FK_974aafc5e3a66a3a7368d485ffa"`,
281
+ );
282
+ await queryRunner.query(
283
+ `ALTER TABLE "ServiceLevelObjective" DROP CONSTRAINT "FK_c46e7cd584085573c3579553899"`,
284
+ );
285
+ await queryRunner.query(
286
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "restrictionTimes" SET DEFAULT '{"_type": "RestrictionTimes", "value": {"restictionType": "None", "dayRestrictionTimes": null, "weeklyRestrictionTimes": []}}'`,
287
+ );
288
+ await queryRunner.query(
289
+ `ALTER TABLE "OnCallDutyPolicyScheduleLayer" ALTER COLUMN "rotation" SET DEFAULT '{"_type": "Recurring", "value": {"intervalType": "Day", "intervalCount": {"_type": "PositiveNumber", "value": 1}}}'`,
290
+ );
291
+ await queryRunner.query(
292
+ `DROP INDEX "public"."IDX_35eb8923c8064a883954f7c969"`,
293
+ );
294
+ await queryRunner.query(
295
+ `DROP INDEX "public"."IDX_0c70c0ce5ed34cf8908da9e014"`,
296
+ );
297
+ await queryRunner.query(
298
+ `DROP TABLE "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy"`,
299
+ );
300
+ await queryRunner.query(
301
+ `DROP INDEX "public"."IDX_7cf428df61316a8df6b9607999"`,
302
+ );
303
+ await queryRunner.query(
304
+ `DROP INDEX "public"."IDX_6ab2bff0fe27125c20cc479178"`,
305
+ );
306
+ await queryRunner.query(
307
+ `DROP TABLE "ServiceLevelObjectiveDownMonitorStatus"`,
308
+ );
309
+ await queryRunner.query(
310
+ `DROP INDEX "public"."IDX_a57eae6948f19b1e97523f9a8e"`,
311
+ );
312
+ await queryRunner.query(
313
+ `DROP INDEX "public"."IDX_a14890fd4cec9286468d001b22"`,
314
+ );
315
+ await queryRunner.query(`DROP TABLE "ServiceLevelObjectiveMonitor"`);
316
+ await queryRunner.query(
317
+ `DROP INDEX "public"."IDX_7c9650fa5b4ba5a7e577b876e5"`,
318
+ );
319
+ await queryRunner.query(
320
+ `DROP INDEX "public"."IDX_09469911554f1093b70999cc71"`,
321
+ );
322
+ await queryRunner.query(`DROP TABLE "ServiceLevelObjectiveLabel"`);
323
+ await queryRunner.query(
324
+ `DROP INDEX "public"."IDX_53e4404ae86c9de055cf1dee02"`,
325
+ );
326
+ await queryRunner.query(
327
+ `DROP INDEX "public"."IDX_503bb58cee6939ee45fc94f81b"`,
328
+ );
329
+ await queryRunner.query(
330
+ `DROP INDEX "public"."IDX_d338133d1cae58344006229440"`,
331
+ );
332
+ await queryRunner.query(
333
+ `DROP INDEX "public"."IDX_e1f9a4a97270d3450a42eb12a9"`,
334
+ );
335
+ await queryRunner.query(
336
+ `DROP INDEX "public"."IDX_efd3d0d3702596f5f17a1dee59"`,
337
+ );
338
+ await queryRunner.query(`DROP TABLE "ServiceLevelObjectiveOwnerTeam"`);
339
+ await queryRunner.query(
340
+ `DROP INDEX "public"."IDX_be7506765e639c732a90783147"`,
341
+ );
342
+ await queryRunner.query(
343
+ `DROP INDEX "public"."IDX_bef5294b53ff9e9ca4f5a92e3a"`,
344
+ );
345
+ await queryRunner.query(
346
+ `DROP INDEX "public"."IDX_4994cd04a5e4794b3d61b2e6e5"`,
347
+ );
348
+ await queryRunner.query(
349
+ `DROP INDEX "public"."IDX_02047e9714492b3f1c8e91b999"`,
350
+ );
351
+ await queryRunner.query(
352
+ `DROP INDEX "public"."IDX_32e90aa7284ccedb801fe256f1"`,
353
+ );
354
+ await queryRunner.query(`DROP TABLE "ServiceLevelObjectiveOwnerUser"`);
355
+ await queryRunner.query(
356
+ `DROP INDEX "public"."IDX_f790e04533d2b79a7a27f4524b"`,
357
+ );
358
+ await queryRunner.query(
359
+ `DROP INDEX "public"."IDX_35186fe6e401e695917e8b361d"`,
360
+ );
361
+ await queryRunner.query(
362
+ `DROP INDEX "public"."IDX_d499f2cab7c1c41dc87a1c6156"`,
363
+ );
364
+ await queryRunner.query(
365
+ `DROP INDEX "public"."IDX_981fd1395a10cad88ffa35ebfd"`,
366
+ );
367
+ await queryRunner.query(
368
+ `DROP INDEX "public"."IDX_7569331f78148b6e53867aa5f7"`,
369
+ );
370
+ await queryRunner.query(`DROP TABLE "ServiceLevelObjectiveBurnRateRule"`);
371
+ await queryRunner.query(
372
+ `DROP INDEX "public"."IDX_0c55b55b9cc6777e482730080b"`,
373
+ );
374
+ await queryRunner.query(
375
+ `DROP INDEX "public"."IDX_9ae72bfe937fb3a52bea2009d1"`,
376
+ );
377
+ await queryRunner.query(
378
+ `DROP INDEX "public"."IDX_3a18ae1afc837908246d716ffd"`,
379
+ );
380
+ await queryRunner.query(
381
+ `DROP INDEX "public"."IDX_ba02350ab59adf11ab31bfba09"`,
382
+ );
383
+ await queryRunner.query(
384
+ `DROP INDEX "public"."IDX_0529301be36c9c0224f721e4c3"`,
385
+ );
386
+ await queryRunner.query(
387
+ `DROP INDEX "public"."IDX_c46e7cd584085573c357955389"`,
388
+ );
389
+ await queryRunner.query(`DROP TABLE "ServiceLevelObjective"`);
390
+ }
391
+ }
@@ -0,0 +1,30 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ export class MigrationName1785066759532 implements MigrationInterface {
4
+ public name = "MigrationName1785066759532";
5
+
6
+ public async up(queryRunner: QueryRunner): Promise<void> {
7
+ /*
8
+ * 1784200000000 added these two as `text`, but the entity declares them
9
+ * ColumnType.LongText, which maps to `varchar`. The generator wants to
10
+ * DROP and re-ADD the columns; an in-place TYPE change reaches the same
11
+ * schema without discarding the SNMP v3 credentials already stored on
12
+ * existing discovery scans.
13
+ */
14
+ await queryRunner.query(
15
+ `ALTER TABLE "NetworkDeviceDiscoveryScan" ALTER COLUMN "snmpV3AuthKey" TYPE character varying`,
16
+ );
17
+ await queryRunner.query(
18
+ `ALTER TABLE "NetworkDeviceDiscoveryScan" ALTER COLUMN "snmpV3PrivKey" TYPE character varying`,
19
+ );
20
+ }
21
+
22
+ public async down(queryRunner: QueryRunner): Promise<void> {
23
+ await queryRunner.query(
24
+ `ALTER TABLE "NetworkDeviceDiscoveryScan" ALTER COLUMN "snmpV3PrivKey" TYPE text`,
25
+ );
26
+ await queryRunner.query(
27
+ `ALTER TABLE "NetworkDeviceDiscoveryScan" ALTER COLUMN "snmpV3AuthKey" TYPE text`,
28
+ );
29
+ }
30
+ }
@@ -464,6 +464,12 @@ import { AddMarketingConversionTable1784298000000 } from "./1784298000000-AddMar
464
464
  import { AddExceptionTriageAndPrivacyColumns1784640000000 } from "./1784640000000-AddExceptionTriageAndPrivacyColumns";
465
465
  import { AddInstanceVersionAndLatestReleaseColumns1784659816363 } from "./1784659816363-AddInstanceVersionAndLatestReleaseColumns";
466
466
  import { AddEnterpriseLicenseEvaluationColumns1784705487674 } from "./1784705487674-AddEnterpriseLicenseEvaluationColumns";
467
+ import { AddNetworkSiteHierarchyAndEndpoints1784757142154 } from "./1784757142154-AddNetworkSiteHierarchyAndEndpoints";
468
+ import { AddNetworkSiteAlerting1784897317860 } from "./1784897317860-AddNetworkSiteAlerting";
469
+ import { AddNetworkDevicePollingColumns1784970388777 } from "./1784970388777-AddNetworkDevicePollingColumns";
470
+ import { AddNetworkSiteTypeTable1784986826214 } from "./1784986826214-AddNetworkSiteTypeTable";
471
+ import { AddServiceLevelObjective1784987015619 } from "./1784987015619-AddServiceLevelObjective";
472
+ import { MigrationName1785066759532 } from "./1785066759532-MigrationName";
467
473
 
468
474
  export default [
469
475
  InitialMigration,
@@ -932,4 +938,10 @@ export default [
932
938
  AddExceptionTriageAndPrivacyColumns1784640000000,
933
939
  AddInstanceVersionAndLatestReleaseColumns1784659816363,
934
940
  AddEnterpriseLicenseEvaluationColumns1784705487674,
941
+ AddNetworkSiteHierarchyAndEndpoints1784757142154,
942
+ AddNetworkSiteAlerting1784897317860,
943
+ AddNetworkDevicePollingColumns1784970388777,
944
+ AddNetworkSiteTypeTable1784986826214,
945
+ AddServiceLevelObjective1784987015619,
946
+ MigrationName1785066759532,
935
947
  ];
@@ -413,15 +413,23 @@ export default class AnalyticsDatabaseService<
413
413
  const resultInJSON: ResponseJSON<JSONObject> =
414
414
  await dbResult.json<JSONObject>();
415
415
 
416
- if (
417
- resultInJSON.data &&
418
- resultInJSON.data[0] &&
419
- resultInJSON.data[0]["count"] &&
420
- typeof resultInJSON.data[0]["count"] === "string"
421
- ) {
422
- countPositive = new PositiveNumber(
423
- resultInJSON.data[0]["count"] as string,
424
- );
416
+ /*
417
+ * count() is a UInt64, and whether it arrives as a JSON string or a
418
+ * JSON number depends on the server's
419
+ * output_format_json_quote_64bit_integers setting: ClickHouse
420
+ * quoted 64-bit integers by default until 25.x flipped the default
421
+ * to 0 (numbers). Accept both — a string-only check silently read
422
+ * every count as 0 on modern servers, which (among other things)
423
+ * meant telemetry monitors' Log/Span/Exception counts never crossed
424
+ * their criteria thresholds.
425
+ */
426
+ const rawCount: unknown =
427
+ resultInJSON.data && resultInJSON.data[0]
428
+ ? resultInJSON.data[0]["count"]
429
+ : undefined;
430
+
431
+ if (typeof rawCount === "string" || typeof rawCount === "number") {
432
+ countPositive = new PositiveNumber(rawCount);
425
433
  }
426
434
  } catch {
427
435
  /*
@@ -1296,8 +1304,16 @@ export default class AnalyticsDatabaseService<
1296
1304
  const select: { statement: Statement; columns: Array<string> } =
1297
1305
  this.statementGenerator.toAggregateSelectStatement(aggregateBy);
1298
1306
 
1307
+ /*
1308
+ * The aggregate SELECT aliases expressions to real column names
1309
+ * (`sum(col) as col`, and `min(ts) as ts` under Total), so the WHERE
1310
+ * must table-qualify its column references — unqualified ones would
1311
+ * resolve to those aliases (ILLEGAL_AGGREGATION under Total; bucket-
1312
+ * snapped time filters otherwise). See toWhereStatement.
1313
+ */
1299
1314
  const whereStatement: Statement = this.statementGenerator.toWhereStatement(
1300
1315
  aggregateBy.query,
1316
+ { tableAlias: this.model.tableName },
1301
1317
  );
1302
1318
 
1303
1319
  const sortStatement: Statement = this.statementGenerator.toSortStatement(
@@ -44,6 +44,12 @@ import NetworkDeviceOwnerRuleService from "./NetworkDeviceOwnerRuleService";
44
44
  import NetworkDeviceLabelRuleService from "./NetworkDeviceLabelRuleService";
45
45
  import NetworkDeviceDiscoveryScanService from "./NetworkDeviceDiscoveryScanService";
46
46
  import NetworkInterfaceService from "./NetworkInterfaceService";
47
+ import NetworkSiteService from "./NetworkSiteService";
48
+ import NetworkSiteTypeService from "./NetworkSiteTypeService";
49
+ import NetworkEndpointService from "./NetworkEndpointService";
50
+ import NetworkSiteStatusTimelineService from "./NetworkSiteStatusTimelineService";
51
+ import NetworkSiteLinkService from "./NetworkSiteLinkService";
52
+ import NetworkSiteAssignmentRuleService from "./NetworkSiteAssignmentRuleService";
47
53
  import PodmanHostService from "./PodmanHostService";
48
54
  import ProxmoxClusterService from "./ProxmoxClusterService";
49
55
  import DockerSwarmClusterService from "./DockerSwarmClusterService";
@@ -201,6 +207,7 @@ import TelemetryExceptionService from "./TelemetryExceptionService";
201
207
  import TelemetryEntityService from "./TelemetryEntityService";
202
208
  import TelemetryEntityRelationshipService from "./TelemetryEntityRelationshipService";
203
209
  import ExceptionInstanceService from "./ExceptionInstanceService";
210
+ import KubernetesCostAllocationService from "./KubernetesCostAllocationService";
204
211
  import ScheduledMaintenanceTemplateService from "./ScheduledMaintenanceTemplateService";
205
212
  import ScheduledMaintenanceTemplateOwnerTeamService from "./ScheduledMaintenanceTemplateOwnerTeamService";
206
213
  import ScheduledMaintenanceTemplateOwnerUserService from "./ScheduledMaintenanceTemplateOwnerUserService";
@@ -238,6 +245,11 @@ import IncidentEpisodePublicNoteService from "./IncidentEpisodePublicNoteService
238
245
  import AlertGroupingRuleService from "./AlertGroupingRuleService";
239
246
  import IncidentSlaRuleService from "./IncidentSlaRuleService";
240
247
  import IncidentSlaService from "./IncidentSlaService";
248
+ import ServiceLevelObjectiveService from "./ServiceLevelObjectiveService";
249
+ import ServiceLevelObjectiveBurnRateRuleService from "./ServiceLevelObjectiveBurnRateRuleService";
250
+ import ServiceLevelObjectiveOwnerUserService from "./ServiceLevelObjectiveOwnerUserService";
251
+ import ServiceLevelObjectiveOwnerTeamService from "./ServiceLevelObjectiveOwnerTeamService";
252
+ import SloHistoryService from "./SloHistoryService";
241
253
  import IncidentReminderRuleService from "./IncidentReminderRuleService";
242
254
  import AlertReminderRuleService from "./AlertReminderRuleService";
243
255
  import ScheduledMaintenanceReminderRuleService from "./ScheduledMaintenanceReminderRuleService";
@@ -322,6 +334,12 @@ const services: Array<BaseService> = [
322
334
  NetworkDeviceLabelRuleService,
323
335
  NetworkDeviceDiscoveryScanService,
324
336
  NetworkInterfaceService,
337
+ NetworkSiteService,
338
+ NetworkSiteTypeService,
339
+ NetworkEndpointService,
340
+ NetworkSiteStatusTimelineService,
341
+ NetworkSiteLinkService,
342
+ NetworkSiteAssignmentRuleService,
325
343
  PodmanHostService,
326
344
  ProxmoxClusterService,
327
345
  DockerSwarmClusterService,
@@ -506,6 +524,10 @@ const services: Array<BaseService> = [
506
524
  AlertGroupingRuleService,
507
525
  IncidentSlaRuleService,
508
526
  IncidentSlaService,
527
+ ServiceLevelObjectiveService,
528
+ ServiceLevelObjectiveBurnRateRuleService,
529
+ ServiceLevelObjectiveOwnerUserService,
530
+ ServiceLevelObjectiveOwnerTeamService,
509
531
  IncidentReminderRuleService,
510
532
  AlertReminderRuleService,
511
533
  ScheduledMaintenanceReminderRuleService,
@@ -531,6 +553,7 @@ export const AnalyticsServices: Array<
531
553
  SpanService,
532
554
  MetricService,
533
555
  MutableMetricService,
556
+ SloHistoryService,
534
557
  /*
535
558
  * Materialized-view target tables. The auto-create flow runs
536
559
  * `CREATE TABLE IF NOT EXISTS` for these, idempotent with the legacy
@@ -543,6 +566,7 @@ export const AnalyticsServices: Array<
543
566
  MetricItemAggMV1mByContainerService,
544
567
  MetricBaselineService,
545
568
  ExceptionInstanceService,
569
+ KubernetesCostAllocationService,
546
570
  MonitorLogService,
547
571
  NetworkFlowService,
548
572
  ProfileService,
@@ -0,0 +1,14 @@
1
+ import ClickhouseDatabase from "../Infrastructure/ClickhouseDatabase";
2
+ import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
3
+ import KubernetesCostAllocation from "../../Models/AnalyticsModels/KubernetesCostAllocation";
4
+
5
+ export class KubernetesCostAllocationService extends AnalyticsDatabaseService<KubernetesCostAllocation> {
6
+ public constructor(clickhouseDatabase?: ClickhouseDatabase | undefined) {
7
+ super({
8
+ modelType: KubernetesCostAllocation,
9
+ database: clickhouseDatabase,
10
+ });
11
+ }
12
+ }
13
+
14
+ export default new KubernetesCostAllocationService();
@@ -1429,8 +1429,18 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
1429
1429
  }
1430
1430
  }
1431
1431
 
1432
+ /*
1433
+ * The SELECT below aliases aggregates to real column names
1434
+ * (`<agg> as value`, `min(time) as time` under Total). In the
1435
+ * non-subquery form the WHERE sits at the same level, so its column
1436
+ * references must be table-qualified or ClickHouse resolves them to
1437
+ * those aliases (ILLEGAL_AGGREGATION under Total). Both forms read
1438
+ * FROM this model's table, so the table name is a valid qualifier
1439
+ * in either.
1440
+ */
1432
1441
  const whereStatement: Statement = this.statementGenerator.toWhereStatement(
1433
1442
  aggregateBy.query,
1443
+ { tableAlias: this.model.tableName },
1434
1444
  );
1435
1445
  const sortStatement: Statement = this.statementGenerator.toSortStatement(
1436
1446
  aggregateBy.sort!,
@@ -1636,8 +1646,17 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
1636
1646
  this.statementGenerator.toWhereStatement(
1637
1647
  this.getMutableMetricInnerQuery(aggregateBy.query),
1638
1648
  );
1649
+ /*
1650
+ * The outer SELECT aliases aggregates to real column names
1651
+ * (`<agg> as value`, `min(time) as time` under Total) at the same
1652
+ * level as this WHERE, so its column references must be qualified
1653
+ * with the dedup subquery's alias — unqualified ones would resolve
1654
+ * to those aliases (ILLEGAL_AGGREGATION under Total).
1655
+ */
1639
1656
  const outerWhereStatement: Statement =
1640
- this.statementGenerator.toWhereStatement(aggregateBy.query);
1657
+ this.statementGenerator.toWhereStatement(aggregateBy.query, {
1658
+ tableAlias: "mutable_metric_latest",
1659
+ });
1641
1660
  const sortStatement: Statement = this.statementGenerator.toSortStatement(
1642
1661
  aggregateBy.sort!,
1643
1662
  );
@@ -1703,7 +1722,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
1703
1722
  primaryEntityId,
1704
1723
  primaryEntityType,
1705
1724
  metricPointId
1706
- )
1725
+ ) AS mutable_metric_latest
1707
1726
  WHERE isDeleted = false
1708
1727
  `,
1709
1728
  )