@openinc/parse-server-opendash 3.25.2 → 3.25.3

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.
@@ -4,6 +4,7 @@ exports.init = init;
4
4
  const initIssuecategory_1 = require("./issuecategory/initIssuecategory");
5
5
  const initKanbanStates_1 = require("./kanbanState/initKanbanStates");
6
6
  const initMessages_1 = require("./messages/initMessages");
7
+ const checkStatus_1 = require("./schedules/mappings/checkStatus");
7
8
  const reassignScheduleExecutions_1 = require("./schedules/mappings/reassignScheduleExecutions");
8
9
  const initTicket_1 = require("./ticket/initTicket");
9
10
  async function init() {
@@ -16,5 +17,6 @@ async function init() {
16
17
  await (0, initKanbanStates_1.initEnabledFlag)();
17
18
  await (0, initTicket_1.initTicketClass)();
18
19
  await (0, reassignScheduleExecutions_1.reassignScheduleExecutions)();
20
+ await (0, checkStatus_1.checkStatus)();
19
21
  console.log("open.SERVICE feature initialized.");
20
22
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Checks the status field of each Maintenance_Schedule_Execution and updates it accordingly.
3
+ * Ensures that if the status is not set, it defaults to "default", and if finishedAt is set, the status is "finished".
4
+ * @returns
5
+ */
6
+ export declare function checkStatus(): Promise<void>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkStatus = checkStatus;
4
+ const catchError_1 = require("../../../../helper/catchError");
5
+ const types_1 = require("../../../../types");
6
+ /**
7
+ * Checks the status field of each Maintenance_Schedule_Execution and updates it accordingly.
8
+ * Ensures that if the status is not set, it defaults to "default", and if finishedAt is set, the status is "finished".
9
+ * @returns
10
+ */
11
+ async function checkStatus() {
12
+ // Maintenance_Schedule_Execution: For every entry: check the field "status" and set it to "default" if not set/undefined or set to "finished" if field "finishedAt" is set
13
+ const [error, executions] = await (0, catchError_1.catchError)(new Parse.Query(types_1.Maintenance_Schedule_Execution).findAll({
14
+ useMasterKey: true,
15
+ }));
16
+ if (error) {
17
+ console.error("Error fetching Maintenance_Schedule_Execution:", error);
18
+ return;
19
+ }
20
+ for (const execution of executions) {
21
+ const status = execution.get("status");
22
+ const finishedAt = execution.get("finishedAt");
23
+ if (!status) {
24
+ execution.set("status", "default");
25
+ }
26
+ else if (finishedAt) {
27
+ execution.set("status", "finished");
28
+ }
29
+ await execution.save(null, { useMasterKey: true });
30
+ }
31
+ }
@@ -10,9 +10,9 @@ export interface Documentation_CategoryAttributes {
10
10
  isDefault: boolean;
11
11
  name: string;
12
12
  order: number;
13
- parent?: Documentation_Category;
14
- tenant?: Tenant;
15
- user?: _User;
13
+ parent?: Documentation_Category | undefined;
14
+ tenant?: Tenant | undefined;
15
+ user?: _User | undefined;
16
16
  }
17
17
  export declare class Documentation_Category extends Parse.Object<Documentation_CategoryAttributes> {
18
18
  static className: string;
@@ -11,12 +11,12 @@ export interface Documentation_DocumentAttributes {
11
11
  gitPath?: string;
12
12
  icon?: string;
13
13
  isDefault: boolean;
14
- locationPattern?: string;
15
- locations: any[];
14
+ locationPattern?: string | undefined;
15
+ locations?: any[] | undefined;
16
16
  order: number;
17
- tenant?: Tenant;
17
+ tenant?: Tenant | undefined;
18
18
  title: string;
19
- user?: _User;
19
+ user?: _User | undefined;
20
20
  }
21
21
  export declare class Documentation_Document extends Parse.Object<Documentation_DocumentAttributes> {
22
22
  static className: string;
@@ -33,8 +33,8 @@ export declare class Documentation_Document extends Parse.Object<Documentation_D
33
33
  set isDefault(value: boolean);
34
34
  get locationPattern(): string | undefined;
35
35
  set locationPattern(value: string | undefined);
36
- get locations(): any[];
37
- set locations(value: any[]);
36
+ get locations(): any[] | undefined;
37
+ set locations(value: any[] | undefined);
38
38
  get order(): number;
39
39
  set order(value: number);
40
40
  get tenant(): Tenant | undefined;
@@ -0,0 +1,20 @@
1
+ import type { _User } from "./_User";
2
+ export interface Mail_GroupsAttributes {
3
+ id: string;
4
+ objectId: string;
5
+ createdAt: Date;
6
+ updatedAt: Date;
7
+ Mails?: string | undefined;
8
+ Name?: string | undefined;
9
+ user?: _User | undefined;
10
+ }
11
+ export declare class Mail_Groups extends Parse.Object<Mail_GroupsAttributes> {
12
+ static className: string;
13
+ constructor(data?: Partial<Mail_GroupsAttributes>);
14
+ get Mails(): string | undefined;
15
+ set Mails(value: string | undefined);
16
+ get Name(): string | undefined;
17
+ set Name(value: string | undefined);
18
+ get user(): _User | undefined;
19
+ set user(value: _User | undefined);
20
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mail_Groups = void 0;
4
+ class Mail_Groups extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_Mail_Groups", data);
7
+ }
8
+ get Mails() {
9
+ return super.get("Mails");
10
+ }
11
+ set Mails(value) {
12
+ super.set("Mails", value);
13
+ }
14
+ get Name() {
15
+ return super.get("Name");
16
+ }
17
+ set Name(value) {
18
+ super.set("Name", value);
19
+ }
20
+ get user() {
21
+ return super.get("user");
22
+ }
23
+ set user(value) {
24
+ super.set("user", value);
25
+ }
26
+ }
27
+ exports.Mail_Groups = Mail_Groups;
28
+ Mail_Groups.className = "OD3_Mail_Groups";
29
+ Parse.Object.registerSubclass("OD3_Mail_Groups", Mail_Groups);
@@ -1,3 +1,4 @@
1
+ import type { Contact } from "./Contact";
1
2
  import type { Maintenance_Schedule_Execution } from "./Maintenance_Schedule_Execution";
2
3
  import type { Maintenance_Schedule_Step } from "./Maintenance_Schedule_Step";
3
4
  import type { Maintenance_Schedule_Template } from "./Maintenance_Schedule_Template";
@@ -8,24 +9,26 @@ export interface Maintenance_ScheduleAttributes {
8
9
  objectId: string;
9
10
  createdAt: Date;
10
11
  updatedAt: Date;
11
- color?: string;
12
- cron?: any;
13
- description?: string;
12
+ color?: string | undefined;
13
+ contacts: Parse.Relation<Maintenance_Schedule, Contact>;
14
+ cron?: any | undefined;
15
+ description?: string | undefined;
14
16
  enabled: boolean;
15
- lastExecution?: Maintenance_Schedule_Execution;
17
+ lastExecution?: Maintenance_Schedule_Execution | undefined;
16
18
  meta?: any;
17
- notifyBeforeDue?: any;
19
+ notifyBeforeDue?: any | undefined;
18
20
  source: Source;
19
21
  steps: Parse.Relation<Maintenance_Schedule, Maintenance_Schedule_Step>;
20
- template?: Maintenance_Schedule_Template;
21
- tenant?: Tenant;
22
- title?: string;
22
+ template?: Maintenance_Schedule_Template | undefined;
23
+ tenant?: Tenant | undefined;
24
+ title?: string | undefined;
23
25
  }
24
26
  export declare class Maintenance_Schedule extends Parse.Object<Maintenance_ScheduleAttributes> {
25
27
  static className: string;
26
28
  constructor(data?: Partial<Maintenance_ScheduleAttributes>);
27
29
  get color(): string | undefined;
28
30
  set color(value: string | undefined);
31
+ get contacts(): Parse.Relation<Maintenance_Schedule, Contact>;
29
32
  get cron(): any | undefined;
30
33
  set cron(value: any | undefined);
31
34
  get description(): string | undefined;
@@ -11,6 +11,9 @@ class Maintenance_Schedule extends Parse.Object {
11
11
  set color(value) {
12
12
  super.set("color", value);
13
13
  }
14
+ get contacts() {
15
+ return super.relation("contacts");
16
+ }
14
17
  get cron() {
15
18
  return super.get("cron");
16
19
  }
@@ -17,6 +17,7 @@ export interface Maintenance_Schedule_ExecutionAttributes {
17
17
  origin_cron?: any | undefined;
18
18
  schedule?: Maintenance_Schedule | undefined;
19
19
  source?: Source | undefined;
20
+ status: string;
20
21
  tenant?: Tenant | undefined;
21
22
  title?: string | undefined;
22
23
  user: _User;
@@ -39,6 +40,8 @@ export declare class Maintenance_Schedule_Execution extends Parse.Object<Mainten
39
40
  set schedule(value: Maintenance_Schedule | undefined);
40
41
  get source(): Source | undefined;
41
42
  set source(value: Source | undefined);
43
+ get status(): string;
44
+ set status(value: string);
42
45
  get tenant(): Tenant | undefined;
43
46
  set tenant(value: Tenant | undefined);
44
47
  get title(): string | undefined;
@@ -50,6 +50,12 @@ class Maintenance_Schedule_Execution extends Parse.Object {
50
50
  set source(value) {
51
51
  super.set("source", value);
52
52
  }
53
+ get status() {
54
+ return super.get("status");
55
+ }
56
+ set status(value) {
57
+ super.set("status", value);
58
+ }
53
59
  get tenant() {
54
60
  return super.get("tenant");
55
61
  }
@@ -1,3 +1,4 @@
1
+ import type { Source } from "./Source";
1
2
  import type { _User } from "./_User";
2
3
  export interface ReportAttributes {
3
4
  id: string;
@@ -13,6 +14,7 @@ export interface ReportAttributes {
13
14
  masterData: any;
14
15
  name?: string | undefined;
15
16
  options: any;
17
+ source?: Source | undefined;
16
18
  template: Parse.File;
17
19
  title?: string | undefined;
18
20
  type: string;
@@ -39,6 +41,8 @@ export declare class Report extends Parse.Object<ReportAttributes> {
39
41
  set name(value: string | undefined);
40
42
  get options(): any;
41
43
  set options(value: any);
44
+ get source(): Source | undefined;
45
+ set source(value: Source | undefined);
42
46
  get template(): Parse.File;
43
47
  set template(value: Parse.File);
44
48
  get title(): string | undefined;
@@ -59,6 +59,12 @@ class Report extends Parse.Object {
59
59
  set options(value) {
60
60
  super.set("options", value);
61
61
  }
62
+ get source() {
63
+ return super.get("source");
64
+ }
65
+ set source(value) {
66
+ super.set("source", value);
67
+ }
62
68
  get template() {
63
69
  return super.get("template");
64
70
  }
@@ -15,7 +15,6 @@ export interface _UserAttributes {
15
15
  miaas_cities: any[];
16
16
  miaas_userType?: string | undefined;
17
17
  miaasUserScope?: string | undefined;
18
- microsoftId?: string | undefined;
19
18
  name?: string | undefined;
20
19
  password?: string | undefined;
21
20
  settings?: User_Setting | undefined;
@@ -94,6 +94,8 @@ export { ML_DataSelection } from "./ML_DataSelection";
94
94
  export type { ML_DataSelectionAttributes } from "./ML_DataSelection";
95
95
  export { MailTemplate } from "./MailTemplate";
96
96
  export type { MailTemplateAttributes } from "./MailTemplate";
97
+ export { Mail_Groups } from "./Mail_Groups";
98
+ export type { Mail_GroupsAttributes } from "./Mail_Groups";
97
99
  export { Maintenance_Downtime } from "./Maintenance_Downtime";
98
100
  export type { Maintenance_DowntimeAttributes } from "./Maintenance_Downtime";
99
101
  export { Maintenance_Duedate } from "./Maintenance_Duedate";
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Maintenance_Duedate = exports.Maintenance_Downtime = 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.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.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.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_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 = void 0;
5
- exports.WidgetPreset = exports.Widget = exports.WebPush = void 0;
3
+ exports.Maintenance_Downtime = 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.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.User_Setting = exports.UserData = 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_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 = void 0;
5
+ exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = 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");
@@ -99,6 +99,8 @@ var ML_DataSelection_1 = require("./ML_DataSelection");
99
99
  Object.defineProperty(exports, "ML_DataSelection", { enumerable: true, get: function () { return ML_DataSelection_1.ML_DataSelection; } });
100
100
  var MailTemplate_1 = require("./MailTemplate");
101
101
  Object.defineProperty(exports, "MailTemplate", { enumerable: true, get: function () { return MailTemplate_1.MailTemplate; } });
102
+ var Mail_Groups_1 = require("./Mail_Groups");
103
+ Object.defineProperty(exports, "Mail_Groups", { enumerable: true, get: function () { return Mail_Groups_1.Mail_Groups; } });
102
104
  var Maintenance_Downtime_1 = require("./Maintenance_Downtime");
103
105
  Object.defineProperty(exports, "Maintenance_Downtime", { enumerable: true, get: function () { return Maintenance_Downtime_1.Maintenance_Downtime; } });
104
106
  var Maintenance_Duedate_1 = require("./Maintenance_Duedate");
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "3.25.2",
3
+ "version": "3.25.3",
4
4
  "description": "Parse Server Cloud Code for open.INC Stack.",
5
- "packageManager": "pnpm@10.19.0",
5
+ "packageManager": "pnpm@10.20.0",
6
6
  "keywords": [
7
7
  "parse",
8
8
  "opendash"
@@ -60,24 +60,24 @@
60
60
  "rebuild:docker": "cd ./docker-dev && powershell -NoProfile -ExecutionPolicy Bypass -File rebuild_and_restart.ps1"
61
61
  },
62
62
  "dependencies": {
63
- "@openinc/parse-server-schema": "^3.0.5",
64
- "@opentelemetry/api-logs": "^0.207.0",
65
- "@opentelemetry/auto-instrumentations-node": "^0.66.0",
66
- "@opentelemetry/exporter-logs-otlp-http": "^0.207.0",
67
- "@opentelemetry/exporter-trace-otlp-http": "^0.207.0",
63
+ "@openinc/parse-server-schema": "^3.0.6",
64
+ "@opentelemetry/api-logs": "^0.208.0",
65
+ "@opentelemetry/auto-instrumentations-node": "^0.67.0",
66
+ "@opentelemetry/exporter-logs-otlp-http": "^0.208.0",
67
+ "@opentelemetry/exporter-trace-otlp-http": "^0.208.0",
68
68
  "@opentelemetry/resources": "^2.2.0",
69
- "@opentelemetry/sdk-logs": "^0.207.0",
70
- "@opentelemetry/sdk-node": "^0.207.0",
71
- "@opentelemetry/semantic-conventions": "^1.37.0",
72
- "@opentelemetry/winston-transport": "^0.18.0",
73
- "cron": "^4.3.3",
74
- "dayjs": "^1.11.18",
69
+ "@opentelemetry/sdk-logs": "^0.208.0",
70
+ "@opentelemetry/sdk-node": "^0.208.0",
71
+ "@opentelemetry/semantic-conventions": "^1.38.0",
72
+ "@opentelemetry/winston-transport": "^0.19.0",
73
+ "cron": "^4.3.4",
74
+ "dayjs": "^1.11.19",
75
75
  "fast-equals": "^5.3.2",
76
76
  "jsonwebtoken": "^9.0.2",
77
77
  "jwks-rsa": "^3.2.0",
78
78
  "nodemailer": "^7.0.10",
79
79
  "nunjucks": "^3.2.4",
80
- "parse-server": "^8.2.5",
80
+ "parse-server": "^8.4.0",
81
81
  "pdf-img-convert": "2.0.0",
82
82
  "semantic-release": "^25.0.1",
83
83
  "table": "^6.9.0",
@@ -89,11 +89,11 @@
89
89
  "@semantic-release/commit-analyzer": "^13.0.1",
90
90
  "@semantic-release/exec": "^7.1.0",
91
91
  "@semantic-release/git": "^10.0.1",
92
- "@semantic-release/github": "^12.0.0",
92
+ "@semantic-release/github": "^12.0.1",
93
93
  "@semantic-release/npm": "^13.1.1",
94
94
  "@semantic-release/release-notes-generator": "^14.1.0",
95
95
  "@types/jsonwebtoken": "^9.0.10",
96
- "@types/node": "^24.9.1",
96
+ "@types/node": "^24.10.0",
97
97
  "@types/nodemailer": "^7.0.3",
98
98
  "@types/nunjucks": "^3.2.6",
99
99
  "@types/parse": "^3.0.9",
@@ -0,0 +1,49 @@
1
+ {
2
+ "fields": {
3
+ "Mails": {
4
+ "type": "String",
5
+ "required": false
6
+ },
7
+ "Name": {
8
+ "type": "String",
9
+ "required": false
10
+ },
11
+ "user": {
12
+ "type": "Pointer",
13
+ "targetClass": "_User",
14
+ "required": false
15
+ }
16
+ },
17
+ "classLevelPermissions": {
18
+ "ACL": {
19
+ "*": {
20
+ "read": true,
21
+ "write": true
22
+ }
23
+ },
24
+ "find": {
25
+ "*": true
26
+ },
27
+ "count": {
28
+ "*": true
29
+ },
30
+ "get": {
31
+ "*": true
32
+ },
33
+ "create": {
34
+ "*": true
35
+ },
36
+ "update": {
37
+ "*": true
38
+ },
39
+ "delete": {
40
+ "*": true
41
+ },
42
+ "addField": {
43
+ "*": true
44
+ },
45
+ "protectedFields": {
46
+ "*": []
47
+ }
48
+ }
49
+ }
@@ -4,6 +4,11 @@
4
4
  "type": "String",
5
5
  "required": false
6
6
  },
7
+ "contacts": {
8
+ "type": "Relation",
9
+ "targetClass": "{{PREFIX}}Contact",
10
+ "required": false
11
+ },
7
12
  "cron": {
8
13
  "type": "Object",
9
14
  "required": false
@@ -87,4 +92,4 @@
87
92
  }
88
93
  }
89
94
  }
90
- }
95
+ }
@@ -36,6 +36,11 @@
36
36
  "targetClass": "{{PREFIX}}Source",
37
37
  "required": false
38
38
  },
39
+ "status": {
40
+ "type": "String",
41
+ "required": true,
42
+ "defaultValue": "default"
43
+ },
39
44
  "tenant": {
40
45
  "type": "Pointer",
41
46
  "targetClass": "{{PREFIX}}Tenant",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "cron": {
13
13
  "type": "Object",
14
- "required": true
14
+ "required": false
15
15
  },
16
16
  "description": {
17
17
  "type": "String",
@@ -44,7 +44,7 @@
44
44
  },
45
45
  "title": {
46
46
  "type": "String",
47
- "required": true
47
+ "required": false
48
48
  }
49
49
  },
50
50
  "classLevelPermissions": {
@@ -20,6 +20,12 @@
20
20
  }
21
21
  },
22
22
  "classLevelPermissions": {
23
+ "ACL": {
24
+ "*": {
25
+ "read": true,
26
+ "write": true
27
+ }
28
+ },
23
29
  "find": {
24
30
  "*": true
25
31
  },
@@ -43,12 +49,6 @@
43
49
  },
44
50
  "protectedFields": {
45
51
  "*": []
46
- },
47
- "ACL": {
48
- "*": {
49
- "read": true,
50
- "write": true
51
- }
52
52
  }
53
53
  }
54
54
  }
@@ -1,5 +1,8 @@
1
1
  {
2
2
  "fields": {
3
+ "adminOnly": {
4
+ "type": "Boolean"
5
+ },
3
6
  "description": {
4
7
  "type": "String",
5
8
  "required": false
@@ -41,6 +41,11 @@
41
41
  "required": true,
42
42
  "defaultValue": {}
43
43
  },
44
+ "source": {
45
+ "type": "Pointer",
46
+ "targetClass": "{{PREFIX}}Source",
47
+ "required": false
48
+ },
44
49
  "template": {
45
50
  "type": "File",
46
51
  "required": true