@oneuptime/common 10.2.2 → 10.2.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 (84) hide show
  1. package/Models/DatabaseModels/Index.ts +6 -0
  2. package/Models/DatabaseModels/StatusPage.ts +43 -0
  3. package/Models/DatabaseModels/StatusPageOidc.ts +689 -0
  4. package/Models/DatabaseModels/UserNotificationRule.ts +49 -0
  5. package/Models/DatabaseModels/UserNotificationSetting.ts +17 -0
  6. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +48 -0
  7. package/Models/DatabaseModels/UserWebhook.ts +290 -0
  8. package/Models/DatabaseModels/WebhookLog.ts +992 -0
  9. package/Server/API/StatusPageAPI.ts +78 -3
  10. package/Server/API/UserWebhookAPI.ts +159 -0
  11. package/Server/Infrastructure/Postgres/SchemaMigrations/1778506655291-AddProjectOIDC.ts +1 -1
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1778514515756-MigrationName.ts +259 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1778521361934-MigrationName.ts +17 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1778522070962-AddStatusPageOIDC.ts +63 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  16. package/Server/Services/Index.ts +2 -0
  17. package/Server/Services/ScheduledMaintenanceService.ts +34 -0
  18. package/Server/Services/StatusPageOidcService.ts +10 -0
  19. package/Server/Services/StatusPageSubscriberService.ts +101 -0
  20. package/Server/Services/UserNotificationRuleService.ts +213 -1
  21. package/Server/Services/UserNotificationSettingService.ts +95 -0
  22. package/Server/Services/UserWebhookService.ts +208 -0
  23. package/Server/Services/WebhookLogService.ts +15 -0
  24. package/Server/Services/WebhookService.ts +126 -0
  25. package/Server/Utils/StatusPageSubscriberWebhook.ts +39 -0
  26. package/Types/Permission.ts +58 -0
  27. package/Types/Webhook/WebhookMessage.ts +8 -0
  28. package/Types/WebhookStatus.ts +6 -0
  29. package/build/dist/Models/DatabaseModels/Index.js +6 -0
  30. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  31. package/build/dist/Models/DatabaseModels/StatusPage.js +45 -0
  32. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  33. package/build/dist/Models/DatabaseModels/StatusPageOidc.js +718 -0
  34. package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -0
  35. package/build/dist/Models/DatabaseModels/UserNotificationRule.js +49 -0
  36. package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
  37. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +19 -0
  38. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
  39. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
  40. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  41. package/build/dist/Models/DatabaseModels/UserWebhook.js +307 -0
  42. package/build/dist/Models/DatabaseModels/UserWebhook.js.map +1 -0
  43. package/build/dist/Models/DatabaseModels/WebhookLog.js +1021 -0
  44. package/build/dist/Models/DatabaseModels/WebhookLog.js.map +1 -0
  45. package/build/dist/Server/API/StatusPageAPI.js +80 -35
  46. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  47. package/build/dist/Server/API/UserWebhookAPI.js +99 -0
  48. package/build/dist/Server/API/UserWebhookAPI.js.map +1 -0
  49. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778506655291-AddProjectOIDC.js.map +1 -1
  50. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778514515756-MigrationName.js +94 -0
  51. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778514515756-MigrationName.js.map +1 -0
  52. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778521361934-MigrationName.js +12 -0
  53. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778521361934-MigrationName.js.map +1 -0
  54. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778522070962-AddStatusPageOIDC.js +28 -0
  55. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778522070962-AddStatusPageOIDC.js.map +1 -0
  56. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  57. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  58. package/build/dist/Server/Services/Index.js +2 -0
  59. package/build/dist/Server/Services/Index.js.map +1 -1
  60. package/build/dist/Server/Services/ScheduledMaintenanceService.js +31 -2
  61. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  62. package/build/dist/Server/Services/StatusPageOidcService.js +9 -0
  63. package/build/dist/Server/Services/StatusPageOidcService.js.map +1 -0
  64. package/build/dist/Server/Services/StatusPageSubscriberService.js +99 -4
  65. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  66. package/build/dist/Server/Services/UserNotificationRuleService.js +178 -21
  67. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  68. package/build/dist/Server/Services/UserNotificationSettingService.js +84 -1
  69. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  70. package/build/dist/Server/Services/UserWebhookService.js +190 -0
  71. package/build/dist/Server/Services/UserWebhookService.js.map +1 -0
  72. package/build/dist/Server/Services/WebhookLogService.js +13 -0
  73. package/build/dist/Server/Services/WebhookLogService.js.map +1 -0
  74. package/build/dist/Server/Services/WebhookService.js +92 -0
  75. package/build/dist/Server/Services/WebhookService.js.map +1 -0
  76. package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +19 -0
  77. package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -0
  78. package/build/dist/Types/Permission.js +50 -0
  79. package/build/dist/Types/Permission.js.map +1 -1
  80. package/build/dist/Types/Webhook/WebhookMessage.js +2 -0
  81. package/build/dist/Types/Webhook/WebhookMessage.js.map +1 -0
  82. package/build/dist/Types/WebhookStatus.js +7 -0
  83. package/build/dist/Types/WebhookStatus.js.map +1 -0
  84. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebhookLog.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/WebhookLog.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,7 @@ import StatusPageHistoryChartBarColorRuleService from "../Services/StatusPageHis
