@oneuptime/common 9.4.11 → 9.4.13
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.
- package/Models/DatabaseModels/Incident.ts +77 -0
- package/Models/DatabaseModels/IncidentEpisode.ts +1223 -0
- package/Models/DatabaseModels/IncidentEpisodeFeed.ts +533 -0
- package/Models/DatabaseModels/IncidentEpisodeInternalNote.ts +456 -0
- package/Models/DatabaseModels/IncidentEpisodeMember.ts +587 -0
- package/Models/DatabaseModels/IncidentEpisodeOwnerTeam.ts +421 -0
- package/Models/DatabaseModels/IncidentEpisodeOwnerUser.ts +419 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +524 -0
- package/Models/DatabaseModels/IncidentGroupingRule.ts +1430 -0
- package/Models/DatabaseModels/Index.ts +18 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +70 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +59 -0
- package/Models/DatabaseModels/Project.ts +29 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +48 -0
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +49 -0
- package/Models/DatabaseModels/WorkspaceNotificationLog.ts +57 -0
- package/Server/API/BillingAPI.ts +78 -1
- package/Server/API/IncidentEpisodeAPI.ts +150 -0
- package/Server/API/SlackAPI.ts +23 -0
- package/Server/API/UserOnCallLogTimelineAPI.ts +24 -4
- package/Server/BillingConfig.ts +3 -0
- package/Server/EnvironmentConfig.ts +1 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769599843642-MigrationName.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.ts +729 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.ts +261 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.ts +28 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Services/AIBillingService.ts +10 -0
- package/Server/Services/BillingService.ts +349 -1
- package/Server/Services/CallService.ts +1 -0
- package/Server/Services/IncidentEpisodeFeedService.ts +94 -0
- package/Server/Services/IncidentEpisodeInternalNoteService.ts +71 -0
- package/Server/Services/IncidentEpisodeMemberService.ts +321 -0
- package/Server/Services/IncidentEpisodeOwnerTeamService.ts +10 -0
- package/Server/Services/IncidentEpisodeOwnerUserService.ts +10 -0
- package/Server/Services/IncidentEpisodeService.ts +1045 -0
- package/Server/Services/IncidentEpisodeStateTimelineService.ts +566 -0
- package/Server/Services/IncidentGroupingEngineService.ts +1047 -0
- package/Server/Services/IncidentGroupingRuleService.ts +14 -0
- package/Server/Services/IncidentService.ts +11 -0
- package/Server/Services/Index.ts +18 -0
- package/Server/Services/MailService.ts +1 -0
- package/Server/Services/MonitorService.ts +9 -0
- package/Server/Services/NotificationService.ts +10 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +18 -0
- package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +64 -2
- package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +26 -1
- package/Server/Services/OnCallDutyPolicyService.ts +15 -0
- package/Server/Services/ProjectService.ts +33 -2
- package/Server/Services/SmsService.ts +1 -0
- package/Server/Services/UserNotificationRuleService.ts +48 -2
- package/Server/Services/UserNotificationSettingService.ts +23 -0
- package/Server/Services/UserOnCallLogService.ts +41 -4
- package/Server/Services/UserService.ts +45 -1
- package/Server/Services/WhatsAppService.ts +1 -0
- package/Server/Services/WorkspaceNotificationLogService.ts +16 -0
- package/Server/Services/WorkspaceNotificationRuleService.ts +116 -0
- package/Server/Types/Database/Permissions/TenantPermission.ts +20 -0
- package/Server/Utils/AI/IncidentEpisodeAIContextBuilder.ts +490 -0
- package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +1 -1
- package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +1 -1
- package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +1 -1
- package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +1 -1
- package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +2 -2
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +182 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +13 -0
- package/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.ts +1 -1
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +37 -0
- package/Server/Utils/PushNotificationUtil.ts +31 -0
- package/Server/Utils/WhatsAppTemplateUtil.ts +14 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +18 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +702 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +20 -0
- package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +11 -0
- package/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.ts +918 -0
- package/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.ts +120 -0
- package/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.ts +74 -0
- package/Types/Email/EmailTemplateType.ts +7 -0
- package/Types/Monitor/CriteriaFilter.ts +24 -4
- package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
- package/Types/Monitor/MonitorStep.ts +37 -0
- package/Types/Monitor/MonitorStepSnmpMonitor.ts +102 -0
- package/Types/Monitor/MonitorType.ts +15 -2
- package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +8 -0
- package/Types/Monitor/SnmpMonitor/SnmpDataType.ts +21 -0
- package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +16 -0
- package/Types/Monitor/SnmpMonitor/SnmpOid.ts +60 -0
- package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +7 -0
- package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +7 -0
- package/Types/Monitor/SnmpMonitor/SnmpV3Auth.ts +12 -0
- package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +7 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
- package/Types/Permission.ts +311 -0
- package/Types/Probe/ProbeMonitorResponse.ts +2 -0
- package/Types/UserNotification/UserNotificationEventType.ts +1 -0
- package/Types/WhatsApp/WhatsAppTemplates.ts +24 -0
- package/Types/Workspace/NotificationRules/EventType.ts +1 -0
- package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +38 -1
- package/Utils/Monitor/MonitorMetricType.ts +2 -1
- package/build/dist/Models/DatabaseModels/Incident.js +78 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1250 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js +555 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js +467 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +607 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js +437 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js +436 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +546 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +1437 -0
- package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +16 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +69 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +58 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +30 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +47 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +58 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -1
- package/build/dist/Server/API/BillingAPI.js +44 -1
- package/build/dist/Server/API/BillingAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js +97 -0
- package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -0
- package/build/dist/Server/API/SlackAPI.js +18 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +30 -10
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
- package/build/dist/Server/BillingConfig.js +2 -0
- package/build/dist/Server/BillingConfig.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +1 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769599843642-MigrationName.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769599843642-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.js +256 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769626069479-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.js +96 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769629928240-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.js +25 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1769676117342-RenameEvaluateOverTimeInCriteriaFilter.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIBillingService.js +10 -1
- package/build/dist/Server/Services/AIBillingService.js.map +1 -1
- package/build/dist/Server/Services/BillingService.js +224 -5
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/CallService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeFeedService.js +83 -0
- package/build/dist/Server/Services/IncidentEpisodeFeedService.js.map +1 -0
- package/build/dist/Server/Services/IncidentEpisodeInternalNoteService.js +70 -0
- package/build/dist/Server/Services/IncidentEpisodeInternalNoteService.js.map +1 -0
- package/build/dist/Server/Services/IncidentEpisodeMemberService.js +298 -0
- package/build/dist/Server/Services/IncidentEpisodeMemberService.js.map +1 -0
- package/build/dist/Server/Services/IncidentEpisodeOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/IncidentEpisodeOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/IncidentEpisodeOwnerUserService.js +9 -0
- package/build/dist/Server/Services/IncidentEpisodeOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/IncidentEpisodeService.js +933 -0
- package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -0
- package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js +498 -0
- package/build/dist/Server/Services/IncidentEpisodeStateTimelineService.js.map +1 -0
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +799 -0
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -0
- package/build/dist/Server/Services/IncidentGroupingRuleService.js +13 -0
- package/build/dist/Server/Services/IncidentGroupingRuleService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +10 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +16 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MailService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +9 -1
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NotificationService.js +10 -1
- package/build/dist/Server/Services/NotificationService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +10 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +48 -2
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +20 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyService.js +8 -0
- package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +16 -3
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/SmsService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +39 -2
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +9 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogService.js +35 -3
- package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +40 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/WhatsAppService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationLogService.js +12 -0
- package/build/dist/Server/Services/WorkspaceNotificationLogService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +95 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js +17 -0
- package/build/dist/Server/Types/Database/Permissions/TenantPermission.js.map +1 -1
- package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js +402 -0
- package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +2 -2
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +135 -0
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +10 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +26 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/PushNotificationUtil.js +20 -0
- package/build/dist/Server/Utils/PushNotificationUtil.js.map +1 -1
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +8 -0
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +17 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +547 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +15 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +10 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js +651 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/IncidentEpisode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.js +100 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.js +70 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/IncidentEpisode.js.map +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js +6 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +16 -3
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +26 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js +77 -0
- package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorType.js +13 -2
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +9 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpDataType.js +22 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpDataType.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpOid.js +55 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpOid.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +8 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +8 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpV3Auth.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpV3Auth.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +8 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +5 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/Permission.js +264 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/UserNotification/UserNotificationEventType.js +1 -0
- package/build/dist/Types/UserNotification/UserNotificationEventType.js.map +1 -1
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +15 -0
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
- package/build/dist/Types/Workspace/NotificationRules/EventType.js +1 -0
- package/build/dist/Types/Workspace/NotificationRules/EventType.js.map +1 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +33 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +2 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,6 +21,8 @@ import Alert from "../../Models/DatabaseModels/Alert";
|
|
|
21
21
|
import AlertService from "./AlertService";
|
|
22
22
|
import AlertEpisode from "../../Models/DatabaseModels/AlertEpisode";
|
|
23
23
|
import AlertEpisodeService from "./AlertEpisodeService";
|
|
24
|
+
import IncidentEpisode from "../../Models/DatabaseModels/IncidentEpisode";
|
|
25
|
+
import IncidentEpisodeService from "./IncidentEpisodeService";
|
|
24
26
|
|
|
25
27
|
export class Service extends DatabaseService<Model> {
|
|
26
28
|
public constructor() {
|
|
@@ -206,6 +208,34 @@ export class Service extends DatabaseService<Model> {
|
|
|
206
208
|
});
|
|
207
209
|
}
|
|
208
210
|
|
|
211
|
+
// get rule count for incident episodes.
|
|
212
|
+
let incidentEpisode: IncidentEpisode | null = null;
|
|
213
|
+
if (createdItem.triggeredByIncidentEpisodeId) {
|
|
214
|
+
incidentEpisode = await IncidentEpisodeService.findOneById({
|
|
215
|
+
id: createdItem.triggeredByIncidentEpisodeId,
|
|
216
|
+
props: {
|
|
217
|
+
isRoot: true,
|
|
218
|
+
},
|
|
219
|
+
select: {
|
|
220
|
+
incidentSeverityId: true,
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
ruleCount = await UserNotificationRuleService.countBy({
|
|
225
|
+
query: {
|
|
226
|
+
userId: createdItem.userId!,
|
|
227
|
+
projectId: createdItem.projectId!,
|
|
228
|
+
ruleType: notificationRuleType,
|
|
229
|
+
incidentSeverityId: incidentEpisode?.incidentSeverityId as ObjectID,
|
|
230
|
+
},
|
|
231
|
+
skip: 0,
|
|
232
|
+
limit: LIMIT_PER_PROJECT,
|
|
233
|
+
props: {
|
|
234
|
+
isRoot: true,
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
|
|
209
239
|
if (ruleCount.toNumber() === 0) {
|
|
210
240
|
// update this item to be processed.
|
|
211
241
|
await this.updateOneById({
|
|
@@ -239,6 +269,7 @@ export class Service extends DatabaseService<Model> {
|
|
|
239
269
|
/*
|
|
240
270
|
* find immediate notification rule and alert the user.
|
|
241
271
|
* Determine the alertSeverityId - can come from alert or alertEpisode
|
|
272
|
+
* Determine the incidentSeverityId - can come from incident or incidentEpisode
|
|
242
273
|
*/
|
|
243
274
|
const alertSeverityIdForQuery: ObjectID | undefined =
|
|
244
275
|
alert && alert.alertSeverityId
|
|
@@ -247,6 +278,13 @@ export class Service extends DatabaseService<Model> {
|
|
|
247
278
|
? (alertEpisode.alertSeverityId as ObjectID)
|
|
248
279
|
: undefined;
|
|
249
280
|
|
|
281
|
+
const incidentSeverityIdForQuery: ObjectID | undefined =
|
|
282
|
+
incident && incident.incidentSeverityId
|
|
283
|
+
? (incident.incidentSeverityId as ObjectID)
|
|
284
|
+
: incidentEpisode && incidentEpisode.incidentSeverityId
|
|
285
|
+
? (incidentEpisode.incidentSeverityId as ObjectID)
|
|
286
|
+
: undefined;
|
|
287
|
+
|
|
250
288
|
const immediateNotificationRule: Array<UserNotificationRule> =
|
|
251
289
|
await UserNotificationRuleService.findBy({
|
|
252
290
|
query: {
|
|
@@ -254,10 +292,7 @@ export class Service extends DatabaseService<Model> {
|
|
|
254
292
|
projectId: createdItem.projectId!,
|
|
255
293
|
notifyAfterMinutes: 0,
|
|
256
294
|
ruleType: notificationRuleType,
|
|
257
|
-
incidentSeverityId:
|
|
258
|
-
incident && incident.incidentSeverityId
|
|
259
|
-
? (incident?.incidentSeverityId as ObjectID)
|
|
260
|
-
: undefined,
|
|
295
|
+
incidentSeverityId: incidentSeverityIdForQuery,
|
|
261
296
|
alertSeverityId: alertSeverityIdForQuery,
|
|
262
297
|
},
|
|
263
298
|
select: {
|
|
@@ -279,6 +314,8 @@ export class Service extends DatabaseService<Model> {
|
|
|
279
314
|
triggeredByIncidentId: createdItem.triggeredByIncidentId,
|
|
280
315
|
triggeredByAlertId: createdItem.triggeredByAlertId,
|
|
281
316
|
triggeredByAlertEpisodeId: createdItem.triggeredByAlertEpisodeId,
|
|
317
|
+
triggeredByIncidentEpisodeId:
|
|
318
|
+
createdItem.triggeredByIncidentEpisodeId,
|
|
282
319
|
userNotificationEventType: createdItem.userNotificationEventType!,
|
|
283
320
|
onCallPolicyExecutionLogId:
|
|
284
321
|
createdItem.onCallDutyPolicyExecutionLogId,
|
|
@@ -3,8 +3,9 @@ import {
|
|
|
3
3
|
IsBillingEnabled,
|
|
4
4
|
NotificationSlackWebhookOnCreateUser,
|
|
5
5
|
} from "../EnvironmentConfig";
|
|
6
|
-
import { OnCreate, OnUpdate } from "../Types/Database/Hooks";
|
|
6
|
+
import { OnCreate, OnDelete, OnUpdate } from "../Types/Database/Hooks";
|
|
7
7
|
import UpdateBy from "../Types/Database/UpdateBy";
|
|
8
|
+
import DeleteBy from "../Types/Database/DeleteBy";
|
|
8
9
|
import logger from "../Utils/Logger";
|
|
9
10
|
import DatabaseService from "./DatabaseService";
|
|
10
11
|
import EmailVerificationTokenService from "./EmailVerificationTokenService";
|
|
@@ -198,6 +199,49 @@ export class Service extends DatabaseService<Model> {
|
|
|
198
199
|
return { updateBy, carryForward: carryForward };
|
|
199
200
|
}
|
|
200
201
|
|
|
202
|
+
@CaptureSpan()
|
|
203
|
+
protected override async onBeforeDelete(
|
|
204
|
+
deleteBy: DeleteBy<Model>,
|
|
205
|
+
): Promise<OnDelete<Model>> {
|
|
206
|
+
// Check if the user is a member of any project
|
|
207
|
+
const users: Array<Model> = await this.findBy({
|
|
208
|
+
query: deleteBy.query,
|
|
209
|
+
select: {
|
|
210
|
+
_id: true,
|
|
211
|
+
},
|
|
212
|
+
props: {
|
|
213
|
+
isRoot: true,
|
|
214
|
+
},
|
|
215
|
+
limit: LIMIT_MAX,
|
|
216
|
+
skip: 0,
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
for (const user of users) {
|
|
220
|
+
const teamMembers: Array<TeamMember> = await TeamMemberService.findBy({
|
|
221
|
+
query: {
|
|
222
|
+
userId: user.id!,
|
|
223
|
+
},
|
|
224
|
+
select: {
|
|
225
|
+
_id: true,
|
|
226
|
+
projectId: true,
|
|
227
|
+
},
|
|
228
|
+
limit: LIMIT_MAX,
|
|
229
|
+
skip: 0,
|
|
230
|
+
props: {
|
|
231
|
+
isRoot: true,
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
if (teamMembers.length > 0) {
|
|
236
|
+
throw new BadDataException(
|
|
237
|
+
"You cannot delete your account because you are a member of one or more projects. Please leave all projects before deleting your account.",
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return { deleteBy, carryForward: null };
|
|
243
|
+
}
|
|
244
|
+
|
|
201
245
|
@CaptureSpan()
|
|
202
246
|
protected override async onUpdateSuccess(
|
|
203
247
|
onUpdate: OnUpdate<Model>,
|
|
@@ -27,6 +27,7 @@ export class WhatsAppService extends BaseService {
|
|
|
27
27
|
incidentId?: ObjectID | undefined;
|
|
28
28
|
alertId?: ObjectID | undefined;
|
|
29
29
|
alertEpisodeId?: ObjectID | undefined;
|
|
30
|
+
incidentEpisodeId?: ObjectID | undefined;
|
|
30
31
|
scheduledMaintenanceId?: ObjectID | undefined;
|
|
31
32
|
statusPageId?: ObjectID | undefined;
|
|
32
33
|
statusPageAnnouncementId?: ObjectID | undefined;
|
|
@@ -21,6 +21,8 @@ export interface WorkspaceLogData {
|
|
|
21
21
|
// Relations to resources (optional)
|
|
22
22
|
incidentId?: ObjectID | undefined;
|
|
23
23
|
alertId?: ObjectID | undefined;
|
|
24
|
+
alertEpisodeId?: ObjectID | undefined;
|
|
25
|
+
incidentEpisodeId?: ObjectID | undefined;
|
|
24
26
|
scheduledMaintenanceId?: ObjectID | undefined;
|
|
25
27
|
userId?: ObjectID | undefined;
|
|
26
28
|
teamId?: ObjectID | undefined;
|
|
@@ -75,6 +77,12 @@ export class Service extends DatabaseService<Model> {
|
|
|
75
77
|
if (data.alertId) {
|
|
76
78
|
log.alertId = data.alertId;
|
|
77
79
|
}
|
|
80
|
+
if (data.alertEpisodeId) {
|
|
81
|
+
log.alertEpisodeId = data.alertEpisodeId;
|
|
82
|
+
}
|
|
83
|
+
if (data.incidentEpisodeId) {
|
|
84
|
+
log.incidentEpisodeId = data.incidentEpisodeId;
|
|
85
|
+
}
|
|
78
86
|
if (data.scheduledMaintenanceId) {
|
|
79
87
|
log.scheduledMaintenanceId = data.scheduledMaintenanceId;
|
|
80
88
|
}
|
|
@@ -221,6 +229,8 @@ export class Service extends DatabaseService<Model> {
|
|
|
221
229
|
// Optional resource associations
|
|
222
230
|
incidentId?: ObjectID;
|
|
223
231
|
alertId?: ObjectID;
|
|
232
|
+
alertEpisodeId?: ObjectID;
|
|
233
|
+
incidentEpisodeId?: ObjectID;
|
|
224
234
|
scheduledMaintenanceId?: ObjectID;
|
|
225
235
|
onCallDutyPolicyId?: ObjectID;
|
|
226
236
|
statusPageId?: ObjectID;
|
|
@@ -256,6 +266,12 @@ export class Service extends DatabaseService<Model> {
|
|
|
256
266
|
if (data.alertId) {
|
|
257
267
|
logData.alertId = data.alertId;
|
|
258
268
|
}
|
|
269
|
+
if (data.alertEpisodeId) {
|
|
270
|
+
logData.alertEpisodeId = data.alertEpisodeId;
|
|
271
|
+
}
|
|
272
|
+
if (data.incidentEpisodeId) {
|
|
273
|
+
logData.incidentEpisodeId = data.incidentEpisodeId;
|
|
274
|
+
}
|
|
259
275
|
if (data.scheduledMaintenanceId) {
|
|
260
276
|
logData.scheduledMaintenanceId = data.scheduledMaintenanceId;
|
|
261
277
|
}
|
|
@@ -50,6 +50,8 @@ import WorkspaceNotificationLogService from "./WorkspaceNotificationLogService";
|
|
|
50
50
|
import WorkspaceNotificationStatus from "../../Types/Workspace/WorkspaceNotificationStatus";
|
|
51
51
|
import WorkspaceNotificationActionType from "../../Types/Workspace/WorkspaceNotificationActionType";
|
|
52
52
|
import ExceptionMessages from "../../Types/Exception/ExceptionMessages";
|
|
53
|
+
import IncidentEpisode from "../../Models/DatabaseModels/IncidentEpisode";
|
|
54
|
+
import IncidentEpisodeService from "./IncidentEpisodeService";
|
|
53
55
|
|
|
54
56
|
export interface MessageBlocksByWorkspaceType {
|
|
55
57
|
workspaceType: WorkspaceType;
|
|
@@ -60,6 +62,7 @@ export interface NotificationFor {
|
|
|
60
62
|
incidentId?: ObjectID | undefined;
|
|
61
63
|
alertId?: ObjectID | undefined;
|
|
62
64
|
alertEpisodeId?: ObjectID | undefined;
|
|
65
|
+
incidentEpisodeId?: ObjectID | undefined;
|
|
63
66
|
scheduledMaintenanceId?: ObjectID | undefined;
|
|
64
67
|
monitorId?: ObjectID | undefined;
|
|
65
68
|
onCallDutyPolicyId?: ObjectID | undefined;
|
|
@@ -749,6 +752,14 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
|
|
|
749
752
|
return NotificationRuleEventType.Incident;
|
|
750
753
|
}
|
|
751
754
|
|
|
755
|
+
if (notificationFor.alertEpisodeId) {
|
|
756
|
+
return NotificationRuleEventType.AlertEpisode;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
if (notificationFor.incidentEpisodeId) {
|
|
760
|
+
return NotificationRuleEventType.IncidentEpisode;
|
|
761
|
+
}
|
|
762
|
+
|
|
752
763
|
if (notificationFor.monitorId) {
|
|
753
764
|
return NotificationRuleEventType.Monitor;
|
|
754
765
|
}
|
|
@@ -1949,6 +1960,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
|
|
|
1949
1960
|
[NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
|
|
1950
1961
|
[NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
|
|
1951
1962
|
[NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
|
|
1963
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
|
|
1964
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
|
|
1965
|
+
undefined,
|
|
1966
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
|
|
1967
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
|
|
1968
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
|
|
1952
1969
|
};
|
|
1953
1970
|
}
|
|
1954
1971
|
|
|
@@ -2031,6 +2048,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
|
|
|
2031
2048
|
[NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
|
|
2032
2049
|
[NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
|
|
2033
2050
|
[NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
|
|
2051
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
|
|
2052
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
|
|
2053
|
+
undefined,
|
|
2054
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
|
|
2055
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
|
|
2056
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
|
|
2034
2057
|
};
|
|
2035
2058
|
}
|
|
2036
2059
|
|
|
@@ -2119,6 +2142,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
|
|
|
2119
2142
|
[NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
|
|
2120
2143
|
[NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
|
|
2121
2144
|
[NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
|
|
2145
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
|
|
2146
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
|
|
2147
|
+
undefined,
|
|
2148
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
|
|
2149
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
|
|
2150
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
|
|
2122
2151
|
};
|
|
2123
2152
|
}
|
|
2124
2153
|
|
|
@@ -2185,6 +2214,12 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
|
|
|
2185
2214
|
[NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
|
|
2186
2215
|
[NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
|
|
2187
2216
|
[NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
|
|
2217
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
|
|
2218
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
|
|
2219
|
+
undefined,
|
|
2220
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
|
|
2221
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
|
|
2222
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
|
|
2188
2223
|
};
|
|
2189
2224
|
}
|
|
2190
2225
|
|
|
@@ -2250,6 +2285,87 @@ export class Service extends DatabaseService<WorkspaceNotificationRule> {
|
|
|
2250
2285
|
[NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
|
|
2251
2286
|
[NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
|
|
2252
2287
|
[NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
|
|
2288
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeTitle]: undefined,
|
|
2289
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
|
|
2290
|
+
undefined,
|
|
2291
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]: undefined,
|
|
2292
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeState]: undefined,
|
|
2293
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeLabels]: undefined,
|
|
2294
|
+
};
|
|
2295
|
+
}
|
|
2296
|
+
|
|
2297
|
+
// Handle Incident Episode
|
|
2298
|
+
if (data.notificationFor.incidentEpisodeId) {
|
|
2299
|
+
logger.debug("Fetching incident episode details for ID:");
|
|
2300
|
+
logger.debug(data.notificationFor.incidentEpisodeId);
|
|
2301
|
+
|
|
2302
|
+
const incidentEpisode: IncidentEpisode | null =
|
|
2303
|
+
await IncidentEpisodeService.findOneById({
|
|
2304
|
+
id: data.notificationFor.incidentEpisodeId,
|
|
2305
|
+
select: {
|
|
2306
|
+
title: true,
|
|
2307
|
+
description: true,
|
|
2308
|
+
incidentSeverity: true,
|
|
2309
|
+
currentIncidentState: true,
|
|
2310
|
+
labels: true,
|
|
2311
|
+
},
|
|
2312
|
+
props: {
|
|
2313
|
+
isRoot: true,
|
|
2314
|
+
},
|
|
2315
|
+
});
|
|
2316
|
+
|
|
2317
|
+
if (!incidentEpisode) {
|
|
2318
|
+
logger.debug("Incident Episode not found for ID:");
|
|
2319
|
+
logger.debug(data.notificationFor.incidentEpisodeId);
|
|
2320
|
+
throw new BadDataException("Incident Episode ID not found");
|
|
2321
|
+
}
|
|
2322
|
+
|
|
2323
|
+
logger.debug("Incident Episode details retrieved:");
|
|
2324
|
+
logger.debug(incidentEpisode);
|
|
2325
|
+
|
|
2326
|
+
return {
|
|
2327
|
+
[NotificationRuleConditionCheckOn.MonitorName]: undefined,
|
|
2328
|
+
[NotificationRuleConditionCheckOn.IncidentTitle]: undefined,
|
|
2329
|
+
[NotificationRuleConditionCheckOn.IncidentDescription]: undefined,
|
|
2330
|
+
[NotificationRuleConditionCheckOn.IncidentSeverity]: undefined,
|
|
2331
|
+
[NotificationRuleConditionCheckOn.IncidentState]: undefined,
|
|
2332
|
+
[NotificationRuleConditionCheckOn.MonitorType]: undefined,
|
|
2333
|
+
[NotificationRuleConditionCheckOn.MonitorStatus]: undefined,
|
|
2334
|
+
[NotificationRuleConditionCheckOn.AlertTitle]: undefined,
|
|
2335
|
+
[NotificationRuleConditionCheckOn.AlertDescription]: undefined,
|
|
2336
|
+
[NotificationRuleConditionCheckOn.AlertSeverity]: undefined,
|
|
2337
|
+
[NotificationRuleConditionCheckOn.AlertState]: undefined,
|
|
2338
|
+
[NotificationRuleConditionCheckOn.ScheduledMaintenanceTitle]: undefined,
|
|
2339
|
+
[NotificationRuleConditionCheckOn.ScheduledMaintenanceDescription]:
|
|
2340
|
+
undefined,
|
|
2341
|
+
[NotificationRuleConditionCheckOn.ScheduledMaintenanceState]: undefined,
|
|
2342
|
+
[NotificationRuleConditionCheckOn.IncidentLabels]: undefined,
|
|
2343
|
+
[NotificationRuleConditionCheckOn.AlertLabels]: undefined,
|
|
2344
|
+
[NotificationRuleConditionCheckOn.MonitorLabels]: undefined,
|
|
2345
|
+
[NotificationRuleConditionCheckOn.ScheduledMaintenanceLabels]:
|
|
2346
|
+
undefined,
|
|
2347
|
+
[NotificationRuleConditionCheckOn.Monitors]: undefined,
|
|
2348
|
+
[NotificationRuleConditionCheckOn.OnCallDutyPolicyName]: undefined,
|
|
2349
|
+
[NotificationRuleConditionCheckOn.OnCallDutyPolicyDescription]:
|
|
2350
|
+
undefined,
|
|
2351
|
+
[NotificationRuleConditionCheckOn.OnCallDutyPolicyLabels]: undefined,
|
|
2352
|
+
[NotificationRuleConditionCheckOn.AlertEpisodeTitle]: undefined,
|
|
2353
|
+
[NotificationRuleConditionCheckOn.AlertEpisodeDescription]: undefined,
|
|
2354
|
+
[NotificationRuleConditionCheckOn.AlertEpisodeSeverity]: undefined,
|
|
2355
|
+
[NotificationRuleConditionCheckOn.AlertEpisodeState]: undefined,
|
|
2356
|
+
[NotificationRuleConditionCheckOn.AlertEpisodeLabels]: undefined,
|
|
2357
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeTitle]:
|
|
2358
|
+
incidentEpisode.title || "",
|
|
2359
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeDescription]:
|
|
2360
|
+
incidentEpisode.description || "",
|
|
2361
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeSeverity]:
|
|
2362
|
+
incidentEpisode.incidentSeverity?._id?.toString() || "",
|
|
2363
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeState]:
|
|
2364
|
+
incidentEpisode.currentIncidentState?._id?.toString() || "",
|
|
2365
|
+
[NotificationRuleConditionCheckOn.IncidentEpisodeLabels]:
|
|
2366
|
+
incidentEpisode.labels?.map((label: Label) => {
|
|
2367
|
+
return label._id?.toString() || "";
|
|
2368
|
+
}) || [],
|
|
2253
2369
|
};
|
|
2254
2370
|
}
|
|
2255
2371
|
|
|
@@ -3,6 +3,7 @@ import Query from "../Query";
|
|
|
3
3
|
import Select from "../Select";
|
|
4
4
|
import BasePermission, { CheckPermissionBaseInterface } from "./BasePermission";
|
|
5
5
|
import BaseModel from "../../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
6
|
+
import Includes from "../../../../Types/BaseDatabase/Includes";
|
|
6
7
|
import DatabaseCommonInteractionProps from "../../../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
7
8
|
import BadDataException from "../../../../Types/Exception/BadDataException";
|
|
8
9
|
import NotAuthorizedException from "../../../../Types/Exception/NotAuthorizedException";
|
|
@@ -61,6 +62,25 @@ export default class TenantPermission {
|
|
|
61
62
|
projectIDs = props.userGlobalAccessPermission?.projectIds;
|
|
62
63
|
}
|
|
63
64
|
|
|
65
|
+
/*
|
|
66
|
+
* Check if the query already has a filter on the tenant column (e.g., projectId filter)
|
|
67
|
+
* If so, only iterate through projects that match both the filter AND user's permissions
|
|
68
|
+
*/
|
|
69
|
+
const existingTenantFilter: unknown = (query as any)[tenantColumn];
|
|
70
|
+
if (existingTenantFilter && existingTenantFilter instanceof Includes) {
|
|
71
|
+
const filterValues: Array<string> = (
|
|
72
|
+
existingTenantFilter as Includes
|
|
73
|
+
).values.map((v: string | ObjectID | number) => {
|
|
74
|
+
return v.toString();
|
|
75
|
+
});
|
|
76
|
+
// Filter projectIDs to only include those that are in the filter
|
|
77
|
+
projectIDs = projectIDs.filter((pid: ObjectID) => {
|
|
78
|
+
return filterValues.includes(pid.toString());
|
|
79
|
+
});
|
|
80
|
+
// Remove the tenant filter from query since we're handling it via projectIDs iteration
|
|
81
|
+
delete (query as any)[tenantColumn];
|
|
82
|
+
}
|
|
83
|
+
|
|
64
84
|
let lastException: Error | null = null;
|
|
65
85
|
|
|
66
86
|
for (const projectId of projectIDs) {
|