Вышел ONLYOFFICE DocumentServer 10: модули Apps, AI отдельно и пачка исправлений безопасности

ONLYOFFICE Docs 10

Вышел ONLYOFFICE DocumentServer 10, сервер онлайн-редакторов документов, таблиц и презентаций с совместной работой. Если коротко, что это такое: редакторы в браузере с заявленной полной совместимостью с форматами MS Office и OpenDocument, расширение через плагины, код под AGPLv3, сборки для Linux, Windows и macOS. Одновременно вышли и десктопные редакторы 10. Подробнее, зачем мне ONLYOFFICE и как он живёт рядом с Nextcloud, я писал раньше.

По словам разработчиков, в 10.0 около 50 новых функций, больше 1000 исправленных багов и около 35 закрытых уязвимостей.

AI вынесли, DocSpace превратился в Apps

Главная смена курса: вместо одной платформы DocSpace теперь набор модульных приложений ONLYOFFICE Apps. Их четыре: AI Agents, Forms, Rooms и Files, все бесплатные и под AGPLv3. В облаке они включены сразу, на своём сервере ставятся одной командой. Код при этом развивается в тех же репозиториях DocSpace, пишет OpenNet.

AI-инструменты в редакторах есть: чат, переписывание и перевод текста, формулы и анализ данных в таблицах, сборка слайдов, вопросы к PDF. Подключать можно как внешние сервисы, так и свои локальные модели. Но в открытых версиях встроенный AI убрали по просьбам пользователей, его ставят отдельно. А в конфиге редактора появился параметр editorConfig.customization.ai.disabled, чтобы выключить AI совсем.

Что нового в редакторах

По CHANGELOG самое заметное:

  • Во всех редакторах: таблица данных в диаграммах, превращение SVG в фигуры, кнопка «Скачать» на верхней панели, обновлённый магазин плагинов с категориями.
  • Документы: можно перейти к курсору другого участника и следовать за ним при совместной правке, запрет разрыва строки таблицы между страницами, «не отрывать от следующего» для таблиц, окно настройки горизонтальной линии, лучше работа с формулами в тексте справа налево.
  • Таблицы: сохранение в старый XLS, диаграммы из несмежных диапазонов, подсветка диапазонов в строке формул, фон листа, отключаемое автозаполнение. Работа ускорена за счёт раздельного хранения стилей и данных, формулы массивов по целым столбцам считаются быстрее и едят меньше памяти.
  • Презентации: режимы «Структура», «Заметки», «Образец выдач» и «Образец заметок», режим чтения, печать заметок, выдач и скрытых слайдов, экспорт в анимацию и видео с выбором слайдов, разрешения и формата.
  • PDF: удаление метаданных и аннотаций через Redact, панель настройки аннотаций, подпись через вкладку комментариев, формы по ролям со сбором данных, распознавание таблиц с видимыми границами в режиме правки текста.
  • Формы: сохранённые подписи и отключаемая проверка орфографии в отдельной форме.
  • Конвертация: поддержка китайского формата OFD, просмотр и конвертация как у XPS.

Серверная часть: что может сломать интеграции

Вот это стоит прочитать до обновления, если DocumentServer подключён к Nextcloud, своему порталу или WOPI:

  • JWT теперь включён по умолчанию в default.json. Если у вас он был выключен и интеграция работала без секрета, после обновления она отвалится, пока не пропишете JWT_SECRET с обеих сторон.
  • /converter, /docbuilder и /command больше не принимают токен из конфигурации редактора. В токен добавили поле operation.
  • Для WOPI теперь обязательны правила ipfilter с явным хостом, правила allow: * мало.
  • Через runtime.json можно менять только уровень логирования log4js.
  • Новые эндпоинты конвертации с загрузкой файла напрямую: POST /converter/from-file и POST /docbuilder/from-file. Публичные API Document Builder и конвертера можно выключить параметрами docbuilderEnable и convertServiceEnable.
  • Проверка целостности скачанных файлов, если интегратор передаёт нужные заголовки (checksumVerification, по умолчанию включена), и метрика coauth.connections.
  • Отдельный скрипт changes2forgotten убран: изменения переносятся в forgotten при остановке сервера.

Безопасность

В разделе Security CHANGELOG 43 пункта. Там XSS в гиперссылках DOCX, в окне аргументов функций и на странице /baseurl, обход песочницы макросов, в том числе с доступом к cookie, SSRF и перехват сеанса совместной правки через WOPI, path traversal, чтение локальных файлов при конвертации EPUB, переполнения буфера и чтение за границами в разборе DOC, XLS, PPT, PDF, XPS, EMF+ и WMF, выполнение встроенного JavaScript из PDF и повышение привилегий через скрипт documentserver-flush-cache. Плюс обновлённые библиотеки в Docker-образе. Если сервер торчит в интернет, это само по себе повод обновиться.

Как обновиться

Перед любым обновлением важная особенность ONLYOFFICE: документ сохраняется, только когда его закрыли все редакторы. Поэтому сначала выгоняем пользователей скриптом, он может работать до пяти минут, а заодно делаем бэкап томов и конфига.

В Docker по инструкции. Образ 10.0 уже лежит на Docker Hub, для amd64 и arm64:

# выгнать пользователей и сохранить документы
sudo docker exec onlyoffice documentserver-prepare4shutdown.sh

# посмотреть, какие тома смонтированы, и записать
sudo docker inspect --format='{{range $p,$conf:=.HostConfig.Binds}}{{$conf}};{{end}}' onlyoffice

sudo docker stop onlyoffice && sudo docker rm onlyoffice
sudo docker pull onlyoffice/documentserver:10.0

# запустить с теми же томами и тем же секретом
sudo docker run -i -t -d -p 80:80 --restart=always --name onlyoffice \
  -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
  -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
  -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
  -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \
  -e JWT_SECRET=ваш_секрет onlyoffice/documentserver:10.0

Пути к томам подставьте свои из вывода docker inspect, иначе новый контейнер не увидит старые данные. В docker compose то же самое: поменять тег образа на 10.0, затем docker compose pull и docker compose up -d.

Из пакетов в Debian и Ubuntu, после того же prepare4shutdown:

sudo documentserver-prepare4shutdown.sh
sudo apt-get update
sudo apt-get install --only-upgrade onlyoffice-documentserver

В CentOS и других RPM-системах то же через dnf: sudo dnf upgrade onlyoffice-documentserver. Пакеты 10.0.0 для Debian, Ubuntu, CentOS и Windows Server уже на странице загрузки. После обновления откройте любой документ из своей интеграции и убедитесь, что JWT совпадает: это самая вероятная поломка в 10.0.

Источники и ссылки


Комментарии загружаются…