From 427d293fb924101246a04d1aaf35566eb9b8927e Mon Sep 17 00:00:00 2001 From: Pablo Pardo Garcia Date: Fri, 21 Nov 2025 16:37:06 +0100 Subject: [PATCH 1/3] add skip_tls_verification and NO_AUTH mechanism --- README.md | 2 +- src/glassflow/etl/models/source.py | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d1909a6..e39b758 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ pipeline_config = { "http://my.kafka.broker:9093" ], "protocol": "PLAINTEXT", - "skip_auth": True + "mechanism": "NO_AUTH" }, "topics": [ { diff --git a/src/glassflow/etl/models/source.py b/src/glassflow/etl/models/source.py index d7d32a4..90b51f2 100644 --- a/src/glassflow/etl/models/source.py +++ b/src/glassflow/etl/models/source.py @@ -1,4 +1,5 @@ from typing import Any, List, Optional +import warnings from pydantic import BaseModel, Field, ValidationInfo, field_validator, model_validator @@ -18,6 +19,7 @@ class KafkaMechanism(CaseInsensitiveStrEnum): SCRAM_SHA_512 = "SCRAM-SHA-512" PLAIN = "PLAIN" GSSAPI = "GSSAPI" + NO_AUTH = "NO_AUTH" class SchemaField(BaseModel): @@ -163,7 +165,13 @@ class KafkaConnectionParams(BaseModel): kerberos_keytab: Optional[str] = Field(default=None) kerberos_realm: Optional[str] = Field(default=None) kerberos_config: Optional[str] = Field(default=None) - skip_auth: bool = Field(default=False) + skip_auth: bool = Field( + default=False, + exclude=True, + description="skip_auth is deprecated, use mechanism \"NO_AUTH\" instead or \ + set skip_tls_verification to True if you want to skip TLS verification" + ) + skip_tls_verification: bool = Field(default=False) @model_validator(mode="before") def empty_str_to_none(values): @@ -178,6 +186,23 @@ def update(self, patch: "KafkaConnectionParamsPatch") -> "KafkaConnectionParams" merged_dict = {**current_dict, **patch_dict} return KafkaConnectionParams.model_validate(merged_dict) + @model_validator(mode="after") + def correct_skip_auth(self) -> "KafkaConnectionParams": + """ + While the skip_auth field is deprecated, + we need to make sure the mechanism is NO_AUTH if skip_auth is True + """ + if self.skip_auth: + if self.mechanism is not None and self.mechanism != KafkaMechanism.NO_AUTH: + warnings.warn( + f"Mechanism is set to {self.mechanism}, but skip_auth is True. \ + Setting mechanism to NO_AUTH.", + category=RuntimeWarning, + stacklevel=1 + ) + self.mechanism = KafkaMechanism.NO_AUTH + return self + class SourceType(CaseInsensitiveStrEnum): KAFKA = "kafka" From 62c86c118ab6b87b024e428b48ae7ce7a4a59acc Mon Sep 17 00:00:00 2001 From: Pablo Pardo Garcia Date: Fri, 21 Nov 2025 16:38:00 +0100 Subject: [PATCH 2/3] format code --- src/glassflow/etl/models/source.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/glassflow/etl/models/source.py b/src/glassflow/etl/models/source.py index 90b51f2..d991d83 100644 --- a/src/glassflow/etl/models/source.py +++ b/src/glassflow/etl/models/source.py @@ -1,5 +1,5 @@ -from typing import Any, List, Optional import warnings +from typing import Any, List, Optional from pydantic import BaseModel, Field, ValidationInfo, field_validator, model_validator @@ -168,8 +168,8 @@ class KafkaConnectionParams(BaseModel): skip_auth: bool = Field( default=False, exclude=True, - description="skip_auth is deprecated, use mechanism \"NO_AUTH\" instead or \ - set skip_tls_verification to True if you want to skip TLS verification" + description='skip_auth is deprecated, use mechanism "NO_AUTH" instead or \ + set skip_tls_verification to True if you want to skip TLS verification', ) skip_tls_verification: bool = Field(default=False) @@ -198,7 +198,7 @@ def correct_skip_auth(self) -> "KafkaConnectionParams": f"Mechanism is set to {self.mechanism}, but skip_auth is True. \ Setting mechanism to NO_AUTH.", category=RuntimeWarning, - stacklevel=1 + stacklevel=1, ) self.mechanism = KafkaMechanism.NO_AUTH return self From fae6a06640befd02651747d69e2604964894053d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 21 Nov 2025 15:39:16 +0000 Subject: [PATCH 3/3] chore: bump version to 3.5.2 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index d5c0c99..87ce492 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.5.1 +3.5.2