Waterpipe (0.3)

Download OpenAPI specification:Download

Ask me for your questions: silentium.noxe@gmail.com

Waterpipe is programming tool for integrations and aggregation systems.
Golang based scripting allow implement no code solutions for your business.

Introduction

This API is documented in OpenAPI format. In this document you will found how to create pipes, nodes and tasks.

Authentication

Not implemented yet.

Pipes

Pipe is a queue of nodes where each node is a some logic.
Task starting from waterpipe.start node and finalize at waterpipe.final node.
Pipe has multiple versions, when you create new task you need to specify version of pipe directly.
This API allow for you create pipe and versions for him.

Create new pipe

Request Body schema: application/json
name
required
string

Name of pipe

namespace
required
string

Similar for directories

description
string
object

Some functional that customize via settings

Responses

Request samples

Content type
application/json
{
  • "name": "Test pipe",
  • "namespace": "foo.bar.hello",
  • "description": "It's test pipe",
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

List pipes

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get one pipe

path Parameters
id
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "8b1337a7-e5f0-457e-9451-c0ab25daddce",
  • "name": "Test pipe",
  • "namespace": "foo.bar.hello",
  • "settings": {
    }
}

Create new version

path Parameters
id
required
string <uuid>

Pipe id

Request Body schema: application/json
qualifier
string

Version name

Array of objects

Can't be empty. Must contains minimum two nodes: waterpipe.start and waterpipe.final

Responses

Request samples

Content type
application/json

Minimum pipe definition that can be created

{
  • "qualifier": "v10101",
  • "nodes": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "validation error - parameter x missed"
}

Custom node

Node is a minimal logic, similar for a function in programming language.
This API allow for you create nodes and change them.

Task

Task is a payload that passing through pipes.
Each node receive task, something do with him and task go to next.