verteilen-core 1.0.13 → 1.0.15
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/src/interface/enum.js +7 -1
- package/dist/src/interface/server.js +42 -1
- package/dist/src/lan/en.json +3 -1
- package/dist/src/lan/zh_TW.json +3 -1
- package/dist/src/plugins/i18n.js +1 -0
- package/index.ts +2 -0
- package/package.json +1 -1
- package/src/client/client.ts +1 -0
- package/src/interface/base.ts +226 -17
- package/src/interface/bus.ts +5 -0
- package/src/interface/enum.ts +27 -3
- package/src/interface/execute.ts +3 -0
- package/src/interface/server.ts +64 -12
- package/src/interface/struct.ts +9 -1
- package/src/interface/table.ts +4 -0
- package/src/interface/ui.ts +4 -0
- package/src/lan/en.json +3 -1
- package/src/lan/zh_TW.json +3 -1
- package/src/plugins/i18n.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParameterTemplateText = exports.ProjectTemplateText = exports.JobType2Text = exports.JobTypeText = exports.JobResultText = exports.ConnectionText = exports.JobCategoryText = exports.ExecuteStateText = exports.DataTypeText = exports.JavascriptLib = exports.RenderUpdateType = exports.ExecuteState = exports.ParameterTemplate = exports.ProjectTemplate = exports.JobType2 = exports.JobType = exports.ConditionResult = exports.JobCategory = exports.FrontendUpdate = exports.ResourceType = exports.DataTypeBase = exports.DataType = exports.SocketState = void 0;
|
|
3
|
+
exports.ParameterTemplateText = exports.ProjectTemplateText = exports.JobType2Text = exports.JobTypeText = exports.JobResultText = exports.ConnectionText = exports.JobCategoryText = exports.ExecuteStateText = exports.DataTypeText = exports.ServiceMode = exports.JavascriptLib = exports.RenderUpdateType = exports.ExecuteState = exports.ParameterTemplate = exports.ProjectTemplate = exports.JobType2 = exports.JobType = exports.ConditionResult = exports.JobCategory = exports.FrontendUpdate = exports.ResourceType = exports.DataTypeBase = exports.DataType = exports.SocketState = void 0;
|
|
4
4
|
var SocketState;
|
|
5
5
|
(function (SocketState) {
|
|
6
6
|
SocketState[SocketState["CONNECTING"] = 0] = "CONNECTING";
|
|
@@ -112,6 +112,12 @@ var JavascriptLib;
|
|
|
112
112
|
JavascriptLib[JavascriptLib["HTTP"] = 8] = "HTTP";
|
|
113
113
|
JavascriptLib[JavascriptLib["PATH"] = 16] = "PATH";
|
|
114
114
|
})(JavascriptLib || (exports.JavascriptLib = JavascriptLib = {}));
|
|
115
|
+
var ServiceMode;
|
|
116
|
+
(function (ServiceMode) {
|
|
117
|
+
ServiceMode[ServiceMode["ONCE"] = 0] = "ONCE";
|
|
118
|
+
ServiceMode[ServiceMode["CYCLE"] = 1] = "CYCLE";
|
|
119
|
+
ServiceMode[ServiceMode["EVENT"] = 2] = "EVENT";
|
|
120
|
+
})(ServiceMode || (exports.ServiceMode = ServiceMode = {}));
|
|
115
121
|
exports.DataTypeText = {
|
|
116
122
|
0: 'types.boolean',
|
|
117
123
|
1: 'types.number',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PermissionType = exports.UserType = exports.ACLType = void 0;
|
|
3
|
+
exports.CreateRootUser = exports.CreateRootPermission = exports.PermissionType = exports.UserType = exports.ACLType = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
4
5
|
var ACLType;
|
|
5
6
|
(function (ACLType) {
|
|
6
7
|
ACLType[ACLType["PUBLIC"] = 0] = "PUBLIC";
|
|
@@ -26,3 +27,43 @@ var PermissionType;
|
|
|
26
27
|
PermissionType[PermissionType["LIB"] = 7] = "LIB";
|
|
27
28
|
PermissionType[PermissionType["LOG"] = 8] = "LOG";
|
|
28
29
|
})(PermissionType || (exports.PermissionType = PermissionType = {}));
|
|
30
|
+
const CreateRootPermission = () => {
|
|
31
|
+
const perl = {
|
|
32
|
+
view: true,
|
|
33
|
+
create: true,
|
|
34
|
+
edit: true,
|
|
35
|
+
delete: true,
|
|
36
|
+
};
|
|
37
|
+
const per = {
|
|
38
|
+
project: perl,
|
|
39
|
+
task: perl,
|
|
40
|
+
job: perl,
|
|
41
|
+
plugin: perl,
|
|
42
|
+
node: perl,
|
|
43
|
+
parameter: perl,
|
|
44
|
+
lib: perl,
|
|
45
|
+
log: perl,
|
|
46
|
+
execute_job: true
|
|
47
|
+
};
|
|
48
|
+
return per;
|
|
49
|
+
};
|
|
50
|
+
exports.CreateRootPermission = CreateRootPermission;
|
|
51
|
+
const CreateRootUser = () => {
|
|
52
|
+
return {
|
|
53
|
+
token: (0, uuid_1.v6)(),
|
|
54
|
+
type: UserType.ROOT,
|
|
55
|
+
preference: {
|
|
56
|
+
lan: 'en',
|
|
57
|
+
log: true,
|
|
58
|
+
font: 18,
|
|
59
|
+
theme: "dark",
|
|
60
|
+
notification: false,
|
|
61
|
+
plugin_token: [],
|
|
62
|
+
animation: true,
|
|
63
|
+
},
|
|
64
|
+
name: "root",
|
|
65
|
+
description: "Root User",
|
|
66
|
+
permission: (0, exports.CreateRootPermission)()
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
exports.CreateRootUser = CreateRootUser;
|
package/dist/src/lan/en.json
CHANGED
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"settings": {
|
|
45
45
|
"system": "System",
|
|
46
46
|
"appearance": "Appearance",
|
|
47
|
-
"workflow": "Workflow"
|
|
47
|
+
"workflow": "Workflow",
|
|
48
|
+
"token_remove": "Are you sure you want to remove the token"
|
|
48
49
|
},
|
|
49
50
|
"toast": {
|
|
50
51
|
"server": "Server Mode",
|
|
@@ -338,6 +339,7 @@
|
|
|
338
339
|
"messager_log": "messager_log(message:string)"
|
|
339
340
|
}
|
|
340
341
|
},
|
|
342
|
+
"token": "Token",
|
|
341
343
|
"info": "Information",
|
|
342
344
|
"search": "Search",
|
|
343
345
|
"selectall": "Select All",
|
package/dist/src/lan/zh_TW.json
CHANGED
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"settings": {
|
|
45
45
|
"system": "系統",
|
|
46
46
|
"appearance": "外觀",
|
|
47
|
-
"workflow": "流程"
|
|
47
|
+
"workflow": "流程",
|
|
48
|
+
"token_remove": "確定刪除密鑰嗎"
|
|
48
49
|
},
|
|
49
50
|
"toast": {
|
|
50
51
|
"server": "伺服器模式",
|
|
@@ -338,6 +339,7 @@
|
|
|
338
339
|
"messager_log": "messager_log(message:string)"
|
|
339
340
|
}
|
|
340
341
|
},
|
|
342
|
+
"token": "密鑰",
|
|
341
343
|
"info": "資訊",
|
|
342
344
|
"search": "搜尋",
|
|
343
345
|
"selectall": "全選",
|
package/dist/src/plugins/i18n.js
CHANGED
|
@@ -10,6 +10,7 @@ const i18n_js_1 = require("i18n-js");
|
|
|
10
10
|
const en_json_1 = __importDefault(require("./../lan/en.json"));
|
|
11
11
|
const zh_TW_json_1 = __importDefault(require("./../lan/zh_TW.json"));
|
|
12
12
|
exports.i18nDefaultData = {
|
|
13
|
+
legacy: true,
|
|
13
14
|
locale: 'en',
|
|
14
15
|
globalInjection: true,
|
|
15
16
|
fallbackFormat: 'en',
|
package/index.ts
CHANGED
package/package.json
CHANGED
package/src/client/client.ts
CHANGED
package/src/interface/base.ts
CHANGED
|
@@ -3,13 +3,18 @@
|
|
|
3
3
|
// Share Codebase
|
|
4
4
|
//
|
|
5
5
|
// ========================
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Defined the basic compute use data structure
|
|
8
|
+
*/
|
|
9
|
+
import { DataType, DataTypeBase, JobType, JobType2 } from "./enum"
|
|
10
|
+
import { ACLType, LocalPermission as LocalPermission } from "./server"
|
|
8
11
|
|
|
9
12
|
export interface ParameterConfigTrigger {
|
|
10
13
|
types: Array<DataTypeBase>
|
|
11
14
|
}
|
|
12
|
-
|
|
15
|
+
/**
|
|
16
|
+
* **Parameter Context**\
|
|
17
|
+
*/
|
|
13
18
|
export interface ParameterContainer {
|
|
14
19
|
s?: boolean
|
|
15
20
|
name: string
|
|
@@ -20,10 +25,28 @@ export interface ParameterContainer {
|
|
|
20
25
|
runtimeOnly: boolean
|
|
21
26
|
value: any
|
|
22
27
|
}
|
|
23
|
-
|
|
28
|
+
/**
|
|
29
|
+
* **Task Property**\
|
|
30
|
+
* Use to in local task region field\
|
|
31
|
+
* Reference in the job execute context
|
|
32
|
+
*/
|
|
24
33
|
export interface Property {
|
|
34
|
+
/**
|
|
35
|
+
* **Property Name**\
|
|
36
|
+
* The name of the property, use this string reference in other
|
|
37
|
+
* property or job
|
|
38
|
+
*/
|
|
25
39
|
name: string
|
|
40
|
+
/**
|
|
41
|
+
* **Property Expression**\
|
|
42
|
+
* The expression library use custom language {@link https://www.npmjs.com/package/expressionparser}\
|
|
43
|
+
* Follow the
|
|
44
|
+
*/
|
|
26
45
|
expression: string
|
|
46
|
+
/**
|
|
47
|
+
* **Depth Level**\
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
27
50
|
deep?: number
|
|
28
51
|
}
|
|
29
52
|
|
|
@@ -32,51 +55,237 @@ export interface Parameter {
|
|
|
32
55
|
title: string
|
|
33
56
|
canWrite: boolean
|
|
34
57
|
containers: Array<ParameterContainer>
|
|
58
|
+
/**
|
|
59
|
+
* **Local Permission**\
|
|
60
|
+
* Client-side only permission field\
|
|
61
|
+
* Server will check user token and defined its permission level\
|
|
62
|
+
* And modify this field and send back to user
|
|
63
|
+
*/
|
|
64
|
+
permission?: LocalPermission
|
|
35
65
|
}
|
|
36
|
-
|
|
66
|
+
/**
|
|
67
|
+
* **Compute Instruction Container**\
|
|
68
|
+
* Specifed the command, which show how does user want these compute to do\
|
|
69
|
+
* Contains different arguments list, which could reference to parameter value
|
|
70
|
+
*/
|
|
37
71
|
export interface Job {
|
|
38
|
-
|
|
39
|
-
|
|
72
|
+
/**
|
|
73
|
+
* **Order**\
|
|
74
|
+
* Define the order in the list\
|
|
75
|
+
* This value is use in the client-side only\
|
|
76
|
+
* Database will store in the array.
|
|
77
|
+
*/
|
|
40
78
|
index?:number
|
|
79
|
+
/**
|
|
80
|
+
* **Job ID**\
|
|
81
|
+
* Contains 36 characters
|
|
82
|
+
*/
|
|
41
83
|
uuid: string
|
|
84
|
+
/**
|
|
85
|
+
* **Execute Runtime ID**\
|
|
86
|
+
* This getting generate during the execute stage\
|
|
87
|
+
* Because their can be multiple node run in a same job\
|
|
88
|
+
* Or two execute project at the same time\
|
|
89
|
+
* In order to know which one feedback which execute thread\
|
|
90
|
+
* This value is needs to distinguish
|
|
91
|
+
*/
|
|
42
92
|
runtime_uuid?: string
|
|
93
|
+
/**
|
|
94
|
+
* **ENUM: The Job Category Type**\
|
|
95
|
+
* Could be "Condition" or "Execution"\
|
|
96
|
+
* Condition is the checker job, After finish it will feedback a result back to server-side\
|
|
97
|
+
* Execution will not feedback anything other then success or failed
|
|
98
|
+
*/
|
|
43
99
|
category: number
|
|
100
|
+
/**
|
|
101
|
+
* **ENUM: The Job SubType**\
|
|
102
|
+
* Base on the {@link Job.category} value\
|
|
103
|
+
* This could be {@link JobType} or {@link JobType2}
|
|
104
|
+
*/
|
|
44
105
|
type: number
|
|
106
|
+
/**
|
|
107
|
+
* **Javascript String**\
|
|
108
|
+
* Code context when {@link Job.type} is Javascript\
|
|
109
|
+
* The client-side will create a javascript vm and execute it
|
|
110
|
+
*/
|
|
45
111
|
script: string
|
|
112
|
+
/**
|
|
113
|
+
* **String Arguments**\
|
|
114
|
+
* In order to execute job, some type of job will require arguments
|
|
115
|
+
*/
|
|
46
116
|
string_args: Array<string>
|
|
117
|
+
/**
|
|
118
|
+
* **Number Arguments**\
|
|
119
|
+
* In order to execute job, some type of job will require arguments
|
|
120
|
+
*/
|
|
47
121
|
number_args: Array<number>
|
|
122
|
+
/**
|
|
123
|
+
* **Boolean Arguments**\
|
|
124
|
+
* In order to execute job, some type of job will require arguments
|
|
125
|
+
*/
|
|
48
126
|
boolean_args: Array<boolean>
|
|
127
|
+
/**
|
|
128
|
+
* **Local Permission**\
|
|
129
|
+
* Client-side only permission field\
|
|
130
|
+
* Server will check user token and defined its permission level\
|
|
131
|
+
* And modify this field and send back to user\
|
|
132
|
+
*/
|
|
133
|
+
permission?: LocalPermission
|
|
49
134
|
}
|
|
50
|
-
|
|
135
|
+
/**
|
|
136
|
+
* **Task Container**\
|
|
137
|
+
* Specified different stage of the compute process
|
|
138
|
+
*/
|
|
51
139
|
export interface Task {
|
|
52
|
-
|
|
140
|
+
/**
|
|
141
|
+
* **Task ID**\
|
|
142
|
+
* Contains 36 characters
|
|
143
|
+
*/
|
|
53
144
|
uuid: string
|
|
145
|
+
/**
|
|
146
|
+
* **Task Name**\
|
|
147
|
+
* The name of the task
|
|
148
|
+
*/
|
|
54
149
|
title: string
|
|
150
|
+
/**
|
|
151
|
+
* **Task Description**\
|
|
152
|
+
* The description of the task
|
|
153
|
+
*/
|
|
55
154
|
description: string
|
|
155
|
+
/**
|
|
156
|
+
* **FLAG: SetupJob**\
|
|
157
|
+
* Every node will run through all jobs once
|
|
158
|
+
*/
|
|
56
159
|
setupjob: boolean
|
|
160
|
+
/**
|
|
161
|
+
* **FLAG: CronJob**\
|
|
162
|
+
* Generate X amounts of subtask\
|
|
163
|
+
* Then tells nodes to run through all of them\
|
|
164
|
+
* Who finish subtask first will get next subtask\
|
|
165
|
+
* Untill all subtasks finish
|
|
166
|
+
*/
|
|
57
167
|
cronjob: boolean
|
|
168
|
+
/**
|
|
169
|
+
* **Cron Reference Key**\
|
|
170
|
+
* Reference a parameter number in database
|
|
171
|
+
*/
|
|
58
172
|
cronjobKey: string
|
|
173
|
+
/**
|
|
174
|
+
* **FLAG: MultiJob**\
|
|
175
|
+
* Define how many thread can be generate in one node\
|
|
176
|
+
* If this is false, default will be 1
|
|
177
|
+
*/
|
|
59
178
|
multi: boolean
|
|
179
|
+
/**
|
|
180
|
+
* **Multi Reference Key**\
|
|
181
|
+
* Reference a parameter number in database
|
|
182
|
+
*/
|
|
60
183
|
multiKey: string
|
|
184
|
+
/**
|
|
185
|
+
* **Task Properties**\
|
|
186
|
+
* You could use properties to defined local region field
|
|
187
|
+
* And reference in the job execute context\
|
|
188
|
+
* **NOTICE: Order Matter**\
|
|
189
|
+
* The properties will generate base on the order in the list
|
|
190
|
+
*/
|
|
61
191
|
properties: Array<Property>
|
|
192
|
+
/**
|
|
193
|
+
* **Jobs Context**\
|
|
194
|
+
* A list of jobs, define the context of the task\
|
|
195
|
+
* Base on the flags, task can run it in a different way
|
|
196
|
+
*/
|
|
62
197
|
jobs: Array<Job>
|
|
198
|
+
/**
|
|
199
|
+
* **Local Permission**\
|
|
200
|
+
* Client-side only permission field\
|
|
201
|
+
* Server will check user token and defined its permission level\
|
|
202
|
+
* And modify this field and send back to user
|
|
203
|
+
*/
|
|
204
|
+
permission?: LocalPermission
|
|
63
205
|
}
|
|
64
|
-
|
|
206
|
+
/**
|
|
207
|
+
* **Compute Structure Container**\
|
|
208
|
+
* It has reference to parameter And contains multiple task\
|
|
209
|
+
* We grab this container structure to execute queue to execute one by one
|
|
210
|
+
*/
|
|
65
211
|
export interface Project {
|
|
66
|
-
|
|
67
|
-
|
|
212
|
+
/**
|
|
213
|
+
* **User ID**\
|
|
214
|
+
* Who own this project\
|
|
215
|
+
* It will specified public if this field is undefined\
|
|
216
|
+
* This will getting detect before {@link Project.acl}
|
|
217
|
+
*/
|
|
68
218
|
owner?: string
|
|
219
|
+
/**
|
|
220
|
+
* **Project ID**\
|
|
221
|
+
* Contains 36 characters
|
|
222
|
+
*/
|
|
69
223
|
uuid: string
|
|
224
|
+
/**
|
|
225
|
+
* **Project Name**\
|
|
226
|
+
* The name of the project
|
|
227
|
+
*/
|
|
70
228
|
title: string
|
|
71
|
-
|
|
72
|
-
|
|
229
|
+
/**
|
|
230
|
+
* **Project Description**\
|
|
231
|
+
* The description of the project
|
|
232
|
+
*/
|
|
233
|
+
description?: string
|
|
234
|
+
/**
|
|
235
|
+
* **Parameter ID**\
|
|
236
|
+
* In order reference to parameter database
|
|
237
|
+
*/
|
|
238
|
+
store_uuid: string
|
|
239
|
+
/**
|
|
240
|
+
* **Parameter instance**\
|
|
241
|
+
* The data field of parameter
|
|
242
|
+
*/
|
|
73
243
|
parameter?: Parameter
|
|
244
|
+
/**
|
|
245
|
+
* **Tasks**\
|
|
246
|
+
* The context of this project\
|
|
247
|
+
* Store all the tasks and jobs in here
|
|
248
|
+
*/
|
|
74
249
|
task: Array<Task>
|
|
250
|
+
/**
|
|
251
|
+
* **Local Permission**\
|
|
252
|
+
* Client-side only permission field\
|
|
253
|
+
* Server will check user token and defined its permission level\
|
|
254
|
+
* And modify this field and send back to user
|
|
255
|
+
*/
|
|
256
|
+
permission?: LocalPermission
|
|
257
|
+
/**
|
|
258
|
+
* **Accessibility**\
|
|
259
|
+
* Could be public, protected, private
|
|
260
|
+
*/
|
|
261
|
+
acl?: ACLType
|
|
75
262
|
}
|
|
76
|
-
|
|
263
|
+
/**
|
|
264
|
+
* **Compute Node Structure Container**\
|
|
265
|
+
* In the execute stage, it will needs nodes to compute the task\
|
|
266
|
+
* Which specified in this type of structure
|
|
267
|
+
*/
|
|
77
268
|
export interface Node {
|
|
78
|
-
|
|
79
|
-
|
|
269
|
+
/**
|
|
270
|
+
* **ID**\
|
|
271
|
+
* The UUID of the compute node
|
|
272
|
+
*/
|
|
80
273
|
ID: string
|
|
274
|
+
/**
|
|
275
|
+
* **URL**\
|
|
276
|
+
* The address to the compute node
|
|
277
|
+
*/
|
|
81
278
|
url: string
|
|
279
|
+
/**
|
|
280
|
+
* **Local Permission**\
|
|
281
|
+
* Client-side only permission field\
|
|
282
|
+
* Server will check user token and defined its permission level\
|
|
283
|
+
* And modify this field and send back to user
|
|
284
|
+
*/
|
|
285
|
+
permission?: LocalPermission
|
|
286
|
+
/**
|
|
287
|
+
* **Accessibility**\
|
|
288
|
+
* Could be public, protected, private
|
|
289
|
+
*/
|
|
290
|
+
acl?: ACLType
|
|
82
291
|
}
|
package/src/interface/bus.ts
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
// Share Codebase
|
|
4
4
|
//
|
|
5
5
|
// ========================
|
|
6
|
+
/**
|
|
7
|
+
* Event bus related type and interface
|
|
8
|
+
*/
|
|
6
9
|
import { Job, Parameter, Project, Task } from "./base"
|
|
7
10
|
import { ExecuteState } from "./enum"
|
|
8
11
|
import { ExecutionLog, Log, Preference } from "./record"
|
|
@@ -43,6 +46,7 @@ export interface EmitterProxy<T> {
|
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
/**
|
|
49
|
+
* **Execute Event Proxy**\
|
|
46
50
|
* The middleware for task scheduler worker with singal sender
|
|
47
51
|
*/
|
|
48
52
|
export interface ExecuteProxy {
|
|
@@ -90,6 +94,7 @@ export interface NodeProxy {
|
|
|
90
94
|
}
|
|
91
95
|
|
|
92
96
|
/**
|
|
97
|
+
* **Vue Event Bus Type**\
|
|
93
98
|
* Emitter events container for Primary use
|
|
94
99
|
*/
|
|
95
100
|
export type BusType = {
|
package/src/interface/enum.ts
CHANGED
|
@@ -3,13 +3,25 @@
|
|
|
3
3
|
// Share Codebase
|
|
4
4
|
//
|
|
5
5
|
// ========================
|
|
6
|
+
/**
|
|
7
|
+
* Enum library, including translation which will be use in Vue
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* **Socket Type**\
|
|
12
|
+
* This exists because reference to ws or buildin socket will sometime cause error\
|
|
13
|
+
* So we will need to create one for ourselves
|
|
14
|
+
*/
|
|
6
15
|
export enum SocketState {
|
|
7
16
|
CONNECTING = 0,
|
|
8
17
|
OPEN = 1,
|
|
9
18
|
CLOSING = 2,
|
|
10
19
|
CLOSED = 3
|
|
11
20
|
}
|
|
12
|
-
|
|
21
|
+
/**
|
|
22
|
+
* **Data Type**\
|
|
23
|
+
* The support data type for parameter
|
|
24
|
+
*/
|
|
13
25
|
export enum DataType {
|
|
14
26
|
Boolean,
|
|
15
27
|
Number,
|
|
@@ -20,13 +32,21 @@ export enum DataType {
|
|
|
20
32
|
Select,
|
|
21
33
|
List,
|
|
22
34
|
}
|
|
23
|
-
|
|
35
|
+
/**
|
|
36
|
+
* **Data Type Base**\
|
|
37
|
+
* The support data type for calculation\
|
|
38
|
+
* Proerty or expression calculation will use this
|
|
39
|
+
*/
|
|
24
40
|
export enum DataTypeBase {
|
|
25
41
|
Boolean,
|
|
26
42
|
Number,
|
|
27
43
|
String,
|
|
28
44
|
}
|
|
29
|
-
|
|
45
|
+
/**
|
|
46
|
+
* **Resource Query Type**\
|
|
47
|
+
* Client resource type\
|
|
48
|
+
* Use in when server query system information from node
|
|
49
|
+
*/
|
|
30
50
|
export enum ResourceType {
|
|
31
51
|
ALL = ~(~0 << 10),
|
|
32
52
|
SYSTEM = 1 << 0,
|
|
@@ -110,6 +130,10 @@ export enum JavascriptLib {
|
|
|
110
130
|
PATH = 1 << 4,
|
|
111
131
|
}
|
|
112
132
|
|
|
133
|
+
export enum ServiceMode {
|
|
134
|
+
ONCE, CYCLE, EVENT
|
|
135
|
+
}
|
|
136
|
+
|
|
113
137
|
export const DataTypeText: { [key:number]:string } = {
|
|
114
138
|
0: 'types.boolean',
|
|
115
139
|
1: 'types.number',
|
package/src/interface/execute.ts
CHANGED
package/src/interface/server.ts
CHANGED
|
@@ -3,14 +3,25 @@
|
|
|
3
3
|
// Share Codebase
|
|
4
4
|
//
|
|
5
5
|
// ========================
|
|
6
|
+
/**
|
|
7
|
+
* Express server related data structure
|
|
8
|
+
*/
|
|
6
9
|
import { Preference } from "./record"
|
|
10
|
+
import { v6 as uuidv6 } from 'uuid'
|
|
7
11
|
|
|
12
|
+
/**
|
|
13
|
+
* **Access Control Type**\
|
|
14
|
+
* Ot will have effect on permission value
|
|
15
|
+
*/
|
|
8
16
|
export enum ACLType {
|
|
9
17
|
PUBLIC,
|
|
10
18
|
PROTECTED,
|
|
11
19
|
PRIVATE
|
|
12
20
|
}
|
|
13
|
-
|
|
21
|
+
/**
|
|
22
|
+
* **User Type**\
|
|
23
|
+
* It will have effect on permission value
|
|
24
|
+
*/
|
|
14
25
|
export enum UserType {
|
|
15
26
|
ROOT,
|
|
16
27
|
ADMIN,
|
|
@@ -31,20 +42,20 @@ export enum PermissionType {
|
|
|
31
42
|
}
|
|
32
43
|
|
|
33
44
|
export interface GlobalPermission {
|
|
34
|
-
project:
|
|
35
|
-
task:
|
|
36
|
-
job:
|
|
37
|
-
parameter:
|
|
45
|
+
project: LocalPermission
|
|
46
|
+
task: LocalPermission
|
|
47
|
+
job: LocalPermission
|
|
48
|
+
parameter: LocalPermission
|
|
38
49
|
|
|
39
|
-
plugin:
|
|
40
|
-
node:
|
|
41
|
-
lib:
|
|
42
|
-
log:
|
|
50
|
+
plugin: LocalPermission
|
|
51
|
+
node: LocalPermission
|
|
52
|
+
lib: LocalPermission
|
|
53
|
+
log: LocalPermission
|
|
43
54
|
|
|
44
55
|
execute_job: boolean
|
|
45
56
|
}
|
|
46
57
|
|
|
47
|
-
export interface
|
|
58
|
+
export interface LocalPermission {
|
|
48
59
|
view: boolean
|
|
49
60
|
create: boolean
|
|
50
61
|
edit: boolean
|
|
@@ -53,13 +64,13 @@ export interface LocalPermiision {
|
|
|
53
64
|
|
|
54
65
|
export interface LocalPermissionContainer {
|
|
55
66
|
uuid: string
|
|
56
|
-
permission:
|
|
67
|
+
permission: LocalPermission
|
|
57
68
|
}
|
|
58
69
|
|
|
59
70
|
export interface LocalPermissionContainer2 {
|
|
60
71
|
uuid: string
|
|
61
72
|
uuid2: string
|
|
62
|
-
permission:
|
|
73
|
+
permission: LocalPermission
|
|
63
74
|
}
|
|
64
75
|
|
|
65
76
|
/**
|
|
@@ -68,6 +79,7 @@ export interface LocalPermissionContainer2 {
|
|
|
68
79
|
export interface UserProfile {
|
|
69
80
|
token: string
|
|
70
81
|
name: string
|
|
82
|
+
email?: string
|
|
71
83
|
preference: Preference
|
|
72
84
|
type: UserType
|
|
73
85
|
description?: string
|
|
@@ -88,4 +100,44 @@ export interface UserProfileClient {
|
|
|
88
100
|
|
|
89
101
|
export interface ServerSetting {
|
|
90
102
|
open_guest: boolean
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export const CreateRootPermission = ():GlobalPermission => {
|
|
106
|
+
const perl:LocalPermission = {
|
|
107
|
+
view: true,
|
|
108
|
+
create: true,
|
|
109
|
+
edit: true,
|
|
110
|
+
delete: true,
|
|
111
|
+
}
|
|
112
|
+
const per:GlobalPermission = {
|
|
113
|
+
project: perl,
|
|
114
|
+
task: perl,
|
|
115
|
+
job: perl,
|
|
116
|
+
plugin: perl,
|
|
117
|
+
node: perl,
|
|
118
|
+
parameter: perl,
|
|
119
|
+
lib: perl,
|
|
120
|
+
log: perl,
|
|
121
|
+
execute_job: true
|
|
122
|
+
}
|
|
123
|
+
return per
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export const CreateRootUser = ():UserProfile => {
|
|
127
|
+
return {
|
|
128
|
+
token: uuidv6(),
|
|
129
|
+
type: UserType.ROOT,
|
|
130
|
+
preference: {
|
|
131
|
+
lan: 'en',
|
|
132
|
+
log: true,
|
|
133
|
+
font: 18,
|
|
134
|
+
theme: "dark",
|
|
135
|
+
notification: false,
|
|
136
|
+
plugin_token: [],
|
|
137
|
+
animation: true,
|
|
138
|
+
},
|
|
139
|
+
name: "root",
|
|
140
|
+
description: "Root User",
|
|
141
|
+
permission: CreateRootPermission()
|
|
142
|
+
}
|
|
91
143
|
}
|
package/src/interface/struct.ts
CHANGED
|
@@ -3,8 +3,13 @@
|
|
|
3
3
|
// Share Codebase
|
|
4
4
|
//
|
|
5
5
|
// ========================
|
|
6
|
+
/**
|
|
7
|
+
* All kinds of data structure
|
|
8
|
+
* It's a mess, i know
|
|
9
|
+
*/
|
|
6
10
|
import { ParameterContainer, Project } from "./base"
|
|
7
11
|
import ws from 'ws'
|
|
12
|
+
import { ServiceMode } from "./enum"
|
|
8
13
|
|
|
9
14
|
type ProjectCall = (p:Project) => Project
|
|
10
15
|
type ParameterCall = () => Array<ParameterContainer>
|
|
@@ -112,7 +117,6 @@ export interface FeedBack {
|
|
|
112
117
|
message: string
|
|
113
118
|
}
|
|
114
119
|
|
|
115
|
-
|
|
116
120
|
export interface KeyValue {
|
|
117
121
|
key: any
|
|
118
122
|
value: any
|
|
@@ -289,4 +293,8 @@ export interface BuildinAssetsContent {
|
|
|
289
293
|
|
|
290
294
|
export interface BuildinAssets {
|
|
291
295
|
data: Array<BuildinAssetsContent>
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export interface ServiceConfig {
|
|
299
|
+
mode: ServiceMode
|
|
292
300
|
}
|
package/src/interface/table.ts
CHANGED
package/src/interface/ui.ts
CHANGED
package/src/lan/en.json
CHANGED
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"settings": {
|
|
45
45
|
"system": "System",
|
|
46
46
|
"appearance": "Appearance",
|
|
47
|
-
"workflow": "Workflow"
|
|
47
|
+
"workflow": "Workflow",
|
|
48
|
+
"token_remove": "Are you sure you want to remove the token"
|
|
48
49
|
},
|
|
49
50
|
"toast": {
|
|
50
51
|
"server": "Server Mode",
|
|
@@ -338,6 +339,7 @@
|
|
|
338
339
|
"messager_log": "messager_log(message:string)"
|
|
339
340
|
}
|
|
340
341
|
},
|
|
342
|
+
"token": "Token",
|
|
341
343
|
"info": "Information",
|
|
342
344
|
"search": "Search",
|
|
343
345
|
"selectall": "Select All",
|
package/src/lan/zh_TW.json
CHANGED
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"settings": {
|
|
45
45
|
"system": "系統",
|
|
46
46
|
"appearance": "外觀",
|
|
47
|
-
"workflow": "流程"
|
|
47
|
+
"workflow": "流程",
|
|
48
|
+
"token_remove": "確定刪除密鑰嗎"
|
|
48
49
|
},
|
|
49
50
|
"toast": {
|
|
50
51
|
"server": "伺服器模式",
|
|
@@ -338,6 +339,7 @@
|
|
|
338
339
|
"messager_log": "messager_log(message:string)"
|
|
339
340
|
}
|
|
340
341
|
},
|
|
342
|
+
"token": "密鑰",
|
|
341
343
|
"info": "資訊",
|
|
342
344
|
"search": "搜尋",
|
|
343
345
|
"selectall": "全選",
|