@oneuptime/common 10.0.53 → 10.0.55

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 (380) hide show
  1. package/Models/AnalyticsModels/Metric.ts +78 -0
  2. package/Server/API/AIAgentDataAPI.ts +6 -1
  3. package/Server/API/BillingAPI.ts +28 -6
  4. package/Server/API/CommonAPI.ts +11 -0
  5. package/Server/API/DashboardAPI.ts +6 -2
  6. package/Server/API/DashboardDomainAPI.ts +10 -3
  7. package/Server/API/GitHubAPI.ts +58 -14
  8. package/Server/API/MicrosoftTeamsAPI.ts +97 -33
  9. package/Server/API/OpenSourceDeploymentAPI.ts +2 -2
  10. package/Server/API/SlackAPI.ts +107 -36
  11. package/Server/API/StatusAPI.ts +37 -16
  12. package/Server/API/StatusPageAPI.ts +97 -23
  13. package/Server/API/StatusPageDomainAPI.ts +6 -3
  14. package/Server/API/UserAPI.ts +3 -3
  15. package/Server/API/UserCallAPI.ts +5 -2
  16. package/Server/API/UserEmailAPI.ts +5 -2
  17. package/Server/API/UserPushAPI.ts +9 -3
  18. package/Server/API/UserSmsAPI.ts +5 -2
  19. package/Server/API/UserWhatsAppAPI.ts +5 -2
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.ts +47 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.ts +35 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  23. package/Server/Middleware/NotificationMiddleware.ts +2 -2
  24. package/Server/Middleware/ProjectAuthorization.ts +6 -0
  25. package/Server/Middleware/SCIMAuthorization.ts +2 -1
  26. package/Server/Middleware/SlackAuthorization.ts +28 -10
  27. package/Server/Middleware/TelemetryIngest.ts +16 -3
  28. package/Server/Middleware/UserAuthorization.ts +22 -5
  29. package/Server/Middleware/WhatsAppAuthorization.ts +15 -4
  30. package/Server/Services/AIAgentService.ts +13 -6
  31. package/Server/Services/AIService.ts +9 -3
  32. package/Server/Services/AlertEpisodeFeedService.ts +17 -5
  33. package/Server/Services/AlertEpisodeService.ts +34 -3
  34. package/Server/Services/AlertEpisodeStateTimelineService.ts +80 -22
  35. package/Server/Services/AlertFeedService.ts +17 -5
  36. package/Server/Services/AlertGroupingEngineService.ts +36 -7
  37. package/Server/Services/AlertService.ts +60 -8
  38. package/Server/Services/AlertStateTimelineService.ts +29 -7
  39. package/Server/Services/AnalyticsDatabaseService.ts +59 -25
  40. package/Server/Services/BillingInvoiceService.ts +7 -3
  41. package/Server/Services/BillingService.ts +9 -2
  42. package/Server/Services/DashboardDomainService.ts +56 -22
  43. package/Server/Services/DashboardService.ts +11 -4
  44. package/Server/Services/DatabaseService.ts +31 -11
  45. package/Server/Services/IncidentEpisodeFeedService.ts +17 -5
  46. package/Server/Services/IncidentEpisodeService.ts +34 -3
  47. package/Server/Services/IncidentEpisodeStateTimelineService.ts +80 -22
  48. package/Server/Services/IncidentFeedService.ts +33 -9
  49. package/Server/Services/IncidentGroupingEngineService.ts +35 -6
  50. package/Server/Services/IncidentService.ts +103 -9
  51. package/Server/Services/IncidentSlaRuleService.ts +16 -4
  52. package/Server/Services/IncidentSlaService.ts +20 -4
  53. package/Server/Services/IncidentStateTimelineService.ts +120 -31
  54. package/Server/Services/KubernetesClusterService.ts +62 -14
  55. package/Server/Services/MonitorFeedService.ts +33 -9
  56. package/Server/Services/MonitorProbeService.ts +46 -23
  57. package/Server/Services/MonitorService.ts +35 -4
  58. package/Server/Services/MonitorStatusTimelineService.ts +68 -20
  59. package/Server/Services/NotificationService.ts +4 -2
  60. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +53 -9
  61. package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +9 -2
  62. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +29 -8
  63. package/Server/Services/OnCallDutyPolicyFeedService.ts +33 -8
  64. package/Server/Services/OnCallDutyPolicyScheduleService.ts +97 -24
  65. package/Server/Services/OnCallDutyPolicyService.ts +2 -1
  66. package/Server/Services/OpenTelemetryIngestService.ts +51 -20
  67. package/Server/Services/ProbeService.ts +16 -7
  68. package/Server/Services/ProjectService.ts +21 -7
  69. package/Server/Services/ScheduledMaintenanceFeedService.ts +17 -4
  70. package/Server/Services/ScheduledMaintenanceService.ts +52 -6
  71. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +72 -20
  72. package/Server/Services/StatusPageDomainService.ts +59 -23
  73. package/Server/Services/StatusPageService.ts +26 -8
  74. package/Server/Services/StatusPageSubscriberService.ts +382 -111
  75. package/Server/Services/TeamMemberService.ts +9 -3
  76. package/Server/Services/UserNotificationRuleService.ts +9 -3
  77. package/Server/Services/UserService.ts +6 -4
  78. package/Server/Services/UserWhatsAppService.ts +9 -3
  79. package/Server/Services/WorkflowService.ts +7 -3
  80. package/Server/Services/WorkspaceNotificationRuleService.ts +398 -156
  81. package/Server/Types/Domain.ts +15 -5
  82. package/Server/Types/Workflow/Components/API/Post.ts +22 -8
  83. package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +12 -4
  84. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +10 -0
  85. package/Server/Utils/CodeRepository/CodeRepository.ts +62 -13
  86. package/Server/Utils/Express.ts +1 -0
  87. package/Server/Utils/Greenlock/Greenlock.ts +75 -20
  88. package/Server/Utils/LLM/LLMService.ts +22 -7
  89. package/Server/Utils/Logger.ts +93 -13
  90. package/Server/Utils/Monitor/MonitorAlert.ts +15 -3
  91. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +15 -5
  92. package/Server/Utils/Monitor/MonitorIncident.ts +17 -3
  93. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +6 -1
  94. package/Server/Utils/Profiling.ts +11 -5
  95. package/Server/Utils/Realtime.ts +90 -31
  96. package/Server/Utils/Response.ts +2 -2
  97. package/Server/Utils/StartServer.ts +43 -9
  98. package/Server/Utils/Telemetry/SpanUtil.ts +90 -0
  99. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +58 -15
  100. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +58 -15
  101. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +19 -3
  102. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +87 -22
  103. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.ts +12 -3
  104. package/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.ts +25 -7
  105. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +55 -8
  106. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +100 -22
  107. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +35 -9
  108. package/Server/Utils/Workspace/Slack/Actions/AlertEpisode.ts +32 -8
  109. package/Server/Utils/Workspace/Slack/Actions/Auth.ts +3 -1
  110. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +52 -11
  111. package/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.ts +4 -1
  112. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +89 -20
  113. package/Server/Utils/Workspace/Slack/Slack.ts +498 -247
  114. package/Server/Utils/Workspace/Workspace.ts +33 -11
  115. package/Server/Utils/Workspace/WorkspaceBase.ts +3 -1
  116. package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +8 -2
  117. package/Tests/Server/Middleware/UserAuthorization.test.ts +1 -1
  118. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +12 -3
  119. package/UI/Components/Charts/Area/AreaChart.tsx +35 -1
  120. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +7 -0
  121. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +33 -0
  122. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +33 -0
  123. package/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.ts +14 -0
  124. package/UI/Components/Charts/Line/LineChart.tsx +35 -1
  125. package/UI/Components/Charts/Types/ExemplarPoint.ts +6 -0
  126. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +3 -3
  127. package/UI/Components/Navbar/NavBar.tsx +10 -0
  128. package/build/dist/Models/AnalyticsModels/Metric.js +70 -0
  129. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  130. package/build/dist/Server/API/AIAgentDataAPI.js +6 -6
  131. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  132. package/build/dist/Server/API/BillingAPI.js +13 -13
  133. package/build/dist/Server/API/BillingAPI.js.map +1 -1
  134. package/build/dist/Server/API/CommonAPI.js +5 -0
  135. package/build/dist/Server/API/CommonAPI.js.map +1 -1
  136. package/build/dist/Server/API/DashboardAPI.js +2 -2
  137. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  138. package/build/dist/Server/API/DashboardDomainAPI.js +3 -3
  139. package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -1
  140. package/build/dist/Server/API/GitHubAPI.js +19 -19
  141. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  142. package/build/dist/Server/API/MicrosoftTeamsAPI.js +34 -34
  143. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  144. package/build/dist/Server/API/OpenSourceDeploymentAPI.js +2 -2
  145. package/build/dist/Server/API/OpenSourceDeploymentAPI.js.map +1 -1
  146. package/build/dist/Server/API/SlackAPI.js +38 -38
  147. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  148. package/build/dist/Server/API/StatusAPI.js +16 -16
  149. package/build/dist/Server/API/StatusAPI.js.map +1 -1
  150. package/build/dist/Server/API/StatusPageAPI.js +52 -52
  151. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  152. package/build/dist/Server/API/StatusPageDomainAPI.js +3 -3
  153. package/build/dist/Server/API/StatusPageDomainAPI.js.map +1 -1
  154. package/build/dist/Server/API/UserAPI.js +3 -3
  155. package/build/dist/Server/API/UserAPI.js.map +1 -1
  156. package/build/dist/Server/API/UserCallAPI.js +2 -2
  157. package/build/dist/Server/API/UserCallAPI.js.map +1 -1
  158. package/build/dist/Server/API/UserEmailAPI.js +2 -2
  159. package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
  160. package/build/dist/Server/API/UserPushAPI.js +3 -3
  161. package/build/dist/Server/API/UserPushAPI.js.map +1 -1
  162. package/build/dist/Server/API/UserSmsAPI.js +2 -2
  163. package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
  164. package/build/dist/Server/API/UserWhatsAppAPI.js +2 -2
  165. package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
  166. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.js +40 -0
  167. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.js.map +1 -0
  168. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.js +18 -0
  169. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.js.map +1 -0
  170. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  171. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  172. package/build/dist/Server/Middleware/NotificationMiddleware.js +2 -2
  173. package/build/dist/Server/Middleware/NotificationMiddleware.js.map +1 -1
  174. package/build/dist/Server/Middleware/ProjectAuthorization.js +5 -0
  175. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  176. package/build/dist/Server/Middleware/SCIMAuthorization.js +2 -2
  177. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
  178. package/build/dist/Server/Middleware/SlackAuthorization.js +10 -10
  179. package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
  180. package/build/dist/Server/Middleware/TelemetryIngest.js +9 -4
  181. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  182. package/build/dist/Server/Middleware/UserAuthorization.js +10 -5
  183. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  184. package/build/dist/Server/Middleware/WhatsAppAuthorization.js +6 -6
  185. package/build/dist/Server/Middleware/WhatsAppAuthorization.js.map +1 -1
  186. package/build/dist/Server/Services/AIAgentService.js +13 -7
  187. package/build/dist/Server/Services/AIAgentService.js.map +1 -1
  188. package/build/dist/Server/Services/AIService.js +9 -2
  189. package/build/dist/Server/Services/AIService.js.map +1 -1
  190. package/build/dist/Server/Services/AlertEpisodeFeedService.js +17 -5
  191. package/build/dist/Server/Services/AlertEpisodeFeedService.js.map +1 -1
  192. package/build/dist/Server/Services/AlertEpisodeService.js +40 -10
  193. package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
  194. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +81 -24
  195. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -1
  196. package/build/dist/Server/Services/AlertFeedService.js +17 -5
  197. package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
  198. package/build/dist/Server/Services/AlertGroupingEngineService.js +44 -28
  199. package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
  200. package/build/dist/Server/Services/AlertService.js +72 -20
  201. package/build/dist/Server/Services/AlertService.js.map +1 -1
  202. package/build/dist/Server/Services/AlertStateTimelineService.js +36 -13
  203. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  204. package/build/dist/Server/Services/AnalyticsDatabaseService.js +52 -28
  205. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  206. package/build/dist/Server/Services/BillingInvoiceService.js +7 -2
  207. package/build/dist/Server/Services/BillingInvoiceService.js.map +1 -1
  208. package/build/dist/Server/Services/BillingService.js +8 -8
  209. package/build/dist/Server/Services/BillingService.js.map +1 -1
  210. package/build/dist/Server/Services/DashboardDomainService.js +49 -27
  211. package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
  212. package/build/dist/Server/Services/DashboardService.js +11 -4
  213. package/build/dist/Server/Services/DashboardService.js.map +1 -1
  214. package/build/dist/Server/Services/DatabaseService.js +32 -12
  215. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  216. package/build/dist/Server/Services/IncidentEpisodeFeedService.js +17 -5
  217. package/build/dist/Server/Services/IncidentEpisodeFeedService.js.map +1 -1
  218. package/build/dist/Server/Services/IncidentEpisodeService.js +40 -10
  219. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
  220. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +81 -24
  221. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -1
  222. package/build/dist/Server/Services/IncidentFeedService.js +34 -10
  223. package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
  224. package/build/dist/Server/Services/IncidentGroupingEngineService.js +43 -29
  225. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
  226. package/build/dist/Server/Services/IncidentService.js +116 -28
  227. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  228. package/build/dist/Server/Services/IncidentSlaRuleService.js +19 -11
  229. package/build/dist/Server/Services/IncidentSlaRuleService.js.map +1 -1
  230. package/build/dist/Server/Services/IncidentSlaService.js +21 -14
  231. package/build/dist/Server/Services/IncidentSlaService.js.map +1 -1
  232. package/build/dist/Server/Services/IncidentStateTimelineService.js +130 -37
  233. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  234. package/build/dist/Server/Services/KubernetesClusterService.js +51 -14
  235. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  236. package/build/dist/Server/Services/MonitorFeedService.js +34 -10
  237. package/build/dist/Server/Services/MonitorFeedService.js.map +1 -1
  238. package/build/dist/Server/Services/MonitorProbeService.js +32 -16
  239. package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
  240. package/build/dist/Server/Services/MonitorService.js +42 -11
  241. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  242. package/build/dist/Server/Services/MonitorStatusTimelineService.js +69 -21
  243. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  244. package/build/dist/Server/Services/NotificationService.js +4 -3
  245. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  246. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +49 -12
  247. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  248. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +9 -3
  249. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
  250. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +26 -11
  251. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  252. package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js +34 -10
  253. package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js.map +1 -1
  254. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +94 -37
  255. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  256. package/build/dist/Server/Services/OnCallDutyPolicyService.js +1 -1
  257. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  258. package/build/dist/Server/Services/OpenTelemetryIngestService.js +45 -17
  259. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  260. package/build/dist/Server/Services/ProbeService.js +13 -7
  261. package/build/dist/Server/Services/ProbeService.js.map +1 -1
  262. package/build/dist/Server/Services/ProjectService.js +33 -17
  263. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  264. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +17 -5
  265. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
  266. package/build/dist/Server/Services/ScheduledMaintenanceService.js +71 -24
  267. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  268. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +72 -24
  269. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  270. package/build/dist/Server/Services/StatusPageDomainService.js +55 -29
  271. package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
  272. package/build/dist/Server/Services/StatusPageService.js +29 -9
  273. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  274. package/build/dist/Server/Services/StatusPageSubscriberService.js +393 -130
  275. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  276. package/build/dist/Server/Services/TeamMemberService.js +10 -2
  277. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  278. package/build/dist/Server/Services/UserNotificationRuleService.js +10 -2
  279. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  280. package/build/dist/Server/Services/UserService.js +8 -3
  281. package/build/dist/Server/Services/UserService.js.map +1 -1
  282. package/build/dist/Server/Services/UserWhatsAppService.js +10 -2
  283. package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
  284. package/build/dist/Server/Services/WorkflowService.js +7 -2
  285. package/build/dist/Server/Services/WorkflowService.js.map +1 -1
  286. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +367 -180
  287. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  288. package/build/dist/Server/Types/Domain.js +12 -6
  289. package/build/dist/Server/Types/Domain.js.map +1 -1
  290. package/build/dist/Server/Types/Workflow/Components/API/Post.js +11 -7
  291. package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
  292. package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +11 -4
  293. package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
  294. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +7 -0
  295. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  296. package/build/dist/Server/Utils/CodeRepository/CodeRepository.js +45 -17
  297. package/build/dist/Server/Utils/CodeRepository/CodeRepository.js.map +1 -1
  298. package/build/dist/Server/Utils/Express.js.map +1 -1
  299. package/build/dist/Server/Utils/Greenlock/Greenlock.js +36 -29
  300. package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
  301. package/build/dist/Server/Utils/LLM/LLMService.js +18 -6
  302. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  303. package/build/dist/Server/Utils/Logger.js +61 -13
  304. package/build/dist/Server/Utils/Logger.js.map +1 -1
  305. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +23 -20
  306. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  307. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +13 -4
  308. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  309. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +25 -22
  310. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  311. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +6 -3
  312. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  313. package/build/dist/Server/Utils/Profiling.js +9 -6
  314. package/build/dist/Server/Utils/Profiling.js.map +1 -1
  315. package/build/dist/Server/Utils/Realtime.js +50 -34
  316. package/build/dist/Server/Utils/Realtime.js.map +1 -1
  317. package/build/dist/Server/Utils/Response.js +2 -2
  318. package/build/dist/Server/Utils/Response.js.map +1 -1
  319. package/build/dist/Server/Utils/StartServer.js +23 -11
  320. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  321. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +52 -0
  322. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -0
  323. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +58 -15
  324. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  325. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +58 -15
  326. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
  327. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +19 -5
  328. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  329. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +90 -26
  330. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  331. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.js +12 -3
  332. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.js.map +1 -1
  333. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.js +25 -7
  334. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.js.map +1 -1
  335. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +58 -19
  336. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
  337. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +102 -29
  338. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  339. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +38 -9
  340. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -1
  341. package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js +34 -8
  342. package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js.map +1 -1
  343. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +3 -1
  344. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -1
  345. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +55 -13
  346. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
  347. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js +5 -1
  348. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js.map +1 -1
  349. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +91 -26
  350. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -1
  351. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +355 -270
  352. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  353. package/build/dist/Server/Utils/Workspace/Workspace.js +21 -12
  354. package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
  355. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +3 -1
  356. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
  357. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js +9 -2
  358. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -1
  359. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +1 -1
  360. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +1 -1
  361. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +12 -6
  362. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +1 -1
  363. package/build/dist/UI/Components/Charts/Area/AreaChart.js +20 -2
  364. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  365. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
  366. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  367. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +9 -2
  368. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  369. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +9 -2
  370. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  371. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.js +2 -0
  372. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.js.map +1 -0
  373. package/build/dist/UI/Components/Charts/Line/LineChart.js +20 -2
  374. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  375. package/build/dist/UI/Components/Charts/Types/ExemplarPoint.js +2 -0
  376. package/build/dist/UI/Components/Charts/Types/ExemplarPoint.js.map +1 -0
  377. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +3 -3
  378. package/build/dist/UI/Components/Navbar/NavBar.js +9 -1
  379. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  380. package/package.json +1 -1
