@oneuptime/common 10.0.52 → 10.0.54

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 (405) 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/TelemetryAPI.ts +81 -0
  15. package/Server/API/UserAPI.ts +3 -3
  16. package/Server/API/UserCallAPI.ts +5 -2
  17. package/Server/API/UserEmailAPI.ts +5 -2
  18. package/Server/API/UserPushAPI.ts +9 -3
  19. package/Server/API/UserSmsAPI.ts +5 -2
  20. package/Server/API/UserWhatsAppAPI.ts +5 -2
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.ts +47 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.ts +35 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  24. package/Server/Middleware/NotificationMiddleware.ts +2 -2
  25. package/Server/Middleware/ProjectAuthorization.ts +6 -0
  26. package/Server/Middleware/SCIMAuthorization.ts +2 -1
  27. package/Server/Middleware/SlackAuthorization.ts +28 -10
  28. package/Server/Middleware/TelemetryIngest.ts +16 -3
  29. package/Server/Middleware/UserAuthorization.ts +22 -5
  30. package/Server/Middleware/WhatsAppAuthorization.ts +15 -4
  31. package/Server/Services/AIAgentService.ts +13 -6
  32. package/Server/Services/AIService.ts +9 -3
  33. package/Server/Services/AlertEpisodeFeedService.ts +17 -5
  34. package/Server/Services/AlertEpisodeService.ts +34 -3
  35. package/Server/Services/AlertEpisodeStateTimelineService.ts +80 -22
  36. package/Server/Services/AlertFeedService.ts +17 -5
  37. package/Server/Services/AlertGroupingEngineService.ts +36 -7
  38. package/Server/Services/AlertService.ts +60 -8
  39. package/Server/Services/AlertStateTimelineService.ts +29 -7
  40. package/Server/Services/AnalyticsDatabaseService.ts +59 -25
  41. package/Server/Services/BillingInvoiceService.ts +7 -3
  42. package/Server/Services/BillingService.ts +9 -2
  43. package/Server/Services/DashboardDomainService.ts +56 -22
  44. package/Server/Services/DashboardService.ts +11 -4
  45. package/Server/Services/DatabaseService.ts +31 -11
  46. package/Server/Services/IncidentEpisodeFeedService.ts +17 -5
  47. package/Server/Services/IncidentEpisodeService.ts +34 -3
  48. package/Server/Services/IncidentEpisodeStateTimelineService.ts +80 -22
  49. package/Server/Services/IncidentFeedService.ts +33 -9
  50. package/Server/Services/IncidentGroupingEngineService.ts +35 -6
  51. package/Server/Services/IncidentService.ts +103 -9
  52. package/Server/Services/IncidentSlaRuleService.ts +16 -4
  53. package/Server/Services/IncidentSlaService.ts +20 -4
  54. package/Server/Services/IncidentStateTimelineService.ts +120 -31
  55. package/Server/Services/KubernetesClusterService.ts +62 -14
  56. package/Server/Services/LabelService.ts +14 -1
  57. package/Server/Services/MonitorFeedService.ts +33 -9
  58. package/Server/Services/MonitorProbeService.ts +31 -2
  59. package/Server/Services/MonitorService.ts +35 -4
  60. package/Server/Services/MonitorStatusTimelineService.ts +68 -20
  61. package/Server/Services/NotificationService.ts +4 -2
  62. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +53 -9
  63. package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +9 -2
  64. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +29 -8
  65. package/Server/Services/OnCallDutyPolicyFeedService.ts +33 -8
  66. package/Server/Services/OnCallDutyPolicyScheduleService.ts +97 -24
  67. package/Server/Services/OnCallDutyPolicyService.ts +2 -1
  68. package/Server/Services/OpenTelemetryIngestService.ts +51 -20
  69. package/Server/Services/ProbeService.ts +16 -7
  70. package/Server/Services/ProjectService.ts +29 -11
  71. package/Server/Services/ScheduledMaintenanceFeedService.ts +17 -4
  72. package/Server/Services/ScheduledMaintenanceService.ts +52 -6
  73. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +72 -20
  74. package/Server/Services/StatusPageDomainService.ts +59 -23
  75. package/Server/Services/StatusPageService.ts +26 -8
  76. package/Server/Services/StatusPageSubscriberService.ts +382 -111
  77. package/Server/Services/TeamMemberService.ts +9 -3
  78. package/Server/Services/TelemetryAttributeService.ts +117 -4
  79. package/Server/Services/UserNotificationRuleService.ts +9 -3
  80. package/Server/Services/UserService.ts +6 -4
  81. package/Server/Services/UserWhatsAppService.ts +9 -3
  82. package/Server/Services/WorkflowService.ts +7 -3
  83. package/Server/Services/WorkspaceNotificationRuleService.ts +398 -156
  84. package/Server/Types/Domain.ts +15 -5
  85. package/Server/Types/Workflow/Components/API/Post.ts +22 -8
  86. package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +12 -4
  87. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +10 -0
  88. package/Server/Utils/CodeRepository/CodeRepository.ts +62 -13
  89. package/Server/Utils/Express.ts +1 -0
  90. package/Server/Utils/Greenlock/Greenlock.ts +75 -20
  91. package/Server/Utils/LLM/LLMService.ts +22 -7
  92. package/Server/Utils/Logger.ts +93 -13
  93. package/Server/Utils/Monitor/MonitorAlert.ts +15 -3
  94. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +15 -5
  95. package/Server/Utils/Monitor/MonitorIncident.ts +17 -3
  96. package/Server/Utils/Monitor/MonitorStatusTimeline.ts +6 -1
  97. package/Server/Utils/Profiling.ts +11 -5
  98. package/Server/Utils/Realtime.ts +90 -31
  99. package/Server/Utils/Response.ts +2 -2
  100. package/Server/Utils/StartServer.ts +43 -9
  101. package/Server/Utils/Telemetry/SpanUtil.ts +90 -0
  102. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +58 -15
  103. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +58 -15
  104. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +19 -3
  105. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +87 -22
  106. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.ts +12 -3
  107. package/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.ts +25 -7
  108. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +55 -8
  109. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +100 -22
  110. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +35 -9
  111. package/Server/Utils/Workspace/Slack/Actions/AlertEpisode.ts +32 -8
  112. package/Server/Utils/Workspace/Slack/Actions/Auth.ts +3 -1
  113. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +52 -11
  114. package/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.ts +4 -1
  115. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +89 -20
  116. package/Server/Utils/Workspace/Slack/Slack.ts +498 -247
  117. package/Server/Utils/Workspace/Workspace.ts +33 -11
  118. package/Server/Utils/Workspace/WorkspaceBase.ts +3 -1
  119. package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +8 -2
  120. package/Tests/Server/Middleware/UserAuthorization.test.ts +1 -1
  121. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +12 -3
  122. package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +60 -38
  123. package/UI/Components/Charts/Area/AreaChart.tsx +35 -1
  124. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +7 -0
  125. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +33 -0
  126. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +33 -0
  127. package/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.ts +14 -0
  128. package/UI/Components/Charts/Line/LineChart.tsx +35 -1
  129. package/UI/Components/Charts/Types/ExemplarPoint.ts +6 -0
  130. package/UI/Components/Dictionary/Dictionary.tsx +13 -1
  131. package/UI/Components/Filters/FiltersForm.tsx +2 -0
  132. package/UI/Components/Filters/JSONFilter.tsx +5 -1
  133. package/UI/Components/Filters/Types/Filter.ts +2 -0
  134. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +3 -3
  135. package/UI/Components/ModelTable/BaseModelTable.tsx +10 -6
  136. package/UI/Components/Navbar/NavBar.tsx +10 -0
  137. package/build/dist/Models/AnalyticsModels/Metric.js +70 -0
  138. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  139. package/build/dist/Server/API/AIAgentDataAPI.js +6 -6
  140. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  141. package/build/dist/Server/API/BillingAPI.js +13 -13
  142. package/build/dist/Server/API/BillingAPI.js.map +1 -1
  143. package/build/dist/Server/API/CommonAPI.js +5 -0
  144. package/build/dist/Server/API/CommonAPI.js.map +1 -1
  145. package/build/dist/Server/API/DashboardAPI.js +2 -2
  146. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  147. package/build/dist/Server/API/DashboardDomainAPI.js +3 -3
  148. package/build/dist/Server/API/DashboardDomainAPI.js.map +1 -1
  149. package/build/dist/Server/API/GitHubAPI.js +19 -19
  150. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  151. package/build/dist/Server/API/MicrosoftTeamsAPI.js +34 -34
  152. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  153. package/build/dist/Server/API/OpenSourceDeploymentAPI.js +2 -2
  154. package/build/dist/Server/API/OpenSourceDeploymentAPI.js.map +1 -1
  155. package/build/dist/Server/API/SlackAPI.js +38 -38
  156. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  157. package/build/dist/Server/API/StatusAPI.js +16 -16
  158. package/build/dist/Server/API/StatusAPI.js.map +1 -1
  159. package/build/dist/Server/API/StatusPageAPI.js +52 -52
  160. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  161. package/build/dist/Server/API/StatusPageDomainAPI.js +3 -3
  162. package/build/dist/Server/API/StatusPageDomainAPI.js.map +1 -1
  163. package/build/dist/Server/API/TelemetryAPI.js +39 -0
  164. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  165. package/build/dist/Server/API/UserAPI.js +3 -3
  166. package/build/dist/Server/API/UserAPI.js.map +1 -1
  167. package/build/dist/Server/API/UserCallAPI.js +2 -2
  168. package/build/dist/Server/API/UserCallAPI.js.map +1 -1
  169. package/build/dist/Server/API/UserEmailAPI.js +2 -2
  170. package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
  171. package/build/dist/Server/API/UserPushAPI.js +3 -3
  172. package/build/dist/Server/API/UserPushAPI.js.map +1 -1
  173. package/build/dist/Server/API/UserSmsAPI.js +2 -2
  174. package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
  175. package/build/dist/Server/API/UserWhatsAppAPI.js +2 -2
  176. package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
  177. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.js +40 -0
  178. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1774559064921-MigrationName.js.map +1 -0
  179. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.js +18 -0
  180. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1775735059360-MigrationName.js.map +1 -0
  181. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  182. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  183. package/build/dist/Server/Middleware/NotificationMiddleware.js +2 -2
  184. package/build/dist/Server/Middleware/NotificationMiddleware.js.map +1 -1
  185. package/build/dist/Server/Middleware/ProjectAuthorization.js +5 -0
  186. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  187. package/build/dist/Server/Middleware/SCIMAuthorization.js +2 -2
  188. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +1 -1
  189. package/build/dist/Server/Middleware/SlackAuthorization.js +10 -10
  190. package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
  191. package/build/dist/Server/Middleware/TelemetryIngest.js +9 -4
  192. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  193. package/build/dist/Server/Middleware/UserAuthorization.js +10 -5
  194. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  195. package/build/dist/Server/Middleware/WhatsAppAuthorization.js +6 -6
  196. package/build/dist/Server/Middleware/WhatsAppAuthorization.js.map +1 -1
  197. package/build/dist/Server/Services/AIAgentService.js +13 -7
  198. package/build/dist/Server/Services/AIAgentService.js.map +1 -1
  199. package/build/dist/Server/Services/AIService.js +9 -2
  200. package/build/dist/Server/Services/AIService.js.map +1 -1
  201. package/build/dist/Server/Services/AlertEpisodeFeedService.js +17 -5
  202. package/build/dist/Server/Services/AlertEpisodeFeedService.js.map +1 -1
  203. package/build/dist/Server/Services/AlertEpisodeService.js +40 -10
  204. package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
  205. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +81 -24
  206. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -1
  207. package/build/dist/Server/Services/AlertFeedService.js +17 -5
  208. package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
  209. package/build/dist/Server/Services/AlertGroupingEngineService.js +44 -28
  210. package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
  211. package/build/dist/Server/Services/AlertService.js +72 -20
  212. package/build/dist/Server/Services/AlertService.js.map +1 -1
  213. package/build/dist/Server/Services/AlertStateTimelineService.js +36 -13
  214. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  215. package/build/dist/Server/Services/AnalyticsDatabaseService.js +52 -28
  216. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  217. package/build/dist/Server/Services/BillingInvoiceService.js +7 -2
  218. package/build/dist/Server/Services/BillingInvoiceService.js.map +1 -1
  219. package/build/dist/Server/Services/BillingService.js +8 -8
  220. package/build/dist/Server/Services/BillingService.js.map +1 -1
  221. package/build/dist/Server/Services/DashboardDomainService.js +49 -27
  222. package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
  223. package/build/dist/Server/Services/DashboardService.js +11 -4
  224. package/build/dist/Server/Services/DashboardService.js.map +1 -1
  225. package/build/dist/Server/Services/DatabaseService.js +32 -12
  226. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  227. package/build/dist/Server/Services/IncidentEpisodeFeedService.js +17 -5
  228. package/build/dist/Server/Services/IncidentEpisodeFeedService.js.map +1 -1
  229. package/build/dist/Server/Services/IncidentEpisodeService.js +40 -10
  230. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
  231. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +81 -24
  232. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -1
  233. package/build/dist/Server/Services/IncidentFeedService.js +34 -10
  234. package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
  235. package/build/dist/Server/Services/IncidentGroupingEngineService.js +43 -29
  236. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
  237. package/build/dist/Server/Services/IncidentService.js +116 -28
  238. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  239. package/build/dist/Server/Services/IncidentSlaRuleService.js +19 -11
  240. package/build/dist/Server/Services/IncidentSlaRuleService.js.map +1 -1
  241. package/build/dist/Server/Services/IncidentSlaService.js +21 -14
  242. package/build/dist/Server/Services/IncidentSlaService.js.map +1 -1
  243. package/build/dist/Server/Services/IncidentStateTimelineService.js +130 -37
  244. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  245. package/build/dist/Server/Services/KubernetesClusterService.js +51 -14
  246. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  247. package/build/dist/Server/Services/LabelService.js +10 -1
  248. package/build/dist/Server/Services/LabelService.js.map +1 -1
  249. package/build/dist/Server/Services/MonitorFeedService.js +34 -10
  250. package/build/dist/Server/Services/MonitorFeedService.js.map +1 -1
  251. package/build/dist/Server/Services/MonitorProbeService.js +23 -3
  252. package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
  253. package/build/dist/Server/Services/MonitorService.js +42 -11
  254. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  255. package/build/dist/Server/Services/MonitorStatusTimelineService.js +69 -21
  256. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  257. package/build/dist/Server/Services/NotificationService.js +4 -3
  258. package/build/dist/Server/Services/NotificationService.js.map +1 -1
  259. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +49 -12
  260. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  261. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +9 -3
  262. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
  263. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +26 -11
  264. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  265. package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js +34 -10
  266. package/build/dist/Server/Services/OnCallDutyPolicyFeedService.js.map +1 -1
  267. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +94 -37
  268. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  269. package/build/dist/Server/Services/OnCallDutyPolicyService.js +1 -1
  270. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  271. package/build/dist/Server/Services/OpenTelemetryIngestService.js +45 -17
  272. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  273. package/build/dist/Server/Services/ProbeService.js +13 -7
  274. package/build/dist/Server/Services/ProbeService.js.map +1 -1
  275. package/build/dist/Server/Services/ProjectService.js +41 -21
  276. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  277. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +17 -5
  278. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
  279. package/build/dist/Server/Services/ScheduledMaintenanceService.js +71 -24
  280. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  281. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +72 -24
  282. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  283. package/build/dist/Server/Services/StatusPageDomainService.js +55 -29
  284. package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
  285. package/build/dist/Server/Services/StatusPageService.js +29 -9
  286. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  287. package/build/dist/Server/Services/StatusPageSubscriberService.js +393 -130
  288. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  289. package/build/dist/Server/Services/TeamMemberService.js +10 -2
  290. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  291. package/build/dist/Server/Services/TelemetryAttributeService.js +83 -6
  292. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  293. package/build/dist/Server/Services/UserNotificationRuleService.js +10 -2
  294. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  295. package/build/dist/Server/Services/UserService.js +8 -3
  296. package/build/dist/Server/Services/UserService.js.map +1 -1
  297. package/build/dist/Server/Services/UserWhatsAppService.js +10 -2
  298. package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
  299. package/build/dist/Server/Services/WorkflowService.js +7 -2
  300. package/build/dist/Server/Services/WorkflowService.js.map +1 -1
  301. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +367 -180
  302. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  303. package/build/dist/Server/Types/Domain.js +12 -6
  304. package/build/dist/Server/Types/Domain.js.map +1 -1
  305. package/build/dist/Server/Types/Workflow/Components/API/Post.js +11 -7
  306. package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
  307. package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +11 -4
  308. package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
  309. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +7 -0
  310. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  311. package/build/dist/Server/Utils/CodeRepository/CodeRepository.js +45 -17
  312. package/build/dist/Server/Utils/CodeRepository/CodeRepository.js.map +1 -1
  313. package/build/dist/Server/Utils/Express.js.map +1 -1
  314. package/build/dist/Server/Utils/Greenlock/Greenlock.js +36 -29
  315. package/build/dist/Server/Utils/Greenlock/Greenlock.js.map +1 -1
  316. package/build/dist/Server/Utils/LLM/LLMService.js +18 -6
  317. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  318. package/build/dist/Server/Utils/Logger.js +61 -13
  319. package/build/dist/Server/Utils/Logger.js.map +1 -1
  320. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +23 -20
  321. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  322. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +13 -4
  323. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  324. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +25 -22
  325. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  326. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +6 -3
  327. package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
  328. package/build/dist/Server/Utils/Profiling.js +9 -6
  329. package/build/dist/Server/Utils/Profiling.js.map +1 -1
  330. package/build/dist/Server/Utils/Realtime.js +50 -34
  331. package/build/dist/Server/Utils/Realtime.js.map +1 -1
  332. package/build/dist/Server/Utils/Response.js +2 -2
  333. package/build/dist/Server/Utils/Response.js.map +1 -1
  334. package/build/dist/Server/Utils/StartServer.js +23 -11
  335. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  336. package/build/dist/Server/Utils/Telemetry/SpanUtil.js +52 -0
  337. package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -0
  338. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +58 -15
  339. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  340. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +58 -15
  341. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
  342. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +19 -5
  343. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  344. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +90 -26
  345. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  346. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.js +12 -3
  347. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Monitor.js.map +1 -1
  348. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.js +25 -7
  349. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/OnCallDutyPolicy.js.map +1 -1
  350. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +58 -19
  351. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
  352. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +102 -29
  353. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  354. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +38 -9
  355. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -1
  356. package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js +34 -8
  357. package/build/dist/Server/Utils/Workspace/Slack/Actions/AlertEpisode.js.map +1 -1
  358. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +3 -1
  359. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -1
  360. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +55 -13
  361. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
  362. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js +5 -1
  363. package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js.map +1 -1
  364. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +91 -26
  365. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -1
  366. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +355 -270
  367. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  368. package/build/dist/Server/Utils/Workspace/Workspace.js +21 -12
  369. package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
  370. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +3 -1
  371. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
  372. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js +9 -2
  373. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -1
  374. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +1 -1
  375. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +1 -1
  376. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +12 -6
  377. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +1 -1
  378. package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +31 -30
  379. package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
  380. package/build/dist/UI/Components/Charts/Area/AreaChart.js +20 -2
  381. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  382. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
  383. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  384. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +9 -2
  385. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  386. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +9 -2
  387. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  388. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.js +2 -0
  389. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedExemplarPoint.js.map +1 -0
  390. package/build/dist/UI/Components/Charts/Line/LineChart.js +20 -2
  391. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  392. package/build/dist/UI/Components/Charts/Types/ExemplarPoint.js +2 -0
  393. package/build/dist/UI/Components/Charts/Types/ExemplarPoint.js.map +1 -0
  394. package/build/dist/UI/Components/Dictionary/Dictionary.js +9 -1
  395. package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
  396. package/build/dist/UI/Components/Filters/FiltersForm.js +1 -1
  397. package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
  398. package/build/dist/UI/Components/Filters/JSONFilter.js +1 -1
  399. package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
  400. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +3 -3
  401. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +9 -5
  402. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  403. package/build/dist/UI/Components/Navbar/NavBar.js +9 -1
  404. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  405. package/package.json +1 -1
