This guide provides instructions on how to set up and configure the FlowX.AI Engine.
Environment variable | Description |
---|---|
SPRING_DATASOURCE_URL | Database URL for PostgreSQL |
SPRING_DATASOURCE_USERNAME | Username for PostgreSQL |
SPRING_DATASOURCE_PASSWORD | Password for PostgreSQL |
SPRING_DATASOURCE_DRIVERCLASSNAME | Driver class for PostgreSQL |
Environment variable | Description | Default value |
---|---|---|
SPRING_DATA_MONGODB_RUNTIME_URI | URI for connecting to MongoDB | Format: mongodb://${RUNTIME_DB_USERNAME}:${DB_PASSWORD}@<host1>,<host2>,<arbiter-host>:<port>/${DB_NAME}?retryWrites=false |
RUNTIME_DB_USERNAME | MongoDB username | app-runtime |
DB_NAME | MongoDB database name | app-runtime |
Environment variable | Description | Default value | Possible values |
---|---|---|---|
FLOWX_SCRIPTENGINE_USEGRAALVM | Determines which Python and JavaScript runtime to use | false | true , false |
FLOWX_SCRIPTENGINE_USEGRAALVM=true
), ensure the engine has proper access to a cache directory within the container. By default, this is configured in the /tmp
directory.
SECURITY_OAUTH2_BASE_SERVER_URL
: Base URL for the OAuth 2.0 Authorization ServerSECURITY_OAUTH2_CLIENT_CLIENT_ID
: Client identifier registered with the OAuth 2.0 Authorization ServerSECURITY_OAUTH2_CLIENT_CLIENT_SECRET
: Secret key for authenticating client requestsSECURITY_OAUTH2_REALM
: Realm name used for OAuth2 authenticationEnvironment variable | Description | Default value |
---|---|---|
SPRING_SECURITY_OAUTH2_RESOURCE_SERVER_OPAQUE_TOKEN_INTROSPECTION_URI | URI for token introspection | ${security.oauth2.base-server-url}/realms/${security.oauth2.realm}/protocol/openid-connect/token/introspect |
SPRING_SECURITY_OAUTH2_RESOURCE_SERVER_OPAQUE_TOKEN_CLIENT_ID | Client ID for token introspection | ${security.oauth2.client.client-id} |
SPRING_SECURITY_OAUTH2_RESOURCE_SERVER_OPAQUE_TOKEN_CLIENT_SECRET | Client secret for token introspection | ${security.oauth2.client.client-secret} |
Environment variable | Description | Default value |
---|---|---|
SECURITY_OAUTH2_SERVICE_ACCOUNT_ADMIN_CLIENT_ID | Client ID for the service account | flowx-${SPRING_APPLICATION_NAME}-sa |
SECURITY_OAUTH2_SERVICE_ACCOUNT_ADMIN_CLIENT_SECRET | Client secret for the service account |
Environment variable | Description | Default value |
---|---|---|
SECURITY_TYPE | Type of security mechanism | oauth2 |
SECURITY_BASIC_ENABLED | Enable basic authentication | false |
SECURITY_PUBLIC_PATHS_0 | Public path not requiring authentication | /api/platform/components-versions |
SECURITY_PUBLIC_PATHS_1 | Public path not requiring authentication | /manage/actuator/health |
SECURITY_PATH_AUTHORIZATIONS_0_PATH | Security path pattern | "/api/**" |
SECURITY_PATH_AUTHORIZATIONS_0_ROLES_ALLOWED | Roles allowed for path access | "ANY_AUTHENTICATED_USER" |
Environment variable | Description | Default value |
---|---|---|
SPRING_KAFKA_BOOTSTRAPSERVERS | Kafka bootstrap servers | localhost:9092 |
SPRING_KAFKA_SECURITY_PROTOCOL | Security protocol for Kafka | "PLAINTEXT" |
Environment variable | Description | Default value |
---|---|---|
KAFKA_DEFAULTFXCONTEXT | Default context value for message routing when no context is provided | "" (empty string) |
KAFKA_DEFAULTFXCONTEXT
is set and an event is received on Kafka without an fxContext header, the system will automatically apply the default context value to the message.Environment variable | Description | Default value |
---|---|---|
KAFKA_AUTHEXCEPTIONRETRYINTERVAL | Interval between retries after AuthorizationException (seconds) | 10 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_CONSUMER_GROUPID_NOTIFYADVANCE | Group ID for notifying advance actions | notif123-preview |
KAFKA_CONSUMER_GROUPID_NOTIFYPARENT | Group ID for notifying when a subprocess is blocked | notif123-preview |
KAFKA_CONSUMER_GROUPID_ADAPTERS | Group ID for messages related to adapters | notif123-preview |
KAFKA_CONSUMER_GROUPID_SCHEDULERRUNACTION | Group ID for running scheduled actions | notif123-preview |
KAFKA_CONSUMER_GROUPID_SCHEDULERADVANCING | Group ID for messages indicating continuing advancement | notif123-preview |
KAFKA_CONSUMER_GROUPID_MESSAGEEVENTS | Group ID for message events | notif123-preview |
KAFKA_CONSUMER_GROUPID_PROCESS_START | Group ID for starting processes | notif123-preview |
KAFKA_CONSUMER_GROUPID_PROCESS_STARTFOREVENT | Group ID for starting processes for an event | notif123-preview |
KAFKA_CONSUMER_GROUPID_PROCESS_EXPIRE | Group ID for expiring processes | notif123-preview |
KAFKA_CONSUMER_GROUPID_PROCESS_OPERATIONS | Group ID for processing operations from Task Management plugin | notif123-preview |
KAFKA_CONSUMER_GROUPID_PROCESS_BATCHPROCESSING | Group ID for processing bulk operations from Task Management plugin | notif123-preview |
Environment variable | Description | Default value |
---|---|---|
KAFKA_CONSUMER_THREADS_NOTIFYADVANCE | Number of threads for notifying advance actions | 6 |
KAFKA_CONSUMER_THREADS_NOTIFYPARENT | Number of threads for notifying when a subprocess is blocked | 6 |
KAFKA_CONSUMER_THREADS_ADAPTERS | Number of threads for processing messages related to adapters | 6 |
KAFKA_CONSUMER_THREADS_SCHEDULERADVANCING | Number of threads for continuing advancement | 6 |
KAFKA_CONSUMER_THREADS_SCHEDULERRUNACTION | Number of threads for running scheduled actions | 6 |
KAFKA_CONSUMER_THREADS_MESSAGEEVENTS | Number of threads for message events | 6 |
KAFKA_CONSUMER_THREADS_PROCESS_START | Number of threads for starting processes | 6 |
KAFKA_CONSUMER_THREADS_PROCESS_STARTFOREVENT | Number of threads for starting processes for an event | 2 |
KAFKA_CONSUMER_THREADS_PROCESS_EXPIRE | Number of threads for expiring processes | 6 |
KAFKA_CONSUMER_THREADS_PROCESS_OPERATIONS | Number of threads for processing operations from task management | 6 |
KAFKA_CONSUMER_THREADS_PROCESS_BATCHPROCESSING | Number of threads for processing bulk operations from task management | 6 |
KAFKA_TOPIC_NAMING_PACKAGE
: ai.flowx.dev
KAFKA_TOPIC_NAMING_ENVIRONMENT
: dev
KAFKA_TOPIC_NAMING_VERSION
: v1
KAFKA_TOPIC_NAMING_SEPARATOR
: .
KAFKA_TOPIC_NAMING_SEPARATOR2
: -
KAFKA_TOPIC_NAMING_PREFIX
: ${KAFKA_TOPIC_NAMING_PACKAGE}${KAFKA_TOPIC_NAMING_ENVIRONMENT}
KAFKA_TOPIC_NAMING_SUFFIX
: ${KAFKA_TOPIC_NAMING_VERSION}
KAFKA_TOPIC_NAMING_ENGINERECEIVEPATTERN
: engine.receive.
KAFKA_TOPIC_NAMING_INTEGRATIONRECEIVEPATTERN
: integration.receive.
KAFKA_TOPIC_PATTERN
: ${KAFKA_TOPIC_NAMING_PREFIX}${KAFKA_TOPIC_NAMING_ENGINERECEIVEPATTERN}*
KAFKA_TOPIC_INTEGRATIONPATTERN
: ${KAFKA_TOPIC_NAMING_PREFIX}${KAFKA_TOPIC_NAMING_INTEGRATIONRECEIVEPATTERN}*
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_PROCESS_NOTIFY_ADVANCE | Topic used internally for advancing processes | ai.flowx.dev.core.notify.advance.process.v1 |
KAFKA_TOPIC_PROCESS_NOTIFY_PARENT | Topic used for sub-processes to notify the parent process | ai.flowx.dev.core.notify.parent.process.v1 |
KAFKA_TOPIC_PATTERN | Pattern the Engine listens on for incoming events | ai.flowx.dev.engine.receive.* |
KAFKA_TOPIC_LICENSE_OUT | Topic used to generate licensing-related details | ai.flowx.dev.core.trigger.save.license.v1 |
KAFKA_TOPIC_PROCESS_EVENT_MESSAGE | Topic for process message events | ai.flowx.dev.core.message.event.process.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_TASK_OUT | Topic used for sending notifications to the plugin | ai.flowx.dev.plugin.tasks.trigger.save.task.v1 |
KAFKA_TOPIC_PROCESS_OPERATIONS_IN | Topic for receiving information about operations performed | ai.flowx.dev.core.trigger.operations.v1 |
KAFKA_TOPIC_PROCESS_OPERATIONS_BULKIN | Topic where operations can be performed in bulk | ai.flowx.core.trigger.operations.bulk.v1 |
requestID
key.callbackTopic
if it is mentioned in the headers:...operations.out
topic on the engine side. For more information, see the Task Management plugin documentation:📄 Task management pluginEnvironment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_PROCESS_EXPIRE_IN | Topic for requests to expire processes | ai.flowx.dev.core.trigger.expire.process.v1 |
KAFKA_TOPIC_PROCESS_SCHEDULE_OUT_SET | Topic used for scheduling process expiration | ai.flowx.dev.core.trigger.set.schedule.v1 |
KAFKA_TOPIC_PROCESS_SCHEDULE_OUT_STOP | Topic used for stopping process expiration | ai.flowx.dev.core.trigger.stop.schedule.v1 |
KAFKA_TOPIC_PROCESS_SCHEDULE_IN_RUN_ACTION | Topic for requests to run scheduled actions | ai.flowx.dev.core.trigger.run.action.v1 |
KAFKA_TOPIC_PROCESS_SCHEDULE_IN_ADVANCE | Topic for events related to advancing through a database | ai.flowx.dev.core.trigger.advance.process.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_PROCESS_SCHEDULEDTIMEREVENTS_OUT_SET | Used to communicate with Scheduler microservice | ai.flowx.dev.core.trigger.set.timer-event-schedule.v1 |
KAFKA_TOPIC_PROCESS_SCHEDULEDTIMEREVENTS_OUT_STOP | Used to communicate with Scheduler microservice | ai.flowx.dev.core.trigger.stop.timer-event-schedule.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_DATA_SEARCH_IN | Topic that the Engine listens on for search requests | ai.flowx.dev.core.trigger.search.data.v1 |
KAFKA_TOPIC_DATA_SEARCH_OUT | Topic used by the Engine to reply after finding a process | ai.flowx.dev.engine.receive.core.search.data.results.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_AUDIT_OUT | Topic for sending audit logs | ai.flowx.dev.core.trigger.save.audit.v1 |
Environment variable | Default value |
---|---|
KAFKA_TOPIC_PROCESS_INDEX_OUT | ai.flowx.dev.core.index.process.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_PROCESS_START_IN | Topic for requests to start a new process instance | ai.flowx.dev.core.trigger.start.process.v1 |
KAFKA_TOPIC_PROCESS_START_OUT | Topic for sending the reply after starting a new process instance | ai.flowx.dev.core.confirm.start.process.v1 |
Environment variable | Default value |
---|---|
KAFKA_TOPIC_PROCESS_STARTFOREVENT | ai.flowx.dev.core.trigger.start-for-event.process.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_EVENTSGATEWAY_OUT_MESSAGE | Outgoing messages from process-engine to events-gateway | ai.flowx.eventsgateway.engine.commands.message.v1 |
KAFKA_TOPIC_EVENTSGATEWAY_OUT_DISCONNECT | Disconnect commands from process-engine to events-gateway | ai.flowx.eventsgateway.engine.commands.disconnect.v1 |
KAFKA_TOPIC_EVENTSGATEWAY_OUT_CONNECT | Connect commands from process-engine to events-gateway | ai.flowx.eventsgateway.engine.commands.connect.v1 |
Environment variable | Description | Default value |
---|---|---|
KAFKA_TOPIC_PLATFORM_COMPONENTS_VERSIONS_OUT | Topic for platform version caching | ai.flowx.dev.core.trigger.platform.versions.caching.v1 |
pattern
must match the pattern used by services sending messages to the EngineintegrationPattern
must match the pattern used by the Integration Designerai.flowx.dev.engine.receive.*
→ Engine listensai.flowx.dev.integration.receive.*
→ Integration Designer listensEnvironment variable | Description | Default value |
---|---|---|
KAFKA_MESSAGE_MAX_BYTES | Maximum message size in bytes | 52428800 (50MB) |
KAFKA_OAUTH_CLIENT_ID
KAFKA_OAUTH_CLIENT_SECRET
KAFKA_OAUTH_TOKEN_ENDPOINT_URI
Environment variable | Description | Default value |
---|---|---|
SPRING_SERVLET_MULTIPART_MAXFILESIZE | Maximum file size allowed for uploads | 50MB |
SPRING_SERVLET_MULTIPART_MAXREQUESTSIZE | Maximum request size allowed for uploads | 50MB |
Environment variable | Description |
---|---|
ADVANCING_DATASOURCE_JDBC_URL | Connection URL for Advancing Postgres DB |
ADVANCING_DATASOURCE_USERNAME | Username for Advancing DB connection |
ADVANCING_DATASOURCE_PASSWORD | Password for Advancing DB connection |
Environment variable | Description | Default value |
---|---|---|
ADVANCING_TYPE | Type of advancing mechanism | PARALLEL (alternatives: KAFKA , PARALLEL ) |
ADVANCING_THREADS | Number of parallel threads | 20 |
ADVANCING_PICKINGBATCHSIZE | Number of tasks to pick in each batch | 10 |
ADVANCING_PICKINGPAUSEMILLIS | Pause duration between batches (ms) | 100 |
ADVANCING_COOLDOWNAFTERSECONDS | Cooldown period after processing a batch (seconds) | 120 |
ADVANCING_SCHEDULER_HEARTBEAT_CRONEXPRESSION | Cron expression for the heartbeat | "*/2 * * * * ?" |
Environment variable | Description | Default value |
---|---|---|
SCHEDULER_THREADS | Number of threads for the scheduler | 10 |
SCHEDULER_PROCESSCLEANUP_ENABLED | Activates the cron job for process cleanup | false |
SCHEDULER_PROCESSCLEANUP_CRONEXPRESSION | Cron expression for the process cleanup scheduler | 0 */5 0-5 * * ? (every 5 minutes between 12 AM and 5 AM) |
SCHEDULER_PROCESSCLEANUP_BATCHSIZE | Number of processes to clean up in one batch | 1000 |
SCHEDULER_MASTERELECTION_CRONEXPRESSION | Cron expression for the master election process | 30 */3 * * * ? (every 3 minutes) |
Environment variable | Description | Default value |
---|---|---|
FLOWX_PROCESS_EXPIRESUBPROCESSES | When true, terminates all subprocesses upon parent process expiration. When false, subprocesses follow their individual expiration settings | true |
MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED
: Enables or disables Prometheus metrics export.Environment variable | Description | Default value |
---|---|---|
MANAGEMENT_PROMETHEUS_METRICS_EXPORT_ENABLED | Enables Prometheus metrics export | false |