@oneuptime/common 8.0.5142 → 8.0.5149

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 (33) hide show
  1. package/Models/DatabaseModels/StatusPageAnnouncement.ts +48 -0
  2. package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +48 -0
  3. package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +8 -1
  4. package/Server/API/BaseAPI.ts +18 -6
  5. package/Server/API/StatusPageAPI.ts +65 -0
  6. package/Server/Infrastructure/Postgres/SchemaMigrations/1757423505855-MigrationName.ts +79 -0
  7. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  8. package/Server/Services/StatusPageSubscriberService.ts +4 -1
  9. package/Server/Services/WorkspaceNotificationRuleService.ts +7 -0
  10. package/Server/Utils/Workspace/Slack/Slack.ts +268 -38
  11. package/Server/Utils/Workspace/WorkspaceBase.ts +12 -0
  12. package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +46 -0
  13. package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
  14. package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +46 -0
  15. package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
  16. package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
  17. package/build/dist/Server/API/BaseAPI.js +18 -6
  18. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  19. package/build/dist/Server/API/StatusPageAPI.js +54 -0
  20. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  21. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1757423505855-MigrationName.js +34 -0
  22. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1757423505855-MigrationName.js.map +1 -0
  23. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  24. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  25. package/build/dist/Server/Services/StatusPageSubscriberService.js +2 -1
  26. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  27. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +7 -0
  28. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  29. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +213 -28
  30. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  31. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +2 -0
  32. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
  33. package/package.json +1 -1
@@ -31,6 +31,8 @@ import { DropdownOption } from "../../../../UI/Components/Dropdown/Dropdown";
31
31
  import OneUptimeDate from "../../../../Types/Date";
32
32
  import CaptureSpan from "../../Telemetry/CaptureSpan";
33
33
  import BadDataException from "../../../../Types/Exception/BadDataException";
34
+ import ObjectID from "../../../../Types/ObjectID";
35
+ import WorkspaceProjectAuthTokenService from "../../../Services/WorkspaceProjectAuthTokenService";
34
36
 
