Book a Demo

unibpm-integration-runtime

Purpose

unibpm-integration-runtime is the base runtime service for executing Cabinee integration modules.

It is responsible for:

  • starting the Spring Boot application;
  • loading integration modules;
  • security and CORS;
  • core infrastructure (logging, configuration).

Technology stack

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

Architecture

The runtime is a standard Spring Boot application with integration modules attached as dependencies.

Each integration module:

  • provides auto-configuration;
  • registers its endpoints;
  • uses the runtime infrastructure.

Startup

Locally

mvn spring-boot:run

Via Docker

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

Configuration

Common properties

server:
  port: 8091

Security model

Principles

  • All endpoints under /public/** are unauthenticated
  • All other endpoints are denied
  • CSRF is disabled
  • Stateless

SecurityConfig example

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

CORS

CORS is configured at the runtime level and controlled through properties.

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

Extending the runtime

To add a new integration module:

  1. Create a module with auto-configuration.
  2. Add it as a dependency.
  3. Enable it through properties (if required).

The runtime does not require code changes.