@oneuptime/common 10.0.96 → 10.0.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/Models/AnalyticsModels/Log.ts +6 -0
  2. package/Models/AnalyticsModels/Metric.ts +6 -0
  3. package/Models/AnalyticsModels/Profile.ts +6 -0
  4. package/Models/AnalyticsModels/Span.ts +6 -0
  5. package/Models/DatabaseModels/Alert.ts +52 -0
  6. package/Models/DatabaseModels/DockerHost.ts +3 -10
  7. package/Models/DatabaseModels/Host.ts +1015 -0
  8. package/Models/DatabaseModels/HostOwnerTeam.ts +462 -0
  9. package/Models/DatabaseModels/HostOwnerUser.ts +461 -0
  10. package/Models/DatabaseModels/Incident.ts +52 -0
  11. package/Models/DatabaseModels/Index.ts +6 -0
  12. package/Models/DatabaseModels/KubernetesCluster.ts +0 -7
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1778006035712-AddHostTables.ts +201 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1778013317872-AddHostIpAddresses.ts +15 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1778066346303-WidenHostOsVersionToLongText.ts +42 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1778070278986-MigrationName.ts +79 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  18. package/Server/Services/HostOwnerTeamService.ts +10 -0
  19. package/Server/Services/HostOwnerUserService.ts +10 -0
  20. package/Server/Services/HostService.ts +227 -0
  21. package/Server/Services/LogAggregationService.ts +10 -3
  22. package/Server/Services/MetricService.ts +200 -0
  23. package/Server/Services/TraceAggregationService.ts +8 -3
  24. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +46 -18
  25. package/Server/Utils/Monitor/MonitorAlert.ts +31 -0
  26. package/Server/Utils/Monitor/MonitorIncident.ts +31 -0
  27. package/Tests/Server/Services/LogAggregationService.test.ts +25 -0
  28. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +145 -0
  29. package/Types/Metrics/MetricQueryConfigData.ts +9 -0
  30. package/Types/Permission.ts +134 -0
  31. package/UI/Components/Charts/Area/AreaChart.tsx +1 -1
  32. package/UI/Components/Charts/Bar/BarChart.tsx +1 -1
  33. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +15 -8
  34. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +12 -9
  35. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +17 -10
  36. package/UI/Components/Charts/Line/LineChart.tsx +1 -1
  37. package/UI/Components/ExpandableText/ExpandableText.tsx +29 -7
  38. package/UI/Components/JSONTable/JSONTable.tsx +27 -1
  39. package/UI/Components/LogsViewer/LogsViewer.tsx +3 -0
  40. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +109 -23
  41. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +11 -4
  42. package/UI/Components/Navbar/NavBarMenu.tsx +17 -2
  43. package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +10 -3
  44. package/Utils/ValueFormatter.ts +57 -3
  45. package/build/dist/Models/AnalyticsModels/Log.js +6 -0
  46. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  47. package/build/dist/Models/AnalyticsModels/Metric.js +6 -0
  48. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  49. package/build/dist/Models/AnalyticsModels/Profile.js +6 -0
  50. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  51. package/build/dist/Models/AnalyticsModels/Span.js +6 -0
  52. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  53. package/build/dist/Models/DatabaseModels/Alert.js +51 -0
  54. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  55. package/build/dist/Models/DatabaseModels/DockerHost.js +3 -10
  56. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  57. package/build/dist/Models/DatabaseModels/Host.js +1041 -0
  58. package/build/dist/Models/DatabaseModels/Host.js.map +1 -0
  59. package/build/dist/Models/DatabaseModels/HostOwnerTeam.js +480 -0
  60. package/build/dist/Models/DatabaseModels/HostOwnerTeam.js.map +1 -0
  61. package/build/dist/Models/DatabaseModels/HostOwnerUser.js +479 -0
  62. package/build/dist/Models/DatabaseModels/HostOwnerUser.js.map +1 -0
  63. package/build/dist/Models/DatabaseModels/Incident.js +51 -0
  64. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  65. package/build/dist/Models/DatabaseModels/Index.js +6 -0
  66. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  67. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +0 -7
  68. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  69. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778006035712-AddHostTables.js +76 -0
  70. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778006035712-AddHostTables.js.map +1 -0
  71. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778013317872-AddHostIpAddresses.js +12 -0
  72. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778013317872-AddHostIpAddresses.js.map +1 -0
  73. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778066346303-WidenHostOsVersionToLongText.js +31 -0
  74. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778066346303-WidenHostOsVersionToLongText.js.map +1 -0
  75. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778070278986-MigrationName.js +34 -0
  76. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778070278986-MigrationName.js.map +1 -0
  77. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  78. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  79. package/build/dist/Server/Services/HostOwnerTeamService.js +9 -0
  80. package/build/dist/Server/Services/HostOwnerTeamService.js.map +1 -0
  81. package/build/dist/Server/Services/HostOwnerUserService.js +9 -0
  82. package/build/dist/Server/Services/HostOwnerUserService.js.map +1 -0
  83. package/build/dist/Server/Services/HostService.js +206 -0
  84. package/build/dist/Server/Services/HostService.js.map +1 -0
  85. package/build/dist/Server/Services/LogAggregationService.js +10 -3
  86. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  87. package/build/dist/Server/Services/MetricService.js +160 -0
  88. package/build/dist/Server/Services/MetricService.js.map +1 -1
  89. package/build/dist/Server/Services/TraceAggregationService.js +8 -3
  90. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  91. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +46 -18
  92. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  93. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +26 -0
  94. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  95. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +26 -0
  96. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  97. package/build/dist/Tests/Server/Services/LogAggregationService.test.js +13 -0
  98. package/build/dist/Tests/Server/Services/LogAggregationService.test.js.map +1 -1
  99. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +123 -0
  100. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +1 -1
  101. package/build/dist/Types/Permission.js +120 -0
  102. package/build/dist/Types/Permission.js.map +1 -1
  103. package/build/dist/UI/Components/Charts/Area/AreaChart.js +1 -1
  104. package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
  105. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +13 -7
  106. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  107. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +11 -9
  108. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  109. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +16 -10
  110. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  111. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  112. package/build/dist/UI/Components/ExpandableText/ExpandableText.js +10 -5
  113. package/build/dist/UI/Components/ExpandableText/ExpandableText.js.map +1 -1
  114. package/build/dist/UI/Components/JSONTable/JSONTable.js +8 -1
  115. package/build/dist/UI/Components/JSONTable/JSONTable.js.map +1 -1
  116. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +1 -1
  117. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  118. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +40 -14
  119. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  120. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +10 -4
  121. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  122. package/build/dist/UI/Components/Navbar/NavBarMenu.js +15 -2
  123. package/build/dist/UI/Components/Navbar/NavBarMenu.js.map +1 -1
  124. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +10 -3
  125. package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
  126. package/build/dist/Utils/ValueFormatter.js +47 -3
  127. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  128. package/package.json +1 -1
