You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: Reject reserved chars in FV names and make version parser resilient
Block `@` and `:` in feature view names via ensure_valid() to prevent
ambiguous version-qualified reference parsing. Make _parse_feature_ref()
fall back gracefully for legacy FV names containing `@` instead of
raising, and update Go's ParseFeatureReference to only strip `@` suffixes
matching `v<N>`.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/reference/alpha-feature-view-versioning.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -208,6 +208,18 @@ Version history tracking in the registry (listing versions, pinning, `--no-promo
208
208
209
209
For the complete design, concurrency semantics, and feature service interactions, see the [Feature View Versioning RFC](../rfcs/feature-view-versioning.md).
210
210
211
+
## Naming Restrictions
212
+
213
+
Feature references use a structured format: `feature_view_name@v<N>:feature_name`. To avoid
214
+
ambiguity, the following characters are reserved and must not appear in feature view or feature names:
215
+
216
+
- **`@`** — Reserved as the version delimiter (e.g., `driver_stats@v2:trips_today`). `feast apply`
217
+
will reject feature views with `@` in their name. If you have existing feature views with `@` in
218
+
their names, they will continue to work for unversioned reads, but we recommend renaming them to
219
+
avoid ambiguity with the `@v<N>` syntax.
220
+
- **`:`** — Reserved as the separator between feature view name and feature name in fully qualified
Copy file name to clipboardExpand all lines: docs/rfcs/feature-view-versioning.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -437,6 +437,7 @@ Feature services work with versioned feature views when the online versioning fl
437
437
- **Offline store versioning.** This RFC covers online reads only. Versioned historical retrieval is out of scope.
438
438
- **Version deletion.** There is no mechanism to prune old versions. This could be added later if registries grow large.
439
439
- **Cross-version joins.** Joining features from different versions of the same feature view in `get_historical_features` is not supported.
440
+
- **Naming restrictions.** Feature view names must not contain `@` or `:` since these characters are reserved for version-qualified references (`fv@v2:feature`). `feast apply` rejects new feature views with these characters. The parser falls back gracefully for legacy feature views that already contain `@` in their names — unrecognized `@` suffixes are treated as part of the name rather than raising errors.
0 commit comments