Skip to content

feat: Allow default openlineage configuration#6467

Merged
franciscojavierarceo merged 2 commits into
feast-dev:masterfrom
jacob-bush-shopify:openlineage-config
Jun 3, 2026
Merged

feat: Allow default openlineage configuration#6467
franciscojavierarceo merged 2 commits into
feast-dev:masterfrom
jacob-bush-shopify:openlineage-config

Conversation

@jacob-bush-shopify

@jacob-bush-shopify jacob-bush-shopify commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

The default behaviour of openlineage is to print to the console. However, feast does not allow standard openlineage configuration. By omitting the transport by default, we maintain the same default behaviour of printing to the console, but give much greater flexibility to end users. For example, this allows composite transports, filtering of events, etc.

Which issue(s) this PR fixes:

Checks

  • I've made sure the tests are passing.
  • My commits are signed off (git commit -s)
  • My PR title follows conventional commits format

Testing Strategy

  • Unit tests
  • Integration tests
  • Manual tests
  • Testing is not required for this change

Manual 🎩

Configuring openlineage

openlineage:
  enabled: true

Current default behaviour

❯ feast apply                                       
/Users/jacobbush/tmp/feast_demos/openlineage/exact_bobcat/feature_repo/feature_definitions.py:27: DeprecationWarning: Entity value_type will be mandatory in the next release. Please specify a value_type for entity 'driver'.
  driver = Entity(name="driver", join_keys=["driver_id"])
Applying changes for project exact_bobcat
/Users/jacobbush/tmp/feast_demos/openlineage/.venv/lib/python3.13/site-packages/feast/feature_store.py:690: RuntimeWarning: On demand feature view is an experimental feature. This API is stable, but the functionality does not scale well for offline retrieval
  warnings.warn(
No changes to registry
INFO:openlineage.client.client:OpenLineageClient will use `console` transport
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:36:57.247434+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "vals_to_add", "uri": "feast://vals_to_add"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "", "description": "", "field_mapping": {}, "name": "vals_to_add", "source_type": "RequestSource", "tags": {}, "timestamp_field": ""}}, "inputFacets": {}, "name": "vals_to_add", "namespace": "exact_bobcat"}, {"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "driver_hourly_stats_source", "uri": "data/driver_stats.parquet"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "created", "description": "", "field_mapping": {}, "name": "driver_hourly_stats_source", "source_type": "FileSource", "tags": {}, "timestamp_field": "event_timestamp"}}, "inputFacets": {}, "name": "driver_hourly_stats_source", "namespace": "exact_bobcat"}, {"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "driver_stats_push_source", "uri": "feast://driver_stats_push_source"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "", "description": "", "field_mapping": {}, "name": "driver_stats_push_source", "source_type": "PushSource", "tags": {}, "timestamp_field": ""}}, "inputFacets": {}, "name": "driver_stats_push_source", "namespace": "exact_bobcat"}, {"facets": {"feast_entity": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastEntityFacet.json", "description": "", "join_keys": ["driver_id"], "name": "driver", "owner": "", "tags": {}, "value_type": "ValueType.UNKNOWN"}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "driver_id", "type": "ValueType.UNKNOWN"}]}}, "inputFacets": {}, "name": "driver", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feast_feature_views_exact_bobcat", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["driver"], "features": ["conv_rate", "acc_rate", "avg_daily_trips", "driver_metadata", "driver_config", "driver_profile"], "name": "driver_hourly_stats", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {"team": "driver_performance"}, "ttl_seconds": 86400}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "name": "driver_hourly_stats", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["driver"], "features": ["conv_rate", "acc_rate", "avg_daily_trips", "driver_metadata", "driver_config", "driver_profile"], "name": "driver_hourly_stats_fresh", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {"team": "driver_performance"}, "ttl_seconds": 86400}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "name": "driver_hourly_stats_fresh", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["__dummy"], "features": ["conv_rate_plus_val1", "conv_rate_plus_val2"], "name": "transformed_conv_rate_fresh", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {}, "ttl_seconds": 0}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "transformed_conv_rate_fresh", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["__dummy"], "features": ["conv_rate_plus_val1", "conv_rate_plus_val2"], "name": "transformed_conv_rate", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {}, "ttl_seconds": 0}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "transformed_conv_rate", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "265845fd-55e4-4c72-aa34-11a497460bd4"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:36:57.247949+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "inputFacets": {}, "name": "driver_hourly_stats", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v2", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v2' aggregates features from: driver_hourly_stats, transformed_conv_rate. Total features: 8."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 8, "feature_views": ["driver_hourly_stats", "transformed_conv_rate"], "logging_enabled": false, "name": "driver_activity_v2", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v2", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "1fc7c154-7ac2-4af5-94c0-1cf8684e2404"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:36:57.248255+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}]}}, "inputFacets": {}, "name": "driver_hourly_stats", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v1", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v1' aggregates features from: driver_hourly_stats, transformed_conv_rate. Total features: 3."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 3, "feature_views": ["driver_hourly_stats", "transformed_conv_rate"], "logging_enabled": false, "name": "driver_activity_v1", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v1", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "0e26db11-9fa2-4782-917e-0b91b1406f26"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:36:57.248473+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "inputFacets": {}, "name": "driver_hourly_stats_fresh", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate_fresh", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v3", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v3' aggregates features from: driver_hourly_stats_fresh, transformed_conv_rate_fresh. Total features: 8."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 8, "feature_views": ["driver_hourly_stats_fresh", "transformed_conv_rate_fresh"], "logging_enabled": false, "name": "driver_activity_v3", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v3", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "9e128fd1-41f6-43c6-8a97-2aba72ee4bac"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
No changes to infrastructure

