{"id":21096,"library":"dagster-sling","title":"dagster-sling","description":"Dagster integration with Sling for ETL/ELT tasks, enabling ingestion and replication of data between databases and file systems. Current version 0.29.2, released as part of Dagster 1.13.2. Follows Dagster's release cadence.","status":"active","version":"0.29.2","language":"python","source_language":"en","source_url":"https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-sling","tags":["dagster","sling","etl","elt","data-replication"],"install":[{"cmd":"pip install dagster-sling","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency for Dagster integration","package":"dagster","optional":false},{"reason":"Required for Sling CLI commands and replication","package":"sling","optional":false}],"imports":[{"note":"SlingResource is at top-level module, not in a submodule","wrong":"from dagster_sling.resources import SlingResource","symbol":"SlingResource","correct":"from dagster_sling import SlingResource"},{"note":"","symbol":"build_sling_replication","correct":"from dagster_sling import build_sling_replication"}],"quickstart":{"code":"from dagster_sling import SlingResource, build_sling_replication\nfrom dagster import Definitions, asset\n\nreplication_config = {\n    \"source\": {\n        \"conn\": \"postgres://user:pass@host:5432/db\",\n        \"streams\": {\n            \"public.users\": None\n        }\n    },\n    \"target\": {\n        \"conn\": \"snowflake://user:pass@account/db/schema?warehouse=wh&role=role\"\n    },\n    \"defaults\": {\n        \"mode\": \"full-refresh\",\n        \"object\": \"{stream_schema}_{stream_table}\"\n    }\n}\n\nsling_resource = SlingResource(connections=[\n    {\"name\": \"MY_POSTGRES\", \"conn\": \"postgresql://user:pass@host:5432/db\"},\n    {\"name\": \"MY_SNOWFLAKE\", \"conn\": \"snowflake://user:pass@account/db/schema?warehouse=wh&role=role\"}\n])\n\nassets = build_sling_replication(\n    replication_config=replication_config,\n    resource_def_key=\"sling\",\n)\n\ndefs = Definitions(assets=assets, resources={\"sling\": sling_resource})","lang":"python","description":"Define a Sling replication config and build assets from it using SlingResource."},"warnings":[{"fix":"Define connections in SlingResource with a 'name' field, then use 'conn: NAME' in the replication config.","message":"The replication config's source/target connections must reference connections defined in SlingResource by name. Hardcoding inline connection strings in the config is not supported.","severity":"gotcha","affected_versions":">=0.20.0"},{"fix":"Update imports and usage: from dagster_sling import SlingResource, build_sling_replication","message":"In 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`.","severity":"breaking","affected_versions":"<0.20.0 -> >=0.20.0"},{"fix":"Ensure Sling CLI is installed and available on PATH.","message":"Sling 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.","severity":"gotcha","affected_versions":"all"},{"fix":"Set `mode: incremental` and required keys.","message":"The `mode` field in replication config defaults to `full-refresh`. For incremental loads, set `mode: incremental` and provide a `primary_key` and optional `updated_at`.","severity":"deprecated","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run `pip install sling` or install via Sling's installation script.","cause":"Sling CLI is not installed.","error":"ModuleNotFoundError: No module named 'sling'"},{"fix":"Add the connection to SlingResource with a matching 'name' field.","cause":"Replication config references a connection name that is not defined in SlingResource.","error":"dagster_sling.errors.SlingConnectionError: Connection 'MY_CONN' not found in sling resources"},{"fix":"Use `build_sling_replication` instead.","cause":"Attempting to call `dagster_sling.sling_assets` which was removed in 0.20.0.","error":"TypeError: 'module' object is not callable"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}