@oneuptime/common 9.5.2 → 9.5.4

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 (218) hide show
  1. package/Models/DatabaseModels/Alert.ts +28 -0
  2. package/Models/DatabaseModels/AlertEpisode.ts +27 -0
  3. package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +1 -0
  4. package/Models/DatabaseModels/AlertStateTimeline.ts +1 -0
  5. package/Models/DatabaseModels/Incident.ts +28 -0
  6. package/Models/DatabaseModels/IncidentEpisode.ts +182 -0
  7. package/Models/DatabaseModels/IncidentEpisodeFeed.ts +2 -0
  8. package/Models/DatabaseModels/IncidentEpisodePublicNote.ts +611 -0
  9. package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +84 -0
  10. package/Models/DatabaseModels/IncidentGroupingRule.ts +36 -0
  11. package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
  12. package/Models/DatabaseModels/Index.ts +2 -0
  13. package/Models/DatabaseModels/MonitorStatusTimeline.ts +1 -0
  14. package/Models/DatabaseModels/Project.ts +252 -1
  15. package/Models/DatabaseModels/ProjectCallSMSConfig.ts +1 -0
  16. package/Models/DatabaseModels/ScheduledMaintenance.ts +28 -0
  17. package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +1 -0
  18. package/Models/DatabaseModels/StatusPage.ts +120 -0
  19. package/Server/API/IncidentEpisodePublicNoteAPI.ts +98 -0
  20. package/Server/API/StatusPageAPI.ts +1092 -45
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1770232207959-MigrationName.ts +181 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1770237245069-MigrationName.ts +35 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1770237245070-MigrationName.ts +57 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1770407024682-MigrationName.ts +83 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  26. package/Server/Services/AlertEpisodeMemberService.ts +6 -3
  27. package/Server/Services/AlertEpisodeService.ts +45 -97
  28. package/Server/Services/AlertEpisodeStateTimelineService.ts +4 -2
  29. package/Server/Services/AlertInternalNoteService.ts +5 -2
  30. package/Server/Services/AlertOwnerTeamService.ts +10 -4
  31. package/Server/Services/AlertOwnerUserService.ts +10 -4
  32. package/Server/Services/AlertService.ts +24 -38
  33. package/Server/Services/AlertStateTimelineService.ts +6 -3
  34. package/Server/Services/DatabaseService.ts +12 -0
  35. package/Server/Services/IncidentEpisodeMemberService.ts +8 -4
  36. package/Server/Services/IncidentEpisodePublicNoteService.ts +257 -0
  37. package/Server/Services/IncidentEpisodeService.ts +67 -93
  38. package/Server/Services/IncidentEpisodeStateTimelineService.ts +4 -2
  39. package/Server/Services/IncidentInternalNoteService.ts +10 -5
  40. package/Server/Services/IncidentMemberService.ts +20 -10
  41. package/Server/Services/IncidentOwnerTeamService.ts +20 -10
  42. package/Server/Services/IncidentOwnerUserService.ts +20 -10
  43. package/Server/Services/IncidentPublicNoteService.ts +10 -5
  44. package/Server/Services/IncidentService.ts +34 -110
  45. package/Server/Services/IncidentStateTimelineService.ts +11 -6
  46. package/Server/Services/Index.ts +2 -0
  47. package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +61 -39
  48. package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +31 -19
  49. package/Server/Services/ProjectService.ts +227 -0
  50. package/Server/Services/ScheduledMaintenanceInternalNoteService.ts +9 -6
  51. package/Server/Services/ScheduledMaintenancePublicNoteService.ts +9 -6
  52. package/Server/Services/ScheduledMaintenanceService.ts +27 -39
  53. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +8 -6
  54. package/Server/Services/UserNotificationRuleService.ts +32 -21
  55. package/Server/Utils/AI/IncidentEpisodeAIContextBuilder.ts +4 -2
  56. package/Server/Utils/Browser.ts +28 -20
  57. package/Server/Utils/Monitor/MonitorAlert.ts +5 -0
  58. package/Server/Utils/Monitor/MonitorIncident.ts +13 -0
  59. package/Server/Utils/PushNotificationUtil.ts +69 -26
  60. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +8 -4
  61. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +20 -8
  62. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +42 -22
  63. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +23 -17
  64. package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +1 -0
  65. package/Server/Utils/Workspace/WorkspaceMessages/Incident.ts +1 -0
  66. package/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.ts +1 -0
  67. package/Types/Email/EmailTemplateType.ts +4 -0
  68. package/Types/Icon/IconProp.ts +172 -0
  69. package/Types/Monitor/CriteriaIncident.ts +2 -0
  70. package/Types/Monitor/MonitorEvaluationSummary.ts +2 -0
  71. package/Types/Permission.ts +40 -0
  72. package/Types/StatusPage/StatusPageSubscriberNotificationEventType.ts +5 -0
  73. package/UI/Components/Icon/Icon.tsx +1333 -1
  74. package/Utils/Analytics.ts +11 -0
  75. package/build/dist/Models/DatabaseModels/Alert.js +30 -0
  76. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  77. package/build/dist/Models/DatabaseModels/AlertEpisode.js +29 -0
  78. package/build/dist/Models/DatabaseModels/AlertEpisode.js.map +1 -1
  79. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +1 -0
  80. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -1
  81. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +1 -0
  82. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
  83. package/build/dist/Models/DatabaseModels/Incident.js +30 -0
  84. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  85. package/build/dist/Models/DatabaseModels/IncidentEpisode.js +189 -0
  86. package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
  87. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js +2 -0
  88. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js.map +1 -1
  89. package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +626 -0
  90. package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js.map +1 -0
  91. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +86 -0
  92. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
  93. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +37 -0
  94. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -1
  95. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
  96. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
  97. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  98. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  99. package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +1 -0
  100. package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
  101. package/build/dist/Models/DatabaseModels/Project.js +267 -1
  102. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  103. package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +1 -0
  104. package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -1
  105. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +29 -0
  106. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  107. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -0
  108. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
  109. package/build/dist/Models/DatabaseModels/StatusPage.js +126 -0
  110. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  111. package/build/dist/Server/API/IncidentEpisodePublicNoteAPI.js +68 -0
  112. package/build/dist/Server/API/IncidentEpisodePublicNoteAPI.js.map +1 -0
  113. package/build/dist/Server/API/StatusPageAPI.js +874 -47
  114. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  115. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770232207959-MigrationName.js +68 -0
  116. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770232207959-MigrationName.js.map +1 -0
  117. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770237245069-MigrationName.js +18 -0
  118. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770237245069-MigrationName.js.map +1 -0
  119. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770237245070-MigrationName.js +27 -0
  120. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770237245070-MigrationName.js.map +1 -0
  121. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770407024682-MigrationName.js +34 -0
  122. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770407024682-MigrationName.js.map +1 -0
  123. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  124. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  125. package/build/dist/Server/Services/AlertEpisodeMemberService.js +6 -3
  126. package/build/dist/Server/Services/AlertEpisodeMemberService.js.map +1 -1
  127. package/build/dist/Server/Services/AlertEpisodeService.js +33 -90
  128. package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
  129. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js +3 -2
  130. package/build/dist/Server/Services/AlertEpisodeStateTimelineService.js.map +1 -1
  131. package/build/dist/Server/Services/AlertInternalNoteService.js +2 -2
  132. package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
  133. package/build/dist/Server/Services/AlertOwnerTeamService.js +4 -4
  134. package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -1
  135. package/build/dist/Server/Services/AlertOwnerUserService.js +4 -4
  136. package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -1
  137. package/build/dist/Server/Services/AlertService.js +16 -34
  138. package/build/dist/Server/Services/AlertService.js.map +1 -1
  139. package/build/dist/Server/Services/AlertStateTimelineService.js +3 -3
  140. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  141. package/build/dist/Server/Services/DatabaseService.js +9 -0
  142. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  143. package/build/dist/Server/Services/IncidentEpisodeMemberService.js +8 -4
  144. package/build/dist/Server/Services/IncidentEpisodeMemberService.js.map +1 -1
  145. package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js +224 -0
  146. package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js.map +1 -0
  147. package/build/dist/Server/Services/IncidentEpisodeService.js +47 -82
  148. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
  149. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +3 -2
  150. package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -1
  151. package/build/dist/Server/Services/IncidentInternalNoteService.js +4 -2
  152. package/build/dist/Server/Services/IncidentInternalNoteService.js.map +1 -1
  153. package/build/dist/Server/Services/IncidentMemberService.js +8 -4
  154. package/build/dist/Server/Services/IncidentMemberService.js.map +1 -1
  155. package/build/dist/Server/Services/IncidentOwnerTeamService.js +8 -4
  156. package/build/dist/Server/Services/IncidentOwnerTeamService.js.map +1 -1
  157. package/build/dist/Server/Services/IncidentOwnerUserService.js +8 -4
  158. package/build/dist/Server/Services/IncidentOwnerUserService.js.map +1 -1
  159. package/build/dist/Server/Services/IncidentPublicNoteService.js +4 -2
  160. package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
  161. package/build/dist/Server/Services/IncidentService.js +24 -94
  162. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  163. package/build/dist/Server/Services/IncidentStateTimelineService.js +5 -3
  164. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  165. package/build/dist/Server/Services/Index.js +2 -0
  166. package/build/dist/Server/Services/Index.js.map +1 -1
  167. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +20 -16
  168. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
  169. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +10 -8
  170. package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
  171. package/build/dist/Server/Services/ProjectService.js +207 -0
  172. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  173. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js +4 -3
  174. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js.map +1 -1
  175. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +4 -3
  176. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
  177. package/build/dist/Server/Services/ScheduledMaintenanceService.js +16 -37
  178. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  179. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +3 -3
  180. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  181. package/build/dist/Server/Services/UserNotificationRuleService.js +33 -25
  182. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  183. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js +4 -2
  184. package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js.map +1 -1
  185. package/build/dist/Server/Utils/Browser.js +19 -12
  186. package/build/dist/Server/Utils/Browser.js.map +1 -1
  187. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +4 -0
  188. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  189. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +9 -0
  190. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  191. package/build/dist/Server/Utils/PushNotificationUtil.js +36 -28
  192. package/build/dist/Server/Utils/PushNotificationUtil.js.map +1 -1
  193. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +8 -4
  194. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  195. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +8 -8
  196. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -1
  197. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +18 -10
  198. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
  199. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +8 -8
  200. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -1
  201. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -1
  202. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Incident.js.map +1 -1
  203. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js.map +1 -1
  204. package/build/dist/Types/Email/EmailTemplateType.js +3 -0
  205. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  206. package/build/dist/Types/Icon/IconProp.js +172 -0
  207. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  208. package/build/dist/Types/Monitor/CriteriaIncident.js +1 -0
  209. package/build/dist/Types/Monitor/CriteriaIncident.js.map +1 -1
  210. package/build/dist/Types/Permission.js +34 -0
  211. package/build/dist/Types/Permission.js.map +1 -1
  212. package/build/dist/Types/StatusPage/StatusPageSubscriberNotificationEventType.js +4 -0
  213. package/build/dist/Types/StatusPage/StatusPageSubscriberNotificationEventType.js.map +1 -1
  214. package/build/dist/UI/Components/Icon/Icon.js +502 -1
  215. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  216. package/build/dist/Utils/Analytics.js +5 -0
  217. package/build/dist/Utils/Analytics.js.map +1 -1
  218. package/package.json +1 -1