33
33
  import StatusPageResourceService from "../Services/StatusPageResourceService";
34
34
  import StatusPageService, { Service as StatusPageServiceType, } from "../Services/StatusPageService";
35
35
  import StatusPageSsoService from "../Services/StatusPageSsoService";
36
+ import StatusPageOidcService from "../Services/StatusPageOidcService";
36
37
  import StatusPageSubscriberService from "../Services/StatusPageSubscriberService";
37
38
  import QueryHelper from "../Types/Database/QueryHelper";
38
39
  import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
@@ -73,6 +74,7 @@ import StatusPageHeaderLink from "../../Models/DatabaseModels/StatusPageHeaderLi
73
74
  import StatusPageHistoryChartBarColorRule from "../../Models/DatabaseModels/StatusPageHistoryChartBarColorRule";
74
75
  import StatusPageResource from "../../Models/DatabaseModels/StatusPageResource";
75
76
  import StatusPageSSO from "../../Models/DatabaseModels/StatusPageSso";
77
+ import StatusPageOIDC from "../../Models/DatabaseModels/StatusPageOidc";
76
78
  import StatusPageSubscriber from "../../Models/DatabaseModels/StatusPageSubscriber";
77
79
  import StatusPageResourceUptimeUtil from "../../Utils/StatusPage/ResourceUptime";
78
80
  import UptimePrecision from "../../Types/StatusPage/UptimePrecision";
@@ -130,7 +132,7 @@ const resolveStatusPageIdOrThrow = async (statusPageIdOrDomain) => {
130
132
  };
