@oneuptime/common 10.4.17 → 10.5.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 (318) hide show
  1. package/Models/AnalyticsModels/ExceptionInstance.ts +24 -0
  2. package/Models/AnalyticsModels/Log.ts +16 -0
  3. package/Models/AnalyticsModels/Metric.ts +31 -0
  4. package/Models/AnalyticsModels/MonitorLog.ts +5 -0
  5. package/Models/AnalyticsModels/Profile.ts +25 -0
  6. package/Models/AnalyticsModels/ProfileSample.ts +20 -0
  7. package/Models/AnalyticsModels/Span.ts +23 -0
  8. package/Models/DatabaseModels/AlertEpisodeMember.ts +2 -0
  9. package/Models/DatabaseModels/AlertGroupingRule.ts +0 -38
  10. package/Models/DatabaseModels/AlertLabelRule.ts +152 -0
  11. package/Models/DatabaseModels/AlertOwnerRule.ts +114 -0
  12. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +7 -0
  13. package/Models/DatabaseModels/IncidentEpisodeMember.ts +2 -0
  14. package/Models/DatabaseModels/IncidentGroupingRule.ts +0 -38
  15. package/Models/DatabaseModels/IncidentLabelRule.ts +114 -0
  16. package/Models/DatabaseModels/IncidentMember.ts +2 -0
  17. package/Models/DatabaseModels/IncidentOwnerRule.ts +114 -0
  18. package/Models/DatabaseModels/IncidentSla.ts +2 -0
  19. package/Models/DatabaseModels/IncidentTemplate.ts +224 -0
  20. package/Models/DatabaseModels/Index.ts +2 -2
  21. package/Models/DatabaseModels/MetricPipelineRule.ts +2 -0
  22. package/Models/DatabaseModels/MonitorProbe.ts +2 -0
  23. package/Models/DatabaseModels/MonitorTest.ts +2 -0
  24. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.ts +2 -0
  25. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.ts +2 -0
  26. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.ts +2 -0
  27. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.ts +2 -0
  28. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +2 -0
  29. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +2 -0
  30. package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +2 -0
  31. package/Models/DatabaseModels/OnCallDutyPolicyUserOverride.ts +2 -0
  32. package/Models/DatabaseModels/ProjectOidc.ts +4 -0
  33. package/Models/DatabaseModels/ProjectSCIM.ts +4 -0
  34. package/Models/DatabaseModels/ProjectSso.ts +4 -0
  35. package/Models/DatabaseModels/ScheduledMaintenance.ts +220 -0
  36. package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +152 -0
  37. package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +152 -0
  38. package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +224 -0
  39. package/Models/DatabaseModels/StatusPageOidc.ts +6 -0
  40. package/Models/DatabaseModels/StatusPageSCIM.ts +4 -0
  41. package/Models/DatabaseModels/StatusPageSCIMLog.ts +2 -0
  42. package/Models/DatabaseModels/StatusPageSso.ts +6 -0
  43. package/Models/DatabaseModels/Team.ts +41 -0
  44. package/Models/DatabaseModels/TeamComplianceSetting.ts +4 -0
  45. package/Models/DatabaseModels/{ServiceMonitor.ts → TeamCustomField.ts} +95 -200
  46. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  47. package/Models/DatabaseModels/UserOnCallLog.ts +2 -0
  48. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +2 -0
  49. package/Models/DatabaseModels/WorkflowLog.ts +2 -0
  50. package/Models/DatabaseModels/WorkflowVariable.ts +2 -0
  51. package/Server/EnvironmentConfig.ts +3 -0
  52. package/Server/Infrastructure/Postgres/SchemaMigrations/1779392865146-AddAgentVersionToKubernetesDockerHost.ts +1 -1
  53. package/Server/Infrastructure/Postgres/SchemaMigrations/1779653508434-AddLabelInheritanceAndScheduledMaintenanceResources.ts +160 -0
  54. package/Server/Infrastructure/Postgres/SchemaMigrations/1779708719656-AddAffectedResourcesToTemplates.ts +197 -0
  55. package/Server/Infrastructure/Postgres/SchemaMigrations/1779739410559-MigrationName.ts +36 -0
  56. package/Server/Infrastructure/Postgres/SchemaMigrations/1779742211961-AttachServiceToScheduledMaintenanceTemplatesAndLabelRules.ts +128 -0
  57. package/Server/Infrastructure/Postgres/SchemaMigrations/1779790539196-MigrationName.ts +53 -0
  58. package/Server/Infrastructure/Postgres/SchemaMigrations/1779823516881-ExpandOwnerRuleInheritFlags.ts +73 -0
  59. package/Server/Infrastructure/Postgres/SchemaMigrations/1779827700000-RenameStatusPageZhToZhCN.ts +62 -0
  60. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
  61. package/Server/Middleware/TelemetryIngestionDisabled.ts +32 -0
  62. package/Server/Services/AlertGroupingEngineService.ts +0 -29
  63. package/Server/Services/AlertLabelRuleEngineService.ts +129 -0
  64. package/Server/Services/AlertOwnerRuleEngineService.ts +205 -1
  65. package/Server/Services/IncidentGroupingEngineService.ts +0 -37
  66. package/Server/Services/IncidentLabelRuleEngineService.ts +83 -0
  67. package/Server/Services/IncidentOwnerRuleEngineService.ts +208 -10
  68. package/Server/Services/IncidentService.ts +139 -1
  69. package/Server/Services/Index.ts +0 -2
  70. package/Server/Services/MonitorProbeService.ts +56 -0
  71. package/Server/Services/MonitorService.ts +55 -0
  72. package/Server/Services/ProjectService.ts +17 -8
  73. package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +129 -0
  74. package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +289 -7
  75. package/Server/Services/StatusPageService.ts +30 -0
  76. package/Server/Services/TeamCustomFieldService.ts +9 -0
  77. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +226 -28
  78. package/Server/Types/Database/Permissions/EditionPermission.ts +46 -0
  79. package/Server/Types/Database/Permissions/TablePermission.ts +8 -1
  80. package/Server/Utils/Monitor/MonitorAlert.ts +35 -0
  81. package/Server/Utils/Monitor/MonitorIncident.ts +244 -34
  82. package/Tests/Server/Middleware/UserAuthorization.test.ts +11 -19
  83. package/Tests/Types/Permission.test.ts +129 -1
  84. package/Types/Accounts/AccountsLanguage.ts +10 -1
  85. package/Types/AdminDashboard/AdminDashboardLanguage.ts +10 -1
  86. package/Types/BaseDatabase/TableEditionAccessControl.ts +3 -0
  87. package/Types/Dashboard/DashboardLanguage.ts +10 -1
  88. package/Types/Database/AccessControl/TableEditionAccessControl.ts +8 -0
  89. package/Types/Date.ts +1 -1
  90. package/Types/Docs/DocsLanguage.ts +10 -1
  91. package/Types/Permission.ts +87 -54
  92. package/Types/StatusPage/StatusPageLanguage.ts +10 -1
  93. package/UI/Components/Charts/Area/AreaChart.tsx +1 -1
  94. package/UI/Components/Charts/Bar/BarChart.tsx +1 -1
  95. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +5 -1
  96. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +1 -1
  97. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +11 -1
  98. package/UI/Components/Charts/Line/LineChart.tsx +1 -1
  99. package/UI/Components/Charts/Utils/XAxis.ts +21 -48
  100. package/UI/Components/EntityDropdown/EntityDropdown.tsx +1808 -0
  101. package/UI/Components/Forms/Fields/FormField.tsx +69 -29
  102. package/UI/Components/Link/Link.tsx +13 -1
  103. package/UI/Components/ModelDetail/ModelDetail.tsx +20 -19
  104. package/UI/Components/ModelTable/BaseModelTable.tsx +5 -0
  105. package/UI/Utils/User.ts +16 -0
  106. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +39 -2
  107. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  108. package/build/dist/Models/AnalyticsModels/Log.js +16 -0
  109. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  110. package/build/dist/Models/AnalyticsModels/Metric.js +31 -0
  111. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  112. package/build/dist/Models/AnalyticsModels/MonitorLog.js +5 -0
  113. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  114. package/build/dist/Models/AnalyticsModels/Profile.js +40 -2
  115. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  116. package/build/dist/Models/AnalyticsModels/ProfileSample.js +35 -2
  117. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  118. package/build/dist/Models/AnalyticsModels/Span.js +23 -0
  119. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  120. package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js +2 -0
  121. package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js.map +1 -1
  122. package/build/dist/Models/DatabaseModels/AlertGroupingRule.js +0 -39
  123. package/build/dist/Models/DatabaseModels/AlertGroupingRule.js.map +1 -1
  124. package/build/dist/Models/DatabaseModels/AlertLabelRule.js +156 -0
  125. package/build/dist/Models/DatabaseModels/AlertLabelRule.js.map +1 -1
  126. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js +117 -0
  127. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js.map +1 -1
  128. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  129. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +2 -0
  130. package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -1
  131. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +0 -39
  132. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -1
  133. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js +117 -0
  134. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js.map +1 -1
  135. package/build/dist/Models/DatabaseModels/IncidentMember.js +2 -0
  136. package/build/dist/Models/DatabaseModels/IncidentMember.js.map +1 -1
  137. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js +117 -0
  138. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js.map +1 -1
  139. package/build/dist/Models/DatabaseModels/IncidentSla.js +2 -0
  140. package/build/dist/Models/DatabaseModels/IncidentSla.js.map +1 -1
  141. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +216 -0
  142. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
  143. package/build/dist/Models/DatabaseModels/Index.js +2 -2
  144. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  145. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js +2 -0
  146. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js.map +1 -1
  147. package/build/dist/Models/DatabaseModels/MonitorProbe.js +2 -0
  148. package/build/dist/Models/DatabaseModels/MonitorProbe.js.map +1 -1
  149. package/build/dist/Models/DatabaseModels/MonitorTest.js +2 -0
  150. package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
  151. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js +2 -0
  152. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js.map +1 -1
  153. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js +2 -0
  154. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js.map +1 -1
  155. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js +2 -0
  156. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js.map +1 -1
  157. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js +2 -0
  158. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js.map +1 -1
  159. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +2 -0
  160. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
  161. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +2 -0
  162. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
  163. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +2 -0
  164. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
  165. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js +2 -0
  166. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js.map +1 -1
  167. package/build/dist/Models/DatabaseModels/ProjectOidc.js +4 -0
  168. package/build/dist/Models/DatabaseModels/ProjectOidc.js.map +1 -1
  169. package/build/dist/Models/DatabaseModels/ProjectSCIM.js +4 -0
  170. package/build/dist/Models/DatabaseModels/ProjectSCIM.js.map +1 -1
  171. package/build/dist/Models/DatabaseModels/ProjectSso.js +4 -0
  172. package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
  173. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +216 -0
  174. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  175. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +156 -0
  176. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -1
  177. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +156 -0
  178. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -1
  179. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +216 -0
  180. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
  181. package/build/dist/Models/DatabaseModels/StatusPageOidc.js +6 -0
  182. package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -1
  183. package/build/dist/Models/DatabaseModels/StatusPageSCIM.js +4 -0
  184. package/build/dist/Models/DatabaseModels/StatusPageSCIM.js.map +1 -1
  185. package/build/dist/Models/DatabaseModels/StatusPageSCIMLog.js +2 -0
  186. package/build/dist/Models/DatabaseModels/StatusPageSCIMLog.js.map +1 -1
  187. package/build/dist/Models/DatabaseModels/StatusPageSso.js +6 -0
  188. package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -1
  189. package/build/dist/Models/DatabaseModels/Team.js +42 -0
  190. package/build/dist/Models/DatabaseModels/Team.js.map +1 -1
  191. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +4 -0
  192. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
  193. package/build/dist/Models/DatabaseModels/{ServiceMonitor.js → TeamCustomField.js} +108 -209
  194. package/build/dist/Models/DatabaseModels/TeamCustomField.js.map +1 -0
  195. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  196. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  197. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +2 -0
  198. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
  199. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +2 -0
  200. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  201. package/build/dist/Models/DatabaseModels/WorkflowLog.js +2 -0
  202. package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -1
  203. package/build/dist/Models/DatabaseModels/WorkflowVariable.js +2 -0
  204. package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
  205. package/build/dist/Server/EnvironmentConfig.js +1 -0
  206. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  207. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779392865146-AddAgentVersionToKubernetesDockerHost.js.map +1 -1
  208. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779653508434-AddLabelInheritanceAndScheduledMaintenanceResources.js +60 -0
  209. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779653508434-AddLabelInheritanceAndScheduledMaintenanceResources.js.map +1 -0
  210. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779708719656-AddAffectedResourcesToTemplates.js +74 -0
  211. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779708719656-AddAffectedResourcesToTemplates.js.map +1 -0
  212. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779739410559-MigrationName.js +19 -0
  213. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779739410559-MigrationName.js.map +1 -0
  214. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779742211961-AttachServiceToScheduledMaintenanceTemplatesAndLabelRules.js +50 -0
  215. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779742211961-AttachServiceToScheduledMaintenanceTemplatesAndLabelRules.js.map +1 -0
  216. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779790539196-MigrationName.js +26 -0
  217. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779790539196-MigrationName.js.map +1 -0
  218. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779823516881-ExpandOwnerRuleInheritFlags.js +30 -0
  219. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779823516881-ExpandOwnerRuleInheritFlags.js.map +1 -0
  220. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779827700000-RenameStatusPageZhToZhCN.js +50 -0
  221. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1779827700000-RenameStatusPageZhToZhCN.js.map +1 -0
  222. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
  223. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  224. package/build/dist/Server/Middleware/TelemetryIngestionDisabled.js +22 -0
  225. package/build/dist/Server/Middleware/TelemetryIngestionDisabled.js.map +1 -0
  226. package/build/dist/Server/Services/AlertGroupingEngineService.js +0 -25
  227. package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
  228. package/build/dist/Server/Services/AlertLabelRuleEngineService.js +117 -3
  229. package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
  230. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +175 -5
  231. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
  232. package/build/dist/Server/Services/IncidentGroupingEngineService.js +0 -31
  233. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
  234. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +76 -3
  235. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
  236. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +176 -14
  237. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
  238. package/build/dist/Server/Services/IncidentService.js +104 -1
  239. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  240. package/build/dist/Server/Services/Index.js +0 -2
  241. package/build/dist/Server/Services/Index.js.map +1 -1
  242. package/build/dist/Server/Services/MonitorProbeService.js +46 -0
  243. package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
  244. package/build/dist/Server/Services/MonitorService.js +40 -0
  245. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  246. package/build/dist/Server/Services/ProjectService.js +17 -8
  247. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  248. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +117 -3
  249. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
  250. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +245 -10
  251. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
  252. package/build/dist/Server/Services/StatusPageService.js +24 -0
  253. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  254. package/build/dist/Server/Services/TeamCustomFieldService.js +9 -0
  255. package/build/dist/Server/Services/TeamCustomFieldService.js.map +1 -0
  256. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +166 -26
  257. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  258. package/build/dist/Server/Types/Database/Permissions/EditionPermission.js +45 -0
  259. package/build/dist/Server/Types/Database/Permissions/EditionPermission.js.map +1 -0
  260. package/build/dist/Server/Types/Database/Permissions/TablePermission.js +7 -1
  261. package/build/dist/Server/Types/Database/Permissions/TablePermission.js.map +1 -1
  262. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +30 -0
  263. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  264. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +200 -31
  265. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  266. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +8 -15
  267. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +1 -1
  268. package/build/dist/Tests/Types/Permission.test.js +90 -1
  269. package/build/dist/Tests/Types/Permission.test.js.map +1 -1
  270. package/build/dist/Types/Accounts/AccountsLanguage.js +10 -1
  271. package/build/dist/Types/Accounts/AccountsLanguage.js.map +1 -1
  272. package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js +10 -1
  273. package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js.map +1 -1
  274. package/build/dist/Types/BaseDatabase/TableEditionAccessControl.js +2 -0
  275. package/build/dist/Types/BaseDatabase/TableEditionAccessControl.js.map +1 -0
  276. package/build/dist/Types/Dashboard/DashboardLanguage.js +10 -1
  277. package/build/dist/Types/Dashboard/DashboardLanguage.js.map +1 -1
  278. package/build/dist/Types/Database/AccessControl/TableEditionAccessControl.js +6 -0
  279. package/build/dist/Types/Database/AccessControl/TableEditionAccessControl.js.map +1 -0
  280. package/build/dist/Types/Date.js +1 -1
  281. package/build/dist/Types/Date.js.map +1 -1
  282. package/build/dist/Types/Docs/DocsLanguage.js +10 -1
  283. package/build/dist/Types/Docs/DocsLanguage.js.map +1 -1
  284. package/build/dist/Types/Permission.js +80 -44
  285. package/build/dist/Types/Permission.js.map +1 -1
  286. package/build/dist/Types/StatusPage/StatusPageLanguage.js +10 -1
  287. package/build/dist/Types/StatusPage/StatusPageLanguage.js.map +1 -1
  288. package/build/dist/UI/Components/Charts/Area/AreaChart.js +1 -1
  289. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  290. package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
  291. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  292. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +5 -1
  293. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  294. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +1 -1
  295. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  296. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +11 -1
  297. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  298. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  299. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  300. package/build/dist/UI/Components/Charts/Utils/XAxis.js +21 -47
  301. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  302. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +1125 -0
  303. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -0
  304. package/build/dist/UI/Components/Forms/Fields/FormField.js +28 -10
  305. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  306. package/build/dist/UI/Components/Link/Link.js +11 -2
  307. package/build/dist/UI/Components/Link/Link.js.map +1 -1
  308. package/build/dist/UI/Components/ModelDetail/ModelDetail.js +20 -18
  309. package/build/dist/UI/Components/ModelDetail/ModelDetail.js.map +1 -1
  310. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +4 -0
  311. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  312. package/build/dist/UI/Utils/User.js +13 -0
  313. package/build/dist/UI/Utils/User.js.map +1 -1
  314. package/package.json +1 -1
  315. package/Server/Services/ServiceMonitorService.ts +0 -57
  316. package/build/dist/Models/DatabaseModels/ServiceMonitor.js.map +0 -1
  317. package/build/dist/Server/Services/ServiceMonitorService.js +0 -56
  318. package/build/dist/Server/Services/ServiceMonitorService.js.map +0 -1
