• Ru

unibpm-integration-runtime

Назначение

unibpm-integration-runtime — это базовый runtime-сервис для выполнения integration-модулей UniBPM.

Он отвечает за:

  • запуск Spring Boot приложения;
  • загрузку integration-модулей;
  • security и CORS;
  • базовую инфраструктуру (логирование, конфигурацию).

Технологический стек

  • Java 17
  • Spring Boot 3.x
  • Maven
  • Docker

Архитектура

Runtime представляет собой стандартное Spring Boot приложение, к которому подключаются integration-модули как зависимости.

Каждый integration-модуль:

  • поставляет auto-configuration;
  • регистрирует свои endpoints;
  • использует инфраструктуру runtime.

Запуск

Локально

mvn spring-boot:run

Через Docker

docker build -t unibpm-integration-runtime .
docker run -p 8091:8091 unibpm-integration-runtime

Конфигурация

Общие properties

server:
  port: 8091

Security модель

Принципы

  • Все endpoints под /public/**без аутентификации
  • Все остальные endpoints — запрещены
  • CSRF отключён
  • Stateless

Пример SecurityConfig

.authorizeHttpRequests(auth -> auth
    .requestMatchers("/public/**").permitAll()
    .anyRequest().denyAll()
)

CORS

CORS конфигурируется на уровне runtime и управляется через properties.

unibpm:
  integration:
    runtime:
      cors:
        enabled: true
        path-patterns: ["/public/**"]
        allowed-origin-patterns:
          - "http://localhost:*"
        allowed-methods: ["POST", "OPTIONS"]

Расширение runtime

Чтобы добавить новый integration-модуль:

  1. Создать модуль с auto-configuration.
  2. Подключить его как dependency.
  3. Включить через properties (если требуется).

Runtime не требует изменений кода.