Go to file
wooferguy 9a57958a1e
XOAuth2 for Email-In node (#975)
* Update PULL_REQUEST_TEMPLATE.md

* Add new UI elements to Email In node

Locale for en-US
Added Auth type and Token field to Email IN
Dynamically appear based on selection

* XOAUTH2 IMAP

Minor UI changes. Exposing only XOAuth2. Picks up raw access token from input message specified.

Only works for IMAP
Token formatted by node for Exchange and GMail, won't work on other providers.
Only works on trigger, not timer

TODO:
Add POP XOAUTH2 capability
Add SMTP XOAUTH2 capability
Add option to pass SASL XAOUTH2 token rather than raw OAUTH2 token

* SASL Format

Added checkbox to turn off SASL formatting if the user wants to do this themselves

* XOAuth2 forces input

Using XOauth2 forces triggered node, and automatic trigger sets auth to basic;
XOAuth2 needs token from flow

* Error reporting

Password missing error only occurs if set to basic authentication.

Token missing only occurs if set to XOAuth2.

* Unit tests

Make sure basic authentication is selected by default, and that an additional input is created and timed triggers are turned off for XOauth2

* Cleanup and README

Remove old code, update readme

* XOauth2 IMAP Release

Prevent XOAuth2 being used for POP. Update PR Template.
Updated help file.
Bumped version to 1.19-beta

* Update POP3 dependency

Removed dependency to poplib.js, moved to node-pop3. Re-wrote checkPOP3 function asynchronously using the new library. Added some node.status changes to mimic IMAP behaviour.

* XOAUTH2 POP3

Added checking for authentication type to allow XOauth2 tokens to be sent to POP server. Turned off UI restrictions for this functionality.

* XOAUTH2 POP3 Release

Updated help docs and version to reflect changes.

* Add new UI elements to Email Out node

Add option for XAouth2 for SMTP node

* XOAUTH2 SMTP

Exposing functionality for OAuth2 through Nodemailer. Added some error reporting if credentials are missing to match the Email-In node.

* XOAUTH2 SMTP Release

Updated help file to reflect changes.

* Unit Tests for Email Out

Modified tests to allow these unit tests to pass, but does not address the fault caused by the Node Test Helper - credentials only loaded after the flow has been loaded.

---------

Co-authored-by: Dave Conway-Jones <dceejay@users.noreply.github.com>
2023-03-27 20:27:47 +01:00
.github XOAuth2 for Email-In node (#975) 2023-03-27 20:27:47 +01:00
analysis Update package.jsons for mono-repo (#851) 2021-11-02 15:22:30 +00:00
function Fix random node to handle to or from being 0 2022-10-12 09:20:09 +01:00
hardware Fixed typo (#981) 2023-03-27 20:25:33 +01:00
io major change to snmp node to not stringify octet string type. 2023-03-15 10:22:34 +00:00
parsers add version/engine support metadata 2022-07-27 14:08:02 +01:00
social XOAuth2 for Email-In node (#975) 2023-03-27 20:27:47 +01:00
storage Fix tail to update status 2022-12-14 11:45:33 +00:00
test XOAuth2 for Email-In node (#975) 2023-03-27 20:27:47 +01:00
time russian translate (#962) 2023-03-21 10:20:23 +00:00
utility Add specific daemons node stdin error handler 2022-11-16 12:02:30 +00:00
.gitignore bump nodemailer version 2023-03-27 20:23:48 +01:00
.jscsrc Tidy up listing for some nodes. No functional changes 2017-04-12 13:32:08 +01:00
.jshintrc bump xmpp node package version 2020-07-16 10:15:49 +01:00
.travis.yml Fix mcp3xxx refs to new variables 2021-11-17 18:08:13 +00:00
99-sample.html.demo update sample to use test/html 2020-01-12 16:34:01 +00:00
99-sample.js.demo Update licenses and packages for all nodes 2016-11-06 20:26:19 +00:00
CONTRIBUTING.md Update CONTRIBUTING.md 2018-12-28 19:55:55 +00:00
Gruntfile.js clean up Gruntfile to be more consistent 2017-11-06 22:53:40 +00:00
LICENSE Update licenses and packages for all nodes 2016-11-06 20:26:19 +00:00
README.md Update Readme to remove NMA node 2018-06-13 22:13:22 +01:00
coverall try nyc instead of instanbul 2020-10-19 21:33:50 +01:00
package.json XOAuth2 for Email-In node (#975) 2023-03-27 20:27:47 +01:00

README.md

Node-RED Nodes

A collection of nodes for Node-RED. See below for a list.

Installation

All of these nodes are available as individual npm packages. See the list below for the npm package names, or search npm.

This repository acts as an overall store for these nodes - and is not intended as a way to install them - unless you really do want some development.

To install - either use the manage palette option in the editor, or change to your Node-RED user directory.

    cd ~/.node-red
    npm install node-red-node-{filename}

To manually install using this repo:

  1. cd into the nodes directory of Node-RED
  2. Either:
    • download the zip of the repository and extract it
    • run git clone https://github.com/node-red/node-red-nodes.git
  3. run npm install in any of the node subfolders to install individual node's dependencies

Running Tests

Node.js v6 or newer is required. To run tests on all of the nodes you will need the node-red runtime:

npm i node-red-nodes
npm test

Contributing

Now that we support npm installation of nodes we recommend people post their own nodes via npm. Please read the packaging guide notes.

For simple typos and single line fixes please just raise an issue pointing out our mistakes. If you need to raise a pull request please read our contribution guidelines before doing so.

Copyright JS Foundation and other contributors, http://js.foundation under the Apache 2.0 license.

Extra Node Information

NPM name - File-link - Description

Misc

N/A - 99-sample - A sample node with more comments than most to try to help you get started without any other docs...

Analysis

node-red-node-badwords - 74-swearfilter - Analyses the payload and tries to filter out any messages containing bad swear words. This only operates on payloads of type string. Everything else is blocked.

node-red-node-wordpos - 72-wordpos - Analyses the payload and classifies the part-of-speech of each word. The resulting message has msg.pos added with the results. A word may appear in multiple categories (eg, 'great' is both a noun and an adjective).

Function

node-red-node-datagenerater - datagenerator - A node that can generate dummy data in various formats, names, addresses, emails, numbers, words, etc

node-red-node-pidcontrol - pidcontrol - A PID control node for numeric inputs - provides simple contoll loop feedback capability.

node-red-node-random - random - A simple random number generator - can generate integers for x to y - or floats between x and y.

node-red-node-rbe - rbe - A simple node to provide report by exception and deadband / bandgap capability for simple inputs.

node-red-node-smooth - 17-smooth - A simple node to provide various functions across several previous values, including max, min, mean, high and low pass filters.

Hardware

node-red-node-arduino - 35-arduino - A collection of analogue & digital input & output nodes for the Arduino board - uses firmata protocol to talk to the board.

node-red-node-beaglebone - 145-BBB-hardware - A collection of analogue & digital input & output nodes for the Beaglebone Black.

node-red-node-blink1 - 77-blink1 - Provides support for the Blink1 USB LED from ThingM.

node-red-node-blinkstick - 76-blinkstick - Provides support for the BlinkStick USB LED device.

node-red-node-digirgb - 78-digiRGB - Provides support for the DigiSpark RGB USB LED.

node-red-node-heatmiser - 100-heatmiser-in - Read and writes settings for temperature and frost protection to Heatmiser thermostats.

node-red-node-intel-galileo - mraa-spio - A collection of analogue & digital input & output nodes for the Intel Galileo and Edison.

node-red-node-ledborg - 78-ledborg - A simple driver for the LEDborg plug on module for Raspberry Pi.

node-red-node-makeymakey - 42-makey - A Node-RED node to read from a MakeyMakey input device.

node-red-node-pi-gpiod - pigpiod - An alternative to the default PI GPIO nodes that allows remote access - so a host machine can access a remote Pi (via network) and is better for driving multiple servos.

node-red-node-pi-mcp3008 - pimcp3008 - Allows A Raspberry Pi to node to read from MCP300x series Analogue to Digital Converter chips via the SPI bus.

node-red-node-pi-neopixel - neopixel - Allows A Raspberry Pi to drive a strip of NeoPixels directly.

node-red-node-pi-unicorn-hat - unicorn - Lets a Raspbeery Pi control a Pimorini Unicorn HAT 8x8 LED display.

node-red-node-pibrella - 38-rpi-pibrella - Controls a Pibrella add-on board for a Raspberry-Pi.

node-red-node-piface - 37-rpi-piface - Adds support for the PiFace interface module for Raspberry Pi.

node-red-node-piliter - 39-rpi-piliter - Controls a Pimorini Pi-LITEr 8 LED add-on board for a Raspberry-Pi.

node-red-node-sensortag - 79-sensorTag - Reads data from the Ti Bluetooh Low Energy (BLE) SensorTag device.

node-red-node-wemo - 60-wemo - Basic node to drive a WeMo socket and switch. Does not use discovery.

N/A - 101-scanBLE - Scans for a particular Bluetooth Low Energy (BLE) device.

I/O

node-red-node-discovery - mdns - discovers other Avahi/Bonjour services on the network.

node-red-node-emoncms - 88-emoncms - Adds node to post to an Emoncms server.

node-red-node-mqlight - mqlight - Adds nodes to send and receive using MQlight.

node-red-node-ping - 88-ping - Pings a machine and returns the trip time in mS. Returns false if no response received within 3 seconds, or if the host is unresolveable. Default ping is every 20 seconds but can be configured.

node-red-node-serialport - 25-serial - Node to send messages to and receive messages from a physical serial port.

node-red-node-snmp - snmp - Adds simple snmp receivers for single OIDs or OID tables.

node-red-node-stomp - 18-stomp - A Node-RED node to publish and subscribe to and from a STOMP server.

node-red-node-wol - 39-wol - Sends a Wake-On-LAN magic packet to the mac address specified. You may instead set msg.mac to dynamically set the target device mac to wake up.

Parsers

node-red-node-base64 - 70-base64.js - Converts a payload to/from base64 encoded format.

node-red-node-geohash - 70-geohash.js - Converts a lat, lon payload to/from geohash format.

node-red-node-msgpack - 70-msgpack.js - Converts a payload to/from msgpack binary packed format.

node-red-node-what3words - what3words.js - Encodes or Decodes a lat, lon position into what3words text format.

Social

node-red-node-dweetio - 55-dweetio - Uses dweetio to send/receive messages.

node-red-node-email - 61-email - Sends and receives simple emails from services like gmail or smtp or imap servers.

node-red-node-feedparser - 32-feedparse - Reads messages from an atom or rss feed.

node-red-node-irc - 91-irc - Connects to an IRC server to send and receive messages.

node-red-node-nma - 57-nma - DEPRECATED as NMA closed down operations.

node-red-node-notify - 57-notify - Uses Growl to provide a desktop popup containing the payload. Only useful on the local Apple machine.

node-red-node-prowl - 57-prowl - Uses Prowl to push the payload to an Apple device that has the Prowl app installed.

node-red-node-pushbullet - 57-pushbullet - Uses PushBullet to push the payload to an Android device that has the PushBullet app installed.

node-red-node-pusher - 114-pusher - Publish-Subscribe to a Pusher channel/event.

node-red-node-pushover - 57-pushover - Sends alerts via Pushover.

node-red-node-twilio - 56-twilio - Uses Twilio service to send/receive text messages.

node-red-node-twitter - 27-twitter - Listens to Twitter feeds and can also send tweets. (NOTE: this will break soon when Twitter remove their streaming API)

node-red-node-xmpp - 92-xmpp - Connects to an XMPP server to send and receive messages.

Storage

node-red-node-leveldb - 67-leveldb - Uses LevelDB for a simple key value pair database.

node-red-node-mysql - 68-mysql - Allows basic access to a MySQL database. This node uses the query operation against the configured database. This does allow both INSERTS and DELETES. By it's very nature it allows SQL injection... so be careful out there...

node-red-node-sqlite - sqlite - Supports read and write to a local sqlite database.

Time

node-red-node-suncalc - 79-suncalc - Uses the suncalc module to generate an output at sunrise and sunset based on a specified location. Several choices of definition of sunrise and sunset are available.

node-red-node-timeswitch - timeswitch - Lets the user set simple repeating timers for example for simple heating control, etc.

Utility

node-red-node-daemon - daemon - starts up (calls) a long running system program and pipes STDIN, STDOUT and STDERR to and from that process. Good for monitoring long running command line applications,

node-red-node-exif - 94-exif - Extracts GPS and other EXIF information from a passed in jpeg image,