health показывает версию и вердикт по адресу клиента
Отказ по списку доступа отлаживался вслепую: сервис не сообщал, каким видит адрес обратившегося. Теперь /health отдаёт your_ip, your_ip_allowed и версию, не раскрывая при этом сам список. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
59857fff0f
commit
c704fb5068
+13
-2
@@ -15,6 +15,7 @@ from app.config import Settings, load_settings
|
||||
from app.pipeline import ModelsMissing, Pipeline, to_wav16k
|
||||
from app.security import check_token, ip_allowed, parse_allowlist
|
||||
from app.store import JobStatus, JobStore
|
||||
from app.version import __version__
|
||||
|
||||
log = logging.getLogger("talkscore-asr")
|
||||
|
||||
@@ -113,13 +114,23 @@ def guard(request: Request) -> None:
|
||||
|
||||
|
||||
@app.get("/health")
|
||||
def health() -> JSONResponse:
|
||||
"""Проверка живости - без токена, чтобы годилась для мониторинга."""
|
||||
def health(request: Request) -> JSONResponse:
|
||||
"""Проверка живости - без токена, чтобы годилась для мониторинга.
|
||||
|
||||
Показывает адрес обратившегося и вердикт по списку доступа: без этого
|
||||
отладка отказов превращается в гадание, а сам адрес клиенту и так известен.
|
||||
Список разрешённых адресов при этом не раскрывается.
|
||||
"""
|
||||
client_ip = request.client.host if request.client else None
|
||||
return JSONResponse({
|
||||
"status": "ok" if _state["ready"] else "no_models",
|
||||
"version": __version__,
|
||||
"error": _state["error"],
|
||||
"queue": store.stats(),
|
||||
"threads": settings.effective_threads(),
|
||||
"your_ip": client_ip,
|
||||
"your_ip_allowed": ip_allowed(client_ip, allowlist),
|
||||
"ip_filter_active": bool(allowlist),
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user