Feast CLI reference

Overview

The Feast CLI comes bundled with the Feast Python package. It is immediately available after installing Feast.

Usage: feast [OPTIONS] COMMAND [ARGS]...

  Feast CLI

  For more information, see our public docs at https://docs.feast.dev/

Options:
  -c, --chdir TEXT  Switch to a different feature repository directory before
                    executing the given subcommand.

  --help            Show this message and exit.

Commands:
  apply                    Create or update a feature store deployment
  configuration            Display Feast configuration
  delete                   Delete a Feast object from the registry
  entities                 Access entities
  feature-views            Access feature views
  init                     Create a new Feast repository
  materialize              Run a (non-incremental) materialization job to...
  materialize-incremental  Run an incremental materialization job to ingest...
  permissions              Access permissions
  registry-dump            Print contents of the metadata registry
  teardown                 Tear down deployed feature store infrastructure
  version                  Display Feast SDK version

Global Options

The Feast CLI provides one global top-level option that can be used with other commands

chdir (-c, --chdir)

This command allows users to run Feast CLI commands in a different folder from the current working directory.

Apply

Creates or updates a feature store deployment

Options:

  • --skip-source-validation: Skip validation of data sources (don't check if tables exist)

  • --skip-feature-view-validation: Skip validation of feature views. Use with caution as this skips important checks

What does Feast apply do?

  1. Feast will scan Python files in your feature repository and find all Feast object definitions, such as feature views, entities, and data sources.

  2. Feast will validate your feature definitions (e.g. for uniqueness of features). This validation can be skipped using the --skip-feature-view-validation flag if the type/validation system is being overly strict.

  3. Feast will sync the metadata about Feast objects to the registry. If a registry does not exist, then it will be instantiated. The standard registry is a simple protobuf binary file that is stored on disk (locally or in an object store).

  4. Feast CLI will create all necessary feature store infrastructure. The exact infrastructure that is deployed or configured depends on the provider configuration that you have set in feature_store.yaml. For example, setting local as your provider will result in a sqlite online store being created.

The --skip-feature-view-validation flag is particularly useful for On-Demand Feature Views (ODFVs) with complex transformations that may fail validation. However, use it with caution and please report any validation issues to the Feast team on GitHub.

circle-exclamation
circle-info

Important: feast apply only registers or updates objects found in your Python files. It does not delete objects that you've removed from your code. To delete objects from the registry, you must use the feast delete command or explicit delete methods in the Python SDK. See the Delete command below and the Registry documentation for details.

Configuration

Display the actual configuration being used by Feast, including both user-provided configurations and default configurations applied by Feast.

Delete

Delete a Feast object from the registry by its name.

What does feast delete do?

The feast delete command removes a Feast object (such as a feature view, entity, data source, feature service, etc.) from the registry. The command will:

  1. Search for the object by name across all object types (entities, feature views, feature services, data sources, saved datasets, validation references, etc.)

  2. Delete the first matching object found

  3. Remove any associated infrastructure

Example:

circle-exclamation
circle-info

If multiple objects have the same name across different types, feast delete will delete the first one it finds. For programmatic deletion with more control, use the Python SDK methods like store.delete_feature_view(), store.delete_feature_service(), etc.

Entities

List all registered entities

Feature views

List all registered feature views

Init

Creates a new feature repository

It's also possible to use other templates

or to set the name of the new project

Materialize

Load data from feature views into the online store.

With timestamps:

Without timestamps (uses current datetime):

Load data for specific feature views:

The --disable-event-timestamp flag is useful when your source data lacks event timestamp columns, allowing you to materialize all available data using the current datetime as the event timestamp.

Materialize incremental

Load data from feature views into the online store, beginning from either the previous materialize or materialize-incremental end date, or the beginning of time.

Permissions

List permissions

List all registered permission

verbose option describes the resources matching each configured permission:

Describe a permission

Describes the provided permission

Permission check

The permissions check command is used to identify resources that lack the appropriate permissions based on their type, name, or tags.

This command is particularly useful for administrators when roles, actions, or permissions have been modified or newly configured. By running this command, administrators can easily verify which resources and actions are not protected by any permission configuration, ensuring that proper security measures are in place.

List of the configured roles

List all the configured roles

verbose option describes the resources and actions permitted to each managed role:

Teardown

Tear down deployed feature store infrastructure

Version

Print the current Feast version

Last updated

Was this helpful?