@oneuptime/common 12.0.1 → 12.0.3

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 (385) hide show
  1. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
  2. package/Models/DatabaseModels/Host.ts +12 -4
  3. package/Models/DatabaseModels/Index.ts +2 -0
  4. package/Models/DatabaseModels/KubernetesContainer.ts +5 -4
  5. package/Models/DatabaseModels/KubernetesResource.ts +8 -7
  6. package/Models/DatabaseModels/LogDropFilter.ts +9 -20
  7. package/Models/DatabaseModels/PodmanResource.ts +6 -6
  8. package/Models/DatabaseModels/ServiceLevelObjective.ts +91 -0
  9. package/Models/DatabaseModels/StatusPage.ts +95 -0
  10. package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
  11. package/Models/DatabaseModels/StatusPageResource.ts +73 -0
  12. package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
  13. package/Server/API/BaseAPI.ts +13 -2
  14. package/Server/API/DashboardAPI.ts +39 -0
  15. package/Server/API/TeamMemberAPI.ts +85 -0
  16. package/Server/EnvironmentConfig.ts +31 -1
  17. package/Server/Infrastructure/GlobalCache.ts +115 -0
  18. package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.ts +84 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.ts +40 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.ts +131 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.ts +25 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  25. package/Server/Middleware/ProjectAuthorization.ts +66 -4
  26. package/Server/Services/AlertStateTimelineService.ts +20 -0
  27. package/Server/Services/BillingService.ts +600 -51
  28. package/Server/Services/CephClusterService.ts +27 -45
  29. package/Server/Services/CephResourceService.ts +43 -4
  30. package/Server/Services/CloudResourceService.ts +24 -42
  31. package/Server/Services/DatabaseService.ts +198 -6
  32. package/Server/Services/DockerHostService.ts +20 -38
  33. package/Server/Services/DockerResourceService.ts +62 -8
  34. package/Server/Services/DockerSwarmClusterService.ts +28 -46
  35. package/Server/Services/DockerSwarmResourceService.ts +53 -4
  36. package/Server/Services/HostService.ts +47 -57
  37. package/Server/Services/IncidentStateTimelineService.ts +20 -0
  38. package/Server/Services/Index.ts +2 -0
  39. package/Server/Services/IoTDeviceService.ts +1 -17
  40. package/Server/Services/IoTFleetService.ts +20 -38
  41. package/Server/Services/KubernetesClusterService.ts +18 -36
  42. package/Server/Services/KubernetesContainerService.ts +50 -9
  43. package/Server/Services/KubernetesResourceService.ts +53 -7
  44. package/Server/Services/LabelService.ts +153 -1
  45. package/Server/Services/MetricTypeService.ts +84 -0
  46. package/Server/Services/MonitorService.ts +146 -14
  47. package/Server/Services/MonitorStatusTimelineService.ts +29 -0
  48. package/Server/Services/MonitorTemplateService.ts +65 -0
  49. package/Server/Services/PodmanHostService.ts +20 -38
  50. package/Server/Services/PodmanResourceService.ts +62 -8
  51. package/Server/Services/ProjectService.ts +165 -35
  52. package/Server/Services/ProxmoxClusterService.ts +24 -42
  53. package/Server/Services/ProxmoxResourceService.ts +43 -4
  54. package/Server/Services/RumApplicationService.ts +20 -38
  55. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
  56. package/Server/Services/ServerlessFunctionService.ts +25 -43
  57. package/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.ts +426 -0
  58. package/Server/Services/ServiceLevelObjectiveService.ts +39 -0
  59. package/Server/Services/ServiceService.ts +299 -73
  60. package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
  61. package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
  62. package/Server/Services/StatusPageService.ts +95 -36
  63. package/Server/Services/StatusPageSubscriberNotificationTemplateService.ts +18 -1
  64. package/Server/Services/StatusPageSubscriberService.ts +3 -0
  65. package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
  66. package/Server/Services/TelemetryEntityService.ts +1 -0
  67. package/Server/Types/Database/JSONColumnQuery.ts +621 -0
  68. package/Server/Types/Database/Permissions/PublicPermission.ts +9 -2
  69. package/Server/Types/Database/QueryHelper.ts +17 -32
  70. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
  71. package/Server/Utils/Database/TruncateColumnValue.ts +84 -0
  72. package/Server/Utils/Monitor/MonitorResource.ts +63 -36
  73. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
  74. package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
  75. package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
  76. package/Server/Utils/SingleFlight.ts +83 -0
  77. package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
  78. package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
  79. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
  80. package/Server/Utils/Telemetry/Telemetry.ts +351 -122
  81. package/Tests/App/Dashboard/UsersTableGroupsByPerson.test.tsx +448 -0
  82. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  83. package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
  84. package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
  85. package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
  86. package/Tests/Server/API/BaseAPIApiKeyAuth.test.ts +704 -0
  87. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
  88. package/Tests/Server/API/TeamMemberRemoveUserFromProjectAPI.test.ts +303 -0
  89. package/Tests/Server/Infrastructure/GlobalCache.test.ts +226 -0
  90. package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
  91. package/Tests/Server/Middleware/MasterAdminAuthorization.test.ts +350 -0
  92. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyHeader.test.ts +362 -0
  93. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +687 -0
  94. package/Tests/Server/Services/BillingService.test.ts +78 -3
  95. package/Tests/Server/Services/BillingServiceChangePlanCancel.test.ts +645 -0
  96. package/Tests/Server/Services/BillingServiceTrialPlanChange.test.ts +1005 -0
  97. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
  98. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
  99. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +503 -0
  100. package/Tests/Server/Services/HostIpAddressesColumnWidth.test.ts +198 -0
  101. package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +658 -0
  102. package/Tests/Server/Services/InventoryResourceNameColumnWidth.test.ts +500 -0
  103. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +586 -0
  104. package/Tests/Server/Services/InventoryUpsertTruncationGuard.test.ts +1242 -0
  105. package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
  106. package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
  107. package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
  108. package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +650 -0
  109. package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +1 -0
  110. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +636 -0
  111. package/Tests/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.test.ts +770 -0
  112. package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +130 -0
  113. package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
  114. package/Tests/Server/Services/SloMonitorLabelRuleHooks.test.ts +352 -0
  115. package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
  116. package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
  117. package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
  118. package/Tests/Server/Services/StatusPageSubscriberReport.test.ts +29 -13
  119. package/Tests/Server/TestingUtils/Services/BillingServiceHelper.ts +69 -8
  120. package/Tests/Server/Types/Database/JSONColumnQuery.test.ts +593 -0
  121. package/Tests/Server/Types/Database/Permissions/PublicPermission.test.ts +495 -0
  122. package/Tests/Server/Types/Database/QueryUtil.test.ts +113 -0
  123. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
  124. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
  125. package/Tests/Server/Utils/Database/TruncateColumnValue.test.ts +179 -0
  126. package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
  127. package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
  128. package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
  129. package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
  130. package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
  131. package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
  132. package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
  133. package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
  134. package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
  135. package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
  136. package/Tests/Types/Decimal.test.ts +37 -0
  137. package/Tests/Types/Events/Recurring.test.ts +157 -0
  138. package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
  139. package/Tests/Types/Port.test.ts +38 -0
  140. package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
  141. package/Tests/UI/Components/ModelTable/ModelTableGroupsProjectUsers.test.tsx +375 -0
  142. package/Tests/UI/Components/ModelTable/useCustomFieldColumns.test.tsx +196 -0
  143. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
  144. package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
  145. package/Tests/UI/Utils/ProjectUsersModelAPI.test.ts +739 -0
  146. package/Tests/UI/Utils/TeamMembersByUser.test.ts +633 -0
  147. package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
  148. package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
  149. package/Tests/Utils/StatusPage/ReportPeriod.test.ts +218 -0
  150. package/Tests/Utils/Telemetry/HostIpAddresses.test.ts +291 -0
  151. package/Types/CustomField/CustomFieldDefinition.ts +24 -0
  152. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  153. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  154. package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
  155. package/Types/Dashboard/DashboardTemplates.ts +397 -0
  156. package/Types/Database/BigIntColumnTransformer.ts +74 -0
  157. package/Types/Database/DatabaseProperty.ts +26 -0
  158. package/Types/Database/NumericColumnValue.ts +128 -0
  159. package/Types/Date.ts +112 -0
  160. package/Types/Decimal.ts +16 -4
  161. package/Types/Events/Recurring.ts +99 -1
  162. package/Types/Permission.ts +48 -0
  163. package/Types/Port.ts +16 -4
  164. package/Types/StatusPage/StatusPageReport.ts +11 -0
  165. package/Types/StatusPage/StatusPageReportPeriodType.ts +21 -0
  166. package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
  167. package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
  168. package/UI/Components/ModelTable/CustomFieldColumns.tsx +2 -6
  169. package/UI/Components/ModelTable/useCustomFieldColumns.ts +21 -2
  170. package/UI/Utils/ModelAPI/ProjectUsersModelAPI.ts +305 -0
  171. package/UI/Utils/TeamMembersByUser.ts +302 -0
  172. package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
  173. package/Utils/Dashboard/Components/Index.ts +7 -0
  174. package/Utils/StatusPage/ReportPeriod.ts +236 -0
  175. package/Utils/Telemetry/HostIpAddresses.ts +98 -0
  176. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
  177. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  178. package/build/dist/Models/DatabaseModels/Host.js +12 -4
  179. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  180. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  181. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  182. package/build/dist/Models/DatabaseModels/KubernetesContainer.js +4 -4
  183. package/build/dist/Models/DatabaseModels/KubernetesContainer.js.map +1 -1
  184. package/build/dist/Models/DatabaseModels/KubernetesResource.js +7 -7
  185. package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -1
  186. package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
  187. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  188. package/build/dist/Models/DatabaseModels/PodmanResource.js +6 -6
  189. package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -1
  190. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +87 -0
  191. package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -1
  192. package/build/dist/Models/DatabaseModels/StatusPage.js +98 -0
  193. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  194. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
  195. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
  196. package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
  197. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
  198. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
  199. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  200. package/build/dist/Server/API/BaseAPI.js +11 -1
  201. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  202. package/build/dist/Server/API/DashboardAPI.js +39 -0
  203. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  204. package/build/dist/Server/API/TeamMemberAPI.js +57 -2
  205. package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
  206. package/build/dist/Server/EnvironmentConfig.js +27 -1
  207. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  208. package/build/dist/Server/Infrastructure/GlobalCache.js +91 -0
  209. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  210. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
  211. package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
  212. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.js +45 -0
  213. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785900000000-AddSloMonitorLabelRule.js.map +1 -0
  214. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.js +31 -0
  215. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785915638551-IncreaseHostIpAddressesLength.js.map +1 -0
  216. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.js +90 -0
  217. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930000000-WidenInventoryResourceNameColumns.js.map +1 -0
  218. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.js +14 -0
  219. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785930709405-AddStatusPageReportPeriod.js.map +1 -0
  220. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
  221. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
  222. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  223. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  224. package/build/dist/Server/Middleware/ProjectAuthorization.js +59 -4
  225. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  226. package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
  227. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  228. package/build/dist/Server/Services/BillingService.js +466 -36
  229. package/build/dist/Server/Services/BillingService.js.map +1 -1
  230. package/build/dist/Server/Services/CephClusterService.js +26 -39
  231. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  232. package/build/dist/Server/Services/CephResourceService.js +28 -3
  233. package/build/dist/Server/Services/CephResourceService.js.map +1 -1
  234. package/build/dist/Server/Services/CloudResourceService.js +23 -36
  235. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  236. package/build/dist/Server/Services/DatabaseService.js +155 -2
  237. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  238. package/build/dist/Server/Services/DockerHostService.js +19 -32
  239. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  240. package/build/dist/Server/Services/DockerResourceService.js +34 -4
  241. package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
  242. package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -40
  243. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  244. package/build/dist/Server/Services/DockerSwarmResourceService.js +28 -3
  245. package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -1
  246. package/build/dist/Server/Services/HostService.js +58 -64
  247. package/build/dist/Server/Services/HostService.js.map +1 -1
  248. package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
  249. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  250. package/build/dist/Server/Services/Index.js +2 -0
  251. package/build/dist/Server/Services/Index.js.map +1 -1
  252. package/build/dist/Server/Services/IoTDeviceService.js +1 -8
  253. package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
  254. package/build/dist/Server/Services/IoTFleetService.js +19 -32
  255. package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
  256. package/build/dist/Server/Services/KubernetesClusterService.js +17 -30
  257. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  258. package/build/dist/Server/Services/KubernetesContainerService.js +29 -3
  259. package/build/dist/Server/Services/KubernetesContainerService.js.map +1 -1
  260. package/build/dist/Server/Services/KubernetesResourceService.js +32 -4
  261. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
  262. package/build/dist/Server/Services/LabelService.js +127 -0
  263. package/build/dist/Server/Services/LabelService.js.map +1 -1
  264. package/build/dist/Server/Services/MetricTypeService.js +74 -0
  265. package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
  266. package/build/dist/Server/Services/MonitorService.js +128 -9
  267. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  268. package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
  269. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  270. package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
  271. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  272. package/build/dist/Server/Services/PodmanHostService.js +19 -32
  273. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  274. package/build/dist/Server/Services/PodmanResourceService.js +34 -4
  275. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
  276. package/build/dist/Server/Services/ProjectService.js +135 -21
  277. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  278. package/build/dist/Server/Services/ProxmoxClusterService.js +23 -36
  279. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  280. package/build/dist/Server/Services/ProxmoxResourceService.js +28 -3
  281. package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -1
  282. package/build/dist/Server/Services/RumApplicationService.js +19 -32
  283. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  284. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
  285. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  286. package/build/dist/Server/Services/ServerlessFunctionService.js +24 -37
  287. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  288. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js +347 -0
  289. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js.map +1 -0
  290. package/build/dist/Server/Services/ServiceLevelObjectiveService.js +33 -1
  291. package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -1
  292. package/build/dist/Server/Services/ServiceService.js +236 -61
  293. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  294. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
  295. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
  296. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
  297. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
  298. package/build/dist/Server/Services/StatusPageService.js +69 -46
  299. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  300. package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js +17 -1
  301. package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js.map +1 -1
  302. package/build/dist/Server/Services/StatusPageSubscriberService.js +3 -0
  303. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  304. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
  305. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
  306. package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
  307. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
  308. package/build/dist/Server/Types/Database/JSONColumnQuery.js +402 -0
  309. package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -0
  310. package/build/dist/Server/Types/Database/Permissions/PublicPermission.js +9 -2
  311. package/build/dist/Server/Types/Database/Permissions/PublicPermission.js.map +1 -1
  312. package/build/dist/Server/Types/Database/QueryHelper.js +17 -27
  313. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  314. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
  315. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  316. package/build/dist/Server/Utils/Database/TruncateColumnValue.js +32 -0
  317. package/build/dist/Server/Utils/Database/TruncateColumnValue.js.map +1 -0
  318. package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
  319. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  320. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
  321. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  322. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
  323. package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
  324. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
  325. package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
  326. package/build/dist/Server/Utils/SingleFlight.js +76 -0
  327. package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
  328. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
  329. package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
  330. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
  331. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  332. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
  333. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
  334. package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
  335. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  336. package/build/dist/Types/CustomField/CustomFieldDefinition.js +2 -0
  337. package/build/dist/Types/CustomField/CustomFieldDefinition.js.map +1 -0
  338. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  339. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  340. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  341. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  342. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
  343. package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
  344. package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
  345. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  346. package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
  347. package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
  348. package/build/dist/Types/Database/DatabaseProperty.js +25 -0
  349. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  350. package/build/dist/Types/Database/NumericColumnValue.js +97 -0
  351. package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
  352. package/build/dist/Types/Date.js +68 -0
  353. package/build/dist/Types/Date.js.map +1 -1
  354. package/build/dist/Types/Decimal.js +14 -3
  355. package/build/dist/Types/Decimal.js.map +1 -1
  356. package/build/dist/Types/Events/Recurring.js +63 -0
  357. package/build/dist/Types/Events/Recurring.js.map +1 -1
  358. package/build/dist/Types/Permission.js +42 -0
  359. package/build/dist/Types/Permission.js.map +1 -1
  360. package/build/dist/Types/Port.js +15 -5
  361. package/build/dist/Types/Port.js.map +1 -1
  362. package/build/dist/Types/StatusPage/StatusPageReportPeriodType.js +22 -0
  363. package/build/dist/Types/StatusPage/StatusPageReportPeriodType.js.map +1 -0
  364. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
  365. package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
  366. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
  367. package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
  368. package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
  369. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +18 -2
  370. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -1
  371. package/build/dist/UI/Utils/ModelAPI/ProjectUsersModelAPI.js +213 -0
  372. package/build/dist/UI/Utils/ModelAPI/ProjectUsersModelAPI.js.map +1 -0
  373. package/build/dist/UI/Utils/TeamMembersByUser.js +195 -0
  374. package/build/dist/UI/Utils/TeamMembersByUser.js.map +1 -0
  375. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
  376. package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
  377. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  378. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  379. package/build/dist/Utils/StatusPage/ReportPeriod.js +131 -0
  380. package/build/dist/Utils/StatusPage/ReportPeriod.js.map +1 -0
  381. package/build/dist/Utils/Telemetry/HostIpAddresses.js +82 -0
  382. package/build/dist/Utils/Telemetry/HostIpAddresses.js.map +1 -0
  383. package/jest.config.json +2 -0
  384. package/package.json +1 -1
  385. package/tsconfig.json +12 -1
