# node-red-contrib-fission

> Node Red extension for Fission with function invocation/management and other commands support.

Latest version **0.2.0** (published 2017-08-06) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install node-red-contrib-fission
pnpm add node-red-contrib-fission
yarn add node-red-contrib-fission
bun add node-red-contrib-fission
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.0 |
| Published | 2017-08-06 |
| First published | 2017-08-05 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 12 |
| Known vulnerabilities | 0 (+36 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 2 |
| Author | yqf3139@gmail.com |
| Maintainers | yqf3139 |
| Keywords | node-red, fission |

## Links

- npm: https://www.npmjs.com/package/node-red-contrib-fission
- Repository: https://github.com/yqf3139/node-red-contrib-fission
- Homepage: https://github.com/yqf3139/node-red-contrib-fission#readme
- Issues: https://github.com/yqf3139/node-red-contrib-fission/issues
- npm.io page: https://npm.io/package/node-red-contrib-fission

## Dependencies (12)

- [url](https://npm.io/package/url.md) ^0.11.0
- [axios](https://npm.io/package/axios.md) ^0.16.2
- [influx](https://npm.io/package/influx.md) ^5.0.7
- [multer](https://npm.io/package/multer.md) ^1.3.0
- [is-utf8](https://npm.io/package/is-utf8.md) ^0.2.1
- [raw-body](https://npm.io/package/raw-body.md) ^2.2.0
- [form-data](https://npm.io/package/form-data.md) ^2.2.0
- [on-headers](https://npm.io/package/on-headers.md) ^1.0.1
- [body-parser](https://npm.io/package/body-parser.md) ^1.17.2
- [media-typer](https://npm.io/package/media-typer.md) ^0.3.0
- [cookie-parser](https://npm.io/package/cookie-parser.md) ^1.4.3
- [express-http-proxy](https://npm.io/package/express-http-proxy.md) ^1.0.5

## Recent versions

- 0.2.0 (latest) — 2017-08-06
- 0.1.0 — 2017-08-05

## README

# node-red-contrib-fission
Node Red extension for Fission with function invocation/management and other commands support.

## Demos

[Invoke Hello World Function](https://www.youtube.com/watch?v=9z6tQr1RDAA): 
In this demo, we create a simple `inject` node to inject messages manually,
a `debug` node to output messages,
and a `fission function` node to invoke `hello` in fission via fission function endpoint.
The params are packed and sent to the fission function, the result is parsed and then passed
to the next node in the flow.

[Create a web app in 30 minutes](https://www.youtube.com/watch?v=OcvjVFqZnoY)
In this demo, we create 12 flows which consist of 16 functions and 62 nodes. 
It required 3rd-party services (Minio, Redis, Rethinkdb) managed by `service-catalog`,
adapters to translate events in 3rd-party services into messages in the flow charts,
and some standard functions provided by us (e.g. image processing).

[Monitor the flow charts online](https://www.youtube.com/watch?v=UdA3enRpaFo)
In this demo, we are running the web app backend using fission and nodered.
An admin ui is using the web app Http API to pull the images and client data.
100 clients are uploading images and reporting status at different rate.
We can see every invocation on the flows we composed in the last demo.
The detail metrics of each fission function are displayed in charts.

## Installation

### Optional Perquisite

#### Metrics

You need to enable the metrics feature in [this PR](https://github.com/fission/fission/pull/211)
and expose the prometheus service `prometheus` on port `9090` in `fission-metrics` namespace.

#### Auto scaling

You need to enable the auto scaling feature in [this PR](https://github.com/fission/fission/pull/230)

### Deploy Node-red with other fission services

```bash
# use the official node red docker image
$ kubectl create -f nodered.yaml
```

### Install fission nodes from Node-red palette

Open the node red ui on nodeport `31318`,
search for `node-red-contrib-fission` in node red palette and install.

## Available nodes
- fission-invocation: node which invokes and manages fission functions
- fission-params-validate: node which validates the input messages base on rules 

## WIP nodes
The following node requires standard fission functions or require additional modification to fission:
- fission-httptrigger: node which manages fission http triggers, and receive http events from fission
- fission-timetrigger: node which manages fission time triggers, and receive cron events from fission
- fission-natstrigger: node which manages fission mq triggers, and receive mq events from fission or publish mq events to fission
- fission-minio-adapters: not released
- fission-redis-adapters: not released
- fission-rethinkdb-adapters: not released

### Dev branch
`k8s` branch contains all the nodes I am working on. If you are interested, check that out.

---
_Source: https://npm.io/package/node-red-contrib-fission · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
