Конфигурация UniBPM
Формат
| Prefix (группа параметров) | Параметр | Описание | Значение по-умолчанию |
|---|
Основные параметры приложения (application)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| application | version | Версия приложения (по-умолчанию берется из pom.xml) | @project.version@ |
| application | admin-role-name | Имя роли администратора | ROLE_unibpm-admin |
| application | application-url | URL приложения для отображения в шаблонах | http://localhost:8099 |
| application | sender-role-name | Имя роли для работы с Sender через REST API | unibpm-sender |
| application | prefix-role-name | Префикс ролей | ROLE_ |
| application | preference-theme-key | Ключ пользовательской настройки темы | THEME |
| application | workflow.code-max-length | Максимальная длина кода процесса | 10 |
| application | correlate-message-tenants | Многотенантная маршрутизация сообщений BPMN | true |
| application | fqdn | Полное доменное имя для формирования Message-ID в исходящих сообщениях | localhost |
| application | ticket-number-prefix | Префикс номеров заявок для формирования тем исходящих сообщений | Ticket |
| application | plain-text-pattern | Regexp фильтрации изображений (plain text) для обработки входящих сообщений | см. application.yaml |
| application | html-text-pattern | Regexp фильтрации изображений (HTML) для обработки входящих сообщений | см. application.yaml |
| application | user-attribute-position | Атрибут Keycloak, в котором хранится должность пользователя | jobTitle |
| application | user-attribute-id | Атрибут Keycloak, в котором хранится табельный номер (ID сотрудника) пользователя | employeeId |
| application | keycloak-pagination | Размер страницы при импорте пользователей из Keycloak | 100 |
Почтовый шлюз (sender)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| sender | retries | Количество попыток обработки сообщений | 3 |
| sender | is-handle | Включить/отключить обработку сообщений | true |
| sender | send-delay-in-millis | Интервал отправки исходящих сообщений (мс) | 60000 |
| sender | receive-delay-in-millis | Интервал получения входящих сообщений (мс) | 60000 |
| sender | channel-init-delay-in-millis | Интервал обновления каналов (мс) | 60000 |
| sender | token-refresh-delay-in-millis | Интервал обновления OAuth2 токенов (мс) | 60000 |
Интеграция с Keycloak (identity.keycloak)
Используется для:
- синхронизации пользователей и групп
- получения realm-ролей
- OAuth2 client_credentials для Keycloak Admin API
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| identity.keycloak | base-url | URL сервера Keycloak | — |
| identity.keycloak | realm | Realm | — |
| identity.keycloak | client-registration-id | OAuth2 registration ID клиента | — |
| identity.keycloak | principal | Principal для client_credentials | — |
| identity.keycloak | delay-in-millis | Интервал синхронизации пользователей (мс) | 60000 |
| identity.keycloak | keycloak-pagination | Размер страницы при импорте пользователей | 100 |
| identity.keycloak | user-attribute-position | Атрибут Keycloak для должности | jobTitle |
| identity.keycloak | user-attribute-id | Атрибут Keycloak для табельного номера | employeeId |
| identity.keycloak | front-client-registration-id | Registration ID frontend клиента | — |
Интеграция с Camunda
camunda-kafka-import
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| camunda-kafka-import | user-task-event-topic | Kafka topic для импорта пользовательских задач | reunico.unibpm.task.events.prod |
| camunda-kafka-import | change-state-topic | Kafka topic для импорта смены статусов | reunico.unibpm.execution.events.prod |
camunda-client
Интеграция с Camunda REST API осуществляется через OAuth2 (grant type: client_credentials).
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| camunda-client | rest-api-url | URL Camunda REST API | — |
| camunda-client | oauth2-registration-id | Registration ID клиента из spring.security.oauth2.client.registration | — |
| camunda-client | oauth2-principal | Principal (service name) для кэширования access token | — |
OAuth2 Clients (spring.security.oauth2.client)
UniBPM использует OAuth2 (client_credentials) для доступа к внешним сервисам.
Используемые клиенты
| Registration ID | Назначение |
|---|---|
| unibpm-keycloak | Доступ к Keycloak Admin API |
| unibpm-camunda | Доступ к Camunda REST API |
Токены:
- автоматически запрашиваются
- кэшируются
- обновляются при истечении срока действия
Интеграция с внешними сервисами (calender)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| calender | is-day-off-url | URL сервиса импорта календарей | https://isdayoff.ru |
Конфигурация Kafka (spring.kafka)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| spring.kafka | bootstrap-servers | Адрес Kafka брокера | 127.0.0.1:9092 |
| spring.kafka.consumer | group-id | Группа Kafka консюмеров | unibpm-1 |
Конфигурация БД и Liquibase
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| spring.datasource | url | URL подключения к БД | из env переменных |
| spring.datasource | username | Имя пользователя БД | из env переменных |
| spring.datasource | password | Пароль | из env переменных |
| spring.datasource.hikari | auto-commit | Автокоммит | false |
| spring.datasource.hikari | pool-name | Имя пула | Hikari |
| spring.jpa | hibernate.ddl-auto | Стратегия DDL | none |
| spring.liquibase | change-log | Путь к changelog | classpath:config/liquibase/master.xml |
| spring.liquibase | enabled | Включить Liquibase | true |
Пул потоков и асинхронная обработка (task execution & scheduling)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| spring.task.execution | thread-name-prefix | Префикс потоков | unibpm-task- |
| spring.task.execution.pool | core-size | Минимум потоков | 2 |
| spring.task.execution.pool | max-size | Максимум потоков | 50 |
| spring.task.execution.pool | queue-capacity | Размер очереди | 10000 |
| spring.task.scheduling | thread-name-prefix | Префикс потоков планировщика | unibpm-scheduling- |
| spring.task.scheduling.pool | size | Кол-во потоков | 2 |
Загрузка файлов (spring.servlet.multipart)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| spring.servlet.multipart | max-file-size | Максимальный размер файла | 32MB |
| spring.servlet.multipart | max-request-size | Максимальный размер запроса | 32MB |
Параметры сервера (server)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| server | port | Порт приложения | 8099 |
| server.error | include-message | Включить текст ошибки | always |
| server.error | include-binding-errors | Включить binding ошибки | always |
| server.error | include-exception | Включить exception | true |
| server.error | include-stacktrace | Включить stacktrace | always |
Swagger UI (springdoc.swagger-ui)
Рекомендуется отключить документирование API на продуктивном стенде.
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| springdoc.swagger-ui | swagger-ui.enabled | Включение / отключение документации API (UI). Рекомендуется установить в false на продуктивном стенде. | true |
| springdoc.swagger-ui | api-docs.enabled | Включение / отключение документации API (JSON). Рекомендуется установить в false на продуктивном стенде. | true |
| springdoc.swagger-ui | display-operation-id | Отображать operationId | true |
AI Configuration (ai)
| Prefix | Параметр | Описание |
|---|---|---|
| ai.enabled | Включить AI функциональность | |
| spring.ai.openai.api-key | OpenAI API ключ | |
| spring.ai.openai.embedding.options.model | Модель эмбеддингов | |
| spring.ai.vectorstore.pgvector.* | Настройки pgvector |
Мониторинг (management)
| Prefix | Параметр | Описание | Значение по-умолчанию |
|---|---|---|---|
| management.info.git | enabled | Включить git информацию | true |
| management.info.git | mode | Режим git info | full |
| management.info.os | enabled | Включить инфо об ОС | true |
| management.info.build | enabled | Включить build info | true |
| management.info.env | enabled | Включить env info | true |
| management.endpoints.web.exposure | include | Какие endpoints включены | health,info |
| management.endpoint.health | show-details | Подробности по health | always |