@@ -27,7 +27,7 @@ import UserNotificationSettingService from "./UserNotificationSettingService";
27
27
  import NotificationSettingEventType from "../../Types/NotificationSetting/NotificationSettingEventType";
28
28
  import BadDataException from "../../Types/Exception/BadDataException";
29
29
  import Timezone from "../../Types/Timezone";
30
- import logger from "../Utils/Logger";
30
+ import logger, { LogAttributes } from "../Utils/Logger";
31
31
  import OnCallDutyPolicyFeedService from "./OnCallDutyPolicyFeedService";
32
32
  import { OnCallDutyPolicyFeedEventType } from "../../Models/DatabaseModels/OnCallDutyPolicyFeed";
33
33
  import { Green500 } from "../../Types/BrandColors";
@@ -68,7 +68,9 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
68
68
  onCallDutyPolicyScheduleId: schedule.id!,
69
69
  endsAt: OneUptimeDate.getCurrentDate(),
70
70
  }).catch((err: Error) => {
71
- logger.error(err);
71
+ logger.error(err, {
72
+ projectId: schedule.projectId?.toString(),
73
+ } as LogAttributes);
72
74
  });
73
75
  }
74
76
 
@@ -310,8 +312,15 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
310
312
  sendEmailToUserId.toString() +
