Документация
Вся документация теперь поставляется вместе с релизом — в репозитории, папка docs. Обращаться к закрытым вики (wiki) или запрашивать файлы у команды продукта больше не требуется. В комплект входят:
- Руководство пользователя;
- Руководство администратора;
- Руководство по инсталляции;
- Инструкция по миграции;
- Контракт программного интерфейса приложения (API) в формате YAML;
- Описание параметров конфигурации;
- Примечания к релизу (Release Notes), которые настоятельно рекомендуем читать.
(Из конвейера (pipeline) весь архив документов доступен для выгрузки в формате PDF)
Автоматическая деактивация устаревших предложений
В модуле реализованы регламентные процессы автоматической деактивации предложений — по истечении даты действия или срока хранения в базе данных. Это решает две задачи: исключает получение клиентами неактуальных предложений и обеспечивает фиксацию события деактивации в витрине данных через механизмы репликации (DTP) и отслеживания изменений данных (CDC).
(Процессы реализованы для PostgreSQL-версии приложения. Для Tarantool необходимо завести отдельный запрос на доработку)
Точечное обновление параметров предложения
До версии 25.5 объект params (произвольные параметры предложения) можно было только полностью перезаписать — чтобы ничего не потерять, приходилось сначала вычитывать текущее состояние. В прошлой версии для params и reasonParams это исправили: теперь можно точечно добавить или удалить параметр по стандарту RFC 7396 (JSON Merge Patch). Старое поведение никуда не делось — включается флагами replace_all_params / replace_all_reasonParams.
В релизе 26.0 поддержка точечного обновления расширена: теперь оно доступно и для параметров отображения — contactParams.
Поддержка нового канала «из коробки»
В модуль добавлен коробочный FCM-адаптер. Теперь через Communication можно отправлять мгновенные уведомления (push) наравне с СМС, электронной почтой (email) и другими каналами. FCM (Firebase Cloud Messaging) — сервис Google для мгновенных уведомлений (push) с единым программным интерфейсом приложения (API) для Android, iOS и веба.
Миграция ключевых полей с json на jsonb
Поля template, properties и contact_info в таблице task, а также batch_template.template переведены с типа json на jsonb. Бинарное хранение дает три практических преимущества: меньший объем на диске, более быстрое чтение и возможность строить индексы непосредственно по ключам внутри JSON. Фильтрация и поиск по вложенным полям теперь выполняются без разбора всего документа на каждый запрос.
Запись в историю коммуникаций при создании задачи
Раньше коммуникация сразу после создания была видна только в очереди на отправку, а запись в историю коммуникаций появлялась лишь после отправки или отмены. Теперь запись в историю производится в момент создания задания на отправку: коммуникация отслеживается с начала жизненного цикла, а не по факту его завершения.
Оптимизация хранения шаблонов в пакетной задаче (Batch Task)
Поле template у задания на коммуникацию внутри массовой рассылки (батча) теперь заполняется, только если оно отличается от шаблона. Теперь шаблон сохраняется один раз на массовую рассылку (батч), а на уровне отдельных коммуникаций фиксируется только отклонение.
Технические изменения
- Java 25
Оба модуля переведены на Java 25: Offer — с версии 17, Communication — с версии 21. Для Offer дополнительно настроен сборщик мусора G1 (G1 garbage collector); - Шардирование batch_counter
В Communication добавлено шардирование таблицы — снижает конкуренцию за блокировки базы данных при высокой нагрузке и повышает производительность; - Обслуживание партиций
Логика разделена: создание — при старте и по расписанию, удаление — только по расписанию. Повышает стабильность при ограниченных ресурсах базы данных. Ручной запуск доступен через POST /maintenance/run; - Гибкие фильтры
В Communication добавлены гибкие фильтры для выборки коммуникаций из истории под конкретные бизнес-сценарии; - Обработка дублирующихся ключей
Вместо 500 Internal Server Error при конфликте ключей теперь возвращается 409 Conflict — в Offer и Communication; - Метрики
Расширен набор метрик: Kafka-продюсер, репозитории Tarantool, внутренние пулы.
Устаревшая и удаленная функциональность
Ряд параметров программного интерфейса приложения (API) и таблиц базы данных, ранее помеченных как устаревшие (Deprecated), удален. Параметры и сервисы, помеченные как устаревшие (Deprecated) в новой итерации, продолжают работать, однако до конца 2026 года необходимо перейти на актуальные аналоги.
Отдельно: в Communication полностью удалена функциональность рабочих дней (Workdays). Если ограничения по дням отправки были настроены через нее — необходимо перейти на календарь запретов.
Полные списки изменений, включая критические изменения (Breaking Changes), — в примечаниях к релизу (Release Notes) CM Ocean Offer 26.0.0 и CM Ocean Communication 26.0.0. По возникающим вопросам обращайтесь в команду поддержки или продукта.