Проект

Общее

Профиль

Задача #16922

Реализация расширения для CalDAV календарей

Добавил(а) Кальметов Игорь около 1 месяца назад. Обновлено 24 дня назад.

Статус:
В работе
Приоритет:
Нормальный
Назначена:
-
Версия:
Дата начала:
02.02.2022
Срок завершения:
31.08.2022 (В срок около 3 месяца)
Готовность:

10%

Оценка временных затрат:
owner-email:
Внешний URL:

Описание

Проблема: Фактическая невозможность хранения аттачментов в кадендарях CalDAV.

Решение:

В качестве веб-интерфейса к Tegu можно использовать, поставляемый нами форк опенсорсного NextCLoud, либо совместимого с нашим сервером - Р7-Офис.

Принципиально существует два способа доступа к информации
  • веб-интерфейс
  • толстые клиенты (декстоп, мобильная платформа).
    С реализацией веб-интерфейса (Р7 и NextCloud) проблем нет уже сейчас, проблема с клиентами - пока остается.

Далее поговорим только о толстых клиентах.

Проблема с клиентами вызвана тем, что кроме импортозависимых проприетарных почтовых клиентов мы можем использовать только:
  • Стандартные (открытые) протоколы;
  • Либо собственный протоколы. В этом случае естественно необходимо делать протокол открытым для того, чтобы использовать его могли не только мы, но все (как минимум отечественные) разработчики. Такая работа ведется, но по понятным причинам занимает заметное время.

Поэтому в ближайшей перспективе из соображений совместимости мы вынуждены ограничиться открытыми протоколами, из которых для календарей используется CalDAV. Это способ двустороннего обмена файлами на базе протокола HTTPS. Другими словами, весь пользовательский календарь (хранящий как события, так и вложенные файлы) - это один файл, который сервер предлагает клиенту для периодической синхронизации.

Очевидно, что когда вложенных файлов (этачментов) много, то размер синхронизируемого файла может достигать размера, синхронизация которого может быть либо затруднена, либо невозможна. Еще раз повторю, что данная проблема актуальна только для толстых клиентов.

В этой связи, на этот год запланированы следующие доработки:
  1. Получив событие с помощью штатного механизма CalDAV, сервер разбирает его, сохраняя приложенные файлы в архив, которому присваивается HTTPS-URL, содержащий сгенерированную комбинацию символов;
  2. Вложенный файл в календарном событии заменяется ссылкой на полученный архив и в таком виде возвращается пользователю при следующей синхронизации;
  3. Этот механизм позволят снизить размер синхронизируемого файла на несколько порядков т.к. этачменты будут скачиваться не периодически, а только по требованию. Однако и этот механизм не может гарантировать целостность календаря. Поэтому при достижении событиями установленного в пользовательских настройках срока хранения, событие переносится в архивные календари (также доступные по CalDAV).
Здесь прослеживается некоторая аналогия с PST-файлами MS Exchange (что крайне неудобно, но таковы ограничения открытого протокола). Тем не менее, данное решение позволит:
  1. Использовать стандартные десктопные приложения;
  2. Решить проблему объема хранимой в календарях информации.
#1

Обновлено Кальметов Игорь 24 дня назад

  • Параметр Версия изменился на Tegu 1

Экспортировать в Atom PDF