From d1e462bb37c06d7f229f212c5252e47f2d9484f3 Mon Sep 17 00:00:00 2001 From: Akshat Jain Date: Mon, 10 Mar 2025 15:45:11 +0530 Subject: [PATCH] chore: Add env for handling uploads SSL Termination (#6722) --- .env.example | 3 +++ apiserver/.env.example | 5 ++++- apiserver/plane/settings/storage.py | 8 +++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 8b11217b5..378a61727 100644 --- a/.env.example +++ b/.env.example @@ -38,3 +38,6 @@ USE_MINIO=1 # Nginx Configuration NGINX_PORT=80 + +# Force HTTPS for handling SSL Termination +MINIO_ENDPOINT_SSL=0 diff --git a/apiserver/.env.example b/apiserver/.env.example index 33ef5c4cd..50a1c58a7 100644 --- a/apiserver/.env.example +++ b/apiserver/.env.example @@ -59,4 +59,7 @@ APP_BASE_URL= # Hard delete files after days -HARD_DELETE_AFTER_DAYS=60 \ No newline at end of file +HARD_DELETE_AFTER_DAYS=60 + +# Force HTTPS for handling SSL Termination +MINIO_ENDPOINT_SSL=0 \ No newline at end of file diff --git a/apiserver/plane/settings/storage.py b/apiserver/plane/settings/storage.py index c843e9af4..a757d12f3 100644 --- a/apiserver/plane/settings/storage.py +++ b/apiserver/plane/settings/storage.py @@ -32,6 +32,12 @@ class S3Storage(S3Boto3Storage): ) or os.environ.get("MINIO_ENDPOINT_URL") if os.environ.get("USE_MINIO") == "1": + + # Determine protocol based on environment variable + if os.environ.get("MINIO_ENDPOINT_SSL") == "1": + endpoint_protocol = "https" + else: + endpoint_protocol = request.scheme if request else "http" # Create an S3 client for MinIO self.s3_client = boto3.client( "s3", @@ -39,7 +45,7 @@ class S3Storage(S3Boto3Storage): aws_secret_access_key=self.aws_secret_access_key, region_name=self.aws_region, endpoint_url=( - f"{request.scheme}://{request.get_host()}" + f"{endpoint_protocol}://{request.get_host()}" if request else self.aws_s3_endpoint_url ),