Expected Behavior
When an OnDemandFeatureView (ODFV) is defined with a specific sources list, the UDF passed to it should only receive columns that belong to the declared sources. Accessing columns outside the declared sources should either raise an error or be impossible.
Current Behavior
In pandas and python transformation modes, the UDF receives all feature columns present in the offline response at call time — including features from feature views that are not declared in sources. This means the UDF can silently depend on undeclared sources without any warning or error.
Steps to reproduce
- Define two feature views fv1 and fv2.
- Define an ODFV with sources=[fv1] (mode pandas or python).
- Write a UDF that reads a column belonging to fv2.
- Call get_online_features requesting features from both fv1, fv2, and the ODFV simultaneously.
- Observe that the UDF runs without error and silently uses the undeclared fv2 column.
Specifications
- Version: latest
- Platform: all
- Subsystem: OnDemandFeatureView, PandasTransformation, PythonTransformation
Possible Solution
Expected Behavior
When an OnDemandFeatureView (ODFV) is defined with a specific sources list, the UDF passed to it should only receive columns that belong to the declared sources. Accessing columns outside the declared sources should either raise an error or be impossible.
Current Behavior
In pandas and python transformation modes, the UDF receives all feature columns present in the offline response at call time — including features from feature views that are not declared in sources. This means the UDF can silently depend on undeclared sources without any warning or error.
Steps to reproduce
Specifications
Possible Solution