@oneuptime/common 12.0.29 → 12.0.30
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/Index.ts +11 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +43 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +662 -0
- package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +584 -0
- package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +546 -0
- package/Models/DatabaseModels/UserOnCallShiftReminder.ts +231 -0
- package/Models/DatabaseModels/UserOnCallShiftReminderLog.ts +331 -0
- package/Server/API/OnCallCalendarAPI.ts +2194 -0
- package/Server/EnvironmentConfig.ts +138 -0
- package/Server/Infrastructure/OnCallCalendarFeedCache.ts +1050 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.ts +253 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Middleware/OnCallCalendarFeedRateLimit.ts +487 -0
- package/Server/Services/Index.ts +12 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +32 -0
- package/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.ts +260 -0
- package/Server/Services/OnCallDutyPolicyScheduleLayerService.ts +70 -3
- package/Server/Services/OnCallDutyPolicyScheduleLayerUserService.ts +138 -3
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +1465 -134
- package/Server/Services/OnCallDutyPolicyUserOverrideService.ts +167 -31
- package/Server/Services/ProjectOnCallCalendarFeedService.ts +192 -0
- package/Server/Services/TeamMemberService.ts +489 -1
- package/Server/Services/TeamService.ts +50 -0
- package/Server/Services/UserNotificationSettingService.ts +44 -1
- package/Server/Services/UserOnCallCalendarFeedService.ts +159 -0
- package/Server/Services/UserOnCallShiftReminderLogService.ts +151 -0
- package/Server/Services/UserOnCallShiftReminderService.ts +112 -0
- package/Server/Utils/OnCall/CalendarFeedToken.ts +241 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1488 -0
- package/Server/Utils/OnCall/OnCallCalendarFeedUrls.ts +230 -0
- package/Server/Utils/OnCall/OnCallShiftChangeListeners.ts +227 -0
- package/Server/Utils/OnCall/OnCallShiftMaterializer.ts +1127 -0
- package/Server/Utils/OnCall/OnCallShiftReminderListener.ts +174 -0
- package/Server/Utils/OnCall/OnCallShiftReminderRunner.ts +2584 -0
- package/Server/Utils/Response.ts +134 -0
- package/Server/Utils/StartServer.ts +10 -0
- package/Server/Utils/Telemetry/AppMetrics.ts +51 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedLinks.test.tsx +229 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedPlanGate.test.tsx +489 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +149 -0
- package/Tests/App/Dashboard/OnCallCalendarFeedUtil.test.ts +855 -0
- package/Tests/App/Dashboard/OnCallPersonalCalendarFeed.test.tsx +1209 -0
- package/Tests/App/Dashboard/OnCallSharedCalendarFeedCard.test.tsx +1019 -0
- package/Tests/App/Dashboard/OnCallShiftRemindersAndUpcomingShifts.test.tsx +655 -0
- package/Tests/App/Dashboard/UserSettingsSetupChecklistModel.test.ts +73 -0
- package/Tests/Models/OnCallCalendarFeedModels.test.ts +642 -0
- package/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts +288 -0
- package/Tests/Models/OnCallDutyPolicyScheduleShiftConfigVersion.test.ts +88 -0
- package/Tests/Models/UserOnCallShiftReminderModels.test.ts +368 -0
- package/Tests/Server/API/Helpers.ts +8 -0
- package/Tests/Server/API/OnCallCalendarAPI.test.ts +4461 -0
- package/Tests/Server/EnvironmentConfigOnCallCalendarFeed.test.ts +357 -0
- package/Tests/Server/Infrastructure/OnCallCalendarFeedCache.test.ts +1589 -0
- package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +369 -0
- package/Tests/Server/Middleware/OnCallCalendarFeedRateLimit.test.ts +1365 -0
- package/Tests/Server/Services/FeedRetentionConsistency.test.ts +70 -0
- package/Tests/Server/Services/OnCallCalendarFeedServices.test.ts +1103 -0
- package/Tests/Server/Services/OnCallDutyPolicyScheduleResolver.test.ts +1037 -0
- package/Tests/Server/Services/OnCallShiftConfigPropagation.test.ts +1270 -0
- package/Tests/Server/Services/TeamDeleteMemberCleanup.test.ts +156 -0
- package/Tests/Server/Services/TeamMemberOnCallCleanup.test.ts +755 -0
- package/Tests/Server/Services/UserNotificationSettingShiftReminderDefaults.test.ts +267 -0
- package/Tests/Server/Services/UserOnCallShiftReminderServices.test.ts +583 -0
- package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +254 -0
- package/Tests/Server/Utils/OnCall/CalendarFeedToken.test.ts +467 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedRenderer.test.ts +2142 -0
- package/Tests/Server/Utils/OnCall/OnCallCalendarFeedUrls.test.ts +278 -0
- package/Tests/Server/Utils/OnCall/OnCallResolverTestHarness.ts +440 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftChangeListeners.test.ts +314 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftMaterializer.test.ts +1502 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderListener.test.ts +491 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderRunner.test.ts +3088 -0
- package/Tests/Server/Utils/OnCall/OnCallShiftReminderTestHarness.ts +910 -0
- package/Tests/Server/Utils/ResponseSendCalendarResponse.test.ts +561 -0
- package/Tests/Server/Utils/StartServerEncryptionSecretWarning.test.ts +64 -0
- package/Tests/Server/Utils/Telemetry/AppMetrics.test.ts +29 -0
- package/Tests/Types/Calendar/ICalendar.test.ts +488 -0
- package/Tests/Types/NotificationSetting/NotificationSettingEventType.test.ts +53 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedTestFixtures.ts +310 -0
- package/Tests/Types/OnCallDutyPolicy/CalendarFeedWindow.test.ts +205 -0
- package/Tests/Types/OnCallDutyPolicy/LayerUtilLayerMetaAndIterationCap.test.ts +458 -0
- package/Tests/Types/OnCallDutyPolicy/MaterializedShift.test.ts +197 -0
- package/Tests/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.test.ts +1986 -0
- package/Tests/Types/OnCallDutyPolicy/ScheduleShiftUtilGroupKey.test.ts +678 -0
- package/Tests/Types/OnCallDutyPolicy/ShiftSeamUtil.test.ts +417 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
- package/Types/Calendar/ICalendar.ts +442 -0
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
- package/Types/OnCallDutyPolicy/CalendarFeedWindow.ts +140 -0
- package/Types/OnCallDutyPolicy/Layer.ts +190 -35
- package/Types/OnCallDutyPolicy/MaterializedShift.ts +274 -0
- package/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.ts +1415 -0
- package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +159 -4
- package/Types/OnCallDutyPolicy/ShiftSeamUtil.ts +106 -0
- package/build/dist/Models/DatabaseModels/Index.js +11 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +44 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +699 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +620 -0
- package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +585 -0
- package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js +247 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminder.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js +355 -0
- package/build/dist/Models/DatabaseModels/UserOnCallShiftReminderLog.js.map +1 -0
- package/build/dist/Server/API/OnCallCalendarAPI.js +1371 -0
- package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -0
- package/build/dist/Server/EnvironmentConfig.js +102 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js +663 -0
- package/build/dist/Server/Infrastructure/OnCallCalendarFeedCache.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js +103 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790400000000-AddOnCallCalendarFeeds.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js +342 -0
- package/build/dist/Server/Middleware/OnCallCalendarFeedRateLimit.js.map +1 -0
- package/build/dist/Server/Services/Index.js +12 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +20 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js +219 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js +47 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js +112 -3
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLayerUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +955 -9
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js +93 -6
- package/build/dist/Server/Services/OnCallDutyPolicyUserOverrideService.js.map +1 -1
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js +157 -0
- package/build/dist/Server/Services/ProjectOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/TeamMemberService.js +396 -1
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TeamService.js +43 -0
- package/build/dist/Server/Services/TeamService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +26 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js +140 -0
- package/build/dist/Server/Services/UserOnCallCalendarFeedService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js +116 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderLogService.js.map +1 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js +92 -0
- package/build/dist/Server/Services/UserOnCallShiftReminderService.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js +161 -0
- package/build/dist/Server/Utils/OnCall/CalendarFeedToken.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js +983 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedRenderer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js +155 -0
- package/build/dist/Server/Utils/OnCall/OnCallCalendarFeedUrls.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js +145 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftChangeListeners.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js +752 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftMaterializer.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js +92 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderListener.js.map +1 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js +1786 -0
- package/build/dist/Server/Utils/OnCall/OnCallShiftReminderRunner.js.map +1 -0
- package/build/dist/Server/Utils/Response.js +97 -0
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +9 -1
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js +41 -0
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
- package/build/dist/Types/Calendar/ICalendar.js +290 -0
- package/build/dist/Types/Calendar/ICalendar.js.map +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js +2 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js +97 -0
- package/build/dist/Types/OnCallDutyPolicy/CalendarFeedWindow.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/Layer.js +113 -19
- package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js +134 -0
- package/build/dist/Types/OnCallDutyPolicy/MaterializedShift.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js +800 -0
- package/build/dist/Types/OnCallDutyPolicy/OnCallCalendarFeedUtil.js.map +1 -0
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +97 -3
- package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js +77 -0
- package/build/dist/Types/OnCallDutyPolicy/ShiftSeamUtil.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,699 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import OnCallDutyPolicySchedule from "./OnCallDutyPolicySchedule";
|
|
11
|
+
import Project from "./Project";
|
|
12
|
+
import User from "./User";
|
|
13
|
+
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
14
|
+
import Route from "../../Types/API/Route";
|
|
15
|
+
import { PlanType } from "../../Types/Billing/SubscriptionPlan";
|
|
16
|
+
import AllowAccessIfSubscriptionIsUnpaid from "../../Types/Database/AccessControl/AllowAccessIfSubscriptionIsUnpaid";
|
|
17
|
+
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
18
|
+
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
19
|
+
import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
|
|
20
|
+
import CanAccessIfCanReadOn from "../../Types/Database/CanAccessIfCanReadOn";
|
|
21
|
+
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
22
|
+
import ColumnType from "../../Types/Database/ColumnType";
|
|
23
|
+
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
24
|
+
import TableColumn from "../../Types/Database/TableColumn";
|
|
25
|
+
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
26
|
+
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
27
|
+
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
28
|
+
import IconProp from "../../Types/Icon/IconProp";
|
|
29
|
+
import ObjectID from "../../Types/ObjectID";
|
|
30
|
+
import Permission from "../../Types/Permission";
|
|
31
|
+
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
32
|
+
/*
|
|
33
|
+
* The project-owned, shared calendar feed of ONE on-call schedule: the
|
|
34
|
+
* capability token behind `GET /on-call-calendar/schedule/:token/schedule.ics`,
|
|
35
|
+
* which renders everybody's shifts on that schedule (plus opt-in coverage-gap
|
|
36
|
+
* events).
|
|
37
|
+
*
|
|
38
|
+
* WHO MAY DO WHAT
|
|
39
|
+
*
|
|
40
|
+
* The four table access lists are copied verbatim from OnCallDutyPolicySchedule
|
|
41
|
+
* (Common/Tests/Models/OnCallDutyPolicyScheduleCalendarFeed.test.ts holds them
|
|
42
|
+
* equal): whoever may edit a schedule may publish, rotate or disable its
|
|
43
|
+
* shared link, and whoever may read a schedule may copy the link. The link
|
|
44
|
+
* belongs to the project, not to whoever copied it. @CanAccessIfCanReadOn
|
|
45
|
+
* scopes it by the schedule's labels too, so a label-restricted reader never
|
|
46
|
+
* sees the feed of a schedule they cannot see.
|
|
47
|
+
*
|
|
48
|
+
* ONE ROW PER SCHEDULE - onCallDutyPolicyScheduleId is UNIQUE, and the row
|
|
49
|
+
* cascades away with the schedule.
|
|
50
|
+
*
|
|
51
|
+
* THE TOKEN IS NEVER CHOSEN BY A CALLER
|
|
52
|
+
*
|
|
53
|
+
* Every token-bearing column is `computed` with empty create/update lists.
|
|
54
|
+
* The service mints the token in onBeforeCreate, regardless of what the
|
|
55
|
+
* request carried, and rotation is a root write. A CRUD read returns the
|
|
56
|
+
* settings and the four-character hint, never the token.
|
|
57
|
+
*/
|
|
58
|
+
const createPermissions = [
|
|
59
|
+
Permission.ProjectOwner,
|
|
60
|
+
Permission.ProjectAdmin,
|
|
61
|
+
Permission.ProjectMember,
|
|
62
|
+
Permission.OnCallAdmin,
|
|
63
|
+
Permission.OnCallMember,
|
|
64
|
+
Permission.CreateProjectOnCallDutyPolicySchedule,
|
|
65
|
+
];
|
|
66
|
+
const readPermissions = [
|
|
67
|
+
Permission.ProjectOwner,
|
|
68
|
+
Permission.ProjectAdmin,
|
|
69
|
+
Permission.ProjectMember,
|
|
70
|
+
Permission.Viewer,
|
|
71
|
+
Permission.OnCallAdmin,
|
|
72
|
+
Permission.OnCallMember,
|
|
73
|
+
Permission.OnCallViewer,
|
|
74
|
+
Permission.ReadProjectOnCallDutyPolicySchedule,
|
|
75
|
+
];
|
|
76
|
+
const updatePermissions = [
|
|
77
|
+
Permission.ProjectOwner,
|
|
78
|
+
Permission.ProjectAdmin,
|
|
79
|
+
Permission.ProjectMember,
|
|
80
|
+
Permission.OnCallAdmin,
|
|
81
|
+
Permission.OnCallMember,
|
|
82
|
+
Permission.EditProjectOnCallDutyPolicySchedule,
|
|
83
|
+
];
|
|
84
|
+
let OnCallDutyPolicyScheduleCalendarFeed = class OnCallDutyPolicyScheduleCalendarFeed extends BaseModel {
|
|
85
|
+
constructor() {
|
|
86
|
+
super(...arguments);
|
|
87
|
+
this.project = undefined;
|
|
88
|
+
this.projectId = undefined;
|
|
89
|
+
this.onCallDutyPolicySchedule = undefined;
|
|
90
|
+
this.onCallDutyPolicyScheduleId = undefined;
|
|
91
|
+
/*
|
|
92
|
+
* Unkeyed SHA-256 hex of the token: the only column the public route looks
|
|
93
|
+
* up by. Read is denied to everyone - see UserOnCallCalendarFeed for why.
|
|
94
|
+
*/
|
|
95
|
+
this.tokenHash = undefined;
|
|
96
|
+
this.token = undefined;
|
|
97
|
+
this.previousTokenHash = undefined;
|
|
98
|
+
this.previousTokenExpiresAt = undefined;
|
|
99
|
+
this.tokenHint = undefined;
|
|
100
|
+
this.isEnabled = undefined;
|
|
101
|
+
/*
|
|
102
|
+
* Off by default: a "No coverage" event is only emitted where a layer
|
|
103
|
+
* intended coverage (its restriction envelope), never for the off-hours of
|
|
104
|
+
* a business-hours schedule.
|
|
105
|
+
*/
|
|
106
|
+
this.includeCoverageGaps = undefined;
|
|
107
|
+
this.minimumGapMinutes = undefined;
|
|
108
|
+
this.pastDays = undefined;
|
|
109
|
+
this.futureDays = undefined;
|
|
110
|
+
/*
|
|
111
|
+
* When on, this link is rotated automatically the moment a user leaves the
|
|
112
|
+
* project (TeamMemberService cleanup), so a departed colleague's calendar
|
|
113
|
+
* app stops receiving the team's roster.
|
|
114
|
+
*/
|
|
115
|
+
this.rotateWhenMemberLeaves = undefined;
|
|
116
|
+
this.rotatedAt = undefined;
|
|
117
|
+
this.lastFetchedAt = undefined;
|
|
118
|
+
this.lastFetchedClient = undefined;
|
|
119
|
+
this.fetchCount = undefined;
|
|
120
|
+
this.lastRenderTruncated = undefined;
|
|
121
|
+
this.createdByUser = undefined;
|
|
122
|
+
this.createdByUserId = undefined;
|
|
123
|
+
this.deletedByUser = undefined;
|
|
124
|
+
this.deletedByUserId = undefined;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
__decorate([
|
|
128
|
+
ColumnAccessControl({
|
|
129
|
+
create: createPermissions,
|
|
130
|
+
read: readPermissions,
|
|
131
|
+
update: [],
|
|
132
|
+
}),
|
|
133
|
+
TableColumn({
|
|
134
|
+
manyToOneRelationColumn: "projectId",
|
|
135
|
+
type: TableColumnType.Entity,
|
|
136
|
+
modelType: Project,
|
|
137
|
+
title: "Project",
|
|
138
|
+
description: "Relation to Project Resource in which this object belongs",
|
|
139
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
140
|
+
}),
|
|
141
|
+
ManyToOne(() => {
|
|
142
|
+
return Project;
|
|
143
|
+
}, {
|
|
144
|
+
eager: false,
|
|
145
|
+
nullable: true,
|
|
146
|
+
onDelete: "CASCADE",
|
|
147
|
+
orphanedRowAction: "nullify",
|
|
148
|
+
}),
|
|
149
|
+
JoinColumn({ name: "projectId" }),
|
|
150
|
+
__metadata("design:type", Project)
|
|
151
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "project", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
ColumnAccessControl({
|
|
154
|
+
create: createPermissions,
|
|
155
|
+
read: readPermissions,
|
|
156
|
+
update: [],
|
|
157
|
+
}),
|
|
158
|
+
Index(),
|
|
159
|
+
TableColumn({
|
|
160
|
+
type: TableColumnType.ObjectID,
|
|
161
|
+
required: true,
|
|
162
|
+
canReadOnRelationQuery: true,
|
|
163
|
+
title: "Project ID",
|
|
164
|
+
description: "ID of your OneUptime Project in which this object belongs",
|
|
165
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
166
|
+
}),
|
|
167
|
+
Column({
|
|
168
|
+
type: ColumnType.ObjectID,
|
|
169
|
+
nullable: false,
|
|
170
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
171
|
+
}),
|
|
172
|
+
__metadata("design:type", ObjectID)
|
|
173
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "projectId", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
ColumnAccessControl({
|
|
176
|
+
create: createPermissions,
|
|
177
|
+
read: readPermissions,
|
|
178
|
+
update: [],
|
|
179
|
+
}),
|
|
180
|
+
TableColumn({
|
|
181
|
+
manyToOneRelationColumn: "onCallDutyPolicyScheduleId",
|
|
182
|
+
type: TableColumnType.Entity,
|
|
183
|
+
modelType: OnCallDutyPolicySchedule,
|
|
184
|
+
title: "On-Call Policy Schedule",
|
|
185
|
+
description: "Relation to the On-Call Policy Schedule this feed renders.",
|
|
186
|
+
}),
|
|
187
|
+
ManyToOne(() => {
|
|
188
|
+
return OnCallDutyPolicySchedule;
|
|
189
|
+
}, {
|
|
190
|
+
eager: false,
|
|
191
|
+
nullable: true,
|
|
192
|
+
onDelete: "CASCADE",
|
|
193
|
+
orphanedRowAction: "nullify",
|
|
194
|
+
}),
|
|
195
|
+
JoinColumn({ name: "onCallDutyPolicyScheduleId" }),
|
|
196
|
+
__metadata("design:type", OnCallDutyPolicySchedule)
|
|
197
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "onCallDutyPolicySchedule", void 0);
|
|
198
|
+
__decorate([
|
|
199
|
+
ColumnAccessControl({
|
|
200
|
+
create: createPermissions,
|
|
201
|
+
read: readPermissions,
|
|
202
|
+
update: [],
|
|
203
|
+
}),
|
|
204
|
+
TableColumn({
|
|
205
|
+
type: TableColumnType.ObjectID,
|
|
206
|
+
required: true,
|
|
207
|
+
canReadOnRelationQuery: true,
|
|
208
|
+
title: "On-Call Policy Schedule ID",
|
|
209
|
+
description: "ID of the On-Call Policy Schedule this feed renders.",
|
|
210
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
211
|
+
}),
|
|
212
|
+
Column({
|
|
213
|
+
type: ColumnType.ObjectID,
|
|
214
|
+
nullable: false,
|
|
215
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
216
|
+
}),
|
|
217
|
+
__metadata("design:type", ObjectID)
|
|
218
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "onCallDutyPolicyScheduleId", void 0);
|
|
219
|
+
__decorate([
|
|
220
|
+
ColumnAccessControl({
|
|
221
|
+
create: [],
|
|
222
|
+
read: [],
|
|
223
|
+
update: [],
|
|
224
|
+
}),
|
|
225
|
+
TableColumn({
|
|
226
|
+
type: TableColumnType.ShortText,
|
|
227
|
+
required: true,
|
|
228
|
+
computed: true,
|
|
229
|
+
canReadOnRelationQuery: false,
|
|
230
|
+
title: "Token Hash",
|
|
231
|
+
description: "SHA-256 digest of the feed token; the lookup key",
|
|
232
|
+
hideColumnInDocumentation: true,
|
|
233
|
+
}),
|
|
234
|
+
Column({
|
|
235
|
+
type: ColumnType.ShortText,
|
|
236
|
+
length: ColumnLength.ShortText,
|
|
237
|
+
nullable: false,
|
|
238
|
+
unique: true,
|
|
239
|
+
}),
|
|
240
|
+
__metadata("design:type", String)
|
|
241
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "tokenHash", void 0);
|
|
242
|
+
__decorate([
|
|
243
|
+
ColumnAccessControl({
|
|
244
|
+
create: [],
|
|
245
|
+
read: [],
|
|
246
|
+
update: [],
|
|
247
|
+
}),
|
|
248
|
+
TableColumn({
|
|
249
|
+
type: TableColumnType.VeryLongText,
|
|
250
|
+
computed: true,
|
|
251
|
+
encrypted: true,
|
|
252
|
+
canReadOnRelationQuery: false,
|
|
253
|
+
title: "Token",
|
|
254
|
+
description: "Encrypted feed token, re-displayed only to schedule readers",
|
|
255
|
+
hideColumnInDocumentation: true,
|
|
256
|
+
}),
|
|
257
|
+
Column({
|
|
258
|
+
type: ColumnType.VeryLongText,
|
|
259
|
+
nullable: true,
|
|
260
|
+
}),
|
|
261
|
+
__metadata("design:type", String)
|
|
262
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "token", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
ColumnAccessControl({
|
|
265
|
+
create: [],
|
|
266
|
+
read: [],
|
|
267
|
+
update: [],
|
|
268
|
+
}),
|
|
269
|
+
Index(),
|
|
270
|
+
TableColumn({
|
|
271
|
+
type: TableColumnType.ShortText,
|
|
272
|
+
computed: true,
|
|
273
|
+
canReadOnRelationQuery: false,
|
|
274
|
+
title: "Previous Token Hash",
|
|
275
|
+
description: "Digest of the rotated-out token, honoured with an empty feed",
|
|
276
|
+
hideColumnInDocumentation: true,
|
|
277
|
+
}),
|
|
278
|
+
Column({
|
|
279
|
+
type: ColumnType.ShortText,
|
|
280
|
+
length: ColumnLength.ShortText,
|
|
281
|
+
nullable: true,
|
|
282
|
+
}),
|
|
283
|
+
__metadata("design:type", String)
|
|
284
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "previousTokenHash", void 0);
|
|
285
|
+
__decorate([
|
|
286
|
+
ColumnAccessControl({
|
|
287
|
+
create: [],
|
|
288
|
+
read: [],
|
|
289
|
+
update: [],
|
|
290
|
+
}),
|
|
291
|
+
TableColumn({
|
|
292
|
+
type: TableColumnType.Date,
|
|
293
|
+
computed: true,
|
|
294
|
+
canReadOnRelationQuery: false,
|
|
295
|
+
title: "Previous Token Expires At",
|
|
296
|
+
description: "When the rotated-out token stops being honoured",
|
|
297
|
+
hideColumnInDocumentation: true,
|
|
298
|
+
}),
|
|
299
|
+
Column({
|
|
300
|
+
type: ColumnType.Date,
|
|
301
|
+
nullable: true,
|
|
302
|
+
}),
|
|
303
|
+
__metadata("design:type", Date)
|
|
304
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "previousTokenExpiresAt", void 0);
|
|
305
|
+
__decorate([
|
|
306
|
+
ColumnAccessControl({
|
|
307
|
+
create: [],
|
|
308
|
+
read: readPermissions,
|
|
309
|
+
update: [],
|
|
310
|
+
}),
|
|
311
|
+
TableColumn({
|
|
312
|
+
type: TableColumnType.ShortText,
|
|
313
|
+
computed: true,
|
|
314
|
+
canReadOnRelationQuery: false,
|
|
315
|
+
title: "Token Hint",
|
|
316
|
+
description: "Last four characters of the feed token, for display",
|
|
317
|
+
example: "k3Qx",
|
|
318
|
+
}),
|
|
319
|
+
Column({
|
|
320
|
+
type: ColumnType.ShortText,
|
|
321
|
+
length: ColumnLength.ShortText,
|
|
322
|
+
nullable: true,
|
|
323
|
+
}),
|
|
324
|
+
__metadata("design:type", String)
|
|
325
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "tokenHint", void 0);
|
|
326
|
+
__decorate([
|
|
327
|
+
ColumnAccessControl({
|
|
328
|
+
create: createPermissions,
|
|
329
|
+
read: readPermissions,
|
|
330
|
+
update: updatePermissions,
|
|
331
|
+
}),
|
|
332
|
+
TableColumn({
|
|
333
|
+
isDefaultValueColumn: true,
|
|
334
|
+
type: TableColumnType.Boolean,
|
|
335
|
+
defaultValue: true,
|
|
336
|
+
title: "Enabled",
|
|
337
|
+
description: "When off, the link keeps working but serves an empty calendar so subscribed apps clear their copy.",
|
|
338
|
+
example: true,
|
|
339
|
+
}),
|
|
340
|
+
Column({
|
|
341
|
+
type: ColumnType.Boolean,
|
|
342
|
+
default: true,
|
|
343
|
+
nullable: false,
|
|
344
|
+
}),
|
|
345
|
+
__metadata("design:type", Boolean)
|
|
346
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "isEnabled", void 0);
|
|
347
|
+
__decorate([
|
|
348
|
+
ColumnAccessControl({
|
|
349
|
+
create: createPermissions,
|
|
350
|
+
read: readPermissions,
|
|
351
|
+
update: updatePermissions,
|
|
352
|
+
}),
|
|
353
|
+
TableColumn({
|
|
354
|
+
isDefaultValueColumn: true,
|
|
355
|
+
type: TableColumnType.Boolean,
|
|
356
|
+
defaultValue: false,
|
|
357
|
+
title: "Include Coverage Gaps",
|
|
358
|
+
description: "Emit a 'No coverage' event where the schedule's layers intended coverage but nobody is on call.",
|
|
359
|
+
example: false,
|
|
360
|
+
}),
|
|
361
|
+
Column({
|
|
362
|
+
type: ColumnType.Boolean,
|
|
363
|
+
default: false,
|
|
364
|
+
nullable: false,
|
|
365
|
+
}),
|
|
366
|
+
__metadata("design:type", Boolean)
|
|
367
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "includeCoverageGaps", void 0);
|
|
368
|
+
__decorate([
|
|
369
|
+
ColumnAccessControl({
|
|
370
|
+
create: createPermissions,
|
|
371
|
+
read: readPermissions,
|
|
372
|
+
update: updatePermissions,
|
|
373
|
+
}),
|
|
374
|
+
TableColumn({
|
|
375
|
+
isDefaultValueColumn: true,
|
|
376
|
+
type: TableColumnType.Number,
|
|
377
|
+
defaultValue: 60,
|
|
378
|
+
title: "Minimum Gap Minutes",
|
|
379
|
+
description: "Coverage gaps shorter than this many minutes are not emitted as events.",
|
|
380
|
+
example: 60,
|
|
381
|
+
}),
|
|
382
|
+
Column({
|
|
383
|
+
type: ColumnType.Number,
|
|
384
|
+
default: 60,
|
|
385
|
+
nullable: false,
|
|
386
|
+
}),
|
|
387
|
+
__metadata("design:type", Number)
|
|
388
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "minimumGapMinutes", void 0);
|
|
389
|
+
__decorate([
|
|
390
|
+
ColumnAccessControl({
|
|
391
|
+
create: createPermissions,
|
|
392
|
+
read: readPermissions,
|
|
393
|
+
update: updatePermissions,
|
|
394
|
+
}),
|
|
395
|
+
TableColumn({
|
|
396
|
+
isDefaultValueColumn: true,
|
|
397
|
+
type: TableColumnType.Number,
|
|
398
|
+
defaultValue: 2,
|
|
399
|
+
title: "Past Days",
|
|
400
|
+
description: "How many days of past shifts the feed includes. Past shifts reflect the current rotation, not who was actually paged.",
|
|
401
|
+
example: 2,
|
|
402
|
+
}),
|
|
403
|
+
Column({
|
|
404
|
+
type: ColumnType.Number,
|
|
405
|
+
default: 2,
|
|
406
|
+
nullable: false,
|
|
407
|
+
}),
|
|
408
|
+
__metadata("design:type", Number)
|
|
409
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "pastDays", void 0);
|
|
410
|
+
__decorate([
|
|
411
|
+
ColumnAccessControl({
|
|
412
|
+
create: createPermissions,
|
|
413
|
+
read: readPermissions,
|
|
414
|
+
update: updatePermissions,
|
|
415
|
+
}),
|
|
416
|
+
TableColumn({
|
|
417
|
+
isDefaultValueColumn: true,
|
|
418
|
+
type: TableColumnType.Number,
|
|
419
|
+
defaultValue: 90,
|
|
420
|
+
title: "Future Days",
|
|
421
|
+
description: "How many days of upcoming shifts the feed includes.",
|
|
422
|
+
example: 90,
|
|
423
|
+
}),
|
|
424
|
+
Column({
|
|
425
|
+
type: ColumnType.Number,
|
|
426
|
+
default: 90,
|
|
427
|
+
nullable: false,
|
|
428
|
+
}),
|
|
429
|
+
__metadata("design:type", Number)
|
|
430
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "futureDays", void 0);
|
|
431
|
+
__decorate([
|
|
432
|
+
ColumnAccessControl({
|
|
433
|
+
create: createPermissions,
|
|
434
|
+
read: readPermissions,
|
|
435
|
+
update: updatePermissions,
|
|
436
|
+
}),
|
|
437
|
+
TableColumn({
|
|
438
|
+
isDefaultValueColumn: true,
|
|
439
|
+
type: TableColumnType.Boolean,
|
|
440
|
+
defaultValue: false,
|
|
441
|
+
title: "Rotate When Member Leaves",
|
|
442
|
+
description: "Automatically regenerate this link whenever a user leaves the project.",
|
|
443
|
+
example: false,
|
|
444
|
+
}),
|
|
445
|
+
Column({
|
|
446
|
+
type: ColumnType.Boolean,
|
|
447
|
+
default: false,
|
|
448
|
+
nullable: false,
|
|
449
|
+
}),
|
|
450
|
+
__metadata("design:type", Boolean)
|
|
451
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "rotateWhenMemberLeaves", void 0);
|
|
452
|
+
__decorate([
|
|
453
|
+
ColumnAccessControl({
|
|
454
|
+
create: [],
|
|
455
|
+
read: readPermissions,
|
|
456
|
+
update: [],
|
|
457
|
+
}),
|
|
458
|
+
TableColumn({
|
|
459
|
+
type: TableColumnType.Date,
|
|
460
|
+
computed: true,
|
|
461
|
+
title: "Rotated At",
|
|
462
|
+
description: "When the current token was minted",
|
|
463
|
+
}),
|
|
464
|
+
Column({
|
|
465
|
+
type: ColumnType.Date,
|
|
466
|
+
nullable: true,
|
|
467
|
+
}),
|
|
468
|
+
__metadata("design:type", Date)
|
|
469
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "rotatedAt", void 0);
|
|
470
|
+
__decorate([
|
|
471
|
+
ColumnAccessControl({
|
|
472
|
+
create: [],
|
|
473
|
+
read: readPermissions,
|
|
474
|
+
update: [],
|
|
475
|
+
}),
|
|
476
|
+
TableColumn({
|
|
477
|
+
type: TableColumnType.Date,
|
|
478
|
+
computed: true,
|
|
479
|
+
title: "Last Fetched At",
|
|
480
|
+
description: "When a calendar client last fetched this feed",
|
|
481
|
+
}),
|
|
482
|
+
Column({
|
|
483
|
+
type: ColumnType.Date,
|
|
484
|
+
nullable: true,
|
|
485
|
+
}),
|
|
486
|
+
__metadata("design:type", Date)
|
|
487
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "lastFetchedAt", void 0);
|
|
488
|
+
__decorate([
|
|
489
|
+
ColumnAccessControl({
|
|
490
|
+
create: [],
|
|
491
|
+
read: readPermissions,
|
|
492
|
+
update: [],
|
|
493
|
+
}),
|
|
494
|
+
TableColumn({
|
|
495
|
+
type: TableColumnType.ShortText,
|
|
496
|
+
computed: true,
|
|
497
|
+
title: "Last Fetched Client",
|
|
498
|
+
description: "Coarse family of the calendar client that last fetched this feed (for example Google Calendar)",
|
|
499
|
+
example: "Google Calendar",
|
|
500
|
+
}),
|
|
501
|
+
Column({
|
|
502
|
+
type: ColumnType.ShortText,
|
|
503
|
+
length: ColumnLength.ShortText,
|
|
504
|
+
nullable: true,
|
|
505
|
+
}),
|
|
506
|
+
__metadata("design:type", String)
|
|
507
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "lastFetchedClient", void 0);
|
|
508
|
+
__decorate([
|
|
509
|
+
ColumnAccessControl({
|
|
510
|
+
create: [],
|
|
511
|
+
read: readPermissions,
|
|
512
|
+
update: [],
|
|
513
|
+
}),
|
|
514
|
+
TableColumn({
|
|
515
|
+
isDefaultValueColumn: true,
|
|
516
|
+
type: TableColumnType.Number,
|
|
517
|
+
defaultValue: 0,
|
|
518
|
+
computed: true,
|
|
519
|
+
title: "Fetch Count",
|
|
520
|
+
description: "Approximate number of times this feed has been fetched",
|
|
521
|
+
example: 143,
|
|
522
|
+
}),
|
|
523
|
+
Column({
|
|
524
|
+
type: ColumnType.Number,
|
|
525
|
+
default: 0,
|
|
526
|
+
nullable: false,
|
|
527
|
+
}),
|
|
528
|
+
__metadata("design:type", Number)
|
|
529
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "fetchCount", void 0);
|
|
530
|
+
__decorate([
|
|
531
|
+
ColumnAccessControl({
|
|
532
|
+
create: [],
|
|
533
|
+
read: readPermissions,
|
|
534
|
+
update: [],
|
|
535
|
+
}),
|
|
536
|
+
TableColumn({
|
|
537
|
+
isDefaultValueColumn: true,
|
|
538
|
+
type: TableColumnType.Boolean,
|
|
539
|
+
defaultValue: false,
|
|
540
|
+
computed: true,
|
|
541
|
+
title: "Last Render Truncated",
|
|
542
|
+
description: "Whether the last render had to shrink the window or stop early to stay within limits",
|
|
543
|
+
example: false,
|
|
544
|
+
}),
|
|
545
|
+
Column({
|
|
546
|
+
type: ColumnType.Boolean,
|
|
547
|
+
default: false,
|
|
548
|
+
nullable: false,
|
|
549
|
+
}),
|
|
550
|
+
__metadata("design:type", Boolean)
|
|
551
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "lastRenderTruncated", void 0);
|
|
552
|
+
__decorate([
|
|
553
|
+
ColumnAccessControl({
|
|
554
|
+
create: createPermissions,
|
|
555
|
+
read: readPermissions,
|
|
556
|
+
update: [],
|
|
557
|
+
}),
|
|
558
|
+
TableColumn({
|
|
559
|
+
manyToOneRelationColumn: "createdByUserId",
|
|
560
|
+
type: TableColumnType.Entity,
|
|
561
|
+
modelType: User,
|
|
562
|
+
title: "Created by User",
|
|
563
|
+
description: "Relation to User who created this object (if this object was created by a User)",
|
|
564
|
+
}),
|
|
565
|
+
ManyToOne(() => {
|
|
566
|
+
return User;
|
|
567
|
+
}, {
|
|
568
|
+
eager: false,
|
|
569
|
+
nullable: true,
|
|
570
|
+
onDelete: "SET NULL",
|
|
571
|
+
orphanedRowAction: "nullify",
|
|
572
|
+
}),
|
|
573
|
+
JoinColumn({ name: "createdByUserId" }),
|
|
574
|
+
__metadata("design:type", User)
|
|
575
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "createdByUser", void 0);
|
|
576
|
+
__decorate([
|
|
577
|
+
ColumnAccessControl({
|
|
578
|
+
create: createPermissions,
|
|
579
|
+
read: readPermissions,
|
|
580
|
+
update: [],
|
|
581
|
+
}),
|
|
582
|
+
TableColumn({
|
|
583
|
+
type: TableColumnType.ObjectID,
|
|
584
|
+
title: "Created by User ID",
|
|
585
|
+
description: "User ID who created this object (if this object was created by a User)",
|
|
586
|
+
example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
587
|
+
}),
|
|
588
|
+
Column({
|
|
589
|
+
type: ColumnType.ObjectID,
|
|
590
|
+
nullable: true,
|
|
591
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
592
|
+
}),
|
|
593
|
+
__metadata("design:type", ObjectID)
|
|
594
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "createdByUserId", void 0);
|
|
595
|
+
__decorate([
|
|
596
|
+
ColumnAccessControl({
|
|
597
|
+
create: [],
|
|
598
|
+
read: [],
|
|
599
|
+
update: [],
|
|
600
|
+
}),
|
|
601
|
+
TableColumn({
|
|
602
|
+
manyToOneRelationColumn: "deletedByUserId",
|
|
603
|
+
type: TableColumnType.Entity,
|
|
604
|
+
title: "Deleted by User",
|
|
605
|
+
modelType: User,
|
|
606
|
+
description: "Relation to User who deleted this object (if this object was deleted by a User)",
|
|
607
|
+
}),
|
|
608
|
+
ManyToOne(() => {
|
|
609
|
+
return User;
|
|
610
|
+
}, {
|
|
611
|
+
cascade: false,
|
|
612
|
+
eager: false,
|
|
613
|
+
nullable: true,
|
|
614
|
+
onDelete: "SET NULL",
|
|
615
|
+
orphanedRowAction: "nullify",
|
|
616
|
+
}),
|
|
617
|
+
JoinColumn({ name: "deletedByUserId" }),
|
|
618
|
+
__metadata("design:type", User)
|
|
619
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "deletedByUser", void 0);
|
|
620
|
+
__decorate([
|
|
621
|
+
ColumnAccessControl({
|
|
622
|
+
create: [],
|
|
623
|
+
read: [],
|
|
624
|
+
update: [],
|
|
625
|
+
}),
|
|
626
|
+
TableColumn({
|
|
627
|
+
type: TableColumnType.ObjectID,
|
|
628
|
+
title: "Deleted by User ID",
|
|
629
|
+
description: "User ID who deleted this object (if this object was deleted by a User)",
|
|
630
|
+
example: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
|
|
631
|
+
}),
|
|
632
|
+
Column({
|
|
633
|
+
type: ColumnType.ObjectID,
|
|
634
|
+
nullable: true,
|
|
635
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
636
|
+
}),
|
|
637
|
+
__metadata("design:type", ObjectID)
|
|
638
|
+
], OnCallDutyPolicyScheduleCalendarFeed.prototype, "deletedByUserId", void 0);
|
|
639
|
+
OnCallDutyPolicyScheduleCalendarFeed = __decorate([
|
|
640
|
+
TableBillingAccessControl({
|
|
641
|
+
create: PlanType.Growth,
|
|
642
|
+
read: PlanType.Growth,
|
|
643
|
+
update: PlanType.Growth,
|
|
644
|
+
delete: PlanType.Growth,
|
|
645
|
+
}),
|
|
646
|
+
TenantColumn("projectId"),
|
|
647
|
+
AllowAccessIfSubscriptionIsUnpaid(),
|
|
648
|
+
TableAccessControl({
|
|
649
|
+
create: [
|
|
650
|
+
Permission.ProjectOwner,
|
|
651
|
+
Permission.ProjectAdmin,
|
|
652
|
+
Permission.ProjectMember,
|
|
653
|
+
Permission.OnCallAdmin,
|
|
654
|
+
Permission.OnCallMember,
|
|
655
|
+
Permission.CreateProjectOnCallDutyPolicySchedule,
|
|
656
|
+
],
|
|
657
|
+
read: [
|
|
658
|
+
Permission.ProjectOwner,
|
|
659
|
+
Permission.ProjectAdmin,
|
|
660
|
+
Permission.ProjectMember,
|
|
661
|
+
Permission.Viewer,
|
|
662
|
+
Permission.OnCallAdmin,
|
|
663
|
+
Permission.OnCallMember,
|
|
664
|
+
Permission.OnCallViewer,
|
|
665
|
+
Permission.ReadProjectOnCallDutyPolicySchedule,
|
|
666
|
+
],
|
|
667
|
+
delete: [
|
|
668
|
+
Permission.ProjectOwner,
|
|
669
|
+
Permission.ProjectAdmin,
|
|
670
|
+
Permission.ProjectMember,
|
|
671
|
+
Permission.OnCallAdmin,
|
|
672
|
+
Permission.OnCallMember,
|
|
673
|
+
Permission.DeleteProjectOnCallDutyPolicySchedule,
|
|
674
|
+
],
|
|
675
|
+
update: [
|
|
676
|
+
Permission.ProjectOwner,
|
|
677
|
+
Permission.ProjectAdmin,
|
|
678
|
+
Permission.ProjectMember,
|
|
679
|
+
Permission.OnCallAdmin,
|
|
680
|
+
Permission.OnCallMember,
|
|
681
|
+
Permission.EditProjectOnCallDutyPolicySchedule,
|
|
682
|
+
],
|
|
683
|
+
}),
|
|
684
|
+
CanAccessIfCanReadOn("onCallDutyPolicySchedule"),
|
|
685
|
+
CrudApiEndpoint(new Route("/on-call-duty-policy-schedule-calendar-feed")),
|
|
686
|
+
Entity({
|
|
687
|
+
name: "OnCallDutyPolicyScheduleCalendarFeed",
|
|
688
|
+
}),
|
|
689
|
+
TableMetadata({
|
|
690
|
+
tableName: "OnCallDutyPolicyScheduleCalendarFeed",
|
|
691
|
+
singularName: "On-Call Schedule Calendar Feed",
|
|
692
|
+
pluralName: "On-Call Schedule Calendar Feeds",
|
|
693
|
+
icon: IconProp.Calendar,
|
|
694
|
+
tableDescription: "A shared calendar-subscription link that renders everybody's shifts on one on-call schedule.",
|
|
695
|
+
}),
|
|
696
|
+
Index(["onCallDutyPolicyScheduleId"], { unique: true })
|
|
697
|
+
], OnCallDutyPolicyScheduleCalendarFeed);
|
|
698
|
+
export default OnCallDutyPolicyScheduleCalendarFeed;
|
|
699
|
+
//# sourceMappingURL=OnCallDutyPolicyScheduleCalendarFeed.js.map
|