Nodehub
Nodehub is a marketplace service for storing node data such as primary node registry as well as definitions for composite nodes. This service allows organizations to publish custom composite nodes, fork them and create different versions of those composite nodes. This service also serves as an exaustive list of all available primary nodes.
Fork a Node
POST
/node/fork/{NODE_ID} Fork a node under the user org.Headers
Name | Type | Required | Description |
---|---|---|---|
Authorization | String | YES | JWT token of the logged in user. |
Request Body
Name | Type | Required | Description |
---|---|---|---|
name | String | YES | Name of the composite node. |
Curl Request
curl --location '{BASE_URL}/node/fork/{NODE_ID}' \
--header 'Authorization: {AUTH_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"name": "myForkedNode"
}'
Get All Nodes
GET
/node Get meta data of all nodes in marketplace.Headers
Name | Type | Required | Description |
---|---|---|---|
Authorization | String | YES | JWT token of the logged in user. |
note
This API does not retrieve any private nodes that are not a part of the user's organization.
Curl Request
curl --location '{BASE_URL}/node' \
--header 'Authorization: {AUTH_TOKEN}'
Get Single Node Data
GET
/node/{NODE_ID} Get all data for a single composite node.Headers
Name | Type | Required | Description |
---|---|---|---|
Authorization | String | YES | JWT token of the logged in user. |
note
This API does not retrieve any private nodes that are not a part of the user's organization.
Curl Request
curl --location '{BASE_URL}/node/{NODE_ID}' \
--header 'Authorization: {AUTH_TOKEN}'
Get All Watched Nodes
GET
/watched Get data of all primary and watched composite nodes.Headers
Name | Type | Required | Description |
---|---|---|---|
Authorization | String | YES | JWT token of the logged in user. |
note
This API does not retrieve any private nodes that are not a part of the user's organization.
Curl Request
curl --location '{BASE_URL}/node/watched' \
--header 'Authorization: {AUTH_TOKEN}'
Publishing a Node
POST
/node/publish Publish a composite node under an org.Headers
Name | Type | Required | Description |
---|---|---|---|
Authorization | String | YES | JWT token of the logged in user. |
Request Body
Name | Type | Required | Description |
---|---|---|---|
name | String | YES | Name of the composite node. |
isPublic | Boolean | NO | Whether this node should be publically accessible or not. By default this is set to false . |
schema | JSON | YES | The schema that defines how this composite node should be rendered on flowise as a single node. Take a look at Node Schema section to learn more about schema. |
definition | JSON | YES | The actual definiton of the composite node. This is the entire flowise JSON output of a specific diagram. |
Curl Request
curl --location '{BASE_URL}/node/publish' \
--header 'Authorization: {AUTH_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"name": "myCompositeNode1",
"isPublic": false,
"schema": {
"class": "GenericTransformer",
"description": "My description 1",
"label": "my node label 1",
"type": "HTTP_GET",
"version": 2,
"outputType": "dynamic",
"inputs": [
{
"label": "my input label 1",
"name": "my input name 1",
"optional": true,
"type": "string",
"rows": 2
}
],
"outputs": [
{
"label": "my output label 1",
"name": "my input label 1"
}
]
},
// Note: This does not represent an actual working definition.
"definition": {
"nodes": [
{"id": "my_node_id", "inputs": [], "outputs": []},
{"id": "my_node_id_2", "inputs": [], "outputs": []},
{"id": "my_node_id_3", "inputs": [], "outputs": []}
],
"edges": [
{ "from": "my_node_id", "to": "my_node_id_2" }
]
}
}'
Watch a Node
POST
/node/watch/{NODE_ID} Watch a composite node to track it in flowise.Headers
Name | Type | Required | Description |
---|---|---|---|
Authorization | String | YES | JWT token of the logged in user. |
Curl Request
curl --location --request POST '{BASE_URL}/node/watch/{NODE_ID}' \
--header 'Authorization: {AUTH_TOKEN}'
Node Schema
Below is the schema for a node that defines how a node is rendered on flowise.
{
"label": "string",
"type": "string",
"class": "string",
"description": "string",
"version": "number",
"outputType": "dynamic" | "static",
"inputs": {
"label": "string",
"name": "string",
"type": "string" | "json" | "ide" | "number" | "boolean",
"optional": "Boolean",
"rows": "number" | "undefined",
}[],
"outputs": {
"label": "string",
"name": "string",
}[],
}
Here is a description of all the relevant fields.
Name | Type | Required | Description |
---|---|---|---|
label | string | Yes | The label of the main object. |
type | string | Yes | The type of the main object. |
class | string | Yes | The class of the main object. |
description | string | Yes | Description of the main object. |
version | number | Yes | Version number of the object. |
outputType | enum ("dynamic" or "static") | Yes | The output type of the object, either "dynamic" or "static". |
inputs | array of objects | Yes | An array of input objects with the following fields: |
inputs.label | string | Yes | The label for each input. |
inputs.name | string | Yes | The name of each input. |
inputs.type | enum ("string", "json", "ide", "number", "boolean") | Yes | The type of each input. |
inputs.optional | boolean | Yes | Indicates if the input is optional. |
inputs.rows | number or undefined | No | The number of rows if applicable, otherwise undefined. |
outputs | array of objects | Yes | An array of output objects with the following fields: |
outputs.label | string | Yes | The label for each output. |
outputs.name | string | Yes | The name of each output. |