Configuration
The service comes with most of the needed configuration properties filled in, but there are several environment variables that need to be set up for your specific deployment.Database configuration
The NoSQL DB Runner connects to MongoDB for data persistence. Configure the following variables:The MongoDB URI supports replica set configuration for high availability. The connection string includes multiple MongoDB instances and an arbiter for proper replica set functionality.
Configuring authorization & access roles
The NoSQL DB Runner validates incoming tokens with the JWT public key mechanism and authenticates to other FlowX services with a dedicated service account (themainIdentity client registration) in the service-accounts realm:
FlowX operations document limit
This setting allows you to configure the maximum number of documents that can be retrieved from MongoDB in a single request.External MongoDB connection caching
Relational database connection pooling
These defaults apply to all relational database data sources: Oracle, PostgreSQL, and IBM Db2.Database host restrictions
Available starting with FlowX.AI 5.9.5
400 Bad Request, error key error.sql.internalHostNotPermitted, and the message Connection to internal addresses is not permitted: <host>.
For MongoDB, the NoSQL DB Runner checks the hosts in the connection URI before connecting, then every address the driver resolves later, including replica-set members and mongodb+srv targets. A private address found at that later stage shows up as a connection timeout, not as the 400 error. The platform’s own MongoDB, which backs FlowX Database, is never checked.
Loopback, link-local, and wildcard addresses are never permitted, even when the host is listed in
FLOWX_SSRF_ALLOWED_HOSTS.Configuring logging
Control log levels for different components of the service:Configuring application management
Configure management endpoints and monitoring capabilities:Prometheus metrics configuration
Enable Prometheus metrics export for monitoring:The older form
MANAGEMENT_METRICS_EXPORT_PROMETHEUS_ENABLED also works (both resolve to the same setting). The property path above is the preferred form.Troubleshooting
Common issues
MongoDB connection failures
MongoDB connection failures
Symptoms: Service fails to start with database connection errors.Solutions:
- Verify MongoDB connection string format and credentials
- Ensure MongoDB replica set is properly configured and accessible
- Check network connectivity between service and MongoDB instances
- Verify MongoDB user permissions and database access rights
Kafka connectivity issues
Kafka connectivity issues
Symptoms: Service cannot consume or produce Kafka messages.Solutions:
- Verify
SPRING_KAFKA_BOOTSTRAP_SERVERSpoints to the correct broker(s) - Check Kafka security protocol and authentication configuration
- Ensure network policies allow traffic to the Kafka cluster
- Verify topic names and consumer group assignments are correct
OAuth authentication errors
OAuth authentication errors
Symptoms: 401/403 errors when communicating with other FlowX services.Solutions:
- Verify OAuth client ID and client secret are correct
- Check OAuth server URL and realm configuration
- Ensure OAuth provider is accessible from the service
- Validate token endpoint URI configuration
Insert fails with '_id is a reserved keyword'
Insert fails with '_id is a reserved keyword'
Symptoms: An
Insert or Insert Many operation returns 400 Bad Request with the message _id is a reserved keyword.Cause: _id is reserved and assigned by MongoDB. Supplying it on insert was never supported and could break later reads, so starting with FlowX.AI 5.9.1 it is rejected.Solution: Remove the _id field from the insert payload. If you need to keep a specific identifier, store it under a different key (for example, externalId).Connection fails with 'Connection to internal addresses is not permitted'
Connection fails with 'Connection to internal addresses is not permitted'
Symptoms: An Oracle, PostgreSQL, IBM Db2, or Unmanaged MongoDB data source returns
400 Bad Request with the message Connection to internal addresses is not permitted: <host> (error key error.sql.internalHostNotPermitted).Cause: The hostname resolves to at least one private address. Every address a hostname resolves to is checked, so a host with several DNS records is rejected if any one of them is private, even when the others are public.Solution: If the database is legitimately on a private network, for example reached over a site-to-site VPN, add its hostname to FLOWX_SSRF_ALLOWED_HOSTS. See Database host restrictions.Update or delete fails with 'requires a non-empty filter'
Update or delete fails with 'requires a non-empty filter'
Symptoms: An
UPDATE, UPDATE_MANY, DELETE, or DELETE_MANY operation on a FlowX Database or Unmanaged MongoDB data source returns 400 Bad Request with the message <operation> requires a non-empty filter (error key error.collection.filterRequired).Cause: These operations are rejected when the filter is missing or empty, so a forgotten filter can’t change or delete every document in a collection.Solution: Add a filter to the operation. To match every document on purpose, use the filter {"_id": {"$exists": true}}.Related resources
Redis Configuration
Complete Redis setup including Sentinel and Cluster modes
Kafka Authentication
Configure Kafka security and authentication
IAM Configuration
Identity and access management setup