311
313
  " for schedule: " +
312
314
  data.scheduleId.toString(),
315
+ {
316
+ projectId: projectId?.toString(),
317
+ userId: sendEmailToUserId?.toString(),
318
+ } as LogAttributes,
313
319
  );
314
- logger.error(err);
320
+ logger.error(err, {
321
+ projectId: projectId?.toString(),
322
+ userId: sendEmailToUserId?.toString(),
323
+ } as LogAttributes);
315
324
  });
316
325
 
317
326
  const onCallDutyPolicyId: ObjectID =
@@ -443,8 +452,15 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
443
452
  sendEmailToUserId.toString() +
444
453
  " for schedule: " +
445
454
  data.scheduleId.toString(),
455
+ {
456
+ projectId: projectId?.toString(),
457
+ userId: sendEmailToUserId?.toString(),
458
+ } as LogAttributes,
446
459
  );
447
- logger.error(err);
460
+ logger.error(err, {
461
+ projectId: projectId?.toString(),
462
+ userId: sendEmailToUserId?.toString(),
463
+ } as LogAttributes);
448
464
  });
449
465
 
450
466
  const onCallDutyPolicyId: ObjectID =
@@ -631,12 +647,14 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
631
647
  logger.debug(
632
648
  "refreshCurrentUserIdAndHandoffTimeInSchedule called with scheduleId: " +
633
649
  scheduleId.toString(),
650
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
634
651
  );
