You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[0.5.0] - 2026-07-21
Changed
Breaking: verb-first grammar. The verb now comes first — n8n-decanter <verb> [workflow…]. Verb-last (n8n-decanter wf123 push) is no
longer accepted and errors with unknown verb. Because everything after the
verb is an argument, a workflow named like a verb needs no special handling: n8n-decanter status push runs status on the workflow named push. Flags
may still appear in any position.
Breaking: node operations moved under a node namespace.add → node create <workflow> "<Node name>", the two-name node rename → node rename <workflow> "<old node>" "<new node>", and run <node-file> → node run <node-file>.
New workflow folders are kebab-case (Order Sync → workflows/order-sync/)
instead of keeping spaces and capitals. Existing folders are left untouched
and still resolve as refs — no migration, no churn.
A workflow folder no longer follows a remote rename. The folder is a stable
local slug; the always-current display name lives in .decanter.json (see
Added). Renaming a workflow (locally or on the server) never moves your folder.
Added
data-tables verb — a read-only fetch of n8n data-table schemas and
rows (the built-in project-scoped tables, n8n ≥ 2.x) into a top-level,
gitignored data-tables/<table>/{meta,columns,rows}.json dir, for developing
and debugging against real table contents offline. --filter '<json>', --search, and --sort pull only a slice of a large table server-side (the
applied filter is recorded in each table's meta.json); --limit/--all
control page size and exhaustion. It never writes a data table. data-tables clean removes the dir (offline). Gated by the new dataTables
config key (default true); when off, the fetch refuses and the recommended
key needn't carry the data-table read scopes (dataTable:list, dataTable:read, dataTableColumn:read, dataTableRow:read).
.decanter.json now caches the workflow's display name (refreshed on
every pull), so the picker, list, and ref-resolution show the real name even
though the folder is a kebab slug — and keep working if workflow.json is
missing or corrupt.
list --json emits [{ name, id, dir }] for tooling (remote-only
workflows under --remote have dir: null).
No-ref → picker. A ref-taking verb given no workflow, on a terminal, opens
the interactive picker to choose one and runs the verb on it. Piped/non-TTY
runs keep the config-default / error behavior, so scripts and CI never block.
simulate now replays single-iteration loops. A workflow whose only
repeated node is a splitInBatches ("Loop Over Items") driver that ran a
single batch — it runs twice (one batch pass + the final "done" pass) while
every other node ran once — no longer hard-errors. The loop driver executes
for real to reproduce the loop, and each node's one captured run pins exactly.
Multi-batch loops (any node ran more than once) stay out of scope, since
first-run-only pinning can't feed later iterations.
Removed
Breaking: rename --workflow flag. Workflow rename is now the single
top-level form rename <workflow> "<new name>"; node rename lives under node rename.