@oneuptime/common 11.3.26 → 11.3.28
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/IncidentEpisodeRoleMember.ts +1 -1
- package/Models/DatabaseModels/IncidentMember.ts +1 -1
- package/Models/DatabaseModels/IncomingCallPolicy.ts +13 -0
- package/Models/DatabaseModels/Index.ts +3 -0
- package/Models/DatabaseModels/MigrationFailure.ts +170 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +51 -2
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +44 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.ts +6 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.ts +6 -0
- package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +1 -1
- package/Models/DatabaseModels/OnCallDutyPolicyUserOverride.ts +2 -2
- package/Server/API/AlertAPI.ts +1 -1
- package/Server/API/IncidentAPI.ts +2 -2
- package/Server/API/IncidentEpisodeAPI.ts +1 -1
- package/Server/API/LlmProviderAPI.ts +1 -0
- package/Server/API/ScheduledMaintenanceAPI.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783470000000-AddIncomingCallPolicyRoutingPhoneNumberUnique.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783510935686-FixNotNullForeignKeysOnDelete.ts +81 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783515836148-MigrationName.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783523076215-AddMigrationFailureTable.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Infrastructure/PostgresDatabase.ts +11 -0
- package/Server/Services/AIService.ts +74 -2
- package/Server/Services/AnalyticsDatabaseService.ts +10 -1
- package/Server/Services/DatabaseService.ts +10 -1
- package/Server/Services/IncidentService.ts +1 -1
- package/Server/Services/IncomingCallPolicyEscalationRuleService.ts +75 -2
- package/Server/Services/IncomingCallPolicyService.ts +42 -1
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/MigrationFailureService.ts +9 -0
- package/Server/Services/MonitorProbeService.ts +33 -7
- package/Server/Services/MonitorService.ts +19 -7
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +65 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +185 -41
- package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +23 -15
- package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +39 -0
- package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +148 -0
- package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +11 -2
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +502 -26
- package/Server/Services/OnCallDutyPolicyTimeLogService.ts +49 -7
- package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +218 -4
- package/Server/Services/ProjectCallSMSConfigService.ts +82 -1
- package/Server/Services/TeamMemberService.ts +6 -0
- package/Server/Services/UserNotificationRuleService.ts +13 -42
- package/Server/Services/UserOnCallLogService.ts +90 -0
- package/Server/Services/UserOnCallLogTimelineService.ts +43 -1
- package/Server/Types/Database/QueryUtil.ts +57 -0
- package/Server/Utils/AI/AlertAIContextBuilder.ts +6 -1
- package/Server/Utils/AI/Chat/ChatAgentRunner.ts +14 -2
- package/Server/Utils/AI/IncidentAIContextBuilder.ts +18 -3
- package/Server/Utils/AI/IncidentEpisodeAIContextBuilder.ts +6 -1
- package/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.ts +12 -2
- package/Server/Utils/AI/Toolbox/IncidentTools.ts +183 -1
- package/Server/Utils/AI/Toolbox/Index.ts +4 -1
- package/Server/Utils/AI/Toolbox/RecentChangesTools.ts +208 -0
- package/Server/Utils/AI/Toolbox/Serializer.ts +42 -0
- package/Server/Utils/Database/MigrationFailureLog.ts +240 -0
- package/Server/Utils/IncomingCallPhoneNumber.ts +41 -0
- package/Server/Utils/LLM/LLMService.ts +110 -11
- package/Server/Utils/Telemetry/IoTSnapshotScan.ts +12 -9
- package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +12 -9
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +0 -8
- package/Tests/Server/Services/OnCallDutyPolicyScheduleLayerUserReorder.test.ts +233 -0
- package/Tests/Server/Services/OnCallDutyPolicyTimeLogServiceScoping.test.ts +242 -0
- package/Tests/Server/Services/OnCallDutyPolicyUserOverrideEdit.test.ts +198 -0
- package/Tests/Server/Services/UserOnCallLogClaimNotificationRule.test.ts +495 -0
- package/Tests/Server/Types/Database/QueryUtil.test.ts +74 -0
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +78 -0
- package/Tests/Server/Utils/AI/ToolResultSerializer.test.ts +68 -0
- package/Tests/Types/DateExhaustiveTimezone.test.ts +700 -0
- package/Tests/Types/DateTimezoneWallClock.test.ts +99 -0
- package/Tests/Types/Events/Recurring.test.ts +22 -9
- package/Tests/Types/OnCallDutyPolicy/LayerUtilAuditFixes.test.ts +291 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilAuditFixesRound2.test.ts +398 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilDSTWeekendGap.test.ts +114 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilDSTWeeklyDayShift.test.ts +76 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilDailyMutation.test.ts +128 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilDailyProbe.test.ts +203 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilDiffFuzz.test.ts +322 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilEdgeCases.test.ts +280 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveCurrentUser.test.ts +863 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveDaily.test.ts +900 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveMultiLayer.test.ts +1104 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveRotation.test.ts +957 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveWeekly.test.ts +1095 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilInvariants.test.ts +232 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilMergeAudit.test.ts +227 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilMonthYearAudit.test.ts +255 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilMultiLayerAudit.test.ts +388 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilMultiLayerEdge.test.ts +300 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilOvernightDSTAudit.test.ts +158 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilRestrictedGapFix.test.ts +253 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilRestrictedGapRepro.test.ts +157 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilRotationFixes.test.ts +414 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilTimezone.test.ts +243 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilWeekendGapRepro.test.ts +112 -0
- package/Tests/Types/OnCallDutyPolicy/OverrideLensAudit.test.ts +117 -0
- package/Tests/Types/OnCallDutyPolicy/RestrictionTimes.test.ts +8 -6
- package/Tests/Types/OnCallDutyPolicy/RestrictionTimesDefaultDayAudit.test.ts +112 -0
- package/Tests/Types/OnCallDutyPolicy/RestrictionTimesExhaustive.test.ts +821 -0
- package/Tests/Types/OnCallDutyPolicy/RestrictionTimesMutationInvariant.test.ts +886 -0
- package/Tests/Types/OnCallDutyPolicy/UserOverrideUtil.test.ts +255 -0
- package/Tests/Types/OnCallDutyPolicy/UserOverrideUtilExhaustive.test.ts +1126 -0
- package/Types/Date.ts +200 -15
- package/Types/OnCallDutyPolicy/Layer.ts +790 -260
- package/Types/OnCallDutyPolicy/RestrictionTimes.ts +39 -13
- package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +21 -5
- package/UI/Components/Events/RecurringFieldElement.tsx +16 -0
- package/UI/Components/ModelFormModal/ModelFormModal.tsx +8 -0
- package/UI/Components/RadioButtons/BasicRadioButtons.tsx +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeRoleMember.js +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeRoleMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentMember.js +1 -1
- package/build/dist/Models/DatabaseModels/IncidentMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js +10 -0
- package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MigrationFailure.js +196 -0
- package/build/dist/Models/DatabaseModels/MigrationFailure.js.map +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +52 -2
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +45 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js +6 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js +6 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js +2 -2
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js.map +1 -1
- package/build/dist/Server/API/AlertAPI.js +1 -1
- package/build/dist/Server/API/IncidentAPI.js +2 -2
- package/build/dist/Server/API/IncidentEpisodeAPI.js +1 -1
- package/build/dist/Server/API/LlmProviderAPI.js +1 -0
- package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783470000000-AddIncomingCallPolicyRoutingPhoneNumberUnique.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783470000000-AddIncomingCallPolicyRoutingPhoneNumberUnique.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783510935686-FixNotNullForeignKeysOnDelete.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783510935686-FixNotNullForeignKeysOnDelete.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783515836148-MigrationName.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783515836148-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783523076215-AddMigrationFailureTable.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783523076215-AddMigrationFailureTable.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/Infrastructure/PostgresDatabase.js +9 -0
- package/build/dist/Server/Infrastructure/PostgresDatabase.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +53 -2
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +10 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +10 -1
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyEscalationRuleService.js +55 -2
- package/build/dist/Server/Services/IncomingCallPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyService.js +40 -0
- package/build/dist/Server/Services/IncomingCallPolicyService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MigrationFailureService.js +9 -0
- package/build/dist/Server/Services/MigrationFailureService.js.map +1 -0
- package/build/dist/Server/Services/MonitorProbeService.js +33 -7
- package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +12 -5
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +81 -22
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +134 -31
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +21 -13
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +36 -0
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +121 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +11 -2
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +409 -36
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyTimeLogService.js +52 -8
- package/build/dist/Server/Services/OnCallDutyPolicyTimeLogService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +170 -3
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
- package/build/dist/Server/Services/ProjectCallSMSConfigService.js +72 -0
- package/build/dist/Server/Services/ProjectCallSMSConfigService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +6 -0
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +12 -30
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogService.js +75 -0
- package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogTimelineService.js +31 -1
- package/build/dist/Server/Services/UserOnCallLogTimelineService.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryUtil.js +45 -0
- package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
- package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js +6 -1
- package/build/dist/Server/Utils/AI/AlertAIContextBuilder.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +13 -2
- package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js +18 -3
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -1
- package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js +6 -1
- package/build/dist/Server/Utils/AI/IncidentEpisodeAIContextBuilder.js.map +1 -1
- package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js +12 -2
- package/build/dist/Server/Utils/AI/ScheduledMaintenanceAIContextBuilder.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js +152 -1
- package/build/dist/Server/Utils/AI/Toolbox/IncidentTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +4 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/RecentChangesTools.js +165 -0
- package/build/dist/Server/Utils/AI/Toolbox/RecentChangesTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Serializer.js +40 -0
- package/build/dist/Server/Utils/AI/Toolbox/Serializer.js.map +1 -1
- package/build/dist/Server/Utils/Database/MigrationFailureLog.js +174 -0
- package/build/dist/Server/Utils/Database/MigrationFailureLog.js.map +1 -0
- package/build/dist/Server/Utils/IncomingCallPhoneNumber.js +30 -0
- package/build/dist/Server/Utils/IncomingCallPhoneNumber.js.map +1 -0
- package/build/dist/Server/Utils/LLM/LLMService.js +81 -5
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js +11 -8
- package/build/dist/Server/Utils/Telemetry/IoTSnapshotScan.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +11 -8
- package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -1
- package/build/dist/Types/Date.js +153 -15
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +602 -171
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js +27 -13
- package/build/dist/Types/OnCallDutyPolicy/RestrictionTimes.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +20 -5
- package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
- package/build/dist/UI/Components/Events/RecurringFieldElement.js +13 -0
- package/build/dist/UI/Components/Events/RecurringFieldElement.js.map +1 -1
- package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js.map +1 -1
- package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js +1 -1
- package/build/dist/UI/Components/RadioButtons/BasicRadioButtons.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,12 +12,15 @@ import { OnCallDutyPolicyFeedEventType } from "../../Models/DatabaseModels/OnCal
|
|
|
12
12
|
import { Gray500, Red500 } from "../../Types/BrandColors";
|
|
13
13
|
import PushNotificationUtil from "../Utils/PushNotificationUtil";
|
|
14
14
|
import { createWhatsAppMessageFromTemplate } from "../Utils/WhatsAppTemplateUtil";
|
|
15
|
+
import OnCallDutyPolicyTimeLogService from "./OnCallDutyPolicyTimeLogService";
|
|
16
|
+
import OneUptimeDate from "../../Types/Date";
|
|
17
|
+
import logger from "../Utils/Logger";
|
|
15
18
|
export class Service extends DatabaseService {
|
|
16
19
|
constructor() {
|
|
17
20
|
super(Model);
|
|
18
21
|
}
|
|
19
22
|
async onCreateSuccess(_onCreate, createdItem) {
|
|
20
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
23
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
21
24
|
const createdItemId = createdItem.id;
|
|
22
25
|
if (!createdItemId) {
|
|
23
26
|
throw new BadDataException("Created item does not have an ID");
|
|
@@ -58,7 +61,37 @@ export class Service extends DatabaseService {
|
|
|
58
61
|
if (!userOnSchedule) {
|
|
59
62
|
return createdItem;
|
|
60
63
|
}
|
|
61
|
-
|
|
64
|
+
/*
|
|
65
|
+
* Open the roster user's on-call time log for this schedule/rule/policy.
|
|
66
|
+
* Mirrors onDeleteSuccess's endTimeLogForUser (detaching a schedule closes
|
|
67
|
+
* the log, so attaching must open it). Without this, attaching a schedule
|
|
68
|
+
* whose roster user is ALREADY established never opened a log — the roster
|
|
69
|
+
* refresh only opens one when the current user CHANGES — so the whole stint
|
|
70
|
+
* went unrecorded in on-call reporting and the later detach's
|
|
71
|
+
* endTimeLogForUser was a no-op (audit M1). startTimeLogForUser is idempotent
|
|
72
|
+
* (open-log dedup), so a later natural handoff re-opening the same log is a
|
|
73
|
+
* no-op.
|
|
74
|
+
*/
|
|
75
|
+
if (((_b = createdModel.onCallDutyPolicy) === null || _b === void 0 ? void 0 : _b.id) &&
|
|
76
|
+
((_c = createdModel.onCallDutyPolicyEscalationRule) === null || _c === void 0 ? void 0 : _c.id) &&
|
|
77
|
+
createdModel.projectId &&
|
|
78
|
+
createdModel.onCallDutyPolicyScheduleId) {
|
|
79
|
+
OnCallDutyPolicyTimeLogService.startTimeLogForUser({
|
|
80
|
+
projectId: createdModel.projectId,
|
|
81
|
+
onCallDutyPolicyId: createdModel.onCallDutyPolicy.id,
|
|
82
|
+
onCallDutyPolicyEscalationRuleId: createdModel.onCallDutyPolicyEscalationRule.id,
|
|
83
|
+
userId: userOnSchedule,
|
|
84
|
+
onCallDutyPolicyScheduleId: createdModel.onCallDutyPolicyScheduleId,
|
|
85
|
+
startsAt: OneUptimeDate.getCurrentDate(),
|
|
86
|
+
}).catch((error) => {
|
|
87
|
+
var _a;
|
|
88
|
+
logger.error(error, {
|
|
89
|
+
projectId: (_a = createdModel.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
90
|
+
userId: userOnSchedule === null || userOnSchedule === void 0 ? void 0 : userOnSchedule.toString(),
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
const scheduleName = ((_d = createdModel.onCallDutyPolicySchedule) === null || _d === void 0 ? void 0 : _d.name) || "No name provided";
|
|
62
95
|
const sendEmailToUserId = userOnSchedule;
|
|
63
96
|
if (!sendEmailToUserId) {
|
|
64
97
|
return createdItem;
|
|
@@ -67,9 +100,9 @@ export class Service extends DatabaseService {
|
|
|
67
100
|
return createdItem;
|
|
68
101
|
}
|
|
69
102
|
const vars = {
|
|
70
|
-
onCallPolicyName: ((
|
|
71
|
-
escalationRuleName: ((
|
|
72
|
-
escalationRuleOrder: ((
|
|
103
|
+
onCallPolicyName: ((_e = createdModel.onCallDutyPolicy) === null || _e === void 0 ? void 0 : _e.name) || "No name provided",
|
|
104
|
+
escalationRuleName: ((_f = createdModel.onCallDutyPolicyEscalationRule) === null || _f === void 0 ? void 0 : _f.name) || "No name provided",
|
|
105
|
+
escalationRuleOrder: ((_h = (_g = createdModel.onCallDutyPolicyEscalationRule) === null || _g === void 0 ? void 0 : _g.order) === null || _h === void 0 ? void 0 : _h.toString()) ||
|
|
73
106
|
"No order provided",
|
|
74
107
|
reason: "You are currently on roster for schedule " + scheduleName,
|
|
75
108
|
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(createdModel.projectId, createdModel.onCallDutyPolicy.id)).toString(),
|
|
@@ -78,26 +111,26 @@ export class Service extends DatabaseService {
|
|
|
78
111
|
const emailMessage = {
|
|
79
112
|
templateType: EmailTemplateType.UserAddedToOnCallPolicy,
|
|
80
113
|
vars: vars,
|
|
81
|
-
subject: `You have been added to the on-call duty policy ${(
|
|
114
|
+
subject: `You have been added to the on-call duty policy ${(_j = createdModel.onCallDutyPolicy) === null || _j === void 0 ? void 0 : _j.name} for schedule ${scheduleName}`,
|
|
82
115
|
};
|
|
83
116
|
const sms = {
|
|
84
|
-
message: `This is a message from OneUptime. You have been added to the on-call duty policy ${(
|
|
117
|
+
message: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_k = createdModel.onCallDutyPolicy) === null || _k === void 0 ? void 0 : _k.name} for schedule ${scheduleName} and escalation rule ${(_l = createdModel.onCallDutyPolicyEscalationRule) === null || _l === void 0 ? void 0 : _l.name} with order ${(_m = createdModel.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.order}. To unsubscribe from this notification, go to User Settings in the OneUptime Dashboard.`,
|
|
85
118
|
};
|
|
86
119
|
const callMessage = {
|
|
87
120
|
data: [
|
|
88
121
|
{
|
|
89
|
-
sayMessage: `This is a message from OneUptime. You have been added to the on-call duty policy ${(
|
|
122
|
+
sayMessage: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_o = createdModel.onCallDutyPolicy) === null || _o === void 0 ? void 0 : _o.name} for schedule ${scheduleName} and escalation rule ${(_p = createdModel.onCallDutyPolicyEscalationRule) === null || _p === void 0 ? void 0 : _p.name} with order ${(_q = createdModel.onCallDutyPolicyEscalationRule) === null || _q === void 0 ? void 0 : _q.order}. To unsubscribe from this notification, go to User Settings in the OneUptime Dashboard. Goodbye.`,
|
|
90
123
|
},
|
|
91
124
|
],
|
|
92
125
|
};
|
|
93
126
|
const pushMessage = PushNotificationUtil.createOnCallPolicyAddedNotification({
|
|
94
|
-
policyName: ((
|
|
127
|
+
policyName: ((_r = createdModel.onCallDutyPolicy) === null || _r === void 0 ? void 0 : _r.name) || "No name provided",
|
|
95
128
|
});
|
|
96
129
|
const eventType = NotificationSettingEventType.SEND_WHEN_USER_IS_ADDED_TO_ON_CALL_POLICY;
|
|
97
130
|
const whatsAppMessage = createWhatsAppMessageFromTemplate({
|
|
98
131
|
eventType,
|
|
99
132
|
templateVariables: {
|
|
100
|
-
on_call_policy_name: ((
|
|
133
|
+
on_call_policy_name: ((_s = createdModel.onCallDutyPolicy) === null || _s === void 0 ? void 0 : _s.name) || "No name provided",
|
|
101
134
|
schedule_name: scheduleName,
|
|
102
135
|
on_call_context: `schedule ${scheduleName}`,
|
|
103
136
|
policy_link: vars["onCallPolicyViewLink"] || "",
|
|
@@ -118,14 +151,14 @@ export class Service extends DatabaseService {
|
|
|
118
151
|
const projectId = createdModel.projectId;
|
|
119
152
|
const createdByUserId = createdModel.createdByUserId;
|
|
120
153
|
const onCallSchedule = createdModel.onCallDutyPolicySchedule;
|
|
121
|
-
const onCallDutyPolicyName = ((
|
|
154
|
+
const onCallDutyPolicyName = ((_t = createdModel.onCallDutyPolicy) === null || _t === void 0 ? void 0 : _t.name) || "";
|
|
122
155
|
if (onCallDutyPolicyId) {
|
|
123
156
|
await OnCallDutyPolicyFeedService.createOnCallDutyPolicyFeedItem({
|
|
124
157
|
onCallDutyPolicyId: onCallDutyPolicyId,
|
|
125
158
|
projectId: projectId,
|
|
126
159
|
onCallDutyPolicyFeedEventType: OnCallDutyPolicyFeedEventType.OnCallDutyScheduleAdded,
|
|
127
160
|
displayColor: Gray500,
|
|
128
|
-
feedInfoInMarkdown: `📅 Added on-call schedule **${(onCallSchedule === null || onCallSchedule === void 0 ? void 0 : onCallSchedule.name) || ""}** from the [On-Call Policy ${onCallDutyPolicyName}](${(await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(projectId, onCallDutyPolicyId)).toString()}) escalation rule **${(
|
|
161
|
+
feedInfoInMarkdown: `📅 Added on-call schedule **${(onCallSchedule === null || onCallSchedule === void 0 ? void 0 : onCallSchedule.name) || ""}** from the [On-Call Policy ${onCallDutyPolicyName}](${(await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(projectId, onCallDutyPolicyId)).toString()}) escalation rule **${(_u = createdModel.onCallDutyPolicyEscalationRule) === null || _u === void 0 ? void 0 : _u.name}** with order **${(_v = createdModel.onCallDutyPolicyEscalationRule) === null || _v === void 0 ? void 0 : _v.order}**.`,
|
|
129
162
|
userId: createdByUserId || undefined,
|
|
130
163
|
workspaceNotification: {
|
|
131
164
|
sendWorkspaceNotification: true,
|
|
@@ -194,7 +227,7 @@ export class Service extends DatabaseService {
|
|
|
194
227
|
};
|
|
195
228
|
}
|
|
196
229
|
async onDeleteSuccess(onDelete, _itemIdsBeforeDelete) {
|
|
197
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
230
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
198
231
|
const deletedItems = onDelete.carryForward.deletedItems;
|
|
199
232
|
for (const deletedItem of deletedItems) {
|
|
200
233
|
const userOnSchedule = await OnCallDutyPolicyScheduleService.getCurrentUserIdInSchedule(deletedItem.onCallDutyPolicyScheduleId, {
|
|
@@ -203,16 +236,42 @@ export class Service extends DatabaseService {
|
|
|
203
236
|
if (!userOnSchedule) {
|
|
204
237
|
continue;
|
|
205
238
|
}
|
|
239
|
+
/*
|
|
240
|
+
* Close the roster user's open on-call time log for this schedule/rule/
|
|
241
|
+
* policy. Roster handoffs open a time log keyed by schedule + rule + policy
|
|
242
|
+
* (OnCallDutyPolicyScheduleService.startTimeLogForUser); the user-link and
|
|
243
|
+
* team-link delete handlers close theirs, but detaching a SCHEDULE from the
|
|
244
|
+
* rule left the log open forever, so the roster user kept showing as
|
|
245
|
+
* on-call in reporting (audit F18).
|
|
246
|
+
*/
|
|
247
|
+
if (((_b = deletedItem.onCallDutyPolicy) === null || _b === void 0 ? void 0 : _b.id) &&
|
|
248
|
+
((_c = deletedItem.onCallDutyPolicyEscalationRule) === null || _c === void 0 ? void 0 : _c.id) &&
|
|
249
|
+
deletedItem.projectId) {
|
|
250
|
+
OnCallDutyPolicyTimeLogService.endTimeLogForUser({
|
|
251
|
+
projectId: deletedItem.projectId,
|
|
252
|
+
onCallDutyPolicyId: deletedItem.onCallDutyPolicy.id,
|
|
253
|
+
onCallDutyPolicyEscalationRuleId: deletedItem.onCallDutyPolicyEscalationRule.id,
|
|
254
|
+
userId: userOnSchedule,
|
|
255
|
+
onCallDutyPolicyScheduleId: deletedItem.onCallDutyPolicyScheduleId,
|
|
256
|
+
endsAt: OneUptimeDate.getCurrentDate(),
|
|
257
|
+
}).catch((error) => {
|
|
258
|
+
var _a;
|
|
259
|
+
logger.error(error, {
|
|
260
|
+
projectId: (_a = deletedItem.projectId) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
261
|
+
userId: userOnSchedule === null || userOnSchedule === void 0 ? void 0 : userOnSchedule.toString(),
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
}
|
|
206
265
|
const sendEmailToUserId = userOnSchedule;
|
|
207
266
|
if (!sendEmailToUserId) {
|
|
208
267
|
return onDelete;
|
|
209
268
|
}
|
|
210
|
-
const scheduleName = ((
|
|
269
|
+
const scheduleName = ((_d = deletedItem.onCallDutyPolicySchedule) === null || _d === void 0 ? void 0 : _d.name) || "No name provided";
|
|
211
270
|
const vars = {
|
|
212
|
-
onCallPolicyName: ((
|
|
213
|
-
escalationRuleName: ((
|
|
271
|
+
onCallPolicyName: ((_e = deletedItem.onCallDutyPolicy) === null || _e === void 0 ? void 0 : _e.name) || "No name provided",
|
|
272
|
+
escalationRuleName: ((_f = deletedItem.onCallDutyPolicyEscalationRule) === null || _f === void 0 ? void 0 : _f.name) ||
|
|
214
273
|
"No name provided",
|
|
215
|
-
escalationRuleOrder: ((
|
|
274
|
+
escalationRuleOrder: ((_h = (_g = deletedItem.onCallDutyPolicyEscalationRule) === null || _g === void 0 ? void 0 : _g.order) === null || _h === void 0 ? void 0 : _h.toString()) ||
|
|
216
275
|
"No order provided",
|
|
217
276
|
reason: `You have been removed from the on-call duty policy escalation rule for schedule ${scheduleName}.`,
|
|
218
277
|
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallDutyPolicyLinkInDashboard(deletedItem.projectId, deletedItem.onCallDutyPolicy.id)).toString(),
|
|
@@ -221,26 +280,26 @@ export class Service extends DatabaseService {
|
|
|
221
280
|
const emailMessage = {
|
|
222
281
|
templateType: EmailTemplateType.UserRemovedFromOnCallPolicy,
|
|
223
282
|
vars: vars,
|
|
224
|
-
subject: `You have been removed from the on-call duty policy ${(
|
|
283
|
+
subject: `You have been removed from the on-call duty policy ${(_j = deletedItem.onCallDutyPolicy) === null || _j === void 0 ? void 0 : _j.name} for schedule ${scheduleName}`,
|
|
225
284
|
};
|
|
226
285
|
const sms = {
|
|
227
|
-
message: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(
|
|
286
|
+
message: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_k = deletedItem.onCallDutyPolicy) === null || _k === void 0 ? void 0 : _k.name} for schedule ${scheduleName} and escalation rule ${(_l = deletedItem.onCallDutyPolicyEscalationRule) === null || _l === void 0 ? void 0 : _l.name} with order ${(_m = deletedItem.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
|
|
228
287
|
};
|
|
229
288
|
const callMessage = {
|
|
230
289
|
data: [
|
|
231
290
|
{
|
|
232
|
-
sayMessage: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(
|
|
291
|
+
sayMessage: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_o = deletedItem.onCallDutyPolicy) === null || _o === void 0 ? void 0 : _o.name} for schedule ${scheduleName} and escalation rule ${(_p = deletedItem.onCallDutyPolicyEscalationRule) === null || _p === void 0 ? void 0 : _p.name} with order ${(_q = deletedItem.onCallDutyPolicyEscalationRule) === null || _q === void 0 ? void 0 : _q.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good Bye`,
|
|
233
292
|
},
|
|
234
293
|
],
|
|
235
294
|
};
|
|
236
295
|
const pushMessage = PushNotificationUtil.createOnCallPolicyRemovedNotification({
|
|
237
|
-
policyName: ((
|
|
296
|
+
policyName: ((_r = deletedItem.onCallDutyPolicy) === null || _r === void 0 ? void 0 : _r.name) || "No name provided",
|
|
238
297
|
});
|
|
239
298
|
const eventType = NotificationSettingEventType.SEND_WHEN_USER_IS_REMOVED_FROM_ON_CALL_POLICY;
|
|
240
299
|
const whatsAppMessage = createWhatsAppMessageFromTemplate({
|
|
241
300
|
eventType,
|
|
242
301
|
templateVariables: {
|
|
243
|
-
on_call_policy_name: ((
|
|
302
|
+
on_call_policy_name: ((_s = deletedItem.onCallDutyPolicy) === null || _s === void 0 ? void 0 : _s.name) || "No name provided",
|
|
244
303
|
schedule_name: scheduleName,
|
|
245
304
|
on_call_context: `schedule ${scheduleName}`,
|
|
246
305
|
policy_link: vars["onCallPolicyViewLink"] || "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnCallDutyPolicyEscalationRuleScheduleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAGtE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,oEAAoE,CAAC;AAEvF,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,iBAAiB,MAAM,qCAAqC,CAAC;AAGpE,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,4BAA4B,MAAM,8DAA8D,CAAC;AAGxG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAEhF,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,oBAAoB,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"OnCallDutyPolicyEscalationRuleScheduleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts"],"names":[],"mappings":"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"}
|
|
@@ -220,18 +220,41 @@ export class Service extends DatabaseService {
|
|
|
220
220
|
projectId: options.projectId.toString(),
|
|
221
221
|
onCallDutyPolicyEscalationRuleId: ruleId.toString(),
|
|
222
222
|
});
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
223
|
+
/*
|
|
224
|
+
* Resolve the FINAL alert recipient for a target, applying a user override
|
|
225
|
+
* (getRouteAlertToUserId) exactly ONCE per paging decision.
|
|
226
|
+
*
|
|
227
|
+
* Schedule targets are already override-resolved: getCurrentUserIdInSchedule
|
|
228
|
+
* applies overrides via UserOverrideUtil. Applying getRouteAlertToUserId to
|
|
229
|
+
* them again re-substituted an already-substituted user (transitive), so the
|
|
230
|
+
* schedule paging path could page a different person than the roster,
|
|
231
|
+
* dashboard, handoff notification, and a rule that lists the same user
|
|
232
|
+
* directly — all of which apply overrides only once (audit F5). So team and
|
|
233
|
+
* direct-user targets (the RAW roster user) get the single override hop here;
|
|
234
|
+
* schedule targets do not.
|
|
235
|
+
*/
|
|
236
|
+
const resolveAlertRecipientUserId = async (userId, isFromSchedule) => {
|
|
237
|
+
if (isFromSchedule) {
|
|
238
|
+
return userId;
|
|
239
|
+
}
|
|
227
240
|
if (options.onCallPolicyId) {
|
|
228
|
-
routeAlertToUserId = await this.getRouteAlertToUserId({
|
|
241
|
+
const routeAlertToUserId = await this.getRouteAlertToUserId({
|
|
229
242
|
userId,
|
|
230
243
|
onCallDutyPolicyId: options.onCallPolicyId,
|
|
231
244
|
projectId: options.projectId,
|
|
232
245
|
});
|
|
246
|
+
if (routeAlertToUserId) {
|
|
247
|
+
return routeAlertToUserId;
|
|
248
|
+
}
|
|
233
249
|
}
|
|
234
|
-
|
|
250
|
+
return userId;
|
|
251
|
+
};
|
|
252
|
+
const startUserNotificationRuleExecution = async (originalUserId, alertSentToUserId, teamId, scheduleId) => {
|
|
253
|
+
/*
|
|
254
|
+
* This is where user is notified. alertSentToUserId is already resolved
|
|
255
|
+
* (override applied at most once by resolveAlertRecipientUserId).
|
|
256
|
+
*/
|
|
257
|
+
const wasOverridden = alertSentToUserId.toString() !== originalUserId.toString();
|
|
235
258
|
logger.debug(`Starting notification rule execution for userId: ${alertSentToUserId.toString()}`, {
|
|
236
259
|
projectId: options.projectId.toString(),
|
|
237
260
|
onCallDutyPolicyEscalationRuleId: ruleId.toString(),
|
|
@@ -241,8 +264,8 @@ export class Service extends DatabaseService {
|
|
|
241
264
|
log.statusMessage = "Sending notification to user.";
|
|
242
265
|
log.status = OnCallDutyExecutionLogTimelineStatus.Executing;
|
|
243
266
|
log.alertSentToUserId = alertSentToUserId;
|
|
244
|
-
if (
|
|
245
|
-
log.overridedByUserId =
|
|
267
|
+
if (wasOverridden) {
|
|
268
|
+
log.overridedByUserId = originalUserId;
|
|
246
269
|
}
|
|
247
270
|
if (teamId) {
|
|
248
271
|
log.userBelongsToTeamId = teamId;
|
|
@@ -269,26 +292,43 @@ export class Service extends DatabaseService {
|
|
|
269
292
|
onCallDutyPolicyExecutionLogTimelineId: log.id,
|
|
270
293
|
projectId: options.projectId,
|
|
271
294
|
onCallScheduleId: scheduleId || undefined,
|
|
272
|
-
overridedByUserId:
|
|
295
|
+
overridedByUserId: wasOverridden ? originalUserId : undefined,
|
|
273
296
|
});
|
|
274
297
|
};
|
|
298
|
+
/*
|
|
299
|
+
* Dedup on the RESOLVED recipient (post-override), not the pre-route id.
|
|
300
|
+
* Keying on the pre-route id let two different targets that both reroute to
|
|
301
|
+
* the same backup each fire a full notification chain for the same person in
|
|
302
|
+
* one rule (audit F6).
|
|
303
|
+
*/
|
|
275
304
|
const uniqueUserIds = [];
|
|
305
|
+
const alreadyNotified = (recipientId) => {
|
|
306
|
+
return Boolean(uniqueUserIds.find((userId) => {
|
|
307
|
+
return recipientId.toString() === userId.toString();
|
|
308
|
+
}));
|
|
309
|
+
};
|
|
310
|
+
/*
|
|
311
|
+
* M-5: tracks whether any schedule target for this rule momentarily had no
|
|
312
|
+
* on-call user (a restriction gap / future start / empty layer). If a rule
|
|
313
|
+
* reaches NO ONE solely because of such a gap, we re-sample the same rule on
|
|
314
|
+
* the next cron ticks (bounded) instead of permanently skipping it, so a
|
|
315
|
+
* user coming on-call moments later still gets paged.
|
|
316
|
+
*/
|
|
317
|
+
let hadScheduleGap = false;
|
|
276
318
|
for (const teamInRule of teamsInRule) {
|
|
277
319
|
const usersInTeam = await TeamMemberService.getUsersInTeam(teamInRule.teamId);
|
|
278
320
|
for (const user of usersInTeam) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
uniqueUserIds.push(user.id);
|
|
284
|
-
await startUserNotificationRuleExecution(user.id, teamInRule.teamId, null);
|
|
321
|
+
const recipientUserId = await resolveAlertRecipientUserId(user.id, false);
|
|
322
|
+
if (!alreadyNotified(recipientUserId)) {
|
|
323
|
+
uniqueUserIds.push(recipientUserId);
|
|
324
|
+
await startUserNotificationRuleExecution(user.id, recipientUserId, teamInRule.teamId, null);
|
|
285
325
|
}
|
|
286
326
|
else {
|
|
287
327
|
const log = getNewLog();
|
|
288
328
|
log.statusMessage =
|
|
289
329
|
"Skipped because notification sent to this user already.";
|
|
290
330
|
log.status = OnCallDutyExecutionLogTimelineStatus.Skipped;
|
|
291
|
-
log.alertSentToUserId =
|
|
331
|
+
log.alertSentToUserId = recipientUserId;
|
|
292
332
|
log.userBelongsToTeamId = teamInRule.teamId;
|
|
293
333
|
await OnCallDutyPolicyExecutionLogTimelineService.create({
|
|
294
334
|
data: log,
|
|
@@ -300,19 +340,17 @@ export class Service extends DatabaseService {
|
|
|
300
340
|
}
|
|
301
341
|
}
|
|
302
342
|
for (const userRule of usersInRule) {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
uniqueUserIds.push(userRule.userId);
|
|
308
|
-
await startUserNotificationRuleExecution(userRule.userId, null, null);
|
|
343
|
+
const recipientUserId = await resolveAlertRecipientUserId(userRule.userId, false);
|
|
344
|
+
if (!alreadyNotified(recipientUserId)) {
|
|
345
|
+
uniqueUserIds.push(recipientUserId);
|
|
346
|
+
await startUserNotificationRuleExecution(userRule.userId, recipientUserId, null, null);
|
|
309
347
|
}
|
|
310
348
|
else {
|
|
311
349
|
const log = getNewLog();
|
|
312
350
|
log.statusMessage =
|
|
313
351
|
"Skipped because notification sent to this user already.";
|
|
314
352
|
log.status = OnCallDutyExecutionLogTimelineStatus.Skipped;
|
|
315
|
-
log.alertSentToUserId =
|
|
353
|
+
log.alertSentToUserId = recipientUserId;
|
|
316
354
|
await OnCallDutyPolicyExecutionLogTimelineService.create({
|
|
317
355
|
data: log,
|
|
318
356
|
props: {
|
|
@@ -324,6 +362,7 @@ export class Service extends DatabaseService {
|
|
|
324
362
|
for (const scheduleRule of schedulesInRule) {
|
|
325
363
|
const userIdInSchedule = await OnCallDutyPolicyScheduleService.getCurrentUserIdInSchedule(scheduleRule.onCallDutyPolicyScheduleId, { onCallDutyPolicyId: options.onCallPolicyId });
|
|
326
364
|
if (!userIdInSchedule) {
|
|
365
|
+
hadScheduleGap = true;
|
|
327
366
|
const log = getNewLog();
|
|
328
367
|
log.statusMessage =
|
|
329
368
|
"Skipped because no active users are found in this schedule.";
|
|
@@ -337,18 +376,18 @@ export class Service extends DatabaseService {
|
|
|
337
376
|
});
|
|
338
377
|
continue;
|
|
339
378
|
}
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
uniqueUserIds.push(
|
|
344
|
-
await startUserNotificationRuleExecution(userIdInSchedule, null, scheduleRule.onCallDutyPolicyScheduleId);
|
|
379
|
+
// Schedule users are already override-resolved; no second override hop (F5).
|
|
380
|
+
const recipientUserId = await resolveAlertRecipientUserId(userIdInSchedule, true);
|
|
381
|
+
if (!alreadyNotified(recipientUserId)) {
|
|
382
|
+
uniqueUserIds.push(recipientUserId);
|
|
383
|
+
await startUserNotificationRuleExecution(userIdInSchedule, recipientUserId, null, scheduleRule.onCallDutyPolicyScheduleId);
|
|
345
384
|
}
|
|
346
385
|
else {
|
|
347
386
|
const log = getNewLog();
|
|
348
387
|
log.statusMessage =
|
|
349
388
|
"Skipped because notification sent to this user already.";
|
|
350
389
|
log.status = OnCallDutyExecutionLogTimelineStatus.Skipped;
|
|
351
|
-
log.alertSentToUserId =
|
|
390
|
+
log.alertSentToUserId = recipientUserId;
|
|
352
391
|
log.onCallDutyScheduleId = scheduleRule.onCallDutyPolicyScheduleId;
|
|
353
392
|
await OnCallDutyPolicyExecutionLogTimelineService.create({
|
|
354
393
|
data: log,
|
|
@@ -369,6 +408,70 @@ export class Service extends DatabaseService {
|
|
|
369
408
|
},
|
|
370
409
|
});
|
|
371
410
|
}
|
|
411
|
+
/*
|
|
412
|
+
* M-5: if this rule reached NO ONE and the only reason was a schedule gap
|
|
413
|
+
* (a schedule target with no on-call user right now), re-sample the SAME
|
|
414
|
+
* rule on the next cron ticks — bounded — instead of permanently skipping.
|
|
415
|
+
* ExecutePendingExecutions selects the rule with order =
|
|
416
|
+
* lastExecutedEscalationRuleOrder + 1, so rewinding the order by one makes
|
|
417
|
+
* it re-run this rule. No notifications were sent (uniqueUserIds is empty),
|
|
418
|
+
* so a re-sample cannot double-page anyone.
|
|
419
|
+
*/
|
|
420
|
+
const maxScheduleGapRetries = 5;
|
|
421
|
+
const scheduleGapRetryIntervalMinutes = 1;
|
|
422
|
+
const reachedNoOne = uniqueUserIds.length === 0;
|
|
423
|
+
if (reachedNoOne && hadScheduleGap && rule.order) {
|
|
424
|
+
const executionLog = await OnCallDutyPolicyExecutionLogService.findOneById({
|
|
425
|
+
id: options.onCallPolicyExecutionLogId,
|
|
426
|
+
select: {
|
|
427
|
+
scheduleGapRetryCount: true,
|
|
428
|
+
},
|
|
429
|
+
props: {
|
|
430
|
+
isRoot: true,
|
|
431
|
+
},
|
|
432
|
+
});
|
|
433
|
+
const retryCount = (executionLog === null || executionLog === void 0 ? void 0 : executionLog.scheduleGapRetryCount) || 0;
|
|
434
|
+
if (retryCount < maxScheduleGapRetries) {
|
|
435
|
+
await OnCallDutyPolicyExecutionLogService.updateOneById({
|
|
436
|
+
id: options.onCallPolicyExecutionLogId,
|
|
437
|
+
data: {
|
|
438
|
+
lastExecutedEscalationRuleOrder: rule.order - 1,
|
|
439
|
+
executeNextEscalationRuleInMinutes: scheduleGapRetryIntervalMinutes,
|
|
440
|
+
scheduleGapRetryCount: retryCount + 1,
|
|
441
|
+
},
|
|
442
|
+
props: {
|
|
443
|
+
isRoot: true,
|
|
444
|
+
},
|
|
445
|
+
});
|
|
446
|
+
logger.debug(`Rule ${ruleId.toString()} reached no one due to a schedule gap; re-sampling ${retryCount + 1}/${maxScheduleGapRetries}.`, {
|
|
447
|
+
onCallDutyPolicyEscalationRuleId: ruleId.toString(),
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
// Retries exhausted — advance normally next tick and reset the counter.
|
|
452
|
+
await OnCallDutyPolicyExecutionLogService.updateOneById({
|
|
453
|
+
id: options.onCallPolicyExecutionLogId,
|
|
454
|
+
data: {
|
|
455
|
+
scheduleGapRetryCount: 0,
|
|
456
|
+
},
|
|
457
|
+
props: {
|
|
458
|
+
isRoot: true,
|
|
459
|
+
},
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
// Reached someone (or no schedule gap): clear retry state for the next rule.
|
|
465
|
+
await OnCallDutyPolicyExecutionLogService.updateOneById({
|
|
466
|
+
id: options.onCallPolicyExecutionLogId,
|
|
467
|
+
data: {
|
|
468
|
+
scheduleGapRetryCount: 0,
|
|
469
|
+
},
|
|
470
|
+
props: {
|
|
471
|
+
isRoot: true,
|
|
472
|
+
},
|
|
473
|
+
});
|
|
474
|
+
}
|
|
372
475
|
logger.debug(`Completed rule execution for ruleId: ${ruleId.toString()}`, {
|
|
373
476
|
projectId: options.projectId.toString(),
|
|
374
477
|
onCallDutyPolicyEscalationRuleId: ruleId.toString(),
|
|
@@ -617,8 +720,8 @@ export class Service extends DatabaseService {
|
|
|
617
720
|
if (newOrder > currentOrder) {
|
|
618
721
|
// moving down.
|
|
619
722
|
for (const resource of resources) {
|
|
620
|
-
if (resource.order <= newOrder) {
|
|
621
|
-
//
|
|
723
|
+
if (resource.order > currentOrder && resource.order <= newOrder) {
|
|
724
|
+
// decrement order to fill the gap left by the moved rule.
|
|
622
725
|
await this.updateOneBy({
|
|
623
726
|
query: {
|
|
624
727
|
_id: resource._id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnCallDutyPolicyEscalationRuleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OnCallDutyPolicyEscalationRuleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleService.ts"],"names":[],"mappings":"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"}
|