Skip to content

Publishing and Running

Pipelines use drafts and published versions so you can safely edit a workflow without changing earlier executions.

Draft

A newly created pipeline begins as a draft.

Drafts are editable.

You can:

  • add blocks;
  • remove blocks;
  • edit scripts;
  • change sources;
  • change outputs;
  • move blocks;
  • add or remove connections.

Drafts cannot be run as published workflows.

Validate and Publish

When the graph is ready, select Validate & Publish.

FlaskTrack checks the pipeline before publishing it.

Common validation problems include:

  • a required input is not connected;
  • connected port types do not match;
  • an input has more than one connection;
  • the graph contains a loop;
  • a source is incomplete;
  • a Python or R block has invalid settings;
  • an Output block is incomplete.

If validation fails, correct the draft and publish again.

Published version

A published version is locked.

This means a run always points to the exact graph and scripts that were published.

For example:

Pipeline
├── Version 1 — Published
└── Version 2 — Draft

Runs created from Version 1 continue to reference Version 1 even while Version 2 is being edited.

Start a run

Open a published version and select Run Pipeline.

The new run begins as:

Queued

When a pipeline worker begins processing it:

Running

A finished run becomes:

Succeeded

or:

Failed

A run may also be cancelled.

Run parameters

A run can optionally store JSON parameters.

Example:

{
  "threshold": 0.75,
  "include_controls": true
}

Parameters must be a JSON object.

The exact way your scripts use parameters depends on how the pipeline is designed.

Creating a new version

To change a published pipeline:

  1. open the pipeline;
  2. select Create New Draft;
  3. edit the new draft;
  4. publish it when ready.

Example:

v1 Published
     └── Create new draft
           v2 Draft
               └── Publish
                   v2 Published

Previous runs stay connected to their original version.

Why FlaskTrack locks published versions

Suppose a pipeline ran on Monday and produced a QC result.

On Wednesday, someone changes the Python script.

Without versioning, it would be difficult to know which script actually produced Monday's result.

With pipeline versions:

Monday run
→ Pipeline v3
→ original Python script

Wednesday change
→ Pipeline v4
→ updated Python script

The two are kept separate.