Files
transcriber/tasks/items/multi-user.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

2.2 KiB

🎯 Сервисом пользуются несколько человек, и записи одного не видны другому

  • Тип: goal
  • Секция: Запланировано — Владелец записи — фундамент, на котором стоят список своих записей, дедупликация, удаление, учёт расхода и квота: пока его нет, остальные цели строятся на песке.
  • Зачем: У задачи нет владельца, а HTTP API открыт наружу без аутентификации: пригласить второго человека сейчас значит открыть ему чужие расшифровки.
  • Теги: decomposed

Приложение узнаёт, кто к нему пришёл, и показывает каждому только его записи. Учётные записи заводит и проверяет внешний провайдер — Authelia по OIDC; своей регистрации и своих паролей не делаем, это граница из паспорта.

Завершение

  1. Неаутентифицированный запрос к записям не проходит: ни к странице, ни к API.
  2. У задачи и файла есть владелец, и выборка чужой записи по её идентификатору возвращает «не найдено», а не содержимое.
  3. Вход идёт через OIDC у Authelia; выход из сессии работает.
  4. Пользователь Telegram сопоставлен с учётной записью, и записи, пришедшие ботом, видны ему же в браузере.
  5. Белый список Telegram перестаёт быть отдельным механизмом: право писать боту выводится из учётной записи.
  6. Скрипт ходит в API по токену, выпущенному пользователем, и видит ровно его записи.