From 1eeedc009adad4ac9a064d36723bcc23ae88047f Mon Sep 17 00:00:00 2001 From: Aniruddha Adak Date: Sat, 11 Apr 2026 12:53:08 +0530 Subject: [PATCH 1/2] Fix pipeline lineage dropping in backend and UI --- .../service/jdbi3/LineageRepository.java | 30 ++++++++++--------- .../AppPipelineModel/AddPipeLineModal.tsx | 11 +++---- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java index c688725e7063..4cd6e22fb023 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/LineageRepository.java @@ -452,22 +452,24 @@ public static void addPipelineDetails(EsLineageData lineageData, EntityReference if (nullOrEmpty(pipelineRef)) { lineageData.setPipeline(null); } else { - Pair> pipelineOrStoredProcedure = - getPipelineOrStoredProcedure( - pipelineRef, List.of("changeDescription", "incrementalChangeDescription")); - lineageData.setPipelineEntityType(pipelineOrStoredProcedure.getLeft()); - lineageData.setPipeline(pipelineOrStoredProcedure.getRight()); + try { + Pair> pipelineOrStoredProcedure = + getPipelineOrStoredProcedure( + pipelineRef, List.of("changeDescription", "incrementalChangeDescription")); + lineageData.setPipelineEntityType(pipelineOrStoredProcedure.getLeft()); + lineageData.setPipeline(pipelineOrStoredProcedure.getRight()); + } catch (Exception ex) { + LOG.warn("Failed to get pipeline details for elastic search mapping", ex); + lineageData.setPipelineEntityType(pipelineRef.getType()); + lineageData.setPipeline(JsonUtils.getMap(pipelineRef)); + } + } } - } - public static Pair> getPipelineOrStoredProcedure( - EntityReference pipelineRef, List fieldsToRemove) { - Map pipelineMap; - if (pipelineRef.getType().equals(PIPELINE)) { - pipelineMap = - JsonUtils.getMap( - Entity.getEntity(pipelineRef, "pipelineStatus,tags,owners", Include.ALL)); - } else { + public static Pair> getPipelineOrStoredProcedure( + EntityReference pipelineRef, List fieldsToRemove) { + Map pipelineMap; + if (pipelineRef.getType().equalsIgnoreCase(Entity.PIPELINE)) { pipelineMap = JsonUtils.getMap(Entity.getEntity(pipelineRef, "tags,owners", Include.ALL)); } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/AppPipelineModel/AddPipeLineModal.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/AppPipelineModel/AddPipeLineModal.tsx index e86eb076ad33..bb1b207d81a3 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/AppPipelineModel/AddPipeLineModal.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/AppPipelineModel/AddPipeLineModal.tsx @@ -75,12 +75,13 @@ const AddPipeLineModal = ({ pageSize: PAGE_SIZE, searchIndex: [SearchIndex.PIPELINE, SearchIndex.STORED_PROCEDURE], }); - const edgeOptions = data.hits.hits.map((hit) => - getEntityReferenceFromEntity( + const edgeOptions = data.hits.hits.map((hit) => { + const entityType = hit._source.entityType || (hit._index.includes('pipeline') ? EntityType.PIPELINE : EntityType.STORED_PROCEDURE); + return getEntityReferenceFromEntity( hit._source, - hit._source.entityType as EntityType - ) - ); + entityType as EntityType + ); + }); setEdgeOptions(edgeOptions); } catch (error) { From 03756fcd88e62207983164b3a044e3aa1c3738fe Mon Sep 17 00:00:00 2001 From: Aniruddha Adak Date: Mon, 13 Apr 2026 19:34:31 +0530 Subject: [PATCH 2/2] test: add test for AddPipeLineModal --- .../AppPipelineModel/AddPipeLineModal.test.tsx | Bin 2364 -> 664 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/AppPipelineModel/AddPipeLineModal.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityLineage/AppPipelineModel/AddPipeLineModal.test.tsx index 88fdbb3d2b997f6e31de31e55388287db72beaa6..629a308acd5eaad135a9b5072e99937f7d896f57 100644 GIT binary patch literal 664 zcma));Y!0m5QOJ$B8COVw)BDba(1a!oycX0PTnQJ-kL-`BZ%+DEO(v5ZOubHi%Q*u`JL7}PSC zWX*J@InfijIpae^$4BMg6s}<|bPr|;&#kir-BDiw!~8&P0N*i0ROxxeEsh(nCn&}3 zF>FGE*c{?TMJijuYRUiDVfF4uic3hRf!xb#nFJ>B1{XG z(nq&4g3oA5p%q+(Z(-;XF1n?Q%Xc25(G}#Z0i`WeB@&1zArle-zo%GO5DHSA7g8{l zBGkfe{YD*3OXO<@qSuyDKBJ1F0iE?Tfmy%d*4kncMRi?=%##hZ*+jB!rHt<4*?f`A z$3)nte^L_55)A%b2}7-}8(;;oN!gk>N>+n5z%~YH&1%QCHo^+E89}KtTQh?mhl|o0 zv99ciTwNDHJ@*qxFs9&Qnn0Xfz|Ay?laWXH60bhoe_Fwp>2f(;tm1hB_e+@FFK**i ze7~T#-(b4<3ctsT+Yum%MRURLg>gL)QQ?F{-l~?Mllw3%$SA?Rmj$LG6Df74HWk|- zZ1f`>x8bhu~L>r4w*0#o92_LB5EPm>BC2( zixRHkX#h}ebxqlGzG)#QU`>T2F(8E!WG3ByX0pNw1c3{eC^4ncxr&%iyx}t!8U~}->-H=+TyH|viY-Ok_>@-(QZ^SvJrk`!emm{k#m>T-_Xil z>CP$Rp6-kP@c*>(W1G42EGO_66^EG`Ub+IU681=B&VozK$$?J%8J)a`AJ*H6{Y%(Q z?IgS-PjDp1i8T&`73~ePirD84oNhO=sUmX*BN$%7^?N@}VTZxFx15D4$vY22LFPgu z8>(YvqtaeAbUDLce!zGN!|-6u9YpWxPV}m^u615)9exe0X2NzSB_!wZo5qok`7mId zk6r3Gcc&q6_bNRt1Px8{#G99_{{o0l91B%c_7uS!q<{V#0emlXfzcd?2R$xBt8Xw?t1aH@w908;Wvwb%FS$;TF7&po#BZ0@d|qI1n` zHQgJf*5={AvB{DC%gX)_6FO3PRvo(2+G)P3q#ym^=ORqq$shK1XnlU3(1Yy`Q@7vY lpoLm352p6_i6i^L`ICNzW=u-tXLjn>CY1PGfg8R1`v<|a`5OQL