Conversation
…tboundgateway always 1 member
|
May fail due to a weird case where the ClientSession doesnt properly get dependency injection, no clue why this suddenly happens |
There was a problem hiding this comment.
Pull request overview
This PR adds FrankFramework “gateway” connectivity (Hazelcast/local bus) to the Flow backend, introduces a session concept for selecting a cluster member + workspace isolation, and wires a new endpoint + UI polling to discover and display remote configurations.
Changes:
- Replace the removed
UserContextFilter/UserWorkspaceContextapproach with a session-scopedClientSession(workspace id + selected member target). - Add gateway-facing infrastructure (
FrankGateway,FrankFrameworkService,ResponseUtils) and expose framework configuration discovery via/api/projects/configurations+ frontend polling. - Add security chain config and docker-compose resources to run Flow + a FrankFramework instance in a Hazelcast cluster.
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/org/frankframework/flow/security/UserContextFilterTest.java | Removed tests for deleted JWT/session-based filter. |
| src/test/java/org/frankframework/flow/project/ProjectControllerTest.java | Removed mocks for deleted user-context filter/context. |
| src/test/java/org/frankframework/flow/git/GitControllerTest.java | Removed mocks for deleted user-context filter/context. |
| src/test/java/org/frankframework/flow/frankdoc/FrankDocControllerTest.java | Removed mocks for deleted user-context filter/context. |
| src/test/java/org/frankframework/flow/frankconfig/FrankConfigXsdControllerTest.java | Removed mocks for deleted user-context filter/context. |
| src/test/java/org/frankframework/flow/filesystem/CloudFileSystemStorageServiceTest.java | Updated tests to use ClientSession instead of UserWorkspaceContext; added helper methods. |
| src/test/java/org/frankframework/flow/configuration/ConfigurationControllerTest.java | Removed mocks for deleted user-context filter/context. |
| src/test/java/org/frankframework/flow/common/config/ClientSessionTest.java | New tests for ClientSession workspace-id hashing and member selection. |
| src/test/java/org/frankframework/flow/adapter/AdapterControllerTest.java | Removed mocks for deleted user-context filter/context. |
| src/main/resources/application.properties | Added logging config and toggles; disabled JMX and HTTP authentication by default. |
| src/main/java/org/frankframework/flow/utility/ResponseUtils.java | New helper to convert gateway/bus messages into Spring ResponseEntity/streaming responses. |
| src/main/java/org/frankframework/flow/security/UserWorkspaceContext.java | Deleted request-scoped workspace context. |
| src/main/java/org/frankframework/flow/security/UserContextFilter.java | Deleted filter that initialized workspace context from JWT/session headers. |
| src/main/java/org/frankframework/flow/project/ProjectController.java | Added gateway-backed /projects/configurations endpoint; injected FrankFrameworkService. |
| src/main/java/org/frankframework/flow/filesystem/CloudFileSystemStorageService.java | Switched from UserWorkspaceContext to ClientSession for per-user workspace root. |
| src/main/java/org/frankframework/flow/common/config/WebConfiguration.java | Added message converter registration attempt for InputStream payloads. |
| src/main/java/org/frankframework/flow/common/config/SecurityChainConfigurer.java | New Spring Security filter chain + authenticator wiring. |
| src/main/java/org/frankframework/flow/common/config/ClientSession.java | New session-scoped bean (workspace id + selected cluster member). |
| src/main/java/org/frankframework/flow/common/FrankGateway.java | New bean wiring for management bus channel, outbound gateway factory, JWT key generator. |
| src/main/java/org/frankframework/flow/common/FrankFrameworkService.java | New service to call gateway sync/async using the session’s selected member target. |
| src/main/java/org/frankframework/flow/common/ClusterMembers.java | New controller to expose cluster members and log member events. |
| src/main/java/org/frankframework/flow/common/AllowAllFrankUserRoles.java | New meta-annotation to centralize allowed Frank user roles. |
| src/main/java/org/frankframework/flow/FlowApplication.java | Minor formatting change. |
| src/main/frontend/app/services/frank-framework-service.ts | New frontend service to fetch instance configurations. |
| src/main/frontend/app/routes/projectlanding/project-landing.tsx | UI polling to discover remote configurations and render them on landing page. |
| pom.xml | Updated Spring Boot parent + Java version; added frankframework gateway/security + hazelcast deps. |
| flow-framework-compose.yml | New compose file to run Flow + FrankFramework with Hazelcast gateways. |
| docker/resources/resources.yml | New docker resources for ff-test instance (H2 datasource). |
| docker/resources/Configuration.xml | New sample Frank configuration for ff-test instance. |
| docker/Dockerfile | Updated runtime image to Java 25. |
| .run/Flow Hazelcast Cluster.run.xml | IDE run configuration for docker-compose cluster startup. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Tests keep failing because of our nexus having migration quirks which prevents us from pulling FF modules as dependencies, I'll put this on hold till that is fixed |
|


No description provided.