--- name: m08-admin-web description: Admin REST /api/admin/* в Server.WatchBody.Web — консоль владельца (Ф-9): login/PBKDF2→Bearer, атлеты, тренировки+CSV, программы, метрики, план/факт --- # m08-admin-web Бэкенд административной консоли владельца в `Server.WatchBody.Web`: `POST /api/admin/login` (PBKDF2-проверка → in-memory Bearer-сессия, TTL 8 ч; атлеты к `/api/admin/*` доступа не имеют — 🛡 отдельный контур от `/api/v1/*`); атлеты (создание с серверной генерацией API-ключа — возвращается один раз, смена ключа, блокировка); тренировки всех атлетов (фильтры, пагинация, карточка с план/факт и facts-таймлайном, CSV `;`+BOM по tech-req 2.4); программы (версии, активация, применение rules-предложений через author=admin-копию — 🛡 неизменяемость); метрики за период; сводка план/факт по неделям. UI — Flutter Web `3-app\3-web\admin-web` (отдельный этап, требует Flutter SDK); сервер отдаёт статику сборки из `wwwroot\admin\`. - Требования: [module_reqs.md](module_reqs.md) - План работ: [readme.md](readme.md) - Спецификации: [api_specs/](api_specs/)