Skip to content

Using the Canvas Designer

Overview

The Canvas designer (https://app.pipelineframework.org) provides a visual interface for creating and configuring pipeline applications. This document explains how to use it effectively.

Getting Started

1. Access the Canvas

Visit https://app.pipelineframework.org in your web browser.

2. Create a New Pipeline

  • Click on the "New Pipeline" button
  • Or start with a blank canvas to add steps one by one

Creating Steps

Adding Steps

  • Click the "+" button to add a new step
  • Or click the large "+" button that appears when hovering over the canvas
  • Select the step type from the dropdown menu:
    • 1-1 (One-to-One): Single input to single output
    • Expansion (1-Many): Single input to multiple outputs
    • Reduction (Many-1): Multiple inputs to single output
    • Side-effect: Input and output types are identical

Configuring Steps

  • Click on a step to open its configuration form
  • Fill in the step name and description
  • Define the input type name and fields
  • Define the output type name and fields
  • The form updates in real-time as you make changes

Types and Fields

Defining Types

  • Input Type Name: Name of the type that flows into this step
  • Output Type Name: Name of the type that flows out of this step
  • Field Name: Name of a property in the type
  • Field Type: Data type of the field (String, Integer, Long, Double, Boolean, UUID, BigDecimal, Currency, Path)

Automatic Type Dependencies

  • When steps are connected, the output type of one step becomes the input type of the next
  • This creates a natural flow through your pipeline
  • Type mismatches and field synchronization are handled automatically

Field Synchronization

  • Connected steps automatically synchronize their field definitions
  • Changes to fields in one step propagate to connected steps
  • Type mismatches and field synchronization are handled automatically
  • Most type conversions are handled automatically by MapStruct (primitives, UUID, BigDecimal, Java time types, etc.)
  • Specialized types (Currency, AtomicInteger, AtomicLong, List<String>) use custom converters

Connecting Steps

Visual Connections

  • Steps are automatically connected in sequence
  • Different arrow shapes represent different cardinalities:
    • Solid arrow: 1-1 connection
    • Split arrow: Expansion (1-Many)
    • Merge arrow: Reduction (Many-1)
    • Parallel arrow: Side-effect (1-1 with same I/O)

Type Flow Visualization

  • The canvas shows how types flow from one step to the next
  • Input and output types are visually represented
  • Field mappings are clearly shown

Canvas Features

Visual Design Elements

  • Step Cards: Each pipeline step appears as a card on the canvas
  • Arrow Connections: Show the flow of data between steps
  • Field Lists: Show input and output fields for each step
  • Type Labels: Identify input and output types

Interactive Elements

  • Click on Steps: Opens configuration form with input/output fields
  • Click on Connectors: Shows shared fields between connected steps
  • Click on Arrows: Shows combined input/output forms
  • Drag Steps: Reorganize the visual layout (does not change processing order)

Real-time Updates

  • Changes appear immediately on the canvas
  • Type dependencies update automatically
  • YAML configuration updates in real-time
  • Download button is always available when configuration changes

Configuration Management

Download Configuration

  • Click the "Download YAML" button to get the pipeline configuration
  • The YAML file can be used with the template generator for advanced scenarios
  • Configuration includes all steps, types, and field definitions
  • Ready to use with the command line generator if needed

Download Complete Application

  • Click the "Download Application" button to get a ZIP file containing your complete generated application
  • The ZIP includes all source code, configuration files, and build scripts
  • No additional generation step is needed - the application is ready to build and run
  • Perfect for immediately starting development

Upload Configuration

  • Click "Upload Configuration" to load an existing YAML file
  • The canvas updates to reflect the uploaded pipeline
  • Perfect for editing existing configurations

Best Practices

1. Plan Your Pipeline

  • Think through your data flow before starting
  • Identify required input and output types
  • Consider the cardinality of each transformation

2. Use Descriptive Names

  • Step names should clearly indicate their function
  • Type names should be meaningful
  • Field names should be self-explanatory

3. Iterate Gradually

  • Start with a simple pipeline and add complexity
  • Test the generated code frequently
  • Use the Canvas to visualize your changes

4. Validate Types

  • Ensure input and output types are compatible
  • Verify field types match between connected steps
  • Use the visualization to catch potential issues

Advanced Features

Two-Column Layout

  • Input and output fields are displayed side-by-side
  • Easy comparison of field transformations
  • Clear visualization of data transformations

Animated Elements

  • New steps briefly animate to indicate their addition
  • Visual feedback for user interactions
  • Smooth transitions for better UX

Confirmation Dialogs

  • Prevents accidental deletions
  • Confirms potentially destructive operations
  • Safe editing experience

Integration with Development Workflow

1. Design Phase

  • Use Canvas to visualize your pipeline architecture
  • Iterate on the design quickly
  • Share designs with team members

2. Development Phase

  • Download YAML configuration from Canvas
  • Use with template generator to create codebase
  • Implement business logic in generated services

3. Testing Phase

  • Validate the generated application
  • Verify type flows and transformations
  • Iterate on design if needed

Troubleshooting

Common Issues

  • Type Mismatch: Check that field types are compatible between steps
  • Cardinality Issues: Ensure the correct step type is selected
  • Field Synchronization: Changes may take a moment to propagate

Error Handling

  • Canvas provides real-time validation feedback
  • Invalid configurations are highlighted
  • Error messages guide you to fix issues

Export and Import

Export Options

  • Download Application: Get a complete ZIP file with your generated application (recommended for most users)
  • Download YAML: Get the configuration file for advanced usage or template generator
  • Copy configuration to clipboard: For quick sharing
  • Save for later use: Keep your design for future reference

Import Options

  • Load from existing YAML file: Resume work from saved configuration
  • Share configurations across projects: Reuse pipeline designs

Tips and Tricks

  • Use Side-effect Steps: For logging, metrics, or other side effects
  • Validate Early: Test generated code frequently
  • Keep Types Simple: Complex types can make debugging harder
  • Document Your Design: Add comments to explain complex transformations
  • Version Control: Save your YAML configurations in version control