Skip to content

Commit

Permalink
Post-merge fixes for asymmetric encryption
Browse files Browse the repository at this point in the history
GitOrigin-RevId: eb9c4c29e3627380aaf2c4e9c7867e7e77de3061
  • Loading branch information
misberner committed May 14, 2024
1 parent 1895674 commit 279a99d
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 5 deletions.
1 change: 1 addition & 0 deletions requirements/base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ docker==6.1.2
kubernetes==28.1.0
opentelemetry-distro==0.44b0
opentelemetry-exporter-prometheus==0.44b0
pycryptodome>=3.19,<4
pydantic==1.10.13
python_dateutil>=2.8.0
pyyaml==6.0.1
Expand Down
11 changes: 8 additions & 3 deletions src/gretel_client/_hybrid/asymmetric.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@

class AsymmetricCredentialsEncryption(BaseCredentialsEncryption):

_projects_api: ProjectsApi
_asymmetric_key_metadata: ConfigAsymmetricKeyMetadata
_projects_api: Optional[ProjectsApi]
_asymmetric_key_metadata: Optional[ConfigAsymmetricKeyMetadata]

def __init__(
self,
projects_api: ProjectsApi,
*,
projects_api: Optional[ProjectsApi] = None,
asymmetric_key_metadata: Optional[ConfigAsymmetricKeyMetadata] = None,
):
self._projects_api = projects_api
Expand All @@ -37,6 +38,10 @@ def apply(self, credentials: dict, *, project_guid: Optional[str] = None):
raise ValueError(
"can not apply asymmetric encryption for connections not specifying a project ID"
)
if not self._projects_api:
raise ValueError(
"encryption mechanism is not configured for dynamic retrieval of asymmetric key"
)

project = self._projects_api.get_project(
project_guid, expand=["cluster"]
Expand Down
4 changes: 3 additions & 1 deletion src/gretel_client/_hybrid/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,9 @@ def __init__(
self._creds_encryption = (
creds_encryption
if creds_encryption is not None
else AsymmetricCredentialsEncryption(session.get_v1_api(ProjectsV1Api))
else AsymmetricCredentialsEncryption(
projects_api=session.get_v1_api(ProjectsV1Api)
)
)
self._deployment_user = deployment_user
self._default_cluster_guid = default_cluster_guid
Expand Down
2 changes: 1 addition & 1 deletion src/gretel_client/cli/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ def create(
)

encryption_provider = AsymmetricCredentialsEncryption(
projects_v1_api, asymmetric_key_metadata=cluster.config.asymmetric_key
asymmetric_key_metadata=cluster.config.asymmetric_key
)

if conn.get("encrypted_credentials") is not None:
Expand Down

0 comments on commit 279a99d

Please sign in to comment.