Repository navigation
Release v0.18.0
Changes since v0.17.6.
The Formula node holds multiple expressions in one node, the Alteryx importer jumps to 82 % tool coverage and gains a .yxdb data-file converter, the catalog database can run on PostgreSQL, and Windows kernel calls are noticeably faster. No schema migration required for existing SQLite deployments.
Multi-entry Formula node
The Formula node now holds an ordered list of formula entries instead of a single expression (#741). Each entry has its own output column, expression, and optional cast. Entries evaluate top to bottom — entry 2 can reference the column entry 1 created — identical to chaining N formula nodes, collapsed into one.
- Add, reorder, drag-and-drop. Each row shows an inline preview; misspelled column names get "did you mean?" suggestions.
- Backward compatible. Old single-entry flows load unchanged. A multi-entry node saved from 0.18.0 fails visibly on older versions instead of silently running only entry 1.
- Code export & Python API. Both Polars and FlowFrame exports chain one
.with_columns()per entry.FlowFrame.with_columns()with multipleflowfile_formulas=packs independent entries into one node. - Share links demote multi-entry formulas to placeholders (WASM does not yet support them).

The new multi-entry formula layout
Alteryx importer: 82 % coverage and .yxdb conversion
A large expansion of the .yxmd importer and a new .yxdb data-file converter (#724). Measured on Alteryx's 121 One Tool Example workflows: 559 of 678 in-scope tools mapped (82 %, up from ~75 %), 409 fully converted.
.yxdbconverter.flowfile convert yxdb <path>reads Alteryx data files and writes Parquet. Handles the full type table (Bool, Int, Float, FixedDecimal, String variants, Date/DateTime, Blob, SpatialObj).- Newly converted tools: TextInput, AlteryxSelect, DateTime, DateTimeNow, Rank, Imputation, Weighted Average, Create Samples, Generate Rows, Select Records, Data Cleanse Pro, API Output, plus pass-through handling for Message, Test, BlockUntilDone, Throttle, Detour/DetourEnd.
- Expression translator gained MD5, Base64, REGEX_Match, date helpers (FirstOfMonth, LastOfMonth), and conditionals (IIF, Switch). Fail-closed: only emits when every function resolves.
- Scope taxonomy. The conversion report now explains why a tool was not converted (Reporting, Spatial, CV, Text Mining, GenAI, etc.), not just that it wasn't.
- CLI:
flowfile convert yxdbandflowfile import alteryx(with--inspect,--format md).
Docs: Coming from Alteryx.
PostgreSQL catalog database
The catalog metadata database can now run on PostgreSQL (#738). Set FLOWFILE_DATABASE_URL=postgresql+psycopg2://user:pass@host/db; core, worker, and scheduler all use it. SQLite remains the default; existing deployments are unaffected.
- Unified
create_catalog_engine()centralises driver-specific options across all consumers. - Four Alembic migrations made portable (boolean defaults, dialect-aware constraints).
- Backup UI shows "not available" for PostgreSQL instead of erroring.
- New CI workflow runs the full catalog lifecycle on both SQLite and PostgreSQL 16.
Performance: Windows kernel calls
- Cached SSL context eliminates ~250 ms per
httpxclient on Windows across ~20 kernel call sites (#739). - Vite dual-stack listen avoids ~300 ms dropped-SYN delays on Windows loopback.
- Stale kernel images with a version older than the pinned default are now skipped.
- LSP 404 on older kernel images logs a one-time warning instead of repeated errors.
Docs
- "Telemetry & Privacy" renamed to Privacy & Telemetry and rewritten for brevity (#740).
Dependencies
polars-expr-transformer pinned to >=0.6.3; optional yxdb extra added to pyproject.toml.