Skip to content
Novus Examples
cwl1.3 KB

CWL Workflow (Six-Step Topology)

A CWL Workflow carrying the same six-step ETL topology as the Airflow and Argo fixtures, with dependencies expressed as step output references and a multi-source input resolved by pickValue. For cross-format DAG conversion tests.

Preview — first 50 linescwl
cwlVersion: v1.2
class: Workflow
id: orders-etl
label: Orders ETL workflow
doc: |
  Inert fixture carrying the same six-step topology as the Airflow, Argo, Graphviz and Mermaid
  fixtures in this category, so a cross-format converter has one documented answer to check.

requirements:
  SubworkflowFeatureRequirement: {}

inputs:
  raw_extract:
    type: File
  window_hours:
    type: int
    default: 24

outputs:
  notice:
    type: File
    outputSource: notify_owner/report

steps:
  ingest_orders:
    run: cwl-command-line-tool.cwl
    in:
      extract: raw_extract
    out: [record_count]

  validate_orders:
    run: cwl-command-line-tool.cwl
    in:
      extract: ingest_orders/record_count
    out: [record_count]

  transform_orders:
    run: cwl-command-line-tool.cwl
    in:
      extract: validate_orders/record_count
    out: [record_count]

  load_warehouse:
    run: cwl-command-line-tool.cwl
    in:
      extract: transform_orders/record_count
    out: [record_count]

  refresh_dashboard:
    run: cwl-command-line-tool.cwl
63 lines total — download for the full file.

Specifications

Cwl Version
v1.2
Class
Workflow
Steps
6
Edges
6
Has Pick Value
true
Topology
ingest_orders, validate_orders, transform_orders, load_warehouse, refresh_dashboard, notify_owner

Testing contract

Expected to pass
Scenario
Derive a workflow graph from CWL step input sources rather than from an explicit edge list
Expected result
Six steps and six edges resolve, and the final step's two-source input is recognised as a join requiring MultipleInputFeatureRequirement

What is a .cwl file?

CWL (Common Workflow Language) is an open standard for describing command-line analysis workflows portably. A .cwl document is YAML (or JSON) declaring a cwlVersion and a class of CommandLineTool, Workflow, or ExpressionTool, with typed inputs and outputs, input bindings that map values onto command-line arguments, and — for workflows — steps wired together by source references. Requirements and hints declare the container image and resources a step needs.

How to use this file

Use an example .cwl file to test workflow parsers, validators, and execution engines, verifying that step dependencies form the expected graph, that input bindings produce the documented command line, and that an unsupported cwlVersion is rejected.

How to use this file for testing

“CWL Workflow (Six-Step Topology)” is a deterministic Novus Examples fixture for Graph data, Data engineering, Conversion testing. Node/edge datasets in GraphML and GEXF (directed and undirected, with attributes and weights) — for testing network importers, layout tools, and graph converters.

Documented properties for this file: 6 edges. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Pipeline and infrastructure fixtures are inert configuration: steps reference fictional images and scripts, and nothing here executes. Run your linter, schema validator, migrator, or policy engine against them, and expect the deprecated-syntax and intentionally invalid variants to be rejected.

Generated by generation/pipelines.py. Free for any use, no attribution required — license.