@@ -40,7 +40,7 @@ import StatusPageService from "../../Server/Services/StatusPageService";
40
40
  import StatusPageSubscriberService from "../../Server/Services/StatusPageSubscriberService";
41
41
  import QueryHelper from "../../Server/Types/Database/QueryHelper";
42
42
  import Markdown, { MarkdownContentType } from "../../Server/Types/Markdown";
43
- import logger from "../../Server/Utils/Logger";
43
+ import logger, { LogAttributes } from "../../Server/Utils/Logger";
44
44
  import StatusPage from "../../Models/DatabaseModels/StatusPage";
45
45
  import StatusPageResource from "../../Models/DatabaseModels/StatusPageResource";
46
46
  import StatusPageSubscriber from "../../Models/DatabaseModels/StatusPageSubscriber";
@@ -92,6 +92,10 @@ export class Service extends DatabaseService<Model> {
92
92
  logger.debug(
93
93
  "ScheduledMaintenance:SendSubscriberRemindersOnEventScheduled: Sending notification for event: " +
94
94
  event.id,
95
+ {
96
+ projectId: event.projectId?.toString(),
97
+ scheduledMaintenanceId: event.id?.toString(),
98
+ } as LogAttributes,
95
99
  );
96
100
 
97
101
  let statusPageResources: Array<StatusPageResource> = [];
@@ -288,7 +292,9 @@ export class Service extends DatabaseService<Model> {
288
292
  statusPageId: statuspage.id!,
289
293
  scheduledMaintenanceId: event.id!,
290
294
  }).catch((err: Error) => {
291
- logger.error(err);
295
+ logger.error(err, {
296
+ projectId: statuspage.projectId?.toString(),
297
+ } as LogAttributes);
292
298
  });