@@ -297,7 +297,7 @@ export default class SlackScheduledMaintenanceActions {
297
297
  messageBlocks: [
298
298
  {
299
299
  _type: "WorkspacePayloadMarkdown",
300
- text: `**Scheduled Event #${createdEvent.scheduledMaintenanceNumber}** created successfully. [View Event](${await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(
300
+ text: `**Scheduled Event ${createdEvent.scheduledMaintenanceNumberWithPrefix || "#" + createdEvent.scheduledMaintenanceNumber}** created successfully. [View Event](${await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(
301
301
  slackRequest.projectId!,
302
302
  createdEvent.id!,
303
303
  )})`,
@@ -569,15 +569,17 @@ export default class SlackScheduledMaintenanceActions {
569
569
  });
570
570
 
571
571
  if (isAlreadyOngoing) {
572
- const scheduledMaintenanceNumber: number | null =
573
- await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
574
- scheduledMaintenanceId: scheduledMaintenanceId,
575
- });
572
+ const scheduledMaintenanceNumberResult: {
573
+ number: number | null;
574
+ numberWithPrefix: string | null;
575
+ } = await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
576
+ scheduledMaintenanceId: scheduledMaintenanceId,
577
+ });
576
578
 
577
579
  // send a message to the channel visible to user, that the scheduledMaintenance has already been acknowledged.
578
580
  const markdwonPayload: WorkspacePayloadMarkdown = {
579
581
  _type: "WorkspacePayloadMarkdown",
580
- text: `@${slackUsername}, unfortunately you cannot change the state to ongoing because the **[Scheduled Maintenance ${scheduledMaintenanceNumber?.toString()}](${await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(slackRequest.projectId!, scheduledMaintenanceId)})** is already in ongoing state.`,
582
+ text: `@${slackUsername}, unfortunately you cannot change the state to ongoing because the **[Scheduled Maintenance ${scheduledMaintenanceNumberResult.numberWithPrefix || "#" + scheduledMaintenanceNumberResult.number}](${await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(slackRequest.projectId!, scheduledMaintenanceId)})** is already in ongoing state.`,
581
583
  };
582
584
 
583
585
  await SlackUtil.sendDirectMessageToUser({
@@ -699,14 +701,16 @@ export default class SlackScheduledMaintenanceActions {
699
701
  });
700
702
 
701
703
  if (isAlreadyResolved) {
702
- const scheduledMaintenanceNumber: number | null =
703
- await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
704
- scheduledMaintenanceId: scheduledMaintenanceId,
705
- });
704
+ const scheduledMaintenanceNumberResult: {
705
+ number: number | null;
706
+ numberWithPrefix: string | null;
707
+ } = await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
708
+ scheduledMaintenanceId: scheduledMaintenanceId,
709
+ });
706
710
  // send a message to the channel visible to user, that the scheduledMaintenance has already been Resolved.
707
711
  const markdwonPayload: WorkspacePayloadMarkdown = {
708
712
  _type: "WorkspacePayloadMarkdown",
709
- text: `@${slackUsername}, unfortunately you cannot resolve the **[Scheduled Maintenance ${scheduledMaintenanceNumber?.toString()}](${await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(slackRequest.projectId!, scheduledMaintenanceId)})**. It has already been resolved.`,
713
+ text: `@${slackUsername}, unfortunately you cannot resolve the **[Scheduled Maintenance ${scheduledMaintenanceNumberResult.numberWithPrefix || "#" + scheduledMaintenanceNumberResult.number}](${await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(slackRequest.projectId!, scheduledMaintenanceId)})**. It has already been resolved.`,
710
714
  };
711
715
 
712
716
  await SlackUtil.sendDirectMessageToUser({
@@ -1197,10 +1201,12 @@ export default class SlackScheduledMaintenanceActions {
1197
1201
  workspaceLog.scheduledMaintenanceId;
1198
1202
 
1199
1203
  // Get the scheduled maintenance number for the confirmation message
1200
- const scheduledMaintenanceNumber: number | null =
1201
- await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
1202
- scheduledMaintenanceId: scheduledMaintenanceId,
1203
- });
1204
+ const scheduledMaintenanceNumberResult: {
1205
+ number: number | null;
1206
+ numberWithPrefix: string | null;
1207
+ } = await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
1208
+ scheduledMaintenanceId: scheduledMaintenanceId,
1209
+ });
1204
1210
 
1205
1211
  // Get the user ID in OneUptime based on Slack user ID
1206
1212
  const userAuth: WorkspaceUserAuthToken | null =
@@ -1324,8 +1330,8 @@ export default class SlackScheduledMaintenanceActions {
1324
1330
 
1325
1331
  const confirmationMessage: string =
1326
1332
  noteType === "private"
1327
- ? `✅ Message saved as *private note* to <${scheduledMaintenanceLink}|Scheduled Maintenance #${scheduledMaintenanceNumber}>.`
1328
- : `✅ Message saved as *public note* to <${scheduledMaintenanceLink}|Scheduled Maintenance #${scheduledMaintenanceNumber}>. This note will be visible on the status page.`;
1333
+ ? `✅ Message saved as *private note* to <${scheduledMaintenanceLink}|Scheduled Maintenance ${scheduledMaintenanceNumberResult.numberWithPrefix || "#" + scheduledMaintenanceNumberResult.number}>.`
1334
+ : `✅ Message saved as *public note* to <${scheduledMaintenanceLink}|Scheduled Maintenance ${scheduledMaintenanceNumberResult.numberWithPrefix || "#" + scheduledMaintenanceNumberResult.number}>. This note will be visible on the status page.`;
1329
1335
 
1330
1336
  await SlackUtil.sendMessageToThread({
1331
1337
  authToken: authToken,
@@ -16,6 +16,7 @@ export default class AlertWorkspaceMessages {
16
16
  projectId: ObjectID;
17
17
  alertId: ObjectID;
18
18
  alertNumber: number;
19
+ alertNumberWithPrefix?: string;
19
20
  }): Promise<{
20
21
  channelsCreated: NotificationRuleWorkspaceChannel[];
21
22
  } | null> {
@@ -16,6 +16,7 @@ export default class IncidentWorkspaceMessages {
16
16
  projectId: ObjectID;
17
17
  incidentId: ObjectID;
18
18
  incidentNumber: number;
19
+ incidentNumberWithPrefix?: string;
19
20
  }): Promise<{
20
21
  channelsCreated: NotificationRuleWorkspaceChannel[];
21
22
  } | null> {
@@ -16,6 +16,7 @@ export default class ScheduledMaintenanceWorkspaceMessages {
16
16
  projectId: ObjectID;
17
17
  scheduledMaintenanceId: ObjectID;
18
18
  scheduledMaintenanceNumber: number;
19
+ scheduledMaintenanceNumberWithPrefix?: string;
19
20
  }): Promise<{
20
21
  channelsCreated: NotificationRuleWorkspaceChannel[];
21
22
  } | null> {
@@ -53,6 +53,10 @@ enum EmailTemplateType {
53
53
  IncidentEpisodeOwnerNotePosted = "IncidentEpisodeOwnerNotePosted.hbs",
54
54
  IncidentEpisodeOwnerResourceCreated = "IncidentEpisodeOwnerResourceCreated.hbs",
55
55
 
56
+ SubscriberEpisodeCreated = "SubscriberEpisodeCreated.hbs",
57
+ SubscriberEpisodeStateChanged = "SubscriberEpisodeStateChanged.hbs",
58
+ SubscriberEpisodeNoteCreated = "SubscriberEpisodeNoteCreated.hbs",
59
+
56
60
  ScheduledMaintenanceOwnerNotePosted = "ScheduledMaintenanceOwnerNotePosted.hbs",
57
61
  ScheduledMaintenanceOwnerAdded = "ScheduledMaintenanceOwnerAdded.hbs",
58
62
  ScheduledMaintenanceOwnerStateChanged = "ScheduledMaintenanceOwnerStateChanged.hbs",
@@ -148,6 +148,178 @@ enum IconProp {
148
148
  ChartPie = "ChartPie",
149
149
  Heartbeat = "Heartbeat",
150
150
  Waterfall = "Waterfall",
151
+ ArrowDown = "ArrowDown",
152
+ ArrowUp = "ArrowUp",
153
+ ArrowLeft = "ArrowLeft",
154
+ ArrowRight = "ArrowRight",
155
+ ArrowPath = "ArrowPath",
156
+ ArrowTrendingUp = "ArrowTrendingUp",
157
+ ArrowTrendingDown = "ArrowTrendingDown",
158
+ ArrowUturnLeft = "ArrowUturnLeft",
159
+ ArrowUturnRight = "ArrowUturnRight",
160
+ Beaker = "Beaker",
161
+ Bookmark = "Bookmark",
162
+ BookmarkSlash = "BookmarkSlash",
163
+ Briefcase = "Briefcase",
164
+ BuildingOffice = "BuildingOffice",
165
+ Cake = "Cake",
166
+ Calculator = "Calculator",
167
+ Camera = "Camera",
168
+ ChartBarSquare = "ChartBarSquare",
169
+ ChatBubbleLeft = "ChatBubbleLeft",
170
+ ChatBubbleLeftRight = "ChatBubbleLeftRight",
171
+ CheckBadge = "CheckBadge",
172
+ Clipboard = "Clipboard",
173
+ ClipboardDocument = "ClipboardDocument",
174
+ ClipboardDocumentCheck = "ClipboardDocumentCheck",
175
+ ClipboardDocumentList = "ClipboardDocumentList",
176
+ Cloud = "Cloud",
177
+ CloudArrowDown = "CloudArrowDown",
178
+ CloudArrowUp = "CloudArrowUp",
179
+ Cog = "Cog",
180
+ Cog6Tooth = "Cog6Tooth",
181
+ Cog8Tooth = "Cog8Tooth",
182
+ CommandLine = "CommandLine",
183
+ ComputerDesktop = "ComputerDesktop",
184
+ CreditCard = "CreditCard",
185
+ CurrencyDollar = "CurrencyDollar",
186
+ DevicePhoneMobile = "DevicePhoneMobile",
187
+ DeviceTablet = "DeviceTablet",
188
+ Document = "Document",
189
+ DocumentArrowDown = "DocumentArrowDown",
190
+ DocumentArrowUp = "DocumentArrowUp",
191
+ DocumentDuplicate = "DocumentDuplicate",
192
+ DocumentMagnifyingGlass = "DocumentMagnifyingGlass",
193
+ DocumentMinus = "DocumentMinus",
194
+ DocumentPlus = "DocumentPlus",
195
+ DocumentText = "DocumentText",
196
+ EllipsisHorizontal = "EllipsisHorizontal",
197
+ EllipsisVertical = "EllipsisVertical",
198
+ Envelope = "Envelope",
199
+ EnvelopeOpen = "EnvelopeOpen",
200
+ Eye = "Eye",
201
+ FaceFrown = "FaceFrown",
202
+ FaceSmile = "FaceSmile",
203
+ Film = "Film",
204
+ Fingerprint = "Fingerprint",
205
+ Fire = "Fire",
206
+ FolderMinus = "FolderMinus",
207
+ FolderOpen = "FolderOpen",
208
+ FolderPlus = "FolderPlus",
209
+ Forward = "Forward",
210
+ Funnel = "Funnel",
211
+ Gift = "Gift",
212
+ GlobeAlt = "GlobeAlt",
213
+ HandRaised = "HandRaised",
214
+ HandThumbDown = "HandThumbDown",
215
+ HandThumbUp = "HandThumbUp",
216
+ Hashtag = "Hashtag",
217
+ Heart = "Heart",
218
+ Identification = "Identification",
219
+ Inbox = "Inbox",
220
+ InboxArrowDown = "InboxArrowDown",
221
+ InboxStack = "InboxStack",
222
+ InformationCircle = "InformationCircle",
223
+ Language = "Language",
224
+ Lifebuoy = "Lifebuoy",
225
+ LightBulb = "LightBulb",
226
+ LinkSlash = "LinkSlash",
227
+ LockOpen = "LockOpen",
228
+ MagnifyingGlass = "MagnifyingGlass",
229
+ MagnifyingGlassCircle = "MagnifyingGlassCircle",
230
+ MagnifyingGlassMinus = "MagnifyingGlassMinus",
231
+ MagnifyingGlassPlus = "MagnifyingGlassPlus",
232
+ Map = "Map",
233
+ MapPin = "MapPin",
234
+ Megaphone = "Megaphone",
235
+ Microphone = "Microphone",
236
+ Moon = "Moon",
237
+ MusicalNote = "MusicalNote",
238
+ Newspaper = "Newspaper",
239
+ NoSymbol = "NoSymbol",
240
+ PaintBrush = "PaintBrush",
241
+ PaperAirplane = "PaperAirplane",
242
+ PaperClip = "PaperClip",
243
+ Pause = "Pause",
244
+ PauseCircle = "PauseCircle",
245
+ PencilSquare = "PencilSquare",
246
+ Percent = "Percent",
247
+ Phone = "Phone",
248
+ Photo = "Photo",
249
+ PlayCircle = "PlayCircle",
250
+ PlusCircle = "PlusCircle",
251
+ PlusSmall = "PlusSmall",
252
+ Power = "Power",
253
+ PresentationChartBar = "PresentationChartBar",
254
+ PresentationChartLine = "PresentationChartLine",
255
+ Printer = "Printer",
256
+ PuzzlePiece = "PuzzlePiece",
257
+ QrCode = "QrCode",
258
+ QuestionMarkCircle = "QuestionMarkCircle",
259
+ QueueList = "QueueList",
260
+ Radio = "Radio",
261
+ ReceiptPercent = "ReceiptPercent",
262
+ ReceiptRefund = "ReceiptRefund",
263
+ RocketLaunch = "RocketLaunch",
264
+ Scale = "Scale",
265
+ Scissors = "Scissors",
266
+ Server = "Server",
267
+ ServerStack = "ServerStack",
268
+ Share = "Share",
269
+ ShieldExclamation = "ShieldExclamation",
270
+ ShoppingBag = "ShoppingBag",
271
+ ShoppingCart = "ShoppingCart",
272
+ SignalSlash = "SignalSlash",
273
+ Sparkles = "Sparkles",
274
+ SpeakerWave = "SpeakerWave",
275
+ SpeakerXMark = "SpeakerXMark",
276
+ Square2Stack = "Square2Stack",
277
+ StopCircle = "StopCircle",
278
+ Sun = "Sun",
279
+ Tag = "Tag",
280
+ Ticket = "Ticket",
281
+ Trophy = "Trophy",
282
+ Truck = "Truck",
283
+ Tv = "Tv",
284
+ Upload = "Upload",
285
+ UserCircle = "UserCircle",
286
+ UserGroup = "UserGroup",
287
+ UserMinus = "UserMinus",
288
+ UserPlus = "UserPlus",
289
+ VideoCamera = "VideoCamera",
290
+ VideoCameraSlash = "VideoCameraSlash",
291
+ ViewColumns = "ViewColumns",
292
+ ViewfinderCircle = "ViewfinderCircle",
293
+ Wallet = "Wallet",
294
+ Wifi = "Wifi",
295
+ XMark = "XMark",
296
+ Backward = "Backward",
297
+ Bars2 = "Bars2",
298
+ Bars4 = "Bars4",
299
+ BellAlert = "BellAlert",
300
+ BellSlash = "BellSlash",
301
+ BoltSlash = "BoltSlash",
302
+ BookOpen = "BookOpen",
303
+ ChatBubbleOvalLeft = "ChatBubbleOvalLeft",
304
+ ChatBubbleOvalLeftEllipsis = "ChatBubbleOvalLeftEllipsis",
305
+ ClockIcon = "ClockIcon",
306
+ CubeTransparent = "CubeTransparent",
307
+ DocumentChartBar = "DocumentChartBar",
308
+ EyeDropper = "EyeDropper",
309
+ FolderArrowDown = "FolderArrowDown",
310
+ GlobeAmericas = "GlobeAmericas",
311
+ GlobeAsiaAustralia = "GlobeAsiaAustralia",
312
+ GlobeEuropeAfrica = "GlobeEuropeAfrica",
313
+ HomeModern = "HomeModern",
314
+ MinusCircle = "MinusCircle",
315
+ PhoneArrowDownLeft = "PhoneArrowDownLeft",
316
+ PhoneArrowUpRight = "PhoneArrowUpRight",
317
+ PhoneXMark = "PhoneXMark",
318
+ PlayPause = "PlayPause",
319
+ Strikethrough = "Strikethrough",
320
+ TableCellsIcon = "TableCellsIcon",
321
+ UserIcon = "UserIcon",
322
+ XCircle = "XCircle",
151
323
  }
152
324
 
153
325
  export default IconProp;
@@ -18,6 +18,7 @@ export interface CriteriaIncident {
18
18
  ownerTeamIds?: Array<ObjectID> | undefined;
19
19
  ownerUserIds?: Array<ObjectID> | undefined;
20
20
  incidentMemberRoles?: Array<IncidentMemberRoleAssignment> | undefined;
21
+ showIncidentOnStatusPage?: boolean | undefined;
21
22
  }
22
23
 
23
24
  export const CriteriaIncidentSchema: ZodSchema = Zod.object({
@@ -37,4 +38,5 @@ export const CriteriaIncidentSchema: ZodSchema = Zod.object({
37
38
  userId: Zod.any(),
38
39
  }),
39
40
  ).optional(),
41
+ showIncidentOnStatusPage: Zod.boolean().optional(),
40
42
  });
@@ -37,8 +37,10 @@ export interface MonitorEvaluationEvent {
37
37
  relatedCriteriaId?: string | undefined;
38
38
  relatedIncidentId?: string | undefined;
39
39
  relatedIncidentNumber?: number | undefined;
40
+ relatedIncidentNumberWithPrefix?: string | undefined;
40
41
  relatedAlertId?: string | undefined;
41
42
  relatedAlertNumber?: number | undefined;
43
+ relatedAlertNumberWithPrefix?: string | undefined;
42
44
  at?: Date | undefined;
43
45
  }
44
46
 
@@ -810,6 +810,12 @@ enum Permission {
810
810
  EditIncidentEpisodeFeed = "EditIncidentEpisodeFeed",
811
811
  ReadIncidentEpisodeFeed = "ReadIncidentEpisodeFeed",
812
812
 
813
+ // Incident Episode Public Note Permissions
814
+ CreateIncidentEpisodePublicNote = "CreateIncidentEpisodePublicNote",
815
+ DeleteIncidentEpisodePublicNote = "DeleteIncidentEpisodePublicNote",
816
+ EditIncidentEpisodePublicNote = "EditIncidentEpisodePublicNote",
817
+ ReadIncidentEpisodePublicNote = "ReadIncidentEpisodePublicNote",
818
+
813
819
  // Incident Grouping Rule Permissions
814
820
  CreateIncidentGroupingRule = "CreateIncidentGroupingRule",
815
821
  DeleteIncidentGroupingRule = "DeleteIncidentGroupingRule",
@@ -5769,6 +5775,40 @@ export class PermissionHelper {
5769
5775
  isAccessControlPermission: false,
5770
5776
  },
5771
5777
 
5778
+ // Incident Episode Public Note Permissions
5779
+ {
5780
+ permission: Permission.CreateIncidentEpisodePublicNote,
5781
+ title: "Create Incident Episode Public Note",
5782
+ description:
5783
+ "This permission can create Incident Episode public notes in this project.",
5784
+ isAssignableToTenant: true,
5785
+ isAccessControlPermission: false,
5786
+ },
5787
+ {
5788
+ permission: Permission.DeleteIncidentEpisodePublicNote,
5789
+ title: "Delete Incident Episode Public Note",
5790
+ description:
5791
+ "This permission can delete Incident Episode public notes of this project.",
5792
+ isAssignableToTenant: true,
5793
+ isAccessControlPermission: false,
5794
+ },
5795
+ {
5796
+ permission: Permission.EditIncidentEpisodePublicNote,
5797
+ title: "Edit Incident Episode Public Note",
5798
+ description:
5799
+ "This permission can edit Incident Episode public notes of this project.",
5800
+ isAssignableToTenant: true,
5801
+ isAccessControlPermission: false,
5802
+ },
5803
+ {
5804
+ permission: Permission.ReadIncidentEpisodePublicNote,
5805
+ title: "Read Incident Episode Public Note",
5806
+ description:
5807
+ "This permission can read Incident Episode public notes of this project.",
5808
+ isAssignableToTenant: true,
5809
+ isAccessControlPermission: false,
5810
+ },
5811
+
5772
5812
  // Incident Grouping Rule Permissions
5773
5813
  {
5774
5814
  permission: Permission.CreateIncidentGroupingRule,
@@ -10,6 +10,11 @@ enum StatusPageSubscriberNotificationEventType {
10
10
  SubscriberIncidentNoteCreated = "Subscriber Incident Note Created",
11
11
  SubscriberIncidentPostmortemPublished = "Subscriber Incident Postmortem Published",
12
12
 
13
+ // Incident Episode related events
14
+ SubscriberEpisodeCreated = "Subscriber Episode Created",
15
+ SubscriberEpisodeStateChanged = "Subscriber Episode State Changed",
16
+ SubscriberEpisodeNoteCreated = "Subscriber Episode Note Created",
17
+
13
18
  // Announcement related events
14
19
  SubscriberAnnouncementCreated = "Subscriber Announcement Created",
15
20