131
133
  export default class StatusPageAPI extends BaseAPI {
132
134
  constructor() {
133
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
135
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9;
134
136
  super(StatusPage, StatusPageService);
135
137
  // get title, description of the page. This is used for SEO.
136
138
  this.router.get(`${(_a = new this.entityType().getCrudApiPath()) === null || _a === void 0 ? void 0 : _a.toString()}/seo/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res) => {
@@ -602,6 +604,7 @@ export default class StatusPageAPI extends BaseAPI {
602
604
  enableEmailSubscribers: true,
603
605
  enableSlackSubscribers: true,
604
606
  enableMicrosoftTeamsSubscribers: true,
607
+ enableWebhookSubscribers: true,
605
608
  enableSmsSubscribers: true,
606
609
  isPublicStatusPage: true,
607
610
  enableMasterPassword: true,
@@ -775,9 +778,34 @@ export default class StatusPageAPI extends BaseAPI {
775
778
  next(err);
776
779
  }
777
780
  });
781
+ this.router.post(`${(_u = new this.entityType().getCrudApiPath()) === null || _u === void 0 ? void 0 : _u.toString()}/oidc/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
782
+ try {
783
+ const objectId = new ObjectID(req.params["statusPageId"]);
784
+ const oidc = await StatusPageOidcService.findBy({
785
+ query: {
786
+ statusPageId: objectId,
787
+ isEnabled: true,
788
+ },
789
+ select: {
790
+ name: true,
791
+ description: true,
792
+ _id: true,
793
+ },
794
+ limit: LIMIT_PER_PROJECT,
795
+ skip: 0,
796
+ props: {
797
+ isRoot: true,
798
+ },
799
+ });
800
+ return Response.sendEntityArrayResponse(req, res, oidc, new PositiveNumber(oidc.length), StatusPageOIDC);
801
+ }
802
+ catch (err) {
803
+ next(err);
804
+ }
805
+ });
778
806
  // Get all status page resources for subscriber to subscribe to.
779
- this.router.post(`${(_u = new this.entityType()
780
- .getCrudApiPath()) === null || _u === void 0 ? void 0 : _u.toString()}/resources/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
807
+ this.router.post(`${(_v = new this.entityType()
808
+ .getCrudApiPath()) === null || _v === void 0 ? void 0 : _v.toString()}/resources/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
781
809
  try {
782
810
  const statusPageId = new ObjectID(req.params["statusPageId"]);
783
811
  await this.checkHasReadAccess({
@@ -810,8 +838,8 @@ export default class StatusPageAPI extends BaseAPI {
810
838
  next(err);
811
839
  }
812
840
  });
813
- this.router.post(`${(_v = new this.entityType()
814
- .getCrudApiPath()) === null || _v === void 0 ? void 0 : _v.toString()}/uptime/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
841
+ this.router.post(`${(_w = new this.entityType()
842
+ .getCrudApiPath()) === null || _w === void 0 ? void 0 : _w.toString()}/uptime/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
815
843
  try {
816
844
  // This reosurce ID can be of a status page resource OR a status page group.
817
845
  const statusPageResourceId = new ObjectID(req.params["statusPageResourceId"]);
@@ -991,8 +1019,8 @@ export default class StatusPageAPI extends BaseAPI {
991
1019
  next(err);
992
1020
  }
993
1021
  });
994
- this.router.post(`${(_w = new this.entityType()
995
- .getCrudApiPath()) === null || _w === void 0 ? void 0 : _w.toString()}/overview/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1022
+ this.router.post(`${(_x = new this.entityType()
1023
+ .getCrudApiPath()) === null || _x === void 0 ? void 0 : _x.toString()}/overview/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
996
1024
  var _a;
997
1025
  try {
998
1026
  const statusPageId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
@@ -1669,8 +1697,8 @@ export default class StatusPageAPI extends BaseAPI {
1669
1697
  next(err);
1670
1698
  }
1671
1699
  });
1672
- this.router.put(`${(_x = new this.entityType()
1673
- .getCrudApiPath()) === null || _x === void 0 ? void 0 : _x.toString()}/update-subscription/:statusPageId/:subscriberId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1700
+ this.router.put(`${(_y = new this.entityType()
1701
+ .getCrudApiPath()) === null || _y === void 0 ? void 0 : _y.toString()}/update-subscription/:statusPageId/:subscriberId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1674
1702
  try {
1675
1703
  await this.subscribeToStatusPage(req);
1676
1704
  return Response.sendEmptySuccessResponse(req, res);
@@ -1679,8 +1707,8 @@ export default class StatusPageAPI extends BaseAPI {
1679
1707
  next(err);
1680
1708
  }
1681
1709
  });
1682
- this.router.post(`${(_y = new this.entityType()
1683
- .getCrudApiPath()) === null || _y === void 0 ? void 0 : _y.toString()}/get-subscription/:statusPageId/:subscriberId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1710
+ this.router.post(`${(_z = new this.entityType()
1711
+ .getCrudApiPath()) === null || _z === void 0 ? void 0 : _z.toString()}/get-subscription/:statusPageId/:subscriberId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1684
1712
  try {
1685
1713
  const subscriber = await this.getSubscriber(req);
1686
1714
  return Response.sendEntityResponse(req, res, subscriber, StatusPageSubscriber);
@@ -1689,8 +1717,8 @@ export default class StatusPageAPI extends BaseAPI {
1689
1717
  next(err);
1690
1718
  }
1691
1719
  });
1692
- this.router.post(`${(_z = new this.entityType()
1693
- .getCrudApiPath()) === null || _z === void 0 ? void 0 : _z.toString()}/subscribe/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1720
+ this.router.post(`${(_0 = new this.entityType()
1721
+ .getCrudApiPath()) === null || _0 === void 0 ? void 0 : _0.toString()}/subscribe/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1694
1722
  try {
1695
1723
  await this.subscribeToStatusPage(req);
1696
1724
  return Response.sendEmptySuccessResponse(req, res);
@@ -1699,8 +1727,8 @@ export default class StatusPageAPI extends BaseAPI {
1699
1727
  next(err);
1700
1728
  }
1701
1729
  });
1702
- this.router.post(`${(_0 = new this.entityType()
1703
- .getCrudApiPath()) === null || _0 === void 0 ? void 0 : _0.toString()}/manage-subscription/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1730
+ this.router.post(`${(_1 = new this.entityType()
1731
+ .getCrudApiPath()) === null || _1 === void 0 ? void 0 : _1.toString()}/manage-subscription/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1704
1732
  try {
1705
1733
  await this.manageExistingSubscription(req);
1706
1734
  return Response.sendEmptySuccessResponse(req, res);
@@ -1709,8 +1737,8 @@ export default class StatusPageAPI extends BaseAPI {
1709
1737
  next(err);
1710
1738
  }
1711
1739
  });
1712
- this.router.post(`${(_1 = new this.entityType()
1713
- .getCrudApiPath()) === null || _1 === void 0 ? void 0 : _1.toString()}/incidents/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1740
+ this.router.post(`${(_2 = new this.entityType()
1741
+ .getCrudApiPath()) === null || _2 === void 0 ? void 0 : _2.toString()}/incidents/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1714
1742
  try {
1715
1743
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1716
1744
  const response = await this.getIncidents(objectId, null, req);
@@ -1720,8 +1748,8 @@ export default class StatusPageAPI extends BaseAPI {
1720
1748
  next(err);
1721
1749
  }
1722
1750
  });
1723
- this.router.post(`${(_2 = new this.entityType()
1724
- .getCrudApiPath()) === null || _2 === void 0 ? void 0 : _2.toString()}/scheduled-maintenance-events/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1751
+ this.router.post(`${(_3 = new this.entityType()
1752
+ .getCrudApiPath()) === null || _3 === void 0 ? void 0 : _3.toString()}/scheduled-maintenance-events/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1725
1753
  try {
1726
1754
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1727
1755
  const response = await this.getScheduledMaintenanceEvents(objectId, null, req);
@@ -1731,8 +1759,8 @@ export default class StatusPageAPI extends BaseAPI {
1731
1759
  next(err);
1732
1760
  }
1733
1761
  });
1734
- this.router.post(`${(_3 = new this.entityType()
1735
- .getCrudApiPath()) === null || _3 === void 0 ? void 0 : _3.toString()}/announcements/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1762
+ this.router.post(`${(_4 = new this.entityType()
1763
+ .getCrudApiPath()) === null || _4 === void 0 ? void 0 : _4.toString()}/announcements/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1736
1764
  try {
1737
1765
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1738
1766
  const response = await this.getAnnouncements(objectId, null, req);
@@ -1742,8 +1770,8 @@ export default class StatusPageAPI extends BaseAPI {
1742
1770
  next(err);
1743
1771
  }
1744
1772
  });
1745
- this.router.post(`${(_4 = new this.entityType()
1746
- .getCrudApiPath()) === null || _4 === void 0 ? void 0 : _4.toString()}/incidents/:statusPageIdOrDomain/:incidentId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1773
+ this.router.post(`${(_5 = new this.entityType()
1774
+ .getCrudApiPath()) === null || _5 === void 0 ? void 0 : _5.toString()}/incidents/:statusPageIdOrDomain/:incidentId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1747
1775
  try {
1748
1776
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1749
1777
  const incidentId = new ObjectID(req.params["incidentId"]);
@@ -1754,8 +1782,8 @@ export default class StatusPageAPI extends BaseAPI {
1754
1782
  next(err);
1755
1783
  }
1756
1784
  });
1757
- this.router.post(`${(_5 = new this.entityType()
1758
- .getCrudApiPath()) === null || _5 === void 0 ? void 0 : _5.toString()}/scheduled-maintenance-events/:statusPageIdOrDomain/:scheduledMaintenanceId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1785
+ this.router.post(`${(_6 = new this.entityType()
1786
+ .getCrudApiPath()) === null || _6 === void 0 ? void 0 : _6.toString()}/scheduled-maintenance-events/:statusPageIdOrDomain/:scheduledMaintenanceId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1759
1787
  try {
1760
1788
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1761
1789
  const scheduledMaintenanceId = new ObjectID(req.params["scheduledMaintenanceId"]);
@@ -1766,8 +1794,8 @@ export default class StatusPageAPI extends BaseAPI {
1766
1794
  next(err);
1767
1795
  }
1768
1796
  });
1769
- this.router.post(`${(_6 = new this.entityType()
1770
- .getCrudApiPath()) === null || _6 === void 0 ? void 0 : _6.toString()}/announcements/:statusPageIdOrDomain/:announcementId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1797
+ this.router.post(`${(_7 = new this.entityType()
1798
+ .getCrudApiPath()) === null || _7 === void 0 ? void 0 : _7.toString()}/announcements/:statusPageIdOrDomain/:announcementId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1771
1799
  try {
1772
1800
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1773
1801
  const announcementId = new ObjectID(req.params["announcementId"]);
@@ -1779,8 +1807,8 @@ export default class StatusPageAPI extends BaseAPI {
1779
1807
  }
1780
1808
  });
1781
1809
  // Episodes endpoints
1782
- this.router.post(`${(_7 = new this.entityType()
1783
- .getCrudApiPath()) === null || _7 === void 0 ? void 0 : _7.toString()}/episodes/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1810
+ this.router.post(`${(_8 = new this.entityType()
1811
+ .getCrudApiPath()) === null || _8 === void 0 ? void 0 : _8.toString()}/episodes/:statusPageIdOrDomain`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1784
1812
  try {
1785
1813
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1786
1814
  const response = await this.getEpisodes(objectId, null, req);
@@ -1790,8 +1818,8 @@ export default class StatusPageAPI extends BaseAPI {
1790
1818
  next(err);
1791
1819
  }
1792
1820
  });
1793
- this.router.post(`${(_8 = new this.entityType()
1794
- .getCrudApiPath()) === null || _8 === void 0 ? void 0 : _8.toString()}/episodes/:statusPageIdOrDomain/:episodeId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1821
+ this.router.post(`${(_9 = new this.entityType()
1822
+ .getCrudApiPath()) === null || _9 === void 0 ? void 0 : _9.toString()}/episodes/:statusPageIdOrDomain/:episodeId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
1795
1823
  try {
1796
1824
  const objectId = await resolveStatusPageIdOrThrow(req.params["statusPageIdOrDomain"]);
1797
1825
  const episodeId = new ObjectID(req.params["episodeId"]);
@@ -2213,6 +2241,7 @@ export default class StatusPageAPI extends BaseAPI {
2213
2241
  enableEmailSubscribers: true,
2214
2242
  enableSlackSubscribers: true,
2215
2243
  enableMicrosoftTeamsSubscribers: true,
2244
+ enableWebhookSubscribers: true,
2216
2245
  enableSmsSubscribers: true,
2217
2246
  allowSubscribersToChooseResources: true,
2218
2247
  allowSubscribersToChooseEventTypes: true,
@@ -2461,6 +2490,7 @@ export default class StatusPageAPI extends BaseAPI {
2461
2490
  enableSmsSubscribers: true,
2462
2491
  enableSlackSubscribers: true,
2463
2492
  enableMicrosoftTeamsSubscribers: true,
2493
+ enableWebhookSubscribers: true,
2464
2494
  allowSubscribersToChooseResources: true,
2465
2495
  allowSubscribersToChooseEventTypes: true,
2466
2496
  showSubscriberPageOnStatusPage: true,
@@ -2498,12 +2528,19 @@ export default class StatusPageAPI extends BaseAPI {
2498
2528
  logger.debug(`Microsoft Teams subscribers not enabled for status page with ID: ${objectId}`, getLogAttributesFromRequest(req));
2499
2529
  throw new BadDataException("Microsoft Teams subscribers not enabled for this status page.");
2500
2530
  }
2501
- if (!req.body.data["subscriberEmail"] &&
2531
+ if (req.body.data["subscriberWebhook"] &&
2532
+ !statusPage.enableWebhookSubscribers) {
2533
+ logger.debug(`Webhook subscribers not enabled for status page with ID: ${objectId}`, getLogAttributesFromRequest(req));
2534
+ throw new BadDataException("Webhook subscribers not enabled for this status page.");
2535
+ }
2536
+ if (!req.params["subscriberId"] &&
2537
+ !req.body.data["subscriberEmail"] &&
2502
2538
  !req.body.data["subscriberPhone"] &&
2503
2539
  !req.body.data["slackWorkspaceName"] &&
2504
- !req.body.data["microsoftTeamsWorkspaceName"]) {
2505
- logger.debug(`No email, phone, slack workspace name, or Microsoft Teams workspace name provided for subscription to status page with ID: ${objectId}`, getLogAttributesFromRequest(req));
2506
- throw new BadDataException("Email, phone, slack workspace name, or Microsoft Teams workspace name is required to subscribe to this status page.");
2540
+ !req.body.data["microsoftTeamsWorkspaceName"] &&
2541
+ !req.body.data["subscriberWebhook"]) {
2542
+ logger.debug(`No email, phone, slack workspace name, Microsoft Teams workspace name, or webhook URL provided for subscription to status page with ID: ${objectId}`, getLogAttributesFromRequest(req));
2543
+ throw new BadDataException("Email, phone, slack workspace name, Microsoft Teams workspace name, or webhook URL is required to subscribe to this status page.");
2507
2544
  }
2508
2545
  const email = req.body.data["subscriberEmail"]
2509
2546
  ? new Email(req.body.data["subscriberEmail"])
@@ -2523,6 +2560,9 @@ export default class StatusPageAPI extends BaseAPI {
2523
2560
  const microsoftTeamsWorkspaceName = req.body.data["microsoftTeamsWorkspaceName"]
2524
2561
  ? req.body.data["microsoftTeamsWorkspaceName"]
2525
2562
  : undefined;
2563
+ const subscriberWebhookUrl = req.body.data["subscriberWebhook"]
2564
+ ? req.body.data["subscriberWebhook"]
2565
+ : undefined;
2526
2566
  let statusPageSubscriber = null;
2527
2567
  let isUpdate = false;
2528
2568
  if (!req.params["subscriberId"]) {
@@ -2571,6 +2611,11 @@ export default class StatusPageAPI extends BaseAPI {
2571
2611
  statusPageSubscriber.microsoftTeamsWorkspaceName =
2572
2612
  microsoftTeamsWorkspaceName;
2573
2613
  }
2614
+ if (subscriberWebhookUrl) {
2615
+ logger.debug(`Setting subscriber webhook URL: ${subscriberWebhookUrl}`, getLogAttributesFromRequest(req));
2616
+ statusPageSubscriber.subscriberWebhook =
2617
+ URL.fromString(subscriberWebhookUrl);
2618
+ }
2574
2619
  if (!isUpdate &&
2575
2620
  req.body.data["statusPageResources"] &&
2576
2621
  !statusPage.allowSubscribersToChooseResources) {