293
299
  }
294
300
 
@@ -320,7 +326,9 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
320
326
  url: subscriber.slackIncomingWebhookUrl,
321
327
  text: SlackUtil.convertMarkdownToSlackRichText(slackMessage),
322
328
  }).catch((err: Error) => {
323
- logger.error(err);
329
+ logger.error(err, {
330
+ projectId: statuspage.projectId?.toString(),
331
+ } as LogAttributes);
324
332
  });
325
333
  }
326
334
 
@@ -398,7 +406,9 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
398
406
  scheduledMaintenanceId: event.id!,
399
407
  },
400
408
  ).catch((err: Error) => {
401
- logger.error(err);
409
+ logger.error(err, {
410
+ projectId: statuspage.projectId?.toString(),
411
+ } as LogAttributes);
402
412
  });
403
413
  } else {
404
414
  // Use default hard-coded template
@@ -421,7 +431,9 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
421
431
  scheduledMaintenanceId: event.id!,
422
432
  },
423
433
  ).catch((err: Error) => {
424
- logger.error(err);
434
+ logger.error(err, {
435
+ projectId: statuspage.projectId?.toString(),
436
+ } as LogAttributes);
425
437
  });
426
438
  }
427
439
  }
@@ -815,6 +827,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
815
827
  } catch (error) {
816
828
  logger.error(
817
829
  `Workspace operations failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
830
+ {
831
+ projectId: createdItem.projectId?.toString(),
832
+ scheduledMaintenanceId: createdItem.id?.toString(),
833
+ } as LogAttributes,
818
834
  );
819
835
  return Promise.resolve();
820
836
  }
@@ -827,6 +843,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
827
843
  } catch (error) {
828
844
  logger.error(
829
845
  `Create scheduled maintenance feed failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
846
+ {
847
+ projectId: createdItem.projectId?.toString(),
848
+ scheduledMaintenanceId: createdItem.id?.toString(),
849
+ } as LogAttributes,
830
850
  );
831
851
  return Promise.resolve();
832
852
  }