@@ -0,0 +1,136 @@
1
+ import DashboardNetworkMapComponent from "../../../Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent";
2
+ import { ObjectType } from "../../../Types/JSON";
3
+ import ObjectID from "../../../Types/ObjectID";
4
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
5
+ import {
6
+ ComponentArgument,
7
+ ComponentArgumentSection,
8
+ ComponentInputType,
9
+ EntityFilterModelType,
10
+ } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
11
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
12
+
13
+ const DisplaySection: ComponentArgumentSection = {
14
+ name: "Display Options",
15
+ description: "Configure the widget title, size of the map and its labels",
16
+ order: 1,
17
+ };
18
+
19
+ const FiltersSection: ComponentArgumentSection = {
20
+ name: "Filters",
21
+ description: "Narrow down which network sites are drawn",
22
+ order: 2,
23
+ defaultCollapsed: true,
24
+ };
25
+
26
+ /*
27
+ * A map is only readable while the markers on it can be told apart, and the
28
+ * fetch is a plain list query — so the widget draws a bounded number of
29
+ * sites rather than every row in the project. 250 comfortably covers a
30
+ * franchise estate at the level a dashboard tile is read at, and the footer
31
+ * says out loud when the cap dropped anything.
32
+ */
33
+ export const DEFAULT_MAX_SITES: number = 250;
34
+
35
+ export default class DashboardNetworkMapComponentUtil extends DashboardBaseComponentUtil {
36
+ public static override getDefaultComponent(): DashboardNetworkMapComponent {
37
+ return {
38
+ _type: ObjectType.DashboardComponent,
39
+ componentType: DashboardComponentType.NetworkMap,
40
+ /*
41
+ * A map needs room in BOTH axes: the world is roughly 2:1, so a
42
+ * short-and-wide tile letterboxes it into a strip. Half the grid
43
+ * across and five rows down is the smallest shape that still reads
44
+ * as a map rather than as a banner.
45
+ */
46
+ widthInDashboardUnits: 6,
47
+ heightInDashboardUnits: 5,
48
+ topInDashboardUnits: 0,
49
+ leftInDashboardUnits: 0,
50
+ componentId: ObjectID.generate(),
51
+ minHeightInDashboardUnits: 4,
52
+ minWidthInDashboardUnits: 4,
53
+ arguments: {
54
+ maxSites: DEFAULT_MAX_SITES,
55
+ viewMode: "map",
56
+ showLabels: true,
57
+ },
58
+ };
59
+ }
60
+
61
+ public static override getComponentConfigArguments(): Array<
62
+ ComponentArgument<DashboardNetworkMapComponent>
63
+ > {
64
+ const args: Array<ComponentArgument<DashboardNetworkMapComponent>> = [];
65
+
66
+ args.push({
67
+ name: "Title",
68
+ description: "Header shown above the map",
69
+ required: false,
70
+ type: ComponentInputType.Text,
71
+ id: "title",
72
+ section: DisplaySection,
73
+ });
74
+
75
+ args.push({
76
+ name: "View Mode",
77
+ description:
78
+ "Draw the sites on a world map (default), or list them in a table.",
79
+ required: false,
80
+ type: ComponentInputType.Dropdown,
81
+ id: "viewMode",
82
+ section: DisplaySection,
83
+ dropdownOptions: [
84
+ { label: "Map", value: "map" },
85
+ { label: "List", value: "list" },
86
+ ],
87
+ });
88
+
89
+ args.push({
90
+ name: "Max Sites",
91
+ description: "Maximum number of network sites to draw",
92
+ required: false,
93
+ type: ComponentInputType.Number,
94
+ id: "maxSites",
95
+ placeholder: String(DEFAULT_MAX_SITES),
96
+ section: DisplaySection,
97
+ });
98
+
99
+ args.push({
100
+ name: "Show Site Names",
101
+ description:
102
+ "Print each site's name under its marker. Names come off automatically when the map gets too busy for them to be readable.",
103
+ required: false,
104
+ type: ComponentInputType.Boolean,
105
+ id: "showLabels",
106
+ section: DisplaySection,
107
+ });
108
+
109
+ args.push({
110
+ name: "Site Types",
111
+ description:
112
+ "Only draw sites of these types — e.g. just the stores, or just the regional hubs.",
113
+ required: false,
114
+ type: ComponentInputType.EntityMultiSelectDropdown,
115
+ id: "networkSiteTypeIds",
116
+ section: FiltersSection,
117
+ entityFilterModelType: EntityFilterModelType.NetworkSiteType,
118
+ });
119
+
120
+ args.push({
121
+ name: "Status",
122
+ description: "Quick filter by the status rolled up onto the site",
123
+ required: false,
124
+ type: ComponentInputType.Dropdown,
125
+ id: "statusFilter",
126
+ section: FiltersSection,
127
+ dropdownOptions: [
128
+ { label: "All", value: "" },
129
+ { label: "Down only", value: "down" },
130
+ { label: "Operational only", value: "operational" },
131
+ ],
132
+ });
133
+
134
+ return args;
135
+ }
136
+ }
@@ -27,6 +27,7 @@ import DashboardKubernetesStatefulSetListComponentUtil from "./DashboardKubernet
27
27
  import DashboardLogStreamComponentUtil from "./DashboardLogStreamComponent";
