Files
IKAR/ikar_server/ADMIN.md
T
sevenhill b4c27da560
Tests / test (push) Canceled after 0s
Native crypto / native-crypto (push) Canceled after 0s
Release (main) / android (oneme) (push) Canceled after 0s
Release (main) / android (qlyra) (push) Canceled after 0s
Release (main) / windows (push) Canceled after 0s
Release (main) / linux (push) Canceled after 0s
Release (main) / macos (push) Canceled after 0s
Release (main) / ios (push) Canceled after 0s
Release (main) / release (push) Canceled after 0s
Add full IKAR administration console with secure session controls
2026-10-07 23:42:02 +03:00

67 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Администрирование ИКАР
Панель доступна по адресу `https://ikar.kusoft.xyz/admin/`. Вход использует
`Admin__Username` и `Admin__Password` из закрытой серверной конфигурации.
Учётная запись обычного пользователя мессенджера доступа к панели не даёт.
Панель включает:
- Обзор: база, пользователи, чаты, сообщения, вложения и активные сессии.
- Пользователи: поиск, фильтры, страницы, профиль, устройства уведомлений,
отзыв одной или всех сессий, блокировка, разблокировка и удаление.
- Чаты и каналы: настройки приватности, публичное имя, срок жизни сообщений,
темы, роли и разрешения, передача владения, приглашения и заявки на вход.
- Сообщения: поиск в чате, скрытие и восстановление. Вложения сохраняются
при скрытии сообщения для возможности восстановления; истёкшие сообщения
восстанавливать нельзя. Зашифрованное содержимое отображается в том виде,
в котором оно хранится на сервере: расшифровка на сервере отсутствует.
- Жалобы: очередь, исходные данные, просмотр объекта, подтверждение или
отклонение, блокировка автора или скрытие сообщения, повторное открытие.
Старые жалобы автоматически переносятся из журнала модерации.
- Боты: поиск, включение и отключение, имя, описание, HTTPS-адрес
мини-приложения и замена токена. Новый токен показывается один раз.
Создание ботов сохраняет существующий процесс через `@botfatherbot`.
- Медиа: поиск, наличие файла, скачивание и удаление.
- Обновления: текущая версия Android, размер APK, SHA-256, сохранённые пакеты,
совместимость клиентов и переход к каталогу Аргус. Публикация релизов
выполняется существующими проверенными инструментами `tool/publish_*`.
- Обслуживание: состояние диска, память, резервные копии, отложенные
сообщения, очередь push, повтор доставки, удаление задач и очистка TTL
партиями до 500 сообщений.
- Журнал администратора: действия, объект, результат, комментарий, IP,
поиск, страницы и экспорт текущей страницы в CSV.
- Доступ: действующие административные сессии и их отзыв.
Сессия администратора действует 12 часов. Выход, отзыв сессии и смена
серверных реквизитов делают её cookie недействительным. Запросы изменения
требуют CSRF-токена. В production cookie передаётся только по HTTPS.
Административные страницы и ответы не кешируются; в журнал не записываются
пароли, токены ботов и содержимое запросов. Вход ограничен десятью попытками
за пять минут с одного IP. Отзыв сессии пользователя закрывает её SignalR
соединения и отключает токены API.
Ключи cookie хранятся в `Data/AdminKeys`, на постоянном томе данных. Для
работы за reverse proxy параметр `ReverseProxy__KnownProxies` задаёт список
точных доверенных IP через запятую. На рабочем сервере инструмент
`tool/deploy_server_fixes.py` определяет адрес существующего Docker gateway;
порт API остаётся привязан к `127.0.0.1`.
## Проверка
```powershell
dotnet test ikar_server/src/Ikar.Server.Tests/Ikar.Server.Tests.csproj
./tool/start_admin_test_server.ps1
python tool/seed_admin_ui_test.py
node tool/verify_admin_ui.cjs
```
Для браузерной проверки нужны Playwright и Chromium/Edge. При необходимости
`PLAYWRIGHT_MODULE` указывает путь к установленному модулю Playwright, а
`ADMIN_BROWSER` — к браузеру. Тестовый сервер слушает только loopback,
использует отдельную временную базу и тестовые реквизиты. После проверки
остановите PID из `artifacts/admin-local-server.json`.
После установки `tool/verify_admin_console.py` запускается на Pi вместе с
`tool/admin_http.py`: реквизиты читаются внутри сервера, проверяется доступ,
защита изменений, резервные копии и целостность базы. В отчёт секреты не входят.