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

58 lines
2.0 KiB
Markdown

# User Settings API
user_settings хранит технические настройки пользователя только на его
единственном действующем access-сервере. Межсерверной синхронизации настроек
нет. При смене access-сервера старые настройки автоматически не переносятся.
## Подпись
UI формирует строку:
SHiNe/UserSettings:<login>|<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 и периодический сервис синхронизации
настроек.