Skip to content

v1.5.18

Choose a tag to compare

@flarco flarco released this 12 May 20:12
· 168 commits to main since this release
32a1bbc

Sling v1.5.18 (2026-05-12T20:15:08Z)

New Features

  • Queue-only API endpoints: New queue_only flag on API spec endpoints. Such endpoints drain synchronously to populate downstream queues and emit no records of their own, and are hidden from broad enumeration (sling conns discover, wildcard replication expansion) while remaining addressable by name. queue_only is also honored as a defaults value in the spec.

  • Inline iterate lists/objects for dynamic API endpoints: Dynamic endpoints now accept native YAML arrays and objects in iterate (in addition to JSON literals and JMESPath strings). Nested YAML maps are normalized to map[string]any for consistent template/JMESPath use.

  • sling conns exec output formats and --limit: sling conns exec now supports --output csv|json|arrow with streaming (Arrow IPC / CSV go straight to stdout, logs to stderr) and a --limit flag (default 100, 0 = unlimited). The limit is pushed down via the dialect's limit_sql template so the database truncates server-side. sling conns discover also gains CSV output.

Bug Fixes

  • CDC nil target options on shared-reader path: CDC's shared-reader write path bypassed TaskExecution.Execute() and left target options (ColumnCasing, AddNewColumns, AdjustColumnType) nil. Now calls Config.SetDefault() on the cloned config so system-wide defaults apply.

  • Dataflow.Pause timeout on slow stream starts: Pause now waits up to a configurable timeout (SLING_PAUSE_TIMEOUT, default 30s) and returns false if any stream can't pause in time or the dataflow context is canceled, instead of using a short random timer.

  • MySQL LoadDataLocal missing batches: Reader handler is now registered per batch in MySQL's LoadDataLocal, ensuring every batch is loaded instead of only the first.

  • DuckDB Describe errors no longer masked: SELECT/WITH queries fail fast on Describe errors in DuckDB instead of swallowing the error and returning misleading results.

  • Nil reader panic in ConsumeCsvReaderChl: Guards against a nil reader to prevent panics.

  • Spurious HTTP-URL check in GenerateInsertStatement: Removed an unnecessary check that could misclassify insert targets.

  • chunk() function return type: The pipeline chunk() function now returns *ChunkResult instead of a bare channel for consistent downstream consumption.

  • Cleaner error/messages: Clearer row-count-mismatch error in WriteToDb/writeToDbDirectly, simplified pause error handling on those same paths, corrected DuckDB pipeline path and sling command output message, clarified the sling run CLI description.