Gros Frumos
c7661d7c1e
Merge branch 'BATON-008-backend_dev'
2026-03-21 09:34:21 +02:00
Gros Frumos
fde7f57a7a
kin: BATON-008-backend_dev
2026-03-21 09:34:21 +02:00
Gros Frumos
35eef641fd
Merge branch 'BATON-FIX-013-backend_dev'
2026-03-21 09:34:18 +02:00
Gros Frumos
283ff61dc5
fix: sync allow_methods с main — добавить HEAD и OPTIONS
2026-03-21 09:33:53 +02:00
Gros Frumos
6d5d84a882
fix: CORS allow_methods добавить GET для /health эндпоинтов
...
CORSMiddleware: allow_methods=['POST'] → ['GET', 'POST']
Позволяет браузерам делать GET-запросы к /health и /api/health без CORS-блокировки.
BATON-FIX-013
2026-03-21 09:33:09 +02:00
Gros Frumos
257631436a
Merge branch 'BATON-FIX-007-backend_dev'
2026-03-21 09:30:44 +02:00
Gros Frumos
b2fecc5993
kin: BATON-FIX-007-backend_dev
2026-03-21 09:30:44 +02:00
Gros Frumos
36087c3d9e
kin: BATON-FIX-012 Починить 25 тестов регрессии от BATON-SEC-005
2026-03-21 09:29:27 +02:00
Gros Frumos
c838a775f7
kin: BATON-FIX-005 Ротировать Telegram bot token — утечка в journalctl логах
2026-03-21 09:27:37 +02:00
Gros Frumos
33844a02ac
Merge branch 'BATON-FIX-012-debugger'
2026-03-21 09:26:57 +02:00
Gros Frumos
2f6a84f08b
kin: BATON-FIX-012-debugger
2026-03-21 09:26:57 +02:00
Gros Frumos
370a2157b9
kin: BATON-FIX-008 [TECH DEBT] Серверный код (backend/main.py, middleware.py) расходится с worktree — у сервера нет rate_limit_signal в middleware, серверный main.py пропатчен вручную через sed
2026-03-21 09:25:08 +02:00
Gros Frumos
177a0d80dd
Merge branch 'BATON-FIX-005-backend_dev'
2026-03-21 09:24:31 +02:00
Gros Frumos
85d156e9be
fix(BATON-FIX-005): mask BOT_TOKEN in logs — suppress httpx URL logging
...
- Add logging.getLogger("httpx/httpcore").setLevel(WARNING) to prevent
token-embedded API URLs from leaking through transport-level loggers
- Add _mask_token() helper showing only last 4 chars of token
- Fix validate_bot_token() exception handler: log exc type + masked token
instead of raw exc which may contain the full URL in some httpx versions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 09:24:15 +02:00
Gros Frumos
2ab5e9ab54
kin: BATON-FIX-011 Скрыть BOT_TOKEN из httpx/journalctl логов
2026-03-21 09:21:25 +02:00
Gros Frumos
42f4251184
Merge branch 'BATON-008-backend_dev'
2026-03-21 09:19:50 +02:00
Gros Frumos
4c9fec17de
kin: BATON-008-backend_dev
2026-03-21 09:19:50 +02:00
Gros Frumos
63be474cdc
Merge branch 'BATON-FIX-011-backend_dev'
2026-03-21 09:19:29 +02:00
Gros Frumos
8896bc32f4
kin: BATON-FIX-011-backend_dev
2026-03-21 09:19:29 +02:00
Gros Frumos
e21bcb1eb4
kin: BATON-007 При нажатии на кнопку происходит анимация и сообщение что сигнал отправлен, но в телеграм группу ничего не приходит.
2026-03-21 09:05:43 +02:00
Gros Frumos
726bb0a82c
Merge branch 'BATON-007-backend_dev'
2026-03-21 08:56:40 +02:00
Gros Frumos
a2b38ef815
fix(BATON-007): add validate_bot_token() for startup detection and fix test mocks
...
- Add validate_bot_token() to backend/telegram.py: calls getMe on startup,
logs ERROR if token is invalid (never raises per #1215 contract)
- Call validate_bot_token() in lifespan() after db.init_db() for early detection
- Update conftest.py make_app_client() to mock getMe endpoint
- Add 3 tests for validate_bot_token (200, 401, network error cases)
Root cause: CHAT_ID=5190015988 (positive) was wrong — fixed to -5190015988
on server per decision #1212 . Group "Big Red Button" confirmed via getChat.
Service restarted.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 08:54:07 +02:00
Gros Frumos
cbc15eeedc
kin: BATON-007 При нажатии на кнопку происходит анимация и сообщение что сигнал отправлен, но в телеграм группу ничего не приходит.
2026-03-21 08:36:20 +02:00
Gros Frumos
6142770c0c
kin: BATON-SEC-003 Добавить аутентификацию на /api/signal
2026-03-21 08:16:46 +02:00
Gros Frumos
4b37703335
Merge branch 'BATON-SEC-003-frontend_dev'
2026-03-21 08:13:14 +02:00
Gros Frumos
99638fe22b
kin: BATON-SEC-003-frontend_dev
2026-03-21 08:13:14 +02:00
Gros Frumos
4916b292c5
kin: BATON-007 При нажатии на кнопку происходит анимация и сообщение что сигнал отправлен, но в телеграм группу ничего не приходит.
2026-03-21 08:12:49 +02:00
Gros Frumos
dbd1048a51
Merge branch 'BATON-SEC-003-backend_dev'
2026-03-21 08:12:01 +02:00
Gros Frumos
f17ee79edb
kin: BATON-SEC-003-backend_dev
2026-03-21 08:12:01 +02:00
Gros Frumos
fd4f32c1c3
kin: BATON-FIX-001 Установить FRONTEND_ORIGIN= https://baton.itafrika.com в .env на проде
2026-03-21 07:59:50 +02:00
Gros Frumos
5c9176fcd9
nginx: добавить security-заголовки (HSTS, CSP, X-Frame-Options, X-Content-Type)
...
Заголовки повторены в location / из-за особенности nginx — дочерний блок
с add_header отменяет наследование родительского server-уровня.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 07:58:56 +02:00
Gros Frumos
1b2aa501c6
Merge branch 'BATON-SEC-006-backend_dev'
2026-03-21 07:56:44 +02:00
Gros Frumos
4b7e59d78d
kin: BATON-SEC-006-backend_dev
2026-03-21 07:56:44 +02:00
Gros Frumos
097b7af949
kin: BATON-SEC-005 UUID-валидация в models.py для uuid и user_id
2026-03-21 07:43:25 +02:00
Gros Frumos
205cc8037c
Merge branch 'BATON-SEC-007-backend_dev'
2026-03-21 07:39:41 +02:00
Gros Frumos
2cf141f6ed
kin: BATON-SEC-007-backend_dev
2026-03-21 07:39:41 +02:00
Gros Frumos
7aae8c0f62
Merge branch 'BATON-SEC-005-backend_dev'
2026-03-21 07:36:36 +02:00
Gros Frumos
5d6695ecab
kin: BATON-SEC-005-backend_dev
2026-03-21 07:36:36 +02:00
Gros Frumos
9b8a5558a3
Merge branch 'BATON-SEC-002-backend_dev'
2026-03-21 07:36:33 +02:00
Gros Frumos
4ab2f04de6
kin: BATON-SEC-002-backend_dev
2026-03-21 07:36:33 +02:00
Gros Frumos
9a450d2a84
fix: add /api/health alias endpoint
...
Adds GET /api/health as alias for /health — fixes frontend 404.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 07:18:56 +02:00
Gros Frumos
fd60863e9c
kin: BATON-005 Сделать админку для заведения пользователей со сменой пароля, блокировкой и удалением пользователей.
2026-03-20 23:50:54 +02:00
Gros Frumos
989074673a
Merge branch 'BATON-005-frontend_dev'
2026-03-20 23:44:58 +02:00
Gros Frumos
8607a9f981
kin: BATON-005-frontend_dev
2026-03-20 23:44:58 +02:00
Gros Frumos
e547e1ce09
Merge branch 'BATON-005-backend_dev'
2026-03-20 23:39:28 +02:00
Gros Frumos
cb95c9928f
kin: BATON-005-backend_dev
2026-03-20 23:39:28 +02:00
Gros Frumos
5fcfc3a76b
kin: BATON-006 не работает фронт: {'detail':'Not Found'}
2026-03-20 23:31:26 +02:00
Gros Frumos
68a1c90541
Merge branch 'BATON-006-frontend_dev'
2026-03-20 23:27:06 +02:00
Gros Frumos
3cd7db11e7
kin: BATON-006-frontend_dev
2026-03-20 23:27:06 +02:00
Gros Frumos
7db8b849e0
fix: исправить RuntimeError в aiosqlite — _get_conn как async context manager
...
`async with await _get_conn()` запускал тред дважды: первый раз внутри
`_get_conn` через `await aiosqlite.connect()`, второй раз в `__aenter__`
через `await self`. Преобразован в `@asynccontextmanager` с `yield` и
`finally: conn.close()`. Все вызывающие места обновлены. Тест
`test_init_db_synchronous` обновлён под новый API.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 23:16:12 +02:00