Integration Designer setup
This guide provides a comprehensive approach to configuring the Integration Designer service using environment variables, which offer more flexibility and security compared to configuration files.
Prerequisites
Before deployment, ensure you have the following components available:
Component | Version | Purpose |
---|---|---|
Kubernetes | 1.19+ | Container orchestration |
PostgreSQL | 13+ | Advancing data source |
MongoDB | 4.4+ | Integration configurations |
Kafka | 2.8+ | Event-driven communication |
OAuth2 Server | - | Authentication (Keycloak recommended) |
Core configuration environment variables
Basic service configuration
Environment Variable | Description | Example Value |
---|---|---|
CONFIG_PROFILE | Spring configuration profiles | k8stemplate_v2,kafka-auth |
LOGGING_LEVEL_APP | Application logging level | INFO |
Database configuration
PostgreSQL environment variables
Environment Variable | Description | Example Value |
---|---|---|
ADVANCING_DATASOURCE_URL | PostgreSQL JDBC URL | jdbc:postgresql://postgresql:5432/advancing |
ADVANCING_DATASOURCE_USERNAME | Database username | flowx |
ADVANCING_DATASOURCE_PASSWORD | Database password | securePassword |
ADVANCING_DATASOURCE_DRIVER_CLASS_NAME | JDBC driver | org.postgresql.Driver |
MongoDB environment variables
| Environment Variable | Description | Example Value |
| MONGODB_URI
| Integration Designer MongoDB URI | mongodb://mongodb-0.mongodb-headless:27017/integration-designer
|
| MONGODB_USERNAME
| MongoDB username | integration-designer
|
| MONGODB_PASSWORD
| MongoDB password | secureMongoPass
|
| MONGODB_RUNTIME_URI
| Runtime MongoDB URI | mongodb://mongodb-0.mongodb-headless:27017/app-runtime
|
| MONGODB_RUNTIME_USERNAME
| Runtime MongoDB username | app-runtime
|
| MONGODB_RUNTIME_PASSWORD
| Runtime MongoDB password | secureRuntimePass
|
Kafka configuration environment variables
Kafka connection and security variables
Environment Variable | Description | Example Value |
---|---|---|
SPRING_KAFKA_BOOTSTRAP_SERVERS | Kafka broker addresses | localhost:9092 |
SPRING_KAFKA_SECURITY_PROTOCOL | Security protocol | PLAINTEXT or SASL_PLAINTEXT |
Kafka producer configuration
Environment Variable | Description | Example Value |
---|---|---|
KAFKA_MESSAGE_MAX_BYTES | Maximum message size | 52428800 (50MB) |
SPRING_KAFKA_PRODUCER_KEY_SERIALIZER | Key serializer class | org.apache.kafka.common.serialization.StringSerializer |
SPRING_KAFKA_PRODUCER_VALUE_SERIALIZER | Value serializer class | org.springframework.kafka.support.serializer.JsonSerializer |
Kafka consumer configuration
Environment Variable | Description | Example Value |
---|---|---|
KAFKA_CONSUMER_GROUP_ID_START_WORKFLOWS | Start workflows consumer group | start-workflows-group |
KAFKA_CONSUMER_GROUP_ID_RES_ELEM_USAGE_VALIDATION | Resource usage validation consumer group | integration-designer-res-elem-usage-validation-group |
KAFKA_CONSUMER_THREADS_START_WORKFLOWS | Start workflows consumer threads | 3 |
KAFKA_CONSUMER_THREADS_RES_ELEM_USAGE_VALIDATION | Resource usage validation consumer threads | 3 |
Kafka topic naming variables
Environment Variable | Description | Example Value |
---|---|---|
KAFKA_TOPIC_NAMING_PACKAGE | Base package for topics | ai.flowx. |
KAFKA_TOPIC_NAMING_ENVIRONMENT | Environment identifier | dev. |
KAFKA_TOPIC_NAMING_VERSION | Topic version | .v1 |
KAFKA_TOPIC_NAMING_SEPARATOR | Topic name separator | . |
KAFKA_TOPIC_NAMING_SEPARATOR2 | Alternative separator | - |
OAuth authentication variables (when using SASL_PLAINTEXT)
Environment Variable | Description | Example Value |
---|---|---|
KAFKA_OAUTH_CLIENT_ID | OAuth client ID | kafka |
KAFKA_OAUTH_CLIENT_SECRET | OAuth client secret | kafka-secret |
KAFKA_OAUTH_TOKEN_ENDPOINT_URI | OAuth token endpoint | kafka.auth.localhost |
Predefined Kafka topics
Environment Variable | Description | Example Value |
---|---|---|
KAFKA_TOPIC_AUDIT_OUT | Audit topic | ai.flowx.dev.core.trigger.save.audit.v1 |
KAFKA_TOPIC_EVENTS_GATEWAY_OUT_MESSAGE | Events gateway workflow instances topic | ai.flowx.dev.eventsgateway.receive.workflowinstances.v1 |
KAFKA_TOPIC_APPLICATION_IN_RES_ELEM_USAGE_VALIDATION | Resource usage validation topic | ai.flowx.dev.application-version.resources-usages.sub-res-validation.request-integration.v1 |
KAFKA_TOPIC_RESOURCES_USAGES_REFRESH | Resources usage refresh topic | ai.flowx.dev.application-version.resources-usages.refresh.v1 |
Authentication configuration environment variables
Environment Variable | Description | Example Value |
---|---|---|
SECURITY_OAUTH2_BASE_SERVER_URL | OAuth2 server base URL | https://keycloak.example.com/auth |
SECURITY_OAUTH2_REALM | Authentication realm | flowx |
SECURITY_OAUTH2_CLIENT_ID | Client ID | flowx-platform-authorize |
SECURITY_OAUTH2_CLIENT_SECRET | Client secret | platformClientSecret |
SECURITY_OAUTH2_SERVICE_ACCOUNT_ADMIN_CLIENT_ID | Admin service account ID | integration-designer-admin |
SECURITY_OAUTH2_SERVICE_ACCOUNT_ADMIN_CLIENT_SECRET | Admin service account secret | adminServiceSecret |
Monitoring and health check environment variables
Environment Variable | Description | Example Value |
---|---|---|
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE | Exposed actuator endpoints | health,info,metrics,prometheus |
MANAGEMENT_HEALTH_KUBERNETES_ENABLED | Kubernetes health check | true |
MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED | Prometheus metrics | true |
Resource usage monitoring
Environment Variable | Description | Example Value |
---|---|---|
LIB_RESOURCES_USAGES_ENABLED | Enable resource usage tracking | true |
LIB_RESOURCES_USAGES_REFRESH_LISTENER_ENABLED | Enable refresh listener | true |
LIB_RESOURCES_USAGES_COLLECTOR_THREAD_COUNT | Collector thread count | 5 |
LIB_RESOURCES_USAGES_COLLECTOR_MAX_BATCH_SIZE | Max batch size | 1000 |
Kafka topics configuration
Topic naming convention
Integration Designer uses a structured topic naming convention:
Key components:
ai.flowx.
: Base package identifier{environment}
: Deployment environment (e.g., dev, prod){service}
: Specific service (e.g., core, eventsgateway){action}
: Operation type (e.g., receive, trigger){detail}
: Specific topic detailv1
: Version identifier
Important Kafka topics
-
Workflow Instances Topic
- Pattern:
ai.flowx.{env}.eventsgateway.receive.workflowinstances.v1
- Purpose: Handles workflow instance messages
- Recommended configuration:
- Retention: 7 days
- Partition count: Minimum 3
- Pattern:
-
Engine Receive Topics
- Pattern:
ai.flowx.{env}.engine.receive.*
- Purpose: Engine service communication
- Recommended configuration:
- Retention: 3 days
- Partition count: Minimum 3
- Pattern:
-
Integration Receive Topics
- Pattern:
ai.flowx.{env}.integration.receive.*
- Purpose: Integration service communication
- Recommended configuration:
- Retention: 3 days
- Partition count: Minimum 3
- Pattern:
-
Resource Usage Topics
- Validation Request:
ai.flowx.{env}.application-version.resources-usages.sub-res-validation.request-integration.v1
- Refresh:
ai.flowx.{env}.application-version.resources-usages.refresh.v1
- Purpose: Resource tracking and validation
- Recommended configuration:
- Retention: 1 day
- Partition count: 1-2
- Validation Request:
Large message handling for workflow instances topic
Updating max.message.bytes
configuration
The workflow instances topic requires special configuration to handle large messages. By default, Kafka has message size limitations that may prevent Integration Designer from processing large workflow payloads.
Recommended max.message.bytes
value: 10485760
(10 MB)
Method 1: Update using AKHQ (Recommended)
-
Access AKHQ
- Open the AKHQ web interface
- Log in if authentication is required
-
Navigate to Topic
- Go to the “Topics” section
- Find the topic:
ai.flowx.dev.eventsgateway.receive.workflowinstances.v1
-
Edit Configuration
- Click on the topic name
- Go to the “Configuration” tab
- Locate or add
max.message.bytes
- Set the value to
10485760
- Save changes
Additional Resources
Was this page helpful?