@oneuptime/common 11.3.21 → 11.3.22
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/AnalyticsModels/AnalyticsBaseModel/CommonModel.ts +2 -0
- package/Models/AnalyticsModels/ExceptionInstance.ts +1 -0
- package/Models/AnalyticsModels/Log.ts +1 -0
- package/Models/AnalyticsModels/Metric.ts +1 -0
- package/Models/AnalyticsModels/MonitorLog.ts +1 -0
- package/Models/AnalyticsModels/Span.ts +1 -0
- package/Models/DatabaseModels/Alert.ts +100 -0
- package/Models/DatabaseModels/AlertInternalNote.ts +2 -0
- package/Models/DatabaseModels/AlertReminderRule.ts +597 -0
- package/Models/DatabaseModels/AlertSeverity.ts +2 -0
- package/Models/DatabaseModels/AlertState.ts +2 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +2 -0
- package/Models/DatabaseModels/Incident.ts +100 -0
- package/Models/DatabaseModels/IncidentInternalNote.ts +2 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +2 -0
- package/Models/DatabaseModels/IncidentReminderRule.ts +597 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +2 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +2 -0
- package/Models/DatabaseModels/Index.ts +6 -0
- package/Models/DatabaseModels/Label.ts +2 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +2 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +100 -0
- package/Models/DatabaseModels/ScheduledMaintenanceReminderRule.ts +585 -0
- package/Models/DatabaseModels/ScheduledMaintenanceState.ts +2 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +2 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +2 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783234451106-AddIncidentAlertReminderRules.ts +211 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783320000000-AddScheduledMaintenanceReminderRules.ts +113 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783330000000-AddRemindWhileScheduledToScheduledMaintenanceReminderRule.ts +20 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783340000000-AddLabelsToIncidentAndAlertReminderRules.ts +69 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Services/AlertReminderRuleService.ts +253 -0
- package/Server/Services/AlertService.ts +106 -0
- package/Server/Services/IncidentReminderRuleService.ts +256 -0
- package/Server/Services/IncidentService.ts +143 -0
- package/Server/Services/Index.ts +6 -0
- package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +236 -0
- package/Server/Services/ScheduledMaintenanceService.ts +127 -0
- package/Server/Services/TelemetryExceptionService.ts +123 -0
- package/Server/Services/UserNotificationSettingService.ts +24 -0
- package/Server/Utils/AnalyticsDatabase/Statement.ts +7 -3
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +35 -0
- package/Server/Utils/WhatsAppTemplateUtil.ts +10 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +49 -0
- package/Types/Email/EmailTemplateType.ts +3 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +3 -0
- package/Types/Permission.ts +144 -0
- package/Types/Reminder/ReminderStopState.ts +6 -0
- package/Types/Reminder/ScheduledMaintenanceReminderStopState.ts +6 -0
- package/Types/WhatsApp/WhatsAppTemplates.ts +14 -0
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +1 -0
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js +1 -0
- package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Metric.js +1 -0
- package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MonitorLog.js +1 -0
- package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js +1 -0
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +103 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertReminderRule.js +605 -0
- package/build/dist/Models/DatabaseModels/AlertReminderRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertState.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +103 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentReminderRule.js +605 -0
- package/build/dist/Models/DatabaseModels/IncidentReminderRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +6 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Label.js +2 -0
- package/build/dist/Models/DatabaseModels/Label.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +103 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceReminderRule.js +596 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceReminderRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js +2 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +2 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +2 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783234451106-AddIncidentAlertReminderRules.js +78 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783234451106-AddIncidentAlertReminderRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783320000000-AddScheduledMaintenanceReminderRules.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783320000000-AddScheduledMaintenanceReminderRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783330000000-AddRemindWhileScheduledToScheduledMaintenanceReminderRule.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783330000000-AddRemindWhileScheduledToScheduledMaintenanceReminderRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783340000000-AddLabelsToIncidentAndAlertReminderRules.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783340000000-AddLabelsToIncidentAndAlertReminderRules.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/AlertReminderRuleService.js +228 -0
- package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -0
- package/build/dist/Server/Services/AlertService.js +87 -0
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/IncidentReminderRuleService.js +231 -0
- package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +116 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +6 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +214 -0
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +102 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +101 -0
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +6 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +4 -2
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +29 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +6 -0
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +3 -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/Permission.js +126 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Reminder/ReminderStopState.js +7 -0
- package/build/dist/Types/Reminder/ReminderStopState.js.map +1 -0
- package/build/dist/Types/Reminder/ScheduledMaintenanceReminderStopState.js +7 -0
- package/build/dist/Types/Reminder/ScheduledMaintenanceReminderStopState.js.map +1 -0
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +9 -0
- package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
- package/package.json +1 -1
|
@@ -1829,4 +1829,104 @@ export default class ScheduledMaintenance extends BaseModel {
|
|
|
1829
1829
|
nullable: true,
|
|
1830
1830
|
})
|
|
1831
1831
|
public isVisibleOnStatusPage?: boolean = undefined;
|
|
1832
|
+
|
|
1833
|
+
@ColumnAccessControl({
|
|
1834
|
+
create: [
|
|
1835
|
+
Permission.ProjectOwner,
|
|
1836
|
+
Permission.ProjectAdmin,
|
|
1837
|
+
Permission.ProjectMember,
|
|
1838
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
1839
|
+
Permission.ScheduledMaintenanceMember,
|
|
1840
|
+
Permission.CreateProjectScheduledMaintenance,
|
|
1841
|
+
],
|
|
1842
|
+
read: [
|
|
1843
|
+
Permission.ProjectOwner,
|
|
1844
|
+
Permission.ProjectAdmin,
|
|
1845
|
+
Permission.ProjectMember,
|
|
1846
|
+
Permission.Viewer,
|
|
1847
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
1848
|
+
Permission.ScheduledMaintenanceMember,
|
|
1849
|
+
Permission.ScheduledMaintenanceViewer,
|
|
1850
|
+
Permission.ReadProjectScheduledMaintenance,
|
|
1851
|
+
],
|
|
1852
|
+
update: [
|
|
1853
|
+
Permission.ProjectOwner,
|
|
1854
|
+
Permission.ProjectAdmin,
|
|
1855
|
+
Permission.ProjectMember,
|
|
1856
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
1857
|
+
Permission.ScheduledMaintenanceMember,
|
|
1858
|
+
Permission.EditProjectScheduledMaintenance,
|
|
1859
|
+
],
|
|
1860
|
+
})
|
|
1861
|
+
@TableColumn({
|
|
1862
|
+
isDefaultValueColumn: true,
|
|
1863
|
+
type: TableColumnType.Boolean,
|
|
1864
|
+
title: "Send Reminders?",
|
|
1865
|
+
description:
|
|
1866
|
+
"Should reminder notifications be sent to owners while this scheduled maintenance event is still not complete? Reminders are sent based on the reminder rules configured for this project.",
|
|
1867
|
+
defaultValue: true,
|
|
1868
|
+
})
|
|
1869
|
+
@Column({
|
|
1870
|
+
type: ColumnType.Boolean,
|
|
1871
|
+
default: true,
|
|
1872
|
+
nullable: true,
|
|
1873
|
+
})
|
|
1874
|
+
public enableReminders?: boolean = undefined;
|
|
1875
|
+
|
|
1876
|
+
@ColumnAccessControl({
|
|
1877
|
+
create: [],
|
|
1878
|
+
read: [
|
|
1879
|
+
Permission.ProjectOwner,
|
|
1880
|
+
Permission.ProjectAdmin,
|
|
1881
|
+
Permission.ProjectMember,
|
|
1882
|
+
Permission.Viewer,
|
|
1883
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
1884
|
+
Permission.ScheduledMaintenanceMember,
|
|
1885
|
+
Permission.ScheduledMaintenanceViewer,
|
|
1886
|
+
Permission.ReadProjectScheduledMaintenance,
|
|
1887
|
+
],
|
|
1888
|
+
update: [],
|
|
1889
|
+
})
|
|
1890
|
+
@Index()
|
|
1891
|
+
@TableColumn({
|
|
1892
|
+
type: TableColumnType.Date,
|
|
1893
|
+
required: false,
|
|
1894
|
+
isDefaultValueColumn: false,
|
|
1895
|
+
title: "Next Reminder Notification At",
|
|
1896
|
+
description:
|
|
1897
|
+
"When will the next reminder notification be sent to owners of this scheduled maintenance event? This is set automatically based on the reminder rules configured for this project.",
|
|
1898
|
+
})
|
|
1899
|
+
@Column({
|
|
1900
|
+
type: ColumnType.Date,
|
|
1901
|
+
nullable: true,
|
|
1902
|
+
})
|
|
1903
|
+
public nextReminderNotificationAt?: Date = undefined;
|
|
1904
|
+
|
|
1905
|
+
@ColumnAccessControl({
|
|
1906
|
+
create: [],
|
|
1907
|
+
read: [
|
|
1908
|
+
Permission.ProjectOwner,
|
|
1909
|
+
Permission.ProjectAdmin,
|
|
1910
|
+
Permission.ProjectMember,
|
|
1911
|
+
Permission.Viewer,
|
|
1912
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
1913
|
+
Permission.ScheduledMaintenanceMember,
|
|
1914
|
+
Permission.ScheduledMaintenanceViewer,
|
|
1915
|
+
Permission.ReadProjectScheduledMaintenance,
|
|
1916
|
+
],
|
|
1917
|
+
update: [],
|
|
1918
|
+
})
|
|
1919
|
+
@TableColumn({
|
|
1920
|
+
type: TableColumnType.Number,
|
|
1921
|
+
required: false,
|
|
1922
|
+
isDefaultValueColumn: false,
|
|
1923
|
+
title: "Reminder Notifications Sent Count",
|
|
1924
|
+
description:
|
|
1925
|
+
"How many reminder notifications have been sent to owners of this scheduled maintenance event so far.",
|
|
1926
|
+
})
|
|
1927
|
+
@Column({
|
|
1928
|
+
type: ColumnType.Number,
|
|
1929
|
+
nullable: true,
|
|
1930
|
+
})
|
|
1931
|
+
public reminderNotificationSentCount?: number = undefined;
|
|
1832
1932
|
}
|
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
import Label from "./Label";
|
|
2
|
+
import Project from "./Project";
|
|
3
|
+
import User from "./User";
|
|
4
|
+
import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
5
|
+
import Route from "../../Types/API/Route";
|
|
6
|
+
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
7
|
+
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
8
|
+
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
9
|
+
import ColumnType from "../../Types/Database/ColumnType";
|
|
10
|
+
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
11
|
+
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
12
|
+
import EnableWorkflow from "../../Types/Database/EnableWorkflow";
|
|
13
|
+
import TableColumn from "../../Types/Database/TableColumn";
|
|
14
|
+
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
15
|
+
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
16
|
+
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
17
|
+
import IconProp from "../../Types/Icon/IconProp";
|
|
18
|
+
import ObjectID from "../../Types/ObjectID";
|
|
19
|
+
import Permission from "../../Types/Permission";
|
|
20
|
+
import ScheduledMaintenanceReminderStopState from "../../Types/Reminder/ScheduledMaintenanceReminderStopState";
|
|
21
|
+
import {
|
|
22
|
+
Column,
|
|
23
|
+
Entity,
|
|
24
|
+
Index,
|
|
25
|
+
JoinColumn,
|
|
26
|
+
JoinTable,
|
|
27
|
+
ManyToMany,
|
|
28
|
+
ManyToOne,
|
|
29
|
+
} from "typeorm";
|
|
30
|
+
|
|
31
|
+
@EnableDocumentation()
|
|
32
|
+
@TenantColumn("projectId")
|
|
33
|
+
@TableAccessControl({
|
|
34
|
+
create: [
|
|
35
|
+
Permission.ProjectOwner,
|
|
36
|
+
Permission.ProjectAdmin,
|
|
37
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
38
|
+
],
|
|
39
|
+
read: [
|
|
40
|
+
Permission.ProjectOwner,
|
|
41
|
+
Permission.ProjectAdmin,
|
|
42
|
+
Permission.ProjectMember,
|
|
43
|
+
Permission.Viewer,
|
|
44
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
45
|
+
Permission.ScheduledMaintenanceMember,
|
|
46
|
+
Permission.ScheduledMaintenanceViewer,
|
|
47
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
48
|
+
],
|
|
49
|
+
delete: [
|
|
50
|
+
Permission.ProjectOwner,
|
|
51
|
+
Permission.ProjectAdmin,
|
|
52
|
+
Permission.DeleteScheduledMaintenanceReminderRule,
|
|
53
|
+
],
|
|
54
|
+
update: [
|
|
55
|
+
Permission.ProjectOwner,
|
|
56
|
+
Permission.ProjectAdmin,
|
|
57
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
58
|
+
],
|
|
59
|
+
})
|
|
60
|
+
@CrudApiEndpoint(new Route("/scheduled-maintenance-reminder-rule"))
|
|
61
|
+
@Entity({
|
|
62
|
+
name: "ScheduledMaintenanceReminderRule",
|
|
63
|
+
})
|
|
64
|
+
@EnableWorkflow({
|
|
65
|
+
create: true,
|
|
66
|
+
delete: true,
|
|
67
|
+
update: true,
|
|
68
|
+
read: true,
|
|
69
|
+
})
|
|
70
|
+
@TableMetadata({
|
|
71
|
+
tableName: "ScheduledMaintenanceReminderRule",
|
|
72
|
+
singularName: "Scheduled Maintenance Reminder Rule",
|
|
73
|
+
pluralName: "Scheduled Maintenance Reminder Rules",
|
|
74
|
+
icon: IconProp.Bell,
|
|
75
|
+
tableDescription:
|
|
76
|
+
"Configure reminder rules to periodically notify scheduled maintenance event owners while an event is still not complete",
|
|
77
|
+
})
|
|
78
|
+
export default class ScheduledMaintenanceReminderRule extends BaseModel {
|
|
79
|
+
@ColumnAccessControl({
|
|
80
|
+
create: [
|
|
81
|
+
Permission.ProjectOwner,
|
|
82
|
+
Permission.ProjectAdmin,
|
|
83
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
84
|
+
],
|
|
85
|
+
read: [
|
|
86
|
+
Permission.ProjectOwner,
|
|
87
|
+
Permission.ProjectAdmin,
|
|
88
|
+
Permission.ProjectMember,
|
|
89
|
+
Permission.Viewer,
|
|
90
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
91
|
+
Permission.ScheduledMaintenanceMember,
|
|
92
|
+
Permission.ScheduledMaintenanceViewer,
|
|
93
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
94
|
+
],
|
|
95
|
+
update: [],
|
|
96
|
+
})
|
|
97
|
+
@TableColumn({
|
|
98
|
+
manyToOneRelationColumn: "projectId",
|
|
99
|
+
type: TableColumnType.Entity,
|
|
100
|
+
modelType: Project,
|
|
101
|
+
title: "Project",
|
|
102
|
+
description: "Relation to Project Resource in which this object belongs",
|
|
103
|
+
})
|
|
104
|
+
@ManyToOne(
|
|
105
|
+
() => {
|
|
106
|
+
return Project;
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
eager: false,
|
|
110
|
+
nullable: true,
|
|
111
|
+
onDelete: "CASCADE",
|
|
112
|
+
orphanedRowAction: "nullify",
|
|
113
|
+
},
|
|
114
|
+
)
|
|
115
|
+
@JoinColumn({ name: "projectId" })
|
|
116
|
+
public project?: Project = undefined;
|
|
117
|
+
|
|
118
|
+
@ColumnAccessControl({
|
|
119
|
+
create: [
|
|
120
|
+
Permission.ProjectOwner,
|
|
121
|
+
Permission.ProjectAdmin,
|
|
122
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
123
|
+
],
|
|
124
|
+
read: [
|
|
125
|
+
Permission.ProjectOwner,
|
|
126
|
+
Permission.ProjectAdmin,
|
|
127
|
+
Permission.ProjectMember,
|
|
128
|
+
Permission.Viewer,
|
|
129
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
130
|
+
Permission.ScheduledMaintenanceMember,
|
|
131
|
+
Permission.ScheduledMaintenanceViewer,
|
|
132
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
133
|
+
],
|
|
134
|
+
update: [],
|
|
135
|
+
})
|
|
136
|
+
@Index()
|
|
137
|
+
@TableColumn({
|
|
138
|
+
type: TableColumnType.ObjectID,
|
|
139
|
+
required: true,
|
|
140
|
+
canReadOnRelationQuery: true,
|
|
141
|
+
title: "Project ID",
|
|
142
|
+
description: "ID of your OneUptime Project in which this object belongs",
|
|
143
|
+
})
|
|
144
|
+
@Column({
|
|
145
|
+
type: ColumnType.ObjectID,
|
|
146
|
+
nullable: false,
|
|
147
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
148
|
+
})
|
|
149
|
+
public projectId?: ObjectID = undefined;
|
|
150
|
+
|
|
151
|
+
@ColumnAccessControl({
|
|
152
|
+
create: [
|
|
153
|
+
Permission.ProjectOwner,
|
|
154
|
+
Permission.ProjectAdmin,
|
|
155
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
156
|
+
],
|
|
157
|
+
read: [
|
|
158
|
+
Permission.ProjectOwner,
|
|
159
|
+
Permission.ProjectAdmin,
|
|
160
|
+
Permission.ProjectMember,
|
|
161
|
+
Permission.Viewer,
|
|
162
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
163
|
+
Permission.ScheduledMaintenanceMember,
|
|
164
|
+
Permission.ScheduledMaintenanceViewer,
|
|
165
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
166
|
+
],
|
|
167
|
+
update: [
|
|
168
|
+
Permission.ProjectOwner,
|
|
169
|
+
Permission.ProjectAdmin,
|
|
170
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
171
|
+
],
|
|
172
|
+
})
|
|
173
|
+
@Index()
|
|
174
|
+
@TableColumn({
|
|
175
|
+
required: true,
|
|
176
|
+
type: TableColumnType.ShortText,
|
|
177
|
+
canReadOnRelationQuery: true,
|
|
178
|
+
title: "Name",
|
|
179
|
+
description: "Name of this reminder rule",
|
|
180
|
+
})
|
|
181
|
+
@Column({
|
|
182
|
+
nullable: false,
|
|
183
|
+
type: ColumnType.ShortText,
|
|
184
|
+
length: ColumnLength.ShortText,
|
|
185
|
+
})
|
|
186
|
+
public name?: string = undefined;
|
|
187
|
+
|
|
188
|
+
@ColumnAccessControl({
|
|
189
|
+
create: [
|
|
190
|
+
Permission.ProjectOwner,
|
|
191
|
+
Permission.ProjectAdmin,
|
|
192
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
193
|
+
],
|
|
194
|
+
read: [
|
|
195
|
+
Permission.ProjectOwner,
|
|
196
|
+
Permission.ProjectAdmin,
|
|
197
|
+
Permission.ProjectMember,
|
|
198
|
+
Permission.Viewer,
|
|
199
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
200
|
+
Permission.ScheduledMaintenanceMember,
|
|
201
|
+
Permission.ScheduledMaintenanceViewer,
|
|
202
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
203
|
+
],
|
|
204
|
+
update: [
|
|
205
|
+
Permission.ProjectOwner,
|
|
206
|
+
Permission.ProjectAdmin,
|
|
207
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
208
|
+
],
|
|
209
|
+
})
|
|
210
|
+
@TableColumn({
|
|
211
|
+
required: false,
|
|
212
|
+
type: TableColumnType.LongText,
|
|
213
|
+
title: "Description",
|
|
214
|
+
description: "Description of this reminder rule",
|
|
215
|
+
canReadOnRelationQuery: true,
|
|
216
|
+
})
|
|
217
|
+
@Column({
|
|
218
|
+
nullable: true,
|
|
219
|
+
type: ColumnType.LongText,
|
|
220
|
+
length: ColumnLength.LongText,
|
|
221
|
+
})
|
|
222
|
+
public description?: string = undefined;
|
|
223
|
+
|
|
224
|
+
@ColumnAccessControl({
|
|
225
|
+
create: [
|
|
226
|
+
Permission.ProjectOwner,
|
|
227
|
+
Permission.ProjectAdmin,
|
|
228
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
229
|
+
],
|
|
230
|
+
read: [
|
|
231
|
+
Permission.ProjectOwner,
|
|
232
|
+
Permission.ProjectAdmin,
|
|
233
|
+
Permission.ProjectMember,
|
|
234
|
+
Permission.Viewer,
|
|
235
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
236
|
+
Permission.ScheduledMaintenanceMember,
|
|
237
|
+
Permission.ScheduledMaintenanceViewer,
|
|
238
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
239
|
+
],
|
|
240
|
+
update: [
|
|
241
|
+
Permission.ProjectOwner,
|
|
242
|
+
Permission.ProjectAdmin,
|
|
243
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
244
|
+
],
|
|
245
|
+
})
|
|
246
|
+
@Index()
|
|
247
|
+
@TableColumn({
|
|
248
|
+
required: true,
|
|
249
|
+
type: TableColumnType.Number,
|
|
250
|
+
title: "Order",
|
|
251
|
+
description:
|
|
252
|
+
"Order/priority of this rule. Rules are evaluated in order (lowest first). First matching rule wins.",
|
|
253
|
+
defaultValue: 1,
|
|
254
|
+
isDefaultValueColumn: true,
|
|
255
|
+
})
|
|
256
|
+
@Column({
|
|
257
|
+
type: ColumnType.Number,
|
|
258
|
+
nullable: false,
|
|
259
|
+
default: 1,
|
|
260
|
+
})
|
|
261
|
+
public order?: number = undefined;
|
|
262
|
+
|
|
263
|
+
@ColumnAccessControl({
|
|
264
|
+
create: [
|
|
265
|
+
Permission.ProjectOwner,
|
|
266
|
+
Permission.ProjectAdmin,
|
|
267
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
268
|
+
],
|
|
269
|
+
read: [
|
|
270
|
+
Permission.ProjectOwner,
|
|
271
|
+
Permission.ProjectAdmin,
|
|
272
|
+
Permission.ProjectMember,
|
|
273
|
+
Permission.Viewer,
|
|
274
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
275
|
+
Permission.ScheduledMaintenanceMember,
|
|
276
|
+
Permission.ScheduledMaintenanceViewer,
|
|
277
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
278
|
+
],
|
|
279
|
+
update: [
|
|
280
|
+
Permission.ProjectOwner,
|
|
281
|
+
Permission.ProjectAdmin,
|
|
282
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
283
|
+
],
|
|
284
|
+
})
|
|
285
|
+
@Index()
|
|
286
|
+
@TableColumn({
|
|
287
|
+
required: true,
|
|
288
|
+
type: TableColumnType.Boolean,
|
|
289
|
+
title: "Is Enabled",
|
|
290
|
+
description: "Whether this reminder rule is enabled",
|
|
291
|
+
defaultValue: true,
|
|
292
|
+
isDefaultValueColumn: true,
|
|
293
|
+
})
|
|
294
|
+
@Column({
|
|
295
|
+
type: ColumnType.Boolean,
|
|
296
|
+
nullable: false,
|
|
297
|
+
default: true,
|
|
298
|
+
})
|
|
299
|
+
public isEnabled?: boolean = undefined;
|
|
300
|
+
|
|
301
|
+
@ColumnAccessControl({
|
|
302
|
+
create: [
|
|
303
|
+
Permission.ProjectOwner,
|
|
304
|
+
Permission.ProjectAdmin,
|
|
305
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
306
|
+
],
|
|
307
|
+
read: [
|
|
308
|
+
Permission.ProjectOwner,
|
|
309
|
+
Permission.ProjectAdmin,
|
|
310
|
+
Permission.ProjectMember,
|
|
311
|
+
Permission.Viewer,
|
|
312
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
313
|
+
Permission.ScheduledMaintenanceMember,
|
|
314
|
+
Permission.ScheduledMaintenanceViewer,
|
|
315
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
316
|
+
],
|
|
317
|
+
update: [
|
|
318
|
+
Permission.ProjectOwner,
|
|
319
|
+
Permission.ProjectAdmin,
|
|
320
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
321
|
+
],
|
|
322
|
+
})
|
|
323
|
+
@TableColumn({
|
|
324
|
+
required: true,
|
|
325
|
+
type: TableColumnType.Number,
|
|
326
|
+
title: "Reminder Interval (Minutes)",
|
|
327
|
+
description:
|
|
328
|
+
"How often (in minutes) to remind scheduled maintenance event owners while the event is still not complete. For example, set to 30 to remind owners every 30 minutes.",
|
|
329
|
+
canReadOnRelationQuery: true,
|
|
330
|
+
})
|
|
331
|
+
@Column({
|
|
332
|
+
type: ColumnType.Number,
|
|
333
|
+
nullable: false,
|
|
334
|
+
})
|
|
335
|
+
public reminderIntervalInMinutes?: number = undefined;
|
|
336
|
+
|
|
337
|
+
@ColumnAccessControl({
|
|
338
|
+
create: [
|
|
339
|
+
Permission.ProjectOwner,
|
|
340
|
+
Permission.ProjectAdmin,
|
|
341
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
342
|
+
],
|
|
343
|
+
read: [
|
|
344
|
+
Permission.ProjectOwner,
|
|
345
|
+
Permission.ProjectAdmin,
|
|
346
|
+
Permission.ProjectMember,
|
|
347
|
+
Permission.Viewer,
|
|
348
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
349
|
+
Permission.ScheduledMaintenanceMember,
|
|
350
|
+
Permission.ScheduledMaintenanceViewer,
|
|
351
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
352
|
+
],
|
|
353
|
+
update: [
|
|
354
|
+
Permission.ProjectOwner,
|
|
355
|
+
Permission.ProjectAdmin,
|
|
356
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
357
|
+
],
|
|
358
|
+
})
|
|
359
|
+
@TableColumn({
|
|
360
|
+
required: true,
|
|
361
|
+
type: TableColumnType.ShortText,
|
|
362
|
+
title: "Stop Reminders When",
|
|
363
|
+
description:
|
|
364
|
+
"Stop sending reminders once the scheduled maintenance event reaches this state. Select Ongoing to stop reminders when the event starts, or Completed to keep reminding until the event is completed.",
|
|
365
|
+
defaultValue: ScheduledMaintenanceReminderStopState.Completed,
|
|
366
|
+
isDefaultValueColumn: true,
|
|
367
|
+
canReadOnRelationQuery: true,
|
|
368
|
+
})
|
|
369
|
+
@Column({
|
|
370
|
+
type: ColumnType.ShortText,
|
|
371
|
+
nullable: false,
|
|
372
|
+
default: ScheduledMaintenanceReminderStopState.Completed,
|
|
373
|
+
})
|
|
374
|
+
public stopRemindersOnState?: ScheduledMaintenanceReminderStopState =
|
|
375
|
+
undefined;
|
|
376
|
+
|
|
377
|
+
@ColumnAccessControl({
|
|
378
|
+
create: [
|
|
379
|
+
Permission.ProjectOwner,
|
|
380
|
+
Permission.ProjectAdmin,
|
|
381
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
382
|
+
],
|
|
383
|
+
read: [
|
|
384
|
+
Permission.ProjectOwner,
|
|
385
|
+
Permission.ProjectAdmin,
|
|
386
|
+
Permission.ProjectMember,
|
|
387
|
+
Permission.Viewer,
|
|
388
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
389
|
+
Permission.ScheduledMaintenanceMember,
|
|
390
|
+
Permission.ScheduledMaintenanceViewer,
|
|
391
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
392
|
+
],
|
|
393
|
+
update: [
|
|
394
|
+
Permission.ProjectOwner,
|
|
395
|
+
Permission.ProjectAdmin,
|
|
396
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
397
|
+
],
|
|
398
|
+
})
|
|
399
|
+
@TableColumn({
|
|
400
|
+
required: true,
|
|
401
|
+
type: TableColumnType.Boolean,
|
|
402
|
+
title: "Remind While Event is Scheduled",
|
|
403
|
+
description:
|
|
404
|
+
"Send reminders while the event is still scheduled (before it starts). When disabled, reminders only begin once the event has started.",
|
|
405
|
+
defaultValue: false,
|
|
406
|
+
isDefaultValueColumn: true,
|
|
407
|
+
canReadOnRelationQuery: true,
|
|
408
|
+
})
|
|
409
|
+
@Column({
|
|
410
|
+
type: ColumnType.Boolean,
|
|
411
|
+
nullable: false,
|
|
412
|
+
default: false,
|
|
413
|
+
})
|
|
414
|
+
public remindWhileScheduled?: boolean = undefined;
|
|
415
|
+
|
|
416
|
+
// Match Criteria - Labels
|
|
417
|
+
|
|
418
|
+
@ColumnAccessControl({
|
|
419
|
+
create: [
|
|
420
|
+
Permission.ProjectOwner,
|
|
421
|
+
Permission.ProjectAdmin,
|
|
422
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
423
|
+
],
|
|
424
|
+
read: [
|
|
425
|
+
Permission.ProjectOwner,
|
|
426
|
+
Permission.ProjectAdmin,
|
|
427
|
+
Permission.ProjectMember,
|
|
428
|
+
Permission.Viewer,
|
|
429
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
430
|
+
Permission.ScheduledMaintenanceMember,
|
|
431
|
+
Permission.ScheduledMaintenanceViewer,
|
|
432
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
433
|
+
],
|
|
434
|
+
update: [
|
|
435
|
+
Permission.ProjectOwner,
|
|
436
|
+
Permission.ProjectAdmin,
|
|
437
|
+
Permission.EditScheduledMaintenanceReminderRule,
|
|
438
|
+
],
|
|
439
|
+
})
|
|
440
|
+
@TableColumn({
|
|
441
|
+
required: false,
|
|
442
|
+
type: TableColumnType.EntityArray,
|
|
443
|
+
modelType: Label,
|
|
444
|
+
title: "Labels",
|
|
445
|
+
description:
|
|
446
|
+
"Only apply this reminder rule to scheduled maintenance events with these labels. Leave empty to match all events.",
|
|
447
|
+
})
|
|
448
|
+
@ManyToMany(
|
|
449
|
+
() => {
|
|
450
|
+
return Label;
|
|
451
|
+
},
|
|
452
|
+
{ eager: false },
|
|
453
|
+
)
|
|
454
|
+
@JoinTable({
|
|
455
|
+
name: "ScheduledMaintenanceReminderRuleLabel",
|
|
456
|
+
inverseJoinColumn: {
|
|
457
|
+
name: "labelId",
|
|
458
|
+
referencedColumnName: "_id",
|
|
459
|
+
},
|
|
460
|
+
joinColumn: {
|
|
461
|
+
name: "scheduledMaintenanceReminderRuleId",
|
|
462
|
+
referencedColumnName: "_id",
|
|
463
|
+
},
|
|
464
|
+
})
|
|
465
|
+
public labels?: Array<Label> = undefined;
|
|
466
|
+
|
|
467
|
+
// Created By / Deleted By User Relations
|
|
468
|
+
|
|
469
|
+
@ColumnAccessControl({
|
|
470
|
+
create: [
|
|
471
|
+
Permission.ProjectOwner,
|
|
472
|
+
Permission.ProjectAdmin,
|
|
473
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
474
|
+
],
|
|
475
|
+
read: [
|
|
476
|
+
Permission.ProjectOwner,
|
|
477
|
+
Permission.ProjectAdmin,
|
|
478
|
+
Permission.ProjectMember,
|
|
479
|
+
Permission.Viewer,
|
|
480
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
481
|
+
Permission.ScheduledMaintenanceMember,
|
|
482
|
+
Permission.ScheduledMaintenanceViewer,
|
|
483
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
484
|
+
],
|
|
485
|
+
update: [],
|
|
486
|
+
})
|
|
487
|
+
@TableColumn({
|
|
488
|
+
manyToOneRelationColumn: "createdByUserId",
|
|
489
|
+
type: TableColumnType.Entity,
|
|
490
|
+
modelType: User,
|
|
491
|
+
title: "Created by User",
|
|
492
|
+
description:
|
|
493
|
+
"Relation to User who created this object (if this object was created by a User)",
|
|
494
|
+
})
|
|
495
|
+
@ManyToOne(
|
|
496
|
+
() => {
|
|
497
|
+
return User;
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
eager: false,
|
|
501
|
+
nullable: true,
|
|
502
|
+
onDelete: "SET NULL",
|
|
503
|
+
orphanedRowAction: "nullify",
|
|
504
|
+
},
|
|
505
|
+
)
|
|
506
|
+
@JoinColumn({ name: "createdByUserId" })
|
|
507
|
+
public createdByUser?: User = undefined;
|
|
508
|
+
|
|
509
|
+
@ColumnAccessControl({
|
|
510
|
+
create: [
|
|
511
|
+
Permission.ProjectOwner,
|
|
512
|
+
Permission.ProjectAdmin,
|
|
513
|
+
Permission.CreateScheduledMaintenanceReminderRule,
|
|
514
|
+
],
|
|
515
|
+
read: [
|
|
516
|
+
Permission.ProjectOwner,
|
|
517
|
+
Permission.ProjectAdmin,
|
|
518
|
+
Permission.ProjectMember,
|
|
519
|
+
Permission.Viewer,
|
|
520
|
+
Permission.ScheduledMaintenanceAdmin,
|
|
521
|
+
Permission.ScheduledMaintenanceMember,
|
|
522
|
+
Permission.ScheduledMaintenanceViewer,
|
|
523
|
+
Permission.ReadScheduledMaintenanceReminderRule,
|
|
524
|
+
],
|
|
525
|
+
update: [],
|
|
526
|
+
})
|
|
527
|
+
@TableColumn({
|
|
528
|
+
type: TableColumnType.ObjectID,
|
|
529
|
+
title: "Created by User ID",
|
|
530
|
+
description:
|
|
531
|
+
"User ID who created this object (if this object was created by a User)",
|
|
532
|
+
})
|
|
533
|
+
@Column({
|
|
534
|
+
type: ColumnType.ObjectID,
|
|
535
|
+
nullable: true,
|
|
536
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
537
|
+
})
|
|
538
|
+
public createdByUserId?: ObjectID = undefined;
|
|
539
|
+
|
|
540
|
+
@ColumnAccessControl({
|
|
541
|
+
create: [],
|
|
542
|
+
read: [],
|
|
543
|
+
update: [],
|
|
544
|
+
})
|
|
545
|
+
@TableColumn({
|
|
546
|
+
manyToOneRelationColumn: "deletedByUserId",
|
|
547
|
+
type: TableColumnType.Entity,
|
|
548
|
+
title: "Deleted by User",
|
|
549
|
+
modelType: User,
|
|
550
|
+
description:
|
|
551
|
+
"Relation to User who deleted this object (if this object was deleted by a User)",
|
|
552
|
+
})
|
|
553
|
+
@ManyToOne(
|
|
554
|
+
() => {
|
|
555
|
+
return User;
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
cascade: false,
|
|
559
|
+
eager: false,
|
|
560
|
+
nullable: true,
|
|
561
|
+
onDelete: "SET NULL",
|
|
562
|
+
orphanedRowAction: "nullify",
|
|
563
|
+
},
|
|
564
|
+
)
|
|
565
|
+
@JoinColumn({ name: "deletedByUserId" })
|
|
566
|
+
public deletedByUser?: User = undefined;
|
|
567
|
+
|
|
568
|
+
@ColumnAccessControl({
|
|
569
|
+
create: [],
|
|
570
|
+
read: [],
|
|
571
|
+
update: [],
|
|
572
|
+
})
|
|
573
|
+
@TableColumn({
|
|
574
|
+
type: TableColumnType.ObjectID,
|
|
575
|
+
title: "Deleted by User ID",
|
|
576
|
+
description:
|
|
577
|
+
"User ID who deleted this object (if this object was deleted by a User)",
|
|
578
|
+
})
|
|
579
|
+
@Column({
|
|
580
|
+
type: ColumnType.ObjectID,
|
|
581
|
+
nullable: true,
|
|
582
|
+
transformer: ObjectID.getDatabaseTransformer(),
|
|
583
|
+
})
|
|
584
|
+
public deletedByUserId?: ObjectID = undefined;
|
|
585
|
+
}
|
|
@@ -11,6 +11,7 @@ import ColumnLength from "../../Types/Database/ColumnLength";
|
|
|
11
11
|
import ColumnType from "../../Types/Database/ColumnType";
|
|
12
12
|
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
13
13
|
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
14
|
+
import EnableMCP from "../../Types/Database/EnableMCP";
|
|
14
15
|
import EnableWorkflow from "../../Types/Database/EnableWorkflow";
|
|
15
16
|
import ColorField from "../../Types/Database/ColorField";
|
|
16
17
|
import SlugifyColumn from "../../Types/Database/SlugifyColumn";
|
|
@@ -31,6 +32,7 @@ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
|
31
32
|
delete: PlanType.Free,
|
|
32
33
|
})
|
|
33
34
|
@EnableDocumentation()
|
|
35
|
+
@EnableMCP()
|
|
34
36
|
@TenantColumn("projectId")
|
|
35
37
|
@TableAccessControl({
|
|
36
38
|
create: [
|