[Beta] Web UI

Warning: This is an experimental feature. To our knowledge, this is stable, but there are still rough edges in the experience. Contributions are welcome!

Overview

The Feast Web UI allows users to explore their feature repository through a Web UI. It includes functionality such as:

  • Browsing Feast objects (feature views, entities, data sources, feature services, and saved datasets) and their relationships

  • Searching and filtering for Feast objects by tags

Sample UI

Usage

There are several ways to use the Feast Web UI.

Feast CLI

The easiest way to get started is to run the feast ui command within a feature repository:

Output of feast ui --help:

This will spin up a Web UI on localhost which automatically refreshes its view of the registry every registry_ttl_sec

Importing as a module to integrate with an existing React App

This is the recommended way to use Feast UI for teams maintaining their own internal UI for their deployment of Feast.

Start with bootstrapping a React app with create-react-app

Then, in your app folder, install Feast UI and optionally its peer dependencies. Assuming you use yarn

Edit index.js in the React app to use Feast UI.

When you start the React app, it will look for projects-list.json to find a list of your projects. The JSON should look something like this.

  • Note - registryPath only supports a file location or a url.

Then start the React App

Customization

The advantage of importing Feast UI as a module is in the ease of customization. The <FeastUI> component exposes a feastUIConfigs prop thorough which you can customize the UI. Currently it supports a few parameters.

Fetching the Project List

By default, the Feast UI fetches the project list from the app root path. You can use projectListPromise to provide a promise that overrides where it's fetched from.

Custom Tabs

You can add custom tabs for any of the core Feast objects through the tabsRegistry.

Examples of custom tabs can be found in the ui/custom-tabs folder.

Last updated

Was this helpful?