Two-panel transform editor — 8 operation types, live preview, CRUD with recipe reference integrity
Transforms are column-level operations applied to the input dataset before it enters the recipe pipeline. They replace the old preparation routes (/datasets/[id]/preparation) which have been removed in v0.12.0.
| Operation | Description |
|---|---|
| Rename | Change a column name |
| Cast | Change a column's data type |
| Derive | Create a new column from an expression using existing columns |
| Filter | Remove rows based on column conditions |
| Sort | Order rows by one or more columns |
| Aggregate | Group and summarise data |
| Join | Combine with another dataset on matching columns |
| Union | Stack two datasets with matching columns |
Each transform operation shows a live preview of its output. The two-panel layout shows operations on the left and a preview of the transformed data on the right. Invalid operations show errors inline.
Transforms belong to datasets — each transform is a column-level operation defined on a specific dataset. Recipes use transforms through a many-to-many intersection: a single transform can be used by multiple recipes, and a recipe can include multiple transforms. Deleting a recipe removes only the intersection rows that linked it to those transforms — the transforms themselves survive for use by other recipes. Shared recipes in read-only mode prevent modification of the intersection but do not lock the underlying transforms.