635
652
 
636
653
  // get previoius result.
637
654
  logger.debug(
638
655
  "Fetching previous schedule information for scheduleId: " +
639
656
  scheduleId.toString(),
657
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
640
658
  );
641
659
  const onCallSchedule: OnCallDutyPolicySchedule | null =
642
660
  await this.findOneById({
@@ -657,6 +675,7 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
657
675
  if (!onCallSchedule) {
658
676
  logger.debug(
659
677
  "Schedule not found for scheduleId: " + scheduleId.toString(),
678
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
660
679
  );
661
680
  throw new BadDataException("Schedule not found");
662
681
  }
@@ -664,6 +683,7 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
664
683
  logger.debug(
665
684
  "Previous schedule information fetched for scheduleId: " +
666
685
  scheduleId.toString(),
686
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
667
687
  );
668
688
 
669
689
  const previousInformation: {
@@ -682,11 +702,14 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
682
702
  nextRosterStartAt: onCallSchedule.rosterNextStartAt || null,
683
703
  };
684
704
 
685
- logger.debug(previousInformation);
705
+ logger.debug(previousInformation, {
706
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
707
+ } as LogAttributes);
686
708
 
687
709
  logger.debug(
688
710
  "Fetching new schedule information for scheduleId: " +
689
711
  scheduleId.toString(),
712
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
690
713
  );
691
714
 
692
715
  const newInformation: {
@@ -698,11 +721,14 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
698
721
  nextRosterStartAt: Date | null;
699
722
  } = await this.getCurrrentUserIdAndHandoffTimeInSchedule(scheduleId);
700
723
 
701
- logger.debug(newInformation);
724
+ logger.debug(newInformation, {
725
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
726
+ } as LogAttributes);
702
727
 
703
728
  logger.debug(
704
729
  "Updating schedule with new information for scheduleId: " +
705
730
  scheduleId.toString(),
731
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
706
732
  );
707
733
 
708
734
  await this.updateOneById({
@@ -724,6 +750,7 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
724
750
  logger.debug(
725
751
  "Sending notifications for schedule handoff for scheduleId: " +
726
752
  scheduleId.toString(),
753
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
727
754
  );
728
755
 
729
756
  // send notification to the users.
@@ -743,6 +770,7 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
743
770
  logger.debug(
744
771
  "Returning new schedule information for scheduleId: " +
745
772
  scheduleId.toString(),
773
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
746
774
  );
747
775
 
748
776
  return newInformation;
@@ -761,6 +789,7 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
761
789
  logger.debug(
762
790
  "getCurrrentUserIdAndHandoffTimeInSchedule called with scheduleId: " +
763
791
  scheduleId.toString(),
792
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
764
793
  );
765
794
 
766
795
  const resultReturn: {
@@ -779,50 +808,68 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
779
808
  nextRosterStartAt: null,
780
809
  };
781
810
 
782
- logger.debug("Fetching events for scheduleId: " + scheduleId.toString());
811
+ logger.debug("Fetching events for scheduleId: " + scheduleId.toString(), {
812
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
813
+ } as LogAttributes);
783
814
  const events: Array<CalendarEvent> | null =
784
815
  await this.getEventByIndexInSchedule({
785
816
  scheduleId: scheduleId,
786
817
  getNumberOfEvents: 2,
787
818
  });
788
819
 
789
- logger.debug("Events fetched: " + JSON.stringify(events));
820
+ logger.debug("Events fetched: " + JSON.stringify(events), {
821
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
822
+ } as LogAttributes);
790
823
 
791
824
  let currentEvent: CalendarEvent | null = events[0] || null;
792
825
  let nextEvent: CalendarEvent | null = events[1] || null;
793
826
 
794
- logger.debug("Current event: " + JSON.stringify(currentEvent));
795
- logger.debug("Next event: " + JSON.stringify(nextEvent));
827
+ logger.debug("Current event: " + JSON.stringify(currentEvent), {
828
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
829
+ } as LogAttributes);
830
+ logger.debug("Next event: " + JSON.stringify(nextEvent), {
831
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
832
+ } as LogAttributes);
796
833
 
797
834
  // if the current event start time in the future then the current event is the next event.
798
835
  if (currentEvent && OneUptimeDate.isInTheFuture(currentEvent.start)) {
799
836
  logger.debug(
800
837
  "Current event is in the future, treating it as next event.",
838
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
801
839
  );
802
840
  nextEvent = currentEvent;
803
841
  currentEvent = null;
804
842
  }
805
843
 
806
844
  if (currentEvent) {
807
- logger.debug("Processing current event: " + JSON.stringify(currentEvent));
845
+ logger.debug(
846
+ "Processing current event: " + JSON.stringify(currentEvent),
847
+ { onCallDutyPolicyScheduleId: scheduleId.toString() } as LogAttributes,
848
+ );
808
849
  const userId: string | undefined = currentEvent?.title; // this is user id in string.
809
850
 
810
851
  if (userId) {
811
- logger.debug("Current userId: " + userId);
852
+ logger.debug("Current userId: " + userId, {
853
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
854
+ } as LogAttributes);
812
855
  resultReturn.currentUserId = new ObjectID(userId);
813
856
  }
814
857
 
815
858
  // get handOffTime
816
859
  const handOffTime: Date | undefined = currentEvent?.end; // this is user id in string.
817
860
  if (handOffTime) {
818
- logger.debug("Current handOffTime: " + handOffTime.toISOString());
861
+ logger.debug("Current handOffTime: " + handOffTime.toISOString(), {
862
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
863
+ } as LogAttributes);
819
864
  resultReturn.handOffTimeAt = handOffTime;
820
865
  }
821
866
 
822
867
  // get start time
823
868
  const startTime: Date | undefined = currentEvent?.start; // this is user id in string.
824
869
  if (startTime) {
825
- logger.debug("Current rosterStartAt: " + startTime.toISOString());
870
+ logger.debug("Current rosterStartAt: " + startTime.toISOString(), {
871
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
872
+ } as LogAttributes);
826
873
  resultReturn.rosterStartAt = startTime;
827
874
  }
828
875
  }
@@ -830,30 +877,40 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
830
877
  // do the same for next event.
831
878
 
832
879
  if (nextEvent) {
833
- logger.debug("Processing next event: " + JSON.stringify(nextEvent));
880
+ logger.debug("Processing next event: " + JSON.stringify(nextEvent), {
881
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
882
+ } as LogAttributes);
834
883
  const userId: string | undefined = nextEvent?.title; // this is user id in string.
835
884
 
836
885
  if (userId) {
837
- logger.debug("Next userId: " + userId);
886
+ logger.debug("Next userId: " + userId, {
887
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
888
+ } as LogAttributes);
838
889
  resultReturn.nextUserId = new ObjectID(userId);
839
890
  }
840
891
 
841
892
  // get handOffTime
842
893
  const handOffTime: Date | undefined = nextEvent?.end; // this is user id in string.
843
894
  if (handOffTime) {
844
- logger.debug("Next handOffTime: " + handOffTime.toISOString());
895
+ logger.debug("Next handOffTime: " + handOffTime.toISOString(), {
896
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
897
+ } as LogAttributes);
845
898
  resultReturn.nextHandOffTimeAt = handOffTime;
846
899
  }
847
900
 
848
901
  // get start time
849
902
  const startTime: Date | undefined = nextEvent?.start; // this is user id in string.
850
903
  if (startTime) {
851
- logger.debug("Next rosterStartAt: " + startTime.toISOString());
904
+ logger.debug("Next rosterStartAt: " + startTime.toISOString(), {
905
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
906
+ } as LogAttributes);
852
907
  resultReturn.nextRosterStartAt = startTime;
853
908
  }
854
909
  }
855
910
 
856
- logger.debug("Returning result: " + JSON.stringify(resultReturn));
911
+ logger.debug("Returning result: " + JSON.stringify(resultReturn), {
912
+ onCallDutyPolicyScheduleId: scheduleId.toString(),
913
+ } as LogAttributes);
857
914
  return resultReturn;
858
915
  }
859
916
 
@@ -944,32 +1001,46 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
944
1001
  }): Promise<Array<CalendarEvent>> {
945
1002
  logger.debug(
946
1003
  "getEventByIndexInSchedule called with data: " + JSON.stringify(data),
1004
+ {
1005
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1006
+ } as LogAttributes,
947
1007
  );
948
1008
 
949
1009
  const layerProps: Array<LayerProps> = await this.getScheduleLayerProps({
950
1010
  scheduleId: data.scheduleId,
951
1011
  });
952
1012
 
953
- logger.debug("Layer properties fetched: " + JSON.stringify(layerProps));
1013
+ logger.debug("Layer properties fetched: " + JSON.stringify(layerProps), {
1014
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1015
+ } as LogAttributes);
954
1016
 
955
1017
  if (layerProps.length === 0) {
956
1018
  logger.debug(
957
1019
  "No layers found for scheduleId: " + data.scheduleId.toString(),
1020
+ {
1021
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1022
+ } as LogAttributes,
958
1023
  );
959
1024
  return [];
960
1025
  }
961
1026
 
962
1027
  const currentStartTime: Date = OneUptimeDate.getCurrentDate();
963
- logger.debug("Current start time: " + currentStartTime.toISOString());
1028
+ logger.debug("Current start time: " + currentStartTime.toISOString(), {
1029
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1030
+ } as LogAttributes);
964
1031
 
965
1032
  const currentEndTime: Date = OneUptimeDate.addRemoveYears(
966
1033
  currentStartTime,
967
1034
  1,
968
1035
  );
969
- logger.debug("Current end time: " + currentEndTime.toISOString());
1036
+ logger.debug("Current end time: " + currentEndTime.toISOString(), {
1037
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1038
+ } as LogAttributes);
970
1039
 
971
1040
  const numberOfEventsToGet: number = data.getNumberOfEvents;
972
- logger.debug("Number of events to get: " + numberOfEventsToGet);
1041
+ logger.debug("Number of events to get: " + numberOfEventsToGet, {
1042
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1043
+ } as LogAttributes);
973
1044
 
974
1045
  const events: Array<CalendarEvent> = this.layerUtil.getMultiLayerEvents(
975
1046
  {
@@ -982,7 +1053,9 @@ export class Service extends DatabaseService<OnCallDutyPolicySchedule> {
982
1053
  },
983
1054
  );
984
1055
 
985
- logger.debug("Events fetched: " + JSON.stringify(events));
1056
+ logger.debug("Events fetched: " + JSON.stringify(events), {
1057
+ onCallDutyPolicyScheduleId: data.scheduleId.toString(),
1058
+ } as LogAttributes);
986
1059
 
987
1060
  return events;
988
1061
  }
@@ -30,7 +30,7 @@ import QueryOperator from "../../Types/BaseDatabase/QueryOperator";
30
30
  import WorkspaceNotificationRuleService, {
31
31
  MessageBlocksByWorkspaceType,
32
32
  } from "./WorkspaceNotificationRuleService";
33
- import logger from "../Utils/Logger";
33
+ import logger, { LogAttributes } from "../Utils/Logger";
34
34
  import OnCallDutyPolicyWorkspaceMessages from "../Utils/Workspace/WorkspaceMessages/OnCallDutyPolicy";
35
35
  import OnCallDutyPolicyFeedService from "./OnCallDutyPolicyFeedService";
36
36
  import { OnCallDutyPolicyFeedEventType } from "../../Models/DatabaseModels/OnCallDutyPolicyFeed";
@@ -187,6 +187,7 @@ ${onCallPolicy.description || "No description provided."}
187
187
  } catch (error) {
188
188
  logger.error(
189
189
  `Error while archiving workspace channels for onCallDutyPolicy ${deleteBy.query._id}: ${error}`,
190
+ { projectId: (projectId as ObjectID)?.toString() } as LogAttributes,
190
191
  );
191
192
  }
192
193
  }
