- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
25 lines
2.2 KiB
Markdown
25 lines
2.2 KiB
Markdown
# 🎯 Сервисом пользуются несколько человек, и записи одного не видны другому
|
|
|
|
- **Тип:** goal
|
|
- **Секция:** Запланировано — Владелец записи — фундамент, на котором стоят список своих записей, дедупликация, удаление, учёт расхода и квота: пока его нет, остальные цели строятся на песке.
|
|
- **Зачем:** У задачи нет владельца, а HTTP API открыт наружу без аутентификации: пригласить второго человека сейчас значит открыть ему чужие расшифровки.
|
|
- **Теги:** decomposed
|
|
|
|
Приложение узнаёт, кто к нему пришёл, и показывает каждому только его записи.
|
|
Учётные записи заводит и проверяет внешний провайдер — Authelia по OIDC; своей
|
|
регистрации и своих паролей не делаем, это граница из
|
|
[паспорта](../../docs/passport.md).
|
|
|
|
## Завершение
|
|
|
|
1. Неаутентифицированный запрос к записям не проходит: ни к странице, ни к API.
|
|
2. У задачи и файла есть владелец, и выборка чужой записи по её
|
|
идентификатору возвращает «не найдено», а не содержимое.
|
|
3. Вход идёт через OIDC у Authelia; выход из сессии работает.
|
|
4. Пользователь Telegram сопоставлен с учётной записью, и записи, пришедшие
|
|
ботом, видны ему же в браузере.
|
|
5. Белый список Telegram перестаёт быть отдельным механизмом: право писать боту
|
|
выводится из учётной записи.
|
|
6. Скрипт ходит в API по токену, выпущенному пользователем, и видит ровно его
|
|
записи.
|