@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,769 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import AlertSeverity from "./AlertSeverity";
11
+ import OnCallDutyPolicy from "./OnCallDutyPolicy";
12
+ import Project from "./Project";
13
+ import ServiceLevelObjective from "./ServiceLevelObjective";
14
+ import User from "./User";
15
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
16
+ import Route from "../../Types/API/Route";
17
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
18
+ import OwnedThrough from "../../Types/Database/AccessControl/OwnedThrough";
19
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
20
+ import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
21
+ import ColumnLength from "../../Types/Database/ColumnLength";
22
+ import ColumnType from "../../Types/Database/ColumnType";
23
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
24
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
25
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
26
+ import TableColumn from "../../Types/Database/TableColumn";
27
+ import TableColumnType from "../../Types/Database/TableColumnType";
28
+ import TableMetadata from "../../Types/Database/TableMetadata";
29
+ import TenantColumn from "../../Types/Database/TenantColumn";
30
+ import IconProp from "../../Types/Icon/IconProp";
31
+ import ObjectID from "../../Types/ObjectID";
32
+ import Permission from "../../Types/Permission";
33
+ import { Column, Entity, Index, JoinColumn, JoinTable, ManyToMany, ManyToOne, } from "typeorm";
34
+ /*
35
+ * Postgres returns `decimal` columns as strings; convert back to numbers so
36
+ * callers see floats. Mirrors the decimal transformer used by
37
+ * NetworkInterface.
38
+ */
39
+ const decimalTransformer = {
40
+ to: (value) => {
41
+ if (value === null || value === undefined) {
42
+ return null;
43
+ }
44
+ return value;
45
+ },
46
+ from: (value) => {
47
+ if (value === null || value === undefined) {
48
+ return null;
49
+ }
50
+ if (typeof value === "number") {
51
+ return value;
52
+ }
53
+ const parsed = parseFloat(value);
54
+ return isNaN(parsed) ? null : parsed;
55
+ },
56
+ };
57
+ let ServiceLevelObjectiveBurnRateRule = class ServiceLevelObjectiveBurnRateRule extends BaseModel {
58
+ constructor() {
59
+ super(...arguments);
60
+ this.project = undefined;
61
+ this.projectId = undefined;
62
+ // Service Level Objective Relation
63
+ this.serviceLevelObjective = undefined;
64
+ this.serviceLevelObjectiveId = undefined;
65
+ this.name = undefined;
66
+ this.isEnabled = undefined;
67
+ // Burn Rate Configuration
68
+ this.burnRateThreshold = undefined;
69
+ this.longWindowInMinutes = undefined;
70
+ this.shortWindowInMinutes = undefined;
71
+ this.minimumSampleCount = undefined;
72
+ this.refireSuppressionMinutes = undefined;
73
+ // Alert Configuration
74
+ this.alertSeverity = undefined;
75
+ this.alertSeverityId = undefined;
76
+ this.onCallDutyPolicies = undefined;
77
+ /*
78
+ * Worker-owned state. These columns are set by the SLO evaluation worker
79
+ * and cannot be created or updated through the API.
80
+ */
81
+ this.lastAlertCreatedAt = undefined;
82
+ this.lastAlertResolvedAt = undefined;
83
+ // Created By / Deleted By User Relations
84
+ this.createdByUser = undefined;
85
+ this.createdByUserId = undefined;
86
+ this.deletedByUser = undefined;
87
+ this.deletedByUserId = undefined;
88
+ }
89
+ };
90
+ __decorate([
91
+ ColumnAccessControl({
92
+ create: [
93
+ Permission.ProjectOwner,
94
+ Permission.ProjectAdmin,
95
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
96
+ ],
97
+ read: [
98
+ Permission.ProjectOwner,
99
+ Permission.ProjectAdmin,
100
+ Permission.ProjectMember,
101
+ Permission.Viewer,
102
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
103
+ ],
104
+ update: [],
105
+ }),
106
+ TableColumn({
107
+ manyToOneRelationColumn: "projectId",
108
+ type: TableColumnType.Entity,
109
+ modelType: Project,
110
+ title: "Project",
111
+ description: "Relation to Project Resource in which this object belongs",
112
+ }),
113
+ ManyToOne(() => {
114
+ return Project;
115
+ }, {
116
+ eager: false,
117
+ nullable: true,
118
+ onDelete: "CASCADE",
119
+ orphanedRowAction: "nullify",
120
+ }),
121
+ JoinColumn({ name: "projectId" }),
122
+ __metadata("design:type", Project)
123
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "project", void 0);
124
+ __decorate([
125
+ ColumnAccessControl({
126
+ create: [
127
+ Permission.ProjectOwner,
128
+ Permission.ProjectAdmin,
129
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
130
+ ],
131
+ read: [
132
+ Permission.ProjectOwner,
133
+ Permission.ProjectAdmin,
134
+ Permission.ProjectMember,
135
+ Permission.Viewer,
136
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
137
+ ],
138
+ update: [],
139
+ }),
140
+ Index(),
141
+ TableColumn({
142
+ type: TableColumnType.ObjectID,
143
+ required: true,
144
+ canReadOnRelationQuery: true,
145
+ title: "Project ID",
146
+ description: "ID of your OneUptime Project in which this object belongs",
147
+ }),
148
+ Column({
149
+ type: ColumnType.ObjectID,
150
+ nullable: false,
151
+ transformer: ObjectID.getDatabaseTransformer(),
152
+ }),
153
+ __metadata("design:type", ObjectID)
154
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "projectId", void 0);
155
+ __decorate([
156
+ ColumnAccessControl({
157
+ create: [
158
+ Permission.ProjectOwner,
159
+ Permission.ProjectAdmin,
160
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
161
+ ],
162
+ read: [
163
+ Permission.ProjectOwner,
164
+ Permission.ProjectAdmin,
165
+ Permission.ProjectMember,
166
+ Permission.Viewer,
167
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
168
+ ],
169
+ update: [],
170
+ }),
171
+ TableColumn({
172
+ manyToOneRelationColumn: "serviceLevelObjectiveId",
173
+ type: TableColumnType.Entity,
174
+ modelType: ServiceLevelObjective,
175
+ title: "Service Level Objective",
176
+ description: "The Service Level Objective this burn rate rule belongs to",
177
+ }),
178
+ ManyToOne(() => {
179
+ return ServiceLevelObjective;
180
+ }, {
181
+ eager: false,
182
+ nullable: false,
183
+ onDelete: "CASCADE",
184
+ orphanedRowAction: "nullify",
185
+ }),
186
+ JoinColumn({ name: "serviceLevelObjectiveId" }),
187
+ __metadata("design:type", ServiceLevelObjective)
188
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "serviceLevelObjective", void 0);
189
+ __decorate([
190
+ ColumnAccessControl({
191
+ create: [
192
+ Permission.ProjectOwner,
193
+ Permission.ProjectAdmin,
194
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
195
+ ],
196
+ read: [
197
+ Permission.ProjectOwner,
198
+ Permission.ProjectAdmin,
199
+ Permission.ProjectMember,
200
+ Permission.Viewer,
201
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
202
+ ],
203
+ update: [],
204
+ }),
205
+ Index(),
206
+ TableColumn({
207
+ type: TableColumnType.ObjectID,
208
+ required: true,
209
+ canReadOnRelationQuery: true,
210
+ title: "Service Level Objective ID",
211
+ description: "ID of the Service Level Objective this burn rate rule belongs to",
212
+ }),
213
+ Column({
214
+ type: ColumnType.ObjectID,
215
+ nullable: false,
216
+ transformer: ObjectID.getDatabaseTransformer(),
217
+ }),
218
+ __metadata("design:type", ObjectID)
219
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "serviceLevelObjectiveId", void 0);
220
+ __decorate([
221
+ ColumnAccessControl({
222
+ create: [
223
+ Permission.ProjectOwner,
224
+ Permission.ProjectAdmin,
225
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
226
+ ],
227
+ read: [
228
+ Permission.ProjectOwner,
229
+ Permission.ProjectAdmin,
230
+ Permission.ProjectMember,
231
+ Permission.Viewer,
232
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
233
+ ],
234
+ update: [
235
+ Permission.ProjectOwner,
236
+ Permission.ProjectAdmin,
237
+ Permission.EditServiceLevelObjectiveBurnRateRule,
238
+ ],
239
+ }),
240
+ Index(),
241
+ TableColumn({
242
+ required: true,
243
+ type: TableColumnType.ShortText,
244
+ canReadOnRelationQuery: true,
245
+ title: "Name",
246
+ description: "Name of this burn rate rule",
247
+ }),
248
+ Column({
249
+ nullable: false,
250
+ type: ColumnType.ShortText,
251
+ length: ColumnLength.ShortText,
252
+ }),
253
+ __metadata("design:type", String)
254
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "name", void 0);
255
+ __decorate([
256
+ ColumnAccessControl({
257
+ create: [
258
+ Permission.ProjectOwner,
259
+ Permission.ProjectAdmin,
260
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
261
+ ],
262
+ read: [
263
+ Permission.ProjectOwner,
264
+ Permission.ProjectAdmin,
265
+ Permission.ProjectMember,
266
+ Permission.Viewer,
267
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
268
+ ],
269
+ update: [
270
+ Permission.ProjectOwner,
271
+ Permission.ProjectAdmin,
272
+ Permission.EditServiceLevelObjectiveBurnRateRule,
273
+ ],
274
+ }),
275
+ Index(),
276
+ TableColumn({
277
+ required: true,
278
+ type: TableColumnType.Boolean,
279
+ title: "Is Enabled",
280
+ description: "Whether this burn rate rule is enabled",
281
+ defaultValue: true,
282
+ isDefaultValueColumn: true,
283
+ }),
284
+ Column({
285
+ type: ColumnType.Boolean,
286
+ nullable: false,
287
+ default: true,
288
+ }),
289
+ __metadata("design:type", Boolean)
290
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "isEnabled", void 0);
291
+ __decorate([
292
+ ColumnAccessControl({
293
+ create: [
294
+ Permission.ProjectOwner,
295
+ Permission.ProjectAdmin,
296
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
297
+ ],
298
+ read: [
299
+ Permission.ProjectOwner,
300
+ Permission.ProjectAdmin,
301
+ Permission.ProjectMember,
302
+ Permission.Viewer,
303
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
304
+ ],
305
+ update: [
306
+ Permission.ProjectOwner,
307
+ Permission.ProjectAdmin,
308
+ Permission.EditServiceLevelObjectiveBurnRateRule,
309
+ ],
310
+ }),
311
+ TableColumn({
312
+ required: true,
313
+ type: TableColumnType.Number,
314
+ canReadOnRelationQuery: true,
315
+ title: "Burn Rate Threshold",
316
+ description: "Alert when the burn rate in both the long and short windows is at or above this threshold (e.g. 14.4).",
317
+ }),
318
+ Column({
319
+ nullable: false,
320
+ type: ColumnType.Decimal,
321
+ transformer: decimalTransformer,
322
+ }),
323
+ __metadata("design:type", Number)
324
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "burnRateThreshold", void 0);
325
+ __decorate([
326
+ ColumnAccessControl({
327
+ create: [
328
+ Permission.ProjectOwner,
329
+ Permission.ProjectAdmin,
330
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
331
+ ],
332
+ read: [
333
+ Permission.ProjectOwner,
334
+ Permission.ProjectAdmin,
335
+ Permission.ProjectMember,
336
+ Permission.Viewer,
337
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
338
+ ],
339
+ update: [
340
+ Permission.ProjectOwner,
341
+ Permission.ProjectAdmin,
342
+ Permission.EditServiceLevelObjectiveBurnRateRule,
343
+ ],
344
+ }),
345
+ TableColumn({
346
+ required: true,
347
+ type: TableColumnType.Number,
348
+ title: "Long Window (Minutes)",
349
+ description: "Length of the long lookback window in minutes (e.g. 60). The alert fires when both windows exceed the threshold and resolves when the long window drops below it.",
350
+ }),
351
+ Column({
352
+ type: ColumnType.Number,
353
+ nullable: false,
354
+ }),
355
+ __metadata("design:type", Number)
356
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "longWindowInMinutes", void 0);
357
+ __decorate([
358
+ ColumnAccessControl({
359
+ create: [
360
+ Permission.ProjectOwner,
361
+ Permission.ProjectAdmin,
362
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
363
+ ],
364
+ read: [
365
+ Permission.ProjectOwner,
366
+ Permission.ProjectAdmin,
367
+ Permission.ProjectMember,
368
+ Permission.Viewer,
369
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
370
+ ],
371
+ update: [
372
+ Permission.ProjectOwner,
373
+ Permission.ProjectAdmin,
374
+ Permission.EditServiceLevelObjectiveBurnRateRule,
375
+ ],
376
+ }),
377
+ TableColumn({
378
+ required: true,
379
+ type: TableColumnType.Number,
380
+ title: "Short Window (Minutes)",
381
+ description: "Length of the short lookback window in minutes (e.g. 5). Guards against alerting on burn that has already stopped.",
382
+ }),
383
+ Column({
384
+ type: ColumnType.Number,
385
+ nullable: false,
386
+ }),
387
+ __metadata("design:type", Number)
388
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "shortWindowInMinutes", void 0);
389
+ __decorate([
390
+ ColumnAccessControl({
391
+ create: [
392
+ Permission.ProjectOwner,
393
+ Permission.ProjectAdmin,
394
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
395
+ ],
396
+ read: [
397
+ Permission.ProjectOwner,
398
+ Permission.ProjectAdmin,
399
+ Permission.ProjectMember,
400
+ Permission.Viewer,
401
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
402
+ ],
403
+ update: [
404
+ Permission.ProjectOwner,
405
+ Permission.ProjectAdmin,
406
+ Permission.EditServiceLevelObjectiveBurnRateRule,
407
+ ],
408
+ }),
409
+ TableColumn({
410
+ required: false,
411
+ type: TableColumnType.Number,
412
+ title: "Minimum Sample Count",
413
+ description: "For event-based SLIs only: skip this rule when the long window has fewer than this many total events. Prevents noisy alerts on low traffic.",
414
+ }),
415
+ Column({
416
+ type: ColumnType.Number,
417
+ nullable: true,
418
+ }),
419
+ __metadata("design:type", Number)
420
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "minimumSampleCount", void 0);
421
+ __decorate([
422
+ ColumnAccessControl({
423
+ create: [
424
+ Permission.ProjectOwner,
425
+ Permission.ProjectAdmin,
426
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
427
+ ],
428
+ read: [
429
+ Permission.ProjectOwner,
430
+ Permission.ProjectAdmin,
431
+ Permission.ProjectMember,
432
+ Permission.Viewer,
433
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
434
+ ],
435
+ update: [
436
+ Permission.ProjectOwner,
437
+ Permission.ProjectAdmin,
438
+ Permission.EditServiceLevelObjectiveBurnRateRule,
439
+ ],
440
+ }),
441
+ TableColumn({
442
+ required: false,
443
+ type: TableColumnType.Number,
444
+ title: "Re-fire Suppression (Minutes)",
445
+ description: "Minimum number of minutes after an alert resolves before this rule can fire again. Defaults to the long window length when not set.",
446
+ }),
447
+ Column({
448
+ type: ColumnType.Number,
449
+ nullable: true,
450
+ }),
451
+ __metadata("design:type", Number)
452
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "refireSuppressionMinutes", void 0);
453
+ __decorate([
454
+ ColumnAccessControl({
455
+ create: [
456
+ Permission.ProjectOwner,
457
+ Permission.ProjectAdmin,
458
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
459
+ ],
460
+ read: [
461
+ Permission.ProjectOwner,
462
+ Permission.ProjectAdmin,
463
+ Permission.ProjectMember,
464
+ Permission.Viewer,
465
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
466
+ ],
467
+ update: [
468
+ Permission.ProjectOwner,
469
+ Permission.ProjectAdmin,
470
+ Permission.EditServiceLevelObjectiveBurnRateRule,
471
+ ],
472
+ }),
473
+ TableColumn({
474
+ manyToOneRelationColumn: "alertSeverityId",
475
+ type: TableColumnType.Entity,
476
+ modelType: AlertSeverity,
477
+ title: "Alert Severity",
478
+ description: "Severity of the alert created when this burn rate rule fires.",
479
+ }),
480
+ ManyToOne(() => {
481
+ return AlertSeverity;
482
+ }, {
483
+ eager: false,
484
+ nullable: true,
485
+ onDelete: "SET NULL",
486
+ orphanedRowAction: "nullify",
487
+ }),
488
+ JoinColumn({ name: "alertSeverityId" }),
489
+ __metadata("design:type", AlertSeverity)
490
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "alertSeverity", void 0);
491
+ __decorate([
492
+ ColumnAccessControl({
493
+ create: [
494
+ Permission.ProjectOwner,
495
+ Permission.ProjectAdmin,
496
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
497
+ ],
498
+ read: [
499
+ Permission.ProjectOwner,
500
+ Permission.ProjectAdmin,
501
+ Permission.ProjectMember,
502
+ Permission.Viewer,
503
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
504
+ ],
505
+ update: [
506
+ Permission.ProjectOwner,
507
+ Permission.ProjectAdmin,
508
+ Permission.EditServiceLevelObjectiveBurnRateRule,
509
+ ],
510
+ }),
511
+ Index(),
512
+ TableColumn({
513
+ type: TableColumnType.ObjectID,
514
+ required: false,
515
+ title: "Alert Severity ID",
516
+ description: "ID of the Alert Severity of the alert created when this burn rate rule fires",
517
+ }),
518
+ Column({
519
+ type: ColumnType.ObjectID,
520
+ nullable: true,
521
+ transformer: ObjectID.getDatabaseTransformer(),
522
+ }),
523
+ __metadata("design:type", ObjectID)
524
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "alertSeverityId", void 0);
525
+ __decorate([
526
+ ColumnAccessControl({
527
+ create: [
528
+ Permission.ProjectOwner,
529
+ Permission.ProjectAdmin,
530
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
531
+ ],
532
+ read: [
533
+ Permission.ProjectOwner,
534
+ Permission.ProjectAdmin,
535
+ Permission.ProjectMember,
536
+ Permission.Viewer,
537
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
538
+ ],
539
+ update: [
540
+ Permission.ProjectOwner,
541
+ Permission.ProjectAdmin,
542
+ Permission.EditServiceLevelObjectiveBurnRateRule,
543
+ ],
544
+ }),
545
+ TableColumn({
546
+ required: false,
547
+ type: TableColumnType.EntityArray,
548
+ modelType: OnCallDutyPolicy,
549
+ title: "On-Call Duty Policies",
550
+ description: "On-call duty policies attached to alerts created by this burn rate rule.",
551
+ }),
552
+ ManyToMany(() => {
553
+ return OnCallDutyPolicy;
554
+ }, { eager: false }),
555
+ JoinTable({
556
+ name: "ServiceLevelObjectiveBurnRateRuleOnCallDutyPolicy",
557
+ inverseJoinColumn: {
558
+ name: "onCallDutyPolicyId",
559
+ referencedColumnName: "_id",
560
+ },
561
+ joinColumn: {
562
+ name: "serviceLevelObjectiveBurnRateRuleId",
563
+ referencedColumnName: "_id",
564
+ },
565
+ }),
566
+ __metadata("design:type", Array)
567
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "onCallDutyPolicies", void 0);
568
+ __decorate([
569
+ ColumnAccessControl({
570
+ create: [],
571
+ read: [
572
+ Permission.ProjectOwner,
573
+ Permission.ProjectAdmin,
574
+ Permission.ProjectMember,
575
+ Permission.Viewer,
576
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
577
+ ],
578
+ update: [],
579
+ }),
580
+ TableColumn({
581
+ type: TableColumnType.Date,
582
+ required: false,
583
+ title: "Last Alert Created At",
584
+ description: "The last time an alert was created by this burn rate rule. Computed by the worker.",
585
+ }),
586
+ Column({
587
+ type: ColumnType.Date,
588
+ nullable: true,
589
+ }),
590
+ __metadata("design:type", Date)
591
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "lastAlertCreatedAt", void 0);
592
+ __decorate([
593
+ ColumnAccessControl({
594
+ create: [],
595
+ read: [
596
+ Permission.ProjectOwner,
597
+ Permission.ProjectAdmin,
598
+ Permission.ProjectMember,
599
+ Permission.Viewer,
600
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
601
+ ],
602
+ update: [],
603
+ }),
604
+ TableColumn({
605
+ type: TableColumnType.Date,
606
+ required: false,
607
+ title: "Last Alert Resolved At",
608
+ description: "The last time an alert created by this burn rate rule was resolved. Computed by the worker.",
609
+ }),
610
+ Column({
611
+ type: ColumnType.Date,
612
+ nullable: true,
613
+ }),
614
+ __metadata("design:type", Date)
615
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "lastAlertResolvedAt", void 0);
616
+ __decorate([
617
+ ColumnAccessControl({
618
+ create: [
619
+ Permission.ProjectOwner,
620
+ Permission.ProjectAdmin,
621
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
622
+ ],
623
+ read: [
624
+ Permission.ProjectOwner,
625
+ Permission.ProjectAdmin,
626
+ Permission.ProjectMember,
627
+ Permission.Viewer,
628
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
629
+ ],
630
+ update: [],
631
+ }),
632
+ TableColumn({
633
+ manyToOneRelationColumn: "createdByUserId",
634
+ type: TableColumnType.Entity,
635
+ modelType: User,
636
+ title: "Created by User",
637
+ description: "Relation to User who created this object (if this object was created by a User)",
638
+ }),
639
+ ManyToOne(() => {
640
+ return User;
641
+ }, {
642
+ eager: false,
643
+ nullable: true,
644
+ onDelete: "SET NULL",
645
+ orphanedRowAction: "nullify",
646
+ }),
647
+ JoinColumn({ name: "createdByUserId" }),
648
+ __metadata("design:type", User)
649
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "createdByUser", void 0);
650
+ __decorate([
651
+ ColumnAccessControl({
652
+ create: [
653
+ Permission.ProjectOwner,
654
+ Permission.ProjectAdmin,
655
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
656
+ ],
657
+ read: [
658
+ Permission.ProjectOwner,
659
+ Permission.ProjectAdmin,
660
+ Permission.ProjectMember,
661
+ Permission.Viewer,
662
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
663
+ ],
664
+ update: [],
665
+ }),
666
+ TableColumn({
667
+ type: TableColumnType.ObjectID,
668
+ title: "Created by User ID",
669
+ description: "User ID who created this object (if this object was created by a User)",
670
+ }),
671
+ Column({
672
+ type: ColumnType.ObjectID,
673
+ nullable: true,
674
+ transformer: ObjectID.getDatabaseTransformer(),
675
+ }),
676
+ __metadata("design:type", ObjectID)
677
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "createdByUserId", void 0);
678
+ __decorate([
679
+ ColumnAccessControl({
680
+ create: [],
681
+ read: [],
682
+ update: [],
683
+ }),
684
+ TableColumn({
685
+ manyToOneRelationColumn: "deletedByUserId",
686
+ type: TableColumnType.Entity,
687
+ title: "Deleted by User",
688
+ modelType: User,
689
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
690
+ }),
691
+ ManyToOne(() => {
692
+ return User;
693
+ }, {
694
+ cascade: false,
695
+ eager: false,
696
+ nullable: true,
697
+ onDelete: "SET NULL",
698
+ orphanedRowAction: "nullify",
699
+ }),
700
+ JoinColumn({ name: "deletedByUserId" }),
701
+ __metadata("design:type", User)
702
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "deletedByUser", void 0);
703
+ __decorate([
704
+ ColumnAccessControl({
705
+ create: [],
706
+ read: [],
707
+ update: [],
708
+ }),
709
+ TableColumn({
710
+ type: TableColumnType.ObjectID,
711
+ title: "Deleted by User ID",
712
+ description: "User ID who deleted this object (if this object was deleted by a User)",
713
+ }),
714
+ Column({
715
+ type: ColumnType.ObjectID,
716
+ nullable: true,
717
+ transformer: ObjectID.getDatabaseTransformer(),
718
+ }),
719
+ __metadata("design:type", ObjectID)
720
+ ], ServiceLevelObjectiveBurnRateRule.prototype, "deletedByUserId", void 0);
721
+ ServiceLevelObjectiveBurnRateRule = __decorate([
722
+ EnableDocumentation(),
723
+ CanAccessIfCanReadOn("serviceLevelObjective"),
724
+ TenantColumn("projectId"),
725
+ TableAccessControl({
726
+ create: [
727
+ Permission.ProjectOwner,
728
+ Permission.ProjectAdmin,
729
+ Permission.CreateServiceLevelObjectiveBurnRateRule,
730
+ ],
731
+ read: [
732
+ Permission.ProjectOwner,
733
+ Permission.ProjectAdmin,
734
+ Permission.ProjectMember,
735
+ Permission.Viewer,
736
+ Permission.ReadServiceLevelObjectiveBurnRateRule,
737
+ ],
738
+ delete: [
739
+ Permission.ProjectOwner,
740
+ Permission.ProjectAdmin,
741
+ Permission.DeleteServiceLevelObjectiveBurnRateRule,
742
+ ],
743
+ update: [
744
+ Permission.ProjectOwner,
745
+ Permission.ProjectAdmin,
746
+ Permission.EditServiceLevelObjectiveBurnRateRule,
747
+ ],
748
+ }),
749
+ CrudApiEndpoint(new Route("/service-level-objective-burn-rate-rule")),
750
+ OwnedThrough("serviceLevelObjectiveId", ServiceLevelObjective),
751
+ Entity({
752
+ name: "ServiceLevelObjectiveBurnRateRule",
753
+ }),
754
+ EnableWorkflow({
755
+ create: true,
756
+ delete: true,
757
+ update: true,
758
+ read: true,
759
+ }),
760
+ TableMetadata({
761
+ tableName: "ServiceLevelObjectiveBurnRateRule",
762
+ singularName: "SLO Burn Rate Rule",
763
+ pluralName: "SLO Burn Rate Rules",
764
+ icon: IconProp.Fire,
765
+ tableDescription: "Configure multi-window burn rate rules that raise alerts when a Service Level Objective consumes its error budget too quickly",
766
+ })
767
+ ], ServiceLevelObjectiveBurnRateRule);
768
+ export default ServiceLevelObjectiveBurnRateRule;
769
+ //# sourceMappingURL=ServiceLevelObjectiveBurnRateRule.js.map