Replies: 2 comments 3 replies
|
Here are my thoughts:
|
2 replies
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Motivation
Texera has around 160 operators, and most of them do not have a demo. The current operator descriptions are often limited, so users may still be unsure how to configure or use an operator in practice. Recording a video for every operator manually does not scale.
This proposal introduces a Playwright-based tool that automatically generates a short sample video for each operator, so operators can include an up-to-date example of how they are used.
These videos are not intended to be detailed tutorials. Instead, each video provides a concise example showing:
As a side benefit, generating the videos exercises the full operator workflow end to end: logging in, creating a workflow, dragging an operator onto the canvas, filling in its properties, running the workflow, and viewing the result. This can also provide end-to-end coverage for common operator interactions.
Generation Pipeline
A developer can ask an agent to recommend sample field values for an operator based on a given dataset. The recommended values are then reviewed and stored as configuration data.
The remaining generation is deterministic. Each operator group has a defined script template that encodes how operators in that group are demoed: which sample workflow to load, where to drag the operator and how to connect it, and whether a dataset needs to be selected. OperatorScriptGenerator picks the template by the operator's group, fills in the operator's name/type and its field values from operator-field-values.json, and emits the per-operator script.
Sample video:
line-chart_demo.webm
Rollout plan
Horizontal split by code layer into ~10 small, independently-compiling PRs, ordered along the demo flow (frontend testids, flow setup, login/navigation, drag, fill, run, dataset, config framework, demo data, generator+entry). Each PR compiles on its own; only the last wires the entry point so the tool runs.
Maintenance Principle
A key goal is to keep this process lightweight and avoid turning operator demo generation into an additional maintenance burden.
Operator authors should only need to provide or update the sample field values required for their operators. They should not be expected to maintain Playwright scripts or video-generation infrastructure directly. Shared controllers and generation logic should be maintained centrally. When UI changes affect multiple operator demos, the corresponding updates should be made once in the shared controller layer rather than separately for every operator.
Video regeneration should also be an occasional release task rather than a required step for every operator change or pull request.
Maintenance Model
Limitations
Requires a full running stack: Generating or regenerating videos requires a live Texera deployment, including the backend, frontend, seeded sample datasets, Playwright, and Chromium. This is not a lightweight process and cannot run in a minimal CI environment.
Playwright flows are timing-sensitive: End-to-end browser flows may occasionally fail because of timing issues rather than actual regressions. A retry or tolerance strategy may therefore be needed if these flows are used in automated checks.
UI coupling is reduced but not eliminated: The controllers rely on stable data-testid attributes where possible. However, some interactions still depend on ng-zorro component classes or canvas geometry. Certain elements rendered by the component library, such as dropdown popups, cannot easily be assigned test IDs. As a result, frontend or component-library changes may still break the generation flow and require updates to the shared controllers.
Open Questions
Please feel free to share any thoughts, concerns, or suggestions. Thank you.
All reactions