diff --git a/openspec/specs/storage/spec.md b/openspec/specs/storage/spec.md index 0e5d6cc..5ad6953 100644 --- a/openspec/specs/storage/spec.md +++ b/openspec/specs/storage/spec.md @@ -335,7 +335,7 @@ MUST давать убрать запись целиком одним движе - **WHEN** шаг завершается отказом - **THEN** рабочей копии во временном каталоге не остаётся -### Requirement: Файл отдаётся ссылкой +### Requirement: Файл отдаётся владельцу, а не по ссылке Сервис SHALL отдавать файл записи **только её владельцу** и MUST судить владельца сам, при каждом обращении. Отданный файл MUST совпадать с принятым по длине. @@ -363,7 +363,7 @@ MUST давать убрать запись целиком одним движе Отсюда требование к отказам: сообщение об отказе чтения или укладки MUST не называть ключ файла и путь к нему дословно, а отказ выгрузки во внешнее хранилище MUST не называть полного адреса объекта. И то и другое кончается в -журнале и собирает ссылку не хуже успешного пути. +журнале и восстанавливает путь к файлу не хуже успешного пути. Что именно журнал приёма пишет ради прослеживаемости, нормирует capability `intake`. @@ -456,7 +456,7 @@ MUST давать убрать запись целиком одним движе ### Requirement: Файл записи сужается владельцем наравне с задачей Хранилище SHALL держать владельца и у файла записи — той же связью с учётной -записью, — а отдача файла MUST пускать к нему только его владельца. +записью, — а файл MUST отдаваться только своему владельцу. Владелец файла MUST назначаться при приёме, из узнанного предъявителя, а колонка файла MUST не допускать пустого значения наравне с колонкой записи. Разное