v2.5.0: redact admin overview secret

This commit is contained in:
Виталий Литвинов
2026-04-24 23:08:02 +03:00
parent a393bd79ff
commit 6b89c3ea81

View File

@@ -43,6 +43,7 @@ PORT = int(os.getenv("GOTELEGRAM_ADMIN_PORT", "1984"))
VERSION = "2.5.0" VERSION = "2.5.0"
USER_RE = re.compile(r"^[A-Za-z0-9_.-]{1,48}$") USER_RE = re.compile(r"^[A-Za-z0-9_.-]{1,48}$")
LANG_RE = re.compile(r"^(en|ru)$") LANG_RE = re.compile(r"^(en|ru)$")
SENSITIVE_CONFIG_KEYS = {"secret"}
def utc_now() -> str: def utc_now() -> str:
@@ -91,6 +92,10 @@ def read_language(config: dict[str, Any] | None = None) -> str:
return lang if lang in {"en", "ru"} else "en" return lang if lang in {"en", "ru"} else "en"
def public_config(config: dict[str, Any]) -> dict[str, Any]:
return {key: value for key, value in config.items() if key not in SENSITIVE_CONFIG_KEYS}
def write_language(lang: str) -> dict[str, Any]: def write_language(lang: str) -> dict[str, Any]:
lang = str(lang or "").strip().lower() lang = str(lang or "").strip().lower()
if not LANG_RE.match(lang): if not LANG_RE.match(lang):
@@ -488,7 +493,7 @@ def overview_payload() -> dict[str, Any]:
"time": utc_now(), "time": utc_now(),
"language": language, "language": language,
"admin_bind": {"host": HOST, "port": PORT}, "admin_bind": {"host": HOST, "port": PORT},
"config": config, "config": public_config(config),
"site_status": site_status(config), "site_status": site_status(config),
"users_count": len(users), "users_count": len(users),
"services": services, "services": services,