35
37
  export default class SlackUtil extends WorkspaceBase {
36
38
  public static isValidSlackIncomingWebhookUrl(
@@ -181,6 +183,7 @@ export default class SlackUtil extends WorkspaceBase {
181
183
  channelIds: Array<string>;
182
184
  authToken: string;
183
185
  sendMessageBeforeArchiving: WorkspacePayloadMarkdown;
186
+ projectId: ObjectID;
184
187
  }): Promise<void> {
185
188
  if (data.sendMessageBeforeArchiving) {
186
189
  await this.sendMessage({
@@ -193,6 +196,7 @@ export default class SlackUtil extends WorkspaceBase {
193
196
  },
194
197
  authToken: data.authToken,
195
198
  userId: data.userId,
199
+ projectId: data.projectId,
196
200
  });
197
201
  }
198
202
 
@@ -349,6 +353,7 @@ export default class SlackUtil extends WorkspaceBase {
349
353
  authToken: string;
350
354
  channelName: string;
351
355
  workspaceUserId: string;
356
+ projectId: ObjectID;
352
357
  }): Promise<void> {
353
358
  if (data.channelName && data.channelName.startsWith("#")) {
354
359
  // trim # from channel name
@@ -362,6 +367,7 @@ export default class SlackUtil extends WorkspaceBase {
362
367
  await this.getWorkspaceChannelFromChannelName({
363
368
  authToken: data.authToken,
364
369
  channelName: data.channelName,
370
+ projectId: data.projectId,
365
371
  })
366
372
  ).id;
367
373
 
@@ -376,31 +382,32 @@ export default class SlackUtil extends WorkspaceBase {
376
382
  public static override async createChannelsIfDoesNotExist(data: {
377
383
  authToken: string;
378
384
  channelNames: Array<string>;
385
+ projectId: ObjectID;
379
386
  }): Promise<Array<WorkspaceChannel>> {
380
387
  logger.debug("Creating channels if they do not exist with data:");
381
388
  logger.debug(data);
382
389
 
383
390
  const workspaceChannels: Array<WorkspaceChannel> = [];
384
- const existingWorkspaceChannels: Dictionary<WorkspaceChannel> =
385
- await this.getAllWorkspaceChannels({
386
- authToken: data.authToken,
387
- });
388
391
 
389
392
  for (let channelName of data.channelNames) {
390
- // if channel name starts with #, remove it
393
+ // Normalize channel name
391
394
  if (channelName && channelName.startsWith("#")) {
392
395
  channelName = channelName.substring(1);
393
396
  }
394
-
395
- // convert channel name to lowercase
396
397
  channelName = channelName.toLowerCase();
397
-
398
- // replace spaces with hyphens
399
398
  channelName = channelName.replace(/\s+/g, "-");
400
399
 
401
- if (existingWorkspaceChannels[channelName]) {
400
+ // Check if channel exists using optimized method
401
+ const existingChannel: WorkspaceChannel | null =
402
+ await this.getWorkspaceChannelByName({
403
+ authToken: data.authToken,
404
+ channelName: channelName,
405
+ projectId: data.projectId,
406
+ });
407
+
408
+ if (existingChannel) {
402
409
  logger.debug(`Channel ${channelName} already exists.`);
403
- workspaceChannels.push(existingWorkspaceChannels[channelName]!);
410
+ workspaceChannels.push(existingChannel);
404
411
  continue;
405
412
  }
406
413
 
@@ -408,6 +415,7 @@ export default class SlackUtil extends WorkspaceBase {
408
415
  const channel: WorkspaceChannel = await this.createChannel({
409
416
  authToken: data.authToken,
410
417
  channelName: channelName,
418
+ projectId: data.projectId,
411
419
  });
412
420
 
413
421
  if (channel) {
@@ -425,26 +433,27 @@ export default class SlackUtil extends WorkspaceBase {
425
433
  public static override async getWorkspaceChannelFromChannelName(data: {
426
434
  authToken: string;
427
435
  channelName: string;
436
+ projectId: ObjectID;
428
437
  }): Promise<WorkspaceChannel> {
429
438
  logger.debug("Getting workspace channel ID from channel name with data:");
430
439
  logger.debug(data);
431
440
 
432
- const channels: Dictionary<WorkspaceChannel> =
433
- await this.getAllWorkspaceChannels({
441
+ const channel: WorkspaceChannel | null =
442
+ await this.getWorkspaceChannelByName({
434
443
  authToken: data.authToken,
444
+ channelName: data.channelName,
445
+ projectId: data.projectId,
435
446
  });
436
447
 
437
- logger.debug("All workspace channels:");
438
-
439
- if (!channels[data.channelName]) {
448
+ if (!channel) {
440
449
  logger.error("Channel not found.");
441
450
  throw new BadDataException("Channel not found.");
442
451
  }
443
452
 
444
- logger.debug("Workspace channel ID obtained:");
445
- logger.debug(channels[data.channelName]!.id);
453
+ logger.debug("Workspace channel obtained:");
454
+ logger.debug(channel);
446
455
 
447
- return channels[data.channelName]!;
456
+ return channel;
448
457
  }
449
458
 
450
459
  @CaptureSpan()
@@ -584,6 +593,216 @@ export default class SlackUtil extends WorkspaceBase {
584
593
  return channels;
585
594
  }
586
595
 
596
+ @CaptureSpan()
597
+ public static async getChannelFromCache(data: {
598
+ projectId: ObjectID;
599
+ channelName: string;
600
+ }): Promise<WorkspaceChannel | null> {
601
+ logger.debug("Getting channel from cache with data:");
602
+ logger.debug(data);
603
+
604
+ const projectAuth: any =
605
+ await WorkspaceProjectAuthTokenService.getProjectAuth({
606
+ projectId: data.projectId,
607
+ workspaceType: WorkspaceType.Slack,
608
+ });
609
+
610
+ if (!projectAuth || !projectAuth.miscData) {
611
+ logger.debug("No project auth found or no misc data");
612
+ return null;
613
+ }
614
+
615
+ const miscData: any = projectAuth.miscData;
616
+ const channelCache: any = miscData.channelCache;
617
+
618
+ if (!channelCache || !channelCache[data.channelName]) {
619
+ logger.debug("Channel not found in cache");
620
+ return null;
621
+ }
622
+
623
+ const cachedChannelData: WorkspaceChannel = channelCache[
624
+ data.channelName
625
+ ] as WorkspaceChannel;
626
+ const channel: WorkspaceChannel = {
627
+ id: cachedChannelData.id,
628
+ name: cachedChannelData.name,
629
+ workspaceType: WorkspaceType.Slack,
630
+ };
631
+
632
+ logger.debug("Channel found in cache:");
633
+ logger.debug(channel);
634
+ return channel;
635
+ }
636
+
637
+ @CaptureSpan()
638
+ public static async updateChannelCache(data: {
639
+ projectId: ObjectID;
640
+ channelName: string;
641
+ channel: WorkspaceChannel;
642
+ }): Promise<void> {
643
+ logger.debug("Updating channel cache with data:");
644
+ logger.debug(data);
645
+
646
+ const projectAuth: any =
647
+ await WorkspaceProjectAuthTokenService.getProjectAuth({
648
+ projectId: data.projectId,
649
+ workspaceType: WorkspaceType.Slack,
650
+ });
651
+
652
+ if (!projectAuth) {
653
+ logger.debug("No project auth found, cannot update cache");
654
+ return;
655
+ }
656
+
657
+ const miscData: any = projectAuth.miscData || {};
658
+ const channelCache: any = miscData.channelCache || {};
659
+
660
+ // Update the cache
661
+ channelCache[data.channelName] = {
662
+ id: data.channel.id,
663
+ name: data.channel.name,
664
+ lastUpdated: new Date().toISOString(),
665
+ };
666
+
667
+ // Update miscData
668
+ miscData.channelCache = channelCache;
669
+
670
+ // Save back to database
671
+ await WorkspaceProjectAuthTokenService.refreshAuthToken({
672
+ projectId: data.projectId,
673
+ workspaceType: WorkspaceType.Slack,
674
+ authToken: projectAuth.authToken,
675
+ workspaceProjectId: projectAuth.workspaceProjectId,
676
+ miscData: miscData,
677
+ });
678
+
679
+ logger.debug("Channel cache updated successfully");
680
+ }
681
+
682
+ @CaptureSpan()
683
+ public static async getWorkspaceChannelByName(data: {
684
+ authToken: string;
685
+ channelName: string;
686
+ projectId: ObjectID;
687
+ }): Promise<WorkspaceChannel | null> {
688
+ logger.debug("Getting workspace channel by name with data:");
689
+ logger.debug(data);
690
+
691
+ // Normalize channel name
692
+ let normalizedChannelName: string = data.channelName;
693
+ if (normalizedChannelName && normalizedChannelName.startsWith("#")) {
694
+ normalizedChannelName = normalizedChannelName.substring(1);
695
+ }
696
+ normalizedChannelName = normalizedChannelName.toLowerCase();
697
+
698
+ // Try to get from cache first
699
+ try {
700
+ const cachedChannel: WorkspaceChannel | null =
701
+ await this.getChannelFromCache({
702
+ projectId: data.projectId,
703
+ channelName: normalizedChannelName,
704
+ });
705
+ if (cachedChannel) {
706
+ logger.debug("Channel found in cache:");
707
+ logger.debug(cachedChannel);
708
+ return cachedChannel;
709
+ }
710
+ } catch (error) {
711
+ logger.error("Error getting channel from cache, falling back to API:");
712
+ logger.error(error);
713
+ }
714
+
715
+ let cursor: string | undefined = undefined;
716
+ const maxPages: number = 10; // Limit search to prevent excessive API calls
717
+ let pageCount: number = 0;
718
+
719
+ do {
720
+ const requestBody: JSONObject = {
721
+ limit: 200, // Use smaller limit for faster searches
722
+ types: "public_channel,private_channel",
723
+ };
724
+
725
+ if (cursor) {
726
+ requestBody["cursor"] = cursor;
727
+ }
728
+
729
+ const response: HTTPErrorResponse | HTTPResponse<JSONObject> =
730
+ await API.post<JSONObject>(
731
+ URL.fromString("https://slack.com/api/conversations.list"),
732
+ requestBody,
733
+ {
734
+ Authorization: `Bearer ${data.authToken}`,
735
+ ["Content-Type"]: "application/x-www-form-urlencoded",
736
+ },
737
+ {
738
+ retries: 3,
739
+ exponentialBackoff: true,
740
+ },
741
+ );
742
+
743
+ if (response instanceof HTTPErrorResponse) {
744
+ logger.error("Error response from Slack API:");
745
+ logger.error(response);
746
+ throw response;
747
+ }
748
+
749
+ // check for ok response
750
+ if ((response.jsonData as JSONObject)?.["ok"] !== true) {
751
+ logger.error("Invalid response from Slack API:");
752
+ logger.error(response.jsonData);
753
+ const messageFromSlack: string = (response.jsonData as JSONObject)?.[
754
+ "error"
755
+ ] as string;
756
+ throw new BadRequestException("Error from Slack " + messageFromSlack);
757
+ }
758
+
759
+ for (const channel of (response.jsonData as JSONObject)[
760
+ "channels"
761
+ ] as Array<JSONObject>) {
762
+ if (!channel["id"] || !channel["name"]) {
763
+ continue;
764
+ }
765
+
766
+ const channelName: string = (channel["name"] as string).toLowerCase();
767
+ if (channelName === normalizedChannelName) {
768
+ logger.debug("Channel found:");
769
+ logger.debug(channel);
770
+
771
+ const foundChannel: WorkspaceChannel = {
772
+ id: channel["id"] as string,
773
+ name: channel["name"] as string,
774
+ workspaceType: WorkspaceType.Slack,
775
+ };
776
+
777
+ // Update cache if projectId is provided
778
+ if (data.projectId) {
779
+ try {
780
+ await this.updateChannelCache({
781
+ projectId: data.projectId,
782
+ channelName: normalizedChannelName,
783
+ channel: foundChannel,
784
+ });
785
+ } catch (error) {
786
+ logger.error("Error updating channel cache:");
787
+ logger.error(error);
788
+ // Don't fail the request if cache update fails
789
+ }
790
+ }
791
+
792
+ return foundChannel;
793
+ }
794
+ }
795
+
796
+ cursor = (
797
+ (response.jsonData as JSONObject)["response_metadata"] as JSONObject
798
+ )?.["next_cursor"] as string;
799
+ pageCount++;
800
+ } while (cursor && pageCount < maxPages);
801
+
802
+ logger.debug("Channel not found:");
803
+ return null;
804
+ }
805
+
587
806
  @CaptureSpan()
588
807
  public static override getDividerBlock(): JSONObject {
589
808
  return {
@@ -651,6 +870,7 @@ export default class SlackUtil extends WorkspaceBase {
651
870
  public static override async doesChannelExist(data: {
652
871
  authToken: string;
653
872
  channelName: string;
873
+ projectId: ObjectID;
654
874
  }): Promise<boolean> {
655
875
  // if channel name starts with #, remove it
656
876
  if (data.channelName && data.channelName.startsWith("#")) {
@@ -660,18 +880,15 @@ export default class SlackUtil extends WorkspaceBase {
660
880
  // convert channel name to lowercase
661
881
  data.channelName = data.channelName.toLowerCase();
662
882
 
663
- // get channel id from channel name
664
- const channels: Dictionary<WorkspaceChannel> =
665
- await this.getAllWorkspaceChannels({
883
+ // Check if channel exists using optimized method
884
+ const channel: WorkspaceChannel | null =
885
+ await this.getWorkspaceChannelByName({
666
886
  authToken: data.authToken,
887
+ channelName: data.channelName,
888
+ projectId: data.projectId,
667
889
  });
668
890
 
669
- // if this channel exists
670
- if (channels[data.channelName]) {
671
- return true;
672
- }
673
-
674
- return false;
891
+ return channel !== null;
675
892
  }
676
893
 
677
894
  @CaptureSpan()
@@ -679,6 +896,7 @@ export default class SlackUtil extends WorkspaceBase {
679
896
  workspaceMessagePayload: WorkspaceMessagePayload;
680
897
  authToken: string; // which auth token should we use to send.
681
898
  userId: string;
899
+ projectId: ObjectID;
682
900
  }): Promise<WorkspaceSendMessageResponse> {
683
901
  logger.debug("Sending message to Slack with data:");
684
902
  logger.debug(data);
@@ -690,24 +908,21 @@ export default class SlackUtil extends WorkspaceBase {
690
908
  logger.debug("Blocks generated from workspace message payload:");
691
909
  logger.debug(blocks);
692
910
 
693
- const existingWorkspaceChannels: Dictionary<WorkspaceChannel> =
694
- await this.getAllWorkspaceChannels({
695
- authToken: data.authToken,
696
- });
697
-
698
911
  const workspaceChannelsToPostTo: Array<WorkspaceChannel> = [];
699
912
 
913
+ // Resolve channel names efficiently
700
914
  for (let channelName of data.workspaceMessagePayload.channelNames) {
701
915
  if (channelName && channelName.startsWith("#")) {
702
916
  // trim # from channel name
703
917
  channelName = channelName.substring(1);
704
918
  }
705
919
 
706
- let channel: WorkspaceChannel | null = null;
707
-
708
- if (existingWorkspaceChannels[channelName]) {
709
- channel = existingWorkspaceChannels[channelName]!;
710
- }
920
+ const channel: WorkspaceChannel | null =
921
+ await this.getWorkspaceChannelByName({
922
+ authToken: data.authToken,
923
+ channelName: channelName,
924
+ projectId: data.projectId,
925
+ });
711
926
 
712
927
  if (channel) {
713
928
  workspaceChannelsToPostTo.push(channel);
@@ -868,6 +1083,7 @@ export default class SlackUtil extends WorkspaceBase {
868
1083
  public static override async createChannel(data: {
869
1084
  authToken: string;
870
1085
  channelName: string;
1086
+ projectId: ObjectID;
871
1087
  }): Promise<WorkspaceChannel> {
872
1088
  if (data.channelName && data.channelName.startsWith("#")) {
873
1089
  data.channelName = data.channelName.substring(1);
@@ -935,6 +1151,20 @@ export default class SlackUtil extends WorkspaceBase {
935
1151
 
936
1152
  logger.debug("Channel created successfully:");
937
1153
  logger.debug(channel);
1154
+
1155
+ // Cache the created channel
1156
+ try {
1157
+ await this.updateChannelCache({
1158
+ projectId: data.projectId,
1159
+ channelName: data.channelName,
1160
+ channel: channel,
1161
+ });
1162
+ } catch (error) {
1163
+ logger.error("Error caching created channel:");
1164
+ logger.error(error);
1165
+ // Don't fail the creation if caching fails
1166
+ }
1167
+
938
1168
  return channel;
939
1169
  }
940
1170
 
@@ -3,6 +3,7 @@ import HTTPResponse from "../../../Types/API/HTTPResponse";
3
3
  import Dictionary from "../../../Types/Dictionary";
4
4
  import NotImplementedException from "../../../Types/Exception/NotImplementedException";
5
5
  import { JSONObject } from "../../../Types/JSON";
6
+ import ObjectID from "../../../Types/ObjectID";
6
7
  import WorkspaceChannelInvitationPayload from "../../../Types/Workspace/WorkspaceChannelInvitationPayload";
7
8
  import WorkspaceMessagePayload, {
8
9
  WorkspaceCheckboxBlock,
@@ -53,6 +54,7 @@ export default class WorkspaceBase {
53
54
  public static async doesChannelExist(_data: {
54
55
  authToken: string;
55
56
  channelName: string;
57
+ projectId: ObjectID;
56
58
  }): Promise<boolean> {
57
59
  throw new NotImplementedException();
58
60
  }
@@ -63,6 +65,7 @@ export default class WorkspaceBase {
63
65
  authToken: string;
64
66
  userId: string;
65
67
  sendMessageBeforeArchiving: WorkspacePayloadMarkdown;
68
+ projectId: ObjectID;
66
69
  }): Promise<void> {
67
70
  throw new NotImplementedException();
68
71
  }
@@ -121,6 +124,7 @@ export default class WorkspaceBase {
121
124
  public static async inviteUsersToChannels(data: {
122
125
  authToken: string;
123
126
  workspaceChannelInvitationPayload: WorkspaceChannelInvitationPayload;
127
+ projectId: ObjectID;
124
128
  }): Promise<void> {
125
129
  for (const channelName of data.workspaceChannelInvitationPayload
126
130
  .channelNames) {
@@ -129,6 +133,7 @@ export default class WorkspaceBase {
129
133
  channelName: channelName,
130
134
  workspaceUserIds:
131
135
  data.workspaceChannelInvitationPayload.workspaceUserIds,
136
+ projectId: data.projectId,
132
137
  });
133
138
  }
134
139
  }
@@ -138,12 +143,14 @@ export default class WorkspaceBase {
138
143
  authToken: string;
139
144
  channelName: string;
140
145
  workspaceUserIds: Array<string>;
146
+ projectId: ObjectID;
141
147
  }): Promise<void> {
142
148
  for (const userId of data.workspaceUserIds) {
143
149
  await this.inviteUserToChannelByChannelName({
144
150
  authToken: data.authToken,
145
151
  channelName: data.channelName,
146
152
  workspaceUserId: userId,
153
+ projectId: data.projectId,
147
154
  });
148
155
  }
149
156
  }
@@ -153,6 +160,7 @@ export default class WorkspaceBase {
153
160
  authToken: string;
154
161
  channelName: string;
155
162
  workspaceUserId: string;
163
+ projectId: ObjectID;
156
164
  }): Promise<void> {
157
165
  throw new NotImplementedException();
158
166
  }
@@ -175,6 +183,7 @@ export default class WorkspaceBase {
175
183
  public static async createChannelsIfDoesNotExist(_data: {
176
184
  authToken: string;
177
185
  channelNames: Array<string>;
186
+ projectId: ObjectID;
178
187
  }): Promise<Array<WorkspaceChannel>> {
179
188
  throw new NotImplementedException();
180
189
  }
@@ -192,6 +201,7 @@ export default class WorkspaceBase {
192
201
  workspaceMessagePayload: WorkspaceMessagePayload;
193
202
  authToken: string; // which auth token should we use to send.
194
203
  userId: string;
204
+ projectId: ObjectID;
195
205
  }): Promise<WorkspaceSendMessageResponse> {
196
206
  throw new NotImplementedException();
197
207
  }
@@ -207,6 +217,7 @@ export default class WorkspaceBase {
207
217
  public static async getWorkspaceChannelFromChannelName(_data: {
208
218
  authToken: string;
209
219
  channelName: string;
220
+ projectId: ObjectID;
210
221
  }): Promise<WorkspaceChannel> {
211
222
  throw new NotImplementedException();
212
223
  }
@@ -215,6 +226,7 @@ export default class WorkspaceBase {
215
226
  public static async createChannel(_data: {
216
227
  authToken: string;
217
228
  channelName: string;
229
+ projectId: ObjectID;
218
230
  }): Promise<WorkspaceChannel> {
219
231
  throw new NotImplementedException();
220
232
  }
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ import Monitor from "./Monitor";
10
11
  import Project from "./Project";
11
12
  import StatusPage from "./StatusPage";
12
13
  import User from "./User";
@@ -38,6 +39,7 @@ let StatusPageAnnouncement = class StatusPageAnnouncement extends BaseModel {
38
39
  this.project = undefined;
39
40
  this.projectId = undefined;
40
41
  this.statusPages = undefined;
42
+ this.monitors = undefined;
41
43
  this.title = undefined;
42
44
  this.showAnnouncementAt = undefined;
43
45
  this.endAnnouncementAt = undefined;
@@ -161,6 +163,50 @@ __decorate([
161
163
  }),
162
164
  __metadata("design:type", Array)
163
165
  ], StatusPageAnnouncement.prototype, "statusPages", void 0);
166
+ __decorate([
167
+ ColumnAccessControl({
168
+ create: [
169
+ Permission.ProjectOwner,
170
+ Permission.ProjectAdmin,
171
+ Permission.ProjectMember,
172
+ Permission.CreateStatusPageAnnouncement,
173
+ ],
174
+ read: [
175
+ Permission.ProjectOwner,
176
+ Permission.ProjectAdmin,
177
+ Permission.ProjectMember,
178
+ Permission.ReadStatusPageAnnouncement,
179
+ ],
180
+ update: [
181
+ Permission.ProjectOwner,
182
+ Permission.ProjectAdmin,
183
+ Permission.ProjectMember,
184
+ Permission.EditStatusPageAnnouncement,
185
+ ],
186
+ }),
187
+ TableColumn({
188
+ required: false,
189
+ type: TableColumnType.EntityArray,
190
+ modelType: Monitor,
191
+ title: "Monitors",
192
+ description: "List of monitors affected by this announcement. If none are selected, all subscribers will be notified.",
193
+ }),
194
+ ManyToMany(() => {
195
+ return Monitor;
196
+ }, { eager: false }),
197
+ JoinTable({
198
+ name: "AnnouncementMonitor",
199
+ inverseJoinColumn: {
200
+ name: "monitorId",
201
+ referencedColumnName: "_id",
202
+ },
203
+ joinColumn: {
204
+ name: "announcementId",
205
+ referencedColumnName: "_id",
206
+ },
207
+ }),
208
+ __metadata("design:type", Array)
209
+ ], StatusPageAnnouncement.prototype, "monitors", void 0);
164
210
  __decorate([
165
211
  ColumnAccessControl({
166
212
  create: [
@@ -1 +1 @@
1
- {"version":3,"file":"StatusPageAnnouncement.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/StatusPageAnnouncement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusPageAnnouncement.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/StatusPageAnnouncement.ts"],"names":[],"mappings":"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"}