- Added new inline button features to the `/configs` command, allowing users to view their configurations in a single message with active links and a back button. - Implemented a menu for unlinking Telegram accounts, providing a clearer user experience when managing account connections. - Updated the `.env.example` file to include a new `Telegram__PublicSiteUrl` setting, enabling a button for accessing the panel's website directly from the bot. - Enhanced documentation to reflect the new features and configuration options available in the Telegram bot.
PnvPanel — Документация
MVP реализован (backend M0–M8 + полный frontend). Документация ниже описывает систему как она реально построена, со сверенными по коду деталями — не первоначальный план. Расхождения с ранним замыслом отмечены явно там, где это важно (например, домен изначально закладывал доменные события — в реализации от них отказались в пользу прямых вызовов из CQRS-хендлеров, см. architecture.md).
Индекс. Читать в этом порядке для погружения:
- Product Vision & Scope — продукт, роли, пользовательские сценарии, границы MVP.
- Architecture — Clean Architecture, слои, CQRS, интеграция с 3x-ui, realtime, безопасность, фоновые задачи.
- Domain Model — сущности, value objects, связи, инварианты, уведомления/аудит.
- Tech Stack (ADR) — принятые решения по технологиям и их обоснование.
- Backend Conventions — структура решения, паттерны, соглашения по коду.
- Frontend — стек, структура, работа с API и realtime.
- Telegram Bot — бот: ссылка на сайт, просмотр конфигов, passwordless-вход через привязку Telegram.
- API Design — контракты REST и SignalR.
- Roadmap — ретроспектива по этапам (milestones) + backlog.
Принятые решения
Ключевые развилки закрыты (полная таблица — в tech-stack.md):
- CQRS — собственный тонкий диспетчер (не MediatR).
- Роли — ровно одна роль на пользователя; квота =
MaxConfigsроли. - Секреты нод — ASP.NET Core Data Protection (шифрование at-rest).
- Тарифы
Plan— backlog (в MVP конфиги без лимитов трафика/срока). - i18n — RU + EN с первого дня (react-i18next).
- Telegram — long polling; только привязка аккаунта (signup из бота — backlog).
- История трафика — простая таблица + TTL-чистка.
- Логирование — Serilog.
Остаточные мелочи (не блокируют старт): значение TTL истории трафика, прод-синки Serilog, TTL токенов Telegram.