mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-01-16 23:00:51 +00:00
- Updated PromoCode, Reseller, ResellerPlan, ScheduledMaintenance, ScheduledMaintenanceCustomField, ScheduledMaintenanceFeed, ScheduledMaintenanceInternalNote, ScheduledMaintenanceNoteTemplate, ScheduledMaintenanceOwnerTeam, ScheduledMaintenanceOwnerUser, ScheduledMaintenancePublicNote, ScheduledMaintenanceState, ScheduledMaintenanceStateTimeline, ScheduledMaintenanceTemplate, ScheduledMaintenanceTemplateOwnerTeam, ScheduledMaintenanceTemplateOwnerUser, ServiceCatalog, ServiceCatalogDependency, ServiceCatalogMonitor, ServiceCatalogOwnerTeam, ServiceCatalogOwnerUser, ServiceCatalogTelemetryService, ServiceCopilotCodeRepository, ShortLink, SmsLog, StatusPage, StatusPageAnnouncement, StatusPageAnnouncementTemplate, StatusPageCustomField, StatusPageDomain, StatusPageFooterLink, StatusPageGroup, StatusPageHeaderLink, StatusPageHistoryChartBarColorRule, StatusPageOwnerTeam, StatusPageOwnerUser, StatusPagePrivateUser, StatusPageResource, StatusPageSso, StatusPageSubscriber, TableView, Team, TeamMember, TeamPermission, TelemetryException, TelemetryIngestionKey, TelemetryService, TelemetryUsageBilling, User, UserCall, UserEmail, UserNotificationRule, UserNotificationSetting, UserOnCallLog, UserOnCallLogTimeline, UserSMS, UserTwoFactorAuth, Workflow, WorkflowLog, WorkflowVariable, WorkspaceNotificationRule, WorkspaceProjectAuthToken, WorkspaceSetting, WorkspaceUserAuthToken to include modelType User for deletedByUserId relations. - Updated OneUptimeApiService to exclude additional keys from update operations.
982 lines
24 KiB
TypeScript
982 lines
24 KiB
TypeScript
import Project from "./Project";
|
|
import User from "./User";
|
|
import Team from "./Team";
|
|
import Route from "../../Types/API/Route";
|
|
import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
|
|
import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
|
|
import ColumnLength from "../../Types/Database/ColumnLength";
|
|
import ColumnType from "../../Types/Database/ColumnType";
|
|
import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
|
|
import EnableDocumentation from "../../Types/Database/EnableDocumentation";
|
|
import EnableWorkflow from "../../Types/Database/EnableWorkflow";
|
|
import TableColumn from "../../Types/Database/TableColumn";
|
|
import TableColumnType from "../../Types/Database/TableColumnType";
|
|
import TableMetadata from "../../Types/Database/TableMetadata";
|
|
import TenantColumn from "../../Types/Database/TenantColumn";
|
|
import IconProp from "../../Types/Icon/IconProp";
|
|
import ObjectID from "../../Types/ObjectID";
|
|
import Permission from "../../Types/Permission";
|
|
import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
|
|
import DatabaseBaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
|
|
import TelemetryService from "./TelemetryService";
|
|
|
|
@EnableDocumentation()
|
|
@TenantColumn("projectId")
|
|
@TableAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
delete: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.DeleteTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@EnableWorkflow({
|
|
create: true,
|
|
delete: true,
|
|
update: true,
|
|
read: true,
|
|
})
|
|
@CrudApiEndpoint(new Route("/telemetry-exception-status"))
|
|
@TableMetadata({
|
|
tableName: "TelemetryException",
|
|
singularName: "Exception",
|
|
pluralName: "Exceptions",
|
|
icon: IconProp.Error,
|
|
tableDescription:
|
|
"List of all Telemetry Exceptions created for the telemetry service for this OneUptime project and it's status.",
|
|
})
|
|
@Entity({
|
|
name: "TelemetryException",
|
|
})
|
|
export default class TelemetryException extends DatabaseBaseModel {
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "projectId",
|
|
type: TableColumnType.Entity,
|
|
modelType: Project,
|
|
title: "Project",
|
|
description: "Relation to Project Resource in which this object belongs",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return Project;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "projectId" })
|
|
public project?: Project = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: true,
|
|
canReadOnRelationQuery: true,
|
|
title: "Project ID",
|
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: false,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public projectId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "telemetryServiceId",
|
|
type: TableColumnType.Entity,
|
|
modelType: TelemetryService,
|
|
title: "Telemetry Service",
|
|
description:
|
|
"Relation to Telemetry Service Resource in which this object belongs",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return TelemetryService;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "telemetryServiceId" })
|
|
public telemetryService?: TelemetryService = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@Index()
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
required: true,
|
|
title: "Telemetry Service ID",
|
|
description:
|
|
"ID of your Telemetry Service resource where this object belongs",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: false,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public telemetryServiceId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.VeryLongText,
|
|
canReadOnRelationQuery: false,
|
|
title: "Exception Message",
|
|
description: "Exception message that was thrown by the telemetry service",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.VeryLongText,
|
|
})
|
|
public message?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.VeryLongText,
|
|
canReadOnRelationQuery: false,
|
|
title: "Stack Trace",
|
|
description:
|
|
"Stack trace of the exception that was thrown by the telemetry service",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.VeryLongText,
|
|
})
|
|
public stackTrace?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.VeryLongText,
|
|
canReadOnRelationQuery: false,
|
|
title: "Exception Type",
|
|
description:
|
|
"Type of the exception that was thrown by the telemetry service",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.VeryLongText,
|
|
})
|
|
public exceptionType?: string = undefined;
|
|
|
|
@Index()
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.ShortText,
|
|
canReadOnRelationQuery: false,
|
|
title: "Finger Print",
|
|
description:
|
|
"Finger print of the exception that was thrown by the telemetry service",
|
|
})
|
|
@Column({
|
|
nullable: true,
|
|
type: ColumnType.ShortText,
|
|
length: ColumnLength.ShortText,
|
|
})
|
|
public fingerprint?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "createdByUserId",
|
|
type: TableColumnType.Entity,
|
|
modelType: User,
|
|
title: "Created by User",
|
|
description:
|
|
"Relation to User who created this object (if this object was created by a User)",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "SET NULL",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "createdByUserId" })
|
|
public createdByUser?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Created by User ID",
|
|
description:
|
|
"User ID who created this object (if this object was created by a User)",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public createdByUserId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "deletedByUserId",
|
|
type: TableColumnType.Entity,
|
|
title: "Deleted by User",
|
|
modelType: User,
|
|
description:
|
|
"Relation to User who deleted this object (if this object was deleted by a User)",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
cascade: false,
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "SET NULL",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "deletedByUserId" })
|
|
public deletedByUser?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Deleted by User ID",
|
|
description:
|
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public deletedByUserId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.Date,
|
|
title: "Accepted Invitation At",
|
|
description: "When did this team member accept invitation",
|
|
})
|
|
@Column({
|
|
type: ColumnType.Date,
|
|
nullable: true,
|
|
unique: false,
|
|
})
|
|
public markedAsResolvedAt?: Date = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.Date,
|
|
title: "Accepted Invitation At",
|
|
description: "When did this team member accept invitation",
|
|
})
|
|
@Column({
|
|
type: ColumnType.Date,
|
|
nullable: true,
|
|
unique: false,
|
|
})
|
|
public markedAsArchivedAt?: Date = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.Date,
|
|
title: "Accepted Invitation At",
|
|
description: "When did this team member accept invitation",
|
|
})
|
|
@Column({
|
|
type: ColumnType.Date,
|
|
nullable: true,
|
|
unique: false,
|
|
})
|
|
public firstSeenAt?: Date = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
required: false,
|
|
type: TableColumnType.Date,
|
|
title: "Accepted Invitation At",
|
|
description: "When did this team member accept invitation",
|
|
})
|
|
@Column({
|
|
type: ColumnType.Date,
|
|
nullable: true,
|
|
unique: false,
|
|
})
|
|
public lastSeenAt?: Date = undefined;
|
|
|
|
// assign to.
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "assignToUserId",
|
|
type: TableColumnType.Entity,
|
|
modelType: User,
|
|
title: "Assign to User",
|
|
description: "Relation to User who this exception is assigned to.",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
cascade: false,
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "assignToUserId" })
|
|
public assignToUser?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Assign to User ID",
|
|
description: "User ID who this exception is assigned to.",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public assignToUserId?: ObjectID = undefined;
|
|
|
|
// assign to team.
|
|
|
|
// assign to.
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "assignToTeamId",
|
|
type: TableColumnType.Entity,
|
|
modelType: Team,
|
|
title: "Assign to Team",
|
|
description: "Relation to Team who this exception is assigned to.",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return Team;
|
|
},
|
|
{
|
|
cascade: false,
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "assignToTeamId" })
|
|
public assignToTeam?: Team = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Assign to Team ID",
|
|
description: "Team ID who this exception is assigned to.",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public assignToTeamId?: ObjectID = undefined;
|
|
|
|
// mark as resolved by.
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "markedAsResolvedByUserId",
|
|
type: TableColumnType.Entity,
|
|
modelType: User,
|
|
title: "Marked as Resolved By User",
|
|
description:
|
|
"Mark as resolved by User who marked this exception as resolved.",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
cascade: false,
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "markedAsResolvedByUserId" })
|
|
public markedAsResolvedByUser?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Marked as Resolved By User ID",
|
|
description: "User ID who marked this exception as resolved.",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public markedAsResolvedByUserId?: ObjectID = undefined;
|
|
|
|
// Mark as archived by.
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
manyToOneRelationColumn: "markedAsArchivedByUserId",
|
|
type: TableColumnType.Entity,
|
|
modelType: User,
|
|
title: "Mark as Archived By User",
|
|
description: "Mark as archived by User",
|
|
})
|
|
@ManyToOne(
|
|
() => {
|
|
return User;
|
|
},
|
|
{
|
|
cascade: false,
|
|
eager: false,
|
|
nullable: true,
|
|
onDelete: "CASCADE",
|
|
orphanedRowAction: "nullify",
|
|
},
|
|
)
|
|
@JoinColumn({ name: "markedAsArchivedByUserId" })
|
|
public markedAsArchivedByUser?: User = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
type: TableColumnType.ObjectID,
|
|
title: "Mark as Archived By User ID",
|
|
description: "User ID who marked this exception as archived.",
|
|
})
|
|
@Column({
|
|
type: ColumnType.ObjectID,
|
|
nullable: true,
|
|
transformer: ObjectID.getDatabaseTransformer(),
|
|
})
|
|
public markedAsArchivedByUserId?: ObjectID = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
title: "Is Resolved",
|
|
description: "Is this exception resolved?",
|
|
isDefaultValueColumn: true,
|
|
required: true,
|
|
type: TableColumnType.Boolean,
|
|
defaultValue: false,
|
|
})
|
|
@Column({
|
|
type: ColumnType.Boolean,
|
|
nullable: false,
|
|
unique: false,
|
|
default: false,
|
|
})
|
|
public isResolved?: boolean = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
title: "Is Archived",
|
|
description: "Is this exception archived?",
|
|
isDefaultValueColumn: true,
|
|
required: true,
|
|
type: TableColumnType.Boolean,
|
|
defaultValue: false,
|
|
})
|
|
@Column({
|
|
type: ColumnType.Boolean,
|
|
nullable: false,
|
|
unique: false,
|
|
default: false,
|
|
})
|
|
public isArchived?: boolean = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.CreateTelemetryException,
|
|
],
|
|
read: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.ProjectMember,
|
|
Permission.ReadTelemetryException,
|
|
],
|
|
update: [
|
|
Permission.ProjectOwner,
|
|
Permission.ProjectAdmin,
|
|
Permission.EditTelemetryException,
|
|
],
|
|
})
|
|
@TableColumn({
|
|
title: "Occurances",
|
|
description: "Number of times this exception has occurred",
|
|
isDefaultValueColumn: true,
|
|
required: true,
|
|
type: TableColumnType.Number,
|
|
defaultValue: 1,
|
|
})
|
|
@Column({
|
|
type: ColumnType.Number,
|
|
nullable: false,
|
|
unique: false,
|
|
default: 1,
|
|
})
|
|
public occuranceCount?: number = undefined;
|
|
}
|