♻️ Simplify CORS configuration (#2429)

## AI Disclaimer

Using Codex with gpt-5.6-sol. Reviewed manually.
This commit is contained in:
Sebastián Ramírez
2026-08-10 23:42:37 +02:00
committed by GitHub
parent 781b283849
commit d85803bf64
4 changed files with 8 additions and 33 deletions
+1 -22
View File
@@ -1,9 +1,7 @@
import warnings
from typing import Annotated, Any, Literal, Self
from typing import Literal, Self
from pydantic import (
AnyUrl,
BeforeValidator,
EmailStr,
HttpUrl,
PostgresDsn,
@@ -13,14 +11,6 @@ from pydantic import (
from pydantic_settings import BaseSettings, SettingsConfigDict
def parse_cors(v: Any) -> list[str] | str:
if isinstance(v, str) and not v.startswith("["):
return [i.strip() for i in v.split(",") if i.strip()]
elif isinstance(v, list | str):
return v
raise ValueError(v)
class Settings(BaseSettings):
model_config = SettingsConfigDict(
# Use top level .env file (one level above ./backend/)
@@ -35,17 +25,6 @@ class Settings(BaseSettings):
FRONTEND_HOST: str = "http://localhost:5173"
FASTAPI_ENV: Literal["development"] | None = None
BACKEND_CORS_ORIGINS: Annotated[
list[AnyUrl] | str, BeforeValidator(parse_cors)
] = []
@computed_field # type: ignore[prop-decorator]
@property
def all_cors_origins(self) -> list[str]:
return [str(origin).rstrip("/") for origin in self.BACKEND_CORS_ORIGINS] + [
self.FRONTEND_HOST
]
PROJECT_NAME: str
SENTRY_DSN: HttpUrl | None = None
POSTGRES_SERVER: str