Commit Graph

334 Commits

Author SHA1 Message Date
Nick O'Leary 5012568464
Stop config nodes after flow nodes
Fixes #2876
2021-02-19 20:44:01 +00:00
Nick O'Leary b41c7962c2
Add tests for pluggable library 2021-02-19 15:24:56 +00:00
Nick O'Leary 6f9e06e78d
Add validation of library plugin id and better error reporting 2021-02-19 14:39:42 +00:00
Nick O'Leary c2347076f4
Handle errors when initialising library plugin 2021-02-19 14:01:33 +00:00
Nick O'Leary c744af161d
Add support for settings object in plugin definition 2021-02-19 11:59:49 +00:00
Nick O'Leary 3f9a29730f
Add partial implementation of adding library sources via editor
This adds lots of commented out code that provides a settings panel
to add new library sources. It is incomplete as it doesn't actually
add/update the library sources on the runtime.

For 1.3, I'm focussing on allowing additional sources get added
via the settings file only. I've done enough work on the editor
side to convince myself more work is needed than I can justify
at this time on what is otherwise not going to be a widely
used feature.
2021-02-18 11:58:23 +00:00
Nick O'Leary 8a076c01ab
Support for library source plugins 2021-02-18 11:58:22 +00:00
Nick O'Leary 7d04353843
Merge pull request #2859 from node-red/fix-numeric-status
fix numeric status not displaying by ensuring it's a string
2021-02-16 14:32:14 +00:00
Hiroyasu Nishiyama 12c7238c72 revert diffConfigs args 2021-02-15 22:05:42 +09:00
Hiroyasu Nishiyama b66468c4ea restart node only if node's group changes 2021-02-14 10:06:46 +09:00
Nick O'Leary 6336ab121e
Merge branch 'dev' into function-modules 2021-02-13 00:21:27 +00:00
Nick O'Leary 9c09ee3b71
Rework Function node module integration 2021-02-12 18:14:13 +00:00
Hiroyasu Nishiyama 1be337fbc5 make nodes with only group change not deployed by nodes deploy mode 2021-02-13 00:23:30 +09:00
Dave Conway-Jones e86f6a841a
fix numeric status not displaying by ensuring it's a string 2021-02-05 11:36:26 +00:00
Nick O'Leary 735de2908a
Handle more valid language codes when validating lang params
Fixes #2856
2021-02-03 15:43:26 +00:00
Nick O'Leary f5da2eb633
Merge branch 'master' into dev 2021-02-02 13:45:43 +00:00
Nick O'Leary 74db3e17d0
Restrict project file access to inside the project directory 2021-02-01 13:39:39 +00:00
Nick O'Leary 3a0074d96e
Merge branch 'master' into dev 2021-01-27 23:28:19 +00:00
Nick O'Leary 9b5ed8407f
Broaden lang verification to include * 2021-01-27 22:06:12 +00:00
Hiroyasu Nishiyama 4a1d66f210 update UI, Runtime API, metadata handling, and others 2021-01-27 22:27:54 +09:00
Nick O'Leary 1f6328bf4e
Add initial support for ThemePlugins 2021-01-26 13:49:47 +00:00
Nick O'Leary a0f736bb88
Validate user-provided language parameter before passing to i18n 2021-01-25 17:06:27 +00:00
Nick O'Leary a006b52052
Initial plugin runtime api implementation 2021-01-18 16:25:40 +00:00
Tiago Ferreira 55ff035fc9
Ability to add projects path to the settings file (#2816)
* add the ability to set the projects path

* Update packages/node_modules/@node-red/runtime/locales/en-US/runtime.json

use directory to keep consistency with the project

Co-authored-by: Nick O'Leary <nick.oleary@gmail.com>

* Update packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/index.js

only show the projects directory is projects are enabled

Co-authored-by: Nick O'Leary <nick.oleary@gmail.com>

* use "directory" instead of "folder" to keep consistency with the Node-RED project

Co-authored-by: Nick O'Leary <nick.oleary@gmail.com>
2021-01-18 13:18:07 +00:00
Hiroyasu Nishiyama d51aefa156 initial support for npm module installation 2021-01-11 19:32:16 +09:00
Nick O'Leary c40412d7c6
Merge pull request #2690 from node-red/sf-module
[sf-modules] Support npm subflow modules
2021-01-08 21:16:05 +00:00
Nick O'Leary b0bc7ecacb
Merge pull request #2763 from node-red/simple-git-setting
Allow project workflow to be configured via settings file
2021-01-08 15:20:11 +00:00
Nick O'Leary 5489bd37c9
Fix handling of default workflow mode when projects not active 2021-01-08 15:05:34 +00:00
Nick O'Leary da96c85d32
Handle subflow modules with their own npm dependencies 2021-01-07 11:26:20 +00:00
Nick O'Leary 814fc8bc69
Add SubflowModule class for running subflow modules 2021-01-07 11:10:58 +00:00
Nick O'Leary 0c9fd25d3e
Nodes log via parent flow to allow flow-info to be added 2021-01-07 11:10:34 +00:00
Nick O'Leary 9a660f3fe9
Support npm subflow modules 2021-01-07 11:10:33 +00:00
Nick O'Leary 7913b3cbc2
Merge branch 'master' into dev 2021-01-07 10:17:50 +00:00
Nick O'Leary 0284ef401e
Fix loading individual module catalog 2021-01-06 20:20:32 +00:00
Nick O'Leary af19536222
Better logging when deprecated editorTheme.palette.* settings used 2021-01-06 17:36:59 +00:00
Nick O'Leary 9d2d060dec
Fix unit tests for externalModules 2020-12-27 20:59:31 +00:00
Nick O'Leary aacb92a7ae
Implement allow/denyList when loading/installing modules 2020-12-27 12:49:17 +00:00
Nick O'Leary fc459be531
Deprecate editorTheme.palette.editable for externalModules.palette.allowInstall
Also deprecates editorTheme.palette.editable for externalModules.palette.allowUpload
2020-12-23 23:29:07 +00:00
Nick O'Leary 3151502a3f
Deprecate autoInstallModules for externalModules.autoInstall 2020-12-23 22:05:58 +00:00
Nick O'Leary 496b5a092f
Ensure subflow credential objects exist
Fixes #2783
2020-12-15 17:20:22 +00:00
johnwang71 be828af3e2 Fix bug: Crash & quit while handling exception with undefine msg.error. i.e. flow with 3 nodes, http-in, delay 5-10s, http-out; client with 3s timeout request the flow; TypeError: Cannot read property 'hasOwnProperty' of undefined\r at Flow.handleError (/usr/src/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:474:27) 2020-12-14 18:18:50 +08:00
Nick O'Leary fc7967d455
Fix missing promise on setUserSettings 2020-12-07 11:49:02 +00:00
Nick O'Leary fca21ac126
Rename paletteEditorEnabled to installerEnabled 2020-12-07 11:49:01 +00:00
Nick O'Leary 6fb96fa3c1
Move exec and events components to util module
The exec and events components are common components that
are used by both runtime and registry. It makes sense to
move them into the util package.

This also adds some docs to the registry module
2020-12-07 11:49:01 +00:00
Nick O'Leary a1f565f756
Use more async funcs in runtime/lib/api to reduce Promise creation 2020-12-07 11:49:01 +00:00
Nick O'Leary 5992ed1fab
Fully remove when.js dependency 2020-12-07 11:49:01 +00:00
Nathanaël Lécaudé c5d38d8962
Library: properly handle symlinked folders 2020-11-25 21:08:43 +00:00
Nathanaël Lécaudé b1c0d6b452 Library: properly handle symlinked folders 2020-11-24 18:29:39 -05:00
Nick O'Leary 0f7d185a61
Ensure runtime side picks up default project workflow mode 2020-11-18 16:37:39 +00:00
Nick O'Leary f19ec5d9b6
Clear retained status of deleted nodes 2020-11-17 13:29:13 +00:00
Nick O'Leary 6ea978d83d
Prevent needless retention of node status messages 2020-11-16 21:05:13 +00:00
Nick O'Leary 9d7a450821
Add mutex lock to saveSettings storage call
Fixes #2736
2020-10-28 21:59:22 +00:00
Nick O'Leary ff0be73b1f
Migrate to nyc instead of istanbul for code coverage 2020-10-19 21:10:34 +01:00
Nick O'Leary 12d56b8b03
Fix api call to reload flows
Fixes #2726
2020-10-19 12:56:40 +01:00
Nick O'Leary e34f4acb22
Fix race condition in .config file migration
Fixes #2724
2020-10-15 16:21:28 +01:00
Nick O'Leary af636870d4
Add better error message if context file gets corrupted 2020-10-06 15:42:52 +01:00
Nick O'Leary 517e376582
Restore support for runtimeSyncDelivery flag 2020-09-29 17:39:29 +01:00
Nick O'Leary 7a90fe5aec
Fix flow api unit tests 2020-09-29 17:35:43 +01:00
Nick O'Leary ea45dde63a
Remove when.js from runtime/lib/flow/index 2020-09-29 17:20:01 +01:00
Nick O'Leary 22a301b55e
Add flows:* events and deprecate nodes-* events 2020-09-29 16:29:10 +01:00
Nick O'Leary 605177dcf0
Validate hook names when they are added 2020-09-29 16:28:52 +01:00
Nick O'Leary 460e1f5563
Fixup merge error 2020-09-29 12:19:27 +01:00
Nick O'Leary 6f25337b99
Add docs for RED.hooks 2020-09-29 12:19:27 +01:00
Nick O'Leary 08148a07b2
Update Node/Flow to trigger msg routing hooks 2020-09-29 12:19:27 +01:00
Nick O'Leary 27c0e45940
Remove unused router component 2020-09-29 12:19:27 +01:00
Nick O'Leary bdd736315a
Add RED.hooks engine 2020-09-29 12:19:27 +01:00
Nick O'Leary d57ec0cd53
Refactor lib/flows code to include initial router component 2020-09-29 12:19:26 +01:00
Nick O'Leary c5bdd3d056
Allow user to manage project version string 2020-09-28 11:30:46 +01:00
Nick O'Leary 69d60ffb24
Add simplified git workflow to auto-commit changes 2020-09-28 10:41:33 +01:00
Nick O'Leary e6ffa3d143
Cache settings when doing initial load 2020-09-28 10:41:05 +01:00
Nick O'Leary bb4330e486
Clone settings before passing to storage layer
Avoids the storage layer modifying the in-memory object
2020-09-28 10:40:03 +01:00
Nick O'Leary e12975cf0b
Do not remove old config.json file to ease downgrade path 2020-09-25 15:50:26 +01:00
Nick O'Leary 4d0c572c2e
Fix .config.json unit tests 2020-09-24 15:42:52 +01:00
Nick O'Leary fb2da0ee9e
Split .config.json into separate files 2020-09-23 17:29:09 +01:00
Nick O'Leary b8b0247717
Default flowFilePretty to true if projects enabled 2020-09-23 10:57:58 +01:00
Nick O'Leary b7243c2226
Merge branch 'master' into dev 2020-09-16 11:54:34 +01:00
Nick O'Leary 70b6674f44
Replace Math.random with crypto.getBytes for session tokens 2020-09-11 14:09:54 +01:00
Nick O'Leary ef67b8481e
Check file exists before trying to take backup 2020-09-11 13:26:00 +01:00
Melvin Groenhoff d84c2b780b Fix `this` context when calling multiple event listeners (fixes #2692). 2020-09-04 10:20:30 +02:00
Nick O'Leary 4dd619b8c6
Merge branch 'master' into dev 2020-09-03 16:14:55 +01:00
Nick O'Leary be880c25f9
Merge pull request #2682 from node-red/upload-npm
Add support for file upload on /nodes api
2020-09-03 15:01:31 +01:00
Nick O'Leary 17812f0d77
Merge pull request #2683 from node-red/write-to-temp
Update util.writeFile to write to tmp file before rename
2020-09-03 15:00:31 +01:00
Kunihiko Toumura 0c5586ddfb Add 'done' metric log for message tracing 2020-08-18 09:28:50 +09:00
Nick O'Leary b0b2c32654
Update util.writeFile to write to tmp file before rename 2020-08-13 17:17:40 +01:00
Nick O'Leary 6f1ed76b4c
Add support for file upload in /nodes api 2020-08-13 15:54:54 +01:00
Rory A. Svage f81cee0be2 Message 2020-08-07 16:44:52 -04:00
Nick O'Leary e691b1b7c3
Add additional check for git auth failure response
Fixes #2656
2020-08-03 16:55:36 +01:00
Nick O'Leary 16c26d8098
Move runtime settings back to adminApi from editorApi
Fixes #2662
2020-07-31 15:26:21 +01:00
Nick O'Leary fe4ef354ac
Flag a node as removed when it is disabled 2020-06-08 20:59:00 +01:00
Nick O'Leary dec82589d1
Handle missing projects runtime setting 2020-06-02 22:53:05 +01:00
Nick O'Leary f0193b0f67
Add better messages for 404 errors on admin api 2020-06-02 22:52:22 +01:00
Nick O'Leary bae52613ab
Merge branch 'master' into dev 2020-06-01 09:38:39 +01:00
Sam Machin a8d8540346
fix for settings.set subsequent updates
By cloning the value the assert.deepEqual will now fail even for subsequent updates of the value without restarting Node-RED
2020-05-31 13:44:31 +01:00
Nick O'Leary 1c94064c57
Remove unused _info/_type subflow env var magic values 2020-05-22 20:54:06 +01:00
Nick O'Leary 5d81cec00c
Merge branch 'pr_2498' into dev 2020-05-22 15:22:12 +01:00
Nick O'Leary 8ce49c25d4
Ensure auth failure on project fetch identifies the remote
Fixes #2545
2020-05-21 17:25:51 +01:00
Nick O'Leary 0de49e2a75
Ensure auth failure on project fetch identifies the remote
Fixes #2545
2020-05-21 17:18:46 +01:00
Nick O'Leary 05c3f459ad
Add #! lines to project shell scripts
Fixes #2548
2020-05-21 15:33:10 +01:00
Nick O'Leary d7df20413d
Merge branch 'master' into dev 2020-05-04 11:41:44 +01:00
Nick O'Leary 97c771f93a
Ensure file context does not write 'undefined' to store
Fixes #2522
2020-04-08 11:32:39 +01:00
martinLim45 513957eea1
Set flow.disabled when disabled property is false 2020-04-07 16:41:49 +09:00
Hiroyasu Nishiyama 161f6090c1 update initialize & finalize processing of function node 2020-04-06 16:34:41 +09:00
Nick O'Leary 344c9fe57e
Merge branch 'master' into dev 2020-04-02 23:24:42 +01:00
Nick O'Leary 9d4400349b
Fix timer reference in node close handling 2020-04-02 23:24:18 +01:00
Nick O'Leary 6ff3286d78
Merge branch 'master' into dev 2020-04-02 16:52:55 +01:00
Nick O'Leary a6ecb54cc4
Clear node.close timeout to avoid unnecessary work on restart 2020-03-31 19:25:20 +01:00
Nick O'Leary 294696daf5
Merge branch 'dev' into groups 2020-03-30 23:42:52 +01:00
Nick O'Leary d099356207
Merge branch 'master' into dev 2020-03-30 23:42:40 +01:00
Nick O'Leary 5c06761b1a
Remove console.log from subflow 2020-03-30 23:42:30 +01:00
Nick O'Leary 05fc3c5eca
Merge branch 'master' into dev 2020-03-30 23:41:33 +01:00
Nick O'Leary 84771f5864
Flows/subflows must preinitialise their context objects
Fixes #2513

If a node inside a subflow accessed its context object in its
constructor, the subflow-instance flow context would not yet
have been created. This would cause a place holder context
to get created on its behalf, but that place holder doesn't
have its parent set properly. This then breaks the usage
of $parent inside such a subflow.

This fix has changed it so flows (and subflows) create their
flow context as part of their initial creation. That ensures
it exists when individual nodes from the subflow are created,
allowing them to safely access their context.

This has also fixed a related issue where any attempt to use
$parent to access beyond the root parent would seemingly hang
as the callback was never being called. This would cause
messages to get stuck in flows. The fix ensures the callback
is used in the root context objects and undefined is returned.
2020-03-27 23:47:12 +00:00
Nick O'Leary 4304d44851
Ensure complete node scope is remapped in subflows
Fixes #2514
2020-03-27 09:44:15 +00:00
Nick O'Leary 20f97d0d13
Add better handling of host-key-verify error with projects 2020-03-13 13:09:47 +00:00
Nick O'Leary d1dd7d1d51
[groups] Support copy/paste/import/export of groups 2020-03-09 11:14:18 +00:00
Nick O'Leary 1830478ec3
Merge pull request #2461 from node-red/set-flow-with-creds
Allow credentials to be provided as part of /flows api
2020-02-24 16:22:57 +00:00
Nick O'Leary d6b5494625
Allow credentials to be provided as part of /flows api 2020-02-13 16:44:48 +00:00
Nick O'Leary f76edf74f9
Merge pull request #2454 from node-red/send-metric-fix
Move receive metric position to better reflect async changes
2020-02-13 10:08:24 +00:00
Kazuhito Yokoi 5c199d3bb4
Fix garbled characters in library (#2457)
* update getFileBody

* add suitable unit tests

Co-authored-by: Hiroyuki Okada <ok.okada.hiroyuki@gmail.com>
2020-02-12 16:35:33 +00:00
Nick O'Leary cd210d9fbf
Add support for credential-stored env var in subflow 2020-02-10 11:28:56 +00:00
Nick O'Leary 1f8ed9dcb9
Merge branch 'master' into dev 2020-02-10 11:07:50 +00:00
Nick O'Leary 80d100f3f9
Move receive metric position to better reflect async changes
Fixes #2444
2020-02-07 16:49:41 +00:00
Nick O'Leary 7d32636133
Improve file store error when cache disabled and sync api used
Closes #2406
2020-02-07 14:26:30 +00:00
Nick O'Leary 6b52206186
Merge branch 'master' into dev 2020-01-22 11:54:24 +00:00
Nick O'Leary 95a51aafdc
Add path property to debug messages
Fixes #2358

This property can be used to identify the full path to the node that
logged a given message. If the node is inside a subflow (and maybe
nested many levels deep), this path can be used to help find the
node, rather than just the top-level subflow instance node.

A side-effect of this change is the Debug sidebar is now able to
show the message tools for a message coming from a deeply nested
subflow
2020-01-17 16:56:30 +00:00
Nick O'Leary d45274494d
Merge branch 'master' into dev 2019-11-21 21:57:58 +00:00
Nick O'Leary 83c1e44925
Merge pull request #2371 from btsimonh/projects-flowsFile-absolute
flows file absolute path plus non-existent folder creation.
2019-11-21 10:44:20 +00:00
Dave Conway-Jones 2f4dcba54d
let subflow add node-red context to status
For all those nodes thaht don't specify it.
So that subflow status then works ok
2019-11-20 06:12:33 -05:00
KAZUHIRO ITO ff96773295 Add node installation from other than public site 2019-11-11 18:25:36 +09:00
Simon Hailes a4af7b8e21 localfilesystem - ensure folder is present before write (e.g. flows file not in user folder) 2019-11-03 09:10:32 +00:00
Simon Hailes 72deee5d74 Detect windows UNC '\\' as well as 'X:' as an absolute flow path - use the path.isAbsolute function instead of rolling our own. 2019-11-03 08:24:47 +00:00
TJKoury cb8deab1f9
Update packages/node_modules/@node-red/runtime/lib/nodes/Node.js
Co-Authored-By: Nick O'Leary <nick.oleary@gmail.com>
2019-10-17 07:42:11 -04:00
TJKoury e5c27d0236
Remove msg
`msg` not defined in scope.
2019-10-16 20:00:11 -04:00
Nick O'Leary c1c694035d
Allow node.status() to be passed number/bool types
Adds to the existing support for string types. Also
adds unit tests for all three cases
2019-10-14 13:06:59 +01:00
Nick O'Leary 547e7a1b21
Allow node emitted events to have multiple arguments
This is fixing a regression introduced in 1.0 where a custom
`Node.emit` function was added that could only handle a single
argument.
2019-10-10 16:35:12 +01:00
Nick O'Leary 10077ae750
Use a more atomic process for writing context files
Fixes #2271
2019-08-21 16:54:26 +01:00
Nick O'Leary b734097d16
Merge pull request #2227 from node-red/node-done
Adds Done callback to Input event handler
2019-08-21 11:15:00 +01:00
Nick O'Leary 880757fb5d
Rework Subflow Instance property UI (#2236)
* Add support of Subflow UI definition

* new UI definition for env var

* fix label

* fixed value obtaining

* fixed label width

* fix checkbox

* fix subflow info

* remove old subflow ui tests

* add tests

* merge ui new changes

* fix initial open button

* fix environment variable edit tab

* WIP: cp-1

* Rework subflow ui property

* Restrict SF value type according to input selection

* Move subflow property UI code to subflow.js

* Update subflow ui type select appearance

* Present subflow instance properties as table rather than generated UI

* Move subflow instance properties to separate tab

* Fix subflow property ui element layout issues
2019-08-12 15:01:54 +01:00
Nick O'Leary e5255b0c7c
Ensure 2nd arg to node.error is an object
Fixes #2228
2019-08-12 14:36:26 +01:00
Nick O'Leary 16440072fb
Add audit log to project spec tests 2019-08-09 17:09:03 +01:00
Nick O'Leary be2dd6dc32
Add req back to audit log events and extend to Projects api 2019-08-09 16:56:11 +01:00
Nick O'Leary 6032d096ec
Merge branch 'master' into dev 2019-08-06 17:13:00 +01:00
Nick O'Leary defa9a2270
Fix ssh-keygen error handling 2019-08-06 17:12:40 +01:00
Nick O'Leary 7926055b97
Merge branch 'master' into dev 2019-08-06 16:10:33 +01:00
Nick O'Leary 87359937c9
Merge pull request #2256 from kazuhitoyokoi/master-fixerrorhandlingtostartserver
Use appropriate version of Node.js
2019-08-06 15:59:34 +01:00
Nick O'Leary 9b938f6515
Fix default value handling on context array access
Fixes #2252
2019-08-06 15:55:25 +01:00
Nick O'Leary 6c3913785d
Add error event handler to ssh-keygen child_process
Fixes #2255
2019-08-06 15:21:57 +01:00
Nick O'Leary fb9828badc
Update Function node to add node.done 2019-08-06 14:27:56 +01:00
Kazuhito Yokoi 15b99c5749 Use appropriate the version of Node.js 2019-08-06 19:24:45 +09:00
Nick O'Leary f52289b2c3
Add send to input handler signature 2019-07-09 11:40:55 +01:00
Nick O'Leary 3b5ea0f15f
Add node done API 2019-07-08 23:23:33 +01:00