Skip to content

Improve Convenience for Event Transformation Scripts #4289

@tenthe

Description

@tenthe

Body

🎯 Goal

Improve convenience by reducing the need to memorize common transformation patterns, while still requiring basic programming knowledge.

🧩 Problem

Basic transformations (e.g., add timestamp, rename, delete fields) require users to remember JavaScript patterns.

Example:

event.timestamp = Date.now(); event.newName = event.oldName; delete event.oldName; delete event.propertyToDelete; event.timestamp = new Date(event.dateField).getTime();

Especially for simple tasks users must recall the syntax.

🔄 Alternative 1: Utility Functions + Autocomplete

Provide built-in helper functions combined with editor assistance.

utils.addTimestamp(event); utils.rename(event, "oldName", "newName"); utils.remove(event, "propertyToDelete"); utils.parseTimestamp(event, "dateField");

Enhancements

  • Autocomplete for:

    • event.<fields> (based on sample data)
    • utils.* functions
  • Inline descriptions / tooltips

Benefits

  • Less need to memorize patterns
  • Faster and less error-prone
  • Keeps full scripting flexibility

🔄 Alternative 2: Rule-Based Snippet Widget

Provide a small UI widget (e.g., “Add Transformation”) to generate common scripts.

💡 Concept

  • User clicks “Add Transformation”

  • Selects a rule:

    • Add Timestamp
    • Rename Field
    • Remove Field
    • Parse Timestamp

Interaction

Example: Rename Field

  • Field: oldName
  • New name: newName

Generated script:

event.newName = event.oldName; delete event.oldName;

The script is shown in a preview and can be copied and pasted into the editor.

Benefits

  • No need to remember syntax
  • Simple and non-intrusive
  • Acts as lightweight guidance for users

StreamPipes Committer

I acknowledge that I am a maintainer/committer of the Apache StreamPipes project.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions