@oneuptime/common 7.0.4877 → 7.0.4896

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 (126) hide show
  1. package/Models/DatabaseModels/CopilotAction.ts +1 -0
  2. package/Models/DatabaseModels/GlobalConfig.ts +2 -0
  3. package/Models/DatabaseModels/Incident.ts +55 -9
  4. package/Models/DatabaseModels/IncidentPublicNote.ts +54 -9
  5. package/Models/DatabaseModels/IncidentStateTimeline.ts +57 -9
  6. package/Models/DatabaseModels/Index.ts +0 -2
  7. package/Models/DatabaseModels/MonitorStatus.ts +1 -0
  8. package/Models/DatabaseModels/ProjectSso.ts +5 -1
  9. package/Models/DatabaseModels/ProjectUser.ts +2 -2
  10. package/Models/DatabaseModels/Reseller.ts +1 -0
  11. package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -9
  12. package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +54 -9
  13. package/Models/DatabaseModels/ScheduledMaintenanceState.ts +4 -0
  14. package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +55 -9
  15. package/Models/DatabaseModels/StatusPage.ts +18 -1
  16. package/Models/DatabaseModels/StatusPageAnnouncement.ts +60 -8
  17. package/Models/DatabaseModels/StatusPageDomain.ts +14 -2
  18. package/Models/DatabaseModels/StatusPageSubscriber.ts +3 -0
  19. package/Models/DatabaseModels/TableView.ts +1 -0
  20. package/Models/DatabaseModels/TelemetryUsageBilling.ts +6 -1
  21. package/Models/DatabaseModels/UserNotificationSetting.ts +5 -1
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1754412708044-MigrationName.ts +149 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1754415281937-MigrationName.ts +149 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1754484441975-UpdateSubscriberNotificationStatusToEnum.ts +249 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1754484441976-RenameSubscriberNotificationFailedReasonToStatusMessage.ts +56 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  27. package/Server/Services/DatabaseService.ts +5 -0
  28. package/Server/Services/IncidentPublicNoteService.ts +16 -0
  29. package/Server/Services/IncidentService.ts +44 -1
  30. package/Server/Services/IncidentStateTimelineService.ts +18 -1
  31. package/Server/Services/ScheduledMaintenancePublicNoteService.ts +16 -0
  32. package/Server/Services/ScheduledMaintenanceService.ts +48 -4
  33. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +14 -1
  34. package/Server/Services/StatusPageAnnouncementService.ts +46 -0
  35. package/Types/StatusPage/StatusPageSubscriberNotificationStatus.ts +9 -0
  36. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +991 -0
  37. package/UI/Components/Charts/ChartLibrary/SparkChart/SparkChart.tsx +367 -0
  38. package/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.ts +2 -2
  39. package/UI/Components/Checkbox/CheckboxViewer.tsx +7 -18
  40. package/UI/Components/IconText/IconText.tsx +91 -0
  41. package/UI/Components/IconText/Index.ts +3 -0
  42. package/UI/Components/Modal/ConfirmModal.tsx +1 -1
  43. package/build/dist/Models/DatabaseModels/CopilotAction.js +1 -0
  44. package/build/dist/Models/DatabaseModels/CopilotAction.js.map +1 -1
  45. package/build/dist/Models/DatabaseModels/GlobalConfig.js +2 -0
  46. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  47. package/build/dist/Models/DatabaseModels/Incident.js +56 -11
  48. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  49. package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +56 -11
  50. package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
  51. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +58 -11
  52. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
  53. package/build/dist/Models/DatabaseModels/Index.js +0 -1
  54. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  55. package/build/dist/Models/DatabaseModels/MonitorStatus.js +1 -0
  56. package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -1
  57. package/build/dist/Models/DatabaseModels/ProjectSso.js +5 -1
  58. package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
  59. package/build/dist/Models/DatabaseModels/ProjectUser.js +2 -2
  60. package/build/dist/Models/DatabaseModels/ProjectUser.js.map +1 -1
  61. package/build/dist/Models/DatabaseModels/Reseller.js +1 -0
  62. package/build/dist/Models/DatabaseModels/Reseller.js.map +1 -1
  63. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +56 -11
  64. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  65. package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +56 -11
  66. package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
  67. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js +4 -0
  68. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js.map +1 -1
  69. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +56 -11
  70. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
  71. package/build/dist/Models/DatabaseModels/StatusPage.js +18 -1
  72. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  73. package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +62 -10
  74. package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
  75. package/build/dist/Models/DatabaseModels/StatusPageDomain.js +14 -2
  76. package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
  77. package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +3 -0
  78. package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
  79. package/build/dist/Models/DatabaseModels/TableView.js +1 -0
  80. package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
  81. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +6 -1
  82. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
  83. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +5 -1
  84. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
  85. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754412708044-MigrationName.js +56 -0
  86. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754412708044-MigrationName.js.map +1 -0
  87. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754415281937-MigrationName.js +56 -0
  88. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754415281937-MigrationName.js.map +1 -0
  89. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754484441975-UpdateSubscriberNotificationStatusToEnum.js +108 -0
  90. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754484441975-UpdateSubscriberNotificationStatusToEnum.js.map +1 -0
  91. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754484441976-RenameSubscriberNotificationFailedReasonToStatusMessage.js +24 -0
  92. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1754484441976-RenameSubscriberNotificationFailedReasonToStatusMessage.js.map +1 -0
  93. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  94. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  95. package/build/dist/Server/Services/DatabaseService.js +4 -0
  96. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  97. package/build/dist/Server/Services/IncidentPublicNoteService.js +12 -0
  98. package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
  99. package/build/dist/Server/Services/IncidentService.js +34 -1
  100. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  101. package/build/dist/Server/Services/IncidentStateTimelineService.js +16 -1
  102. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  103. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +12 -0
  104. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
  105. package/build/dist/Server/Services/ScheduledMaintenanceService.js +38 -2
  106. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  107. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +14 -1
  108. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  109. package/build/dist/Server/Services/StatusPageAnnouncementService.js +37 -0
  110. package/build/dist/Server/Services/StatusPageAnnouncementService.js.map +1 -1
  111. package/build/dist/Types/StatusPage/StatusPageSubscriberNotificationStatus.js +10 -0
  112. package/build/dist/Types/StatusPage/StatusPageSubscriberNotificationStatus.js.map +1 -0
  113. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +436 -0
  114. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -0
  115. package/build/dist/UI/Components/Charts/ChartLibrary/SparkChart/SparkChart.js +99 -0
  116. package/build/dist/UI/Components/Charts/ChartLibrary/SparkChart/SparkChart.js.map +1 -0
  117. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/GetYAxisDomain.js.map +1 -1
  118. package/build/dist/UI/Components/Checkbox/CheckboxViewer.js +3 -5
  119. package/build/dist/UI/Components/Checkbox/CheckboxViewer.js.map +1 -1
  120. package/build/dist/UI/Components/IconText/IconText.js +38 -0
  121. package/build/dist/UI/Components/IconText/IconText.js.map +1 -0
  122. package/build/dist/UI/Components/IconText/Index.js +3 -0
  123. package/build/dist/UI/Components/IconText/Index.js.map +1 -0
  124. package/build/dist/UI/Components/Modal/ConfirmModal.js +1 -1
  125. package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
  126. package/package.json +1 -1