@@ -839,6 +859,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
839
859
  } catch (error) {
840
860
  logger.error(
841
861
  `Create scheduled maintenance state timeline failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
862
+ {
863
+ projectId: createdItem.projectId?.toString(),
864
+ scheduledMaintenanceId: createdItem.id?.toString(),
865
+ } as LogAttributes,
842
866
  );
843
867
  return Promise.resolve();
844
868
  }
@@ -869,6 +893,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
869
893
  } catch (error) {
870
894
  logger.error(
871
895
  `Add owners failed in ScheduledMaintenanceService.onCreateSuccess: ${error}`,
896
+ {
897
+ projectId: createdItem.projectId?.toString(),
898
+ scheduledMaintenanceId: createdItem.id?.toString(),
899
+ } as LogAttributes,
872
900
  );
873
901
  return Promise.resolve();
874
902
  }
@@ -876,6 +904,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
876
904
  .catch((error: Error) => {
877
905
  logger.error(
878
906
  `Critical error in ScheduledMaintenanceService sequential operations: ${error}`,
907
+ {
908
+ projectId: createdItem.projectId?.toString(),
909
+ scheduledMaintenanceId: createdItem.id?.toString(),
910
+ } as LogAttributes,
879
911
  );
880
912
  });
881
913
 
@@ -921,6 +953,10 @@ ${resourcesAffected ? `**Resources Affected:** ${resourcesAffected}` : ""}
921
953
  } catch (error) {
922
954
  logger.error(
923
955
  `Error in handleScheduledMaintenanceWorkspaceOperationsAsync: ${error}`,
956
+ {
957
+ projectId: createdItem.projectId?.toString(),
958
+ scheduledMaintenanceId: createdItem.id?.toString(),
959
+ } as LogAttributes,
924
960
  );
925
961
  throw error;
926
962
  }
@@ -991,7 +1027,10 @@ ${scheduledMaintenance.description || "No description provided."}
991
1027
  },
992
1028
  });
993
1029
  } catch (error) {
994
- logger.error(`Error in createScheduledMaintenanceFeedAsync: ${error}`);
1030
+ logger.error(`Error in createScheduledMaintenanceFeedAsync: ${error}`, {
1031
+ projectId: scheduledMaintenance.projectId?.toString(),
1032
+ scheduledMaintenanceId: scheduledMaintenance.id?.toString(),
1033
+ } as LogAttributes);
995
1034
  throw error;
996
1035
  }
997
1036
  }
@@ -1026,6 +1065,10 @@ ${scheduledMaintenance.description || "No description provided."}
1026
1065
  } catch (error) {
1027
1066
  logger.error(
1028
1067
  `Error in createScheduledMaintenanceStateTimelineAsync: ${error}`,
1068
+ {
1069
+ projectId: createdItem.projectId?.toString(),
1070
+ scheduledMaintenanceId: createdItem.id?.toString(),
1071
+ } as LogAttributes,
1029
1072
  );
1030
1073
  throw error;
1031
1074
  }
@@ -1888,6 +1931,9 @@ ${labels
1888
1931
  });
1889
1932
  logger.info(
1890
1933
  `Updated ScheduledMaintenance ${scheduledMaintenance.id} current state to ${latestTimeline.scheduledMaintenanceStateId}`,
1934
+ {
1935
+ projectId: scheduledMaintenance.projectId?.toString(),
1936
+ } as LogAttributes,
1891
1937
  );
1892
1938
  }
1893
1939
  }
@@ -26,7 +26,7 @@ import ScheduledMaintenanceStateTimeline from "../../Models/DatabaseModels/Sched
26
26
  import { IsBillingEnabled } from "../EnvironmentConfig";
27
27
  import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
28
28
  import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
29
- import logger from "../Utils/Logger";
29
+ import logger, { LogAttributes } from "../Utils/Logger";
30
30
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
31
31
  import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
32
32
  import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
@@ -104,7 +104,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
104
104
  namespace: "ScheduledMaintenanceStateTimeline.create",
105
105
  });
106
106
  } catch (err) {
107
- logger.error(err);
107
+ logger.error(err, {
108
+ scheduledMaintenanceId:
109
+ createBy.data.scheduledMaintenanceId?.toString(),
110
+ } as LogAttributes);
108
111
  }
109
112
 
110
113
  if (!createBy.data.startsAt) {
@@ -292,7 +295,11 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
292
295
  try {
293
296
  await Semaphore.release(mutex);
294
297
  } catch (err) {
295
- logger.error(err);
298
+ logger.error(err, {
299
+ projectId: createBy.data.projectId?.toString(),
300
+ scheduledMaintenanceId:
301
+ createBy.data.scheduledMaintenanceId?.toString(),
302
+ } as LogAttributes);
296
303
  }
297
304
  }
298
305
 
@@ -317,14 +324,32 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
317
324
 
318
325
  // update the last status as ended.
319
326
 
320
- logger.debug("Status Timeline Before this");
321
- logger.debug(onCreate.carryForward.statusTimelineBeforeThisStatus);
322
-
323
- logger.debug("Status Timeline After this");
324
- logger.debug(onCreate.carryForward.statusTimelineAfterThisStatus);
325
-
326
- logger.debug("Created Item");
327
- logger.debug(createdItem);
327
+ logger.debug("Status Timeline Before this", {
328
+ projectId: createdItem.projectId?.toString(),
329
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
330
+ } as LogAttributes);
331
+ logger.debug(onCreate.carryForward.statusTimelineBeforeThisStatus, {
332
+ projectId: createdItem.projectId?.toString(),
333
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
334
+ } as LogAttributes);
335
+
336
+ logger.debug("Status Timeline After this", {
337
+ projectId: createdItem.projectId?.toString(),
338
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
339
+ } as LogAttributes);
340
+ logger.debug(onCreate.carryForward.statusTimelineAfterThisStatus, {
341
+ projectId: createdItem.projectId?.toString(),
342
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
343
+ } as LogAttributes);
344
+
345
+ logger.debug("Created Item", {
346
+ projectId: createdItem.projectId?.toString(),
347
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
348
+ } as LogAttributes);
349
+ logger.debug(createdItem, {
350
+ projectId: createdItem.projectId?.toString(),
351
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
352
+ } as LogAttributes);
328
353
 
329
354
  /*
330
355
  * now there are three cases.
@@ -332,7 +357,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
332
357
  */
333
358
  if (!onCreate.carryForward.statusTimelineBeforeThisStatus) {
334
359
  // This is the first status, no need to update previous status.
335
- logger.debug("This is the first status.");
360
+ logger.debug("This is the first status.", {
361
+ projectId: createdItem.projectId?.toString(),
362
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
363
+ } as LogAttributes);
336
364
  } else if (!onCreate.carryForward.statusTimelineAfterThisStatus) {
337
365
  /*
338
366
  * 2. This is the last status.
@@ -347,7 +375,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
347
375
  isRoot: true,
348
376
  },
349
377
  });
350
- logger.debug("This is the last status.");
378
+ logger.debug("This is the last status.", {
379
+ projectId: createdItem.projectId?.toString(),
380
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
381
+ } as LogAttributes);
351
382
  } else {
352
383
  /*
353
384
  * 3. This is in the middle.
@@ -373,7 +404,10 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
373
404
  isRoot: true,
374
405
  },
375
406
  });
376
- logger.debug("This status is in the middle.");
407
+ logger.debug("This status is in the middle.", {
408
+ projectId: createdItem.projectId?.toString(),
409
+ scheduledMaintenanceId: createdItem.scheduledMaintenanceId?.toString(),
410
+ } as LogAttributes);
377
411
  }
378
412
 
379
413
  if (!createdItem.endsAt) {
@@ -393,7 +427,11 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
393
427
  try {
394
428
  await Semaphore.release(mutex);
395
429
  } catch (err) {
396
- logger.error(err);
430
+ logger.error(err, {
431
+ projectId: createdItem.projectId?.toString(),
432
+ scheduledMaintenanceId:
433
+ createdItem.scheduledMaintenanceId?.toString(),
434
+ } as LogAttributes);
397
435
  }
398
436
  }
399
437
 
@@ -583,8 +621,16 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
583
621
  ).toString()})** is complete. Archiving channel.`,
584
622
  },
585
623
  }).catch((error: Error) => {
586
- logger.error(`Error while archiving workspace channels:`);
587
- logger.error(error);
624
+ logger.error(`Error while archiving workspace channels:`, {
625
+ projectId: createdItem.projectId?.toString(),
626
+ scheduledMaintenanceId:
627
+ createdItem.scheduledMaintenanceId?.toString(),
628
+ } as LogAttributes);
629
+ logger.error(error, {
630
+ projectId: createdItem.projectId?.toString(),
631
+ scheduledMaintenanceId:
632
+ createdItem.scheduledMaintenanceId?.toString(),
633
+ } as LogAttributes);
588
634
  });
