Skip to content

Pipelines ​

Pipelines chain operations into multi-step DAG workflows with typed nodes and edges.

Structure ​

FieldDescription
idUnique identifier
nameHuman-readable name
descriptionWhat this pipeline does
nodesArray of pipeline nodes
edgesArray of edges connecting nodes
tagsCategorization labels

Node Types ​

Folder Node ​

Provides a directory tree as input to downstream nodes.

json
{
  "id": "folder-1",
  "type": "folder",
  "data": {
    "label": "Source Code",
    "folderPath": "/path/to/project"
  }
}

Code File Node ​

Provides a single file as input.

json
{
  "id": "file-1",
  "type": "code-file",
  "data": {
    "label": "README",
    "filePath": "README.md"
  }
}

Operation Node ​

Executes a registered operation.

json
{
  "id": "op-1",
  "type": "operation",
  "data": {
    "label": "Lint Check",
    "operationId": "lint-check"
  }
}

Output Local Path Node ​

Writes pipeline output to a local directory.

json
{
  "id": "output-1",
  "type": "output-local-path",
  "data": {
    "label": "Results",
    "localPath": ".ordine/results"
  }
}

Edges ​

Edges define data flow between nodes:

json
{
  "id": "e1",
  "source": "file-1",
  "target": "op-1"
}

Execution Model ​

Level 0:  [folder-1]  [file-1]     ← Input nodes (parallel)
              │            │
Level 1:  [op-check]  [op-lint]    ← Operations (parallel)
              │            │
Level 2:       [op-merge]           ← Merge step
                   │
Level 3:      [output-1]            ← Output
  1. The pipeline engine performs a topological sort on the DAG
  2. Nodes are grouped into execution levels
  3. Nodes at the same level run in parallel
  4. Each node receives input from its parent nodes via NodeCtx
  5. Output flows to child nodes along edges

Creating a Pipeline ​

Via the REST API ​

sh
curl -X PUT http://localhost:9433/api/pipelines/my-pipeline \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Code Review Pipeline",
    "description": "Automated code review with linting and AI analysis",
    "nodes": [...],
    "edges": [...],
    "tags": ["review"]
  }'

Via the Canvas UI ​

  1. Navigate to Pipelines and create a new pipeline
  2. Click Edit in Canvas to open the visual editor
  3. Drag nodes from the palette and connect them with edges
  4. Save and run

Running a Pipeline ​

Via the Web UI ​

  1. Open a pipeline detail page
  2. Optionally set an input path
  3. Click Run
  4. Monitor progress in real-time via the log viewer

Via the REST API ​

sh
curl -X POST http://localhost:9433/api/pipelines/my-pipeline/run \
  -H 'Content-Type: application/json' \
  -d '{"inputPath": "/path/to/project"}'

The response returns a jobId for tracking:

json
{ "jobId": "abc-123-..." }

Released under the MIT License.