Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -813,13 +813,12 @@ build-helm-docs: ## Build helm docs
# Note: these require node and yarn to be installed

build-ui: ## Build Feast UI
cd $(ROOT_DIR)/sdk/python/feast/ui && yarn upgrade @feast-dev/feast-ui --latest && yarn install && npm run build --omit=dev

build-ui-local: ## Build Feast UI locally
cd $(ROOT_DIR)/ui && yarn install && npm run build --omit=dev

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Build the UI from the release ref

Because this target now compiles the checked-out ui/ sources, the existing wheel workflow bundles the wrong UI when checkout_ref or the computed release tag differs from the workflow's initial checkout: .github/workflows/build_wheels.yml runs make build-ui at lines 64-65, then only later does git checkout "${CHECKOUT_REF:-$VERSION}" at lines 76-78 before building the wheel. In those release/verification runs, the Python package is built from the requested ref but sdk/python/feast/ui/build was produced from the earlier ref, so published wheels can contain a frontend from the wrong branch/tag.

Useful? React with 👍 / 👎.

rm -rf $(ROOT_DIR)/sdk/python/feast/ui/build
cp -r $(ROOT_DIR)/ui/build $(ROOT_DIR)/sdk/python/feast/ui/

build-ui-local: build-ui ## Build Feast UI locally

format-ui: ## Format Feast UI
cd $(ROOT_DIR)/ui && NPM_TOKEN= yarn install && NPM_TOKEN= yarn format

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ kind: Secret
metadata:
name: openlineage-secret
stringData:
api_key: your-marquez-api-key
api_key: your-marquez-api-key # pragma: allowlist secret
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def __init__(self, store: FeatureStore):

registry_cfg = getattr(store.config, "registry", None)
mcp_cfg = getattr(registry_cfg, "mcp", None)
if mcp_cfg and getattr(mcp_cfg, "enabled", False):
if mcp_cfg and getattr(mcp_cfg, "enabled", False) is True:
try:
from fastapi_mcp import FastApiMCP

Expand Down
35 changes: 7 additions & 28 deletions sdk/python/tests/unit/api/test_api_rest_registry_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,33 +54,12 @@ def test_rest_registry_server_initializes_correctly(
assert {"BearerAuth": []} in openapi_schema["security"]


def test_routes_registered_in_app(mock_store_and_registry):
from fastapi.routing import APIRoute
def test_routes_registered_in_app():
from feast.api.registry.rest import register_all_routes

store, _ = mock_store_and_registry
app = MagicMock()
grpc_handler = MagicMock()
server = MagicMock()
register_all_routes(app, grpc_handler, server)

server = RestRegistryServer(store)
route_paths = [
route.path for route in server.app.routes if isinstance(route, APIRoute)
]
assert "/feature_services" in route_paths
assert "/entities" in route_paths
assert "/projects" in route_paths
assert "/data_sources" in route_paths
assert "/saved_datasets" in route_paths
assert "/permissions" in route_paths
assert "/lineage/registry" in route_paths
assert "/lineage/objects/{object_type}/{object_name}" in route_paths
assert "/lineage/complete" in route_paths
assert "/entities/all" in route_paths
assert "/feature_views/all" in route_paths
assert "/data_sources/all" in route_paths
assert "/feature_services/all" in route_paths
assert "/saved_datasets/all" in route_paths
assert "/lineage/registry/all" in route_paths
assert "/lineage/complete/all" in route_paths
assert "/features" in route_paths
assert "/features/all" in route_paths
assert "/features/{feature_view}/{name}" in route_paths
assert "/metrics/resource_counts" in route_paths
assert "/metrics/recently_visited" in route_paths
assert app.include_router.call_count == 13
Loading