{"id":23493,"library":"dagster-fivetran","title":"dagster-fivetran","description":"Package for integrating Fivetran with Dagster. Version 0.29.3; part of the Dagster ecosystem (1.13.3 core). Follows Dagster's release cadence (~monthly).","status":"active","version":"0.29.3","language":"python","source_language":"en","source_url":"https://github.com/dagster-io/dagster/tree/master/python_modules/libraries/dagster-fivetran","tags":["dagster","fivetran","etl","data-integration"],"install":[{"cmd":"pip install dagster-fivetran","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency; provides Dagster framework.","package":"dagster","optional":false},{"reason":"Required for cloud-specific features if using Dagster+.","package":"dagster-cloud","optional":true}],"imports":[{"note":"FivetranResource is a top-level export; importing from submodule may break in future versions.","wrong":"from dagster_fivetran.resources import FivetranResource","symbol":"FivetranResource","correct":"from dagster_fivetran import FivetranResource"},{"note":"Deprecated alias for FivetranResource; use FivetranResource going forward.","wrong":"","symbol":"fivetran_resource","correct":"from dagster_fivetran import fivetran_resource"},{"note":"Commonly used for asset discovery.","wrong":"","symbol":"load_assets_from_fivetran_instance","correct":"from dagster_fivetran import load_assets_from_fivetran_instance"},{"note":"build_fivetran_assets_definitions is a top-level export.","wrong":"from dagster_fivetran.assets import build_fivetran_assets_definitions","symbol":"build_fivetran_assets_definitions","correct":"from dagster_fivetran import build_fivetran_assets_definitions"}],"quickstart":{"code":"import os\nfrom dagster import AssetExecutionContext, Definitions, EnvVar\nfrom dagster_fivetran import FivetranResource, load_assets_from_fivetran_instance\n\nfivetran_instance = FivetranResource(\n    account_id=EnvVar(\"FIVETRAN_ACCOUNT_ID\"),\n    api_key=EnvVar(\"FIVETRAN_API_KEY\"),\n    api_secret=EnvVar(\"FIVETRAN_API_SECRET\"),\n)\n\n# Load all Fivetran connectors as assets\nfivetran_assets = load_assets_from_fivetran_instance(\n    fivetran_instance,\n    connector_to_group_fn=lambda conn: \"fivetran\",\n)\n\ndefs = Definitions(\n    assets=[fivetran_assets],\n    resources={\"fivetran\": fivetran_instance},\n)","lang":"python","description":"Define a Fivetran resource and load all connectors as Dagster assets."},"warnings":[{"fix":"Use `FivetranResource` class with `account_id`, `api_key`, `api_secret` parameters instead of `fivetran_resource`.","message":"In dagster-fivetran 0.23.0+, the `fivetran_resource` function was replaced with the `FivetranResource` class. `fivetran_resource` is deprecated and will be removed.","severity":"breaking","affected_versions":">=0.23.0"},{"fix":"Update type annotations to use the new metadata types.","message":"In dagster-fivetran 0.20.0+, the `FivetranOutput` and related types changed. Use `FivetranConnectorMetadata` instead.","severity":"breaking","affected_versions":">=0.20.0"},{"fix":"Set `sync_frequency` to `null` or `0` in Fivetran UI for connectors you want to manage via Dagster, or use `load_assets_from_fivetran_instance` with the `connector_filter` parameter to filter.","message":"Fivetran connectors are loaded as assets by default, but only connectors with `sync_frequency = 0` (manually triggered syncs) are materializable. Connectors with scheduled syncs will not be materializable via Dagster.","severity":"gotcha","affected_versions":"all"},{"fix":"Use `build_fivetran_assets_definitions` instead of `load_assets_from_fivetran_instance` for new code.","message":"`load_assets_from_fivetran_instance` is being phased out in favor of `build_fivetran_assets_definitions` which provides more flexibility.","severity":"deprecated","affected_versions":">=0.25.0"},{"fix":"Use `EnvVar(\"FIVETRAN_API_KEY\")` or `os.environ[\"FIVETRAN_API_KEY\"]` instead of hardcoded values.","message":"Fivetran API key and secret are sensitive. Do not hardcode them; use `EnvVar` or environment variables.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Upgrade dagster-fivetran: `pip install dagster-fivetran --upgrade` and use `from dagster_fivetran import FivetranResource`.","cause":"Using an older version of dagster-fivetran (<0.23.0) that uses `fivetran_resource` instead.","error":"ImportError: cannot import name 'FivetranResource' from 'dagster_fivetran'"},{"fix":"Add `resources={\"fivetran\": fivetran_instance}` to your `Definitions`.","cause":"The Fivetran resource is not included in the Definitions `resources` dict.","error":"dagster._core.errors.DagsterInvalidInvocationError: Resource 'fivetran' is not provided."},{"fix":"Check that `FIVETRAN_ACCOUNT_ID`, `FIVETRAN_API_KEY`, `FIVETRAN_API_SECRET` environment variables are set correctly.","cause":"Invalid Fivetran API credentials (account ID, API key, or secret).","error":"dagster_fivetran.errors.FivetranApiError: 401 Client Error: Unauthorized"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}