@@ -45,25 +45,56 @@ export default class OTelIngestService {
45
45
  });
46
46
 
47
47
  if (!service) {
48
- // create service
49
-
50
- const newService: Service = new Service();
51
- newService.projectId = data.projectId;
52
- newService.name = data.serviceName;
53
- newService.description = data.serviceName;
54
- newService.retainTelemetryDataForDays = DEFAULT_RETENTION_IN_DAYS;
55
-
56
- const createdService: Service = await ServiceService.create({
57
- data: newService,
58
- props: {
59
- isRoot: true,
60
- },
61
- });
62
-
63
- return {
64
- serviceId: createdService.id!,
65
- dataRententionInDays: DEFAULT_RETENTION_IN_DAYS,
66
- };
48
+ try {
49
+ const newService: Service = new Service();
50
+ newService.projectId = data.projectId;
51
+ newService.name = data.serviceName;
52
+ newService.description = data.serviceName;
53
+ newService.retainTelemetryDataForDays = DEFAULT_RETENTION_IN_DAYS;
54
+
55
+ const createdService: Service = await ServiceService.create({
56
+ data: newService,
57
+ props: {
58
+ isRoot: true,
59
+ },
60
+ });
61
+
62
+ return {
63
+ serviceId: createdService.id!,
64
+ dataRententionInDays: DEFAULT_RETENTION_IN_DAYS,
65
+ };
66
+ } catch {
67
+ /*
68
+ * Race condition: another request created the service concurrently.
69
+ * Re-fetch the existing service.
70
+ */
71
+ const existingService: Service | null = await ServiceService.findOneBy({
72
+ query: {
73
+ projectId: data.projectId,
74
+ name: data.serviceName,
75
+ },
76
+ select: {
77
+ _id: true,
78
+ retainTelemetryDataForDays: true,
79
+ },
80
+ props: {
81
+ isRoot: true,
82
+ },
83
+ });
84
+
85
+ if (existingService) {
86
+ return {
87
+ serviceId: existingService.id!,
88
+ dataRententionInDays:
89
+ existingService.retainTelemetryDataForDays ||
90
+ DEFAULT_RETENTION_IN_DAYS,
91
+ };
92
+ }
93
+
94
+ throw new Error(
95
+ "Failed to create or find service: " + data.serviceName,
96
+ );
97
+ }
67
98
  }