With these changes, the only difference appears to be a warning log that there is no config. Fallback is still console transport.

❯ uv tool run --from ~/tmp/feast --with openlineage-python feast apply
Installed 70 packages in 172ms
/Users/jacobbush/tmp/feast_demos/openlineage/exact_bobcat/feature_repo/feature_definitions.py:27: DeprecationWarning: Entity value_type will be mandatory in the next release. Please specify a value_type for entity 'driver'.
  driver = Entity(name="driver", join_keys=["driver_id"])
Applying changes for project exact_bobcat
/Users/jacobbush/.cache/uv/archive-v0/K59LZTbHZV0ll_GEi5pWK/lib/python3.13/site-packages/feast/feature_store.py:871: RuntimeWarning: On demand feature view is an experimental feature. This API is stable, but the functionality does not scale well for offline retrieval
  warnings.warn(
No changes to registry
WARNING:openlineage.client.client:Couldn't find any OpenLineage transport configuration; will print events to console.
INFO:openlineage.client.client:OpenLineageClient will use `console` transport
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:40:32.735121+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "driver_hourly_stats_source", "uri": "data/driver_stats.parquet"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "created", "description": "", "field_mapping": {}, "name": "driver_hourly_stats_source", "source_type": "FileSource", "tags": {}, "timestamp_field": "event_timestamp"}}, "inputFacets": {}, "name": "driver_hourly_stats_source", "namespace": "exact_bobcat"}, {"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "vals_to_add", "uri": "feast://vals_to_add"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "", "description": "", "field_mapping": {}, "name": "vals_to_add", "source_type": "RequestSource", "tags": {}, "timestamp_field": ""}}, "inputFacets": {}, "name": "vals_to_add", "namespace": "exact_bobcat"}, {"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "driver_stats_push_source", "uri": "feast://driver_stats_push_source"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "", "description": "", "field_mapping": {}, "name": "driver_stats_push_source", "source_type": "PushSource", "tags": {}, "timestamp_field": ""}}, "inputFacets": {}, "name": "driver_stats_push_source", "namespace": "exact_bobcat"}, {"facets": {"feast_entity": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastEntityFacet.json", "description": "", "join_keys": ["driver_id"], "name": "driver", "owner": "", "tags": {}, "value_type": "ValueType.UNKNOWN"}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "driver_id", "type": "ValueType.UNKNOWN"}]}}, "inputFacets": {}, "name": "driver", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feast_feature_views_exact_bobcat", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["driver"], "features": ["conv_rate", "acc_rate", "avg_daily_trips", "driver_metadata", "driver_config", "driver_profile"], "name": "driver_hourly_stats", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {"team": "driver_performance"}, "ttl_seconds": 86400}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "name": "driver_hourly_stats", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["driver"], "features": ["conv_rate", "acc_rate", "avg_daily_trips", "driver_metadata", "driver_config", "driver_profile"], "name": "driver_hourly_stats_fresh", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {"team": "driver_performance"}, "ttl_seconds": 86400}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "name": "driver_hourly_stats_fresh", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["__dummy"], "features": ["conv_rate_plus_val1", "conv_rate_plus_val2"], "name": "transformed_conv_rate", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {}, "ttl_seconds": 0}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "transformed_conv_rate", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["__dummy"], "features": ["conv_rate_plus_val1", "conv_rate_plus_val2"], "name": "transformed_conv_rate_fresh", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {}, "ttl_seconds": 0}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "transformed_conv_rate_fresh", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "f25377d6-96cc-4577-903c-d5bbc6ca1f2d"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:40:32.735775+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "inputFacets": {}, "name": "driver_hourly_stats_fresh", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate_fresh", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v3", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v3' aggregates features from: driver_hourly_stats_fresh, transformed_conv_rate_fresh. Total features: 8."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 8, "feature_views": ["driver_hourly_stats_fresh", "transformed_conv_rate_fresh"], "logging_enabled": false, "name": "driver_activity_v3", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v3", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "96e5f3ec-1e6f-44bb-a858-4f317de97a97"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:40:32.736071+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "inputFacets": {}, "name": "driver_hourly_stats", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v2", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v2' aggregates features from: driver_hourly_stats, transformed_conv_rate. Total features: 8."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 8, "feature_views": ["driver_hourly_stats", "transformed_conv_rate"], "logging_enabled": false, "name": "driver_activity_v2", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v2", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "2ba25258-9211-4675-be18-2165ee857fa5"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:40:32.736344+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}]}}, "inputFacets": {}, "name": "driver_hourly_stats", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v1", "namespace": "exact_bobcat"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v1' aggregates features from: driver_hourly_stats, transformed_conv_rate. Total features: 3."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 3, "feature_views": ["driver_hourly_stats", "transformed_conv_rate"], "logging_enabled": false, "name": "driver_activity_v1", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v1", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "95cd461f-6638-4d0c-bd43-5b07910032d4"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
No changes to infrastructure

And if we create an openlineage.yml file in the same directory

transport:
  type: transform
  transformer_class: openlineage.client.transport.transform.JobNamespaceReplaceTransformer
  transformer_properties:
    new_job_namespace: new_value
  transport:
    type: console

Then we can see that the transform transport is used, and the job namespace is transformed to new_value

❯ uv tool run --from ~/tmp/feast --with openlineage-python feast apply
/Users/jacobbush/tmp/feast_demos/openlineage/exact_bobcat/feature_repo/feature_definitions.py:27: DeprecationWarning: Entity value_type will be mandatory in the next release. Please specify a value_type for entity 'driver'.
  driver = Entity(name="driver", join_keys=["driver_id"])
Applying changes for project exact_bobcat
/Users/jacobbush/.cache/uv/archive-v0/K59LZTbHZV0ll_GEi5pWK/lib/python3.13/site-packages/feast/feature_store.py:871: RuntimeWarning: On demand feature view is an experimental feature. This API is stable, but the functionality does not scale well for offline retrieval
  warnings.warn(
No changes to registry
INFO:openlineage.client.client:OpenLineageClient will use `transform` transport
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:41:44.654834+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "vals_to_add", "uri": "feast://vals_to_add"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "", "description": "", "field_mapping": {}, "name": "vals_to_add", "source_type": "RequestSource", "tags": {}, "timestamp_field": ""}}, "inputFacets": {}, "name": "vals_to_add", "namespace": "exact_bobcat"}, {"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "driver_stats_push_source", "uri": "feast://driver_stats_push_source"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "", "description": "", "field_mapping": {}, "name": "driver_stats_push_source", "source_type": "PushSource", "tags": {}, "timestamp_field": ""}}, "inputFacets": {}, "name": "driver_stats_push_source", "namespace": "exact_bobcat"}, {"facets": {"dataSource": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-1/DatasourceDatasetFacet.json#/$defs/DatasourceDatasetFacet", "name": "driver_hourly_stats_source", "uri": "data/driver_stats.parquet"}, "feast_dataSource": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastDataSourceFacet.json", "created_timestamp_field": "created", "description": "", "field_mapping": {}, "name": "driver_hourly_stats_source", "source_type": "FileSource", "tags": {}, "timestamp_field": "event_timestamp"}}, "inputFacets": {}, "name": "driver_hourly_stats_source", "namespace": "exact_bobcat"}, {"facets": {"feast_entity": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastEntityFacet.json", "description": "", "join_keys": ["driver_id"], "name": "driver", "owner": "", "tags": {}, "value_type": "ValueType.UNKNOWN"}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "driver_id", "type": "ValueType.UNKNOWN"}]}}, "inputFacets": {}, "name": "driver", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feast_feature_views_exact_bobcat", "namespace": "new_value"}, "outputs": [{"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["driver"], "features": ["conv_rate", "acc_rate", "avg_daily_trips", "driver_metadata", "driver_config", "driver_profile"], "name": "driver_hourly_stats_fresh", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {"team": "driver_performance"}, "ttl_seconds": 86400}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "name": "driver_hourly_stats_fresh", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["driver"], "features": ["conv_rate", "acc_rate", "avg_daily_trips", "driver_metadata", "driver_config", "driver_profile"], "name": "driver_hourly_stats", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {"team": "driver_performance"}, "ttl_seconds": 86400}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "name": "driver_hourly_stats", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["__dummy"], "features": ["conv_rate_plus_val1", "conv_rate_plus_val2"], "name": "transformed_conv_rate_fresh", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {}, "ttl_seconds": 0}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "transformed_conv_rate_fresh", "namespace": "exact_bobcat", "outputFacets": {}}, {"facets": {"feast_featureView": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureViewFacet.json", "description": "", "entities": ["__dummy"], "features": ["conv_rate_plus_val1", "conv_rate_plus_val2"], "name": "transformed_conv_rate", "offline_enabled": false, "online_enabled": true, "owner": "", "tags": {}, "ttl_seconds": 0}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "transformed_conv_rate", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "863f7b49-2a67-4ff0-8228-92a01cd8997b"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:41:44.656098+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}]}}, "inputFacets": {}, "name": "driver_hourly_stats", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v1", "namespace": "new_value"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v1' aggregates features from: driver_hourly_stats, transformed_conv_rate. Total features: 3."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 3, "feature_views": ["driver_hourly_stats", "transformed_conv_rate"], "logging_enabled": false, "name": "driver_activity_v1", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v1", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "282d9d48-c0ad-414b-ac18-6c7f6feb6e94"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:41:44.656792+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "inputFacets": {}, "name": "driver_hourly_stats_fresh", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate_fresh", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v3", "namespace": "new_value"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v3' aggregates features from: driver_hourly_stats_fresh, transformed_conv_rate_fresh. Total features: 8."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 8, "feature_views": ["driver_hourly_stats_fresh", "transformed_conv_rate_fresh"], "logging_enabled": false, "name": "driver_activity_v3", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"fields": [], "name": "driver_metadata", "type": "Map"}, {"fields": [], "name": "driver_config", "type": "Json"}, {"fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v3", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "84392575-4010-4592-8818-0304ba55e699"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
INFO:openlineage.client.transport.console:{"eventTime": "2026-06-03T13:41:44.657523+00:00", "eventType": "COMPLETE", "inputs": [{"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}]}}, "inputFacets": {}, "name": "driver_hourly_stats", "namespace": "exact_bobcat"}, {"facets": {"schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "inputFacets": {}, "name": "transformed_conv_rate", "namespace": "exact_bobcat"}], "job": {"facets": {"feast_project": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastProjectFacet.json", "offline_store_type": "", "online_store_type": "", "project_name": "exact_bobcat", "provider": "local", "registry_type": "file"}}, "name": "feature_service_driver_activity_v2", "namespace": "new_value"}, "outputs": [{"facets": {"documentation": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-1-0/DocumentationDatasetFacet.json#/$defs/DocumentationDatasetFacet", "description": "Feature Service 'driver_activity_v2' aggregates features from: driver_hourly_stats, transformed_conv_rate. Total features: 8."}, "feast_featureService": {"_producer": "feast", "_schemaURL": "https://feast.dev/spec/facets/1-0-0/FeastFeatureServiceFacet.json", "description": "", "feature_count": 8, "feature_views": ["driver_hourly_stats", "transformed_conv_rate"], "logging_enabled": false, "name": "driver_activity_v2", "owner": "", "tags": {}}, "schema": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-2-0/SchemaDatasetFacet.json#/$defs/SchemaDatasetFacet", "fields": [{"fields": [], "name": "conv_rate", "type": "Float32"}, {"fields": [], "name": "acc_rate", "type": "Float32"}, {"description": "Average daily trips", "fields": [], "name": "avg_daily_trips", "type": "Int64"}, {"description": "Driver metadata as key-value pairs", "fields": [], "name": "driver_metadata", "type": "Map"}, {"description": "Driver configuration as JSON", "fields": [], "name": "driver_config", "type": "Json"}, {"description": "Driver profile as a typed struct", "fields": [], "name": "driver_profile", "type": "Struct({name: String, age: String})"}, {"fields": [], "name": "conv_rate_plus_val1", "type": "Float64"}, {"fields": [], "name": "conv_rate_plus_val2", "type": "Float64"}]}}, "name": "driver_activity_v2", "namespace": "exact_bobcat", "outputFacets": {}}], "producer": "feast", "run": {"facets": {"tags": {"_producer": "feast", "_schemaURL": "https://openlineage.io/spec/facets/1-0-0/TagsRunFacet.json#/$defs/TagsRunFacet", "tags": [{"key": "openlineage_client_version", "source": "OPENLINEAGE_CLIENT", "value": "1.47.1"}]}}, "runId": "fcaffd2c-8b11-424d-b9f3-219ae91e20b2"}, "schemaURL": "https://openlineage.io/spec/2-0-2/OpenLineage.json#/$defs/RunEvent"}
No changes to infrastructure

Misc

- config.py: get_transport_config() returns None when transport_type is
  None, allowing OpenLineage SDK to use its own defaults
- config.py: update docstrings to reflect None default
- repo_config.py: change transport_type from StrictStr='console' to
  Optional[StrictStr]=None
- docs/reference/openlineage.md: update config table default
- 07-openlineage-and-materialization.md: update field reference table
- skills/references/configuration.md: update comment

Signed-off-by: Jacob Bush <jacob.bush@shopify.com>
Co-authored-by: AI (Pi/Claude Opus 4.6 [250k]) <noreply@pi.dev>
Signed-off-by: Jacob Bush <jacob.bush@shopify.com>
@jacob-bush-shopify jacob-bush-shopify changed the title [feat]: Allow default openlineage configuration feat: Allow default openlineage configuration Jun 3, 2026
@jacob-bush-shopify jacob-bush-shopify marked this pull request as ready for review June 3, 2026 13:44
@jacob-bush-shopify jacob-bush-shopify requested a review from a team as a code owner June 3, 2026 13:44

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 3 additional findings.

Open in Devin Review

@franciscojavierarceo franciscojavierarceo merged commit 276b6df into feast-dev:master Jun 3, 2026
39 checks passed
@jacob-bush-shopify jacob-bush-shopify deleted the openlineage-config branch June 3, 2026 16:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants