Веб-расширения
Раздел для разработчиков.
Веб-расширения — это сторонние программы (веб-модули) внутри приложения КОСКО BPM. Расширение состоит из JS-файла, CSS-файла и других ресурсов (например, шаблонов или изображений).
Типы расширений
Модальные — открываются в отдельном слое поверх открытого раздела (например, каталога с записями). Могут занимать часть экрана или всю рабочую область приложения. При этом основной экран приложения остается в DOM-дереве. Пример — панель телефонии.
Экранные — занимают всю рабочую область приложения, замещая в DOM-дереве открытый раздел приложения. Этот тип расширений поддерживается пока не полностью.
Фоновые — работают в фоне и управляют DOM-деревом (встраивают элементы) в нужный момент.
Создание расширений
1. Выберите уникальное название
Каждое расширение имеет уникальный код-идентификатор. Код может состоять из латинских букв, цифр и знака дефис.
2. Напишите расширение
Исходный код минимального расширения приведен в нашем публичном репозитарии:\
https://bitbucket.org/snippets/isup/d4bMe/blank-modal-extension
3. Регистрация расширения
КОСКО BPM защищает расширения от тиражирования между системами в разных компаниях. Все расширения проходят через систему лицензирования. Подключение расширения к системе возможно только при наличии лицензии на это расширение в лицензии компании.
Чтобы зарегистрировать расширение в системе лицензирования, необходимо обратиться к разработчикам платформы, указав выбранный уникальный код расширения и регистрационный номер лицензии.
Без регистрации расширения в системе лицензирования подключить его будет невозможно.
Подключение расширений
Подключать сторонние и собственные расширения можно только в серверной версии.
Файлы расширения необходимо разместить на внешнем веб-сервере или положить в рабочую папку на сервере КОСКО BPM (если у вас несколько серверов, то на каждый сервер): bpium_path/www/modules/my-extension/
Список подключенных расширений хранится в каталоге «Расширения» в отделе «Система». Для подключения расширения создайте новую запись в этом каталоге:
Название — название расширения в главном меню приложения
Код — уникальный код расширения (должен совпадать с зарегистрированным в лицензии)
Иконка — класс иконки для отображения в меню
JS URL — URL или путь к JavaScript файлу расширения (можно указать несколько, каждый с новой строки)
CSS URL — URL или путь к CSS файлу расширения (можно указать несколько, каждый с новой строки)
Проверка подключения
После создания записи расширения и обновления страницы в браузере проверьте подключение:
Откройте консоль браузера (F12).
Перейдите на вкладку Network (Сеть).
Обновите страницу (F5).
Проверьте запросы к файлам расширения:
Должны быть видны запросы к JavaScript файлам (указанным в поле JS URL).
Должны быть видны запросы к CSS файлам (указанным в поле CSS URL).
Статус запросов должен быть 200 OK (успешная загрузка).
Проверьте ответ сервера на запрос /auth/company:
В ответе должно быть поле extensions с массивом расширений.
Ваше расширение должно присутствовать в массиве (если оно разрешено лицензией).
Если запросы к файлам отсутствуют или возвращают ошибки (404, 403 и т.д.), проверьте:
Правильность путей в полях JS URL и CSS URL.
Доступность файлов по указанным адресам.
Права доступа к файлам на сервере.
Наличие лицензии на расширение для компании.
Как обновить расширение?
Для обновления существующего расширения:
Откройте запись расширения в каталоге «Расширения».
Измените необходимые поля (название, иконка, URL файлов).
Сохраните изменения.
Примечание:
Изменение кода расширения может повлиять на доступность расширения для компаний, так как проверка лицензии выполняется по коду.
Изменение URL файлов применяется для всех компаний, имеющих доступ к расширению.
После обновления URL файлов может потребоваться обновление кэша браузера пользователей.
Как удалить расширение?
Удаление расширения — операция, которая влияет на функциональность компаний, использующих это расширение.
Внимание: Перед удалением расширения убедитесь, что:
Расширение не используется критически важными компаниями.
Удаление не нарушит работу системы.
Как удалить расширение:
Откройте запись расширения в каталоге «Расширения».
Нажмите кнопку удаления записи.
Подтвердите удаление.
Примечание: После удаления расширения оно перестанет быть доступным для всех компаний, даже если оно было разрешено в лицензии. Для восстановления функциональности потребуется повторное создание расширения с тем же кодом.
Технические детали
Структура данных расширения
Расширение в системе представлено следующими данными:
code — уникальный код расширения (используется для идентификации и проверки лицензии).
title — название расширения (отображается в интерфейсе).
icon — класс иконки для отображения в меню.
js — массив URL JavaScript файлов (может быть многострочным текстом).
css — массив URL CSS файлов (может быть многострочным текстом).
API для работы с расширениями
Система предоставляет API для получения расширений компании:
Endpoint: /auth/company (при авторизации пользователя)
Метод: GET
Ответ: объект с полем extensions, содержащим массив доступных расширений:

