Pipelines and plugins
Reusable pipeline definitions (YAML/JSON DAGs) and an in-process plugin registry.
Plugin registry
List plugins:
GET /api/plugins
GET /api/plugins/trainer/ultralytics
Built-in types include trainers, exporters, validators, splitters, and auto-labelers. Third-party packages can register via the oneopen.plugins entry-point group (type:name → factory).
Pipeline schema
A pipeline is a named list of steps with optional depends_on:
name: CV Quick Path
version: 1
description: Validate, split, export
steps:
- id: validate
type: image_validation
- id: split
type: stratified_split
depends_on: [validate]
params:
train: 0.7
validation: 0.2
test: 0.1
- id: export
type: yolo_export
depends_on: [split]
Validation rejects missing dependencies and cycles. With strict: true, unknown step types are rejected.
CRUD and YAML
Method |
Path |
|---|---|
POST |
|
GET |
|
GET/PUT/DELETE |
|
POST |
|
POST |
|
POST |
|
GET |
|
Running a pipeline
POST /api/pipelines/{id}/run
{"project_id": 1, "version_id": null}
Executed step types: image_validation, data_cleaning, stratified_split, yolo_export, ultralytics_training, active_learning_select.
Skipped by the current runner: local_folder_import, human_review, yolo_auto_annotation, augmentation.
Runs are stored and listed via /api/pipelines/{id}/runs and /api/pipeline-runs/{id}.
UI
Open a project → Pipelines tab:
Visual editor — drag steps from the palette, connect with Shift-drag (or Link mode), save/run
Or paste YAML, validate, and Open in editor
Create from the PPE example
Step positions are stored in each step’s ui: {x, y} field (ignored by the runner).