- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов, машинная вычитка расшифровки внутри границ, приложение — основной вход; добавлены две границы: не файловое хранилище общего назначения и не биллинг; - заведены цели upload-reliability, user-settings, usage-stats и тринадцать задач; очередь пересобрана — сперва починки, затем разведки о хранилище, затем доступ и владелец, и только потом экраны; - архитектура: четыре новых открытых вопроса — приём большого файла, учёт расхода, срок хранения, потолок шести часов.
3.0 KiB
3.0 KiB
✨ Сделать экран настроек и хранить настройки по пользователю
- Тип: feature
- Категория: Очередь
- Зачем: Настроек у пользователя нет вовсе: уровни текста и канал уведомлений задаются общим конфигом сервиса.
- Теги: goal:user-settings
Двигает пункты 1, 2 и 3 «Завершения» цели: у каждого пользователя свои переключатели уровней текста и свой канал уведомлений, и они переживают повторный вход.
Здесь появляется дом настроек — таблица и эндпоинты; применяют их задачи уровней текста и доставки уведомлений.
Затрагивает
- таблица настроек пользователя: переключатели уровней текста, канал и адрес уведомлений, и её миграция;
- эндпоинты чтения и записи своих настроек;
- новый экран приложения;
- значения по умолчанию для пользователя, у которого настроек ещё нет;
docs/database.md— представление данных и значения по умолчанию.
Критерии приёмки
- Изменённая настройка видна после повторного входа и не меняется у соседа. Оракул — тест эндпоинта на двух учётных записях: запись первой, чтение обеими.
- Пользователь без сохранённых настроек читает значения по умолчанию, а не пустой ответ. Оракул — тест чтения для новой учётной записи.
- Чужие настройки не читаются и не пишутся по идентификатору. Оракул — тест
запроса к настройкам другого владельца:
404либо403, содержимое не отдаётся. - Экран показывает переключатели уровней и поле канала, а сохранение доходит до эндпоинта. Оракул — тест экрана на подставном API.
Рамки
Применением настроек к конвейеру занимаются llm-insights-adapter,
literary-text-level и ntfy-delivery — здесь только дом настроек и экран.
Выпуск токенов API живёт на этом же экране, но заводит его api-tokens.
Берётся после oidc-login: до неё настройки не к кому привязать.