Расширения автоматически фильтруются по лицензии компании перед отправкой в веб-клиент. Сервер не вернет расширения, на которые не получена лицензия для компании.
Порядок загрузки расширений
Расширения загружаются в следующем порядке:
При авторизации пользователя система получает список доступных расширений
Веб-клиент инициализирует загрузку расширений через метод loadExtensions()
Для каждого расширения загружаются CSS файлы (если указаны)
Затем загружаются JavaScript файлы (если указаны)
После загрузки расширение помечается как загруженное и больше не загружается в текущей сессии
Почему расширение не загружается в веб-клиенте?
Если расширение не загружается в веб-клиенте, проверьте:
Регистрация расширения: убедитесь, что расширение зарегистрировано в системе лицензирования (см. раздел "Регистрация расширения")
Код расширения в лицензии: убедитесь, что код расширения добавлен в лицензию компании через сервер лицензирования разработчиков
Доступность файлов: проверьте, что файлы расширений доступны по указанным в полях JS URL и CSS URL адресам
Права доступа: убедитесь, что файлы расширений доступны для чтения веб-сервером
Кэш браузера: попробуйте очистить кэш браузера или выполнить жесткую перезагрузку страницы (Ctrl+Shift+R)
Консоль браузера: проверьте консоль браузера (F12) на наличие ошибок загрузки файлов
Сетевые запросы: проверьте вкладку Network в консоли браузера — должны быть запросы к файлам расширений со статусом 200 OK
Можно ли использовать внешние URL для расширений?
Да, можно использовать абсолютные URL для загрузки расширений из внешних источников:
Преимущества: не требуется хранить файлы на сервере КОСКО BPM.
Ограничения: внешние ресурсы должны быть доступны по HTTPS и иметь правильные CORS заголовки.
Важно: При использовании внешних URL убедитесь, что ресурсы доступны и имеют стабильные адреса. Изменение внешних URL может привести к недоступности расширения.
Можно ли изменить код расширения после создания?
Технически можно изменить код расширения, однако это повлияет на доступность расширения:
Проблема: если код расширения изменен, лицензии компаний, которые ссылаются на старый код, перестанут работать.
Решение: перед изменением кода необходимо обновить все лицензии компаний, использующих это расширение, указав новый код.
Рекомендация: лучше создать новое расширение с новым кодом, чем изменять существующее.
Как проверить, какие расширения доступны для компании?
Чтобы проверить доступные расширения для компании:
Войдите в систему от имени пользователя этой компании.
Откройте консоль браузера (F12).
Перейдите на вкладку Network (Сеть).
Обновите страницу (F5).
Найдите запрос к /auth/company и откройте его.
В ответе сервера проверьте поле extensions — там будет список доступных расширений для этой компании.
Также проверьте сетевые запросы — должны быть запросы к файлам расширений (JS и CSS файлы).
Примечание: В ответе /auth/company будут только расширения, разрешенные лицензией компании. Расширения без лицензии не будут отображаться в списке.
Можно ли временно отключить расширение для компании?
Да, можно временно отключить расширение для компании:
Через каталог: удалите запись расширения из каталога «Расширения» (это отключит расширение для всех компаний).
Через лицензию: обратитесь к технической поддержке КОСКО BPM для удаления кода расширения из лицензии компании (это отключит расширение только для конкретной компании).
Примечание: Удаление записи из каталога отключит расширение для всех компаний. Для отключения расширения только для одной компании необходимо обратиться к технической поддержке КОСКО BPM, так как изменения в лицензиях выполняются только через сервер лицензирования разработчиков.
Как обновить файлы расширения?
Для обновления файлов расширения:
Замените файлы расширения на сервере (если используются относительные пути).
Или обновите URL в поле JS URL или CSS URL (если используются внешние URL).
Сохраните изменения в записи расширения.
Пользователям может потребоваться очистить кэш браузера или выполнить жесткую перезагрузку страницы.
Совет: Используйте версионирование в URL файлов (например, /extensions/my-extension/v1.0.0/script.js) для контроля версий и обновлений расширений.
Как добавить расширение в лицензию компании?
ВАЖНО: Подключать сторонние и собственные расширения можно только в серверной версии КОСКО BPM.
Сервер лицензирования находится у разработчиков КОСКО BPM. Все проверки доступности расширений и добавление их в лицензии выполняются через сервер лицензирования платформы.
Для серверной версии процесс добавления расширения в лицензию компании:
Зарегистрируйте расширение в системе лицензирования (см. раздел "Регистрация расширения"):
Напишите письмо на support@bpium.ru
Укажите выбранный уникальный код расширения
Укажите ваш регистрационный номер лицензии
Создайте расширение в каталоге (см. раздел "Как создать расширение?")
Разместите файлы расширения на сервере (см. раздел "Размещение файлов расширений")
Дождитесь подтверждения регистрации от технической поддержки Бипиум:
Разработчики Бипиум добавят код расширения в лицензию компании через сервер лицензирования;
Лицензия будет обновлена с правильной цифровой подписью на сервере лицензирования;
Ваша система автоматически загрузит обновленную лицензию при следующем обращении к серверу лицензирования разработчиков.
КРИТИЧНО:
Без регистрации расширения в системе лицензирования подключить его будет невозможно
Лицензии имеют цифровую подпись, которая проверяется при загрузке
Нельзя просто изменить лицензию в базе данных без правильной подписи — система не примет такую лицензию
Для получения лицензии с правильной подписью необходимо обратиться к технической поддержке Бипиум через support@bpium.ru
Связи с другими каталогами
Каталог Расширения связан с другими системными каталогами:
Компании — доступность расширений для компаний определяется через лицензию компании. Подробнее см. в документации по каталогу Компании
Поддержка
Если у вас возникли вопросы или проблемы при работе с каталогом Расширения, обратитесь к технической поддержке Бипиум support@bpium.ru, предоставив:
Версию Бипиум
Лицензию (серийный номер)
Описание проблемы или вопроса
Код расширения
Скриншоты