Blocks and Connections
A pipeline is a graph made from blocks connected by inputs and outputs.
Blocks
FlaskTrack currently provides:
- Data Source
- Python
- R
- Output
Each block has a specific job.
You do not need to use every block type in every pipeline.
For example:
is a complete pipeline.
Inputs and outputs
Blocks exchange data using named ports.
A Python block might have:
A more advanced block can have several ports:
The names are important because Python and R scripts use those names.
For example:
Data types
Connections are typed.
Supported types are:
Arrow Table
Use for tabular data.
Examples:
- sample rows;
- measurements;
- batches;
- instrument result tables;
- calculated datasets.
JSON
Use for structured values that are not primarily tables.
Examples:
File
Use when a block needs to pass a file.
Examples:
- CSV;
- Parquet;
- image;
- generated document;
- specialized scientific file.
Connecting blocks
Connect an output to a compatible input.
Valid:
Invalid:
One connection per input
An input receives data from one upstream output.
If you need data from multiple sources, give the block multiple named inputs.
Example:
Then:
Required inputs
Inputs are normally required.
A pipeline cannot be published while a required input is disconnected.
Connections define what the script can access
A script does not automatically have access to all FlaskTrack data.
It only receives the inputs connected to its block.
If the block defines:
this works:
but this does not:
unless all_samples is also defined and connected.
Pipelines cannot loop backward
Pipelines must flow forward.
Valid:
Invalid:
This keeps execution order clear and reproducible.
Editing connected ports
If you need to substantially change the inputs or outputs of a connected block:
- remove the affected connection;
- edit the block;
- save the new port definition;
- reconnect the block.
This prevents an edit from silently changing which data another block receives.