68
99
 
69
100
  return {
@@ -167,7 +198,7 @@ export default class OTelIngestService {
167
198
  }),
168
199
  ...TelemetryUtil.getAttributes({
169
200
  items: (datapoint["attributes"] as JSONArray) || [],
170
- prefixKeysWithString: "metricAttributes",
201
+ prefixKeysWithString: "",
171
202
  }),
172
203
  };
173
204
  }
@@ -19,7 +19,7 @@ import Dictionary from "../../Types/Dictionary";
19
19
  import OneUptimeDate from "../../Types/Date";
20
20
  import UserNotificationSettingService from "./UserNotificationSettingService";
21
21
  import NotificationSettingEventType from "../../Types/NotificationSetting/NotificationSettingEventType";
22
- import logger from "../Utils/Logger";
22
+ import logger, { LogAttributes } from "../Utils/Logger";
23
23
  import { CallRequestMessage } from "../../Types/Call/CallRequest";
24
24
  import { SMSMessage } from "../../Types/SMS/SMS";
25
25
  import { EmailEnvelope } from "../../Types/Email/EmailMessage";
@@ -56,8 +56,10 @@ export class Service extends DatabaseService<Model> {
56
56
  OneUptimeDate.toString(lastAlive),
57
57
  );
58
58
  } catch (err) {
59
- logger.error("Error in saving last alive in cache");
60
- logger.error(err);
59
+ logger.error("Error in saving last alive in cache", {
60
+ projectId: probeId?.toString(),
61
+ } as LogAttributes);
62
+ logger.error(err, { projectId: probeId?.toString() } as LogAttributes);
61
63
  }
