Skip to content

Releases: slingdata-io/sling-cli

v1.5.12

09 Mar 18:20
af5112d

Choose a tag to compare

Sling v1.5.12 (2026-03-09T18:18:58Z)

New Features

  • --home-dir flag: New flag across sling run and all sling conns subcommands (list, test, set, unset, exec, discover) to specify a custom sling home directory. Sets SLING_HOME_DIR and reloads connections accordingly.

  • Column merge with defaults (+ prefix): Stream-level columns: entries prefixed with + now merge with defaults.columns instead of replacing them. Use +column_name: ~ to unset a default. Without +, legacy replace behavior is preserved.

  • Pipeline store variables in replications: {store.xxx} variables set in pipeline steps are now accessible in inline replication where: and sql: fields.

  • API spec range_step support: Added range_step to the endpoint context map, enabling three-part range expressions for backfill.

  • API spec state variable rendering in jmespath / jq: State variables (e.g. {state.endpoint_name}) are now resolved inside jmespath and jq response record expressions.

Bug Fixes

  • SLING_LOGGING env from replication: Moved SLING_LOGGING env handling from per-task to replication-level so it takes effect before stream execution and properly reinitializes the logger.

  • Direct insert incremental state: writeToDbDirectly now calls SyncColumns() and SyncStats() so incremental state (e.g. datetime update keys) is correctly captured after direct insert writes.

  • Auth token refresh on retry: API retry logic now refreshes HTTP request headers from conn.State.Auth.Headers before resending, fixing stale token issues after server-side token rotation (both single-request and mid-pagination scenarios).

  • Windows path handling: CleanWindowsPath applied to local file locations in ParseLocation, API spec file:// paths, env file paths, and SLING_HOME_DIR.

  • Oracle chunking with custom SQL: Fixed AS table alias syntax for Oracle (which doesn't support AS for subquery aliases).

v1.5.11

02 Mar 19:49
22a6674

Choose a tag to compare

Sling v1.5.11 (2026-03-02T19:52:22Z)

  • Fix critical issue with API Spec state parsing when using setup

v1.5.10

02 Mar 14:01
6259a2d

Choose a tag to compare

Sling v1.5.10 (2026-03-02T14:00:35Z)

Connectors

  • ADBC DuckDB — new ADBC connector with Docker testing
  • MongoDB — support ISODate() in filters
  • ClickHouse — fix table rename SQL syntax
  • SFTP — fix incremental file timestamp filtering
  • Google Drive — add context timeout for API calls
  • Local files — UNC path support (Windows network paths)

Connections & Environment

  • Support setting username in connection URL
  • New .env.sling file support for per-project connection definitions

MCP Server

  • working_dir parameter on connection, pipeline, and replication actions
  • Auto-loads .env.sling from working directory

CDC (Change Data Capture)

  • Soft delete now uses _sling_synced_op = 'D' instead of _sling_deleted_at; snapshot rows marked with 'S'
  • Updated merge_change_capture_soft templates across all 14 databases

Other

  • Updated godbc v0.0.5, purego v0.10.0
  • Disable AWS EC2 metadata service to prevent warning messages
  • JMESPath/JQ safe rendering with state variables
  • Simplified update check logic

v1.5.9

23 Feb 14:48
ba79f80

Choose a tag to compare

Sling v1.5.9 (2026-02-23T15:13:21Z)

Change Data Capture (CDC)

  • New change-capture replication mode
  • Supports initial full/chunked snapshot then incremental CDC
  • New merge strategies: change_capture and change_capture_soft (soft delete)
  • CDC merge templates for: Postgres, MySQL, Snowflake, BigQuery, SQL Server, DuckDB, Redshift, Databricks, ClickHouse, SQLite, D1, DB2, Exasol, Oracle, StarRocks
  • Pre-release for testing, not ready for production yet

Chunking Improvements

  • Optional WHERE clause support added to chunk query functions
  • Fix bug where start-date is 0000-01-01

CLI Cleanup

  • Removed legacy subcommands
  • Centralized execution ID into core/env package (env.ExecID)
  • Enhanced file logging: exec ID prefix and log cleanup (added SLING_LOG_DIR env vars)

Proxy Support

  • New SLING_PROXY environment variable (or proxy_url per-connection property) for proxy configuration

Bug Fixes

  • StreamRowsContext column mapping streamlined; sync issue fixed
  • Prometheus connector: consistent float conversion via toFloat method
  • Time format strings in NewStreamProcessor clarified
  • MySQL/MariaDB primary key handling improved in GenerateDDL
  • InferColumnTypes preserves explicit types for empty datasets

v1.5.8

17 Feb 11:13
23d1dd3

Choose a tag to compare

Sling v1.5.8 (2026-02-17T11:17:57Z)

  • Critical fix for AzureSQL and Fabric merge_strategy templates
  • Improve S3 buffering to avoid back-pressure panic.

v1.5.7

16 Feb 11:12
f827d86

Choose a tag to compare

Sling v1.5.7 (2026-02-16T11:11:59Z)

Schema Migration

  • Preserve foreign keys, indexes, column comments, default values, and auto-increment attributes when replicating between databases
  • Supported for Oracle, PostgreSQL, Redshift, Snowflake, SQL Server, BigQuery, MySQL, DuckDB, ClickHouse, Databricks, SQLite
  • Streams automatically ordered by foreign key dependencies
  • Default value translation mappings between database engines

Merge Strategies

  • Support for insert, update, update_insert, and delete_insert merge strategies

jq Expressions

  • New jq source option for JSON-based data streams
  • jq() transform function for column-level transformations
  • Works with API sources and database JSON columns
  • Compiled expressions cached for performance

Template & Expression Engine

  • Nested template expression support for recursive resolution within nested braces (e.g., GraphQL queries)
  • Safe rendering methods that keep missing expressions intact instead of erroring

Fixes & Improvements

  • File-based logging setup for persistent log output
  • Wildcard schema support in Discover method
  • Duplicate step ID validation in pipeline configs
  • DuckDB HTTP server shutdown fix after batch processing
  • Total rows and bytes tracked in pipeline state
  • Metadata queries updated to use current_database() for catalog filtering
  • Zip file response handling for API sources

v1.5.6

02 Feb 10:15
b5be994

Choose a tag to compare

Sling v1.5.6 (2026-02-02T10:19:20Z)

  • Enhanced delete_missing with configurable source and target WHERE clauses
  • Added secret encoding support for HMAC authentication in API specs
  • Added EscapeBackslash option for MySQL LOAD DATA operations
  • Added row-start-only range format support for Excel

Bug Fixes

  • Fixed Fabric ROWTERMINATOR to use hexadecimal representation
  • Disabled AWS EC2 metadata retrieval for improved security
  • Restored escape character handling in MySQL/MariaDB LOAD DATA INFILE templates

v1.5.5

26 Jan 16:10
a01a07f

Choose a tag to compare

Sling v1.5.5 (2026-01-26T16:09:41Z)

New Features

  • DB2 Database Support - Initial support for IBM DB2 with connection templates and full test suite
  • definition-only Mode - Create table/file definitions without transferring data (parquet/arrow only for files)
  • _sling_synced_at Column - Enable with SLING_SYNCED_AT_COLUMN=true for timestamp tracking
  • _sling_synced_op Column - Tracks operation type: I (insert), U (update), D (soft delete)
  • slugify Function - Convert strings to URL-friendly slugs

Bug Fixes

  • DDL primary key with WITH clauses - Fixed incorrect placement when table options present (#694)
  • Prometheus streaming deadlock - Fixed stall on large time ranges (#700)
  • MySQL boolean CSV streaming - Fixed boolean handling in LOAD DATA LOCAL INFILE
  • delete_missing with transforms - Fixed errors in PK-only queries when transforms present
  • Connection caching - Fixed hash method and ODBC initialization

Improvements

  • Go 1.25 - Upgraded build toolchain
  • Docker ODBC packages - Added unixodbc and odbcinst
  • Oracle XMLTYPE - Support for BigQuery transfers
  • MySQL LOAD DATA LOCAL - Enhanced NULL value handling
  • S3 multi-bucket access - Improved support in replications
  • Schema discovery - Thread-safe schemata merging, column-level support

v1.5.4

05 Jan 20:58
7141fb3

Choose a tag to compare

Sling v1.5.4 (2026-01-05T20:59:07Z)

ODBC Connection Support

  • New ODBCConn type for generic ODBC database connections

Environment Variable Expansion in Env Files

  • Environment variables can now be used within ~/.sling/env.yaml files
  • Variables are expanded before YAML unmarshalling
  • Loaded env vars are set into the OS environment if not already present

Enhanced Boolean Type Handling

  • Boolean columns now cast to SmallIntType instead of IntegerType for better compatibility
  • Improved boolean handling for MySQL, MariaDB, and StarRocks databases

Pipeline Step Order Preservation

  • Updated YAML handling to use v3
  • Pipeline steps now maintain their defined order during execution

Bug Fixes

  • ADBC Safety Check: Ensure ADBC connection is initialized before use (conn.adbc != nil check)
  • Google API Auth: Fixed "multiple credential options provided" error with google.golang.org/api >= v0.258.0
  • Windows Build Dynamic Linking issue

v1.5.3

23 Dec 14:47
8104d82

Choose a tag to compare

Sling v1.5.3 (2025-12-23T14:49:39Z)

Fix for boolean casting logic for v1.5.2

  • Added CastBoolColumnForSelect method to cast boolean columns when target expects integer or string
    • Boolean → Integer: true→1, false→0
    • Boolean → String: true→"true", false→"false"
  • Enhanced CastColumnsForSelect to detect boolean/integer or boolean/string mismatches and apply casting

API Incremental Sync Improvements

  • New GetSyncUpdateKey function - Automatically detects sync key and update key from API endpoint configuration when:
    • Endpoint has a sync array defined
    • A processor uses aggregation: maximum that outputs to state.<sync_key>
    • update_key is defined in response records
  • DB-based incremental fallback - When SLING_STATE is not set, API replications can now fetch the incremental value directly from the target database