Simple Data Processor

A simple workflow demonstrating data processing capabilities

Back
Workflow Information

ID: simple_data_processor

Namespace: default

Version: 1.0.0

Created: 2025-07-08

Updated: 2025-07-08

Tasks: 2

Quick Actions
Manage Secrets
Inputs
Name Type Required Default
data_list array Optional ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
operation string Optional count
Outputs
Name Type Source
final_report string Final report with summary
processing_results string Results of data processing
Tasks
process_data
script

No description

generate_report
script

No description

YAML Source
id: simple_data_processor
name: Simple Data Processor
tasks:
- id: process_data
  type: script
  script: "import json\nimport os\nfrom collections import Counter\n\n# Get inputs\n\
    data_list = ${data_list}\noperation = \"${operation}\"\n\nresult = {}\n\nif operation\
    \ == \"count\":\n    # Count occurrences\n    counts = dict(Counter(data_list))\n\
    \    result = {\n        \"operation\": \"count\",\n        \"total_items\": len(data_list),\n\
    \        \"unique_items\": len(counts),\n        \"item_counts\": counts,\n  \
    \      \"most_common\": max(counts.items(), key=lambda x: x[1]) if counts else\
    \ None\n    }\nelif operation == \"unique\":\n    # Get unique items\n    unique_items\
    \ = list(set(data_list))\n    result = {\n        \"operation\": \"unique\",\n\
    \        \"original_count\": len(data_list),\n        \"unique_count\": len(unique_items),\n\
    \        \"unique_items\": sorted(unique_items)\n    }\nelif operation == \"sort\"\
    :\n    # Sort items\n    sorted_items = sorted(data_list)\n    result = {\n  \
    \      \"operation\": \"sort\",\n        \"total_items\": len(data_list),\n  \
    \      \"sorted_items\": sorted_items\n    }\n\nprint(f\"__OUTPUTS__ {json.dumps(result)}\"\
    )\n"
  timeout_seconds: 30
- id: generate_report
  type: script
  script: "import json\nimport os\nfrom datetime import datetime\n\n# Get processing\
    \ results\nprocess_results = json.loads(os.environ.get('process_data', '{}'))\n\
    \n# Generate a simple report\nreport = {\n    \"report_generated_at\": datetime.utcnow().isoformat(),\n\
    \    \"processing_summary\": {\n        \"operation_performed\": process_results.get('operation',\
    \ 'unknown'),\n        \"items_processed\": process_results.get('total_items',\
    \ 0),\n        \"execution_id\": \"${execution.id}\"\n    },\n    \"results\"\
    : process_results,\n    \"status\": \"completed\"\n}\n\nprint(f\"__OUTPUTS__ {json.dumps(report)}\"\
    )\n"
  depends_on:
  - process_data
  timeout_seconds: 30
inputs:
- name: data_list
  type: array
  default:
  - apple
  - banana
  - apple
  - orange
  - banana
  - apple
  description: List of items to process
- enum:
  - count
  - unique
  - sort
  name: operation
  type: string
  default: count
  description: Operation to perform
outputs:
  final_report:
    source: generate_report
    description: Final report with summary
  processing_results:
    source: process_data
    description: Results of data processing
version: 1.0.0
description: A simple workflow demonstrating data processing capabilities
Execution ID Status Started Duration Actions
c6c88905... COMPLETED 2025-07-08
13:25:32
N/A View