feat: persist and expose resolvedEndpointUri for execution-level drill-down

Wire resolvedEndpointUri through the full chain:
- V9 migration adds resolved_endpoint_uri column
- IngestionService extracts from ProcessorExecution
- PostgresExecutionStore persists and reads the column
- ProcessorNode includes field in detail API response
- UI schema updated for ProcessorNode and PositionedNode

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-03-28 18:37:11 +01:00
parent e5e6175aca
commit c4b396e618
7 changed files with 23 additions and 9 deletions

View File

@@ -63,7 +63,8 @@ public class DetailService {
parseAttributes(p.attributes()),
p.loopIndex(), p.loopSize(),
p.splitIndex(), p.splitSize(),
p.multicastIndex()
p.multicastIndex(),
p.resolvedEndpointUri()
));
}

View File

@@ -27,6 +27,7 @@ public final class ProcessorNode {
private final Integer splitIndex;
private final Integer splitSize;
private final Integer multicastIndex;
private final String resolvedEndpointUri;
private final List<ProcessorNode> children;
public ProcessorNode(String processorId, String processorType, String status,
@@ -35,7 +36,8 @@ public final class ProcessorNode {
Map<String, String> attributes,
Integer loopIndex, Integer loopSize,
Integer splitIndex, Integer splitSize,
Integer multicastIndex) {
Integer multicastIndex,
String resolvedEndpointUri) {
this.processorId = processorId;
this.processorType = processorType;
this.status = status;
@@ -50,6 +52,7 @@ public final class ProcessorNode {
this.splitIndex = splitIndex;
this.splitSize = splitSize;
this.multicastIndex = multicastIndex;
this.resolvedEndpointUri = resolvedEndpointUri;
this.children = new ArrayList<>();
}
@@ -71,5 +74,6 @@ public final class ProcessorNode {
public Integer getSplitIndex() { return splitIndex; }
public Integer getSplitSize() { return splitSize; }
public Integer getMulticastIndex() { return multicastIndex; }
public String getResolvedEndpointUri() { return resolvedEndpointUri; }
public List<ProcessorNode> getChildren() { return List.copyOf(children); }
}

View File

@@ -131,7 +131,8 @@ public class IngestionService {
toJson(p.getAttributes()),
p.getLoopIndex(), p.getLoopSize(),
p.getSplitIndex(), p.getSplitSize(),
p.getMulticastIndex()
p.getMulticastIndex(),
p.getResolvedEndpointUri()
));
if (p.getChildren() != null) {
flat.addAll(flattenProcessors(

View File

@@ -38,6 +38,7 @@ public interface ExecutionStore {
String attributes,
Integer loopIndex, Integer loopSize,
Integer splitIndex, Integer splitSize,
Integer multicastIndex
Integer multicastIndex,
String resolvedEndpointUri
) {}
}