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
{{ message }}
Repository navigation
feat: Implement RegistryServer.Proto RPC with RBAC-filtered response #6558
The Proto RPC is defined in the RegistryServer protobuf service definition but is not implemented on the server side, causing RemoteRegistry.proto() calls to fail with UNIMPLEMENTED. The method was intentionally removed to prevent bypassing RBAC, since a raw passthrough of proxied_registry.proto() returns the entire registry without any permission checks.
Problem
RemoteRegistry.proto() calls stub.Proto(Empty()) which fails because the server never implements the RPC.
This breaks any code path that relies on BaseRegistry.proto() when using a remote registry (e.g., cache initialization in CachingRegistry, registry refresh, metrics collection).
Simply re-adding return self.proxied_registry.proto() would reintroduce the RBAC bypass — all objects (entities, feature views, data sources, permissions, projects, etc.) would be returned regardless of the caller's authorization.
Proposed Solution
Implement RegistryServer.Proto by assembling the RegistryProto response from individual RBAC-filtered list calls, consistent with how every other RPC on RegistryServer enforces permissions:
Use permitted_resources() with AuthzedAction.DESCRIBE for each object type (projects, entities, data sources, feature views, feature services, saved datasets, permissions, etc.).
Construct and return a RegistryProto containing only objects the caller is authorized to see.
This ensures:
The proto service contract is honored (no UNIMPLEMENTED error).
RemoteRegistry works correctly as a BaseRegistry implementation.
RBAC is enforced — callers only see objects they have DESCRIBE access to.
Activity
feat: Implement RegistryServer.Proto RPC with RBAC-filtered response
feat: Implement RegistryServer.Proto RPC with RBAC-filtered response (#…
feat: Implement RegistryServer.Proto RPC with RBAC-filtered response (f…
feat: Retrieve historical features from BigQuery without entity_df (#…
chore(release): release 0.65.0
chore(release): release 0.65.0