node-red 2.2.2 → 3.0.0-beta.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.
- package/CHANGELOG.md +151 -0
- package/lib/red.js +8 -1
- package/package.json +10 -10
- package/red.js +44 -4
- package/settings.js +110 -78
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,154 @@
|
|
|
1
|
+
#### 3.0.0-beta.3: Beta Release
|
|
2
|
+
|
|
3
|
+
Editor
|
|
4
|
+
|
|
5
|
+
- Add Right-Click content menu (#3678) @knolleary
|
|
6
|
+
- Fix disable junction (#3671) @HiroyasuNishiyama
|
|
7
|
+
- Add Japanese translations for v2.2.3 (#3672) @kazuhitoyokoi
|
|
8
|
+
- Reset mouse state when switching tabs (#3643) @knolleary
|
|
9
|
+
- Fix uncorrect fix of junction to subflow conversion (#3666) @HiroyasuNishiyama
|
|
10
|
+
- Fix undoing junction to subflow (#3653) @HiroyasuNishiyama
|
|
11
|
+
- Fix conversion of junction to subflow (#3652) @HiroyasuNishiyama
|
|
12
|
+
- Fix to include junction to exported nodes (#3650) @HiroyasuNishiyama
|
|
13
|
+
- Fix z-index value for shade to cover nodes in palette (#3649) @kazuhitoyokoi
|
|
14
|
+
- Fix to extend escaped subflow category characters (#3647) @HiroyasuNishiyama
|
|
15
|
+
- Fix to sanitize tab name (#3646) @HiroyasuNishiyama
|
|
16
|
+
- Fix selector placement (#3644) @bonanitech
|
|
17
|
+
- Add Japanese translations for v3.0-beta.2 (#3622) @kazuhitoyokoi
|
|
18
|
+
- Fix new folder menu of save to library dialog (#3633) @HiroyasuNishiyama
|
|
19
|
+
- Fix layer of palette node (#3638) @HiroyasuNishiyama
|
|
20
|
+
- Fix to place a node dragged from palette within the workspace (#3637) @HiroyasuNishiyama
|
|
21
|
+
- Fix typo in CSS (#3628) @bonanitech
|
|
22
|
+
- Use the correct variable for the gutter text color (#3615) @bonanitech
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
Runtime
|
|
26
|
+
|
|
27
|
+
- Support loading node modules from `nodesdir` (#3676) @Steve-Mcl
|
|
28
|
+
- fix buffer parse error message of evaluateNodeProperty (#3624) @HiroyasuNishiyama
|
|
29
|
+
|
|
30
|
+
Nodes
|
|
31
|
+
|
|
32
|
+
- File: Further simplify file node filename entry UX (v3) (#3677) @Steve-Mcl
|
|
33
|
+
- Function: Fix initial cursor position of init/finalize tab of function node (#3674) @HiroyasuNishiyama
|
|
34
|
+
- Function: Fix ESM module loading in Function node (#3645) @knolleary
|
|
35
|
+
- Inject: Fix JSONata evaluation of inject button (#3632) @HiroyasuNishiyama
|
|
36
|
+
- TCP: Dont delete TCP socket twice (#3630) @Steve-Mcl
|
|
37
|
+
- MQTT Node: define noproxy variable (#3626) @Steve-Mcl
|
|
38
|
+
- Debug: i18n debug sidebar node label (#3623) @HiroyasuNishiyama
|
|
39
|
+
|
|
40
|
+
#### 3.0.0-beta.2: Beta Release
|
|
41
|
+
|
|
42
|
+
**Migration from 2.x**
|
|
43
|
+
|
|
44
|
+
- The 'slice wires' action has changed from Ctrl-RightMouseButton to Alt-LeftMouseButton
|
|
45
|
+
|
|
46
|
+
Editor
|
|
47
|
+
|
|
48
|
+
- Rework Junctions to be more node like in their event handling (#3607) @knolleary
|
|
49
|
+
- Change slicing / slice-junction operations over to mouse button 0 (Left Mouse Button) (#3609) @Steve-Mcl
|
|
50
|
+
- Do not slice-junction link node wires (#3608) @knolleary
|
|
51
|
+
- Handle many-to-one slicing of wires (#3604) @knolleary
|
|
52
|
+
- Ensure ACE worker options are set (#3611) @Steve-Mcl
|
|
53
|
+
- Remove duplicate history add of ungroup event (#3605) @knolleary
|
|
54
|
+
- use text width instead of number of characters for deciding select fi… (#3603) @HiroyasuNishiyama
|
|
55
|
+
- Update Japanese info of link call node reflecting update of English info (#3600) @HiroyasuNishiyama
|
|
56
|
+
- Fix typedInput label not visible on themes (#3580) @bonanitech
|
|
57
|
+
- Fix project switching when junctions are present (#3595) @Steve-Mcl
|
|
58
|
+
- Fix junction: when wiring from a regular nodes INPUT, backwards to a junction (#3591) @Steve-Mcl
|
|
59
|
+
- Fix error initialising flow tab editor (#3585) @Steve-Mcl
|
|
60
|
+
- Add Japanese translations for v3.0-beta.1 (#3576) @kazuhitoyokoi
|
|
61
|
+
- Fix image paths where `red/image/typedInput/XXXX.png` should be `red/image/typedInput/XXXX.svg` (#3592) @kazuhitoyokoi
|
|
62
|
+
- Fix browser console error Uncaught TypeError when searching certain terms (#3584) @Steve-Mcl
|
|
63
|
+
|
|
64
|
+
Runtime
|
|
65
|
+
|
|
66
|
+
- fix error on system-info action (#3589) @HiroyasuNishiyama
|
|
67
|
+
|
|
68
|
+
Nodes
|
|
69
|
+
|
|
70
|
+
- I18n switch rule selector (#3602) @HiroyasuNishiyama
|
|
71
|
+
- Handle removal of event handlers to allow mqtt client.end() to work (#3594) @PhilDay-CT
|
|
72
|
+
- update link-call node info according to current behavior (#3597) @HiroyasuNishiyama
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
#### 3.0.0-beta.1: Beta Release
|
|
76
|
+
|
|
77
|
+
**Migration from 2.x**
|
|
78
|
+
|
|
79
|
+
- Node-RED now requires Node.js 14.x or later.
|
|
80
|
+
- New installs of Node-RED will default to the monaco editor.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
Editor
|
|
84
|
+
|
|
85
|
+
- Add Junctions (#3462) @knolleary
|
|
86
|
+
- Allow node name to be auto-generated when added (#3478, #3538) @knolleary
|
|
87
|
+
- Set monaco as default code editor as of v3.x (#3543) @Steve-Mcl
|
|
88
|
+
- Update Monaco to V0.33.0 (#3522) @Steve-Mcl
|
|
89
|
+
- Auto-complete Improvements (#3521) @Steve-Mcl
|
|
90
|
+
- Add a tooltip to debug sidebar messages to reveal full path to node (#3503) @knolleary
|
|
91
|
+
- Fix down arrow triggering menu in search box (#3507) @Steve-Mcl
|
|
92
|
+
- Add Japanese translations for v3.0 (#3512) @kazuhitoyokoi
|
|
93
|
+
- Add feature: Continuous search tools (search previous, search next) (#3405) @Steve-Mcl
|
|
94
|
+
- Add feature: split-wire-to-links (#3399, #3476) @Steve-Mcl
|
|
95
|
+
- Add copy button to node properties tables (#3390) @knolleary
|
|
96
|
+
- Add info-tab search options dropdown to the regular search (#3395) @Steve-Mcl
|
|
97
|
+
- New Feature: Add ability to find modified nodes/flows. (#3392) @Steve-Mcl
|
|
98
|
+
- Code editor ux improvements around remembering state of each code editor in a flow (#3553) @Steve-Mcl
|
|
99
|
+
- Make it easier to apply themes on SVG icons (#3515) @bonanitech
|
|
100
|
+
- Add support of property validation message (#3438) @HiroyasuNishiyama
|
|
101
|
+
- Ensure node validation tooltip is closed when field becomes valid (#3570) @knolleary
|
|
102
|
+
- Add "search for" buttons to notifications (#3567) @Steve-Mcl
|
|
103
|
+
- Don't let themes change node config colors (#3564) @bonanitech
|
|
104
|
+
- Fix gap between typedInput containers borders (#3560) @bonanitech
|
|
105
|
+
- Fix recording removed links in edit history (#3547) @knolleary
|
|
106
|
+
- Remove unused SASS vars (#3536) @bonanitech
|
|
107
|
+
- Add custom style for jQuery widgets borders (#3537) @bonanitech
|
|
108
|
+
- fix out of scope reference of hasUnusedConfig variable (#3535) @HiroyasuNishiyama
|
|
109
|
+
- correct "non string" check parenthesis (#3524) @Steve-Mcl
|
|
110
|
+
- Ensure i18n of scoped package name (#3516) @Steve-Mcl
|
|
111
|
+
- Prevent shortcut deploy when deploy button shaded (#3517) @Steve-Mcl
|
|
112
|
+
- Fix: Sidebar "Configuration" filter button tooltip (#3500) @ralphwetzel
|
|
113
|
+
- Add the ability to customize diff colors even more (#3499) @bonanitech
|
|
114
|
+
- Do JSON comparison of old value/new value in editor (#3481) @Steve-Mcl
|
|
115
|
+
- Fix nodes losing their wires when in an iframe (#3484) @zettca
|
|
116
|
+
- Improve scroll into view (#3468) @Steve-Mcl
|
|
117
|
+
- Do not show 1st tab if hidden when loading (#3464) @Steve-Mcl
|
|
118
|
+
|
|
119
|
+
Runtime
|
|
120
|
+
|
|
121
|
+
- Fix importing external module from node-red module (#3541) @knolleary
|
|
122
|
+
- Add support for multiple static paths with optional static root (#3542) @Steve-Mcl
|
|
123
|
+
- Store external token when authenticating if provided (#3460) @ArFe
|
|
124
|
+
- Support OAuth/OpenID logout (#3388) @mw75
|
|
125
|
+
- Allow adminAuth to auto-login users when using passport strategy (#3519) @knolleary
|
|
126
|
+
- Add runtime diagnostics admin endpoint (#3511) @Steve-Mcl
|
|
127
|
+
- Don't start if user has no home directory (#3540) @hardillb
|
|
128
|
+
- Error on invalid encrypted credentials (#3498) @sammachin
|
|
129
|
+
|
|
130
|
+
Nodes
|
|
131
|
+
|
|
132
|
+
- Debug: Add message count option to Debug status (#3544 #3551) @rafaelmuynarsk @knolleary
|
|
133
|
+
- File: Change basic Filename field to a typedInput (#3533) @Steve-Mcl
|
|
134
|
+
- HTTP Request: Add UI for Http Request node headers (#3488) @Steve-Mcl
|
|
135
|
+
- Inject: let inject optionally fire at start in only at time mode. (#3385) @dceejay
|
|
136
|
+
- Link Call: Dynamic link call (#3463) @Steve-Mcl
|
|
137
|
+
- Link Call: Display link targets of nodes in a regular flow, for Link Call nodes inside a subflow (#3528) @Steve-Mcl
|
|
138
|
+
- MQTT: MQTT payload auto parsing improvements (#3530) @Steve-Mcl
|
|
139
|
+
- MQTT: Add client and Runtime MQTT topic validation (#3563) @Steve-Mcl [dev]
|
|
140
|
+
- MQTT: save and restore v5 config user props (#3562) @Steve-Mcl
|
|
141
|
+
- MQTT: Fix incorrect MQTT status (#3552) @Steve-Mcl
|
|
142
|
+
- MQTT: fix reference error of msg.status in debug node (#3526) @HiroyasuNishiyama
|
|
143
|
+
- MQTT: Add unit tests for MQTT nodes (#3497) @Steve-Mcl
|
|
144
|
+
- MQTT: fix typo of will properties (#3502) @Steve-Mcl
|
|
145
|
+
- MQTT: ensure mqtt v5 props can be set false (#3472) @Steve-Mcl
|
|
146
|
+
- Switch: add check for NaN in is of type number to be false (#3409) @dceejay
|
|
147
|
+
- TCP: TCP node better split (#3465) @dceejay
|
|
148
|
+
- Watch: Update Watch node to use node-watch module (#3559 #3569) @knolleary
|
|
149
|
+
- WebSocket: call done after ws disconnects (#3531) @Steve-Mcl
|
|
150
|
+
|
|
151
|
+
|
|
1
152
|
#### 2.2.2: Maintenance Release
|
|
2
153
|
|
|
3
154
|
Nodes
|
package/lib/red.js
CHANGED
|
@@ -229,5 +229,12 @@ module.exports = {
|
|
|
229
229
|
* @see @node-red/editor-api_auth
|
|
230
230
|
* @memberof node-red
|
|
231
231
|
*/
|
|
232
|
-
auth: api.auth
|
|
232
|
+
auth: api.auth,
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* The editor authentication api.
|
|
236
|
+
* @see @node-red/editor-api_auth
|
|
237
|
+
* @memberof node-red
|
|
238
|
+
*/
|
|
239
|
+
get diagnostics() { return api.diagnostics }
|
|
233
240
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.3",
|
|
4
4
|
"description": "Low-code programming for event-driven applications",
|
|
5
5
|
"homepage": "http://nodered.org",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,22 +31,22 @@
|
|
|
31
31
|
"flow"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@node-red/editor-api": "
|
|
35
|
-
"@node-red/runtime": "
|
|
36
|
-
"@node-red/util": "
|
|
37
|
-
"@node-red/nodes": "
|
|
34
|
+
"@node-red/editor-api": "3.0.0-beta.3",
|
|
35
|
+
"@node-red/runtime": "3.0.0-beta.3",
|
|
36
|
+
"@node-red/util": "3.0.0-beta.3",
|
|
37
|
+
"@node-red/nodes": "3.0.0-beta.3",
|
|
38
38
|
"basic-auth": "2.0.1",
|
|
39
39
|
"bcryptjs": "2.4.3",
|
|
40
|
-
"express": "4.
|
|
41
|
-
"fs-extra": "10.
|
|
42
|
-
"node-red-admin": "^
|
|
40
|
+
"express": "4.18.1",
|
|
41
|
+
"fs-extra": "10.1.0",
|
|
42
|
+
"node-red-admin": "^3.0.0",
|
|
43
43
|
"nopt": "5.0.0",
|
|
44
|
-
"semver": "7.3.
|
|
44
|
+
"semver": "7.3.7"
|
|
45
45
|
},
|
|
46
46
|
"optionalDependencies": {
|
|
47
47
|
"bcrypt": "5.0.1"
|
|
48
48
|
},
|
|
49
49
|
"engines": {
|
|
50
|
-
"node": ">=
|
|
50
|
+
"node": ">=14"
|
|
51
51
|
}
|
|
52
52
|
}
|
package/red.js
CHANGED
|
@@ -112,6 +112,10 @@ if (parsedArgs.settings) {
|
|
|
112
112
|
// Consider compatibility for older versions
|
|
113
113
|
settingsFile = path.join(process.env.HOMEPATH,".node-red","settings.js");
|
|
114
114
|
} else {
|
|
115
|
+
if (!parsedArgs.userDir && !(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH)) {
|
|
116
|
+
console.log("Could not find user directory. Ensure $HOME is set for the current user, or use --userDir option")
|
|
117
|
+
process.exit(1)
|
|
118
|
+
}
|
|
115
119
|
var userDir = parsedArgs.userDir || path.join(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH,".node-red");
|
|
116
120
|
var userSettingsFile = path.join(userDir,"settings.js");
|
|
117
121
|
if (fs.existsSync(userSettingsFile)) {
|
|
@@ -298,6 +302,26 @@ httpsPromise.then(function(startupHttps) {
|
|
|
298
302
|
settings.httpNodeAuth = settings.httpNodeAuth || settings.httpAuth;
|
|
299
303
|
}
|
|
300
304
|
|
|
305
|
+
if(settings.httpStatic) {
|
|
306
|
+
settings.httpStaticRoot = formatRoot(settings.httpStaticRoot || "/");
|
|
307
|
+
const statics = Array.isArray(settings.httpStatic) ? settings.httpStatic : [settings.httpStatic];
|
|
308
|
+
const sanitised = [];
|
|
309
|
+
for (let si = 0; si < statics.length; si++) {
|
|
310
|
+
let sp = statics[si];
|
|
311
|
+
if(typeof sp === "string") {
|
|
312
|
+
sp = { path: sp, root: "" }
|
|
313
|
+
sanitised.push(sp);
|
|
314
|
+
} else if (typeof sp === "object" && sp.path ) {
|
|
315
|
+
sanitised.push(sp);
|
|
316
|
+
} else {
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
sp.subRoot = formatRoot(sp.root);
|
|
320
|
+
sp.root = formatRoot(path.posix.join(settings.httpStaticRoot,sp.subRoot));
|
|
321
|
+
}
|
|
322
|
+
settings.httpStatic = sanitised.length ? sanitised : false;
|
|
323
|
+
}
|
|
324
|
+
|
|
301
325
|
// if we got a port from command line, use it (even if 0)
|
|
302
326
|
// replicate (settings.uiPort = parsedArgs.port||settings.uiPort||1880;) but allow zero
|
|
303
327
|
if (parsedArgs.port !== undefined){
|
|
@@ -390,12 +414,28 @@ httpsPromise.then(function(startupHttps) {
|
|
|
390
414
|
if (settings.httpNodeRoot !== false) {
|
|
391
415
|
app.use(settings.httpNodeRoot,RED.httpNode);
|
|
392
416
|
}
|
|
417
|
+
// if (settings.httpStatic) {
|
|
418
|
+
// settings.httpStaticAuth = settings.httpStaticAuth || settings.httpAuth;
|
|
419
|
+
// if (settings.httpStaticAuth) {
|
|
420
|
+
// app.use("/",basicAuthMiddleware(settings.httpStaticAuth.user,settings.httpStaticAuth.pass));
|
|
421
|
+
// }
|
|
422
|
+
// app.use("/",express.static(settings.httpStatic));
|
|
423
|
+
// }
|
|
393
424
|
if (settings.httpStatic) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
425
|
+
let appUseMem = {};
|
|
426
|
+
for (let si = 0; si < settings.httpStatic.length; si++) {
|
|
427
|
+
const sp = settings.httpStatic[si];
|
|
428
|
+
const filePath = sp.path;
|
|
429
|
+
const thisRoot = sp.root || "/";
|
|
430
|
+
if(appUseMem[filePath + "::" + thisRoot]) {
|
|
431
|
+
continue;// this path and root already registered!
|
|
432
|
+
}
|
|
433
|
+
appUseMem[filePath + "::" + thisRoot] = true;
|
|
434
|
+
if (settings.httpStaticAuth) {
|
|
435
|
+
app.use(thisRoot, basicAuthMiddleware(settings.httpStaticAuth.user, settings.httpStaticAuth.pass));
|
|
436
|
+
}
|
|
437
|
+
app.use(thisRoot, express.static(filePath));
|
|
397
438
|
}
|
|
398
|
-
app.use("/",express.static(settings.httpStatic));
|
|
399
439
|
}
|
|
400
440
|
|
|
401
441
|
function getListenPath() {
|
package/settings.js
CHANGED
|
@@ -137,6 +137,7 @@ module.exports = {
|
|
|
137
137
|
* - httpNodeCors
|
|
138
138
|
* - httpNodeMiddleware
|
|
139
139
|
* - httpStatic
|
|
140
|
+
* - httpStaticRoot
|
|
140
141
|
******************************************************************************/
|
|
141
142
|
|
|
142
143
|
/** the tcp port that the Node-RED web server is listening on */
|
|
@@ -218,92 +219,123 @@ module.exports = {
|
|
|
218
219
|
/** When httpAdminRoot is used to move the UI to a different root path, the
|
|
219
220
|
* following property can be used to identify a directory of static content
|
|
220
221
|
* that should be served at http://localhost:1880/.
|
|
222
|
+
* When httpStaticRoot is set differently to httpAdminRoot, there is no need
|
|
223
|
+
* to move httpAdminRoot
|
|
221
224
|
*/
|
|
222
|
-
//httpStatic: '/home/nol/node-red-static/',
|
|
225
|
+
//httpStatic: '/home/nol/node-red-static/', //single static source
|
|
226
|
+
/* OR multiple static sources can be created using an array of objects... */
|
|
227
|
+
//httpStatic: [
|
|
228
|
+
// {path: '/home/nol/pics/', root: "/img/"},
|
|
229
|
+
// {path: '/home/nol/reports/', root: "/doc/"},
|
|
230
|
+
//],
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* All static routes will be appended to httpStaticRoot
|
|
234
|
+
* e.g. if httpStatic = "/home/nol/docs" and httpStaticRoot = "/static/"
|
|
235
|
+
* then "/home/nol/docs" will be served at "/static/"
|
|
236
|
+
* e.g. if httpStatic = [{path: '/home/nol/pics/', root: "/img/"}]
|
|
237
|
+
* and httpStaticRoot = "/static/"
|
|
238
|
+
* then "/home/nol/pics/" will be served at "/static/img/"
|
|
239
|
+
*/
|
|
240
|
+
//httpStaticRoot: '/static/',
|
|
223
241
|
|
|
224
242
|
/*******************************************************************************
|
|
225
243
|
* Runtime Settings
|
|
226
244
|
* - lang
|
|
245
|
+
* - diagnostics
|
|
227
246
|
* - logging
|
|
228
247
|
* - contextStorage
|
|
229
248
|
* - exportGlobalContextKeys
|
|
230
249
|
* - externalModules
|
|
231
250
|
******************************************************************************/
|
|
232
251
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
252
|
+
/** Uncomment the following to run node-red in your preferred language.
|
|
253
|
+
* Available languages include: en-US (default), ja, de, zh-CN, zh-TW, ru, ko
|
|
254
|
+
* Some languages are more complete than others.
|
|
255
|
+
*/
|
|
256
|
+
// lang: "de",
|
|
257
|
+
|
|
258
|
+
/** Configure diagnostics options
|
|
259
|
+
* - enabled: When `enabled` is `true` (or unset), diagnostics data will
|
|
260
|
+
* be available at http://localhost:1880/diagnostics
|
|
261
|
+
* - ui: When `ui` is `true` (or unset), the action `show-system-info` will
|
|
262
|
+
* be available to logged in users of node-red editor
|
|
263
|
+
*/
|
|
264
|
+
diagnostics: {
|
|
265
|
+
/** enable or disable diagnostics endpoint. Must be set to `false` to disable */
|
|
266
|
+
enabled: true,
|
|
267
|
+
/** enable or disable diagnostics display in the node-red editor. Must be set to `false` to disable */
|
|
268
|
+
ui: true,
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
/** Configure the logging output */
|
|
272
|
+
logging: {
|
|
273
|
+
/** Only console logging is currently supported */
|
|
274
|
+
console: {
|
|
275
|
+
/** Level of logging to be recorded. Options are:
|
|
276
|
+
* fatal - only those errors which make the application unusable should be recorded
|
|
277
|
+
* error - record errors which are deemed fatal for a particular request + fatal errors
|
|
278
|
+
* warn - record problems which are non fatal + errors + fatal errors
|
|
279
|
+
* info - record information about the general running of the application + warn + error + fatal errors
|
|
280
|
+
* debug - record information which is more verbose than info + info + warn + error + fatal errors
|
|
281
|
+
* trace - record very detailed logging + debug + info + warn + error + fatal errors
|
|
282
|
+
* off - turn off all logging (doesn't affect metrics or audit)
|
|
283
|
+
*/
|
|
284
|
+
level: "info",
|
|
285
|
+
/** Whether or not to include metric events in the log output */
|
|
286
|
+
metrics: false,
|
|
287
|
+
/** Whether or not to include audit events in the log output */
|
|
288
|
+
audit: false
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
|
|
292
|
+
/** Context Storage
|
|
293
|
+
* The following property can be used to enable context storage. The configuration
|
|
294
|
+
* provided here will enable file-based context that flushes to disk every 30 seconds.
|
|
295
|
+
* Refer to the documentation for further options: https://nodered.org/docs/api/context/
|
|
296
|
+
*/
|
|
297
|
+
//contextStorage: {
|
|
298
|
+
// default: {
|
|
299
|
+
// module:"localfilesystem"
|
|
300
|
+
// },
|
|
301
|
+
//},
|
|
302
|
+
|
|
303
|
+
/** `global.keys()` returns a list of all properties set in global context.
|
|
304
|
+
* This allows them to be displayed in the Context Sidebar within the editor.
|
|
305
|
+
* In some circumstances it is not desirable to expose them to the editor. The
|
|
306
|
+
* following property can be used to hide any property set in `functionGlobalContext`
|
|
307
|
+
* from being list by `global.keys()`.
|
|
308
|
+
* By default, the property is set to false to avoid accidental exposure of
|
|
309
|
+
* their values. Setting this to true will cause the keys to be listed.
|
|
310
|
+
*/
|
|
311
|
+
exportGlobalContextKeys: false,
|
|
312
|
+
|
|
313
|
+
/** Configure how the runtime will handle external npm modules.
|
|
314
|
+
* This covers:
|
|
315
|
+
* - whether the editor will allow new node modules to be installed
|
|
316
|
+
* - whether nodes, such as the Function node are allowed to have their
|
|
317
|
+
* own dynamically configured dependencies.
|
|
318
|
+
* The allow/denyList options can be used to limit what modules the runtime
|
|
319
|
+
* will install/load. It can use '*' as a wildcard that matches anything.
|
|
320
|
+
*/
|
|
321
|
+
externalModules: {
|
|
322
|
+
// autoInstall: false, /** Whether the runtime will attempt to automatically install missing modules */
|
|
323
|
+
// autoInstallRetry: 30, /** Interval, in seconds, between reinstall attempts */
|
|
324
|
+
// palette: { /** Configuration for the Palette Manager */
|
|
325
|
+
// allowInstall: true, /** Enable the Palette Manager in the editor */
|
|
326
|
+
// allowUpdate: true, /** Allow modules to be updated in the Palette Manager */
|
|
327
|
+
// allowUpload: true, /** Allow module tgz files to be uploaded and installed */
|
|
328
|
+
// allowList: ['*'],
|
|
329
|
+
// denyList: [],
|
|
330
|
+
// allowUpdateList: ['*'],
|
|
331
|
+
// denyUpdateList: []
|
|
332
|
+
// },
|
|
333
|
+
// modules: { /** Configuration for node-specified modules */
|
|
334
|
+
// allowInstall: true,
|
|
335
|
+
// allowList: [],
|
|
336
|
+
// denyList: []
|
|
337
|
+
// }
|
|
338
|
+
},
|
|
307
339
|
|
|
308
340
|
|
|
309
341
|
/*******************************************************************************
|
|
@@ -359,9 +391,9 @@ module.exports = {
|
|
|
359
391
|
|
|
360
392
|
codeEditor: {
|
|
361
393
|
/** Select the text editor component used by the editor.
|
|
362
|
-
*
|
|
394
|
+
* As of Node-RED V3, this defaults to "monaco", but can be set to "ace" if desired
|
|
363
395
|
*/
|
|
364
|
-
lib: "
|
|
396
|
+
lib: "monaco",
|
|
365
397
|
options: {
|
|
366
398
|
/** The follow options only apply if the editor is set to "monaco"
|
|
367
399
|
*
|
|
@@ -371,7 +403,7 @@ module.exports = {
|
|
|
371
403
|
*/
|
|
372
404
|
theme: "vs",
|
|
373
405
|
/** other overrides can be set e.g. fontSize, fontFamily, fontLigatures etc.
|
|
374
|
-
* for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.
|
|
406
|
+
* for the full list, see https://microsoft.github.io/monaco-editor/api/interfaces/monaco.editor.IStandaloneEditorConstructionOptions.html
|
|
375
407
|
*/
|
|
376
408
|
//fontSize: 14,
|
|
377
409
|
//fontFamily: "Cascadia Code, Fira Code, Consolas, 'Courier New', monospace",
|