diff --git a/docs/content/api/modules.json.gz b/docs/content/api/modules.json.gz
index 4cd3a4eefdce4..2ae9e555ae1e3 100644
Binary files a/docs/content/api/modules.json.gz and b/docs/content/api/modules.json.gz differ
diff --git a/docs/content/api/searchindex.json.gz b/docs/content/api/searchindex.json.gz
index cfb62ce78b37d..4dd89b7c0de52 100644
Binary files a/docs/content/api/searchindex.json.gz and b/docs/content/api/searchindex.json.gz differ
diff --git a/docs/content/api/sections.json.gz b/docs/content/api/sections.json.gz
index 88bb67976f532..0d4ae7894c810 100644
Binary files a/docs/content/api/sections.json.gz and b/docs/content/api/sections.json.gz differ
diff --git a/docs/content/integrations/fivetran/fivetran.mdx b/docs/content/integrations/fivetran/fivetran.mdx
index 2c61ea9917b23..75ca5a9f122c9 100644
--- a/docs/content/integrations/fivetran/fivetran.mdx
+++ b/docs/content/integrations/fivetran/fivetran.mdx
@@ -158,6 +158,36 @@ Note that `super()` is called in each of the overridden methods to generate the
You can pass an instance of the custom to the decorator or the factory.
+### Fetching column-level metadata for Fivetran assets
+
+Dagster allows you to emit column-level metadata, like [column schema](/concepts/metadata-tags/asset-metadata/table-metadata#attaching-column-schema) and [column lineage](/concepts/metadata-tags/asset-metadata/column-level-lineage), as [materialization metadata](/concepts/metadata-tags/asset-metadata).
+
+With this metadata, you can view documentation in Dagster for all columns in your Fivetran connector tables.
+
+To enable this feature, call on the returned by the `sync_and_poll()` call on the resource.
+
+```python file=/integrations/fivetran/fetch_column_metadata_fivetran_assets.py
+from dagster_fivetran import FivetranWorkspace, fivetran_assets
+
+import dagster as dg
+
+fivetran_workspace = FivetranWorkspace(
+ account_id=dg.EnvVar("FIVETRAN_ACCOUNT_ID"),
+ api_key=dg.EnvVar("FIVETRAN_API_KEY"),
+ api_secret=dg.EnvVar("FIVETRAN_API_SECRET"),
+)
+
+
+@fivetran_assets(
+ connector_id="fivetran_connector_id",
+ workspace=fivetran_workspace,
+)
+def fivetran_connector_assets(
+ context: dg.AssetExecutionContext, fivetran: FivetranWorkspace
+):
+ yield from fivetran.sync_and_poll(context=context).fetch_column_metadata()
+```
+
### Load Fivetran assets from multiple workspaces
Definitions from multiple Fivetran workspaces can be combined by instantiating multiple resources and merging their specs. This lets you view all your Fivetran assets in a single asset graph:
diff --git a/docs/docs-beta/docs/integrations/libraries/fivetran.md b/docs/docs-beta/docs/integrations/libraries/fivetran.md
index 33baaa8275c07..52260e12fb39b 100644
--- a/docs/docs-beta/docs/integrations/libraries/fivetran.md
+++ b/docs/docs-beta/docs/integrations/libraries/fivetran.md
@@ -76,6 +76,16 @@ Note that `super()` is called in each of the overridden methods to generate the
You can pass an instance of the custom to the decorator or the factory.
+### Fetching column-level metadata for Fivetran assets
+
+Dagster allows you to emit column-level metadata, like [column schema](/guides/build/create-asset-pipelines/metadata#standard-metadata-types) and [column lineage](/guides/build/create-asset-pipelines/metadata#column-lineage), as [materialization metadata](/guides/build/create-asset-pipelines/metadata#runtime-metadata).
+
+With this metadata, you can view documentation in Dagster for all columns in your Fivetran connector tables.
+
+To enable this feature, call on the returned by the `sync_and_poll()` call on the resource.
+
+
+
### Load Fivetran assets from multiple workspaces
Definitions from multiple Fivetran workspaces can be combined by instantiating multiple resources and merging their specs. This lets you view all your Fivetran assets in a single asset graph:
diff --git a/docs/next/public/objects.inv b/docs/next/public/objects.inv
index 8ecbfbc885ef2..4be2596309306 100644
Binary files a/docs/next/public/objects.inv and b/docs/next/public/objects.inv differ
diff --git a/docs/sphinx/sections/api/apidocs/libraries/dagster-fivetran.rst b/docs/sphinx/sections/api/apidocs/libraries/dagster-fivetran.rst
index de1e266b70ef9..2cfcca3ca970f 100644
--- a/docs/sphinx/sections/api/apidocs/libraries/dagster-fivetran.rst
+++ b/docs/sphinx/sections/api/apidocs/libraries/dagster-fivetran.rst
@@ -19,6 +19,8 @@ Assets (Fivetran API)
.. autofunction:: build_fivetran_assets_definitions
+.. autoclass:: dagster_fivetran.fivetran_event_iterator.FivetranEventIterator
+
Legacy
======
diff --git a/examples/docs_beta_snippets/docs_beta_snippets/integrations/fivetran/fetch_column_metadata_fivetran_assets.py b/examples/docs_beta_snippets/docs_beta_snippets/integrations/fivetran/fetch_column_metadata_fivetran_assets.py
new file mode 100644
index 0000000000000..c1527d9e709f9
--- /dev/null
+++ b/examples/docs_beta_snippets/docs_beta_snippets/integrations/fivetran/fetch_column_metadata_fivetran_assets.py
@@ -0,0 +1,19 @@
+from dagster_fivetran import FivetranWorkspace, fivetran_assets
+
+import dagster as dg
+
+fivetran_workspace = FivetranWorkspace(
+ account_id=dg.EnvVar("FIVETRAN_ACCOUNT_ID"),
+ api_key=dg.EnvVar("FIVETRAN_API_KEY"),
+ api_secret=dg.EnvVar("FIVETRAN_API_SECRET"),
+)
+
+
+@fivetran_assets(
+ connector_id="fivetran_connector_id",
+ workspace=fivetran_workspace,
+)
+def fivetran_connector_assets(
+ context: dg.AssetExecutionContext, fivetran: FivetranWorkspace
+):
+ yield from fivetran.sync_and_poll(context=context).fetch_column_metadata()
diff --git a/examples/docs_beta_snippets/docs_beta_snippets_tests/test_integration_files_load.py b/examples/docs_beta_snippets/docs_beta_snippets_tests/test_integration_files_load.py
index dafb3a55714eb..075a492eab506 100644
--- a/examples/docs_beta_snippets/docs_beta_snippets_tests/test_integration_files_load.py
+++ b/examples/docs_beta_snippets/docs_beta_snippets_tests/test_integration_files_load.py
@@ -24,6 +24,7 @@
f"{snippets_folder}/fivetran/multiple_fivetran_workspaces.py",
f"{snippets_folder}/fivetran/representing_fivetran_assets.py",
f"{snippets_folder}/fivetran/sync_and_materialize_fivetran_assets.py",
+ f"{snippets_folder}/fivetran/fetch_column_metadata_fivetran_assets.py",
f"{snippets_folder}/airbyte_cloud/customize_airbyte_cloud_asset_defs.py",
f"{snippets_folder}/airbyte_cloud/customize_airbyte_cloud_translator_asset_spec.py",
f"{snippets_folder}/airbyte_cloud/multiple_airbyte_cloud_workspaces.py",
diff --git a/examples/docs_snippets/docs_snippets/integrations/fivetran/fetch_column_metadata_fivetran_assets.py b/examples/docs_snippets/docs_snippets/integrations/fivetran/fetch_column_metadata_fivetran_assets.py
new file mode 100644
index 0000000000000..c1527d9e709f9
--- /dev/null
+++ b/examples/docs_snippets/docs_snippets/integrations/fivetran/fetch_column_metadata_fivetran_assets.py
@@ -0,0 +1,19 @@
+from dagster_fivetran import FivetranWorkspace, fivetran_assets
+
+import dagster as dg
+
+fivetran_workspace = FivetranWorkspace(
+ account_id=dg.EnvVar("FIVETRAN_ACCOUNT_ID"),
+ api_key=dg.EnvVar("FIVETRAN_API_KEY"),
+ api_secret=dg.EnvVar("FIVETRAN_API_SECRET"),
+)
+
+
+@fivetran_assets(
+ connector_id="fivetran_connector_id",
+ workspace=fivetran_workspace,
+)
+def fivetran_connector_assets(
+ context: dg.AssetExecutionContext, fivetran: FivetranWorkspace
+):
+ yield from fivetran.sync_and_poll(context=context).fetch_column_metadata()