examples/rbac-local/README.md
RBAC demo with local environment.
The demo creates the following components:
feast init, later adapted to use the oidc authorization against the sample realm.Run the sample notebooks to setup the environment:
Note: For MacOs users, you must set this environment variable before launching the notebook server:
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
Once the environment is defined, we can use the client.ipynb notebook to verify how the behavior changes according to the configured user.
In particular, given the configured permissions:
| Permission | Types | Name pattern | Actions | Roles |
|---|---|---|---|---|
| read_permission | ALL | DESCRIBE | reader | |
| write_fresh_permission | FeatureView1 | .*_fresh | WRITE_ONLINE | fresh_writer |
| offline_permission | FeatureView, OnDemandFeatureView, FeatureService | CRUD, WRITE_OFFLINE, QUERY_OFFLINE | batch_admin | |
| admin_permission | ALL | ALL | store_admin |
and the user roles defined in Keycloak:
| User | Roles |
|---|---|
| reader | reader |
| writer | fresh_writer |
| batch_admin | batch_admin |
| admin | store_admin |
We should expect the following behavior for each test section of the client notebook:
| User | Basic validation | Historical | Materialization | Online | Stream push |
|---|---|---|---|---|---|
| reader | Ok | Denied | Denied | Denied | Denied |
| writer | Empty | Denied | Ok | Denied | Denied |
| batch_admin | No Entities and Permissions | Ok | Denied | Denied | Denied |
| admin | Ok | Ok | Ok | Ok | Ok |