62
64
  }
63
65
 
@@ -95,8 +97,10 @@ export class Service extends DatabaseService<Model> {
95
97
  await this.saveLastAliveInCache(probeId, now);
96
98
  } catch (err) {
97
99
  // failed to hit the cache, so we will hit the database
98
- logger.error("Error in getting last alive from cache");
99
- logger.error(err);
100
+ logger.error("Error in getting last alive from cache", {
101
+ probeId: probeId?.toString(),
102
+ } as LogAttributes);
103
+ logger.error(err, { probeId: probeId?.toString() } as LogAttributes);
100
104
  }
101
105
 
102
106
  return true;
@@ -413,8 +417,13 @@ export class Service extends DatabaseService<Model> {
413
417
  eventType,
414
418
  });
415
419
  } catch (e) {
416
- logger.error("Error in sending incident created resource notification");
417
- logger.error(e);
420
+ logger.error(
421
+ "Error in sending incident created resource notification",
422
+ { projectId: probe.projectId?.toString() } as LogAttributes,
423
+ );
424
+ logger.error(e, {
425
+ projectId: probe.projectId?.toString(),
426
+ } as LogAttributes);
418
427
  }
419
428
  }
420
429
  }
@@ -13,7 +13,7 @@ import FindBy from "../Types/Database/FindBy";
13
13
  import { OnCreate, OnDelete, OnFind, OnUpdate } from "../Types/Database/Hooks";
14
14
  import QueryHelper from "../Types/Database/QueryHelper";
15
15
  import UpdateBy from "../Types/Database/UpdateBy";
16
- import logger from "../Utils/Logger";
16
+ import logger, { LogAttributes } from "../Utils/Logger";
17
17
  import Errors from "../Utils/Errors";
18
18
  import AccessTokenService from "./AccessTokenService";
19
19
  import BillingService from "./BillingService";
