FF: restructure and edit#3312
Conversation
🛡️ Jit Security Scan Results✅ No security findings were detected in this PR
Security scan by Jit
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit b5c5666. Configure here.
dwdougherty
left a comment
There was a problem hiding this comment.
Apart from the issues already identified by Bugbot, LGTM.
|
|
||
| To create, inspect, update, or delete workspaces, see [Manage workspaces]({{< relref "/develop/ai/featureform/manage-workspace" >}}). | ||
|
|
||
| ## The resource graph |
There was a problem hiding this comment.
You decide if you think it's necessary to mention this at the concepts level, but it might be helpful to explain that Feature Form's planner converts the resource graph—which is a logical, declarative representation of a workspace's feature engineering pipeline—into a task DAG that is executed by Feature Form such that the actual state of the workspace is reflected in the users' data infrastructure (e.g. Snowflake).
There was a problem hiding this comment.
There's also the Feature Form catalog to mention on this point: it shows where logical resources (e.g. datasets) exist as physical tables in providers (e.g. Snowflake (offline provider) and/or Redis (online provider).
|
|
||
| - **Entities** identify the real-world objects features describe, such as a `customer` or `order`. Other resources join on the entity's key column. | ||
| - **Datasets** point at an existing table, view, or file on an offline store and make it visible to the graph. The data itself stays where it lives; Feature Form just registers a handle to it. | ||
| - **Transformations** produce new datasets from existing ones, expressed as SQL or as a Spark job. A transformation describes the shape of the output; the compute that runs it is supplied by a provider. |
There was a problem hiding this comment.
"... or PySpark ..." is more accurate given SQL and Python (i.e. PySpark) are the 2 query languages Feature Form supports.
Currently, SQL is the only query language Feature Form supports as PySpark is currently under new development, so perhaps we should mark PySpark as something that will be included in a feature release.
| ) | ||
| ``` | ||
|
|
||
| ### Definitions files and `ff apply` {#definitions-files-and-ff-apply} |
There was a problem hiding this comment.
I might mention that ff is the Feature Form CLI tool that supports all the operations necessary for creating/updating:
- RBAC role bindings
- workspaces
- resources
- serving
- etc.
| @@ -0,0 +1,142 @@ | |||
| --- | |||
| title: Manage workspaces | |||
| description: Create, verify access to, monitor, and delete Redis Feature Form workspaces with the ff CLI. | |||
There was a problem hiding this comment.
I'm not sure if this page is meant to only show the CLI, but if that isn't the intention, I might at least mention that the dashboard also has the ability to managed workspaces.
| The tasks on this page require one of two roles: | ||
|
|
||
| - A global admin (`global_admin`) creates workspaces and grants access. | ||
| - A workspace admin (`workspace_admin`) verifies their access, runs health checks, and updates or deletes the workspace. |
There was a problem hiding this comment.
We're currently debating removing the workspace.delete permission from workspace_admin, so I might advise we remove "... or deletes ..." here.
|
|
Adds PR #3312 to evidence trails for 8 capabilities. Notable changes: - Depth cap / prioritisation graduates 🟡 → 🟢 (2nd distinct PR) - New worked example under Approval-over-open-finding: dwdougherty's explicit-carveout LGTM later defanged by the larger restructure - Bot calibration: bugbot 3/3 valid on this PR (1 fixed in-branch, 2 stale via restructure) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
mich-elle-luna
left a comment
There was a problem hiding this comment.
thank you! just a few suggestions
| - **Training sets** join one or more features with a label by entity key and time, so an offline training job reads a single point-in-time-correct table instead of stitching inputs together by hand. The point-in-time alignment prevents data leakage — features whose values weren't actually known at the label's timestamp. | ||
| - **Feature views** group related features for an entity behind a shared definition, materialization policy, and serving contract. They're the primary interface model-serving systems use to read feature values at inference time, and the only graph resource downstream applications interact with directly. | ||
|
|
||
| The following example definitions file shows how the vocabulary above appears as code. |
There was a problem hiding this comment.
I think code comments in this python file might be nice to have (people jump to the code blocks and read them first a lot)
|
|
||
| ## Author a definitions file | ||
|
|
||
| Redis Feature Form treats a Python definitions file as the source of a desired resource graph. The example below declares a single workflow end to end, from a Postgres dataset through to a Redis-backed feature view. |
There was a problem hiding this comment.
maybe some code comments here or a little more detail than 'single workflow' to tell the reader what they are seeing in this code
| --redis-port 12345 | ||
| ``` | ||
|
|
||
| In the quickstart definitions file, the feature view references this provider with `inference_store="demo_redis"`. See the [Redis documentation](https://redis.io/docs/latest/) for deployment options. |
There was a problem hiding this comment.
maybe there is a better link we can give here
| weight: 50 | ||
| --- | ||
|
|
||
| Most Feature Form work after the first apply is iterative: edit the definitions file, preview the delta, apply, and verify. For the full apply mechanics and failure modes, see [Define and deploy features]({{< relref "/develop/ai/featureform/define-and-deploy-features" >}}). |
There was a problem hiding this comment.
| Most Feature Form work after the first apply is iterative: edit the definitions file, preview the delta, apply, and verify. For the full apply mechanics and failure modes, see [Define and deploy features]({{< relref "/develop/ai/featureform/define-and-deploy-features" >}}). | |
| After the first ff apply, most changes will be iterative: edit the definitions file, preview the delta, apply, and verify. For the full apply mechanics and failure modes, see [Define and deploy features]({{< relref "/develop/ai/featureform/define-and-deploy-features" >}}). |

Note
Low Risk
Low-risk documentation-only restructure, but several new pages contain empty front matter (e.g., missing
title/linkTitle) which could affect site navigation/build output.Overview
Moves the provider/secret-provider/workspace CLI documentation out of
streaming.mdinto new dedicated pages: a fullregister-providers.mdguide and a smallermanage-workspace.mdreference.Adds several new FeatureForm docs stubs (
concepts.md,configure-auth.md,define-and-deploy-features.md,query-data.md,reference.md,serve-features.md,update-features.md) that currently only include front matter placeholders, and leavesstreaming.mdeffectively empty aside from its header.Reviewed by Cursor Bugbot for commit b5c5666. Bugbot is set up for automated code reviews on this repo. Configure here.