Skip to main content
The Application Manager and Runtime Manager share the same container image and Helm chart. Refer to the Deployment Guidelines in the release notes to ensure compatibility and verify the correct version.

Infrastructure prerequisites

The Runtime Manager service requires the following components to be set up before it can be started:
  • PostgreSQL
  • MongoDB
  • Redis
  • Kafka
  • OAuth2 Authentication

Dependencies

Change the application name

Default Value: application-manager -> must be changed to runtime-manager

Core service configuration

Database configuration

The Runtime Manager uses the same PostgreSQL (to store application data) and MongoDB (to manage runtime data) as application-manager. Configure these database connections with the following environment variables:

PostgreSQL (Application data)

MongoDB (Runtime data)

Redis configuration

Runtime Manager uses Redis for caching. Configure Redis connection using the standard Redis environment variables. Quick reference:
Both SPRING_DATA_REDIS_* and SPRING_REDIS_* variable prefixes are supported. The SPRING_DATA_REDIS_* prefix is the modern Spring Boot standard and is recommended for new deployments.
For advanced Redis deployment modes (Sentinel, Cluster) and SSL/TLS setup, see the Redis Configuration guide. Note that Sentinel and Cluster modes are only supported by the Events Gateway service.

Kafka configuration

Kafka connection

Kafka OAuth authentication

When using the kafka-auth profile, the security protocol will automatically be set to SASL_PLAINTEXT and the SASL mechanism will be set to OAUTHBEARER.

Kafka topics

Since the Runtime Manager shares the same container image as the Application Manager, it uses the same Kafka topic definitions. However, the Runtime Manager conditionally activates a listener for the build.runtime-data topic (based on spring.application.name=runtime-manager), which is how it receives runtime data from the Admin service.
The KAFKA_TOPIC_BUILD_RUNTIMEDATA topic must resolve to the same value in both Admin and Runtime Manager. If the KAFKA_TOPIC_NAMING_ENVIRONMENT prefix differs between services (common after export/import to a new environment), Admin will produce to one topic and Runtime Manager will consume from another, causing data not to be passed back to the calling process after subprocess execution.

Build topics

Consumer configuration

Process topics

Other topics

For the full list of application resource topics (export, import, sync, resource usages, etc.), see the Application Manager Kafka configuration.

Authentication configuration

Security type

Service account configuration

The Runtime Manager and the Application Manager are built from the same artifact and share the flowx-runtime-manager-sa service account.
Upgrading from 5.1.x? Remove the legacy opaque-token env vars: SECURITY_OAUTH2_REALM, SECURITY_OAUTH2_CLIENT_CLIENTID, SECURITY_OAUTH2_CLIENT_CLIENTSECRET, and SECURITY_OAUTH2_SERVICEACCOUNT_ADMIN_*. These belong to the removed introspection model and prevent the service from starting on 5.9.x. See the authentication and IAM migration guide for the full list.

File storage configuration

S3-compatible storage is used for storing application files, exports, and imports. The Runtime Manager supports MinIO, AWS S3, and other S3-compatible storage solutions.

Ingress and CORS

The Runtime Manager is exposed on both the admin and public hosts. Routing is configured through the FlowX Helm chart, which renders either a Kubernetes Ingress (default) or a Gateway API HTTPRoute per service. CORS handling lives in the service code; only the allowed-origins list is deployment-specific.

Service routes

All routes strip the /rtm prefix before forwarding to the backend. Paths are set through services.runtime-manager.ingress.<key>.path (or gateway.<key>.paths) in the chart values; the chart also applies nginx.ingress.kubernetes.io/proxy-body-size: 50m on the admin route by default to support larger application-version uploads. The admin-instances ingress uses a regex pattern (/rtm/api/(runtime|runtime-internal)) with a rewrite annotation under Ingress mode; under Gateway API mode the chart renders two separate PathPrefix rules instead.

CORS configuration

Allowed methods, allowed headers (including Authorization, Content-Type, Fx-Workspace-Id), and credential handling are baked into the serviceโ€™s application.yaml with safe defaults. Override these only if you have a non-standard requirement. For the complete route reference, Gateway API HTTPRoute configuration, and route customization, see the ingress configuration guide.
Note: Replace placeholders in environment variables with the appropriate values for your environment before starting the service.

Troubleshooting

Common issues

Symptoms: Service fails to start with database connection errors.Solutions:
  1. Verify the PostgreSQL database exists and is accessible
  2. Check that the database user has appropriate permissions
  3. Ensure network connectivity between the pod and PostgreSQL service
  4. Verify the JDBC URL format is correct
  5. For MongoDB, confirm the replica set is healthy and retryWrites=false is set in the connection URI
Symptoms: Messages not reaching consumers, runtime data not syncing between Admin and Runtime Manager.Solutions:
  1. Verify that KAFKA_TOPIC_BUILD_RUNTIMEDATA resolves to the same value in both Admin and Runtime Manager
  2. Check that KAFKA_TOPIC_NAMING_ENVIRONMENT is consistent across services
  3. Ensure Kafka broker addresses are correct and reachable
  4. Review consumer group IDs for conflicts with other deployments
  5. Check Kafka logs for authorization or connectivity errors
Symptoms: 401/403 errors when communicating with other FlowX services.Solutions:
  1. Verify the Keycloak service account (flowx-runtime-manager-sa) is properly configured
  2. Check that client secrets match between configuration and Keycloak
  3. Ensure the service account has required roles assigned
  4. Confirm SECURITY_TYPE is set to jwt-public-key
  5. Verify the Keycloak base server URL is accessible from the pod

Application Manager

Companion service sharing the same container image and Helm chart

Redis Configuration

Complete Redis setup including Sentinel and Cluster modes

Kafka Authentication

Configure Kafka security and authentication

IAM Configuration

Identity and access management setup
Last modified on June 26, 2026