@@ -117,7 +117,9 @@ export class ProjectService extends DatabaseService<Model> {
117
117
  );
118
118
  }
119
119
 
120
- logger.debug("Creating project for user " + data.props.userId);
120
+ logger.debug("Creating project for user " + data.props.userId, {
121
+ userId: data.props.userId?.toString(),
122
+ } as LogAttributes);
121
123
 
122
124
  const user: User | null = await UserService.findOneById({
123
125
  id: data.props.userId,
@@ -372,6 +374,7 @@ export class ProjectService extends DatabaseService<Model> {
372
374
  } catch (err) {
373
375
  logger.error(
374
376
  `[Invoice Email] Failed to update Stripe customer business details: ${err}`,
377
+ { projectId: updateBy.query._id?.toString() } as LogAttributes,
375
378
  );
376
379
  }
377
380
  } else {
@@ -481,6 +484,7 @@ export class ProjectService extends DatabaseService<Model> {
481
484
 
482
485
  logger.debug(
483
486
  `Changing plan for project ${project.id?.toString()} to ${plan.getName()} with seats ${seats}`,
487
+ { projectId: project.id?.toString() } as LogAttributes,
484
488
  );
485
489
 
486
490
  const endTrialAt: Date | undefined =
@@ -582,7 +586,9 @@ export class ProjectService extends DatabaseService<Model> {
582
586
  url: URL.fromString(NotificationSlackWebhookOnSubscriptionUpdate),
583
587
  text: slackMessage,
584
588
  }).catch((error: Exception) => {
585
- logger.error("Error sending slack message: " + error);
589
+ logger.error("Error sending slack message: " + error, {
590
+ projectId: project?.id?.toString(),
591
+ } as LogAttributes);
586
592
  });
587
593
  }
588
594
  }
@@ -787,7 +793,9 @@ export class ProjectService extends DatabaseService<Model> {
787
793
  url: URL.fromString(NotificationSlackWebhookOnCreateProject),
788
794
  text: slackMessage,
789
795
  }).catch((error: Exception) => {
790
- logger.error("Error sending slack message: " + error);
796
+ logger.error("Error sending slack message: " + error, {
797
+ projectId: createdItem.id?.toString(),
798
+ } as LogAttributes);
791
799
  });
792
800
  }
793
801
  }
@@ -1380,7 +1388,9 @@ export class ProjectService extends DatabaseService<Model> {
1380
1388
  text: slackMessage,
1381
1389
  }).catch((err: Error) => {
1382
1390
  // log this error but do not throw it. Not important enough to stop the process.
1383
- logger.error(err);
1391
+ logger.error(err, {
1392
+ projectId: project?.id?.toString(),
1393
+ } as LogAttributes);
1384
1394
  });
1385
1395
  }
1386
1396
  }
@@ -1477,14 +1487,18 @@ export class ProjectService extends DatabaseService<Model> {
1477
1487
  userId: owner.id!,
1478
1488
  },
1479
1489
  ).catch((err: Error) => {
1480
- logger.error(err);
1490
+ logger.error(err, {
1491
+ projectId: projectId?.toString(),
1492
+ } as LogAttributes);
1481
1493
  });
1482
1494
  }
1483
1495
  }
1484
1496
 
1485
1497
  @CaptureSpan()
1486
1498
  public async reactiveSubscription(projectId: ObjectID): Promise<void> {
1487
- logger.debug("Reactivating subscription for project " + projectId);
1499
+ logger.debug("Reactivating subscription for project " + projectId, {
1500
+ projectId: projectId?.toString(),
1501
+ } as LogAttributes);
1488
1502
 
1489
1503
  const project: Model | null = await this.findOneById({
1490
1504
  id: projectId!,
@@ -4,7 +4,7 @@ import OneUptimeDate from "../../Types/Date";
4
4
  import BadDataException from "../../Types/Exception/BadDataException";
5
5
  import ObjectID from "../../Types/ObjectID";
6
6
  import { IsBillingEnabled } from "../EnvironmentConfig";
7
- import logger from "../Utils/Logger";
7
+ import logger, { LogAttributes } from "../Utils/Logger";
8
8
  import DatabaseService from "./DatabaseService";
9
9
  import Model, {
10
10
  ScheduledMaintenanceFeedEventType,
@@ -105,16 +105,29 @@ export class Service extends DatabaseService<Model> {
105
105
  });
106
106
  }
107
107
  } catch (e) {
108
- logger.error("Error in sending notification to slack and teams");
109
- logger.error(e);
108
+ logger.error("Error in sending notification to slack and teams", {
109
+ projectId: data.projectId?.toString(),
110
+ scheduledMaintenanceId: data.scheduledMaintenanceId?.toString(),
111
+ } as LogAttributes);
112
+ logger.error(e, {
113
+ projectId: data.projectId?.toString(),
114
+ scheduledMaintenanceId: data.scheduledMaintenanceId?.toString(),
115
+ } as LogAttributes);
110
116
 
111
117
  // we dont throw this error as it is not a critical error
112
118
  }
113
119
  } catch (error) {
114
120
  logger.error(
115
121
  "ScheduledMaintenanceFeedService.createScheduledMaintenanceFeedItem",
122
+ {
123
+ projectId: data.projectId?.toString(),
124
+ scheduledMaintenanceId: data.scheduledMaintenanceId?.toString(),
125
+ } as LogAttributes,
116
126
  );
117
- logger.error(error);
127
+ logger.error(error, {
128
+ projectId: data.projectId?.toString(),
129
+ scheduledMaintenanceId: data.scheduledMaintenanceId?.toString(),
130
+ } as LogAttributes);
118
131
  // we dont want to throw the error here, as this is not critical but we still log it.
119
132
  }
120
133
  }