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:
- Create a module with auto-configuration.
- Add it as a dependency.
- Enable it through properties (if required).
The runtime does not require code changes.