@openinc/parse-server-opendash 2.4.95 → 2.4.99

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 (33) hide show
  1. package/dist/app_types/CRON_Types.d.ts +10 -0
  2. package/dist/app_types/CRON_Types.js +2 -0
  3. package/dist/config.js +9 -0
  4. package/dist/featuremap.json +1 -0
  5. package/dist/functions/openinc-openservice-save-ticket-data.d.ts +4 -0
  6. package/dist/functions/openinc-openservice-save-ticket-data.js +47 -8
  7. package/dist/functions/openinc-openservice-ticket-data.d.ts +7 -0
  8. package/dist/functions/openinc-openservice-ticket-data.js +2 -1
  9. package/dist/helper/TranslationKeys.d.ts +82 -0
  10. package/dist/helper/TranslationKeys.js +86 -0
  11. package/dist/hooks/Maintenance_Downtime.js +39 -2
  12. package/dist/hooks/Maintenance_Duedate.js +47 -2
  13. package/dist/hooks/Maintenance_Frequency.js +39 -2
  14. package/dist/hooks/Maintenance_Message.js +429 -1
  15. package/dist/hooks/Maintenance_Priority.js +39 -2
  16. package/dist/hooks/Maintenance_Restriction.js +39 -2
  17. package/dist/hooks/Maintenance_Schedule_Execution.js +36 -0
  18. package/dist/hooks/Maintenance_Schedule_Template.js +66 -23
  19. package/dist/hooks/Maintenance_Ticket_Issuecategory.js +40 -2
  20. package/dist/hooks/Maintenance_Ticket_Kanban_State.js +39 -2
  21. package/dist/hooks/Maintenance_Ticket_Source.js +55 -6
  22. package/dist/hooks/Maintenance_Ticket_Title.js +39 -2
  23. package/dist/hooks/Monitoring_Jobs.js +1 -1
  24. package/dist/index.js +3 -1
  25. package/dist/types/ML_DataSelection.d.ts +16 -0
  26. package/dist/types/ML_DataSelection.js +23 -0
  27. package/dist/types/Monitoring_Jobs.d.ts +8 -3
  28. package/dist/types/Monitoring_Jobs.js +6 -0
  29. package/dist/types/index.d.ts +2 -0
  30. package/dist/types/index.js +4 -2
  31. package/package.json +1 -1
  32. package/schema/ML_DataSelection.json +38 -0
  33. package/schema/Monitoring_Jobs.json +8 -1
@@ -20,7 +20,7 @@ async function init() {
20
20
  });
21
21
  (0, __1.afterSaveHook)(types_1.Maintenance_Schedule_Template, async (request) => {
22
22
  const { object, original, user } = request;
23
- addJobToBree([object]);
23
+ await addJobToBree([object]);
24
24
  });
