diff --git a/CHANGELOG.md b/CHANGELOG.md index c9e5c8e..e4c7b34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,9 @@ phobos-update beta # или: phobos-update dev --- +## 1.4.6 — роутеры снова получают смену адреса +- Исправлено: роутер получал 403 при pull конфига, если клиент создан через API/бота (`/api/client/ensure`) — смена адреса/сервера до него не доходила. Теперь принимается и общий ключ из пакета, и личный токен клиента. Роутеры переустанавливать не нужно — достаточно обновить панель. + ## 1.4.5 — подсеть при установке, beta/dev по токену - **feat:** beta и dev теперь берутся из приватного репозитория на Gitea (GitHub заблокирован): `phobos-update beta|dev` с токеном подписчика — в панели «Настройки → Версия и обновления → токен подписчика» или `GH_TOKEN=… phobos-update beta`. Без токена updater сообщает, что канал закрыт, и ничего не трогает. diff --git a/VERSION b/VERSION index e516bb9..c514bd8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.4.5 +1.4.6 diff --git a/app.py b/app.py index 9bf3204..64a4405 100644 --- a/app.py +++ b/app.py @@ -3449,8 +3449,9 @@ def router_config(client_id): st = load_settings() token = request.args.get("token", "") acc = st.get("router_access", {}).get(client_id, {}) - expected = acc.get("pull_token", "") or st.get("server_api_key", "") - if not expected or token != expected: + # packages ship server_api_key as pull_token (phobos-client.sh), so accept both + expected = {t for t in (acc.get("pull_token", ""), st.get("server_api_key", "")) if t} + if not token or token not in expected: return ("forbidden", 403) conf = generate_failover_conf_for_client(client_id) return (conf, 200, {"Content-Type": "text/plain; charset=utf-8"})