GameAP v4.5

Вышла новая версия платформы управления игровыми серверами. Большинство изменений технические и касаются системы плагинов: затронуто более 1 тыс. файлов и добавлено свыше 100 тыс. строк кода.
Обновлена плагин-система #
Больше всего изменений произошло в системе плагинов: добавлены новые возможности и расширены существующие.
Новые возможности для плагинов #
Плагины выполняются в изолированной среде и взаимодействуют с панелью только через функции, которые предоставляются панелью (хостом) через внутренний API. Набор этих функций расширился:
- Хранилище учётных данных (секретов). Значения шифруются ключом панели (AES-256-GCM) и привязаны к владельцу — один плагин не может прочитать секреты другого.
- Подключение по SSH. Предназначено для настройки новых виртуальных серверов, на которых ещё не установлен GameAP Daemon.
Позволяет автоматически добавлять и настраивать выделенные серверы в инфраструктуре.
По умолчанию SSH-модуль выключен и включается администратором, изменением переменной окружения
PLUGINS_SSH_ENABLED. - Расширена работа с файлами выделенных серверов: большие файлы читаются по частям, а передача файла в браузер идёт напрямую, без загрузки в память плагина.

Установка и обновление плагинов #
- Плагин можно обновить из локального файла. Перед установкой панель показывает описание плагина и запрашиваемые права, ничего не устанавливая.
- При обновлении сохраняются данные, настройки и выданные ранее права. Права никогда не расширяются автоматически.
- Остановившиеся плагины автоматически восстанавливаются.
- Если панель работает в нескольких экземплярах, состояние плагинов согласуется между ними автоматически.
Совместимость #
Обратная совместимость проверяется автоматически: плагины, собранные для предыдущих версий панели, продолжают работать в новой.
Переменные окружения PLUGIN_* переименованы в PLUGINS_*. Старые имена пока действуют,
но при их использовании в журнал записывается предупреждение.
Больше мест для плагинов в интерфейсе #
Количество мест интерфейса, куда плагин может добавить свой компонент, выросло с 6 до 20: шапка, боковое меню, страница сервера, список серверов, профиль пользователя и административные формы.
Обновление файлового менеджера #
В файловом менеджере произошло много больших изменений, добавлены новые функции.
История файлов и каталогов #
Панель запоминает посещённые каталоги и открытые файлы. История хранится только в вашем браузере и никуда не передаётся. История хранит два вида списков:
- Список по частоте. Сюда попадают наиболее часто редактируемые файлы.
- Список по последним доступам к файлам или каталогам. Сюда попадают последние ресурсы, которые вы запрашивали.

Добавлен поиск в текущем каталоге #
Вы можете быстро найти файл или директорию в текущем открытом каталоге. Чтобы воспользоваться поиском, есть несколько вариантов:
- Нажать кнопку лупы на панели файлового менеджера
- Нажать CTRL+F в вашем браузере
- Просто начать вводить имя файла
Поиск работает в том числе тогда, когда раскладка клавиатуры не совпадает с раскладкой имени файла, который вы ищете. К примеру, если вы ввели “ыукмукюсап”, то поиск найдёт вам файл “server.cfg”.

Упаковка и распаковка архивов #
Появилась возможность архивировать произвольные файлы, группы файлов и каталоги. Архивы помещаются в каталог сервера. После архивации файлы можно скачать. Упаковка и распаковка выполняются на выделенном сервере, ход операции отображается в панели.

Архивация возможна в следующие форматы:
- zip
- tar
- gzip
- bz2
- xz
- zst
Также вы можете загрузить архив в каталог вашего игрового сервера и распаковать его.
Разархивация возможна для всех форматов, указанных выше, а также для проприетарных:
- 7zip
- rar
Контрольные суммы файлов #
Можно посмотреть контрольные суммы для выбранных вами файлов. Поддерживаются следующие алгоритмы:
- SHA256. Один из самых популярных алгоритмов.
- MD5
- SHA1
- SHA512
- CRC32
- CRC64

Настройки игровых серверов #
Теперь в параметрах игровых модов можно устанавливать типы переменных, параметры валидации, список доступных значений и другие дополнительные параметры. Благодаря этому редактирование настроек игрового сервера упростилось. В настройках игровых серверов можно выбрать предопределённое значение.
Поддерживаемые типы переменных: строка, число, флаг, список значений, пароль. Для переменной можно задать правила проверки, переводы названия и описания, а также признак «только для администратора». При сохранении формы все ошибки полей возвращаются одним ответом.

Добавлен импорт описаний игр из формата Pelican.
У выделенных серверов появился произвольный набор метаданных в виде пар «ключ — значение».
Отображение версии GameAP и GameAP Daemon на выделенных серверах #
На главной странице панели управления теперь отображается текущая версия GameAP, а также актуальность версий GameAP Daemon на выделенных серверах. Это позволит следить за актуальностью версий платформы управления и своевременно устанавливать обновления.

Сведения о версиях запрашиваются не чаще одного раза в 6 часов; наружу не передаётся ничего, кроме самого запроса.
Проверку можно отключить переменной окружения UPDATE_CHECK_ENABLED=false.
В командной строке появилась команда gameap version.
SSO #
SSO (единый вход) позволяет пользователю попадать в панель из внешней системы — например, из биллинга или с сайта хостинга — без ввода пароля. Внешняя система выпускает одноразовый билет входа, а браузер пользователя обменивает его на обычный сеанс. Билет действует 60 секунд и может быть использован только один раз. Для администраторов сохраняется обязательная двухфакторная проверка.
Безопасность токенов доступа #
Ужесточены правила для токенов доступа, которые используются во внешних интеграциях:
- Административные адреса API, для которых не объявлены права токенов, теперь полностью закрыты для запросов с токеном. Раньше на таких адресах проверялась только роль владельца токена.
- Токенам запрещено назначать административные роли, менять пароли и настройки двухфакторной защиты — независимо от выданных прав.
Логины и адреса электронной почты приведены к единому написанию в нижнем регистре.
Управление доступом пользователей к серверам #
Добавлены два новых API эндпоинта для точечной выдачи и отзыва доступа к серверу:
PUT /api/users/{id}/servers/{server}— привязать сервер к указанному пользователю;DELETE /api/users/{id}/servers/{server}— отвязать сервер от пользователя.
Повторная привязка не считается ошибкой. При отвязке выданные на сервер права сохраняются и снова действуют после повторной привязки. Это упрощает интеграцию с внешними системами.
Эти же эндпоинты использует интерфейс панели: привязка применяется сразу, без кнопки “Сохранить”. Она открывает пользователю доступ к конкретному серверу и позволяет гранулярно выдать привилегии — всё остальное на сервере остаётся ему недоступно.
Чтобы привязать сервер, перейдите в “Администрирование” → “Пользователи”, выберите пользователя и нажмите “Редактировать”. В блоке “Серверы” нажмите “Добавить” и выберите нужный сервер; клик по замочку открывает выбор привилегий.

Новые языки #
Добавлена поддержка испанского и немецкого языков. Чтобы сменить язык, нужно перейти в Профиль, затем вверху кликнуть по кнопке “Редактировать профиль”. В открывшемся модальном окне необходимо поменять значение поля “Язык”.

Прочие небольшие изменения #
- Боковое меню и мобильная версия теперь используют единый список пунктов административного меню.
- Задачи GameAP Daemon перенесены из общего меню на страницу выделенных серверов.
- Приведены к единому виду кнопки и значки статусов.
- Тесты переведены на параллельный запуск, обновлены внутренние зависимости.