Skip to content

feast init accepts project names incompatible with the local SQLite template #6808

Description

@angelo-lacson

Expected Behavior

A repository successfully created by feast init should work with its generated configuration, or the CLI should reject a project name that is incompatible with the selected template.

Current Behavior

The default local template accepts a hyphenated repository/project name:

feast init feast-smoke -t local

The command exits successfully and generates a repository whose feature_store.yaml contains:

project: feast-smoke

However, loading that generated repository fails because the local template uses the SQLite online store:

Value error, Project names for SQLite online stores cannot contain hyphens because they are used in table names.
at feature_store.yaml

This means feast init successfully generates a repository that cannot be used without manually editing its configuration.

Steps to Reproduce

feast init feast-smoke -t local
cd feast-smoke/feature_repo
python test_workflow.py

The failure occurs when FeatureStore(repo_path=".") loads the generated configuration.

Using an underscore succeeds through the complete local workflow:

feast init feast_smoke -t local
cd feast_smoke/feature_repo
python test_workflow.py

Existing Test Behavior

sdk/python/tests/unit/test_repo_operations_validate_feast_project_name.py explicitly considers hyphen-name valid, while the generated SQLite-backed local repository rejects it later.

Related History

Possible Solutions

Either:

  1. Make SQLite table-name generation safely support hyphenated Feast project names; or
  2. Reject hyphenated names early when feast init uses a SQLite-backed template, with a clear error; or
  3. Preserve the requested directory name while normalizing the generated Feast project name (for example, feast-smokefeast_smoke).

I would be happy to contribute the fix once maintainers confirm the preferred behavior.

Environment

  • Feast: 0.66.1.dev6+g5ad559239
  • Python: 3.10.12
  • OS: Ubuntu 22.04.5 LTS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions