Skip to content

Commit

Permalink
Merge pull request feast-dev#45 from tmihalac/add-client-auth-grpc
Browse files Browse the repository at this point in the history
Client module-grpc
  • Loading branch information
tmihalac authored Jul 12, 2024
2 parents 35ede28 + 365d231 commit faebb8e
Show file tree
Hide file tree
Showing 13 changed files with 117 additions and 95 deletions.
4 changes: 2 additions & 2 deletions sdk/python/feast/feature_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
ServerType,
init_auth_manager,
init_security_manager,
str_to_auth_type,
str_to_auth_manager_type,
)


Expand Down Expand Up @@ -307,7 +307,7 @@ def start_server(
keep_alive_timeout: int,
registry_ttl_sec: int,
):
auth_type = str_to_auth_type(store.config.auth_config.type)
auth_type = str_to_auth_manager_type(store.config.auth_config.type)
init_security_manager(auth_type=auth_type, fs=store)
init_auth_manager(
auth_type=auth_type,
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/feast/feature_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ def __init__(
from feast.infra.registry.remote import RemoteRegistry

self._registry = RemoteRegistry(
registry_config, self.config.project, None, self.config.auth
registry_config, self.config.project, None, self.config.auth_config
)
else:
r = Registry(
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/feast/infra/offline_stores/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
RetrievalMetadata,
)
from feast.infra.registry.base_registry import BaseRegistry
from feast.permissions.client.auth_client_manager import create_flight_call_options
from feast.permissions.client.utils import create_flight_call_options
from feast.repo_config import FeastConfigBaseModel, RepoConfig
from feast.saved_dataset import SavedDatasetStorage

Expand Down
76 changes: 38 additions & 38 deletions sdk/python/feast/infra/registry/remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
AuthConfig,
NoAuthConfig,
)
from feast.permissions.client.auth_client_manager import (
create_grpc_auth_header,
from feast.permissions.client.utils import (
create_auth_header,
)
from feast.permissions.permission import Permission
from feast.project_metadata import ProjectMetadata
Expand Down Expand Up @@ -59,7 +59,7 @@ def apply_entity(self, entity: Entity, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyEntity(request=request, metadata=metadata)
else:
self.stub.ApplyEntity(request)
Expand All @@ -70,7 +70,7 @@ def delete_entity(self, name: str, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.DeleteEntity(request=request, metadata=metadata)
else:
self.stub.DeleteEntity(request)
Expand All @@ -81,7 +81,7 @@ def get_entity(self, name: str, project: str, allow_cache: bool = False) -> Enti
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetEntity(request=request, metadata=metadata)
else:
response = self.stub.GetEntity(request)
Expand All @@ -99,7 +99,7 @@ def list_entities(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListEntities(request=request, metadata=metadata)
else:
response = self.stub.ListEntities(request)
Expand All @@ -114,7 +114,7 @@ def apply_data_source(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyDataSource(request=request, metadata=metadata)
else:
self.stub.ApplyDataSource(request)
Expand All @@ -125,7 +125,7 @@ def delete_data_source(self, name: str, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.DeleteDataSource(request=request, metadata=metadata)
else:
self.stub.DeleteDataSource(request)
Expand All @@ -138,7 +138,7 @@ def get_data_source(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetDataSource(request=request, metadata=metadata)
else:
response = self.stub.GetDataSource(request)
Expand All @@ -156,7 +156,7 @@ def list_data_sources(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListDataSources(request=request, metadata=metadata)
else:
response = self.stub.ListDataSources(request)
Expand All @@ -173,7 +173,7 @@ def apply_feature_service(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyFeatureService(request=request, metadata=metadata)
else:
self.stub.ApplyFeatureService(request)
Expand All @@ -184,7 +184,7 @@ def delete_feature_service(self, name: str, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.DeleteFeatureService(request=request, metadata=metadata)
else:
self.stub.DeleteFeatureService(request)
Expand All @@ -197,7 +197,7 @@ def get_feature_service(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetFeatureService(request=request, metadata=metadata)
else:
response = self.stub.GetFeatureService(request)
Expand All @@ -215,7 +215,7 @@ def list_feature_services(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListFeatureServices(request=request, metadata=metadata)
else:
response = self.stub.ListFeatureServices(request)
Expand Down Expand Up @@ -250,7 +250,7 @@ def apply_feature_view(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyFeatureView(request=request, metadata=metadata)
else:
self.stub.ApplyFeatureView(request)
Expand All @@ -261,7 +261,7 @@ def delete_feature_view(self, name: str, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.DeleteFeatureView(request=request, metadata=metadata)
else:
self.stub.DeleteFeatureView(request)
Expand All @@ -274,7 +274,7 @@ def get_stream_feature_view(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetStreamFeatureView(
request=request, metadata=metadata
)
Expand All @@ -294,7 +294,7 @@ def list_stream_feature_views(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListStreamFeatureViews(
request=request, metadata=metadata
)
Expand All @@ -314,7 +314,7 @@ def get_on_demand_feature_view(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetOnDemandFeatureView(
request=request, metadata=metadata
)
Expand All @@ -334,7 +334,7 @@ def list_on_demand_feature_views(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListOnDemandFeatureViews(
request=request, metadata=metadata
)
Expand All @@ -354,7 +354,7 @@ def get_feature_view(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetFeatureView(request=request, metadata=metadata)
else:
response = self.stub.GetFeatureView(request)
Expand All @@ -372,7 +372,7 @@ def list_feature_views(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListFeatureViews(request=request, metadata=metadata)
else:
response = self.stub.ListFeatureViews(request)
Expand Down Expand Up @@ -405,7 +405,7 @@ def apply_materialization(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyMaterialization(request=request, metadata=metadata)
else:
self.stub.ApplyMaterialization(request)
Expand All @@ -421,7 +421,7 @@ def apply_saved_dataset(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyFeatureService(request=request, metadata=metadata)
else:
self.stub.ApplyFeatureService(request)
Expand All @@ -441,7 +441,7 @@ def get_saved_dataset(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetSavedDataset(request=request, metadata=metadata)
else:
response = self.stub.GetSavedDataset(request)
Expand All @@ -459,7 +459,7 @@ def list_saved_datasets(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListSavedDatasets(request=request, metadata=metadata)
else:
response = self.stub.ListSavedDatasets(request)
Expand All @@ -482,7 +482,7 @@ def apply_validation_reference(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyValidationReference(request=request, metadata=metadata)
else:
self.stub.ApplyValidationReference(request)
Expand All @@ -493,7 +493,7 @@ def delete_validation_reference(self, name: str, project: str, commit: bool = Tr
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.DeleteValidationReference(request=request, metadata=metadata)
else:
self.stub.DeleteValidationReference(request)
Expand All @@ -506,7 +506,7 @@ def get_validation_reference(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetValidationReference(
request=request, metadata=metadata
)
Expand All @@ -526,7 +526,7 @@ def list_validation_references(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListValidationReferences(
request=request, metadata=metadata
)
Expand All @@ -546,7 +546,7 @@ def list_project_metadata(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListProjectMetadata(request=request, metadata=metadata)
else:
response = self.stub.ListProjectMetadata(request)
Expand All @@ -559,7 +559,7 @@ def update_infra(self, infra: Infra, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.UpdateInfra(request=request, metadata=metadata)
else:
self.stub.UpdateInfra(request)
Expand All @@ -570,7 +570,7 @@ def get_infra(self, project: str, allow_cache: bool = False) -> Infra:
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetInfra(request=request, metadata=metadata)
else:
response = self.stub.GetInfra(request)
Expand Down Expand Up @@ -601,7 +601,7 @@ def apply_permission(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.ApplyPermission(request=request, metadata=metadata)
else:
self.stub.ApplyPermission(request)
Expand All @@ -612,7 +612,7 @@ def delete_permission(self, name: str, project: str, commit: bool = True):
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.DeletePermission(request=request, metadata=metadata)
else:
self.stub.DeletePermission(request)
Expand All @@ -625,7 +625,7 @@ def get_permission(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.GetPermission(request=request, metadata=metadata)
else:
response = self.stub.GetPermission(request)
Expand All @@ -643,7 +643,7 @@ def list_permissions(
)

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
response = self.stub.ListPermissions(request=request, metadata=metadata)
else:
response = self.stub.ListPermissions(request)
Expand All @@ -662,7 +662,7 @@ def refresh(self, project: Optional[str] = None):
request = RegistryServer_pb2.RefreshRequest(project=str(project))

if self.auth_config.type is not AuthType.NONE.value:
metadata = create_grpc_auth_header(self.auth_config)
metadata = create_auth_header(self.auth_config)
self.stub.Refresh(request=request, metadata=metadata)
else:
self.stub.Refresh(request)
Expand Down
6 changes: 3 additions & 3 deletions sdk/python/feast/offline_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
ServerType,
init_auth_manager,
init_security_manager,
str_to_auth_type,
str_to_auth_manager_type,
)
from feast.saved_dataset import SavedDatasetStorage

Expand All @@ -35,7 +35,7 @@ def __init__(self, store: FeatureStore, location: str, **kwargs):
super(OfflineServer, self).__init__(
location,
middleware=arrowflight_middleware(
str_to_auth_type(store.config.auth_config.type)
str_to_auth_manager_type(store.config.auth_config.type)
),
**kwargs,
)
Expand Down Expand Up @@ -449,7 +449,7 @@ def remove_dummies(fv: FeatureView) -> FeatureView:


def _init_auth_manager(store: FeatureStore):
auth_type = str_to_auth_type(store.config.auth_config.type)
auth_type = str_to_auth_manager_type(store.config.auth_config.type)
init_security_manager(auth_type=auth_type, fs=store)
init_auth_manager(
auth_type=auth_type,
Expand Down
Loading

0 comments on commit faebb8e

Please sign in to comment.