25
25
  /**
26
26
  * This function is called upon initialization and uses bree to schedule all jobs.
@@ -42,31 +42,53 @@ async function init() {
42
42
  for (const schedule of query) {
43
43
  console.log(`Adding job for schedule ${schedule.id}`);
44
44
  const cron = schedule.get("cron");
45
- if (cron["is_one_time"] === false) {
46
- if (cron["scheduletype"] === "human") {
47
- BreeInstance_1.default.getInstance().add({
48
- name: `Schedule ${schedule.id}`,
49
- path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
50
- timeout: 0,
51
- interval: BreeInstance_1.default.createHumanReadableFormat(cron["run_cron"]),
52
- hasSeconds: true,
53
- worker: {
54
- workerData: {
55
- scheduleId: schedule.id,
56
- ParseAppId: Parse.applicationId,
57
- ParseJSKey: Parse.javaScriptKey,
58
- ParseMasterKey: Parse.masterKey,
59
- ParseServerURL: Parse.serverURL,
45
+ try {
46
+ let newjob = undefined;
47
+ if (cron.is_one_time === false) {
48
+ if (cron.scheduletype === "human") {
49
+ newjob = {
50
+ name: `Schedule ${schedule.id}`,
51
+ path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
52
+ timeout: 0,
53
+ interval: BreeInstance_1.default.createHumanReadableFormat(cron.run_cron),
54
+ hasSeconds: true,
55
+ worker: {
56
+ workerData: {
57
+ scheduleId: schedule.id,
58
+ ParseAppId: Parse.applicationId,
59
+ ParseJSKey: Parse.javaScriptKey,
60
+ ParseMasterKey: Parse.masterKey,
61
+ ParseServerURL: Parse.serverURL,
62
+ },
60
63
  },
61
- },
62
- });
64
+ };
65
+ }
66
+ else if (cron.scheduletype === "quartz") {
67
+ newjob = {
68
+ name: `Schedule ${schedule.id}`,
69
+ cron: cron.run_cron,
70
+ path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
71
+ timeout: 0,
72
+ interval: 0,
73
+ hasSeconds: true,
74
+ worker: {
75
+ workerData: {
76
+ scheduleId: schedule.id,
77
+ ParseAppId: Parse.applicationId,
78
+ ParseJSKey: Parse.javaScriptKey,
79
+ ParseMasterKey: Parse.masterKey,
80
+ ParseServerURL: Parse.serverURL,
81
+ },
82
+ },
83
+ };
84
+ }
63
85
  }
64
- else if (cron["scheduletype"] === "quartz") {
65
- BreeInstance_1.default.getInstance().add({
86
+ else {
87
+ // If the job is a one time job, we will schedule it to run once
88
+ newjob = {
66
89
  name: `Schedule ${schedule.id}`,
67
- cron: cron["run_cron"],
90
+ date: cron.run_startdate,
68
91
  path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
69
- timeout: 0,
70
92
  interval: 0,
71
93
  hasSeconds: true,
72
94
  worker: {
@@ -78,8 +100,29 @@ async function init() {
78
100
  ParseServerURL: Parse.serverURL,
79
101
  },
80
102
  },
81
- });
103
+ };
82
104
  }
105
+ if (newjob === undefined) {
106
+ console.error("newjob is undefined");
107
+ return;
108
+ }
109
+ //Get all jobs from bree and check whether the job already exists
110
+ const jobs = BreeInstance_1.default.getAllJobs();
111
+ let jobExists = false;
112
+ for (const job of jobs) {
113
+ if (job.name === newjob.name) {
114
+ jobExists = true;
115
+ break;
116
+ }
117
+ }
118
+ if (jobExists) {
119
+ console.log(`Job for schedule ${schedule.id} already exists`);
120
+ return;
121
+ }
122
+ await BreeInstance_1.default.getInstance().add(newjob);
123
+ }
124
+ catch (error) {
125
+ console.warn(`Error while adding job for schedule ${schedule.id}`, error);
83
126
  }
84
127
  }
85
128
  }
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
5
  const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
6
+ const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
6
7
  const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
8
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
7
9
  const types_1 = require("../types");
8
10
  const Maintenance_Message_1 = require("./Maintenance_Message");
9
- const TRANSLATION_TITLE = "maintenance:ticket.message.issuecategory.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.issuecategory.changed.content";
11
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.ISSUECATEGORY.TITLE;
12
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.ISSUECATEGORY.CONTENT;
13
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.ISSUECATEGORY.TITLE;
14
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.ISSUECATEGORY.CONTENT;
11
15
  async function init() {
12
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Issuecategory, async (request) => {
13
17
  const { object, original, user } = request;
@@ -32,6 +36,10 @@ async function init() {
32
36
  }, (first, second) => {
33
37
  return (first.get("issuecategory")?.id === second.get("issuecategory")?.id);
34
38
  });
39
+ // fetch necessary data
40
+ await savedObject.fetchWithInclude(["ticket", "issuecategory"], {
41
+ useMasterKey: true,
42
+ });
35
43
  const previousIssue = await new Parse.Query(types_1.Maintenance_Ticket_Issuecategory)
36
44
  .includeAll()
37
45
  .equalTo("ticket", savedObject.get("ticket"))
@@ -57,7 +65,37 @@ async function init() {
57
65
  "Nicht vorhanden",
58
66
  new: issue?.get("name"),
59
67
  },
68
+ origin: {
69
+ id: savedObject.id,
70
+ classname: savedObject.className,
71
+ },
60
72
  },
61
73
  }).save(null, { useMasterKey: true });
74
+ // to machinelog
75
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
76
+ if (source) {
77
+ await new types_1.Maintenance_Message({
78
+ referencedObjectId: source?.id,
79
+ classname: source?.className,
80
+ title: TRANSLATION_TITLE_MACHINELOG,
81
+ content: TRANSLATION_CONTENT_MACHINELOG,
82
+ user: user,
83
+ tenant: user?.get("tenant"),
84
+ data: {
85
+ type: "system",
86
+ translation: {
87
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
88
+ old: previousIssue?.get("issuecategory")?.get("name") ??
89
+ "Nicht vorhanden",
90
+ new: issue?.get("name"),
91
+ ticketName: savedObject.get("ticket")?.get("title"),
92
+ },
93
+ origin: {
94
+ id: savedObject.get("ticket")?.id,
95
+ classname: savedObject.get("ticket")?.className,
96
+ },
97
+ },
98
+ }).save(null, { useMasterKey: true });
99
+ }
62
100
  });
63
101
  }
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
5
  const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
6
+ const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
6
7
  const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
8
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
7
9
  const types_1 = require("../types");
8
10
  const Maintenance_Message_1 = require("./Maintenance_Message");
9
- const TRANSLATION_TITLE = "maintenance:ticket.message.kanbanstate.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.kanbanstate.changed.content";
11
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.KANBANSTATE.TITLE;
12
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.KANBANSTATE.CONTENT;
13
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.KANBANSTATE.TITLE;
14
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.KANBANSTATE.CONTENT;
11
15
  async function init() {
12
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Kanban_State, async (request) => {
13
17
  const { object, original, user } = request;
@@ -38,6 +42,10 @@ async function init() {
38
42
  }, (first, second) => {
39
43
  return first.get("state")?.id === second.get("state")?.id;
40
44
  });
45
+ // fetch necessary data
46
+ await savedObject.fetchWithInclude(["ticket", "state"], {
47
+ useMasterKey: true,
48
+ });
41
49
  const previousState = await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State)
42
50
  .includeAll()
43
51
  .descending("createdAt")
@@ -60,6 +68,10 @@ async function init() {
60
68
  old: previousState?.get("state").get("label") ?? "Nicht vorhanden",
61
69
  new: state.get("label"),
62
70
  },
71
+ origin: {
72
+ id: savedObject.id,
73
+ classname: savedObject.className,
74
+ },
63
75
  },
64
76
  }).save(null, { useMasterKey: true });
65
77
  // Update the current state of the ticket
@@ -82,5 +94,30 @@ async function init() {
82
94
  });
83
95
  await newTicketState.save(null, { useMasterKey: true });
84
96
  }
97
+ // to machinelog
98
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
99
+ if (source) {
100
+ await new types_1.Maintenance_Message({
101
+ referencedObjectId: source?.id,
102
+ classname: source?.className,
103
+ title: TRANSLATION_TITLE_MACHINELOG,
104
+ content: TRANSLATION_CONTENT_MACHINELOG,
105
+ user: user,
106
+ tenant: user?.get("tenant"),
107
+ data: {
108
+ type: "system",
109
+ translation: {
110
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
111
+ old: previousState?.get("state").get("label") ?? "Nicht vorhanden",
112
+ new: state.get("label"),
113
+ ticketName: savedObject.get("ticket")?.get("title"),
114
+ },
115
+ origin: {
116
+ id: savedObject.get("ticket")?.id,
117
+ classname: savedObject.get("ticket")?.className,
118
+ },
119
+ },
120
+ }).save(null, { useMasterKey: true });
121
+ }
85
122
  });
86
123
  }
@@ -4,10 +4,13 @@ exports.init = init;
4
4
  const __1 = require("..");
5
5
  const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
6
6
  const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
7
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
7
8
  const types_1 = require("../types");
8
9
  const Maintenance_Message_1 = require("./Maintenance_Message");
9
- const TRANSLATION_TITLE = "maintenance:ticket.message.source.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.source.changed.content";
10
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.SOURCE.TITLE;
11
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.SOURCE.CONTENT;
12
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.SOURCE.TITLE;
13
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.SOURCE.CONTENT;
11
14
  async function init() {
12
15
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Source, async (request) => {
13
16
  const { object, original, user } = request;
@@ -33,15 +36,16 @@ async function init() {
33
36
  }, (first, second) => {
34
37
  return first.get("source")?.id === second.get("source")?.id;
35
38
  });
39
+ // fetch necessary data
40
+ await savedObject.fetchWithInclude(["ticket", "source"], {
41
+ useMasterKey: true,
42
+ });
36
43
  const previousSource = await new Parse.Query(types_1.Maintenance_Ticket_Source)
37
44
  .includeAll()
38
45
  .equalTo("ticket", savedObject.get("ticket"))
39
46
  .notEqualTo("objectId", savedObject.id)
40
47
  .descending("createdAt")
41
48
  .first({ useMasterKey: true });
42
- const source = await savedObject
43
- .get("source")
44
- ?.fetch({ useMasterKey: true });
45
49
  // create new message log
46
50
  await new types_1.Maintenance_Message({
47
51
  referencedObjectId: savedObject.get("ticket")?.id,
@@ -55,7 +59,52 @@ async function init() {
55
59
  translation: {
56
60
  username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
57
61
  old: previousSource?.get("source").get("name") ?? "Nicht vorhanden",
58
- new: source.get("name"),
62
+ new: savedObject.get("source")?.get("name"),
63
+ },
64
+ },
65
+ }).save(null, { useMasterKey: true });
66
+ // to machinelog of old source
67
+ if (previousSource)
68
+ await new types_1.Maintenance_Message({
69
+ referencedObjectId: previousSource?.get("source")?.id,
70
+ classname: previousSource?.get("source")?.className,
71
+ title: TRANSLATION_TITLE_MACHINELOG,
72
+ content: TRANSLATION_CONTENT_MACHINELOG,
73
+ user: user,
74
+ tenant: user?.get("tenant"),
75
+ data: {
76
+ type: "system",
77
+ translation: {
78
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
79
+ old: previousSource?.get("source").get("name") ?? "Nicht vorhanden",
80
+ new: savedObject.get("source")?.get("name"),
81
+ ticketName: savedObject.get("ticket")?.get("title"),
82
+ },
83
+ origin: {
84
+ id: savedObject.get("ticket")?.id,
85
+ classname: savedObject.get("ticket")?.className,
86
+ },
87
+ },
88
+ }).save(null, { useMasterKey: true });
89
+ // to machinelog
90
+ await new types_1.Maintenance_Message({
91
+ referencedObjectId: savedObject.get("source")?.id,
92
+ classname: savedObject.get("source")?.className,
93
+ title: TRANSLATION_TITLE_MACHINELOG,
94
+ content: TRANSLATION_CONTENT_MACHINELOG,
95
+ user: user,
96
+ tenant: user?.get("tenant"),
97
+ data: {
98
+ type: "system",
99
+ translation: {
100
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
101
+ old: previousSource?.get("source").get("name") ?? "Nicht vorhanden",
102
+ new: savedObject.get("source")?.get("name"),
103
+ ticketName: savedObject.get("ticket")?.get("title"),
104
+ },
105
+ origin: {
106
+ id: savedObject.get("ticket")?.id,
107
+ classname: savedObject.get("ticket")?.className,
59
108
  },
60
109
  },
61
110
  }).save(null, { useMasterKey: true });
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
5
5
  const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
6
+ const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
6
7
  const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
8
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
7
9
  const types_1 = require("../types");
8
10
  const Maintenance_Message_1 = require("./Maintenance_Message");
9
- const TRANSLATION_TITLE = "maintenance:ticket.message.title.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.title.changed.content";
11
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.TITLE.TITLE;
12
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.TITLE.CONTENT;
13
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.TITLE.TITLE;
14
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.TITLE.CONTENT;
11
15
  async function init() {
12
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Title, async (request) => {
13
17
  const { object, original, user } = request;
@@ -35,6 +39,10 @@ async function init() {
35
39
  }, (first, second) => {
36
40
  return first.get("title") === second.get("title");
37
41
  });
42
+ // fetch necessary data
43
+ await savedObject.fetchWithInclude(["ticket"], {
44
+ useMasterKey: true,
45
+ });
38
46
  const previousTitle = await new Parse.Query(types_1.Maintenance_Ticket_Title)
39
47
  .includeAll()
40
48
  .descending("createdAt")
@@ -56,7 +64,36 @@ async function init() {
56
64
  old: previousTitle?.get("title") ?? "Nicht vorhanden",
57
65
  new: savedObject.get("title"),
58
66
  },
67
+ origin: {
68
+ id: savedObject.id,
69
+ classname: savedObject.className,
70
+ },
59
71
  },
60
72
  }).save(null, { useMasterKey: true });
73
+ // to machinelog
74
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
75
+ if (source) {
76
+ await new types_1.Maintenance_Message({
77
+ referencedObjectId: source?.id,
78
+ classname: source?.className,
79
+ title: TRANSLATION_TITLE_MACHINELOG,
80
+ content: TRANSLATION_CONTENT_MACHINELOG,
81
+ user: user,
82
+ tenant: user?.get("tenant"),
83
+ data: {
84
+ type: "system",
85
+ translation: {
86
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
87
+ old: previousTitle?.get("title") ?? "Nicht vorhanden",
88
+ new: savedObject.get("title"),
89
+ ticketName: savedObject.get("ticket")?.get("title"),
90
+ },
91
+ origin: {
92
+ id: savedObject.get("ticket")?.id,
93
+ classname: savedObject.get("ticket")?.className,
94
+ },
95
+ },
96
+ }).save(null, { useMasterKey: true });
97
+ }
61
98
  });
62
99
  }
@@ -7,7 +7,7 @@ async function init() {
7
7
  (0, __1.beforeSaveHook)(types_1.Monitoring_Jobs, 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.Monitoring_Jobs, async (request) => {
package/dist/index.js CHANGED
@@ -29,10 +29,10 @@ const config_1 = require("./config");
29
29
  const featuremap_json_1 = __importDefault(require("./featuremap.json"));
30
30
  const _init_1 = require("./functions/_init");
31
31
  const BreeInstance_1 = __importDefault(require("./helper/BreeInstance"));
32
+ const registerPermissions_1 = require("./helper/registerPermissions");
32
33
  const Core_Email_1 = require("./hooks/Core_Email");
33
34
  const _init_2 = require("./hooks/_init");
34
35
  const types_1 = require("./types");
35
- const registerPermissions_1 = require("./helper/registerPermissions");
36
36
  // export { Config } from "./helper/Config";
37
37
  var Core_Email_2 = require("./hooks/Core_Email");
38
38
  Object.defineProperty(exports, "sendSimpleEmail", { enumerable: true, get: function () { return Core_Email_2.sendSimpleEmail; } });
@@ -607,6 +607,8 @@ function isFeatureEnabled(feature) {
607
607
  return config_1.config.getBoolean("FEATURE_KNOWLEDGE");
608
608
  case "MAINTENANCE":
609
609
  return config_1.config.getBoolean("FEATURE_MAINTENANCE");
610
+ case "DOCUMENTATION":
611
+ return config_1.config.getBoolean("FEATURE_DOCUMENTATION");
610
612
  case "MIAAS":
611
613
  return config_1.config.getBoolean("FEATURE_MIAAS");
612
614
  default:
@@ -0,0 +1,16 @@
1
+ export interface ML_DataSelectionAttributes {
2
+ id: string;
3
+ objectId: string;
4
+ createdAt: Date;
5
+ updatedAt: Date;
6
+ label?: string;
7
+ pipe: any;
8
+ }
9
+ export declare class ML_DataSelection extends Parse.Object<ML_DataSelectionAttributes> {
10
+ static className: string;
11
+ constructor(data?: Partial<ML_DataSelectionAttributes>);
12
+ get label(): string | undefined;
13
+ set label(value: string | undefined);
14
+ get pipe(): any;
15
+ set pipe(value: any);
16
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ML_DataSelection = void 0;
4
+ class ML_DataSelection extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_ML_DataSelection", data);
7
+ }
8
+ get label() {
9
+ return super.get("label");
10
+ }
11
+ set label(value) {
12
+ super.set("label", value);
13
+ }
14
+ get pipe() {
15
+ return super.get("pipe");
16
+ }
17
+ set pipe(value) {
18
+ super.set("pipe", value);
19
+ }
20
+ }
21
+ exports.ML_DataSelection = ML_DataSelection;
22
+ ML_DataSelection.className = "OD3_ML_DataSelection";
23
+ Parse.Object.registerSubclass("OD3_ML_DataSelection", ML_DataSelection);
@@ -1,3 +1,5 @@
1
+ import type { Tenant } from "./Tenant";
2
+ import type { _User } from "./_User";
1
3
  export interface Monitoring_JobsAttributes {
2
4
  id: string;
3
5
  objectId: string;
@@ -9,8 +11,9 @@ export interface Monitoring_JobsAttributes {
9
11
  name?: string;
10
12
  next_execution_ow_job?: number;
11
13
  options?: any;
14
+ tenant?: Tenant;
12
15
  type?: string;
13
- user?: string;
16
+ user?: _User;
14
17
  }
15
18
  export declare class Monitoring_Jobs extends Parse.Object<Monitoring_JobsAttributes> {
16
19
  static className: string;
@@ -27,8 +30,10 @@ export declare class Monitoring_Jobs extends Parse.Object<Monitoring_JobsAttribu
27
30
  set next_execution_ow_job(value: number | undefined);
28
31
  get options(): any | undefined;
29
32
  set options(value: any | undefined);
33
+ get tenant(): Tenant | undefined;
34
+ set tenant(value: Tenant | undefined);
30
35
  get type(): string | undefined;
31
36
  set type(value: string | undefined);
32
- get user(): string | undefined;
33
- set user(value: string | undefined);
37
+ get user(): _User | undefined;
38
+ set user(value: _User | undefined);
34
39
  }
@@ -41,6 +41,12 @@ class Monitoring_Jobs extends Parse.Object {
41
41
  set options(value) {
42
42
  super.set("options", value);
43
43
  }
44
+ get tenant() {
45
+ return super.get("tenant");
46
+ }
47
+ set tenant(value) {
48
+ super.set("tenant", value);
49
+ }
44
50
  get type() {
45
51
  return super.get("type");
46
52
  }
@@ -88,6 +88,8 @@ export { MES_OrderPlan } from "./MES_OrderPlan";
88
88
  export type { MES_OrderPlanAttributes } from "./MES_OrderPlan";
89
89
  export { MIAAS_MDSEndpoint } from "./MIAAS_MDSEndpoint";
90
90
  export type { MIAAS_MDSEndpointAttributes } from "./MIAAS_MDSEndpoint";
91
+ export { ML_DataSelection } from "./ML_DataSelection";
92
+ export type { ML_DataSelectionAttributes } from "./ML_DataSelection";
91
93
  export { MailTemplate } from "./MailTemplate";
92
94
  export type { MailTemplateAttributes } from "./MailTemplate";
93
95
  export { Maintenance_DailySchedule } from "./Maintenance_DailySchedule";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Maintenance_Frequency = exports.Maintenance_Duedate = exports.Maintenance_Downtime = exports.Maintenance_DailySchedule = exports.MailTemplate = 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_Category = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = 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.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.User_Setting = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = 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_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket_Assignment = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Template = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = exports.Maintenance_Message = exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = void 0;
3
+ exports.Maintenance_Duedate = exports.Maintenance_Downtime = exports.Maintenance_DailySchedule = 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_Category = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = 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.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.User_Setting = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = 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_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket_Assignment = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Template = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = exports.Maintenance_Message = exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = exports.Maintenance_Frequency = void 0;
5
5
  var Alarm_1 = require("./Alarm");
6
6
  Object.defineProperty(exports, "Alarm", { enumerable: true, get: function () { return Alarm_1.Alarm; } });
7
7
  var AlarmAction_1 = require("./AlarmAction");
@@ -92,6 +92,8 @@ var MES_OrderPlan_1 = require("./MES_OrderPlan");
92
92
  Object.defineProperty(exports, "MES_OrderPlan", { enumerable: true, get: function () { return MES_OrderPlan_1.MES_OrderPlan; } });
93
93
  var MIAAS_MDSEndpoint_1 = require("./MIAAS_MDSEndpoint");
94
94
  Object.defineProperty(exports, "MIAAS_MDSEndpoint", { enumerable: true, get: function () { return MIAAS_MDSEndpoint_1.MIAAS_MDSEndpoint; } });
95
+ var ML_DataSelection_1 = require("./ML_DataSelection");
96
+ Object.defineProperty(exports, "ML_DataSelection", { enumerable: true, get: function () { return ML_DataSelection_1.ML_DataSelection; } });
95
97
  var MailTemplate_1 = require("./MailTemplate");
96
98
  Object.defineProperty(exports, "MailTemplate", { enumerable: true, get: function () { return MailTemplate_1.MailTemplate; } });
97
99
  var Maintenance_DailySchedule_1 = require("./Maintenance_DailySchedule");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "2.4.95",
3
+ "version": "2.4.99",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "packageManager": "pnpm@10.2.1",
6
6
  "keywords": [
@@ -0,0 +1,38 @@
1
+ {
2
+ "fields": {
3
+ "label": {
4
+ "type": "String",
5
+ "required": false
6
+ },
7
+ "pipe": {
8
+ "type": "Object",
9
+ "required": true
10
+ }
11
+ },
12
+ "classLevelPermissions": {
13
+ "find": {
14
+ "*": true
15
+ },
16
+ "count": {
17
+ "*": true
18
+ },
19
+ "get": {
20
+ "*": true
21
+ },
22
+ "create": {
23
+ "*": true
24
+ },
25
+ "update": {
26
+ "*": true
27
+ },
28
+ "delete": {
29
+ "*": true
30
+ },
31
+ "addField": {
32
+ "*": true
33
+ },
34
+ "protectedFields": {
35
+ "*": []
36
+ }
37
+ }
38
+ }
@@ -18,11 +18,18 @@
18
18
  "options": {
19
19
  "type": "Object"
20
20
  },
21
+ "tenant": {
22
+ "type": "Pointer",
23
+ "targetClass": "{{PREFIX}}Tenant",
24
+ "required": false
25
+ },
21
26
  "type": {
22
27
  "type": "String"
23
28
  },
24
29
  "user": {
25
- "type": "String"
30
+ "type": "Pointer",
31
+ "targetClass": "_User",
32
+ "required": false
26
33
  }
27
34
  },
28
35
  "classLevelPermissions": {