GeezerVison is showing github.com — feat: Add RBAC blog post to website by Copilot · Pull Request #5861 · feast-dev/feast
Conversation
Copilot
AI
commented
Jan 15, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
What this PR does / why we need it:
Adds comprehensive blog post announcing Feast's RBAC capabilities. Post covers:
- Permission model fundamentals: Resources, actions, and role-based policies
- Security architecture: Kubernetes RBAC and OIDC integration for distributed deployments
- Configuration examples: Python code snippets demonstrating Permission objects with name patterns, tags, and role assignments
- Operational guidance: CLI commands for inspecting and troubleshooting permissions
Example permission configuration from the post:
from feast.permissions.action import AuthzedAction, READ
# Grant lab team access to their feature views
Permission(
name="lab-reader",
types=[FeatureView],
name_patterns="lab.*", # Regex pattern matching
policy=RoleBasedPolicy(roles=["lab"]),
actions=[AuthzedAction.DESCRIBE, READ],
)
# Restrict high-risk data source writes to admin roles
Permission(
name="data-writer",
types=[DataSource],
required_tags={"risk_level": "high"},
policy=RoleBasedPolicy(roles=["admin", "data_team"]),
actions=[WRITE],
)
Post includes architecture diagram showing the four-layer distributed model (management, data, service, security/client layers) and clarifies that RBAC enforcement only applies when using remote Feast services.
Which issue(s) this PR fixes:
Addresses documentation request for RBAC feature announcement.
Misc
Authors: Danielle Martinoli and Francisco Javier Arceo
Original prompt
This section details on the original issue you should resolve
<issue_title>Add blog post on RBAC</issue_title>
<issue_description>Please make a blog post to the website about our RBAC capabilities.
Feast Launches RBAC! 🚀
What is the Feast Permission Model?
Feast now supports Role Based Access Controls (RBAC) so you can secure and govern your data.
If you ever wanted to securely partition your feature store across different teams, the new Feast permissions model is here to make that possible!
This powerful feature allows administrators to configure granular authorization policies, letting them decide which users and groups can access specific resources and what operations they can perform.
The default implementation is based on Role-Based Access Control (RBAC): user roles determine whether a user has permission to perform specific functions on registered resources.
Why is RBAC important for Feast?
Feature stores often operate on sensitive, proprietary data and we want to make sure teams are able to govern the access and control of that data thoughtfully, while benefiting from transparent code and an open source community like Feast.
That’s why we built RBAC using Kubernetes RBAC and OpenID Connect protocol (OIDC), ensuring secure, fine-grained access control in Feast.
What are the Benefits of using Feast Permissions?
Using the Feast Permissions Model offers two key benefits:
- Securely share and partition your feature store: grant each team only the minimum privileges necessary to access and manage the relevant resources.
- Adopt a Service-Oriented Architecture and leverage the benefits of a distributed system.
How Feast Uses RBAC
Permissions as Feast resources
The RBAC configuration is defined using a new Feast object type called “Permission”. Permissions are registered in the Feast registry and are defined and applied like all the other registry objects, using Python code.
A permission is defined by these three components:
- A resource: a Feast object that we want to secure against unauthorized access. It's identified by the matching type(s), a possibly empty list of name patterns and a dictionary of required tags.
- An action: a logical operation performed on the secured resource, such as managing the resource state with CREATE, DESCRIBE, UPDATE or DELETE, or accessing the resource data with READ and WRITE (differentiated by ONLINE and OFFLINE store types)
- A policy: the rule to enforce authorization decisions based on the current user. The default implementation uses role-based policies.
The resource types supported by the permission framework are those defining the customer feature store:
- Project
- Entity
- FeatureView
- OnDemandFeatureView
- BatchFeatureView
- StreamFeatureView
- FeatureService
- DataSource
- ValidationReference
- SavedDataset
- Permission
TIP: Check out the Permission APIs in the Feast Python API Documentation to learn more!
# This configuration grants users with the 'owner' role permissions
# to fetch resource status and read data from all the feature views
from feast.permissions.action import AuthzedAction, READ
# Note: READ is a global list including both READ_OFFLINE and
# READ_ONLINE values from AuthzedAction enum
# You do not have to specify `name_patterns`
Permission(
name="fv-owner",
types=[FeatureView],
policy=RoleBasedPolicy(roles=["owner"]),
actions=[AuthzedAction.DESCRIBE, READ],
)
# This configuration grants users with the 'lab' role permissions
# to fetch resource status and read data from all feature views
# named 'lab_stream_feature_view' or 'lab_feature_view'
from feast.permissions.action import AuthzedAction, READ
Permission(
name="lab-reader",
types=[FeatureView],
name_patterns=["lab_stream_feature_view", "lab_feature_view"],
policy=RoleBasedPolicy(roles=["lab"]),
actions=[AuthzedAction.DESCRIBE, READ],
)
# As an alternative, we can use Python regular expression patterns
# to grant the same permission to all feature views whose name
# starts by 'lab'
from feast.permissions.action import AuthzedAction, READ
Permission(
name="lab-reader",
types=[FeatureView],
name_patterns="lab.*", # Accepts both 'str' and 'list[str]' types
policy=RoleBasedPolicy(roles=["lab"]),
actions=[AuthzedAction.DESCRIBE, READ],
)
# This configuration grants users with the 'prod' role permissions
# to fetch resource status and read data from all feature views
# whose names include the '_prod_' word
from feast.permissions.action import AuthzedAction, READ
Permission(
name="prod-reader",
types=[FeatureView, FeatureService],
name_patterns=".*_prod_.*",
policy=RoleBasedPolicy(roles=["prod"]),
actions=[AuthzedAction.DESCRIBE, READ],
)
# This ...
</details>
<!-- START COPILOT CODING AGENT SUFFIX -->
- Fixes feast-dev/feast#5860
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for you](https://github.com/feast-dev/feast/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Copilot
AI
changed the title
[WIP] Add blog post on RBAC capabilities
feat: Add RBAC blog post to website
Jan 15, 2026
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jyejare
pushed a commit
to opendatahub-io/feast
that referenced
this pull request
Mar 9, 2026
jyejare
pushed a commit
to opendatahub-io/feast
that referenced
this pull request
Mar 9, 2026
Reviewers
1 more reviewer
Reviewers whose approvals may not affect merge requirements
Uh oh!
There was an error while loading. Please reload this page.
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|