@oneuptime/common 9.5.2 → 9.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/Models/DatabaseModels/Alert.ts +1 -0
  2. package/Models/DatabaseModels/AlertEpisode.ts +1 -0
  3. package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +1 -0
  4. package/Models/DatabaseModels/AlertStateTimeline.ts +1 -0
  5. package/Models/DatabaseModels/Incident.ts +1 -0
  6. package/Models/DatabaseModels/IncidentEpisode.ts +156 -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 +2 -1
  15. package/Models/DatabaseModels/ProjectCallSMSConfig.ts +1 -0
  16. package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -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/Index.ts +4 -0
  24. package/Server/Services/IncidentEpisodePublicNoteService.ts +254 -0
  25. package/Server/Services/IncidentEpisodeService.ts +26 -0
  26. package/Server/Services/Index.ts +2 -0
  27. package/Server/Utils/Monitor/MonitorIncident.ts +6 -0
  28. package/Types/Email/EmailTemplateType.ts +4 -0
  29. package/Types/Icon/IconProp.ts +172 -0
  30. package/Types/Monitor/CriteriaIncident.ts +2 -0
  31. package/Types/Permission.ts +40 -0
  32. package/Types/StatusPage/StatusPageSubscriberNotificationEventType.ts +5 -0
  33. package/UI/Components/Icon/Icon.tsx +1333 -1
  34. package/build/dist/Models/DatabaseModels/Alert.js +1 -0
  35. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  36. package/build/dist/Models/DatabaseModels/AlertEpisode.js +1 -0
  37. package/build/dist/Models/DatabaseModels/AlertEpisode.js.map +1 -1
  38. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +1 -0
  39. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -1
  40. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +1 -0
  41. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
  42. package/build/dist/Models/DatabaseModels/Incident.js +1 -0
  43. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  44. package/build/dist/Models/DatabaseModels/IncidentEpisode.js +161 -0
  45. package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
  46. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js +2 -0
  47. package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js.map +1 -1
  48. package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +626 -0
  49. package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js.map +1 -0
  50. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +86 -0
  51. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
  52. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +37 -0
  53. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -1
  54. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
  55. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
  56. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  57. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  58. package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +1 -0
  59. package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
  60. package/build/dist/Models/DatabaseModels/Project.js +2 -1
  61. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  62. package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +1 -0
  63. package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -1
  64. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +1 -0
  65. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  66. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -0
  67. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
  68. package/build/dist/Models/DatabaseModels/StatusPage.js +126 -0
  69. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  70. package/build/dist/Server/API/IncidentEpisodePublicNoteAPI.js +68 -0
  71. package/build/dist/Server/API/IncidentEpisodePublicNoteAPI.js.map +1 -0
  72. package/build/dist/Server/API/StatusPageAPI.js +874 -47
  73. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  74. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770232207959-MigrationName.js +68 -0
  75. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770232207959-MigrationName.js.map +1 -0
  76. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770237245069-MigrationName.js +18 -0
  77. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1770237245069-MigrationName.js.map +1 -0
  78. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  79. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  80. package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js +223 -0
  81. package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js.map +1 -0
  82. package/build/dist/Server/Services/IncidentEpisodeService.js +22 -0
  83. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
  84. package/build/dist/Server/Services/Index.js +2 -0
  85. package/build/dist/Server/Services/Index.js.map +1 -1
  86. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +5 -0
  87. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  88. package/build/dist/Types/Email/EmailTemplateType.js +3 -0
  89. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  90. package/build/dist/Types/Icon/IconProp.js +172 -0
  91. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  92. package/build/dist/Types/Monitor/CriteriaIncident.js +1 -0
  93. package/build/dist/Types/Monitor/CriteriaIncident.js.map +1 -1
  94. package/build/dist/Types/Permission.js +34 -0
  95. package/build/dist/Types/Permission.js.map +1 -1
  96. package/build/dist/Types/StatusPage/StatusPageSubscriberNotificationEventType.js +4 -0
  97. package/build/dist/Types/StatusPage/StatusPageSubscriberNotificationEventType.js.map +1 -1
  98. package/build/dist/UI/Components/Icon/Icon.js +502 -1
  99. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  100. package/package.json +1 -1
@@ -862,6 +862,7 @@ export default class Alert extends BaseModel {
862
862
  isDefaultValueColumn: false,
863
863
  required: false,
864
864
  type: TableColumnType.JSON,
865
+ computed: true,
865
866
  })
