Files
SHiNE-server/docs/API/13_User_Settings_API.md
T
AidarKC 8a0275d962 Убрали старый sync и обновили bundle
Что сделано: вычистили неиспользуемый user-settings sync/DM sync хвост, сохранили сборку, обновили bundle.sh так, чтобы gradle-wrapper.jar всегда попадал в архив.

Проверено: compileJava и deploy на t2 (server + UI).
Не проверяли: полные интеграционные сценарии, ручные UI-флоу и продовый деплой.
2026-08-28 14:51:47 +04:00

2.0 KiB

User Settings API

user_settings хранит технические настройки пользователя только на его единственном действующем access-сервере. Межсерверной синхронизации настроек нет. При смене access-сервера старые настройки автоматически не переносятся.

Подпись

UI формирует строку:

SHiNe/UserSettings:|<setting_type>|<setting_key>|<time_ms>|<value_text>|<value_num>

и подписывает её текущим Ed25519 clientKey пользователя. Сервер:

  1. находит пользователя;
  2. проверяет совпадение client_key с актуальным ключом пользователя;
  3. строго проверяет подпись;
  4. при неверной подписи возвращает INVALID_SIGNATURE;
  5. сохраняет запись только если time_ms новее локальной версии.

Операции

UpsertUserSetting

Обязательные поля:

  • login;
  • setting_type;
  • setting_key;
  • time_ms;
  • client_key;
  • signature.

Значения:

  • value_text — строковое значение, по умолчанию пустая строка;
  • value_num — числовое значение, по умолчанию 0.

Поля sync_delivery и synced удалены.

GetUserSetting

Возвращает одну локальную настройку по login, setting_type и setting_key.

ListUserSettings

Возвращает все локальные настройки пользователя.

Удалённые операции

После перехода на один access-сервер удалены:

  • UserSettingsSyncBatch;
  • MarkAllUserSettingsUnsynced.

Также удалены таблица peer-cursor и периодический сервис синхронизации настроек.