@raulnegreiros/flow-node
v3.0.0-alpha2
Published
Basic interface to dojot's flowbroker
Downloads
2
Readme
@dojot/flow-node
A NodeJS library that allows you to integrate your own node on Dojot's FlowBroker.
How to build your own node
- You need to create a class that extends the
DataHandlerBase
class, this class is the responsable by implements your node behavior. The following methods must be implemented:
- getNodeRepresentationPath
- getMetadata
- getLocaleData
- handleMessage
Is necessary to create a
.html
file that describes your node. You can find how to create it using the NodeRed documentation. Dojot's FlowBroker uses the NodeRed frontend.You need to encapsulate your code into a docker container.
Publish your container in some public repository like DockerHub or some private based on DockerRegistry.
Call the FlowBroker endpoint to add a new node. Please check the FlowBroker documentation to check how this endpoint works.
Sample
A sample node is attached to this package to illustrate the steps described in the previous section. It's a simple node that converts a Celcius temperature measure into Kelvin.
How to build
Build the docker image:
cd sampleNode
docker build -t <your dockerHub username>/kelvin .
Publish it on your DockerHub:
docker push <your dockerHub username>/kelvin
Acquire a Dojot's token:
curl -X POST http://127.0.0.1:8000/auth \
-H 'Content-Type:application/json' \
-d '{"username": "admin", "passwd" : "admin"}'
This command will return a JWT token, you need to store it on an environment variable:
export JWT=<the value returned>
Add the Kelvin node to Dojot.
curl -H "Authorization: Bearer ${JWT}" http://localhost:8000/flows/v1/node -H 'content-type: application/json' -d '{"image": "<your dockerHub username>/kelvin:latest", "id":"kelvin"}'
Now the Kelvin node will be available on converters
category into the FlowBroker Dojot's interface.