866
867
  @Column({
867
868
  type: ColumnType.JSON,
@@ -840,6 +840,7 @@ export default class AlertEpisode extends BaseModel {
840
840
  type: TableColumnType.Number,
841
841
  required: true,
842
842
  isDefaultValueColumn: true,
843
+ computed: true,
843
844
  title: "Alert Count",
844
845
  description: "Denormalized count of alerts in this episode",
845
846
  defaultValue: 0,
@@ -439,6 +439,7 @@ export default class AlertEpisodeStateTimeline extends BaseModel {
439
439
  isDefaultValueColumn: false,
440
440
  required: false,
441
441
  type: TableColumnType.JSON,
442
+ computed: true,
442
443
  })
443
444
  @Column({
444
445
  type: ColumnType.JSON,
@@ -452,6 +452,7 @@ export default class AlertStateTimeline extends BaseModel {
452
452
  isDefaultValueColumn: false,
453
453
  required: false,
454
454
  type: TableColumnType.JSON,
455
+ computed: true,
455
456
  example: {
456
457
  previousState: "created",
457
458
  newState: "acknowledged",
@@ -1271,6 +1271,7 @@ export default class Incident extends BaseModel {
1271
1271
  isDefaultValueColumn: false,
1272
1272
  required: false,
1273
1273
  type: TableColumnType.JSON,
1274
+ computed: true,
1274
1275
  })
1275
1276
  @Column({
1276
1277
  type: ColumnType.JSON,
@@ -34,6 +34,7 @@ import {
34
34
  ManyToOne,
35
35
  } from "typeorm";
36
36
  import NotificationRuleWorkspaceChannel from "../../Types/Workspace/NotificationRules/NotificationRuleWorkspaceChannel";
37
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
37
38
 
38
39
  @EnableDocumentation()
39
40
  @AccessControlColumn("labels")
@@ -760,6 +761,7 @@ export default class IncidentEpisode extends BaseModel {
760
761
  type: TableColumnType.Number,
761
762
  required: true,
762
763
  isDefaultValueColumn: true,
764
+ computed: true,
763
765
  title: "Incident Count",
764
766
  description: "Denormalized count of incidents in this episode",
765
767
  defaultValue: 0,
@@ -1253,4 +1255,158 @@ export default class IncidentEpisode extends BaseModel {
1253
1255
  })
1254
1256
  public postUpdatesToWorkspaceChannels?: Array<NotificationRuleWorkspaceChannel> =
1255
1257
  undefined;
1258
+
1259
+ @ColumnAccessControl({
1260
+ create: [
1261
+ Permission.ProjectOwner,
1262
+ Permission.ProjectAdmin,
1263
+ Permission.ProjectMember,
1264
+ Permission.CreateIncidentEpisode,
1265
+ ],
1266
+ read: [
1267
+ Permission.ProjectOwner,
1268
+ Permission.ProjectAdmin,
1269
+ Permission.ProjectMember,
1270
+ Permission.ReadIncidentEpisode,
1271
+ Permission.ReadAllProjectResources,
1272
+ ],
1273
+ update: [
1274
+ Permission.ProjectOwner,
1275
+ Permission.ProjectAdmin,
1276
+ Permission.ProjectMember,
1277
+ Permission.EditIncidentEpisode,
1278
+ ],
1279
+ })
1280
+ @Index()
1281
+ @TableColumn({
1282
+ type: TableColumnType.Boolean,
1283
+ required: true,
1284
+ isDefaultValueColumn: true,
1285
+ title: "Visible on Status Page",
1286
+ description: "Should this episode be visible on the status page?",
1287
+ defaultValue: false,
1288
+ })
1289
+ @Column({
1290
+ type: ColumnType.Boolean,
1291
+ nullable: false,
1292
+ default: false,
1293
+ })
1294
+ public isVisibleOnStatusPage?: boolean = undefined;
1295
+
1296
+ @ColumnAccessControl({
1297
+ create: [
1298
+ Permission.ProjectOwner,
1299
+ Permission.ProjectAdmin,
1300
+ Permission.ProjectMember,
1301
+ Permission.CreateIncidentEpisode,
1302
+ ],
1303
+ read: [
1304
+ Permission.ProjectOwner,
1305
+ Permission.ProjectAdmin,
1306
+ Permission.ProjectMember,
1307
+ Permission.ReadIncidentEpisode,
1308
+ Permission.ReadAllProjectResources,
1309
+ ],
1310
+ update: [
1311
+ Permission.ProjectOwner,
1312
+ Permission.ProjectAdmin,
1313
+ Permission.ProjectMember,
1314
+ Permission.EditIncidentEpisode,
1315
+ ],
1316
+ })
1317
+ @Index()
1318
+ @TableColumn({
1319
+ type: TableColumnType.Date,
1320
+ title: "Declared At",
1321
+ description: "When this episode was declared",
1322
+ })
1323
+ @Column({
1324
+ type: ColumnType.Date,
1325
+ nullable: true,
1326
+ unique: false,
1327
+ })
1328
+ public declaredAt?: Date = undefined;
1329
+
1330
+ @ColumnAccessControl({
1331
+ create: [
1332
+ Permission.ProjectOwner,
1333
+ Permission.ProjectAdmin,
1334
+ Permission.ProjectMember,
1335
+ Permission.CreateIncidentEpisode,
1336
+ ],
1337
+ read: [
1338
+ Permission.ProjectOwner,
1339
+ Permission.ProjectAdmin,
1340
+ Permission.ProjectMember,
1341
+ Permission.ReadIncidentEpisode,
1342
+ Permission.ReadAllProjectResources,
1343
+ ],
1344
+ update: [],
1345
+ })
1346
+ @TableColumn({
1347
+ isDefaultValueColumn: true,
1348
+ type: TableColumnType.Boolean,
1349
+ title: "Should subscribers be notified on episode created?",
1350
+ description:
1351
+ "Should status page subscribers be notified when this episode is created?",
1352
+ defaultValue: true,
1353
+ })
1354
+ @Column({
1355
+ type: ColumnType.Boolean,
1356
+ default: true,
1357
+ })
1358
+ public shouldStatusPageSubscribersBeNotifiedOnEpisodeCreated?: boolean =
1359
+ undefined;
1360
+
1361
+ @ColumnAccessControl({
1362
+ create: [],
1363
+ read: [
1364
+ Permission.ProjectOwner,
1365
+ Permission.ProjectAdmin,
1366
+ Permission.ProjectMember,
1367
+ Permission.ReadIncidentEpisode,
1368
+ Permission.ReadAllProjectResources,
1369
+ ],
1370
+ update: [],
1371
+ })
1372
+ @TableColumn({
1373
+ isDefaultValueColumn: true,
1374
+ computed: true,
1375
+ hideColumnInDocumentation: true,
1376
+ type: TableColumnType.ShortText,
1377
+ title: "Subscriber Notification Status on Episode Created",
1378
+ description:
1379
+ "Status of notification sent to subscribers when this episode was created",
1380
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
1381
+ })
1382
+ @Column({
1383
+ type: ColumnType.ShortText,
1384
+ default: StatusPageSubscriberNotificationStatus.Pending,
1385
+ })
1386
+ public subscriberNotificationStatusOnEpisodeCreated?: StatusPageSubscriberNotificationStatus =
1387
+ undefined;
1388
+
1389
+ @ColumnAccessControl({
1390
+ create: [],
1391
+ read: [
1392
+ Permission.ProjectOwner,
1393
+ Permission.ProjectAdmin,
1394
+ Permission.ProjectMember,
1395
+ Permission.ReadIncidentEpisode,
1396
+ Permission.ReadAllProjectResources,
1397
+ ],
1398
+ update: [],
1399
+ })
1400
+ @TableColumn({
1401
+ type: TableColumnType.VeryLongText,
1402
+ title: "Subscriber Notification Status Message",
1403
+ description:
1404
+ "Status message for subscriber notifications - includes success messages, failure reasons, or skip reasons",
1405
+ required: false,
1406
+ })
1407
+ @Column({
1408
+ type: ColumnType.VeryLongText,
1409
+ nullable: true,
1410
+ })
1411
+ public subscriberNotificationStatusMessage?: string = undefined;
1256
1412
  }
@@ -34,12 +34,14 @@ export enum IncidentEpisodeFeedEventType {
34
34
  OwnerTeamRemoved = "OwnerTeamRemoved",
35
35
  OwnerNotificationSent = "OwnerNotificationSent",
36
36
  PrivateNote = "PrivateNote",
37
+ PublicNote = "PublicNote",
37
38
  RootCause = "RootCause",
38
39
  RemediationNotes = "RemediationNotes",
39
40
  PostmortemNote = "PostmortemNote",
40
41
  OnCallPolicy = "OnCallPolicy",
41
42
  OnCallNotification = "OnCallNotification",
42
43
  SeverityChanged = "SeverityChanged",
44
+ SubscriberNotificationSent = "SubscriberNotificationSent",
43
45
  }
44
46
 
45
47
  @EnableDocumentation()