From 44b2838ed71bb887a4468ba3d5c1396801e1b5e5 Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Tue, 3 Oct 2023 12:47:02 +0200 Subject: [PATCH] fix(chalice): configurable CH config --- ee/api/chalicelib/utils/ch_client.py | 5 ++++- ee/api/env.default | 3 ++- ee/api/schemas_ee.py | 11 +++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ee/api/chalicelib/utils/ch_client.py b/ee/api/chalicelib/utils/ch_client.py index 1c739deaa..3d6329bad 100644 --- a/ee/api/chalicelib/utils/ch_client.py +++ b/ee/api/chalicelib/utils/ch_client.py @@ -19,13 +19,16 @@ class ClickHouseClient: __client = None def __init__(self): + extra_args = {} + if config("CH_COMPRESSION", cast=bool, default=True): + extra_args["compression"] = "lz4" self.__client = clickhouse_driver.Client(host=config("ch_host"), database=config("ch_database", default="default"), user=config("ch_user", default="default"), password=config("ch_password", default=""), port=config("ch_port", cast=int), settings=settings, - compression='lz4') \ + **extra_args) \ if self.__client is None else self.__client def __enter__(self): diff --git a/ee/api/env.default b/ee/api/env.default index a35f6f451..15150dd10 100644 --- a/ee/api/env.default +++ b/ee/api/env.default @@ -74,4 +74,5 @@ ASSIST_JWT_EXPIRATION=144000 ASSIST_JWT_SECRET= KAFKA_SERVERS=kafka.db.svc.cluster.local:9092 KAFKA_USE_SSL=false -SCH_DELETE_DAYS=30 \ No newline at end of file +SCH_DELETE_DAYS=30 +CH_COMPRESSION=true \ No newline at end of file diff --git a/ee/api/schemas_ee.py b/ee/api/schemas_ee.py index 48ab5bbeb..7910777ee 100644 --- a/ee/api/schemas_ee.py +++ b/ee/api/schemas_ee.py @@ -21,6 +21,17 @@ class Permissions(str, Enum): class CurrentContext(schemas.CurrentContext): permissions: List[Optional[Permissions]] = Field(...) + @root_validator(pre=True) + def remove_unsupported_perms(cls, values): + if values.get("permissions") is not None: + perms = [] + _perms = [item.value for item in Permissions] + for p in values["permissions"]: + if p in _perms: + perms.append(p) + values["permissions"] = perms + return values + class RolePayloadSchema(BaseModel): name: str = Field(..., min_length=1, max_length=40)