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.915 runs
installs and imports cleanly · install 0.0s · import 3.453s · 133MB
glibcpy 3.10–3.915 runs
installs and imports cleanly · install 12.6s · import 3.206s · 129MB
135MB installed
● package 135MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
AirbyteResource
✓ from dagster_airbyte import AirbyteResource
load_assets_from_airbyte_instance
✓ from dagster_airbyte import load_assets_from_airbyte_instance
AirbyteSyncAssetFactory
✓ from dagster_airbyte import AirbyteSyncAssetFactory
Used for more granular control over asset definitions, e.g., custom asset keys.
This quickstart demonstrates how to define Airbyte connections as a Dagster resource and load all available Airbyte syncs as Dagster assets using `load_assets_from_airbyte_instance`. It also shows how a Dagster asset can depend on an Airbyte-managed asset. Ensure your Airbyte instance is running and accessible from where Dagster is executed, and configure credentials via environment variables.
import os
from dagster import Definitions, asset
from dagster_airbyte import AirbyteResource, load_assets_from_airbyte_instance
# Configure Airbyte connection via environment variables for security
AIRBYTE_HOST = os.environ.get('AIRBYTE_HOST', 'localhost')
AIRBYTE_PORT = os.environ.get('AIRBYTE_PORT', '8000')
AIRBYTE_USERNAME = os.environ.get('AIRBYTE_USERNAME', 'airbyte') # Default for local Airbyte
AIRBYTE_PASSWORD = os.environ.get('AIRBYTE_PASSWORD', 'password') # Default for local Airbyte
# Instantiate the Airbyte resource
airbyte_resource = AirbyteResource(
host=AIRBYTE_HOST,
port=AIRBYTE_PORT,
username=AIRBYTE_USERNAME,
password=AIRBYTE_PASSWORD
)
# Load assets from your Airbyte instance
# By default, this will load assets for all connections in Airbyte
airbyte_assets = load_assets_from_airbyte_instance(airbyte_resource)
# Example of a downstream Dagster asset that depends on an Airbyte asset
@asset
def my_downstream_asset(my_airbyte_table):
# 'my_airbyte_table' would be automatically available if an Airbyte connection
# produces an asset with this key (e.g., 'airbyte/source_name/table_name')
# In a real scenario, you'd specify dependencies more explicitly.
print(f"Processing data from {my_airbyte_table}")
return 'processed_data'
# Combine assets into Dagster Definitions
defs = Definitions(
assets=[*airbyte_assets, my_downstream_asset],
resources={
"airbyte": airbyte_resource
}
)
# To run this, save as a Python file (e.g., 'airbyte_pipeline.py')
# Then, from your terminal, navigate to the directory and run:
# dagster dev -f airbyte_pipeline.py
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'dagster_airbyte'
The `dagster-airbyte` package is not installed in the Python environment where Dagster is running.
fixInstall the package: `pip install dagster-airbyte`
dagster.core.errors.DagsterInvariantViolationError: Could not connect to Airbyte at http://localhost:8000. Please ensure that Airbyte is running and accessible.
Dagster's `AirbyteResource` failed to establish a connection to the specified Airbyte API endpoint. This often means Airbyte is not running or the network path is blocked.
fix1. Verify the Airbyte instance is actively running. 2. Check the `host` and `port` configured in your `AirbyteResource` to ensure they are correct and reachable from where Dagster is running. 3. Check for firewall rules or network issues.
airbyte_api.errors.UnprocessableEntity: Authentication failed. Please check your username and password.
The credentials (username, password) provided to the `AirbyteResource` are incorrect for authenticating with the Airbyte API.
fixDouble-check the `AIRBYTE_USERNAME` and `AIRBYTE_PASSWORD` environment variables (or direct resource configuration) against your Airbyte instance's security settings. For local Airbyte, default credentials are often `airbyte`/`password`.
dagster._core.errors.DagsterInvalidConfigError: Error validating config for resource 'airbyte': Missing required config field 'host'.
The `AirbyteResource` was not properly configured with required parameters like `host`, `port`, `username`, or `password`.
fixEnsure all required configuration parameters (`host`, `port`, `username`, `password`) are provided when instantiating `AirbyteResource`. It's recommended to use environment variables for sensitive credentials.
Upgrade
Version history
0.29.9latest on PyPI · released Jun 11, 2026
Audit
Dependencies
dagsterrequiredCore Dagster library required for orchestration and asset definition.
airbyte-apirequiredPython client for interacting with the Airbyte API.