@@ -0,0 +1,462 @@
1
+ import Host from "./Host";
2
+ import Project from "./Project";
3
+ import Team from "./Team";
4
+ import User from "./User";
5
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
6
+ import Route from "../../Types/API/Route";
7
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
8
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
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 { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
21
+
22
+ @EnableDocumentation()
23
+ @TenantColumn("projectId")
24
+ @TableAccessControl({
25
+ create: [
26
+ Permission.ProjectOwner,
27
+ Permission.ProjectAdmin,
28
+ Permission.ProjectMember,
29
+ Permission.SettingsManager,
30
+ Permission.CreateHostOwnerTeam,
31
+ ],
32
+ read: [
33
+ Permission.ProjectOwner,
34
+ Permission.ProjectAdmin,
35
+ Permission.ProjectMember,
36
+ Permission.Viewer,
37
+ Permission.SettingsManager,
38
+ Permission.ReadHostOwnerTeam,
39
+ Permission.ReadAllProjectResources,
40
+ ],
41
+ delete: [
42
+ Permission.ProjectOwner,
43
+ Permission.ProjectAdmin,
44
+ Permission.ProjectMember,
45
+ Permission.SettingsManager,
46
+ Permission.DeleteHostOwnerTeam,
47
+ ],
48
+ update: [
49
+ Permission.ProjectOwner,
50
+ Permission.ProjectAdmin,
51
+ Permission.ProjectMember,
52
+ Permission.SettingsManager,
53
+ Permission.EditHostOwnerTeam,
54
+ ],
55
+ })
56
+ @EnableWorkflow({
57
+ create: true,
58
+ delete: true,
59
+ update: true,
60
+ read: true,
61
+ })
62
+ @CrudApiEndpoint(new Route("/host-owner-team"))
63
+ @TableMetadata({
64
+ tableName: "HostOwnerTeam",
65
+ singularName: "Host Team Owner",
66
+ pluralName: "Host Team Owners",
67
+ icon: IconProp.Server,
68
+ tableDescription: "Add teams as owners to your hosts.",
69
+ })
70
+ @Entity({
71
+ name: "HostOwnerTeam",
72
+ })
73
+ export default class HostOwnerTeam extends BaseModel {
74
+ @ColumnAccessControl({
75
+ create: [
76
+ Permission.ProjectOwner,
77
+ Permission.ProjectAdmin,
78
+ Permission.ProjectMember,
79
+ Permission.SettingsManager,
80
+ Permission.CreateHostOwnerTeam,
81
+ ],
82
+ read: [
83
+ Permission.ProjectOwner,
84
+ Permission.ProjectAdmin,
85
+ Permission.ProjectMember,
86
+ Permission.Viewer,
87
+ Permission.SettingsManager,
88
+ Permission.ReadHostOwnerTeam,
89
+ Permission.ReadAllProjectResources,
90
+ ],
91
+ update: [],
92
+ })
93
+ @TableColumn({
94
+ manyToOneRelationColumn: "projectId",
95
+ type: TableColumnType.Entity,
96
+ modelType: Project,
97
+ title: "Project",
98
+ description: "Relation to Project Resource in which this object belongs",
99
+ })
100
+ @ManyToOne(
101
+ () => {
102
+ return Project;
103
+ },
104
+ {
105
+ eager: false,
106
+ nullable: false,
107
+ onDelete: "CASCADE",
108
+ orphanedRowAction: "nullify",
109
+ },
110
+ )
111
+ @JoinColumn({ name: "projectId" })
112
+ public project?: Project = undefined;
113
+
114
+ @ColumnAccessControl({
115
+ create: [
116
+ Permission.ProjectOwner,
117
+ Permission.ProjectAdmin,
118
+ Permission.ProjectMember,
119
+ Permission.SettingsManager,
120
+ Permission.CreateHostOwnerTeam,
121
+ ],
122
+ read: [
123
+ Permission.ProjectOwner,
124
+ Permission.ProjectAdmin,
125
+ Permission.ProjectMember,
126
+ Permission.Viewer,
127
+ Permission.SettingsManager,
128
+ Permission.ReadHostOwnerTeam,
129
+ Permission.ReadAllProjectResources,
130
+ ],
131
+ update: [],
132
+ })
133
+ @Index()
134
+ @TableColumn({
135
+ type: TableColumnType.ObjectID,
136
+ required: true,
137
+ canReadOnRelationQuery: true,
138
+ title: "Project ID",
139
+ description: "ID of your OneUptime Project in which this object belongs",
140
+ })
141
+ @Column({
142
+ type: ColumnType.ObjectID,
143
+ nullable: false,
144
+ transformer: ObjectID.getDatabaseTransformer(),
145
+ })
146
+ public projectId?: ObjectID = undefined;
147
+
148
+ @ColumnAccessControl({
149
+ create: [
150
+ Permission.ProjectOwner,
151
+ Permission.ProjectAdmin,
152
+ Permission.ProjectMember,
153
+ Permission.SettingsManager,
154
+ Permission.CreateHostOwnerTeam,
155
+ ],
156
+ read: [
157
+ Permission.ProjectOwner,
158
+ Permission.ProjectAdmin,
159
+ Permission.ProjectMember,
160
+ Permission.Viewer,
161
+ Permission.SettingsManager,
162
+ Permission.ReadHostOwnerTeam,
163
+ Permission.ReadAllProjectResources,
164
+ ],
165
+ update: [],
166
+ })
167
+ @TableColumn({
168
+ manyToOneRelationColumn: "teamId",
169
+ type: TableColumnType.Entity,
170
+ modelType: Team,
171
+ title: "Team",
172
+ description:
173
+ "Team that is the owner. All users in this team will receive notifications. ",
174
+ })
175
+ @ManyToOne(
176
+ () => {
177
+ return Team;
178
+ },
179
+ {
180
+ eager: false,
181
+ nullable: true,
182
+ onDelete: "CASCADE",
183
+ orphanedRowAction: "nullify",
184
+ },
185
+ )
186
+ @JoinColumn({ name: "teamId" })
187
+ public team?: Team = undefined;
188
+
189
+ @ColumnAccessControl({
190
+ create: [
191
+ Permission.ProjectOwner,
192
+ Permission.ProjectAdmin,
193
+ Permission.ProjectMember,
194
+ Permission.SettingsManager,
195
+ Permission.CreateHostOwnerTeam,
196
+ ],
197
+ read: [
198
+ Permission.ProjectOwner,
199
+ Permission.ProjectAdmin,
200
+ Permission.ProjectMember,
201
+ Permission.Viewer,
202
+ Permission.SettingsManager,
203
+ Permission.ReadHostOwnerTeam,
204
+ Permission.ReadAllProjectResources,
205
+ ],
206
+ update: [],
207
+ })
208
+ @Index()
209
+ @TableColumn({
210
+ type: TableColumnType.ObjectID,
211
+ required: true,
212
+ canReadOnRelationQuery: true,
213
+ title: "Team ID",
214
+ description: "ID of your OneUptime Team in which this object belongs",
215
+ })
216
+ @Column({
217
+ type: ColumnType.ObjectID,
218
+ nullable: false,
219
+ transformer: ObjectID.getDatabaseTransformer(),
220
+ })
221
+ public teamId?: ObjectID = undefined;
222
+
223
+ @ColumnAccessControl({
224
+ create: [
225
+ Permission.ProjectOwner,
226
+ Permission.ProjectAdmin,
227
+ Permission.ProjectMember,
228
+ Permission.SettingsManager,
229
+ Permission.CreateHostOwnerTeam,
230
+ ],
231
+ read: [
232
+ Permission.ProjectOwner,
233
+ Permission.ProjectAdmin,
234
+ Permission.ProjectMember,
235
+ Permission.Viewer,
236
+ Permission.SettingsManager,
237
+ Permission.ReadHostOwnerTeam,
238
+ Permission.ReadAllProjectResources,
239
+ ],
240
+ update: [],
241
+ })
242
+ @TableColumn({
243
+ manyToOneRelationColumn: "hostId",
244
+ type: TableColumnType.Entity,
245
+ modelType: Host,
246
+ title: "Host",
247
+ description: "Relation to Host Resource in which this object belongs",
248
+ })
249
+ @ManyToOne(
250
+ () => {
251
+ return Host;
252
+ },
253
+ {
254
+ eager: false,
255
+ nullable: true,
256
+ onDelete: "CASCADE",
257
+ orphanedRowAction: "nullify",
258
+ },
259
+ )
260
+ @JoinColumn({ name: "hostId" })
261
+ public host?: Host = undefined;
262
+
263
+ @ColumnAccessControl({
264
+ create: [
265
+ Permission.ProjectOwner,
266
+ Permission.ProjectAdmin,
267
+ Permission.ProjectMember,
268
+ Permission.SettingsManager,
269
+ Permission.CreateHostOwnerTeam,
270
+ ],
271
+ read: [
272
+ Permission.ProjectOwner,
273
+ Permission.ProjectAdmin,
274
+ Permission.ProjectMember,
275
+ Permission.Viewer,
276
+ Permission.SettingsManager,
277
+ Permission.ReadHostOwnerTeam,
278
+ Permission.ReadAllProjectResources,
279
+ ],
280
+ update: [],
281
+ })
282
+ @Index()
283
+ @TableColumn({
284
+ type: TableColumnType.ObjectID,
285
+ required: true,
286
+ canReadOnRelationQuery: true,
287
+ title: "Host ID",
288
+ description: "ID of your OneUptime Host in which this object belongs",
289
+ })
290
+ @Column({
291
+ type: ColumnType.ObjectID,
292
+ nullable: false,
293
+ transformer: ObjectID.getDatabaseTransformer(),
294
+ })
295
+ public hostId?: ObjectID = undefined;
296
+
297
+ @ColumnAccessControl({
298
+ create: [
299
+ Permission.ProjectOwner,
300
+ Permission.ProjectAdmin,
301
+ Permission.ProjectMember,
302
+ Permission.SettingsManager,
303
+ Permission.CreateHostOwnerTeam,
304
+ ],
305
+ read: [
306
+ Permission.ProjectOwner,
307
+ Permission.ProjectAdmin,
308
+ Permission.ProjectMember,
309
+ Permission.Viewer,
310
+ Permission.SettingsManager,
311
+ Permission.ReadHostOwnerTeam,
312
+ Permission.ReadAllProjectResources,
313
+ ],
314
+ update: [],
315
+ })
316
+ @TableColumn({
317
+ manyToOneRelationColumn: "createdByUserId",
318
+ type: TableColumnType.Entity,
319
+ modelType: User,
320
+ title: "Created by User",
321
+ description:
322
+ "Relation to User who created this object (if this object was created by a User)",
323
+ })
324
+ @ManyToOne(
325
+ () => {
326
+ return User;
327
+ },
328
+ {
329
+ eager: false,
330
+ nullable: true,
331
+ onDelete: "SET NULL",
332
+ orphanedRowAction: "nullify",
333
+ },
334
+ )
335
+ @JoinColumn({ name: "createdByUserId" })
336
+ public createdByUser?: User = undefined;
337
+
338
+ @ColumnAccessControl({
339
+ create: [
340
+ Permission.ProjectOwner,
341
+ Permission.ProjectAdmin,
342
+ Permission.ProjectMember,
343
+ Permission.SettingsManager,
344
+ Permission.CreateHostOwnerTeam,
345
+ ],
346
+ read: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.Viewer,
351
+ Permission.SettingsManager,
352
+ Permission.ReadHostOwnerTeam,
353
+ Permission.ReadAllProjectResources,
354
+ ],
355
+ update: [],
356
+ })
357
+ @TableColumn({
358
+ type: TableColumnType.ObjectID,
359
+ title: "Created by User ID",
360
+ description:
361
+ "User ID who created this object (if this object was created by a User)",
362
+ })
363
+ @Column({
364
+ type: ColumnType.ObjectID,
365
+ nullable: true,
366
+ transformer: ObjectID.getDatabaseTransformer(),
367
+ })
368
+ public createdByUserId?: ObjectID = undefined;
369
+
370
+ @ColumnAccessControl({
371
+ create: [],
372
+ read: [
373
+ Permission.ProjectOwner,
374
+ Permission.ProjectAdmin,
375
+ Permission.ProjectMember,
376
+ Permission.Viewer,
377
+ Permission.SettingsManager,
378
+ Permission.ReadHostOwnerTeam,
379
+ Permission.ReadAllProjectResources,
380
+ ],
381
+ update: [],
382
+ })
383
+ @TableColumn({
384
+ manyToOneRelationColumn: "deletedByUserId",
385
+ type: TableColumnType.Entity,
386
+ title: "Deleted by User",
387
+ modelType: User,
388
+ description:
389
+ "Relation to User who deleted this object (if this object was deleted by a User)",
390
+ })
391
+ @ManyToOne(
392
+ () => {
393
+ return User;
394
+ },
395
+ {
396
+ cascade: false,
397
+ eager: false,
398
+ nullable: true,
399
+ onDelete: "SET NULL",
400
+ orphanedRowAction: "nullify",
401
+ },
402
+ )
403
+ @JoinColumn({ name: "deletedByUserId" })
404
+ public deletedByUser?: User = undefined;
405
+
406
+ @ColumnAccessControl({
407
+ create: [],
408
+ read: [
409
+ Permission.ProjectOwner,
410
+ Permission.ProjectAdmin,
411
+ Permission.ProjectMember,
412
+ Permission.Viewer,
413
+ Permission.SettingsManager,
414
+ Permission.ReadHostOwnerTeam,
415
+ Permission.ReadAllProjectResources,
416
+ ],
417
+ update: [],
418
+ })
419
+ @TableColumn({
420
+ type: TableColumnType.ObjectID,
421
+ title: "Deleted by User ID",
422
+ description:
423
+ "User ID who deleted this object (if this object was deleted by a User)",
424
+ })
425
+ @Column({
426
+ type: ColumnType.ObjectID,
427
+ nullable: true,
428
+ transformer: ObjectID.getDatabaseTransformer(),
429
+ })
430
+ public deletedByUserId?: ObjectID = undefined;
431
+
432
+ @ColumnAccessControl({
433
+ create: [],
434
+ read: [
435
+ Permission.ProjectOwner,
436
+ Permission.ProjectAdmin,
437
+ Permission.ProjectMember,
438
+ Permission.Viewer,
439
+ Permission.SettingsManager,
440
+ Permission.ReadHostOwnerTeam,
441
+ Permission.ReadAllProjectResources,
442
+ ],
443
+ update: [],
444
+ })
445
+ @Index()
446
+ @TableColumn({
447
+ type: TableColumnType.Boolean,
448
+ computed: true,
449
+ hideColumnInDocumentation: true,
450
+ required: true,
451
+ isDefaultValueColumn: true,
452
+ title: "Are Owners Notified",
453
+ description: "Are owners notified of this resource ownership?",
454
+ defaultValue: false,
455
+ })
456
+ @Column({
457
+ type: ColumnType.Boolean,
458
+ nullable: false,
459
+ default: false,
460
+ })
461
+ public isOwnerNotified?: boolean = undefined;
462
+ }