diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js
index ba87e01f192..4dbea2d32c4 100644
--- a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js
+++ b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js
@@ -140,7 +140,7 @@ export const testServiceCreationAndIngestion = (
cy.get('[data-testid="success-line"]', { timeout: 15000 }).should(
'be.visible'
);
- cy.contains(`"${serviceName}_metadata"`).should('be.visible');
+ cy.contains(`${serviceName}_metadata`).should('be.visible');
cy.contains('has been created and deployed successfully').should(
'be.visible'
);
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx
index cfabcce6ff6..b2685daac16 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.tsx
@@ -421,6 +421,24 @@ const ConfigureIngestion = ({
const getMetadataFields = () => {
return (
<>
+
+
+
+ Name that identifies this pipeline instance uniquely.
+
+ handleIngestionName(e.target.value)}
+ />
+ {getSeparator('')}
+
{getMetadataFilterPatternField()}
>
);
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx
index 7b6fa3642f0..8b51d6f4d44 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/Ingestion.component.tsx
@@ -113,7 +113,8 @@ const Ingestion: React.FC = ({
if (ingestionList.length > 0) {
return pipelineType.reduce((prev, curr) => {
if (
- curr !== PipelineType.Profiler &&
+ // Prevent adding multiple usage pipeline
+ curr === PipelineType.Usage &&
ingestionList.find((d) => d.pipelineType === curr)
) {
return prev;
@@ -263,12 +264,21 @@ const Ingestion: React.FC = ({
const getAddIngestionElement = () => {
const types = getIngestionPipelineTypeOption();
let element: JSX.Element | null = null;
+ // Check if service has atleast one metadata pipeline available or not
+ const hasMetadata = ingestionList.find(
+ (ingestion) => ingestion.pipelineType === PipelineType.Metadata
+ );
if (types.length) {
- if (types[0] === PipelineType.Metadata || types.length === 1) {
- element = getAddIngestionButton(types[0]);
- } else {
+ // if service has metedata then show all available option
+ if (hasMetadata) {
element = getAddIngestionDropdown(types);
+ } else {
+ /**
+ * If service does not have any metedata pipeline then
+ * show only option for metadata ingestion
+ */
+ element = getAddIngestionButton(PipelineType.Metadata);
}
}
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx
index 47cf400802d..fd8cfe8a434 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtils.tsx
@@ -484,7 +484,11 @@ export const getIngestionName = (
serviceName: string,
type: IngestionPipelineType
) => {
- if (type === IngestionPipelineType.Profiler) {
+ if (
+ [IngestionPipelineType.Profiler, IngestionPipelineType.Metadata].includes(
+ type
+ )
+ ) {
return `${serviceName}_${type}_${cryptoRandomString({
length: 8,
type: 'alphanumeric',