bizproc 26.900.0: установщик на миграциях и защита от unSign с мусором на входе

3 мин чтения
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Релиз без единого изменения публичного API — api.diff пустой. Всё интересное в установщике: модуль переехал на UpdateSystem\Migration. Плюс пачка проверок типов там, где раньше подписанные значения из запроса шли в разбор как есть.

Установка описана декларативно

InstallDB / UnInstallDB больше не вызывают RunSQLBatch по install/db/*/install.sql и не регистрируют события и агентов напрямую — вместо этого installMigrations() / uninstallMigrations($dropTables). Приватный installAgents() (агент CreateRobotVersionIndex) из install/index.php удалён.

Что появилось:

  • install/migrations/tables.php — описание таблиц модуля, включая b_bp_workflow_template.CREATE_SOURCE varchar(32) default 'USER' из предыдущего релиза;
  • install/migrations/events.php — те же обработчики, что раньше жили в теле InstallDB (rest, forum, crm, ai, humanresources:OnAiReportsEnabled и другие);
  • install/migrations/agents.php — StorageCleanupAgent, SyncAiAgentNodesAgent, CreateRobotVersionIndex;
  • migration_config.json — defaultTableName = b_bp_workflow_template, маппинг install/components|js|activities.

Файлы install/db/*/install.sql в этом релизе ещё на месте — их удалят в 26.1000.0. То есть переезд сделан в два шага: сначала новый механизм рядом со старым, потом удаление старого. Разумная последовательность, если вы будете переводить свои модули.

Механику UpdateSystem\Migration и то, как её включить в модуль в /local/, разбираем отдельно.

Проверки типов перед unSign

По контроллерам и компонентам разошлась однотипная правка: перед unSign* проверяется is_array($documentType) или is_string(...SIGNED), а $_REQUEST['IFRAME'] читается через ?? null. Затронуты bizproc.automation, bizproc.debugger.start, bizproc.globalfield.edit|list, контроллеры debugger и globalfield.

Подписанные параметры приходят из запроса, а значит их тип контролирует клиент. Передайте массив там, где ждали строку, — и разбор подписи получает не то, что ожидает. Само по себе это обычно не пробой безопасности (подпись всё равно не сойдётся), но это фаталы и мусор в логах на ровном месте, и в них тонут настоящие ошибки.

Одно изменение вызова

DeleteStorageItemCommand в контроллере хранилища вызывается иначе: было ($storageTypeId, $id), стало ($id). Сам класс команды в этом диффе не менялся — то есть тип хранилища перестал быть нужен для удаления элемента. Если вы конструировали команду сами со старым набором аргументов, проверьте. В следующем релизе (26.1000.0) она поедет дальше — начнёт принимать массив id.

Прочее

  • TemplateBuilder (генератор шаблонов AI-агента) добавляет lang-префикс к заголовкам активностей.
  • CSS setup-template: класс ошибки поля и маркер обязательности в превью; стили deletedatastorageactivity вынесены в src/style.css.
  • Правки шаблона bitrix_ai_project_pulse.

Что делать

  • На работающем портале — ничего: публичного API релиз не меняет, схема тоже.
  • Если ваш код искал bizproc/install/db/mysql/install.sql, знайте, что в следующем релизе файла не станет.
  • Смотрите install/migrations/* этого модуля как на живой пример перед переводом своих модулей.

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

bizproc 26.1800.0 Ломающее Свежее

Bizproc 26.1800.0: ошибка действия обрывает ветку, опции стали feature-флагами

В Bizproc 26.1800.0 действие на `BaseActivity`, вернувшее ошибку, обрывает свою ветку в новом конструкторе, поля «Файл» в хранилищах закрыты для записи, а одиннадцать скрытых опций модуля заменены feature-флагами, и `Option::set()` их больше не включает. Свои действия, запись файлов в хранилища, скр…

2 мин
bizproc 26.1700.0 Безопасность Свежее

bizproc 26.1500.0–26.1700.0: закрыты дыры в правах, lib/ на PSR-4, задания выполняются пачкой

В БУС пришли три версии bizproc: 26.1500.0, 26.1600.0 и 26.1700.0. Каждая закрывает дыры в правах, последняя ещё и доступ к чужим файлам через задания, так что обновляйтесь. После обновления проверьте код, который подключает файлы модуля по путям, интеграции, которые передают в задания ID файлов, и…

3 мин
bizproc 26.1450.0 Рутинное Свежее

bizproc 26.1450.0: установщик подключает модуль до создания ролей

В bizproc 26.1450.0 в установщик модуля добавилась одна строка. Метод `InstallDB()` теперь вызывает `\Bitrix\Main\Loader::includeModule(’bizproc’)` сразу после `RegisterModule()` и только потом `AccessInstaller::install()`, который заводит предустановленные роли доступа. `AccessInstaller::install()`…

1 мин

bizproc 26.1400.0 + bizprocdesigner 26.800.0: новые REST-методы внешнего AI-агента, дочерние действия в CBPActivity, история версий шаблонов

bizproc 26.1400.0 и bizprocdesigner 26.800.0 ставятся одним шагом. Внешнему AI-агенту дизайнера придётся сменить имена трёх методов и формат запросов, потому что его V3-контроллеры перевели с `ArrayResponse` на типизированные запросы и DTO. Свои действия из `/local/activities` стоит проверить на обн…

4 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти