refactor: derive processor-route mapping from diagrams instead of executions
Store application_name in route_diagrams at ingestion time (V7 migration), resolve from agent registry same as ExecutionController. Move findProcessorRouteMapping from ExecutionStore to DiagramStore using a JSONB query that extracts node IDs directly from stored RouteGraph definitions. This makes the mapping available as soon as diagrams are sent, before any executions are recorded. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,4 +8,4 @@ import com.cameleer3.common.graph.RouteGraph;
|
||||
* The agent ID is extracted from the SecurityContext in the controller layer
|
||||
* and carried through the write buffer so the flush scheduler can persist it.
|
||||
*/
|
||||
public record TaggedDiagram(String agentId, RouteGraph graph) {}
|
||||
public record TaggedDiagram(String agentId, String applicationName, RouteGraph graph) {}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.cameleer3.common.graph.RouteGraph;
|
||||
import com.cameleer3.server.core.ingestion.TaggedDiagram;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface DiagramStore {
|
||||
@@ -15,4 +16,6 @@ public interface DiagramStore {
|
||||
Optional<String> findContentHashForRoute(String routeId, String agentId);
|
||||
|
||||
Optional<String> findContentHashForRouteByAgents(String routeId, List<String> agentIds);
|
||||
|
||||
Map<String, String> findProcessorRouteMapping(String applicationName);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.cameleer3.server.core.storage;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface ExecutionStore {
|
||||
@@ -17,8 +16,6 @@ public interface ExecutionStore {
|
||||
|
||||
List<ProcessorRecord> findProcessors(String executionId);
|
||||
|
||||
Map<String, String> findProcessorRouteMapping(String applicationName);
|
||||
|
||||
record ExecutionRecord(
|
||||
String executionId, String routeId, String agentId, String applicationName,
|
||||
String status, String correlationId, String exchangeId,
|
||||
|
||||
Reference in New Issue
Block a user