This guide provides the standard ingress configuration pattern for all FlowX.AI services that expose REST APIs or event streams to external clients.Documentation Index
Fetch the complete documentation index at: https://docs.flowx.ai/llms.txt
Use this file to discover all available pages before exploring further.
Overview
FlowX.AI services use Kubernetes ingress with NGINX to expose APIs to the FlowX Designer and other external consumers. All services follow a consistent pattern with specific CORS headers required for multi-tenant workspace identification.Standard ingress pattern
Common template
Most FlowX.AI services use this standard ingress configuration:Service-specific values
Replace the placeholders with service-specific values from this table:| Service | Ingress Name | Service Path | Rewrite Target | ||
|---|---|---|---|---|---|
| Admin | admin-admin | /((.*)) or `/admin(/ | $)(.*)` | /$2 | |
| Application Manager | application-manager-admin | `/appmanager(/ | $)(.*)` | /$2 | |
| Audit Core | audit-core-admin | `/audit(/ | $)(.*)(/ | $)(.*)` | /$2 |
| Authorization System | authorization-system-admin | `/auth/api(/ | $)(.*)(/ | $)(.*)` | /api/$2 |
| Integration Designer | integration-designer-admin | `/integration(/ | $)(.*)` | /$2 | |
| Process Engine | process-engine-admin | `/onboarding/api(/ | $)(.*)(/ | $)(.*)` | /api/$2 |
| Process Engine | process-engine-admin-instances | `/api/instances(/ | $)(.*)(/ | $)(.*)` | /api/instances/$2 |
| Runtime Manager | runtime-manager-admin | `/rtm/api/runtime(/ | $)(.*)` | /api/runtime/$2 | |
| Runtime Manager | runtime-manager-admin-instances | /rtm/api/(runtime|runtime-internal)/(.*) | /api/$1/$2 | ||
| Task Management | task-management-plugin-admin | `/task(/ | $)(.*)(/ | $)(.*)` | /$2 |
Standard annotations explained
Required annotations
| Annotation | Value | Purpose |
|---|---|---|
nginx.ingress.kubernetes.io/client-body-buffer-size | 25M | Buffer size for client request body |
nginx.ingress.kubernetes.io/proxy-body-size | 25m | Maximum size of client request body |
nginx.ingress.kubernetes.io/cors-allow-credentials | true | Allow credentials in CORS requests |
nginx.ingress.kubernetes.io/enable-cors | true | Enable CORS support |
nginx.ingress.kubernetes.io/cors-allow-headers | Includes Fx-Workspace-Id | Headers allowed in CORS requests (workspace required) |
nginx.ingress.kubernetes.io/cors-allow-origin | Designer domain(s) | Origins allowed for CORS requests |
nginx.ingress.kubernetes.io/rewrite-target | Service-specific | URL rewrite pattern |
Workspace identification header
TheFx-Workspace-Id header enables multi-tenant workspace identification. Include it in the CORS allowed headers:
Events Gateway exception
The Events Gateway service handles Server-Sent Events (SSE) and uses a simplified ingress configuration without thecors-allow-headers annotation:
Events Gateway does not require the
Fx-Workspace-Id header in its ingress configuration because it handles real-time SSE connections with different security requirements.Environment-specific customization
Required changes per environment
Update these values for your specific environment:-
CORS Origins - Replace with your actual domains:
-
Host - Set to your ingress hostname:
-
TLS Configuration - Add TLS section if using HTTPS:
Development vs Production
Development:Complete example
Here’s a complete, production-ready ingress configuration for the Admin service:Troubleshooting
CORS errors
Problem: Browser shows CORS policy errors Solution: Verify that:Fx-Workspace-Idis included incors-allow-headers- Your origin is listed in
cors-allow-origin enable-corsis set totrue
413 Request Entity Too Large
Problem: Large file uploads fail Solution: Increase buffer sizes:502 Bad Gateway
Problem: Service unreachable through ingress Solution: Verify:- Service name matches the backend service
- Port name is correct (typically
http) - Service is running and healthy
Path routing issues
Problem: Requests return 404 Solution: Check:- Path pattern matches your URL structure
- Rewrite target correctly transforms the path
- Service expects the rewritten path format
Best practices
Security
- Use HTTPS in production
- Restrict CORS origins to known domains
- Never use wildcards in production CORS origins
- Keep buffer sizes reasonable (25M is sufficient for most use cases)
Performance
- Use appropriate buffer sizes for your workload
- Monitor ingress metrics
- Configure timeouts for long-running requests
- Consider connection limits for SSE endpoints
Maintainability
- Use consistent naming conventions
- Document any deviations from standard pattern
- Keep annotations organized alphabetically
- Use ConfigMaps for shared values
Reliability
- Always include health check paths
- Configure proper timeouts
- Use multiple replicas for high availability
- Monitor ingress logs for errors