@@ -104,7 +104,6 @@ import ScheduledMaintenanceStateTimelineService from "./ScheduledMaintenanceStat
104
104
  import ServiceOwnerTeamService from "./ServiceOwnerTeamService";
105
105
  import ServiceOwnerUserService from "./ServiceOwnerUserService";
106
106
  import ServiceService from "./ServiceService";
107
- import ServiceMonitorService from "./ServiceMonitorService";
108
107
  import ServiceCodeRepositoryService from "./ServiceCodeRepositoryService";
109
108
  import ShortLinkService from "./ShortLinkService";
110
109
  // SMS Log Service
@@ -387,7 +386,6 @@ const services: Array<BaseService> = [
387
386
  ServiceService,
388
387
  ServiceOwnerTeamService,
389
388
  ServiceOwnerUserService,
390
- ServiceMonitorService,
391
389
  ServiceCodeRepositoryService,
392
390
 
393
391
  TelemetryExceptionService,
@@ -18,6 +18,62 @@ export class Service extends DatabaseService<MonitorProbe> {
18
18
  super(MonitorProbe);
19
19
  }
20
20
 
21
+ public async pruneStaleLastMonitoringLogEntries(data: {
22
+ monitorId: ObjectID;
23
+ validMonitorStepIds: Array<string>;
24
+ }): Promise<void> {
25
+ const validIdSet: Set<string> = new Set(data.validMonitorStepIds);
26
+
27
+ const monitorProbes: Array<MonitorProbe> = await this.findBy({
28
+ query: {
29
+ monitorId: data.monitorId,
30
+ },
31
+ select: {
32
+ _id: true,
33
+ lastMonitoringLog: true,
34
+ },
35
+ limit: LIMIT_PER_PROJECT,
36
+ skip: 0,
37
+ props: {
38
+ isRoot: true,
39
+ },
40
+ });
41
+
42
+ for (const monitorProbe of monitorProbes) {
43
+ if (!monitorProbe.id || !monitorProbe.lastMonitoringLog) {
44
+ continue;
45
+ }
46
+
47
+ const existingLog: Record<string, unknown> =
48
+ monitorProbe.lastMonitoringLog as unknown as Record<string, unknown>;
49
+ const existingKeys: Array<string> = Object.keys(existingLog);
50
+ const prunedLog: Record<string, unknown> = {};
51
+ let removedAny: boolean = false;
52
+
53
+ for (const key of existingKeys) {
54
+ if (validIdSet.has(key)) {
55
+ prunedLog[key] = existingLog[key];
56
+ } else {
57
+ removedAny = true;
58
+ }
59
+ }
60
+
61
+ if (!removedAny) {
62
+ continue;
63
+ }
64
+
65
+ await this.updateOneById({
66
+ id: monitorProbe.id,
67
+ data: {
68
+ lastMonitoringLog: prunedLog as any,
69
+ },
70
+ props: {
71
+ isRoot: true,
72
+ },
73
+ });
74
+ }
75
+ }
76
+
21
77
  public async updateNextPingAtForMonitor(data: {
22
78
  monitorId: ObjectID;
23
79
  }): Promise<void> {
@@ -155,6 +155,50 @@ export class Service extends DatabaseService<Model> {
155
155
  };
156
156
  }
157
157
 
158
+ public extractMonitorStepIds(
159
+ monitorSteps: MonitorSteps | JSONObject,
160
+ ): Array<string> {
161
+ const stepIds: Array<string> = [];
162
+
163
+ let stepsArray: Array<MonitorStep | JSONObject> = [];
164
+
165
+ if (monitorSteps instanceof MonitorSteps) {
166
+ stepsArray = monitorSteps.data?.monitorStepsInstanceArray || [];
167
+ } else if (monitorSteps && typeof monitorSteps === "object") {
168
+ const value: JSONObject | undefined = (monitorSteps as JSONObject)[
169
+ "value"
170
+ ] as JSONObject | undefined;
171
+ const rawArray: unknown = value
172
+ ? value["monitorStepsInstanceArray"]
173
+ : (monitorSteps as JSONObject)["monitorStepsInstanceArray"];
174
+
175
+ if (Array.isArray(rawArray)) {
176
+ stepsArray = rawArray as Array<JSONObject>;
177
+ }
178
+ }
179
+
180
+ for (const step of stepsArray) {
181
+ let stepId: string | undefined;
182
+
183
+ if (step instanceof MonitorStep) {
184
+ stepId = step.data?.id;
185
+ } else if (step && typeof step === "object") {
186
+ const wrappedValue: JSONObject | undefined = (step as JSONObject)[
187
+ "value"
188
+ ] as JSONObject | undefined;
189
+ stepId = (wrappedValue?.["id"] || (step as JSONObject)["id"]) as
190
+ | string
191
+ | undefined;
192
+ }
193
+
194
+ if (stepId) {
195
+ stepIds.push(stepId.toString());
196
+ }
197
+ }
198
+
199
+ return stepIds;
200
+ }
201
+
158
202
  public async refreshMonitorCurrentStatus(monitorId: ObjectID): Promise<void> {
159
203
  const monitor: Model | null = await this.findOneById({
160
204
  id: monitorId,
@@ -363,6 +407,17 @@ export class Service extends DatabaseService<Model> {
363
407
  });
364
408
  }
365
409
 
410
+ if (onUpdate.updateBy.data.monitorSteps) {
411
+ const validMonitorStepIds: Array<string> = this.extractMonitorStepIds(
412
+ onUpdate.updateBy.data.monitorSteps as MonitorSteps | JSONObject,
413
+ );
414
+
415
+ await MonitorProbeService.pruneStaleLastMonitoringLogEntries({
416
+ monitorId: monitorId,
417
+ validMonitorStepIds: validMonitorStepIds,
418
+ });
419
+ }
420
+
366
421
  if (onUpdate.updateBy.data.name) {
367
422
  // add monitor feed.
368
423
 
@@ -775,14 +775,23 @@ export class ProjectService extends DatabaseService<Model> {
775
775
  }
776
776
  }
777
777
 
778
- createdItem = await this.addDefaultIncidentSeverity(createdItem);
779
- createdItem = await this.addDefaultAlertSeverity(createdItem);
780
- createdItem = await this.addDefaultProjectTeams(createdItem);
781
- createdItem = await this.addDefaultMonitorStatus(createdItem);
782
- createdItem = await this.addDefaultIncidentState(createdItem);
783
- createdItem = await this.addDefaultScheduledMaintenanceState(createdItem);
784
- createdItem = await this.addDefaultAlertState(createdItem);
785
- createdItem = await this.addDefaultIncidentRoles(createdItem);
778
+ /*
779
+ * Each addDefault* method only reads `createdItem.id` and writes rows to a
780
+ * distinct table; none of them mutate `createdItem`. Running them in
781
+ * parallel cuts the onCreate hook latency from sum-of-8 sequential DB
782
+ * round-trips to max-of-8, which removes ~hundreds of ms on project
783
+ * create.
784
+ */
785
+ await Promise.all([
786
+ this.addDefaultIncidentSeverity(createdItem),
787
+ this.addDefaultAlertSeverity(createdItem),
788
+ this.addDefaultProjectTeams(createdItem),
789
+ this.addDefaultMonitorStatus(createdItem),
790
+ this.addDefaultIncidentState(createdItem),
791
+ this.addDefaultScheduledMaintenanceState(createdItem),
792
+ this.addDefaultAlertState(createdItem),
793
+ this.addDefaultIncidentRoles(createdItem),
794
+ ]);
786
795
 
787
796
  if (NotificationSlackWebhookOnCreateProject) {
788
797
  // fetch project again.
@@ -1,9 +1,17 @@
1
+ import DockerHost from "../../Models/DatabaseModels/DockerHost";
2
+ import Host from "../../Models/DatabaseModels/Host";
3
+ import KubernetesCluster from "../../Models/DatabaseModels/KubernetesCluster";
1
4
  import Label from "../../Models/DatabaseModels/Label";
2
5
  import Monitor from "../../Models/DatabaseModels/Monitor";
3
6
  import ScheduledMaintenance from "../../Models/DatabaseModels/ScheduledMaintenance";
4
7
  import ScheduledMaintenanceLabelRule from "../../Models/DatabaseModels/ScheduledMaintenanceLabelRule";
8
+ import Service from "../../Models/DatabaseModels/Service";
9
+ import DockerHostService from "./DockerHostService";
10
+ import HostService from "./HostService";
11
+ import KubernetesClusterService from "./KubernetesClusterService";
5
12
  import LabelService from "./LabelService";
6
13
  import MonitorService from "./MonitorService";
14
+ import ServiceService from "./ServiceService";
7
15
  import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
8
16
  import ScheduledMaintenanceLabelRuleService from "./ScheduledMaintenanceLabelRuleService";
9
17
  import ScheduledMaintenanceService from "./ScheduledMaintenanceService";
@@ -21,6 +29,10 @@ class ScheduledMaintenanceLabelRuleEngineServiceClass {
21
29
  * attaches matched labels to the event. Each matched rule contributes:
22
30
  * - labels listed on `labelsToAdd`
23
31
  * - all labels of the event's monitors when `inheritLabelsFromMonitors`
32
+ * - all labels of the event's hosts when `inheritLabelsFromHosts`
33
+ * - all labels of the event's Kubernetes clusters when `inheritLabelsFromKubernetesClusters`
34
+ * - all labels of the event's Docker hosts when `inheritLabelsFromDockerHosts`
35
+ * - all labels of the event's services when `inheritLabelsFromServices`
24
36
  * The union is deduped against labels already on the event before insert
25
37
  * to avoid PK conflicts on the ScheduledMaintenanceLabel join table.
26
38
  */
@@ -52,6 +64,10 @@ class ScheduledMaintenanceLabelRuleEngineServiceClass {
52
64
  monitorDescriptionPattern: true,
53
65
  labelsToAdd: { _id: true },
54
66
  inheritLabelsFromMonitors: true,
67
+ inheritLabelsFromHosts: true,
68
+ inheritLabelsFromKubernetesClusters: true,
69
+ inheritLabelsFromDockerHosts: true,
70
+ inheritLabelsFromServices: true,
55
71
  },
56
72
  limit: 100,
57
73
  skip: 0,
@@ -63,6 +79,10 @@ class ScheduledMaintenanceLabelRuleEngineServiceClass {
63
79
 
64
80
  const labelIdsToAdd: Set<string> = new Set();
65
81
  let inheritFromMonitors: boolean = false;
82
+ let inheritFromHosts: boolean = false;
83
+ let inheritFromKubernetesClusters: boolean = false;
84
+ let inheritFromDockerHosts: boolean = false;
85
+ let inheritFromServices: boolean = false;
66
86
  const matchedRules: Array<ScheduledMaintenanceLabelRule> = [];
67
87
 
68
88
  for (const rule of rules) {
@@ -82,6 +102,38 @@ class ScheduledMaintenanceLabelRuleEngineServiceClass {
82
102
  if (rule.inheritLabelsFromMonitors) {
83
103
  inheritFromMonitors = true;
84
104
  }
105
+ if (rule.inheritLabelsFromHosts) {
106
+ inheritFromHosts = true;
107
+ }
108
+ if (rule.inheritLabelsFromKubernetesClusters) {
109
+ inheritFromKubernetesClusters = true;
110
+ }
111
+ if (rule.inheritLabelsFromDockerHosts) {
112
+ inheritFromDockerHosts = true;
113
+ }
114
+ if (rule.inheritLabelsFromServices) {
115
+ inheritFromServices = true;
116
+ }
117
+ }
118
+
119
+ const needsRelatedResources: boolean =
120
+ inheritFromHosts ||
121
+ inheritFromKubernetesClusters ||
122
+ inheritFromDockerHosts ||
123
+ inheritFromServices;
124
+
125
+ let eventWithResources: ScheduledMaintenance | null = null;
126
+ if (needsRelatedResources) {
127
+ eventWithResources = await ScheduledMaintenanceService.findOneById({
128
+ id: scheduledMaintenance.id,
129
+ select: {
130
+ hosts: { _id: true },
131
+ kubernetesClusters: { _id: true },
132
+ dockerHosts: { _id: true },
133
+ services: { _id: true },
134
+ },
135
+ props: { isRoot: true },
136
+ });
85
137
  }
86
138
 
87
139
  if (inheritFromMonitors && scheduledMaintenance.monitors?.length) {
@@ -102,6 +154,83 @@ class ScheduledMaintenanceLabelRuleEngineServiceClass {
102
154
  }
103
155
  }
104
156
 
157
+ if (inheritFromHosts && eventWithResources?.hosts?.length) {
158
+ for (const eventHost of eventWithResources.hosts) {
159
+ if (!eventHost.id) {
160
+ continue;
161
+ }
162
+ const host: Host | null = await HostService.findOneById({
163
+ id: eventHost.id,
164
+ select: { labels: { _id: true } },
165
+ props: { isRoot: true },
166
+ });
167
+ for (const label of host?.labels || []) {
168
+ if (label.id) {
169
+ labelIdsToAdd.add(label.id.toString());
170
+ }
171
+ }
172
+ }
173
+ }
174
+
175
+ if (
176
+ inheritFromKubernetesClusters &&
177
+ eventWithResources?.kubernetesClusters?.length
178
+ ) {
179
+ for (const eventCluster of eventWithResources.kubernetesClusters) {
180
+ if (!eventCluster.id) {
181
+ continue;
182
+ }
183
+ const cluster: KubernetesCluster | null =
184
+ await KubernetesClusterService.findOneById({
185
+ id: eventCluster.id,
186
+ select: { labels: { _id: true } },
187
+ props: { isRoot: true },
188
+ });
189
+ for (const label of cluster?.labels || []) {
190
+ if (label.id) {
191
+ labelIdsToAdd.add(label.id.toString());
192
+ }
193
+ }
194
+ }
195
+ }
196
+
197
+ if (inheritFromDockerHosts && eventWithResources?.dockerHosts?.length) {
198
+ for (const eventDockerHost of eventWithResources.dockerHosts) {
199
+ if (!eventDockerHost.id) {
200
+ continue;
201
+ }
202
+ const dockerHost: DockerHost | null =
203
+ await DockerHostService.findOneById({
204
+ id: eventDockerHost.id,
205
+ select: { labels: { _id: true } },
206
+ props: { isRoot: true },
207
+ });
208
+ for (const label of dockerHost?.labels || []) {
209
+ if (label.id) {
210
+ labelIdsToAdd.add(label.id.toString());
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ if (inheritFromServices && eventWithResources?.services?.length) {
217
+ for (const eventService of eventWithResources.services) {
218
+ if (!eventService.id) {
219
+ continue;
220
+ }
221
+ const service: Service | null = await ServiceService.findOneById({
222
+ id: eventService.id,
223
+ select: { labels: { _id: true } },
224
+ props: { isRoot: true },
225
+ });
226
+ for (const label of service?.labels || []) {
227
+ if (label.id) {
228
+ labelIdsToAdd.add(label.id.toString());
229
+ }
230
+ }
231
+ }
232
+ }
233
+
105
234
  if (labelIdsToAdd.size === 0) {
106
235
  return;
107
236
  }