feat: FB_GRAFANA_PUBLIC_URL + FB_SESSION_COOKIE_SECURE in Settings
This commit is contained in:
@@ -5,6 +5,12 @@ from functools import lru_cache
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def _env_bool(value: str) -> bool:
|
||||
"""Interpretiert einen Env-Wert als Wahrheitswert. Truthy sind (case-
|
||||
insensitiv) 1/true/yes/on; alles andere (inkl. leer) ist False."""
|
||||
return value.strip().lower() in ("1", "true", "yes", "on")
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class Settings:
|
||||
database_url: str
|
||||
@@ -18,6 +24,8 @@ class Settings:
|
||||
horizon_days: int
|
||||
env_file: Path
|
||||
grafana_url: str
|
||||
grafana_public_url: str
|
||||
session_cookie_secure: bool
|
||||
|
||||
|
||||
@lru_cache
|
||||
@@ -38,4 +46,12 @@ def get_settings() -> Settings:
|
||||
# 4 Task 2). Default passt zum Container-Mountpunkt "/data/.env".
|
||||
env_file=Path(e("FB_ENV_FILE", "/data/.env")),
|
||||
grafana_url=e("FB_GRAFANA_URL", "http://localhost:3000"),
|
||||
# Öffentliche Grafana-Basis-URL für Browser-Links/iframes hinter einem
|
||||
# Reverse Proxy (z.B. 'https://fb.wolfundlaemmlein.de/grafana/'). Leer =
|
||||
# Direktbetrieb, Templates fallen auf http://<host>:8097 zurück. NICHT
|
||||
# zu verwechseln mit grafana_url (intern, Server→Grafana).
|
||||
grafana_public_url=e("FB_GRAFANA_PUBLIC_URL", ""),
|
||||
# Session-Cookie mit secure-Flag ausliefern (nur über HTTPS gültig).
|
||||
# Für den Reverse-Proxy-Betrieb; Default False für lokalen HTTP-Zugriff.
|
||||
session_cookie_secure=_env_bool(e("FB_SESSION_COOKIE_SECURE", "")),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user