28
28
  import DashboardLogChartComponentUtil from "./DashboardLogChartComponent";
29
29
  import DashboardMonitorListComponentUtil from "./DashboardMonitorListComponent";
30
+ import DashboardNetworkMapComponentUtil from "./DashboardNetworkMapComponent";
30
31
  import DashboardPodmanContainerListComponentUtil from "./DashboardPodmanContainerListComponent";
31
32
  import DashboardPodmanHostListComponentUtil from "./DashboardPodmanHostListComponent";
32
33
  import DashboardPodmanImageListComponentUtil from "./DashboardPodmanImageListComponent";
@@ -301,6 +302,12 @@ export default class DashboardComponentsUtil {
301
302
  >;
302
303
  }
303
304
 
305
+ if (dashboardComponentType === DashboardComponentType.NetworkMap) {
306
+ return DashboardNetworkMapComponentUtil.getComponentConfigArguments() as Array<
307
+ ComponentArgument<DashboardBaseComponent>
308
+ >;
309
+ }
310
+
304
311
  if (dashboardComponentType === DashboardComponentType.Html) {
305
312
  return DashboardHtmlComponentUtil.getComponentConfigArguments() as Array<
306
313
  ComponentArgument<DashboardBaseComponent>
@@ -0,0 +1,236 @@
1
+ import OneUptimeDate, { CalendarUnit } from "../../Types/Date";
2
+ import EventInterval from "../../Types/Events/EventInterval";
3
+ import Recurring from "../../Types/Events/Recurring";
4
+ import StatusPageReportPeriodType from "../../Types/StatusPage/StatusPageReportPeriodType";
5
+ import Timezone from "../../Types/Timezone";
6
+
7
+ /*
8
+ * The exact stretch of time one scheduled status page report covers, plus the
9
+ * strings the email and the settings screen use to describe it.
10
+ *
11
+ * Deliberately pure and synchronous, and deliberately in Common/Utils rather
12
+ * than Common/Server: the settings screen renders the very same window the
13
+ * worker will use, so what the user is shown before saving is what actually
14
+ * gets emailed. That is the whole point of the calendar option - a report is no
15
+ * longer "whatever the last 30 days happened to be when the cron fired".
16
+ */
17
+ export interface StatusPageReportPeriod {
18
+ // Inclusive. The first instant the report measures.
19
+ startDate: Date;
20
+ // Inclusive. The last instant the report measures.
21
+ endDate: Date;
22
+ // Whole days spanned, kept for display and for callers that think in days.
23
+ numberOfDays: number;
24
+ // The zone every boundary above was resolved in.
25
+ timezone: Timezone;
26
+ /*
27
+ * The `report.reportDates` template variable. Rolling windows keep the exact
28
+ * shape they have always had ("30 days (Jun 29, 2026 - Jul 29, 2026)") so
29
+ * customer-authored email templates written against it keep reading the same;
30
+ * calendar windows, which are new, are just the range.
31
+ */
32
+ reportDates: string;
33
+ /*
34
+ * How a sentence refers to the period: "the last 30 days", "July 2026",
35
+ * "the week of Jul 27, 2026". Reads correctly after "your status summary
36
+ * for ...", which the old string did not once periods stopped being rolling.
37
+ */
38
+ periodName: string;
39
+ }
40
+
41
+ export default class StatusPageReportPeriodUtil {
42
+ public static readonly DEFAULT_REPORT_DATA_IN_DAYS: number = 30;
43
+ public static readonly DEFAULT_TIMEZONE: Timezone = Timezone.UTC;
44
+
45
+ public static getDefaultPeriodType(): StatusPageReportPeriodType {
46
+ return StatusPageReportPeriodType.Rolling;
47
+ }
48
+
49
+ /*
50
+ * Resolve the window a report sent at `sentAt` (default: now) covers.
51
+ *
52
+ * Everything is optional because this is called with a half-filled form as
53
+ * the user types, and with columns that are null on status pages created
54
+ * before reports were configurable. Missing values fall back to the same
55
+ * defaults the database columns carry.
56
+ */
57
+ public static getReportPeriod(data: {
58
+ periodType?: StatusPageReportPeriodType | undefined;
59
+ reportRecurringInterval?: Recurring | undefined;
60
+ reportDataInDays?: number | undefined;
61
+ timezone?: Timezone | undefined;
62
+ sentAt?: Date | undefined;
63
+ }): StatusPageReportPeriod {
64
+ const timezone: Timezone = data.timezone || this.DEFAULT_TIMEZONE;
65
+ const sentAt: Date = data.sentAt || OneUptimeDate.getCurrentDate();
66
+
67
+ if (data.periodType === StatusPageReportPeriodType.PreviousCalendarPeriod) {
68
+ return this.getPreviousCalendarPeriod({
69
+ reportRecurringInterval: data.reportRecurringInterval,
70
+ timezone: timezone,
71
+ sentAt: sentAt,
72
+ });
73
+ }
74
+
75
+ return this.getRollingPeriod({
76
+ reportDataInDays: data.reportDataInDays,
77
+ timezone: timezone,
78
+ sentAt: sentAt,
79
+ });
80
+ }
81
+
82
+ private static getRollingPeriod(data: {
83
+ reportDataInDays?: number | undefined;
84
+ timezone: Timezone;
85
+ sentAt: Date;
86
+ }): StatusPageReportPeriod {
87
+ const numberOfDays: number = this.toWholeDays(
88
+ data.reportDataInDays,
89
+ this.DEFAULT_REPORT_DATA_IN_DAYS,
90
+ );
91
+
92
+ const endDate: Date = data.sentAt;
93
+ const startDate: Date = OneUptimeDate.getSomeDaysAgoFromDate(
94
+ endDate,
95
+ numberOfDays,
96
+ );
97
+
98
+ return {
99
+ startDate: startDate,
100
+ endDate: endDate,
101
+ numberOfDays: numberOfDays,
102
+ timezone: data.timezone,
103
+ reportDates: `${numberOfDays} days (${this.formatDay(startDate, data.timezone)} - ${this.formatDay(endDate, data.timezone)})`,
104
+ periodName:
105
+ numberOfDays === 1 ? "the last day" : `the last ${numberOfDays} days`,
106
+ };
107
+ }
108
+
109
+ /*
110
+ * The last WHOLE calendar period before the report went out, sized by the
111
+ * send frequency. A monthly report sent at any point in August covers
112
+ * 1 Aug 00:00:00.000 minus one month through 31 Jul 23:59:59.999 - i.e. July,
113
+ * exactly as it reads on a calendar, in the status page's report timezone.
114
+ */
115
+ private static getPreviousCalendarPeriod(data: {
116
+ reportRecurringInterval?: Recurring | undefined;
117
+ timezone: Timezone;
118
+ sentAt: Date;
119
+ }): StatusPageReportPeriod {
120
+ const recurring: Recurring = data.reportRecurringInterval
121
+ ? Recurring.fromJSON(data.reportRecurringInterval)
122
+ : Recurring.getDefault();
123
+
124
+ const unit: CalendarUnit = Recurring.toCalendarUnit(recurring.intervalType);
125
+ const intervalCount: number = this.toWholeDays(
126
+ recurring.intervalCount?.toNumber(),
127
+ 1,
128
+ );
129
+
130
+ /*
131
+ * Exclusive upper bound: the start of the period the report is being sent
132
+ * IN, which is the first instant not yet covered. The inclusive endDate
133
+ * below steps back a millisecond from it so the email reads "Jul 31" rather
134
+ * than "Aug 1".
135
+ */
136
+ const endExclusive: Date = OneUptimeDate.getStartOfCalendarUnit(
137
+ data.sentAt,
138
+ unit,
139
+ data.timezone,
140
+ );
141
+
142
+ const startDate: Date = OneUptimeDate.addRemoveCalendarUnits(
143
+ endExclusive,
144
+ unit,
145
+ -intervalCount,
146
+ data.timezone,
147
+ );
148
+
149
+ const endDate: Date = new Date(endExclusive.getTime() - 1);
150
+
151
+ return {
152
+ startDate: startDate,
153
+ endDate: endDate,
154
+ numberOfDays: Math.max(
155
+ 1,
156
+ Math.round(
157
+ (endExclusive.getTime() - startDate.getTime()) /
158
+ OneUptimeDate.getMillisecondsInDays(1),
159
+ ),
160
+ ),
161
+ timezone: data.timezone,
162
+ reportDates: `${this.formatDay(startDate, data.timezone)} - ${this.formatDay(endDate, data.timezone)}`,
163
+ periodName: this.getCalendarPeriodName({
164
+ intervalType: recurring.intervalType,
165
+ intervalCount: intervalCount,
166
+ startDate: startDate,
167
+ endDate: endDate,
168
+ timezone: data.timezone,
169
+ }),
170
+ };
171
+ }
172
+
173
+ private static getCalendarPeriodName(data: {
174
+ intervalType: EventInterval;
175
+ intervalCount: number;
176
+ startDate: Date;
177
+ endDate: Date;
178
+ timezone: Timezone;
179
+ }): string {
180
+ /*
181
+ * Only a single-unit period has a name a reader already knows ("July 2026").
182
+ * Anything spanning several units, and hourly periods, are clearer as an
183
+ * explicit range.
184
+ */
185
+ if (data.intervalCount === 1) {
186
+ if (data.intervalType === EventInterval.Month) {
187
+ return this.format(data.startDate, "MMMM YYYY", data.timezone);
188
+ }
189
+
190
+ if (data.intervalType === EventInterval.Year) {
191
+ return this.format(data.startDate, "YYYY", data.timezone);
192
+ }
193
+
194
+ if (data.intervalType === EventInterval.Week) {
195
+ return `the week of ${this.formatDay(data.startDate, data.timezone)}`;
196
+ }
197
+
198
+ if (data.intervalType === EventInterval.Day) {
199
+ return this.formatDay(data.startDate, data.timezone);
200
+ }
201
+ }
202
+
203
+ return `${this.formatDay(data.startDate, data.timezone)} - ${this.formatDay(data.endDate, data.timezone)}`;
204
+ }
205
+
206
+ /*
207
+ * Guard against the nulls, decimals and zeroes a JSON column or a mid-edit
208
+ * form field can hold. A zero-length window would divide by zero downstream.
209
+ */
210
+ private static toWholeDays(
211
+ value: number | undefined | null,
212
+ fallback: number,
213
+ ): number {
214
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 1) {
215
+ return fallback;
216
+ }
217
+
218
+ return Math.floor(value);
219
+ }
220
+
221
+ private static formatDay(date: Date, timezone: Timezone): string {
222
+ return this.format(date, "MMM D, YYYY", timezone);
223
+ }
224
+
225
+ private static format(
226
+ date: Date,
227
+ format: string,
228
+ timezone: Timezone,
229
+ ): string {
230
+ return OneUptimeDate.getDateAsCustomFormattedStringInTimezone({
231
+ date: date,
232
+ format: format,
233
+ timezone: timezone,
234
+ });
235
+ }
236
+ }
@@ -0,0 +1,98 @@
1
+ /*
2
+ * Normalization for the OpenTelemetry `host.ip` resource attribute, which
3
+ * is an ARRAY of every address on every interface — not a single IP.
4
+ *
5
+ * On a Docker host with IPv6 enabled that array grows with the container
6
+ * count: the physical NIC, one address per docker bridge, one per veth,
7
+ * plus an IPv6 link-local per interface. 55 addresses / ~1450 characters
8
+ * has been observed in the wild (issue #3006), and there is no upper
9
+ * bound in the OTel spec.
10
+ *
11
+ * `Host.hostIpAddresses` is a `text` column so the realistic case is
12
+ * stored losslessly. These caps exist only so a pathological (or hostile)
13
+ * collector cannot push an unbounded blob into Postgres on every batch.
14
+ * They sit far above any plausible host, so in practice this function
15
+ * dedupes and joins and nothing else.
16
+ */
17
+
18
+ /** Maximum number of addresses retained. */
19
+ export const MAX_HOST_IP_ADDRESS_COUNT: number = 256;
20
+
21
+ /** Maximum length of the serialized, comma-separated list. */
22
+ export const MAX_HOST_IP_ADDRESSES_LENGTH: number = 10000;
23
+
24
+ const SEPARATOR: string = ", ";
25
+
26
+ /**
27
+ * Turn the raw `host.ip` values into the comma-separated string stored in
28
+ * `Host.hostIpAddresses`.
29
+ *
30
+ * - blank / whitespace-only entries are dropped,
31
+ * - each entry is trimmed,
32
+ * - duplicates are removed case-insensitively (IPv6 hex casing is not
33
+ * stable across resource detectors, so `FE80::1` and `fe80::1` are the
34
+ * same address),
35
+ * - source order is preserved — collectors report interfaces in a stable,
36
+ * meaningful order and reordering would churn the Hosts table column,
37
+ * - the result is capped by both address count and serialized length.
38
+ *
39
+ * Truncation always drops whole addresses from the tail. A half-written
40
+ * address would be worse than a missing one: it reads as a real address
41
+ * and there is no way for a consumer to tell it was cut.
42
+ *
43
+ * Returns `null` when nothing survives, so callers can leave the column
44
+ * untouched rather than writing an empty string.
45
+ */
46
+ export function normalizeHostIpAddresses(
47
+ ipAddresses: Array<string> | null | undefined,
48
+ ): string | null {
49
+ if (!ipAddresses || ipAddresses.length === 0) {
50
+ return null;
51
+ }
52
+
53
+ const seen: Set<string> = new Set<string>();
54
+ const kept: Array<string> = [];
55
+ let serializedLength: number = 0;
56
+
57
+ for (const raw of ipAddresses) {
58
+ if (typeof raw !== "string") {
59
+ continue;
60
+ }
61
+
62
+ const trimmed: string = raw.trim();
63
+ if (!trimmed) {
64
+ continue;
65
+ }
66
+
67
+ const dedupeKey: string = trimmed.toLowerCase();
68
+ if (seen.has(dedupeKey)) {
69
+ continue;
70
+ }
71
+
72
+ const lengthWithSeparator: number =
73
+ trimmed.length + (kept.length > 0 ? SEPARATOR.length : 0);
74
+
75
+ if (serializedLength + lengthWithSeparator > MAX_HOST_IP_ADDRESSES_LENGTH) {
76
+ /*
77
+ * Stop rather than continue: entries are already ordered by the
78
+ * collector, so skipping this one to squeeze in a shorter later one
79
+ * would make the stored list order-dependent on address width.
80
+ */
81
+ break;
82
+ }
83
+
84
+ seen.add(dedupeKey);
85
+ kept.push(trimmed);
86
+ serializedLength += lengthWithSeparator;
87
+
88
+ if (kept.length >= MAX_HOST_IP_ADDRESS_COUNT) {
89
+ break;
90
+ }
91
+ }
92
+
93
+ if (kept.length === 0) {
94
+ return null;
95
+ }
96
+
97
+ return kept.join(SEPARATOR);
98
+ }
@@ -14,6 +14,7 @@ import Columns from "../../../Types/Database/Columns";
14
14
  import ColumnType from "../../../Types/Database/ColumnType";
