- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов, машинная вычитка расшифровки внутри границ, приложение — основной вход; добавлены две границы: не файловое хранилище общего назначения и не биллинг; - заведены цели upload-reliability, user-settings, usage-stats и тринадцать задач; очередь пересобрана — сперва починки, затем разведки о хранилище, затем доступ и владелец, и только потом экраны; - архитектура: четыре новых открытых вопроса — приём большого файла, учёт расхода, срок хранения, потолок шести часов.
1.9 KiB
1.9 KiB
🎯 Сервисом пользуются несколько человек, и записи одного не видны другому
- Тип: goal
- Секция: Запланировано
- Зачем: У задачи нет владельца, а HTTP API открыт наружу без аутентификации: пригласить второго человека сейчас значит открыть ему чужие расшифровки.
Приложение узнаёт, кто к нему пришёл, и показывает каждому только его записи. Учётные записи заводит и проверяет внешний провайдер — Authelia по OIDC; своей регистрации и своих паролей не делаем, это граница из паспорта.
Завершение
- Неаутентифицированный запрос к записям не проходит: ни к странице, ни к API.
- У задачи и файла есть владелец, и выборка чужой записи по её идентификатору возвращает «не найдено», а не содержимое.
- Вход идёт через OIDC у Authelia; выход из сессии работает.
- Пользователь Telegram сопоставлен с учётной записью, и записи, пришедшие ботом, видны ему же в браузере.
- Белый список Telegram перестаёт быть отдельным механизмом: право писать боту выводится из учётной записи.
- Скрипт ходит в API по токену, выпущенному пользователем, и видит ровно его записи.