Кратко

  • Индивидуальный Internet-Draft от 27 октября предлагает записи DeletedItem для уничтоженных писем, контактов, событий календаря, файлов и почтовых фильтров с объявленным сроком восстановления.
  • В общем аккаунте старое право чтения служит первым условием видимости записи; окончательное удаление и восстановление проходят собственные проверки полномочий.

Письмо с договором исчезло из общей папки. Почтовый клиент больше не находит его обычным способом. Проект JMAP Undelete предлагает серверу, который внедрит расширение, оставить другую точку доступа: DeletedItem с временем уничтожения, датой окончания срока, снимком свойств и, если доступен, идентификатором содержимого для скачивания. Аккаунт объявляет типы объектов, которые сохраняет, и срок, в течение которого новое удаление можно обратить.

Запись появляется после уничтожения поддерживаемого объекта независимо от протокола: JMAP, команды expunge в IMAP, удаления через POP3 или автоматической очистки корзины. Простое перемещение в корзину её не создаёт. Обещание «вернуть удалённое» приходится привязывать к реальному событию, а не к одинаковой на вид кнопке.

Для общего аккаунта проект вводит исторический фильтр. Раздел 3.3 разрешает показывать запись лишь человеку, который мог прочитать объект хотя бы в одном из его контейнеров в момент уничтожения. Это необходимое условие, а не безусловный пропуск. Сервер вправе ограничить показ сильнее, вплоть до одного владельца аккаунта. Если прежние права нельзя восстановить надёжно, текст рекомендует как раз режим для владельца. RFC 9670 описывает совместный доступ JMAP; восстановление добавляет к нему вопрос о правах в конкретный момент прошлого.

Дальше полномочия расходятся. Чтобы окончательно убрать DeletedItem, нужны включённый mayPurge и право удалить исходный объект из его прежних контейнеров. Чтобы восстановить, нужно право создать объект в месте назначения. Если старой папки больше нет или туда нельзя записать, сервер пробует место по умолчанию, например входящие; при отсутствии доступного места операция отклоняется. Бывший читатель может увидеть карточку восстановления и при этом не иметь права ни очистить её, ни вернуть письмо.

Сервер не вправе сдвинуть уже назначенный expiresAt на более ранний срок, просто поменяв политику хранения. По истечении срока расширение немедленно прекращает выдавать запись; допустимая очистка закрывает этот путь раньше. Раздел о безопасности отмечает, что делегированная сессия или украденные учётные данные с доступом к аккаунту позволяют читать недавно уничтоженное содержимое. Datatracker показывает индивидуальный проект в состоянии I-D Exists. У названного в тексте сервера есть собственный способ восстановления, но предложенный интерфейс JMAP ещё не внедрён. Нет опубликованного теста, который меняет права на общую папку после удаления и показывает, кому затем видна сохранённая запись.