Some nodes allow their properties to be set by the properties of the received messages.
For example, you can set the filename the File node uses in the node itself, or override it with msg.filename.
This behaviour can have some unexpected, undesirable, side effects where a node has been explicitly configured to act on one filename, but then receives a message with filename set. If the user doesn't want the node's behaviour to be overridden by the message, they would have to ensures any received message doesn't have msg.filename set. This puts the burden on the user to know all of the properties that might get overridden in a node.
As such, we've decided the preferred behaviour is to only allow a msg property to override a node property if the node property has not been set (ie is blank).
We are deprecating the behaviour of using a message property when the corresponding node property has been set.
This preferred behaviour is already how some of the existing nodes do it - the MQTT nodes for example.
The core nodes that have the now-deprecated behaviour are:
- File
- HTTP Request
- Email
We have updated those nodes so they will log a warning if they detect this behaviour being made use of. The deprecation warning includes a link to a page on the wiki that explains the background -
http://bit.ly/nr-override-msg-props - to encourage users to update their flows to not depend on this.
The intention is this deprecation warning will remain in place for the next release. We will then update the nodes in the release after that to meet the preferred behaviour.
Any questions, comments or concerns - ask them here.
Nick