diff --git a/lib/dl_connector_bundle_chs3/dl_connector_bundle_chs3/chs3_base/core/settings.py b/lib/dl_connector_bundle_chs3/dl_connector_bundle_chs3/chs3_base/core/settings.py index b86a24582..02fd7547d 100644 --- a/lib/dl_connector_bundle_chs3/dl_connector_bundle_chs3/chs3_base/core/settings.py +++ b/lib/dl_connector_bundle_chs3/dl_connector_bundle_chs3/chs3_base/core/settings.py @@ -29,7 +29,14 @@ class DeprecatedFileS3ConnectorSettings(DeprecatedConnectorSettingsBase): # This means that the value must be set explicitly to preserve caches between restarts and instances +class _RootSettings(dl_settings.BaseRootSettings): + S3_ENDPOINT_URL: str = NotImplemented + FILE_UPLOADER_S3_PERSISTENT_BUCKET_NAME: str = NotImplemented + + class FileS3ConnectorSettingsBase(dl_settings.BaseSettings): + model_config = pydantic.ConfigDict(alias_generator=dl_settings.prefix_alias_generator("CONN_FILE_")) + SECURE: bool = True HOST: str PORT: int = 8443 @@ -38,9 +45,17 @@ class FileS3ConnectorSettingsBase(dl_settings.BaseSettings): S3_ACCESS_KEY_ID: str = pydantic.Field(repr=False) S3_SECRET_ACCESS_KEY: str = pydantic.Field(repr=False) - S3_ENDPOINT: str - S3_BUCKET: str REPLACE_SECRET_SALT: str = pydantic.Field(repr=False, default_factory=lambda: str(uuid.uuid4())) # ^ Note that this is used in a query, which, in turn, is used in a cache key at the moment # This means that the value must be set explicitly to preserve caches between restarts and instances + + root: _RootSettings = pydantic.Field(default_factory=_RootSettings) + + @property + def S3_ENDPOINT(self) -> str: + return self.root.S3_ENDPOINT_URL + + @property + def BUCKET(self) -> str: + return self.root.FILE_UPLOADER_S3_PERSISTENT_BUCKET_NAME diff --git a/lib/dl_connector_chyt/dl_connector_chyt/core/settings.py b/lib/dl_connector_chyt/dl_connector_chyt/core/settings.py index a2999ec26..4a1c95aed 100644 --- a/lib/dl_connector_chyt/dl_connector_chyt/core/settings.py +++ b/lib/dl_connector_chyt/dl_connector_chyt/core/settings.py @@ -4,6 +4,7 @@ ) import attr +import pydantic import pydantic_settings from dl_configs.connectors_settings import DeprecatedConnectorSettingsBase @@ -65,6 +66,8 @@ class CHYTConnectorSettings(ConnectorSettings, DatasourceTemplateSettingsMixin): type: str = CONNECTION_TYPE_CHYT.value + model_config = pydantic.ConfigDict(alias_generator=dl_settings.prefix_alias_generator("CONN_CHYT_")) + PUBLIC_CLIQUES: Annotated[ tuple[str, ...], dl_settings.split_validator(","), diff --git a/lib/dl_connector_chyt/pyproject.toml b/lib/dl_connector_chyt/pyproject.toml index 1194c9d85..9b21d56cd 100644 --- a/lib/dl_connector_chyt/pyproject.toml +++ b/lib/dl_connector_chyt/pyproject.toml @@ -24,6 +24,7 @@ dl-sqlalchemy-chyt = {path = "../dl_sqlalchemy_chyt"} dl-type-transformer = {path = "../dl_type_transformer"} dl-utils = {path = "../dl_utils"} marshmallow = "*" +pydantic = "*" pydantic-settings = "*" python = ">=3.10, <3.13" sqlalchemy = "*"