@@ -729,6 +729,7 @@ export default class CopilotAction extends BaseModel {
729
729
  type: TableColumnType.Boolean,
730
730
  title: "Is Priority",
731
731
  description: "Is Priority",
732
+ defaultValue: false,
732
733
  })
733
734
  @Column({
734
735
  nullable: false,
@@ -48,6 +48,7 @@ export default class GlobalConfig extends GlobalConfigModel {
48
48
  type: TableColumnType.Boolean,
49
49
  title: "Disable Signup",
50
50
  description: "Should we disable new user sign up to this server?",
51
+ defaultValue: false,
51
52
  })
52
53
  @Column({
53
54
  type: ColumnType.Boolean,
@@ -338,6 +339,7 @@ export default class GlobalConfig extends GlobalConfigModel {
338
339
  type: TableColumnType.Boolean,
339
340
  title: "Is Master API Key Enabled",
340
341
  description: "Is Master API Key Enabled?",
342
+ defaultValue: false,
341
343
  })
342
344
  @Column({
343
345
  type: ColumnType.Boolean,
@@ -27,6 +27,7 @@ import IconProp from "../../Types/Icon/IconProp";
27
27
  import { JSONObject } from "../../Types/JSON";
28
28
  import ObjectID from "../../Types/ObjectID";
29
29
  import Permission from "../../Types/Permission";
30
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
30
31
  import {
31
32
  Column,
32
33
  Entity,
@@ -733,29 +734,74 @@ export default class Incident extends BaseModel {
733
734
  public changeMonitorStatusToId?: ObjectID = undefined;
734
735
 
735
736
  @ColumnAccessControl({
736
- create: [],
737
+ create: [
738
+ Permission.ProjectOwner,
739
+ Permission.ProjectAdmin,
740
+ Permission.ProjectMember,
741
+ Permission.CreateProjectIncident,
742
+ ],
737
743
  read: [
738
744
  Permission.ProjectOwner,
739
745
  Permission.ProjectAdmin,
740
746
  Permission.ProjectMember,
741
747
  Permission.ReadProjectIncident,
742
748
  ],
743
- update: [],
749
+ update: [
750
+ Permission.ProjectOwner,
751
+ Permission.ProjectAdmin,
752
+ Permission.ProjectMember,
753
+ Permission.EditProjectIncident,
754
+ ],
744
755
  })
745
756
  @TableColumn({
746
757
  isDefaultValueColumn: true,
747
758
  computed: true,
748
759
  hideColumnInDocumentation: true,
749
- type: TableColumnType.Boolean,
750
- title: "Are subscribers notified?",
751
- description: "Are subscribers notified about this incident?",
752
- defaultValue: false,
760
+ type: TableColumnType.ShortText,
761
+ title: "Subscriber Notification Status",
762
+ description:
763
+ "Status of notification sent to subscribers about this incident",
764
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
753
765
  })
754
766
  @Column({
755
- type: ColumnType.Boolean,
756
- default: false,
767
+ type: ColumnType.ShortText,
768
+ default: StatusPageSubscriberNotificationStatus.Pending,
769
+ })
770
+ public subscriberNotificationStatusOnIncidentCreated?: StatusPageSubscriberNotificationStatus =
771
+ undefined;
772
+
773
+ @ColumnAccessControl({
774
+ create: [
775
+ Permission.ProjectOwner,
776
+ Permission.ProjectAdmin,
777
+ Permission.ProjectMember,
778
+ Permission.CreateProjectIncident,
779
+ ],
780
+ read: [
781
+ Permission.ProjectOwner,
782
+ Permission.ProjectAdmin,
783
+ Permission.ProjectMember,
784
+ Permission.ReadProjectIncident,
785
+ ],
786
+ update: [
787
+ Permission.ProjectOwner,
788
+ Permission.ProjectAdmin,
789
+ Permission.ProjectMember,
790
+ Permission.EditProjectIncident,
791
+ ],
792
+ })
793
+ @TableColumn({
794
+ type: TableColumnType.VeryLongText,
795
+ title: "Notification Status Message",
796
+ description:
797
+ "Status message for subscriber notifications - includes success messages, failure reasons, or skip reasons",
798
+ required: false,
799
+ })
800
+ @Column({
801
+ type: ColumnType.VeryLongText,
802
+ nullable: true,
757
803
  })
758
- public isStatusPageSubscribersNotifiedOnIncidentCreated?: boolean = undefined;
804
+ public subscriberNotificationStatusMessage?: string = undefined;
759
805
 
760
806
  @ColumnAccessControl({
761
807
  create: [
@@ -17,6 +17,7 @@ import TenantColumn from "../../Types/Database/TenantColumn";
17
17
  import IconProp from "../../Types/Icon/IconProp";
18
18
  import ObjectID from "../../Types/ObjectID";
19
19
  import Permission from "../../Types/Permission";
20
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
20
21
  import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
21
22
 
22
23
  @EnableDocumentation()
@@ -341,29 +342,73 @@ export default class IncidentPublicNote extends BaseModel {
341
342
  public note?: string = undefined;
342
343
 
343
344
  @ColumnAccessControl({
344
- create: [],
345
+ create: [
346
+ Permission.ProjectOwner,
347
+ Permission.ProjectAdmin,
348
+ Permission.ProjectMember,
349
+ Permission.CreateIncidentPublicNote,
350
+ ],
345
351
  read: [
346
352
  Permission.ProjectOwner,
347
353
  Permission.ProjectAdmin,
348
354
  Permission.ProjectMember,
349
355
  Permission.ReadIncidentPublicNote,
350
356
  ],
351
- update: [],
357
+ update: [
358
+ Permission.ProjectOwner,
359
+ Permission.ProjectAdmin,
360
+ Permission.ProjectMember,
361
+ Permission.EditIncidentPublicNote,
362
+ ],
352
363
  })
353
364
  @TableColumn({
354
365
  isDefaultValueColumn: true,
355
366
  computed: true,
356
367
  hideColumnInDocumentation: true,
357
- type: TableColumnType.Boolean,
358
- title: "Are subscribers notified?",
359
- description: "Are subscribers notified about this note?",
360
- defaultValue: false,
368
+ type: TableColumnType.ShortText,
369
+ title: "Subscriber Notification Status",
370
+ description: "Status of notification sent to subscribers about this note",
371
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
361
372
  })
362
373
  @Column({
363
- type: ColumnType.Boolean,
364
- default: false,
374
+ type: ColumnType.ShortText,
375
+ default: StatusPageSubscriberNotificationStatus.Pending,
376
+ })
377
+ public subscriberNotificationStatusOnNoteCreated?: StatusPageSubscriberNotificationStatus =
378
+ undefined;
379
+
380
+ @ColumnAccessControl({
381
+ create: [
382
+ Permission.ProjectOwner,
383
+ Permission.ProjectAdmin,
384
+ Permission.ProjectMember,
385
+ Permission.CreateIncidentPublicNote,
386
+ ],
387
+ read: [
388
+ Permission.ProjectOwner,
389
+ Permission.ProjectAdmin,
390
+ Permission.ProjectMember,
391
+ Permission.ReadIncidentPublicNote,
392
+ ],
393
+ update: [
394
+ Permission.ProjectOwner,
395
+ Permission.ProjectAdmin,
396
+ Permission.ProjectMember,
397
+ Permission.EditIncidentPublicNote,
398
+ ],
399
+ })
400
+ @TableColumn({
401
+ type: TableColumnType.VeryLongText,
402
+ title: "Notification Status Message",
403
+ description:
404
+ "Status message for subscriber notifications - includes success messages, failure reasons, or skip reasons",
405
+ required: false,
406
+ })
407
+ @Column({
408
+ type: ColumnType.VeryLongText,
409
+ nullable: true,
365
410
  })
366
- public isStatusPageSubscribersNotifiedOnNoteCreated?: boolean = undefined;
411
+ public subscriberNotificationStatusMessage?: string = undefined;
367
412
 
368
413
  @ColumnAccessControl({
369
414
  create: [
@@ -19,6 +19,7 @@ import IconProp from "../../Types/Icon/IconProp";
19
19
  import { JSONObject } from "../../Types/JSON";
20
20
  import ObjectID from "../../Types/ObjectID";
21
21
  import Permission from "../../Types/Permission";
22
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
22
23
  import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
23
24
 
24
25
  @EnableDocumentation()
@@ -391,29 +392,74 @@ export default class IncidentStateTimeline extends BaseModel {
391
392
  public incidentStateId?: ObjectID = undefined;
392
393
 
393
394
  @ColumnAccessControl({
394
- create: [],
395
+ create: [
396
+ Permission.ProjectOwner,
397
+ Permission.ProjectAdmin,
398
+ Permission.ProjectMember,
399
+ Permission.CreateIncidentStateTimeline,
400
+ ],
395
401
  read: [
396
402
  Permission.ProjectOwner,
397
403
  Permission.ProjectAdmin,
398
404
  Permission.ProjectMember,
399
405
  Permission.ReadIncidentStateTimeline,
400
406
  ],
401
- update: [],
407
+ update: [
408
+ Permission.ProjectOwner,
409
+ Permission.ProjectAdmin,
410
+ Permission.ProjectMember,
411
+ Permission.EditIncidentStateTimeline,
412
+ ],
402
413
  })
403
414
  @TableColumn({
404
415
  isDefaultValueColumn: true,
405
416
  computed: true,
406
417
  hideColumnInDocumentation: true,
407
- type: TableColumnType.Boolean,
408
- title: "Are subscribers notified?",
409
- description: "Are subscribers notified about this incident state change?",
410
- defaultValue: false,
418
+ type: TableColumnType.ShortText,
419
+ title: "Subscriber Notification Status",
420
+ description:
421
+ "Status of notification sent to subscribers about this incident state change",
422
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
411
423
  })
412
424
  @Column({
413
- type: ColumnType.Boolean,
414
- default: false,
425
+ type: ColumnType.ShortText,
426
+ default: StatusPageSubscriberNotificationStatus.Pending,
415
427
  })
416
- public isStatusPageSubscribersNotified?: boolean = undefined;
428
+ public subscriberNotificationStatus?: StatusPageSubscriberNotificationStatus =
429
+ undefined;
430
+
431
+ @ColumnAccessControl({
432
+ create: [
433
+ Permission.ProjectOwner,
434
+ Permission.ProjectAdmin,
435
+ Permission.ProjectMember,
436
+ Permission.CreateIncidentPublicNote,
437
+ ],
438
+ read: [
439
+ Permission.ProjectOwner,
440
+ Permission.ProjectAdmin,
441
+ Permission.ProjectMember,
442
+ Permission.ReadIncidentStateTimeline,
443
+ ],
444
+ update: [
445
+ Permission.ProjectOwner,
446
+ Permission.ProjectAdmin,
447
+ Permission.ProjectMember,
448
+ Permission.EditIncidentStateTimeline,
449
+ ],
450
+ })
451
+ @TableColumn({
452
+ type: TableColumnType.VeryLongText,
453
+ title: "Notification Status Message",
454
+ description:
455
+ "Status message for subscriber notifications - includes success messages, failure reasons, or skip reasons",
456
+ required: false,
457
+ })
458
+ @Column({
459
+ type: ColumnType.VeryLongText,
460
+ nullable: true,
461
+ })
462
+ public subscriberNotificationStatusMessage?: string = undefined;
417
463
 
418
464
  @ColumnAccessControl({
419
465
  create: [
@@ -435,6 +481,7 @@ export default class IncidentStateTimeline extends BaseModel {
435
481
  type: TableColumnType.Boolean,
436
482
  title: "Should subscribers be notified?",
437
483
  description: "Should subscribers be notified about this state change?",
484
+ defaultValue: true,
438
485
  })
439
486
  @Column({
440
487
  type: ColumnType.Boolean,
@@ -461,6 +508,7 @@ export default class IncidentStateTimeline extends BaseModel {
461
508
  isDefaultValueColumn: true,
462
509
  title: "Are Owners Notified",
463
510
  description: "Are owners notified of state change?",
511
+ defaultValue: false,
464
512
  })
465
513
  @Column({
466
514
  type: ColumnType.Boolean,
@@ -385,8 +385,6 @@ const AllModelTypes: Array<{
385
385
  OnCallDutyPolicyTimeLog,
386
386
 
387
387
  ProjectSCIM,
388
-
389
- StatusPageSCIM,
390
388
  ];
391
389
 
392
390
  const modelTypeMap: { [key: string]: { new (): BaseModel } } = {};
@@ -456,6 +456,7 @@ export default class MonitorStatus extends BaseModel {
456
456
  canReadOnRelationQuery: true,
457
457
  title: "Is Offline State",
458
458
  description: "Is this monitor in offline state?",
459
+ defaultValue: false,
459
460
  })
460
461
  @Column({
461
462
  type: ColumnType.Boolean,
@@ -578,7 +578,11 @@ export default class ProjectSSO extends BaseModel {
578
578
  ],
579
579
  update: [],
580
580
  })
581
- @TableColumn({ isDefaultValueColumn: true, type: TableColumnType.Boolean })
581
+ @TableColumn({
582
+ isDefaultValueColumn: true,
583
+ type: TableColumnType.Boolean,
584
+ defaultValue: false,
585
+ })
582
586
  @Column({
583
587
  type: ColumnType.Boolean,
584
588
  default: false,
@@ -49,8 +49,8 @@ import {
49
49
  })
50
50
  @TableMetadata({
51
51
  tableName: "ProjectUser",
52
- singularName: "User",
53
- pluralName: "Users",
52
+ singularName: "Project User",
53
+ pluralName: "Project Users",
54
54
  icon: IconProp.User,
55
55
  tableDescription:
56
56
  "This model connects users and teams. This is an internal table. Its a view on TeamMembers table.",
@@ -269,6 +269,7 @@ export default class Reseller extends BaseModel {
269
269
  canReadOnRelationQuery: true,
270
270
  title: "Enable Telemetry Features",
271
271
  description: "Should we enable telemetry features for this reseller?",
272
+ defaultValue: false,
272
273
  })
273
274
  @Column({
274
275
  nullable: true,
@@ -25,6 +25,7 @@ import IconProp from "../../Types/Icon/IconProp";
25
25
  import { JSONObject } from "../../Types/JSON";
26
26
  import ObjectID from "../../Types/ObjectID";
27
27
  import Permission from "../../Types/Permission";
28
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
28
29
  import {
29
30
  Column,
30
31
  Entity,
@@ -715,29 +716,74 @@ export default class ScheduledMaintenance extends BaseModel {
715
716
  public endsAt?: Date = undefined;
716
717
 
717
718
  @ColumnAccessControl({
718
- create: [],
719
+ create: [
720
+ Permission.ProjectOwner,
721
+ Permission.ProjectAdmin,
722
+ Permission.ProjectMember,
723
+ Permission.CreateProjectScheduledMaintenance,
724
+ ],
719
725
  read: [
720
726
  Permission.ProjectOwner,
721
727
  Permission.ProjectAdmin,
722
728
  Permission.ProjectMember,
723
729
  Permission.ReadProjectScheduledMaintenance,
724
730
  ],
725
- update: [],
731
+ update: [
732
+ Permission.ProjectOwner,
733
+ Permission.ProjectAdmin,
734
+ Permission.ProjectMember,
735
+ Permission.EditProjectScheduledMaintenance,
736
+ ],
726
737
  })
727
738
  @TableColumn({
728
739
  isDefaultValueColumn: true,
729
740
  computed: true,
730
741
  hideColumnInDocumentation: true,
731
- type: TableColumnType.Boolean,
732
- title: "Status Page Subscribers Notified On Event Scheduled",
733
- description: "Status Page Subscribers Notified On Event Scheduled",
734
- defaultValue: false,
742
+ type: TableColumnType.ShortText,
743
+ title: "Subscriber Notification Status On Event Scheduled",
744
+ description:
745
+ "Status of notification sent to subscribers when event was scheduled",
746
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
735
747
  })
736
748
  @Column({
737
- type: ColumnType.Boolean,
738
- default: false,
749
+ type: ColumnType.ShortText,
750
+ default: StatusPageSubscriberNotificationStatus.Pending,
751
+ })
752
+ public subscriberNotificationStatusOnEventScheduled?: StatusPageSubscriberNotificationStatus =
753
+ undefined;
754
+
755
+ @ColumnAccessControl({
756
+ create: [
757
+ Permission.ProjectOwner,
758
+ Permission.ProjectAdmin,
759
+ Permission.ProjectMember,
760
+ Permission.CreateIncidentPublicNote,
761
+ ],
762
+ read: [
763
+ Permission.ProjectOwner,
764
+ Permission.ProjectAdmin,
765
+ Permission.ProjectMember,
766
+ Permission.ReadProjectScheduledMaintenance,
767
+ ],
768
+ update: [
769
+ Permission.ProjectOwner,
770
+ Permission.ProjectAdmin,
771
+ Permission.ProjectMember,
772
+ Permission.EditProjectScheduledMaintenance,
773
+ ],
774
+ })
775
+ @TableColumn({
776
+ type: TableColumnType.VeryLongText,
777
+ title: "Notification Status Message On Event Scheduled",
778
+ description:
779
+ "Status message for subscriber notifications when event is scheduled - includes success messages, failure reasons, or skip reasons",
780
+ required: false,
781
+ })
782
+ @Column({
783
+ type: ColumnType.VeryLongText,
784
+ nullable: true,
739
785
  })
740
- public isStatusPageSubscribersNotifiedOnEventScheduled?: boolean = undefined;
786
+ public subscriberNotificationStatusMessage?: string = undefined;
741
787
 
742
788
  @ColumnAccessControl({
743
789
  create: [
@@ -17,6 +17,7 @@ import TenantColumn from "../../Types/Database/TenantColumn";
17
17
  import IconProp from "../../Types/Icon/IconProp";
18
18
  import ObjectID from "../../Types/ObjectID";
19
19
  import Permission from "../../Types/Permission";
20
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
20
21
  import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
21
22
 
22
23
  @EnableDocumentation()
@@ -342,29 +343,73 @@ export default class ScheduledMaintenancePublicNote extends BaseModel {
342
343
  public note?: string = undefined;
343
344
 
344
345
  @ColumnAccessControl({
345
- create: [],
346
+ create: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.CreateScheduledMaintenancePublicNote,
351
+ ],
346
352
  read: [
347
353
  Permission.ProjectOwner,
348
354
  Permission.ProjectAdmin,
349
355
  Permission.ProjectMember,
350
356
  Permission.ReadScheduledMaintenancePublicNote,
351
357
  ],
352
- update: [],
358
+ update: [
359
+ Permission.ProjectOwner,
360
+ Permission.ProjectAdmin,
361
+ Permission.ProjectMember,
362
+ Permission.EditScheduledMaintenancePublicNote,
363
+ ],
353
364
  })
354
365
  @TableColumn({
355
366
  isDefaultValueColumn: true,
356
367
  computed: true,
357
368
  hideColumnInDocumentation: true,
358
- type: TableColumnType.Boolean,
359
- title: "Are subscribers notified?",
360
- description: "Are subscribers notified about this note?",
361
- defaultValue: false,
369
+ type: TableColumnType.ShortText,
370
+ title: "Subscriber Notification Status",
371
+ description: "Status of notification sent to subscribers about this note",
372
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
362
373
  })
363
374
  @Column({
364
- type: ColumnType.Boolean,
365
- default: false,
375
+ type: ColumnType.ShortText,
376
+ default: StatusPageSubscriberNotificationStatus.Pending,
377
+ })
378
+ public subscriberNotificationStatusOnNoteCreated?: StatusPageSubscriberNotificationStatus =
379
+ undefined;
380
+
381
+ @ColumnAccessControl({
382
+ create: [
383
+ Permission.ProjectOwner,
384
+ Permission.ProjectAdmin,
385
+ Permission.ProjectMember,
386
+ Permission.CreateScheduledMaintenancePublicNote,
387
+ ],
388
+ read: [
389
+ Permission.ProjectOwner,
390
+ Permission.ProjectAdmin,
391
+ Permission.ProjectMember,
392
+ Permission.ReadScheduledMaintenancePublicNote,
393
+ ],
394
+ update: [
395
+ Permission.ProjectOwner,
396
+ Permission.ProjectAdmin,
397
+ Permission.ProjectMember,
398
+ Permission.EditScheduledMaintenancePublicNote,
399
+ ],
400
+ })
401
+ @TableColumn({
402
+ type: TableColumnType.VeryLongText,
403
+ title: "Notification Status Message",
404
+ description:
405
+ "Status message for subscriber notifications - includes success messages, failure reasons, or skip reasons",
406
+ required: false,
407
+ })
408
+ @Column({
409
+ type: ColumnType.VeryLongText,
410
+ nullable: true,
366
411
  })
367
- public isStatusPageSubscribersNotifiedOnNoteCreated?: boolean = undefined;
412
+ public subscriberNotificationStatusMessage?: string = undefined;
368
413
 
369
414
  @ColumnAccessControl({
370
415
  create: [
@@ -423,6 +423,7 @@ export default class ScheduledMaintenanceState extends BaseModel {
423
423
  canReadOnRelationQuery: true,
424
424
  title: "Scheduled State",
425
425
  description: "Is this state a scheduled state?",
426
+ defaultValue: false,
426
427
  })
427
428
  @Column({
428
429
  type: ColumnType.Boolean,
@@ -456,6 +457,7 @@ export default class ScheduledMaintenanceState extends BaseModel {
456
457
  canReadOnRelationQuery: true,
457
458
  title: "Ongoing State",
458
459
  description: "Is this state a ongoing state?",
460
+ defaultValue: false,
459
461
  })
460
462
  @Column({
461
463
  type: ColumnType.Boolean,
@@ -489,6 +491,7 @@ export default class ScheduledMaintenanceState extends BaseModel {
489
491
  canReadOnRelationQuery: true,
490
492
  title: "Ended State",
491
493
  description: "Is this state a ended state?",
494
+ defaultValue: false,
492
495
  })
493
496
  @Column({
494
497
  type: ColumnType.Boolean,
@@ -522,6 +525,7 @@ export default class ScheduledMaintenanceState extends BaseModel {
522
525
  canReadOnRelationQuery: true,
523
526
  title: "Resolved State",
524
527
  description: "Is this state a resolved state?",
528
+ defaultValue: false,
525
529
  })
526
530
  @Column({
527
531
  type: ColumnType.Boolean,
@@ -18,6 +18,7 @@ import TenantColumn from "../../Types/Database/TenantColumn";
18
18
  import IconProp from "../../Types/Icon/IconProp";
19
19
  import ObjectID from "../../Types/ObjectID";
20
20
  import Permission from "../../Types/Permission";
21
+ import StatusPageSubscriberNotificationStatus from "../../Types/StatusPage/StatusPageSubscriberNotificationStatus";
21
22
  import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
22
23
 
23
24
  @EnableDocumentation()
@@ -388,29 +389,74 @@ export default class ScheduledMaintenanceStateTimeline extends BaseModel {
388
389
  public scheduledMaintenanceStateId?: ObjectID = undefined;
389
390
 
390
391
  @ColumnAccessControl({
391
- create: [],
392
+ create: [
393
+ Permission.ProjectOwner,
394
+ Permission.ProjectAdmin,
395
+ Permission.ProjectMember,
396
+ Permission.CreateScheduledMaintenanceStateTimeline,
397
+ ],
392
398
  read: [
393
399
  Permission.ProjectOwner,
394
400
  Permission.ProjectAdmin,
395
401
  Permission.ProjectMember,
396
402
  Permission.ReadScheduledMaintenanceStateTimeline,
397
403
  ],
398
- update: [],
404
+ update: [
405
+ Permission.ProjectOwner,
406
+ Permission.ProjectAdmin,
407
+ Permission.ProjectMember,
408
+ Permission.EditScheduledMaintenanceStateTimeline,
409
+ ],
399
410
  })
400
411
  @TableColumn({
401
412
  isDefaultValueColumn: true,
402
413
  computed: true,
403
414
  hideColumnInDocumentation: true,
404
- type: TableColumnType.Boolean,
405
- title: "Are subscribers notified?",
406
- description: "Are subscribers notified about this incident state change?",
407
- defaultValue: false,
415
+ type: TableColumnType.ShortText,
416
+ title: "Subscriber Notification Status",
417
+ description:
418
+ "Status of notification sent to subscribers about this scheduled maintenance state change",
419
+ defaultValue: StatusPageSubscriberNotificationStatus.Pending,
408
420
  })
409
421
  @Column({
410
- type: ColumnType.Boolean,
411
- default: false,
422
+ type: ColumnType.ShortText,
423
+ default: StatusPageSubscriberNotificationStatus.Pending,
424
+ })
425
+ public subscriberNotificationStatus?: StatusPageSubscriberNotificationStatus =
426
+ undefined;
427
+
428
+ @ColumnAccessControl({
429
+ create: [
430
+ Permission.ProjectOwner,
431
+ Permission.ProjectAdmin,
432
+ Permission.ProjectMember,
433
+ Permission.CreateScheduledMaintenanceStateTimeline,
434
+ ],
435
+ read: [
436
+ Permission.ProjectOwner,
437
+ Permission.ProjectAdmin,
438
+ Permission.ProjectMember,
439
+ Permission.ReadScheduledMaintenanceStateTimeline,
440
+ ],
441
+ update: [
442
+ Permission.ProjectOwner,
443
+ Permission.ProjectAdmin,
444
+ Permission.ProjectMember,
445
+ Permission.EditScheduledMaintenanceStateTimeline,
446
+ ],
447
+ })
448
+ @TableColumn({
449
+ type: TableColumnType.VeryLongText,
450
+ title: "Notification Status Message",
451
+ description:
452
+ "Status message for subscriber notifications - includes success messages, failure reasons, or skip reasons",
453
+ required: false,
454
+ })
455
+ @Column({
456
+ type: ColumnType.VeryLongText,
457
+ nullable: true,
412
458
  })
413
- public isStatusPageSubscribersNotified?: boolean = undefined;
459
+ public subscriberNotificationStatusMessage?: string = undefined;
414
460
 
415
461
  @ColumnAccessControl({
416
462
  create: [