15
15
  import TableColumn, { getTableColumn, getTableColumns, } from "../../../Types/Database/TableColumn";
16
16
  import TableColumnType from "../../../Types/Database/TableColumnType";
17
+ import { coerceNumericColumnValue, isNumericTableColumnType, } from "../../../Types/Database/NumericColumnValue";
17
18
  import { getFirstColorFieldColumn } from "../../../Types/Database/ColorField";
18
19
  import BadDataException from "../../../Types/Exception/BadDataException";
19
20
  import JSONFunctions from "../../../Types/JSONFunctions";
@@ -385,6 +386,17 @@ export default class DatabaseBaseModel extends BaseEntity {
385
386
  }
386
387
  baseModel[key] = this.fromJSONArray(json[key], tableColumnMetadata.modelType);
387
388
  }
389
+ else if (isNumericTableColumnType(tableColumnMetadata.type)) {
390
+ /*
391
+ * An `<input type="number">` hands back a string, so the dashboard
392
+ * posts "10" for a number column. This is the one place that knows
393
+ * the column's declared type, and it runs on both sides of the
394
+ * wire — ModelForm on the way out, BaseAPI on the way in — so a
395
+ * number column holds a number before any hook or validator reads
396
+ * it. See Types/Database/NumericColumnValue.
397
+ */
398
+ baseModel[key] = coerceNumericColumnValue(json[key]);
399
+ }
388
400
  else {
389
401
  baseModel[key] = json[key];
390
402
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseBaseModel.js","sourceRoot":"","sources":["../../../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseBaseModel.js","sourceRoot":"","sources":["../../../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,15 @@ let Host = class Host extends BaseModel {
49
49
  this.hostId = undefined;
50
50
  this.hostArch = undefined;
51
51
  this.hostType = undefined;
52
+ /*
53
+ * `text`, not varchar(500). A Docker/Kubernetes host with IPv6 enabled
54
+ * reports one host.ip entry per interface — physical NICs, docker
55
+ * bridges, every veth, plus an IPv6 link-local per interface. Real
56
+ * reports of 55 addresses / ~1450 characters exist, and the count grows
57
+ * with the number of containers, so any fixed bound is the wrong shape
58
+ * here. Overflowing it used to abort the whole Host metadata write and
59
+ * strand the host as "disconnected" (issue #3006).
60
+ */
52
61
  this.hostIpAddresses = undefined;
53
62
  this.cpuCores = undefined;
54
63
  this.totalMemoryBytes = undefined;
@@ -619,16 +628,15 @@ __decorate([
619
628
  }),
620
629
  TableColumn({
621
630
  required: false,
622
- type: TableColumnType.LongText,
631
+ type: TableColumnType.VeryLongText,
623
632
  canReadOnRelationQuery: true,
624
633
  title: "Host IP Addresses",
625
- description: "Comma-separated list of IP addresses reported by the OTel host.ip resource attribute. The first non-loopback IPv4 is used for display.",
634
+ description: "Comma-separated list of every IP address reported by the OTel host.ip resource attribute, in the order the collector reported them, deduplicated. The Hosts list shows the most routable one (IPv4, non-loopback, non-link-local) first; the host detail page groups them all by category.",
626
635
  example: "192.168.1.42, 10.0.0.5",
627
636
  }),
628
637
  Column({
629
638
  nullable: true,
630
- type: ColumnType.LongText,
631
- length: ColumnLength.LongText,
639
+ type: ColumnType.VeryLongText,
632
640
  }),
633
641
  __metadata("design:type", String)
634
642
  ], Host.prototype, "hostIpAddresses", void 0);