This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new b468145961 NIFI-15494 Added Component Type in Provenance Lineage 
Display (#10800)
b468145961 is described below

commit b46814596160ec9b9d2bbdf8ceeafb1306ae3be3
Author: Pierre Villard <[email protected]>
AuthorDate: Fri Feb 6 16:40:44 2026 +0100

    NIFI-15494 Added Component Type in Provenance Lineage Display (#10800)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../apache/nifi/provenance/lineage/EventNode.java  |  5 +++
 .../lineage/ProvenanceEventLineageNode.java        |  5 +++
 .../dto/provenance/lineage/ProvenanceNodeDTO.java  | 14 ++++++++
 .../org/apache/nifi/web/api/dto/DtoFactory.java    |  1 +
 .../app/pages/provenance/state/lineage/index.ts    |  1 +
 .../lineage/lineage.component.ts                   | 37 ++++++++++++++--------
 6 files changed, 49 insertions(+), 14 deletions(-)

diff --git 
a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java
 
b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java
index 18977b0f44..0c82f95349 100644
--- 
a/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java
+++ 
b/nifi-commons/nifi-data-provenance-utils/src/main/java/org/apache/nifi/provenance/lineage/EventNode.java
@@ -44,6 +44,11 @@ public class EventNode implements ProvenanceEventLineageNode 
{
         return record.getEventType();
     }
 
+    @Override
+    public String getComponentType() {
+        return record.getComponentType();
+    }
+
     @Override
     public long getTimestamp() {
         return record.getEventTime();
diff --git 
a/nifi-framework-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java
 
b/nifi-framework-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java
index e69cac5a13..e94b74dc82 100644
--- 
a/nifi-framework-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java
+++ 
b/nifi-framework-api/src/main/java/org/apache/nifi/provenance/lineage/ProvenanceEventLineageNode.java
@@ -24,6 +24,11 @@ public interface ProvenanceEventLineageNode extends 
LineageNode {
 
     ProvenanceEventType getEventType();
 
+    /**
+     * @return the type of the component that generated this event
+     */
+    String getComponentType();
+
     long getEventIdentifier();
 
     List<String> getParentUuids();
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java
 
b/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java
index e94d86dbbb..1576e6ccbc 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/provenance/lineage/ProvenanceNodeDTO.java
@@ -37,6 +37,7 @@ public class ProvenanceNodeDTO {
     private String clusterNodeIdentifier;
     private String type;
     private String eventType;
+    private String componentType;
     private Long millis;
     private Date timestamp;
 
@@ -132,6 +133,19 @@ public class ProvenanceNodeDTO {
         this.eventType = eventType;
     }
 
+    /**
+     * @return if this is an event node, this is the type of the component 
that generated this event
+     */
+    @Schema(description = "If the type is EVENT, this is the type of the 
component that generated the event."
+    )
+    public String getComponentType() {
+        return componentType;
+    }
+
+    public void setComponentType(String componentType) {
+        this.componentType = componentType;
+    }
+
     /**
      * @return timestamp of this node
      */
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
index a67a904ff5..9f097b1667 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java
@@ -3544,6 +3544,7 @@ public final class DtoFactory {
         dto.setId(node.getIdentifier());
         dto.setType("EVENT");
         dto.setEventType(node.getEventType().toString());
+        dto.setComponentType(node.getComponentType());
         dto.setTimestamp(new Date(node.getTimestamp()));
         dto.setMillis(node.getTimestamp());
         dto.setFlowFileUuid(node.getFlowFileUuid());
diff --git 
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/index.ts
 
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/index.ts
index b59d1eb6cd..cb066e92cf 100644
--- 
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/index.ts
+++ 
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/state/lineage/index.ts
@@ -36,6 +36,7 @@ export interface LineageNode {
     clusterNodeIdentifier: string;
     type: string;
     eventType: string;
+    componentType?: string;
     millis: number;
     timestamp: string;
 }
diff --git 
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/lineage.component.ts
 
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/lineage.component.ts
index 747d02491c..490375fd25 100644
--- 
a/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/lineage.component.ts
+++ 
b/nifi-frontend/src/main/frontend/apps/nifi/src/app/pages/provenance/ui/provenance-event-listing/provenance-event-table/lineage/lineage.component.ts
@@ -851,29 +851,38 @@ export class LineageComponent implements OnInit {
             })
             .each(function (this: any, d: any) {
                 const label: any = d3.select(this);
+                const lines: string[] = [];
+
                 if (d.eventType === 'CONTENT_MODIFIED' || d.eventType === 
'ATTRIBUTES_MODIFIED') {
-                    const lines: string[] = [];
                     if (d.eventType === 'CONTENT_MODIFIED') {
                         lines.push('CONTENT');
                     } else {
                         lines.push('ATTRIBUTES');
                     }
                     lines.push('MODIFIED');
-
-                    // append each line
-                    lines.forEach((line) => {
-                        label
-                            .append('tspan')
-                            .attr('x', '0')
-                            .attr('dy', '1.2em')
-                            .text(function () {
-                                return line;
-                            });
-                    });
-                    label.attr('transform', 'translate(10,-14)');
                 } else {
-                    label.text(d.eventType).attr('x', 10).attr('y', 4);
+                    lines.push(d.eventType);
+                }
+
+                // add component type if available
+                if (d.componentType) {
+                    lines.push(d.componentType);
                 }
+
+                // append each line
+                lines.forEach((line) => {
+                    label
+                        .append('tspan')
+                        .attr('x', '0')
+                        .attr('dy', '1.2em')
+                        .text(function () {
+                            return line;
+                        });
+                });
+
+                // adjust vertical position based on number of lines
+                const yOffset = lines.length > 1 ? -7 * lines.length : -4;
+                label.attr('transform', `translate(10,${yOffset})`);
             });
     }
 

Reply via email to