Is your feature request related to a problem? Please describe.
With the python feature server, there should be a way to list various objects by type and filter them by tags.
Describe the solution you'd like
Feature server endpoints should be added for listing each of the following object types -
- DataSource
- Entity
- FeatureService
- FeatureView
- OnDemandFeatureView
- StreamFeatureView
The user should have the option of filtering by tags and/or bypassing cache where supported.
Describe alternatives you've considered
I considered adding tag filtering to the existing /get-online-features endpoint, but this would be insufficient.
Additional context
The feast UI & CLI already allow for filtering by tags.
Here's an example of what an addition to feature_server.py might look like -
from feast.protos.feast.registry.RegistryServer_pb2 import ListFeatureViewsRequest
@app.post("/list-feature-views")
def list_feature_views(body=Depends(get_body)):
try:
request = ListFeatureViewsRequest()
if body:
request = ListFeatureViewsRequest(**json.loads(body))
return store.list_batch_feature_views(
tags=request.tags, allow_cache=request.allow_cache
)
except Exception as e:
# Print the original exception on the server side
logger.exception(traceback.format_exc())
# Raise HTTPException to return the error message to the client
raise HTTPException(status_code=500, detail=str(e))
with the above endpoint, one could list all feature-views -
curl -X POST "http://localhost:6566/list-feature-views"
or filter the list by tag(s) -
curl -X POST \
"http://localhost:6566/list-feature-views" \
-d '{"tags": {"team": "driver_performance"}}'
Is your feature request related to a problem? Please describe.
With the python feature server, there should be a way to list various objects by type and filter them by tags.
Describe the solution you'd like
Feature server endpoints should be added for listing each of the following object types -
The user should have the option of filtering by tags and/or bypassing cache where supported.
Describe alternatives you've considered
I considered adding tag filtering to the existing
/get-online-featuresendpoint, but this would be insufficient.Additional context
The feast UI & CLI already allow for filtering by tags.
Here's an example of what an addition to
feature_server.pymight look like -with the above endpoint, one could list all feature-views -
curl -X POST "http://localhost:6566/list-feature-views"or filter the list by tag(s) -