у записи появился владелец: чужую больше не отдают

- колонка `owner` связью с `users` в обеих коллекциях новым шагом схемы
  `202608140001`; чтение задачи сужено владельцем, и чужая, ничья и
  несуществующая дают один ответ; правило просмотра файлов сужено им же
- приём по HTTP берёт владельца из сессии, а предъявителя без учётной записи
  пользователя отвергает до чтения тела: позже пришлось бы убирать уложенный
  файл, а уборки файлов сервис не умеет. Выборка воркера владельцем не сужается
- удаление учётной записи с записями отвергается стражем, и вешает его сама
  сборка хранилища: сборка, забывшая его позвать, теряла защиту молча
This commit is contained in:
av
2026-08-14 12:18:11 +03:00
parent b7d4660aef
commit 8af8ec2e54
46 changed files with 2520 additions and 101 deletions
+11 -6
View File
@@ -117,12 +117,17 @@
- **«Файлы и объекты не удаляются, диск растёт».** Факт верный и записан в
[database.md](database.md); срок хранения не задан сознательно, задачи на него нет.
Новой находкой это не считается, пока не измерен рост.
- **«У записи нет владельца: вошедший видит чужие записи».** Не дефект и не
новость: приём, опрос и файл закрыты сессией OIDC с 2026-08-12, а
разграничения по владельцу нет сознательно — [security.md](security.md),
«Периметр», и `openspec/specs/access`, «Purpose». Находкой считается новая
поверхность, выставленная наружу, либо путь к содержимому записи **без**
сессии, а не повторение этого факта.
- **«Запись без владельца не достаётся никому».** Не дефект: владельца не имеют
записи, принятые ботом, — связи чата Telegram с учётной записью приложения
сервис не ведёт, её заводит `telegram-account-link`. Ответ такой записи по API
совпадает с ответом на несуществующую, и это норма — расшифровку отправитель
получает в чат.
**Прежняя редакция этой строки отменена 2026-08-14.** До задачи
`record-ownership` здесь стояло «вошедший видит чужие записи — не дефект и не
новость»: разграничения не было сознательно. Теперь оно есть, и такая находка
настоящая. Строка оставлена вместо удаления намеренно: прогон, помнящий её
прежний вид, выбросил бы регрессию не глядя.
### Вопросы по темам