From acdd43b1f4785ea878b66cfc6130ceec6bcbddb2 Mon Sep 17 00:00:00 2001 From: iamprecieee Date: Tue, 18 Feb 2025 11:36:12 +0100 Subject: [PATCH 1/2] fix(config): resolve configuration mixup between allowed hosts and origins and add middleware - Correct env variable names for allowed hosts and allowed origins - Implement necessary middleware for CORS and Trusted hosts --- .env.example | 4 ++-- main.py | 3 ++- middleware.py | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 middleware.py diff --git a/.env.example b/.env.example index 8bafaa1..f54ec0b 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ # Sample setup for environmental variables -ALLOWED_ORIGINS=github.com,127.0.0.1,0.0.0.0,ping.telex.im -ALLOWED_HOSTS=https://github.com,http://127.0.0.1:8000,http://0.0.0.0:8000,https://ping.telex.im +ALLOWED_ORIGINS=https://github.com,http://127.0.0.1:8000,http://0.0.0.0:8000,http://localhost:8000,https://ping.telex.im +ALLOWED_HOSTS=github.com,127.0.0.1,0.0.0.0,localhost,ping.telex.im HOST=0.0.0.0 PORT=8000 RELOAD_VALUE=True \ No newline at end of file diff --git a/main.py b/main.py index d5870c8..0f94883 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,10 @@ from fastapi import FastAPI import uvicorn from config import settings +from middleware import middleware -app = FastAPI(docs_url="/") +app = FastAPI(docs_url="/", middleware=middleware) if __name__ == "__main__": reload_value = settings.reload_value.lower() == "true" diff --git a/middleware.py b/middleware.py new file mode 100644 index 0000000..6374c58 --- /dev/null +++ b/middleware.py @@ -0,0 +1,18 @@ +from config import settings +from fastapi.middleware import Middleware +from fastapi.middleware.cors import CORSMiddleware +from fastapi.middleware.trustedhost import TrustedHostMiddleware + + +middleware = ( + Middleware( + CORSMiddleware, + allow_origins=settings.allowed_origins.split(","), + allow_credentials=True, + allow_methods=["GET", "POST", "HEAD", "OPTIONS"] + ), + Middleware( + TrustedHostMiddleware, + allowed_hosts=settings.allowed_hosts.split(",") + ) +) \ No newline at end of file From 27bde961d3ca06e22a2938835f92a332933ce619 Mon Sep 17 00:00:00 2001 From: iamprecieee Date: Tue, 18 Feb 2025 11:41:09 +0100 Subject: [PATCH 2/2] refactor(config): Create directory for configuration files - Put config.py and middleware.py in a config directory under src - Update main.py to point to correct paths for import --- main.py | 4 ++-- src/config/__init__.py | 0 config.py => src/config/config.py | 0 middleware.py => src/config/middleware.py | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 src/config/__init__.py rename config.py => src/config/config.py (100%) rename middleware.py => src/config/middleware.py (94%) diff --git a/main.py b/main.py index 0f94883..af7a314 100644 --- a/main.py +++ b/main.py @@ -1,7 +1,7 @@ from fastapi import FastAPI import uvicorn -from config import settings -from middleware import middleware +from src.config.config import settings +from src.config.middleware import middleware app = FastAPI(docs_url="/", middleware=middleware) diff --git a/src/config/__init__.py b/src/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/config.py b/src/config/config.py similarity index 100% rename from config.py rename to src/config/config.py diff --git a/middleware.py b/src/config/middleware.py similarity index 94% rename from middleware.py rename to src/config/middleware.py index 6374c58..18c444b 100644 --- a/middleware.py +++ b/src/config/middleware.py @@ -1,4 +1,4 @@ -from config import settings +from .config import settings from fastapi.middleware import Middleware from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.trustedhost import TrustedHostMiddleware