Install & Compatibility
Where this runs
tested against v0.29.9 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 3.648s · 131.9MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 12.3s · import 3.572s · 127MB
134MB installed
● package 134MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
SlingResource
✓ from dagster_sling import SlingResource
✗ from dagster_sling.resources import SlingResource
SlingResource is at top-level module, not in a submodule
build_sling_replication
✓ from dagster_sling import build_sling_replication
Define a Sling replication config and build assets from it using SlingResource.
from dagster_sling import SlingResource, build_sling_replication
from dagster import Definitions, asset
replication_config = {
"source": {
"conn": "postgres://user:pass@host:5432/db",
"streams": {
"public.users": None
}
},
"target": {
"conn": "snowflake://user:pass@account/db/schema?warehouse=wh&role=role"
},
"defaults": {
"mode": "full-refresh",
"object": "{stream_schema}_{stream_table}"
}
}
sling_resource = SlingResource(connections=[
{"name": "MY_POSTGRES", "conn": "postgresql://user:pass@host:5432/db"},
{"name": "MY_SNOWFLAKE", "conn": "snowflake://user:pass@account/db/schema?warehouse=wh&role=role"}
])
assets = build_sling_replication(
replication_config=replication_config,
resource_def_key="sling",
)
defs = Definitions(assets=assets, resources={"sling": sling_resource})
Debug
Known issues
gotchaThe replication config's source/target connections must reference connections defined in SlingResource by name. Hardcoding inline connection strings in the config is not supported.fixDefine connections in SlingResource with a 'name' field, then use 'conn: NAME' in the replication config.
affects: >=0.20.0
breakingIn version 0.20.0, the API changed: the function to build assets from a Sling replication config was renamed from `sling_assets` to `build_sling_replication`, and the resource was renamed from `DagsterSlingResource` to `SlingResource`.fixUpdate imports and usage: from dagster_sling import SlingResource, build_sling_replication
affects: <0.20.0 -> >=0.20.0
gotchaSling must be installed separately via `pip install sling` or `curl -sSL https://slingdata.io/install.sh | bash`. The dagster-sling package does not install it automatically.fixEnsure Sling CLI is installed and available on PATH.
affects: all
deprecatedThe `mode` field in replication config defaults to `full-refresh`. For incremental loads, set `mode: incremental` and provide a `primary_key` and optional `updated_at`.fixSet `mode: incremental` and required keys.
affects: all
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'sling'
Sling CLI is not installed.
fixRun `pip install sling` or install via Sling's installation script.
dagster_sling.errors.SlingConnectionError: Connection 'MY_CONN' not found in sling resources
Replication config references a connection name that is not defined in SlingResource.
fixAdd the connection to SlingResource with a matching 'name' field.
TypeError: 'module' object is not callable
Attempting to call `dagster_sling.sling_assets` which was removed in 0.20.0.
fixUse `build_sling_replication` instead.
Upgrade
Version history
0.29.9latest on PyPI · released Jun 11, 2026
Audit
Dependencies
dagsterrequiredCore dependency for Dagster integration
slingrequiredRequired for Sling CLI commands and replication