589
635
  }
590
636
 
@@ -796,7 +842,9 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
796
842
 
797
843
  if (!stateBeforeThis) {
798
844
  // This is the first state, no need to update previous state.
799
- logger.debug("This is the first state.");
845
+ logger.debug("This is the first state.", {
846
+ scheduledMaintenanceId: scheduledMaintenanceId?.toString(),
847
+ } as LogAttributes);
800
848
  } else if (!stateAfterThis) {
801
849
  /*
802
850
  * This is the last state.
@@ -811,7 +859,9 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
811
859
  isRoot: true,
812
860
  },
813
861
  });
814
- logger.debug("This is the last state.");
862
+ logger.debug("This is the last state.", {
863
+ scheduledMaintenanceId: scheduledMaintenanceId?.toString(),
864
+ } as LogAttributes);
815
865
  } else {
816
866
  /*
817
867
  * This state is in the middle.
@@ -837,7 +887,9 @@ export class Service extends DatabaseService<ScheduledMaintenanceStateTimeline>
837
887
  isRoot: true,
838
888
  },
839
889
  });
840
- logger.debug("This state is in the middle.");
890
+ logger.debug("This state is in the middle.", {
891
+ scheduledMaintenanceId: scheduledMaintenanceId?.toString(),
892
+ } as LogAttributes);
841
893
  }
842
894
  }
843
895
 
@@ -2,7 +2,7 @@ import CreateBy from "../Types/Database/CreateBy";
2
2
  import DeleteBy from "../Types/Database/DeleteBy";
3
3
  import { OnCreate, OnDelete } from "../Types/Database/Hooks";
4
4
  import GreenlockUtil from "../Utils/Greenlock/Greenlock";
5
- import logger from "../Utils/Logger";
5
+ import logger, { LogAttributes } from "../Utils/Logger";
6
6
  import DatabaseService from "./DatabaseService";
7
7
  import DomainService from "./DomainService";
8
8
  import HTTPErrorResponse from "../../Types/API/HTTPErrorResponse";
@@ -164,6 +164,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
164
164
 
165
165
  logger.debug(
166
166
  "Ordering SSL for domain: " + statusPageDomain.fullDomain,
167
+ { fullDomain: statusPageDomain.fullDomain } as LogAttributes,
167
168
  );
168
169
 
169
170
  await GreenlockUtil.orderCert({
@@ -175,6 +176,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
175
176
 
176
177
  logger.debug(
177
178
  "SSL ordered for domain: " + statusPageDomain.fullDomain,
179
+ { fullDomain: statusPageDomain.fullDomain } as LogAttributes,
178
180
  );
179
181
 
180
182
  // update the order.
@@ -244,7 +246,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
244
246
 
245
247
  return true;
246
248
  } catch (err) {
247
- logger.error(err);
249
+ logger.error(err, { fullDomain: fulldomain } as LogAttributes);
248
250
  return false;
249
251
  }
250
252
  }
@@ -288,7 +290,9 @@ export class Service extends DatabaseService<StatusPageDomain> {
288
290
  try {
289
291
  // get the token from the domain.
290
292
 
291
- logger.debug("Checking for CNAME " + fullDomain);
293
+ logger.debug("Checking for CNAME " + fullDomain, {
294
+ fullDomain,
295
+ } as LogAttributes);
292
296
 
293
297
  const statusPageDomain: StatusPageDomain | null = await this.findOneBy({
294
298
  query: {
@@ -309,7 +313,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
309
313
 
310
314
  const token: string = statusPageDomain.cnameVerificationToken!;
311
315
 
312
- logger.debug("Checking for CNAME " + fullDomain + " with token " + token);
316
+ logger.debug(
317
+ "Checking for CNAME " + fullDomain + " with token " + token,
318
+ { fullDomain } as LogAttributes,
319
+ );
313
320
 
314
321
  try {
315
322
  const result: HTTPErrorResponse | HTTPResponse<JSONObject> =
@@ -322,8 +329,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
322
329
  ),
323
330
  });
324
331
 
325
- logger.debug("CNAME verification result");
326
- logger.debug(result);
332
+ logger.debug("CNAME verification result", {
333
+ fullDomain,
334
+ } as LogAttributes);
335
+ logger.debug(result, { fullDomain } as LogAttributes);
327
336
 
328
337
  if (result.isSuccess()) {
329
338
  await this.updateCnameStatusForStatusPageDomain({
@@ -334,8 +343,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
334
343
  return true;
335
344
  }
336
345
  } catch (err) {
337
- logger.debug("Failed checking for CNAME " + fullDomain);
338
- logger.debug(err);
346
+ logger.debug("Failed checking for CNAME " + fullDomain, {
347
+ fullDomain,
348
+ } as LogAttributes);
349
+ logger.debug(err, { fullDomain } as LogAttributes);
339
350
  }
340
351
 
341
352
  // try with https
@@ -351,8 +362,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
351
362
  ),
352
363
  });
353
364
 
354
- logger.debug("CNAME verification result for https");
355
- logger.debug(resultHttps);
365
+ logger.debug("CNAME verification result for https", {
366
+ fullDomain,
367
+ } as LogAttributes);
368
+ logger.debug(resultHttps, { fullDomain } as LogAttributes);
356
369
 
357
370
  if (resultHttps.isSuccess()) {
358
371
  await this.updateCnameStatusForStatusPageDomain({
@@ -363,8 +376,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
363
376
  return true;
364
377
  }
365
378
  } catch (err) {
366
- logger.debug("Failed checking for CNAME " + fullDomain);
367
- logger.debug(err);
379
+ logger.debug("Failed checking for CNAME " + fullDomain, {
380
+ fullDomain,
381
+ } as LogAttributes);
382
+ logger.debug(err, { fullDomain } as LogAttributes);
368
383
  }
369
384
 
370
385
  try {
@@ -383,6 +398,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
383
398
  if (!cnameRecord) {
384
399
  logger.debug(
385
400
  `No CNAME record found for ${fullDomain}. Expected record: ${StatusPageCNameRecord}`,
401
+ { fullDomain } as LogAttributes,
386
402
  );
387
403
  await this.updateCnameStatusForStatusPageDomain({
388
404
  domain: fullDomain,
@@ -398,6 +414,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
398
414
  ) {
399
415
  logger.debug(
400
416
  `CNAME record for ${fullDomain} matches the expected record: ${StatusPageCNameRecord}`,
417
+ { fullDomain } as LogAttributes,
401
418
  );
402
419
 
403
420
  await this.updateCnameStatusForStatusPageDomain({
@@ -410,11 +427,14 @@ export class Service extends DatabaseService<StatusPageDomain> {
410
427
 
411
428
  logger.debug(
412
429
  `CNAME record for ${fullDomain} is ${cnameRecord} and it does not match the expected record: ${StatusPageCNameRecord}`,
430
+ { fullDomain } as LogAttributes,
413
431
  );
414
432
  }
415
433
  } catch (err) {
416
- logger.debug("Failed checking for CNAME " + fullDomain);
417
- logger.debug(err);
434
+ logger.debug("Failed checking for CNAME " + fullDomain, {
435
+ fullDomain,
436
+ } as LogAttributes);
437
+ logger.debug(err, { fullDomain } as LogAttributes);
418
438
  }
419
439
 
420
440
  await this.updateCnameStatusForStatusPageDomain({
@@ -424,8 +444,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
424
444
 
425
445
  return false;
426
446
  } catch (err) {
427
- logger.debug("Failed checking for CNAME " + fullDomain);
428
- logger.debug(err);
447
+ logger.debug("Failed checking for CNAME " + fullDomain, {
448
+ fullDomain,
449
+ } as LogAttributes);
450
+ logger.debug(err, { fullDomain } as LogAttributes);
429
451
 
430
452
  await this.updateCnameStatusForStatusPageDomain({
431
453
  domain: fullDomain,
@@ -464,6 +486,7 @@ export class Service extends DatabaseService<StatusPageDomain> {
464
486
 
465
487
  logger.debug(
466
488
  `StatusPageCerts:RemoveCerts - Checking CNAME ${statusPageDomain.fullDomain}`,
489
+ { fullDomain: statusPageDomain.fullDomain } as LogAttributes,
467
490
  );
468
491
 
469
492
  // Check CNAME validation and if that fails. Remove certs from Greenlock.
@@ -496,8 +519,11 @@ export class Service extends DatabaseService<StatusPageDomain> {
496
519
  } catch (err) {
497
520
  logger.error(
498
521
  "Cannot order cert for domain: " + statusPageDomain.fullDomain,
522
+ { fullDomain: statusPageDomain.fullDomain } as LogAttributes,
499
523
  );
500
- logger.error(err);
524
+ logger.error(err, {
525
+ fullDomain: statusPageDomain.fullDomain,
526
+ } as LogAttributes);
501
527
  }
502
528
  }
503
529
  } else {
@@ -538,10 +564,14 @@ export class Service extends DatabaseService<StatusPageDomain> {
538
564
 
539
565
  for (const domain of domains) {
540
566
  try {
541
- logger.debug("Ordering SSL for domain: " + domain.fullDomain);
567
+ logger.debug("Ordering SSL for domain: " + domain.fullDomain, {
568
+ fullDomain: domain.fullDomain,
569
+ } as LogAttributes);
542
570
  await this.orderCert(domain);
543
571
  } catch (e) {
544
- logger.error(e);
572
+ logger.error(e, {
573
+ fullDomain: domain.fullDomain,
574
+ } as LogAttributes);
545
575
  }
546
576
  }
547
577
 
@@ -579,7 +609,9 @@ export class Service extends DatabaseService<StatusPageDomain> {
579
609
  try {
580
610
  await this.isCnameValid(domain.fullDomain as string); // this will also upate the status.
581
611
  } catch (e) {
582
- logger.error(e);
612
+ logger.error(e, {
613
+ fullDomain: domain.fullDomain as string,
614
+ } as LogAttributes);
583
615
  }
584
616
  }
585
617
  }
@@ -605,7 +637,9 @@ export class Service extends DatabaseService<StatusPageDomain> {
605
637
  },
606
638
  });
607
639
 
608
- logger.debug(`DomainModel removed from greenlock: ${domain}`);
640
+ logger.debug(`DomainModel removed from greenlock: ${domain}`, {
641
+ fullDomain: domain,
642
+ } as LogAttributes);
609
643
  },
610
644
  });
611
645
  }
@@ -653,8 +687,10 @@ export class Service extends DatabaseService<StatusPageDomain> {
653
687
  // order cert again.
654
688
  await this.orderCert(domain);
655
689
  } catch (err) {
656
- logger.error("Cannot order cert for domain: " + domain.fullDomain);
657
- logger.error(err);
690
+ logger.error("Cannot order cert for domain: " + domain.fullDomain, {
691
+ fullDomain: domain.fullDomain,
692
+ } as LogAttributes);
693
+ logger.error(err, { fullDomain: domain.fullDomain } as LogAttributes);
658
694
  }
659
695
  }
660
696
  }
@@ -5,7 +5,7 @@ import UpdateBy from "../Types/Database/UpdateBy";
5
5
  import CookieUtil from "../Utils/Cookie";
6
6
  import { ExpressRequest } from "../Utils/Express";
7
7
  import JSONWebToken from "../Utils/JsonWebToken";
8
- import logger from "../Utils/Logger";
8
+ import logger, { LogAttributes } from "../Utils/Logger";
9
9
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
10
10
  import DatabaseService from "./DatabaseService";
11
11
  import MonitorStatusService from "./MonitorStatusService";
@@ -217,7 +217,10 @@ export class Service extends DatabaseService<StatusPage> {
217
217
  false,
218
218
  onCreate.createBy.props,
219
219
  ).catch((error: Error) => {
220
- logger.error(`Error in StatusPageService owner assignment: ${error}`);
220
+ logger.error(`Error in StatusPageService owner assignment: ${error}`, {
221
+ projectId: createdItem.projectId?.toString(),
222
+ statusPageId: createdItem.id?.toString(),
223
+ } as LogAttributes);
221
224
  });
222
225
  }
223
226
 
@@ -405,7 +408,9 @@ export class Service extends DatabaseService<StatusPage> {
405
408
  req.ips[0];
406
409
 
407
410
  if (!ipAccessedFrom) {
408
- logger.error("IP address not found in request.");
411
+ logger.error("IP address not found in request.", {
412
+ statusPageId: statusPageId?.toString(),
413
+ } as LogAttributes);
409
414
  return {
410
415
  hasReadAccess: false,
411
416
  error: new ForbiddenException(
@@ -425,6 +430,7 @@ export class Service extends DatabaseService<StatusPage> {
425
430
  if (!isIPWhitelisted) {
426
431
  logger.error(
427
432
  `IP address ${ipAccessedFrom} is not whitelisted for status page ${statusPageId.toString()}.`,
433
+ { statusPageId: statusPageId?.toString() } as LogAttributes,
428
434
  );
429
435
 
430
436
  return {
@@ -460,7 +466,9 @@ export class Service extends DatabaseService<StatusPage> {
460
466
  };
461
467
  }
462
468
  } catch (err) {
463
- logger.error(err);
469
+ logger.error(err, {
470
+ statusPageId: statusPageId?.toString(),
471
+ } as LogAttributes);
464
472
  }
465
473
  }
466
474
 
@@ -492,7 +500,9 @@ export class Service extends DatabaseService<StatusPage> {
492
500
  };
493
501
  }
494
502
  } catch (err) {
495
- logger.error(err);
503
+ logger.error(err, {
504
+ statusPageId: statusPageId?.toString(),
505
+ } as LogAttributes);
496
506
  }
497
507
 
498
508
  return {
@@ -524,7 +534,9 @@ export class Service extends DatabaseService<StatusPage> {
524
534
  payload["type"] === MASTER_PASSWORD_COOKIE_IDENTIFIER
525
535
  );
526
536
  } catch (err) {
527
- logger.error(err);
537
+ logger.error(err, {
538
+ statusPageId: data.statusPageId?.toString(),
539
+ } as LogAttributes);
528
540
  }
529
541
 
530
542
  return false;
@@ -841,7 +853,10 @@ export class Service extends DatabaseService<StatusPage> {
841
853
  statusPageId: statuspage.id!,
842
854
  },
843
855
  ).catch((err: Error) => {
844
- logger.error(err);
856
+ logger.error(err, {
857
+ projectId: statuspage.projectId?.toString(),
858
+ statusPageId: statuspage.id?.toString(),
859
+ } as LogAttributes);
845
860
  });
846
861
  };
847
862
 
@@ -889,7 +904,10 @@ export class Service extends DatabaseService<StatusPage> {
889
904
  continue; // Cant send Status Page reports to SMS subscribers.
890
905
  }
891
906
  } catch (err) {
892
- logger.error(err);
907
+ logger.error(err, {
908
+ projectId: statuspage.projectId?.toString(),
909
+ statusPageId: statuspage.id?.toString(),
910
+ } as LogAttributes);
893
911
  }
894
912
  }
895
913
  }