@openinc/parse-server-opendash 3.30.0 → 3.31.25
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/dist/featuremap.json +1 -0
- package/dist/features/config/helper/customOptions.js +8 -0
- package/dist/features/config/types/ConfigKeys.d.ts +0 -1
- package/dist/features/config/types/ConfigKeys.js +0 -1
- package/dist/features/openservice/functions/assignUsersAndRoles.js +12 -0
- package/dist/features/openservice/types/SaveValues.d.ts +0 -1
- package/dist/features/openservice/types/TicketData.d.ts +2 -1
- package/dist/functions/openinc-openservice-save-ticket-data.js +0 -8
- package/dist/functions/openinc-openservice-ticket-data.js +8 -0
- package/dist/hooks/MIAAS_MDSEndpoint.js +1 -1
- package/dist/hooks/_ChangeLog.d.ts +1 -0
- package/dist/hooks/_ChangeLog.js +93 -0
- package/dist/hooks/_init.js +1 -0
- package/dist/types/Changelog.d.ts +34 -0
- package/dist/types/Changelog.js +59 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +5 -3
- package/package.json +17 -13
- package/schema/Changelog.json +69 -0
- package/dist/jobs/index.d.ts +0 -0
- package/dist/jobs/index.js +0 -2
package/dist/featuremap.json
CHANGED
|
@@ -525,4 +525,12 @@ exports.customoptions = {
|
|
|
525
525
|
public: false,
|
|
526
526
|
description: "Application ID for Microsoft authentication. This is the Application (client) ID from the Azure portal.",
|
|
527
527
|
},
|
|
528
|
+
CHANGELOG_BLACKLIST: {
|
|
529
|
+
env: "OPENINC_PARSE_CHANGELOG_BLACKLIST",
|
|
530
|
+
type: "string",
|
|
531
|
+
required: false,
|
|
532
|
+
secret: false,
|
|
533
|
+
public: false,
|
|
534
|
+
description: "Comma separated list of class names which should be excluded from ChangeLog entries.",
|
|
535
|
+
},
|
|
528
536
|
};
|
|
@@ -3,7 +3,6 @@ export declare namespace ConfigKeys {
|
|
|
3
3
|
closedTicketsLifetime = "OPENSERVICE_CLOSED_TICKET_LIFETIME",
|
|
4
4
|
ticketCreationForm = "OPENSERVICE_CREATE_TICKET_FORM",
|
|
5
5
|
scheduleMetaFields = "OPENSERVICE_SCHEDULE_META_FIELDS",
|
|
6
|
-
sampledataCreated = "OPENSERVICE_SAMPLEDATA_CREATED",
|
|
7
6
|
createTicketOnSchedule = "OPENSERVICE_CREATE_TICKET_ON_SCHEDULE"
|
|
8
7
|
}
|
|
9
8
|
}
|
|
@@ -8,7 +8,6 @@ var ConfigKeys;
|
|
|
8
8
|
OpenService["closedTicketsLifetime"] = "OPENSERVICE_CLOSED_TICKET_LIFETIME";
|
|
9
9
|
OpenService["ticketCreationForm"] = "OPENSERVICE_CREATE_TICKET_FORM";
|
|
10
10
|
OpenService["scheduleMetaFields"] = "OPENSERVICE_SCHEDULE_META_FIELDS";
|
|
11
|
-
OpenService["sampledataCreated"] = "OPENSERVICE_SAMPLEDATA_CREATED";
|
|
12
11
|
OpenService["createTicketOnSchedule"] = "OPENSERVICE_CREATE_TICKET_ON_SCHEDULE";
|
|
13
12
|
})(OpenService = ConfigKeys.OpenService || (ConfigKeys.OpenService = {}));
|
|
14
13
|
})(ConfigKeys || (exports.ConfigKeys = ConfigKeys = {}));
|
|
@@ -58,6 +58,10 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
|
|
|
58
58
|
user: ticket.get("user"),
|
|
59
59
|
batchStamp: batchTime,
|
|
60
60
|
}));
|
|
61
|
+
if (assignedTo.id === assigningUser?.id) {
|
|
62
|
+
// Don't notify the user who created the ticket
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
61
65
|
await new types_1.Notification({
|
|
62
66
|
data: {
|
|
63
67
|
ticketId: ticket.id,
|
|
@@ -91,6 +95,10 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
|
|
|
91
95
|
.query()
|
|
92
96
|
.find(fetchOptions);
|
|
93
97
|
for await (const roleUser of roleUsers) {
|
|
98
|
+
if (roleUser.id === assigningUser?.id) {
|
|
99
|
+
// Don't notify the user who created the ticket
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
94
102
|
if (userNotifiedIds.includes(roleUser.id))
|
|
95
103
|
continue;
|
|
96
104
|
const resipientlanguage = await (0, getUserLanguage_1.getUserLanguage)(roleUser);
|
|
@@ -121,6 +129,10 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
|
|
|
121
129
|
await types_1.Maintenance_Ticket_Assignment.saveAll(assignments, fetchOptions);
|
|
122
130
|
//Set ACLs for assigned users and roles on ticket
|
|
123
131
|
const acl = new Parse.ACL();
|
|
132
|
+
if (assigningUser) {
|
|
133
|
+
acl.setReadAccess(assigningUser, true);
|
|
134
|
+
acl.setWriteAccess(assigningUser, true);
|
|
135
|
+
}
|
|
124
136
|
for (const assignedUser of newUsers) {
|
|
125
137
|
acl.setReadAccess(assignedUser, true);
|
|
126
138
|
acl.setWriteAccess(assignedUser, true);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Maintenance_Downtime, Maintenance_Duedate, Maintenance_Frequency, Maintenance_Issuecategory, Maintenance_Kanban_State, Maintenance_Message, Maintenance_Priority, Maintenance_Project, Maintenance_Restriction, Maintenance_Ticket, Maintenance_Ticket_Material, Source } from "../../../types";
|
|
1
|
+
import { Assets, Maintenance_Downtime, Maintenance_Duedate, Maintenance_Frequency, Maintenance_Issuecategory, Maintenance_Kanban_State, Maintenance_Message, Maintenance_Priority, Maintenance_Project, Maintenance_Restriction, Maintenance_Ticket, Maintenance_Ticket_Material, Source } from "../../../types";
|
|
2
2
|
export type TicketData = {
|
|
3
3
|
ticket: Maintenance_Ticket;
|
|
4
4
|
downtime?: Maintenance_Downtime;
|
|
@@ -14,4 +14,5 @@ export type TicketData = {
|
|
|
14
14
|
assignedTo?: Array<Parse.User | Parse.Role>;
|
|
15
15
|
material?: Maintenance_Ticket_Material;
|
|
16
16
|
project?: Maintenance_Project;
|
|
17
|
+
assets?: Assets[];
|
|
17
18
|
};
|
|
@@ -186,14 +186,6 @@ async function saveTicketData(data, user, overrideFetchOptions) {
|
|
|
186
186
|
owticketobj.state = fetchedSavedState;
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
-
if (data.media && data.media.length > 0) {
|
|
190
|
-
try {
|
|
191
|
-
await (0, openservice_1.saveMedia)(ticket, data.media, fetchOptions);
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
console.error(`Error saving media for ticket ${ticket.id}:`, error);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
189
|
if (data.material) {
|
|
198
190
|
try {
|
|
199
191
|
await (0, openservice_1.saveMaterial)(ticket, data.material, fetchOptions);
|
|
@@ -108,6 +108,7 @@ async function getTicketData(tickets) {
|
|
|
108
108
|
const material = getTicketMaterial(ticket);
|
|
109
109
|
const project = (0, catchError_1.catchError)(ticket.get("project")?.fetch({ useMasterKey: true }) ??
|
|
110
110
|
new Promise((res) => res(undefined)));
|
|
111
|
+
const assets = getTicketAssets(ticket);
|
|
111
112
|
const dataPromises = await Promise.all([
|
|
112
113
|
downtimes,
|
|
113
114
|
duedate,
|
|
@@ -120,6 +121,7 @@ async function getTicketData(tickets) {
|
|
|
120
121
|
messages,
|
|
121
122
|
material,
|
|
122
123
|
project,
|
|
124
|
+
assets,
|
|
123
125
|
]);
|
|
124
126
|
return {
|
|
125
127
|
ticket: ticket,
|
|
@@ -136,10 +138,16 @@ async function getTicketData(tickets) {
|
|
|
136
138
|
assignedTo: [...assignedusers, ...assignedroles],
|
|
137
139
|
material: dataPromises[9],
|
|
138
140
|
project: dataPromises[10]?.[1],
|
|
141
|
+
assets: dataPromises[11],
|
|
139
142
|
};
|
|
140
143
|
});
|
|
141
144
|
return await Promise.all(ticketDataPromises);
|
|
142
145
|
}
|
|
146
|
+
async function getTicketAssets(ticket) {
|
|
147
|
+
return await new Parse.Query(types_1.Assets)
|
|
148
|
+
.equalTo("context", `ticket-media-${ticket.id}`)
|
|
149
|
+
.find({ useMasterKey: true });
|
|
150
|
+
}
|
|
143
151
|
/**
|
|
144
152
|
* Fetches the downtime for a ticket
|
|
145
153
|
* @param ticket
|
|
@@ -7,7 +7,7 @@ async function init() {
|
|
|
7
7
|
(0, __1.beforeSaveHook)(types_1.MIAAS_MDSEndpoint, async (request) => {
|
|
8
8
|
const { object, original, user } = request;
|
|
9
9
|
await (0, __1.defaultHandler)(request);
|
|
10
|
-
await (0, __1.defaultAclHandler)(request);
|
|
10
|
+
await (0, __1.defaultAclHandler)(request, { allowCustomACL: true });
|
|
11
11
|
// TODO
|
|
12
12
|
});
|
|
13
13
|
(0, __1.afterSaveHook)(types_1.MIAAS_MDSEndpoint, async (request) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function init(): Promise<void>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.init = init;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
async function init() {
|
|
7
|
+
const schema = await Parse.Schema.all();
|
|
8
|
+
const blacklistedClasses = [
|
|
9
|
+
"_Session",
|
|
10
|
+
"_Installation",
|
|
11
|
+
...(process.env.OPENINC_PARSE_CHANGELOG_BLACKLIST || "")
|
|
12
|
+
.split(",")
|
|
13
|
+
.map((c) => c.trim())
|
|
14
|
+
.filter((c) => c.length > 0),
|
|
15
|
+
];
|
|
16
|
+
console.log(`ChangeLog blacklisted classes: ${blacklistedClasses.join(", ") || "None"}`);
|
|
17
|
+
(0, __1.beforeSaveHook)(types_1.Changelog.className, async (request) => {
|
|
18
|
+
const { object, original, user } = request;
|
|
19
|
+
await (0, __1.defaultHandler)(request);
|
|
20
|
+
await (0, __1.defaultAclHandler)(request);
|
|
21
|
+
if (user && object && object.getACL()) {
|
|
22
|
+
object.getACL().setReadAccess(user.id, true);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
schema.forEach((classSchema) => {
|
|
26
|
+
if (!classSchema.className ||
|
|
27
|
+
classSchema.className === types_1.Changelog.className ||
|
|
28
|
+
classSchema.className === types_1.Permission.className) {
|
|
29
|
+
console.log(`Skipping ChangeLog hook for class ${classSchema.className}`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (blacklistedClasses.includes(classSchema.className)) {
|
|
33
|
+
console.log(`Class ${classSchema.className} is blacklisted from ChangeLog entries.`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.log(`Registering ChangeLog hook for class ${classSchema?.className || "CLASSNAME_MISSING"}`);
|
|
37
|
+
(0, __1.beforeDeleteHook)(classSchema.className, async (request) => {
|
|
38
|
+
console.log(`Creating ChangeLog entry for DELETE on class ${classSchema.className} and object ${request.object.id}`);
|
|
39
|
+
try {
|
|
40
|
+
const { object, user, master } = request;
|
|
41
|
+
if (blacklistedClasses.includes(classSchema.className)) {
|
|
42
|
+
console.log(`Skipping ChangeLog entry for class ${classSchema.className} and object ${object.id} due to blacklisted class.`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const changelog = new types_1.Changelog();
|
|
46
|
+
changelog.set("nameOfClass", classSchema.className);
|
|
47
|
+
changelog.set("changedObject", object.id);
|
|
48
|
+
changelog.set("operation", "delete");
|
|
49
|
+
changelog.set("actingUser", user);
|
|
50
|
+
changelog.set("masterkey", master ? true : false);
|
|
51
|
+
changelog.set("context", null);
|
|
52
|
+
changelog.set("value", null);
|
|
53
|
+
changelog.set("original", object ? object.toJSON() : null);
|
|
54
|
+
await changelog.save({}, { useMasterKey: true });
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
console.error("\n" + "-".repeat(80) + "\n", "Error creating ChangeLog entry for DELETE on class " +
|
|
58
|
+
classSchema.className +
|
|
59
|
+
" and object " +
|
|
60
|
+
(request.object ? request.object.id : "unknown") +
|
|
61
|
+
":", JSON.stringify(e), "\n" + "-".repeat(80) + "\n");
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
(0, __1.afterSaveHook)(classSchema.className, async (request) => {
|
|
65
|
+
console.log(`Creating ChangeLog entry for class ${classSchema.className} and object ${request.object.id}`);
|
|
66
|
+
try {
|
|
67
|
+
const { object, original, user, master, context } = request;
|
|
68
|
+
if (context.skipChangelog ||
|
|
69
|
+
blacklistedClasses.includes(classSchema.className)) {
|
|
70
|
+
console.log(`Skipping ChangeLog entry for class ${classSchema.className} and object ${object.id} due to ${context.skipChangelog ? "context flag" : "blacklisted class"}.`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const changelog = new types_1.Changelog();
|
|
74
|
+
changelog.set("nameOfClass", classSchema.className);
|
|
75
|
+
changelog.set("changedObject", object.id);
|
|
76
|
+
changelog.set("operation", original ? "update" : "create");
|
|
77
|
+
changelog.set("actingUser", user);
|
|
78
|
+
changelog.set("masterkey", master ? true : false);
|
|
79
|
+
changelog.set("context", context ? context : null);
|
|
80
|
+
changelog.set("value", object ? object.toJSON() : null);
|
|
81
|
+
changelog.set("original", original ? original.toJSON() : null);
|
|
82
|
+
await changelog.save({}, { useMasterKey: true });
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
console.error("\n" + "-".repeat(80) + "\n", "Error creating ChangeLog entry for class " +
|
|
86
|
+
classSchema.className +
|
|
87
|
+
" and object " +
|
|
88
|
+
(request.object ? request.object.id : "unknown") +
|
|
89
|
+
":", JSON.stringify(e), "\n" + "-".repeat(80) + "\n");
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
package/dist/hooks/_init.js
CHANGED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { _User } from "./_User";
|
|
2
|
+
export interface ChangelogAttributes {
|
|
3
|
+
id: string;
|
|
4
|
+
changedObject: string;
|
|
5
|
+
createdAt: Date;
|
|
6
|
+
updatedAt: Date;
|
|
7
|
+
context?: any | undefined;
|
|
8
|
+
masterkey: boolean;
|
|
9
|
+
nameOfClass: string;
|
|
10
|
+
operation: string;
|
|
11
|
+
original?: any | undefined;
|
|
12
|
+
actingUser?: _User | undefined;
|
|
13
|
+
value?: any | undefined;
|
|
14
|
+
}
|
|
15
|
+
export declare class Changelog extends Parse.Object<ChangelogAttributes> {
|
|
16
|
+
static className: string;
|
|
17
|
+
constructor(data?: Partial<ChangelogAttributes>);
|
|
18
|
+
get context(): any | undefined;
|
|
19
|
+
set context(value: any | undefined);
|
|
20
|
+
get masterkey(): boolean;
|
|
21
|
+
set masterkey(value: boolean);
|
|
22
|
+
get nameOfClass(): string;
|
|
23
|
+
set nameOfClass(value: string);
|
|
24
|
+
get operation(): string;
|
|
25
|
+
set operation(value: string);
|
|
26
|
+
get original(): any | undefined;
|
|
27
|
+
set original(value: any | undefined);
|
|
28
|
+
get actingUser(): _User | undefined;
|
|
29
|
+
set actingUser(value: _User | undefined);
|
|
30
|
+
get value(): any | undefined;
|
|
31
|
+
set value(value: any | undefined);
|
|
32
|
+
get changedObject(): string;
|
|
33
|
+
set changedObject(value: string);
|
|
34
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Changelog = void 0;
|
|
4
|
+
class Changelog extends Parse.Object {
|
|
5
|
+
constructor(data) {
|
|
6
|
+
super("OD3_Changelog", data);
|
|
7
|
+
}
|
|
8
|
+
get context() {
|
|
9
|
+
return super.get("context");
|
|
10
|
+
}
|
|
11
|
+
set context(value) {
|
|
12
|
+
super.set("context", value);
|
|
13
|
+
}
|
|
14
|
+
get masterkey() {
|
|
15
|
+
return super.get("masterkey");
|
|
16
|
+
}
|
|
17
|
+
set masterkey(value) {
|
|
18
|
+
super.set("masterkey", value);
|
|
19
|
+
}
|
|
20
|
+
get nameOfClass() {
|
|
21
|
+
return super.get("nameOfClass");
|
|
22
|
+
}
|
|
23
|
+
set nameOfClass(value) {
|
|
24
|
+
super.set("nameOfClass", value);
|
|
25
|
+
}
|
|
26
|
+
get operation() {
|
|
27
|
+
return super.get("operation");
|
|
28
|
+
}
|
|
29
|
+
set operation(value) {
|
|
30
|
+
super.set("operation", value);
|
|
31
|
+
}
|
|
32
|
+
get original() {
|
|
33
|
+
return super.get("original");
|
|
34
|
+
}
|
|
35
|
+
set original(value) {
|
|
36
|
+
super.set("original", value);
|
|
37
|
+
}
|
|
38
|
+
get actingUser() {
|
|
39
|
+
return super.get("actingUser");
|
|
40
|
+
}
|
|
41
|
+
set actingUser(value) {
|
|
42
|
+
super.set("actingUser", value);
|
|
43
|
+
}
|
|
44
|
+
get value() {
|
|
45
|
+
return super.get("value");
|
|
46
|
+
}
|
|
47
|
+
set value(value) {
|
|
48
|
+
super.set("value", value);
|
|
49
|
+
}
|
|
50
|
+
get changedObject() {
|
|
51
|
+
return super.get("changedObject");
|
|
52
|
+
}
|
|
53
|
+
set changedObject(value) {
|
|
54
|
+
super.set("changedObject", value);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.Changelog = Changelog;
|
|
58
|
+
Changelog.className = "OD3_Changelog";
|
|
59
|
+
Parse.Object.registerSubclass("OD3_Changelog", Changelog);
|
package/dist/types/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export { BDE_Result } from "./BDE_Result";
|
|
|
20
20
|
export type { BDE_ResultAttributes } from "./BDE_Result";
|
|
21
21
|
export { BDE_Unit } from "./BDE_Unit";
|
|
22
22
|
export type { BDE_UnitAttributes } from "./BDE_Unit";
|
|
23
|
+
export { Changelog } from "./Changelog";
|
|
24
|
+
export type { ChangelogAttributes } from "./Changelog";
|
|
23
25
|
export { Company } from "./Company";
|
|
24
26
|
export type { CompanyAttributes } from "./Company";
|
|
25
27
|
export { Config } from "./Config";
|
package/dist/types/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.User_Setting = void 0;
|
|
3
|
+
exports.Mail_Groups = exports.MailTemplate = exports.ML_DataSelection = exports.MIAAS_MDSEndpoint = exports.MES_OrderPlan = exports.MES_Order = exports.MES_Article = exports.Log = exports.Language = exports.Knowledge_Video = exports.Knowledge_DocumentPage = exports.Knowledge_Document = exports.Knowledge_ChatMessage = exports.Knowledge_Chat = exports.Knowledge_Category = exports.Knowledge_Article = exports.GTFS_Wheelchair_Boarding = exports.GTFS_Wheelchair_Accessible = exports.GTFS_Trip = exports.GTFS_Stop_Times = exports.GTFS_Stop = exports.GTFS_Route_Type = exports.GTFS_Route = exports.GTFS_Location_Type = exports.GTFS_Level = exports.GTFS_Direction = exports.GTFS_Calendar = exports.GTFS_Bikes_Allowed = exports.GTFS_Agency = exports.Documentation_Document = exports.Documentation_Config = exports.Documentation_Category = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = exports.Changelog = exports.BDE_Unit = exports.BDE_Result = exports.BDE_Page = exports.BDE_ListEntry = exports.BDE_List = exports.BDE_Form = exports.Attachment = exports.Assets = exports.AlarmWebhook = exports.AlarmAction = exports.Alarm = void 0;
|
|
4
|
+
exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.OWPlcItem = exports.OWPlcDevice = exports.Notification_Setting = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_ParseTableSensor = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Title = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_QR_Code = exports.Maintenance_Ticket_Project = exports.Maintenance_Ticket_Material = exports.Maintenance_Ticket_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket_FormConfig = exports.Maintenance_Ticket_Data = exports.Maintenance_Ticket_Assignment = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_Schedule_Template = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Schedule = exports.Maintenance_Restriction = exports.Maintenance_Project = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message = exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = exports.Maintenance_Frequency = exports.Maintenance_Duedate = exports.Maintenance_Downtime = void 0;
|
|
5
|
+
exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.User_Setting = exports.UserData = void 0;
|
|
6
6
|
var Alarm_1 = require("./Alarm");
|
|
7
7
|
Object.defineProperty(exports, "Alarm", { enumerable: true, get: function () { return Alarm_1.Alarm; } });
|
|
8
8
|
var AlarmAction_1 = require("./AlarmAction");
|
|
@@ -25,6 +25,8 @@ var BDE_Result_1 = require("./BDE_Result");
|
|
|
25
25
|
Object.defineProperty(exports, "BDE_Result", { enumerable: true, get: function () { return BDE_Result_1.BDE_Result; } });
|
|
26
26
|
var BDE_Unit_1 = require("./BDE_Unit");
|
|
27
27
|
Object.defineProperty(exports, "BDE_Unit", { enumerable: true, get: function () { return BDE_Unit_1.BDE_Unit; } });
|
|
28
|
+
var Changelog_1 = require("./Changelog");
|
|
29
|
+
Object.defineProperty(exports, "Changelog", { enumerable: true, get: function () { return Changelog_1.Changelog; } });
|
|
28
30
|
var Company_1 = require("./Company");
|
|
29
31
|
Object.defineProperty(exports, "Company", { enumerable: true, get: function () { return Company_1.Company; } });
|
|
30
32
|
var Config_1 = require("./Config");
|
package/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openinc/parse-server-opendash",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.31.25",
|
|
4
4
|
"description": "Parse Server Cloud Code for open.INC Stack.",
|
|
5
|
-
"packageManager": "pnpm@10.
|
|
5
|
+
"packageManager": "pnpm@10.26.2",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"parse",
|
|
8
8
|
"opendash"
|
|
9
9
|
],
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public",
|
|
12
|
+
"registry": "https://registry.npmjs.org/"
|
|
13
|
+
},
|
|
10
14
|
"repository": {
|
|
11
15
|
"type": "git",
|
|
12
16
|
"url": "git+https://github.com/open-inc/node-parse-server-opendash.git"
|
|
@@ -64,7 +68,7 @@
|
|
|
64
68
|
"dependencies": {
|
|
65
69
|
"@openinc/parse-server-schema": "^3.0.6",
|
|
66
70
|
"@opentelemetry/api-logs": "^0.208.0",
|
|
67
|
-
"@opentelemetry/auto-instrumentations-node": "^0.67.
|
|
71
|
+
"@opentelemetry/auto-instrumentations-node": "^0.67.3",
|
|
68
72
|
"@opentelemetry/exporter-logs-otlp-http": "^0.208.0",
|
|
69
73
|
"@opentelemetry/exporter-trace-otlp-http": "^0.208.0",
|
|
70
74
|
"@opentelemetry/resources": "^2.2.0",
|
|
@@ -72,21 +76,21 @@
|
|
|
72
76
|
"@opentelemetry/sdk-node": "^0.208.0",
|
|
73
77
|
"@opentelemetry/semantic-conventions": "^1.38.0",
|
|
74
78
|
"@opentelemetry/winston-transport": "^0.19.0",
|
|
75
|
-
"cron": "^4.
|
|
79
|
+
"cron": "^4.4.0",
|
|
76
80
|
"dayjs": "^1.11.19",
|
|
77
|
-
"fast-equals": "^5.
|
|
78
|
-
"i18next": "^25.
|
|
81
|
+
"fast-equals": "^5.4.0",
|
|
82
|
+
"i18next": "^25.7.3",
|
|
79
83
|
"i18next-fs-backend": "^2.6.1",
|
|
80
|
-
"jsonwebtoken": "^9.0.
|
|
84
|
+
"jsonwebtoken": "^9.0.3",
|
|
81
85
|
"jwks-rsa": "^3.2.0",
|
|
82
|
-
"nodemailer": "^7.0.
|
|
86
|
+
"nodemailer": "^7.0.12",
|
|
83
87
|
"nunjucks": "^3.2.4",
|
|
84
|
-
"parse-server": "^
|
|
88
|
+
"parse-server": "^9.1.1",
|
|
85
89
|
"pdf-img-convert": "2.0.0",
|
|
86
90
|
"semantic-release": "^25.0.2",
|
|
87
91
|
"table": "^6.9.0",
|
|
88
92
|
"web-push": "^3.6.7",
|
|
89
|
-
"winston": "^3.
|
|
93
|
+
"winston": "^3.19.0"
|
|
90
94
|
},
|
|
91
95
|
"devDependencies": {
|
|
92
96
|
"@semantic-release/changelog": "^6.0.3",
|
|
@@ -94,10 +98,10 @@
|
|
|
94
98
|
"@semantic-release/exec": "^7.1.0",
|
|
95
99
|
"@semantic-release/git": "^10.0.1",
|
|
96
100
|
"@semantic-release/github": "^12.0.2",
|
|
97
|
-
"@semantic-release/npm": "^13.1.
|
|
101
|
+
"@semantic-release/npm": "^13.1.3",
|
|
98
102
|
"@semantic-release/release-notes-generator": "^14.1.0",
|
|
99
103
|
"@types/jsonwebtoken": "^9.0.10",
|
|
100
|
-
"@types/node": "^24.10.
|
|
104
|
+
"@types/node": "^24.10.4",
|
|
101
105
|
"@types/nodemailer": "^7.0.4",
|
|
102
106
|
"@types/nunjucks": "^3.2.6",
|
|
103
107
|
"@types/parse": "^3.0.9",
|
|
@@ -106,7 +110,7 @@
|
|
|
106
110
|
"concurrently": "^9.2.1",
|
|
107
111
|
"semantic-release-export-data": "^1.2.0",
|
|
108
112
|
"ts-node": "^10.9.2",
|
|
109
|
-
"typedoc": "^0.28.
|
|
113
|
+
"typedoc": "^0.28.15",
|
|
110
114
|
"typedoc-plugin-markdown": "^4.9.0",
|
|
111
115
|
"typescript": "^5.9.3"
|
|
112
116
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": {
|
|
3
|
+
"actingUser": {
|
|
4
|
+
"type": "Pointer",
|
|
5
|
+
"targetClass": "_User",
|
|
6
|
+
"required": false
|
|
7
|
+
},
|
|
8
|
+
"masterkey": {
|
|
9
|
+
"type": "Boolean",
|
|
10
|
+
"required": true,
|
|
11
|
+
"default": false
|
|
12
|
+
},
|
|
13
|
+
"context": {
|
|
14
|
+
"type": "Object",
|
|
15
|
+
"required": false
|
|
16
|
+
},
|
|
17
|
+
"nameOfClass": {
|
|
18
|
+
"type": "String",
|
|
19
|
+
"required": true
|
|
20
|
+
},
|
|
21
|
+
"changedObject": {
|
|
22
|
+
"type": "String",
|
|
23
|
+
"required": true
|
|
24
|
+
},
|
|
25
|
+
"operation": {
|
|
26
|
+
"type": "String",
|
|
27
|
+
"required": true
|
|
28
|
+
},
|
|
29
|
+
"value": {
|
|
30
|
+
"type": "Object",
|
|
31
|
+
"required": false
|
|
32
|
+
},
|
|
33
|
+
"original": {
|
|
34
|
+
"type": "Object",
|
|
35
|
+
"required": false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"classLevelPermissions": {
|
|
39
|
+
"find": {
|
|
40
|
+
"requiresAuthentication": true,
|
|
41
|
+
"role:od-admin": true
|
|
42
|
+
},
|
|
43
|
+
"count": {
|
|
44
|
+
"requiresAuthentication": true,
|
|
45
|
+
"role:od-admin": true
|
|
46
|
+
},
|
|
47
|
+
"get": {
|
|
48
|
+
"requiresAuthentication": true,
|
|
49
|
+
"role:od-admin": true
|
|
50
|
+
},
|
|
51
|
+
"create": {
|
|
52
|
+
"role:od-admin": true
|
|
53
|
+
},
|
|
54
|
+
"update": {
|
|
55
|
+
"requiresAuthentication": true,
|
|
56
|
+
"role:od-admin": true
|
|
57
|
+
},
|
|
58
|
+
"delete": {
|
|
59
|
+
"requiresAuthentication": true,
|
|
60
|
+
"role:od-admin": true
|
|
61
|
+
},
|
|
62
|
+
"addField": {
|
|
63
|
+
"role:od-admin": true
|
|
64
|
+
},
|
|
65
|
+
"protectedFields": {
|
|
66
|
+
"*": []
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
package/dist/jobs/index.d.ts
DELETED
|
File without changes
|
package/dist/jobs/index.js
DELETED