@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,1180 @@
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 MonitorStatus from "./MonitorStatus";
12
+ import NetworkSiteType from "./NetworkSiteType";
13
+ import Project from "./Project";
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 TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
19
+ import ColumnLength from "../../Types/Database/ColumnLength";
20
+ import ColumnType from "../../Types/Database/ColumnType";
21
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
22
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
23
+ import SlugifyColumn from "../../Types/Database/SlugifyColumn";
24
+ import TableColumn from "../../Types/Database/TableColumn";
25
+ import TableColumnType from "../../Types/Database/TableColumnType";
26
+ import TableMetadata from "../../Types/Database/TableMetadata";
27
+ import TenantColumn from "../../Types/Database/TenantColumn";
28
+ import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
29
+ import IconProp from "../../Types/Icon/IconProp";
30
+ import ObjectID from "../../Types/ObjectID";
31
+ import Permission from "../../Types/Permission";
32
+ import { Column, Entity, Index, JoinColumn, ManyToOne, } from "typeorm";
33
+ /*
34
+ * Postgres returns `decimal` columns as strings; convert back to numbers so
35
+ * callers see floats. Mirrors the decimal transformer used by
36
+ * NetworkInterface.
37
+ */
38
+ const decimalTransformer = {
39
+ to: (value) => {
40
+ if (value === null || value === undefined) {
41
+ return null;
42
+ }
43
+ return value;
44
+ },
45
+ from: (value) => {
46
+ if (value === null || value === undefined) {
47
+ return null;
48
+ }
49
+ if (typeof value === "number") {
50
+ return value;
51
+ }
52
+ const parsed = parseFloat(value);
53
+ return isNaN(parsed) ? null : parsed;
54
+ },
55
+ };
56
+ let NetworkSite = class NetworkSite extends BaseModel {
57
+ constructor() {
58
+ super(...arguments);
59
+ this.project = undefined;
60
+ this.projectId = undefined;
61
+ this.name = undefined;
62
+ this.slug = undefined;
63
+ this.description = undefined;
64
+ this.siteType = undefined;
65
+ this.networkSiteType = undefined;
66
+ this.networkSiteTypeId = undefined;
67
+ this.parentSite = undefined;
68
+ this.parentSiteId = undefined;
69
+ this.materializedPath = undefined;
70
+ this.depth = undefined;
71
+ this.address = undefined;
72
+ this.latitude = undefined;
73
+ this.longitude = undefined;
74
+ this.currentMonitorStatus = undefined;
75
+ this.currentMonitorStatusId = undefined;
76
+ this.lastRollupAt = undefined;
77
+ this.shouldAlertWhenUnhealthy = undefined;
78
+ this.alertSeverity = undefined;
79
+ this.alertSeverityId = undefined;
80
+ /*
81
+ * Server-managed: the open site-unhealthy alert, so recovery knows what
82
+ * to auto-resolve. Never user-writable.
83
+ */
84
+ this.currentActiveAlertId = undefined;
85
+ this.createdByUser = undefined;
86
+ this.createdByUserId = undefined;
87
+ this.deletedByUser = undefined;
88
+ this.deletedByUserId = undefined;
89
+ }
90
+ };
91
+ __decorate([
92
+ ColumnAccessControl({
93
+ create: [
94
+ Permission.ProjectOwner,
95
+ Permission.ProjectAdmin,
96
+ Permission.ProjectMember,
97
+ Permission.SettingsAdmin,
98
+ Permission.SettingsMember,
99
+ Permission.CreateNetworkSite,
100
+ ],
101
+ read: [
102
+ Permission.ProjectOwner,
103
+ Permission.ProjectAdmin,
104
+ Permission.ProjectMember,
105
+ Permission.Viewer,
106
+ Permission.SettingsAdmin,
107
+ Permission.SettingsMember,
108
+ Permission.SettingsViewer,
109
+ Permission.ReadNetworkSite,
110
+ ],
111
+ update: [],
112
+ }),
113
+ TableColumn({
114
+ manyToOneRelationColumn: "projectId",
115
+ type: TableColumnType.Entity,
116
+ modelType: Project,
117
+ title: "Project",
118
+ description: "Relation to Project Resource in which this object belongs",
119
+ }),
120
+ ManyToOne(() => {
121
+ return Project;
122
+ }, {
123
+ eager: false,
124
+ nullable: true,
125
+ onDelete: "CASCADE",
126
+ orphanedRowAction: "nullify",
127
+ }),
128
+ JoinColumn({ name: "projectId" }),
129
+ __metadata("design:type", Project)
130
+ ], NetworkSite.prototype, "project", void 0);
131
+ __decorate([
132
+ ColumnAccessControl({
133
+ create: [
134
+ Permission.ProjectOwner,
135
+ Permission.ProjectAdmin,
136
+ Permission.ProjectMember,
137
+ Permission.SettingsAdmin,
138
+ Permission.SettingsMember,
139
+ Permission.CreateNetworkSite,
140
+ ],
141
+ read: [
142
+ Permission.ProjectOwner,
143
+ Permission.ProjectAdmin,
144
+ Permission.ProjectMember,
145
+ Permission.Viewer,
146
+ Permission.SettingsAdmin,
147
+ Permission.SettingsMember,
148
+ Permission.SettingsViewer,
149
+ Permission.ReadNetworkSite,
150
+ ],
151
+ update: [],
152
+ }),
153
+ Index(),
154
+ TableColumn({
155
+ type: TableColumnType.ObjectID,
156
+ required: true,
157
+ canReadOnRelationQuery: true,
158
+ title: "Project ID",
159
+ description: "ID of your OneUptime Project in which this object belongs",
160
+ }),
161
+ Column({
162
+ type: ColumnType.ObjectID,
163
+ nullable: false,
164
+ transformer: ObjectID.getDatabaseTransformer(),
165
+ }),
166
+ __metadata("design:type", ObjectID)
167
+ ], NetworkSite.prototype, "projectId", void 0);
168
+ __decorate([
169
+ ColumnAccessControl({
170
+ create: [
171
+ Permission.ProjectOwner,
172
+ Permission.ProjectAdmin,
173
+ Permission.ProjectMember,
174
+ Permission.SettingsAdmin,
175
+ Permission.SettingsMember,
176
+ Permission.CreateNetworkSite,
177
+ ],
178
+ read: [
179
+ Permission.ProjectOwner,
180
+ Permission.ProjectAdmin,
181
+ Permission.ProjectMember,
182
+ Permission.Viewer,
183
+ Permission.SettingsAdmin,
184
+ Permission.SettingsMember,
185
+ Permission.SettingsViewer,
186
+ Permission.ReadNetworkSite,
187
+ ],
188
+ update: [
189
+ Permission.ProjectOwner,
190
+ Permission.ProjectAdmin,
191
+ Permission.ProjectMember,
192
+ Permission.SettingsAdmin,
193
+ Permission.SettingsMember,
194
+ Permission.EditNetworkSite,
195
+ ],
196
+ }),
197
+ TableColumn({
198
+ required: true,
199
+ type: TableColumnType.ShortText,
200
+ canReadOnRelationQuery: true,
201
+ title: "Name",
202
+ description: "Friendly name for this network site",
203
+ example: "Unit 1042 - Springfield",
204
+ }),
205
+ Column({
206
+ nullable: false,
207
+ type: ColumnType.ShortText,
208
+ length: ColumnLength.ShortText,
209
+ }),
210
+ UniqueColumnBy("projectId"),
211
+ __metadata("design:type", String)
212
+ ], NetworkSite.prototype, "name", void 0);
213
+ __decorate([
214
+ ColumnAccessControl({
215
+ create: [],
216
+ read: [
217
+ Permission.ProjectOwner,
218
+ Permission.ProjectAdmin,
219
+ Permission.ProjectMember,
220
+ Permission.Viewer,
221
+ Permission.SettingsAdmin,
222
+ Permission.SettingsMember,
223
+ Permission.SettingsViewer,
224
+ Permission.ReadNetworkSite,
225
+ ],
226
+ update: [],
227
+ }),
228
+ TableColumn({
229
+ required: true,
230
+ unique: true,
231
+ type: TableColumnType.Slug,
232
+ computed: true,
233
+ title: "Slug",
234
+ description: "Friendly globally unique name for your object",
235
+ }),
236
+ Column({
237
+ nullable: false,
238
+ type: ColumnType.Slug,
239
+ length: ColumnLength.Slug,
240
+ unique: true,
241
+ }),
242
+ __metadata("design:type", String)
243
+ ], NetworkSite.prototype, "slug", void 0);
244
+ __decorate([
245
+ ColumnAccessControl({
246
+ create: [
247
+ Permission.ProjectOwner,
248
+ Permission.ProjectAdmin,
249
+ Permission.ProjectMember,
250
+ Permission.SettingsAdmin,
251
+ Permission.SettingsMember,
252
+ Permission.CreateNetworkSite,
253
+ ],
254
+ read: [
255
+ Permission.ProjectOwner,
256
+ Permission.ProjectAdmin,
257
+ Permission.ProjectMember,
258
+ Permission.Viewer,
259
+ Permission.SettingsAdmin,
260
+ Permission.SettingsMember,
261
+ Permission.SettingsViewer,
262
+ Permission.ReadNetworkSite,
263
+ ],
264
+ update: [
265
+ Permission.ProjectOwner,
266
+ Permission.ProjectAdmin,
267
+ Permission.ProjectMember,
268
+ Permission.SettingsAdmin,
269
+ Permission.SettingsMember,
270
+ Permission.EditNetworkSite,
271
+ ],
272
+ }),
273
+ TableColumn({
274
+ required: false,
275
+ type: TableColumnType.LongText,
276
+ canReadOnRelationQuery: true,
277
+ title: "Description",
278
+ description: "Friendly description for this network site",
279
+ example: "All franchise units in the Springfield market",
280
+ }),
281
+ Column({
282
+ nullable: true,
283
+ type: ColumnType.LongText,
284
+ length: ColumnLength.LongText,
285
+ }),
286
+ __metadata("design:type", String)
287
+ ], NetworkSite.prototype, "description", void 0);
288
+ __decorate([
289
+ ColumnAccessControl({
290
+ create: [
291
+ Permission.ProjectOwner,
292
+ Permission.ProjectAdmin,
293
+ Permission.ProjectMember,
294
+ Permission.SettingsAdmin,
295
+ Permission.SettingsMember,
296
+ Permission.CreateNetworkSite,
297
+ ],
298
+ read: [
299
+ Permission.ProjectOwner,
300
+ Permission.ProjectAdmin,
301
+ Permission.ProjectMember,
302
+ Permission.Viewer,
303
+ Permission.SettingsAdmin,
304
+ Permission.SettingsMember,
305
+ Permission.SettingsViewer,
306
+ Permission.ReadNetworkSite,
307
+ ],
308
+ update: [
309
+ Permission.ProjectOwner,
310
+ Permission.ProjectAdmin,
311
+ Permission.ProjectMember,
312
+ Permission.SettingsAdmin,
313
+ Permission.SettingsMember,
314
+ Permission.EditNetworkSite,
315
+ ],
316
+ })
317
+ /*
318
+ * DEPRECATED. Site types used to be a hardcoded enum stored inline as a
319
+ * string; they are now the per-project NetworkSiteType lookup table below.
320
+ * This column is retained ONLY so the BackfillNetworkSiteTypes data
321
+ * migration can read the old value and point networkSiteTypeId at the
322
+ * matching type row. It is dropped in a follow-up PR - do not read or write
323
+ * it from new code, and do not branch on its contents.
324
+ */
325
+ ,
326
+ TableColumn({
327
+ required: false,
328
+ type: TableColumnType.ShortText,
329
+ canReadOnRelationQuery: true,
330
+ title: "Site Type (Deprecated)",
331
+ description: "Deprecated legacy site type string. Use the Network Site Type relation instead; this column exists only for the backfill migration and will be removed.",
332
+ example: "Unit",
333
+ }),
334
+ Column({
335
+ nullable: true,
336
+ type: ColumnType.ShortText,
337
+ length: ColumnLength.ShortText,
338
+ }),
339
+ __metadata("design:type", String)
340
+ ], NetworkSite.prototype, "siteType", void 0);
341
+ __decorate([
342
+ ColumnAccessControl({
343
+ create: [
344
+ Permission.ProjectOwner,
345
+ Permission.ProjectAdmin,
346
+ Permission.ProjectMember,
347
+ Permission.SettingsAdmin,
348
+ Permission.SettingsMember,
349
+ Permission.CreateNetworkSite,
350
+ ],
351
+ read: [
352
+ Permission.ProjectOwner,
353
+ Permission.ProjectAdmin,
354
+ Permission.ProjectMember,
355
+ Permission.Viewer,
356
+ Permission.SettingsAdmin,
357
+ Permission.SettingsMember,
358
+ Permission.SettingsViewer,
359
+ Permission.ReadNetworkSite,
360
+ ],
361
+ update: [
362
+ Permission.ProjectOwner,
363
+ Permission.ProjectAdmin,
364
+ Permission.ProjectMember,
365
+ Permission.SettingsAdmin,
366
+ Permission.SettingsMember,
367
+ Permission.EditNetworkSite,
368
+ ],
369
+ }),
370
+ TableColumn({
371
+ manyToOneRelationColumn: "networkSiteTypeId",
372
+ type: TableColumnType.Entity,
373
+ modelType: NetworkSiteType,
374
+ title: "Site Type",
375
+ description: "Relation to the Network Site Type that says where this site sits in the hierarchy (Region, Market, Unit and so on)",
376
+ }),
377
+ ManyToOne(() => {
378
+ return NetworkSiteType;
379
+ }, {
380
+ eager: false,
381
+ nullable: true,
382
+ onDelete: "SET NULL",
383
+ orphanedRowAction: "nullify",
384
+ }),
385
+ JoinColumn({ name: "networkSiteTypeId" }),
386
+ __metadata("design:type", NetworkSiteType)
387
+ ], NetworkSite.prototype, "networkSiteType", void 0);
388
+ __decorate([
389
+ ColumnAccessControl({
390
+ create: [
391
+ Permission.ProjectOwner,
392
+ Permission.ProjectAdmin,
393
+ Permission.ProjectMember,
394
+ Permission.SettingsAdmin,
395
+ Permission.SettingsMember,
396
+ Permission.CreateNetworkSite,
397
+ ],
398
+ read: [
399
+ Permission.ProjectOwner,
400
+ Permission.ProjectAdmin,
401
+ Permission.ProjectMember,
402
+ Permission.Viewer,
403
+ Permission.SettingsAdmin,
404
+ Permission.SettingsMember,
405
+ Permission.SettingsViewer,
406
+ Permission.ReadNetworkSite,
407
+ ],
408
+ update: [
409
+ Permission.ProjectOwner,
410
+ Permission.ProjectAdmin,
411
+ Permission.ProjectMember,
412
+ Permission.SettingsAdmin,
413
+ Permission.SettingsMember,
414
+ Permission.EditNetworkSite,
415
+ ],
416
+ }),
417
+ Index(),
418
+ TableColumn({
419
+ type: TableColumnType.ObjectID,
420
+ required: false,
421
+ canReadOnRelationQuery: true,
422
+ title: "Site Type ID",
423
+ description: "ID of the Network Site Type this site belongs to",
424
+ }),
425
+ Column({
426
+ type: ColumnType.ObjectID,
427
+ nullable: true,
428
+ transformer: ObjectID.getDatabaseTransformer(),
429
+ }),
430
+ __metadata("design:type", ObjectID)
431
+ ], NetworkSite.prototype, "networkSiteTypeId", void 0);
432
+ __decorate([
433
+ ColumnAccessControl({
434
+ create: [
435
+ Permission.ProjectOwner,
436
+ Permission.ProjectAdmin,
437
+ Permission.ProjectMember,
438
+ Permission.SettingsAdmin,
439
+ Permission.SettingsMember,
440
+ Permission.CreateNetworkSite,
441
+ ],
442
+ read: [
443
+ Permission.ProjectOwner,
444
+ Permission.ProjectAdmin,
445
+ Permission.ProjectMember,
446
+ Permission.Viewer,
447
+ Permission.SettingsAdmin,
448
+ Permission.SettingsMember,
449
+ Permission.SettingsViewer,
450
+ Permission.ReadNetworkSite,
451
+ ],
452
+ update: [
453
+ Permission.ProjectOwner,
454
+ Permission.ProjectAdmin,
455
+ Permission.ProjectMember,
456
+ Permission.SettingsAdmin,
457
+ Permission.SettingsMember,
458
+ Permission.EditNetworkSite,
459
+ ],
460
+ }),
461
+ TableColumn({
462
+ manyToOneRelationColumn: "parentSiteId",
463
+ type: TableColumnType.Entity,
464
+ modelType: NetworkSite,
465
+ title: "Parent Site",
466
+ description: "Relation to the parent Network Site this site is nested under (empty for root sites)",
467
+ }),
468
+ ManyToOne(() => {
469
+ return NetworkSite;
470
+ }, {
471
+ eager: false,
472
+ nullable: true,
473
+ onDelete: "SET NULL",
474
+ orphanedRowAction: "nullify",
475
+ }),
476
+ JoinColumn({ name: "parentSiteId" }),
477
+ __metadata("design:type", NetworkSite)
478
+ ], NetworkSite.prototype, "parentSite", void 0);
479
+ __decorate([
480
+ ColumnAccessControl({
481
+ create: [
482
+ Permission.ProjectOwner,
483
+ Permission.ProjectAdmin,
484
+ Permission.ProjectMember,
485
+ Permission.SettingsAdmin,
486
+ Permission.SettingsMember,
487
+ Permission.CreateNetworkSite,
488
+ ],
489
+ read: [
490
+ Permission.ProjectOwner,
491
+ Permission.ProjectAdmin,
492
+ Permission.ProjectMember,
493
+ Permission.Viewer,
494
+ Permission.SettingsAdmin,
495
+ Permission.SettingsMember,
496
+ Permission.SettingsViewer,
497
+ Permission.ReadNetworkSite,
498
+ ],
499
+ update: [
500
+ Permission.ProjectOwner,
501
+ Permission.ProjectAdmin,
502
+ Permission.ProjectMember,
503
+ Permission.SettingsAdmin,
504
+ Permission.SettingsMember,
505
+ Permission.EditNetworkSite,
506
+ ],
507
+ }),
508
+ TableColumn({
509
+ type: TableColumnType.ObjectID,
510
+ required: false,
511
+ canReadOnRelationQuery: true,
512
+ title: "Parent Site ID",
513
+ description: "ID of the parent Network Site this site is nested under (empty for root sites)",
514
+ }),
515
+ Column({
516
+ type: ColumnType.ObjectID,
517
+ nullable: true,
518
+ transformer: ObjectID.getDatabaseTransformer(),
519
+ }),
520
+ __metadata("design:type", ObjectID)
521
+ ], NetworkSite.prototype, "parentSiteId", void 0);
522
+ __decorate([
523
+ ColumnAccessControl({
524
+ create: [],
525
+ read: [
526
+ Permission.ProjectOwner,
527
+ Permission.ProjectAdmin,
528
+ Permission.ProjectMember,
529
+ Permission.Viewer,
530
+ Permission.SettingsAdmin,
531
+ Permission.SettingsMember,
532
+ Permission.SettingsViewer,
533
+ Permission.ReadNetworkSite,
534
+ ],
535
+ update: [
536
+ Permission.ProjectOwner,
537
+ Permission.ProjectAdmin,
538
+ Permission.EditNetworkSite,
539
+ ],
540
+ }),
541
+ Index(),
542
+ TableColumn({
543
+ required: false,
544
+ type: TableColumnType.LongText,
545
+ canReadOnRelationQuery: true,
546
+ title: "Materialized Path",
547
+ description: "Slash-separated ancestor IDs of this site (e.g. '/rootId/childId/'). Managed by the server on parent changes; used for subtree queries and rollups.",
548
+ example: "/5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e/",
549
+ })
550
+ /*
551
+ * LongText, not ShortText: each ancestor segment is a 36-char uuid, so a
552
+ * four-level hierarchy already overflows the 100-char ShortText limit.
553
+ */
554
+ ,
555
+ Column({
556
+ nullable: true,
557
+ type: ColumnType.LongText,
558
+ length: ColumnLength.LongText,
559
+ }),
560
+ __metadata("design:type", String)
561
+ ], NetworkSite.prototype, "materializedPath", void 0);
562
+ __decorate([
563
+ ColumnAccessControl({
564
+ create: [],
565
+ read: [
566
+ Permission.ProjectOwner,
567
+ Permission.ProjectAdmin,
568
+ Permission.ProjectMember,
569
+ Permission.Viewer,
570
+ Permission.SettingsAdmin,
571
+ Permission.SettingsMember,
572
+ Permission.SettingsViewer,
573
+ Permission.ReadNetworkSite,
574
+ ],
575
+ update: [
576
+ Permission.ProjectOwner,
577
+ Permission.ProjectAdmin,
578
+ Permission.EditNetworkSite,
579
+ ],
580
+ }),
581
+ TableColumn({
582
+ required: false,
583
+ type: TableColumnType.Number,
584
+ canReadOnRelationQuery: true,
585
+ title: "Depth",
586
+ description: "Number of ancestors above this site (0 for root sites). Managed by the server on parent changes.",
587
+ example: "3",
588
+ }),
589
+ Column({
590
+ type: ColumnType.Number,
591
+ nullable: true,
592
+ }),
593
+ __metadata("design:type", Number)
594
+ ], NetworkSite.prototype, "depth", void 0);
595
+ __decorate([
596
+ ColumnAccessControl({
597
+ create: [
598
+ Permission.ProjectOwner,
599
+ Permission.ProjectAdmin,
600
+ Permission.ProjectMember,
601
+ Permission.SettingsAdmin,
602
+ Permission.SettingsMember,
603
+ Permission.CreateNetworkSite,
604
+ ],
605
+ read: [
606
+ Permission.ProjectOwner,
607
+ Permission.ProjectAdmin,
608
+ Permission.ProjectMember,
609
+ Permission.Viewer,
610
+ Permission.SettingsAdmin,
611
+ Permission.SettingsMember,
612
+ Permission.SettingsViewer,
613
+ Permission.ReadNetworkSite,
614
+ ],
615
+ update: [
616
+ Permission.ProjectOwner,
617
+ Permission.ProjectAdmin,
618
+ Permission.ProjectMember,
619
+ Permission.SettingsAdmin,
620
+ Permission.SettingsMember,
621
+ Permission.EditNetworkSite,
622
+ ],
623
+ }),
624
+ TableColumn({
625
+ required: false,
626
+ type: TableColumnType.ShortText,
627
+ canReadOnRelationQuery: true,
628
+ title: "Address",
629
+ description: "Street address of this site, shown on map views",
630
+ example: "742 Evergreen Terrace, Springfield, IL",
631
+ }),
632
+ Column({
633
+ nullable: true,
634
+ type: ColumnType.ShortText,
635
+ length: ColumnLength.ShortText,
636
+ }),
637
+ __metadata("design:type", String)
638
+ ], NetworkSite.prototype, "address", void 0);
639
+ __decorate([
640
+ ColumnAccessControl({
641
+ create: [
642
+ Permission.ProjectOwner,
643
+ Permission.ProjectAdmin,
644
+ Permission.ProjectMember,
645
+ Permission.SettingsAdmin,
646
+ Permission.SettingsMember,
647
+ Permission.CreateNetworkSite,
648
+ ],
649
+ read: [
650
+ Permission.ProjectOwner,
651
+ Permission.ProjectAdmin,
652
+ Permission.ProjectMember,
653
+ Permission.Viewer,
654
+ Permission.SettingsAdmin,
655
+ Permission.SettingsMember,
656
+ Permission.SettingsViewer,
657
+ Permission.ReadNetworkSite,
658
+ ],
659
+ update: [
660
+ Permission.ProjectOwner,
661
+ Permission.ProjectAdmin,
662
+ Permission.ProjectMember,
663
+ Permission.SettingsAdmin,
664
+ Permission.SettingsMember,
665
+ Permission.EditNetworkSite,
666
+ ],
667
+ }),
668
+ TableColumn({
669
+ required: false,
670
+ type: TableColumnType.Number,
671
+ canReadOnRelationQuery: true,
672
+ title: "Latitude",
673
+ description: "Latitude of this site, for US and world map views",
674
+ example: "39.7817",
675
+ }),
676
+ Column({
677
+ nullable: true,
678
+ type: ColumnType.Decimal,
679
+ transformer: decimalTransformer,
680
+ }),
681
+ __metadata("design:type", Number)
682
+ ], NetworkSite.prototype, "latitude", void 0);
683
+ __decorate([
684
+ ColumnAccessControl({
685
+ create: [
686
+ Permission.ProjectOwner,
687
+ Permission.ProjectAdmin,
688
+ Permission.ProjectMember,
689
+ Permission.SettingsAdmin,
690
+ Permission.SettingsMember,
691
+ Permission.CreateNetworkSite,
692
+ ],
693
+ read: [
694
+ Permission.ProjectOwner,
695
+ Permission.ProjectAdmin,
696
+ Permission.ProjectMember,
697
+ Permission.Viewer,
698
+ Permission.SettingsAdmin,
699
+ Permission.SettingsMember,
700
+ Permission.SettingsViewer,
701
+ Permission.ReadNetworkSite,
702
+ ],
703
+ update: [
704
+ Permission.ProjectOwner,
705
+ Permission.ProjectAdmin,
706
+ Permission.ProjectMember,
707
+ Permission.SettingsAdmin,
708
+ Permission.SettingsMember,
709
+ Permission.EditNetworkSite,
710
+ ],
711
+ }),
712
+ TableColumn({
713
+ required: false,
714
+ type: TableColumnType.Number,
715
+ canReadOnRelationQuery: true,
716
+ title: "Longitude",
717
+ description: "Longitude of this site, for US and world map views",
718
+ example: "-89.6501",
719
+ }),
720
+ Column({
721
+ nullable: true,
722
+ type: ColumnType.Decimal,
723
+ transformer: decimalTransformer,
724
+ }),
725
+ __metadata("design:type", Number)
726
+ ], NetworkSite.prototype, "longitude", void 0);
727
+ __decorate([
728
+ ColumnAccessControl({
729
+ create: [],
730
+ read: [
731
+ Permission.ProjectOwner,
732
+ Permission.ProjectAdmin,
733
+ Permission.ProjectMember,
734
+ Permission.Viewer,
735
+ Permission.SettingsAdmin,
736
+ Permission.SettingsMember,
737
+ Permission.SettingsViewer,
738
+ Permission.ReadNetworkSite,
739
+ ],
740
+ update: [
741
+ Permission.ProjectOwner,
742
+ Permission.ProjectAdmin,
743
+ Permission.EditNetworkSite,
744
+ ],
745
+ }),
746
+ TableColumn({
747
+ manyToOneRelationColumn: "currentMonitorStatusId",
748
+ type: TableColumnType.Entity,
749
+ modelType: MonitorStatus,
750
+ title: "Current Monitor Status",
751
+ description: "Whats the current rolled-up status of this site? Computed from the devices and child sites below it.",
752
+ }),
753
+ ManyToOne(() => {
754
+ return MonitorStatus;
755
+ }, {
756
+ eager: false,
757
+ nullable: true,
758
+ onDelete: "SET NULL",
759
+ orphanedRowAction: "nullify",
760
+ }),
761
+ JoinColumn({ name: "currentMonitorStatusId" }),
762
+ __metadata("design:type", MonitorStatus)
763
+ ], NetworkSite.prototype, "currentMonitorStatus", void 0);
764
+ __decorate([
765
+ ColumnAccessControl({
766
+ create: [],
767
+ read: [
768
+ Permission.ProjectOwner,
769
+ Permission.ProjectAdmin,
770
+ Permission.ProjectMember,
771
+ Permission.Viewer,
772
+ Permission.SettingsAdmin,
773
+ Permission.SettingsMember,
774
+ Permission.SettingsViewer,
775
+ Permission.ReadNetworkSite,
776
+ ],
777
+ update: [
778
+ Permission.ProjectOwner,
779
+ Permission.ProjectAdmin,
780
+ Permission.EditNetworkSite,
781
+ ],
782
+ }),
783
+ Index(),
784
+ TableColumn({
785
+ type: TableColumnType.ObjectID,
786
+ required: false,
787
+ canReadOnRelationQuery: true,
788
+ title: "Current Monitor Status ID",
789
+ description: "Whats the current rolled-up status ID of this site? Computed from the devices and child sites below it.",
790
+ }),
791
+ Column({
792
+ type: ColumnType.ObjectID,
793
+ nullable: true,
794
+ transformer: ObjectID.getDatabaseTransformer(),
795
+ }),
796
+ __metadata("design:type", ObjectID)
797
+ ], NetworkSite.prototype, "currentMonitorStatusId", void 0);
798
+ __decorate([
799
+ ColumnAccessControl({
800
+ create: [],
801
+ read: [
802
+ Permission.ProjectOwner,
803
+ Permission.ProjectAdmin,
804
+ Permission.ProjectMember,
805
+ Permission.Viewer,
806
+ Permission.SettingsAdmin,
807
+ Permission.SettingsMember,
808
+ Permission.SettingsViewer,
809
+ Permission.ReadNetworkSite,
810
+ ],
811
+ update: [
812
+ Permission.ProjectOwner,
813
+ Permission.ProjectAdmin,
814
+ Permission.EditNetworkSite,
815
+ ],
816
+ }),
817
+ TableColumn({
818
+ required: false,
819
+ type: TableColumnType.Date,
820
+ canReadOnRelationQuery: true,
821
+ title: "Last Rollup At",
822
+ description: "When the health rollup for this site was last computed",
823
+ }),
824
+ Column({
825
+ nullable: true,
826
+ type: ColumnType.Date,
827
+ }),
828
+ __metadata("design:type", Date)
829
+ ], NetworkSite.prototype, "lastRollupAt", void 0);
830
+ __decorate([
831
+ ColumnAccessControl({
832
+ create: [
833
+ Permission.ProjectOwner,
834
+ Permission.ProjectAdmin,
835
+ Permission.ProjectMember,
836
+ Permission.SettingsAdmin,
837
+ Permission.SettingsMember,
838
+ Permission.CreateNetworkSite,
839
+ ],
840
+ read: [
841
+ Permission.ProjectOwner,
842
+ Permission.ProjectAdmin,
843
+ Permission.ProjectMember,
844
+ Permission.Viewer,
845
+ Permission.SettingsAdmin,
846
+ Permission.SettingsMember,
847
+ Permission.SettingsViewer,
848
+ Permission.ReadNetworkSite,
849
+ ],
850
+ update: [
851
+ Permission.ProjectOwner,
852
+ Permission.ProjectAdmin,
853
+ Permission.ProjectMember,
854
+ Permission.SettingsAdmin,
855
+ Permission.SettingsMember,
856
+ Permission.EditNetworkSite,
857
+ ],
858
+ }),
859
+ TableColumn({
860
+ isDefaultValueColumn: true,
861
+ required: true,
862
+ type: TableColumnType.Boolean,
863
+ title: "Alert When Unhealthy",
864
+ description: "When enabled, an alert opens when this site's health rollup turns non-operational and auto-resolves when it recovers.",
865
+ }),
866
+ Column({
867
+ type: ColumnType.Boolean,
868
+ default: false,
869
+ }),
870
+ __metadata("design:type", Boolean)
871
+ ], NetworkSite.prototype, "shouldAlertWhenUnhealthy", void 0);
872
+ __decorate([
873
+ ColumnAccessControl({
874
+ create: [
875
+ Permission.ProjectOwner,
876
+ Permission.ProjectAdmin,
877
+ Permission.ProjectMember,
878
+ Permission.SettingsAdmin,
879
+ Permission.SettingsMember,
880
+ Permission.CreateNetworkSite,
881
+ ],
882
+ read: [
883
+ Permission.ProjectOwner,
884
+ Permission.ProjectAdmin,
885
+ Permission.ProjectMember,
886
+ Permission.Viewer,
887
+ Permission.SettingsAdmin,
888
+ Permission.SettingsMember,
889
+ Permission.SettingsViewer,
890
+ Permission.ReadNetworkSite,
891
+ ],
892
+ update: [
893
+ Permission.ProjectOwner,
894
+ Permission.ProjectAdmin,
895
+ Permission.ProjectMember,
896
+ Permission.SettingsAdmin,
897
+ Permission.SettingsMember,
898
+ Permission.EditNetworkSite,
899
+ ],
900
+ }),
901
+ TableColumn({
902
+ manyToOneRelationColumn: "alertSeverityId",
903
+ type: TableColumnType.Entity,
904
+ modelType: AlertSeverity,
905
+ title: "Alert Severity",
906
+ description: "Severity for alerts opened when this site turns unhealthy. Defaults to the project's most severe when unset.",
907
+ }),
908
+ ManyToOne(() => {
909
+ return AlertSeverity;
910
+ }, {
911
+ eager: false,
912
+ nullable: true,
913
+ onDelete: "SET NULL",
914
+ orphanedRowAction: "nullify",
915
+ }),
916
+ JoinColumn({ name: "alertSeverityId" }),
917
+ __metadata("design:type", AlertSeverity)
918
+ ], NetworkSite.prototype, "alertSeverity", void 0);
919
+ __decorate([
920
+ ColumnAccessControl({
921
+ create: [
922
+ Permission.ProjectOwner,
923
+ Permission.ProjectAdmin,
924
+ Permission.ProjectMember,
925
+ Permission.SettingsAdmin,
926
+ Permission.SettingsMember,
927
+ Permission.CreateNetworkSite,
928
+ ],
929
+ read: [
930
+ Permission.ProjectOwner,
931
+ Permission.ProjectAdmin,
932
+ Permission.ProjectMember,
933
+ Permission.Viewer,
934
+ Permission.SettingsAdmin,
935
+ Permission.SettingsMember,
936
+ Permission.SettingsViewer,
937
+ Permission.ReadNetworkSite,
938
+ ],
939
+ update: [
940
+ Permission.ProjectOwner,
941
+ Permission.ProjectAdmin,
942
+ Permission.ProjectMember,
943
+ Permission.SettingsAdmin,
944
+ Permission.SettingsMember,
945
+ Permission.EditNetworkSite,
946
+ ],
947
+ }),
948
+ TableColumn({
949
+ type: TableColumnType.ObjectID,
950
+ required: false,
951
+ canReadOnRelationQuery: true,
952
+ title: "Alert Severity ID",
953
+ description: "ID of the severity used for site-unhealthy alerts",
954
+ }),
955
+ Column({
956
+ type: ColumnType.ObjectID,
957
+ nullable: true,
958
+ transformer: ObjectID.getDatabaseTransformer(),
959
+ }),
960
+ __metadata("design:type", ObjectID)
961
+ ], NetworkSite.prototype, "alertSeverityId", void 0);
962
+ __decorate([
963
+ ColumnAccessControl({
964
+ create: [],
965
+ read: [
966
+ Permission.ProjectOwner,
967
+ Permission.ProjectAdmin,
968
+ Permission.ProjectMember,
969
+ Permission.Viewer,
970
+ Permission.SettingsAdmin,
971
+ Permission.SettingsMember,
972
+ Permission.SettingsViewer,
973
+ Permission.ReadNetworkSite,
974
+ ],
975
+ update: [],
976
+ }),
977
+ TableColumn({
978
+ type: TableColumnType.ObjectID,
979
+ required: false,
980
+ canReadOnRelationQuery: true,
981
+ title: "Current Active Alert ID",
982
+ description: "ID of the currently open site-unhealthy alert, if any. Managed by the rollup engine.",
983
+ }),
984
+ Column({
985
+ type: ColumnType.ObjectID,
986
+ nullable: true,
987
+ transformer: ObjectID.getDatabaseTransformer(),
988
+ }),
989
+ __metadata("design:type", ObjectID)
990
+ ], NetworkSite.prototype, "currentActiveAlertId", void 0);
991
+ __decorate([
992
+ ColumnAccessControl({
993
+ create: [
994
+ Permission.ProjectOwner,
995
+ Permission.ProjectAdmin,
996
+ Permission.ProjectMember,
997
+ Permission.SettingsAdmin,
998
+ Permission.SettingsMember,
999
+ Permission.CreateNetworkSite,
1000
+ ],
1001
+ read: [
1002
+ Permission.ProjectOwner,
1003
+ Permission.ProjectAdmin,
1004
+ Permission.ProjectMember,
1005
+ Permission.Viewer,
1006
+ Permission.SettingsAdmin,
1007
+ Permission.SettingsMember,
1008
+ Permission.SettingsViewer,
1009
+ Permission.ReadNetworkSite,
1010
+ ],
1011
+ update: [],
1012
+ }),
1013
+ TableColumn({
1014
+ manyToOneRelationColumn: "createdByUserId",
1015
+ type: TableColumnType.Entity,
1016
+ modelType: User,
1017
+ title: "Created by User",
1018
+ description: "Relation to User who created this object (if this object was created by a User)",
1019
+ }),
1020
+ ManyToOne(() => {
1021
+ return User;
1022
+ }, {
1023
+ eager: false,
1024
+ nullable: true,
1025
+ onDelete: "SET NULL",
1026
+ orphanedRowAction: "nullify",
1027
+ }),
1028
+ JoinColumn({ name: "createdByUserId" }),
1029
+ __metadata("design:type", User)
1030
+ ], NetworkSite.prototype, "createdByUser", void 0);
1031
+ __decorate([
1032
+ ColumnAccessControl({
1033
+ create: [
1034
+ Permission.ProjectOwner,
1035
+ Permission.ProjectAdmin,
1036
+ Permission.ProjectMember,
1037
+ Permission.SettingsAdmin,
1038
+ Permission.SettingsMember,
1039
+ Permission.CreateNetworkSite,
1040
+ ],
1041
+ read: [
1042
+ Permission.ProjectOwner,
1043
+ Permission.ProjectAdmin,
1044
+ Permission.ProjectMember,
1045
+ Permission.Viewer,
1046
+ Permission.SettingsAdmin,
1047
+ Permission.SettingsMember,
1048
+ Permission.SettingsViewer,
1049
+ Permission.ReadNetworkSite,
1050
+ ],
1051
+ update: [],
1052
+ }),
1053
+ TableColumn({
1054
+ type: TableColumnType.ObjectID,
1055
+ title: "Created by User ID",
1056
+ description: "User ID who created this object (if this object was created by a User)",
1057
+ }),
1058
+ Column({
1059
+ type: ColumnType.ObjectID,
1060
+ nullable: true,
1061
+ transformer: ObjectID.getDatabaseTransformer(),
1062
+ }),
1063
+ __metadata("design:type", ObjectID)
1064
+ ], NetworkSite.prototype, "createdByUserId", void 0);
1065
+ __decorate([
1066
+ ColumnAccessControl({
1067
+ create: [],
1068
+ read: [
1069
+ Permission.ProjectOwner,
1070
+ Permission.ProjectAdmin,
1071
+ Permission.ProjectMember,
1072
+ Permission.Viewer,
1073
+ Permission.SettingsAdmin,
1074
+ Permission.SettingsMember,
1075
+ Permission.SettingsViewer,
1076
+ Permission.ReadNetworkSite,
1077
+ ],
1078
+ update: [],
1079
+ }),
1080
+ TableColumn({
1081
+ manyToOneRelationColumn: "deletedByUserId",
1082
+ type: TableColumnType.Entity,
1083
+ title: "Deleted by User",
1084
+ modelType: User,
1085
+ description: "Relation to User who deleted this object (if this object was deleted by a User)",
1086
+ }),
1087
+ ManyToOne(() => {
1088
+ return User;
1089
+ }, {
1090
+ cascade: false,
1091
+ eager: false,
1092
+ nullable: true,
1093
+ onDelete: "SET NULL",
1094
+ orphanedRowAction: "nullify",
1095
+ }),
1096
+ JoinColumn({ name: "deletedByUserId" }),
1097
+ __metadata("design:type", User)
1098
+ ], NetworkSite.prototype, "deletedByUser", void 0);
1099
+ __decorate([
1100
+ ColumnAccessControl({
1101
+ create: [],
1102
+ read: [
1103
+ Permission.ProjectOwner,
1104
+ Permission.ProjectAdmin,
1105
+ Permission.ProjectMember,
1106
+ Permission.Viewer,
1107
+ Permission.SettingsAdmin,
1108
+ Permission.SettingsMember,
1109
+ Permission.SettingsViewer,
1110
+ Permission.ReadNetworkSite,
1111
+ ],
1112
+ update: [],
1113
+ }),
1114
+ TableColumn({
1115
+ type: TableColumnType.ObjectID,
1116
+ title: "Deleted by User ID",
1117
+ description: "User ID who deleted this object (if this object was deleted by a User)",
1118
+ }),
1119
+ Column({
1120
+ type: ColumnType.ObjectID,
1121
+ nullable: true,
1122
+ transformer: ObjectID.getDatabaseTransformer(),
1123
+ }),
1124
+ __metadata("design:type", ObjectID)
1125
+ ], NetworkSite.prototype, "deletedByUserId", void 0);
1126
+ NetworkSite = __decorate([
1127
+ EnableDocumentation(),
1128
+ TenantColumn("projectId"),
1129
+ TableAccessControl({
1130
+ create: [
1131
+ Permission.ProjectOwner,
1132
+ Permission.ProjectAdmin,
1133
+ Permission.ProjectMember,
1134
+ Permission.SettingsAdmin,
1135
+ Permission.SettingsMember,
1136
+ Permission.CreateNetworkSite,
1137
+ ],
1138
+ read: [
1139
+ Permission.ProjectOwner,
1140
+ Permission.ProjectAdmin,
1141
+ Permission.ProjectMember,
1142
+ Permission.Viewer,
1143
+ Permission.SettingsAdmin,
1144
+ Permission.SettingsMember,
1145
+ Permission.SettingsViewer,
1146
+ Permission.ReadNetworkSite,
1147
+ ],
1148
+ delete: [
1149
+ Permission.ProjectOwner,
1150
+ Permission.ProjectAdmin,
1151
+ Permission.ProjectMember,
1152
+ Permission.SettingsAdmin,
1153
+ Permission.SettingsMember,
1154
+ Permission.DeleteNetworkSite,
1155
+ ],
1156
+ update: [
1157
+ Permission.ProjectOwner,
1158
+ Permission.ProjectAdmin,
1159
+ Permission.ProjectMember,
1160
+ Permission.SettingsAdmin,
1161
+ Permission.SettingsMember,
1162
+ Permission.EditNetworkSite,
1163
+ ],
1164
+ }),
1165
+ CrudApiEndpoint(new Route("/network-site")),
1166
+ SlugifyColumn("name", "slug"),
1167
+ Index(["projectId", "parentSiteId"]),
1168
+ TableMetadata({
1169
+ tableName: "NetworkSite",
1170
+ singularName: "Network Site",
1171
+ pluralName: "Network Sites",
1172
+ icon: IconProp.BuildingOffice,
1173
+ tableDescription: "Self-nesting sites (Account Type -> Region / Franchisee -> Market -> Unit) that group Network Devices into a drill-down hierarchy with a persisted health rollup.",
1174
+ }),
1175
+ Entity({
1176
+ name: "NetworkSite",
1177
+ })
1178
+ ], NetworkSite);
1179
+ export default NetworkSite;
1180
+ //# sourceMappingURL=NetworkSite.js.map