diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx index e83811bec23..52ba1a7a49c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.component.tsx @@ -12,6 +12,7 @@ */ import { LOADING_STATE } from 'enums/common.enum'; +import { Connection } from 'generated/api/services/createDatabaseService'; import { isEmpty, isUndefined, omit, trim } from 'lodash'; import React, { Reducer, @@ -131,9 +132,12 @@ const AddIngestion = ({ () => getSourceTypeFromConfig(configData as DbtConfig | undefined), [configData] ); + const { database, ingestAllDatabases } = serviceData.connection + .config as Connection; const initialState: AddIngestionState = useMemo( () => ({ + database, saveState: 'initial', showDeployModal: false, ingestionName: @@ -147,7 +151,12 @@ const AddIngestion = ({ data?.airflowConfig.scheduleInterval ?? getIngestionFrequency(pipelineType), showDashboardFilter: !isUndefined(sourceConfig?.dashboardFilterPattern), - showDatabaseFilter: !isUndefined(sourceConfig?.databaseFilterPattern), + showDatabaseFilter: Boolean( + database || sourceConfig?.databaseFilterPattern + ), + isDatabaseFilterDisabled: ingestAllDatabases + ? !ingestAllDatabases + : Boolean(database), showSchemaFilter: !isUndefined(sourceConfig?.schemaFilterPattern), showTableFilter: !isUndefined(sourceConfig?.tableFilterPattern), showTopicFilter: !isUndefined(sourceConfig?.topicFilterPattern), @@ -164,8 +173,12 @@ const AddIngestion = ({ : undefined, dashboardFilterPattern: sourceConfig?.dashboardFilterPattern ?? INITIAL_FILTER_PATTERN, - databaseFilterPattern: - sourceConfig?.databaseFilterPattern ?? INITIAL_FILTER_PATTERN, + databaseFilterPattern: isUndefined(database) + ? sourceConfig?.databaseFilterPattern ?? INITIAL_FILTER_PATTERN + : { + includes: [database], + excludes: [], + }, markAllDeletedTables: isDatabaseService ? Boolean(sourceConfig?.markAllDeletedTables ?? false) : undefined, diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.test.tsx index ad562043448..fa815bea6a7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/AddIngestion.test.tsx @@ -16,7 +16,6 @@ import React from 'react'; import { FormSubmitType } from '../../enums/form.enum'; import { ServiceCategory } from '../../enums/service.enum'; import { PipelineType } from '../../generated/entity/services/ingestionPipelines/ingestionPipeline'; -import { DataObj } from '../../interface/service.interface'; import AddIngestion from './AddIngestion.component'; import { AddIngestionProps } from './addIngestion.interface'; @@ -25,7 +24,13 @@ const mockAddIngestionProps: AddIngestionProps = { setActiveIngestionStep: jest.fn(), serviceData: { name: 'serviceName', - } as DataObj, + connection: { + config: { + database: 'testDb', + ingestAllDatabases: false, + }, + }, + }, handleCancelClick: jest.fn(), serviceCategory: ServiceCategory.DASHBOARD_SERVICES, onAddIngestionSave: jest.fn(), diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.test.tsx index c160406c152..096edf8472e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddIngestion/Steps/ConfigureIngestion.test.tsx @@ -46,6 +46,7 @@ const mockConfigureIngestion: ConfigureIngestionProps = { serviceCategory: ServiceCategory.DATABASE_SERVICES, onChange: jest.fn(), data: { + showDatabaseFilterField: true, ingestionName: '', databaseFilterPattern: { includes: [], 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 d21051808eb..dd718e67c21 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 @@ -591,8 +591,15 @@ const ConfigureIngestion = ({ handleShowFilter(value, ShowFilter.showDatabaseFilter) } includePattern={databaseFilterPattern?.includes ?? []} + includePatternExtraInfo={ + data.database + ? t('message.include-database-filter-extra-information') + : undefined + } + isDisabled={data.isDatabaseFilterDisabled} type={FilterPatternEnum.DATABASE} /> + void; @@ -94,8 +94,10 @@ export type ModifiedDbtConfig = DbtConfig & export interface AddIngestionState { chartFilterPattern: FilterPattern; + database?: string; dashboardFilterPattern: FilterPattern; databaseFilterPattern: FilterPattern; + isDatabaseFilterDisabled: boolean; databaseServiceNames: string[]; dbtClassificationName: string; dbtUpdateDescriptions: boolean; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddService/AddService.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddService/AddService.component.tsx index f901258be18..d37a8e408cb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddService/AddService.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddService/AddService.component.tsx @@ -29,7 +29,7 @@ import { delimiterRegex, nameWithSpace } from '../../constants/regex.constants'; import { FormSubmitType } from '../../enums/form.enum'; import { ServiceCategory } from '../../enums/service.enum'; import { PipelineType } from '../../generated/entity/services/ingestionPipelines/ingestionPipeline'; -import { ConfigData, DataObj } from '../../interface/service.interface'; +import { ConfigData } from '../../interface/service.interface'; import { getCurrentUserId, isUrlFriendlyName } from '../../utils/CommonUtils'; import { getAddServicePath, getSettingPath } from '../../utils/RouterUtils'; import { @@ -333,7 +333,7 @@ const AddService = ({ isIngestionDeployed={isIngestionDeployed} pipelineType={PipelineType.Metadata} serviceCategory={serviceCategory} - serviceData={newServiceData as DataObj} + serviceData={newServiceData} setActiveIngestionStep={(step) => setActiveIngestionStep(step)} showDeployButton={showDeployButton} status={FormSubmitType.ADD} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/FilterPattern/FilterPattern.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/FilterPattern/FilterPattern.tsx index 1aec2768805..ea543eed280 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/FilterPattern/FilterPattern.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/FilterPattern/FilterPattern.tsx @@ -25,12 +25,14 @@ import { FilterPatternProps } from './filterPattern.interface'; const FilterPattern = ({ showSeparator = true, + isDisabled = false, checked, includePattern, excludePattern, handleChecked, getIncludeValue, getExcludeValue, + includePatternExtraInfo, type, }: FilterPatternProps) => { const includeFilterChangeHandler = ( @@ -55,6 +57,7 @@ const FilterPattern = ({ checked={checked} className="m-r-sm filter-pattern-checkbox" data-testid={`${type}-filter-pattern-checkbox`} + disabled={isDisabled} id={`${type}FilterPatternCheckbox`} name={`${type}FilterPatternCheckbox`} onChange={(e) => handleChecked(e.target.checked)} @@ -101,11 +104,19 @@ const FilterPattern = ({ + {includePatternExtraInfo && ( + + {includePatternExtraInfo} + + )} @@ -120,6 +131,7 @@ const FilterPattern = ({ void; includePattern: Array | undefined; diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json index 77e972a8fcf..797e202e73e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json @@ -1022,6 +1022,7 @@ "has-been-created-successfully": "has been created successfully", "in-this-database": "In this Database", "include-assets-message": "Optional configuration to toggle the tags ingestion.", + "include-database-filter-extra-information": "Database which was added while creating service.", "include-lineage-message": "Configuration to turn off fetching lineage from pipelines.", "ingest-sample-data-for-entity": "Extract sample data from each {{entity}}.", "ingestion-bot-cant-be-deleted": "You cannot delete the ingestion bot.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json index d3ee4ba2222..6ea46615385 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json @@ -1022,6 +1022,7 @@ "has-been-created-successfully": "has been created successfully", "in-this-database": "In this Database", "include-assets-message": "Optional configuration to toggle the tags ingestion.", + "include-database-filter-extra-information": "Database which was added while creating service.", "include-lineage-message": "Configuration to turn off fetching lineage from pipelines.", "ingest-sample-data-for-entity": "Extract sample data from each {{entity}}.", "ingestion-bot-cant-be-deleted": "You cannot delete the ingestion bot.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json index e3cfc50dc1e..e5ffe256a41 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json @@ -1022,6 +1022,7 @@ "has-been-created-successfully": "has been created successfully", "in-this-database": "In this Database", "include-assets-message": "Enable extracting {{assets}} from the data source.", + "include-database-filter-extra-information": "Database which was added while creating service.", "include-lineage-message": "Configuration to turn off fetching lineage from pipelines.", "ingest-sample-data-for-entity": "Extract sample data from each {{entity}}.", "ingestion-bot-cant-be-deleted": "Vous ne pouvez pas supprimer l'agent numérique d'ingestion.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json index 4f12d63b2a7..1059a8397b4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json @@ -1022,6 +1022,7 @@ "has-been-created-successfully": "正常に作成されました", "in-this-database": "In this Database", "include-assets-message": "データソースから{{assets}}の抽出を有効にする。", + "include-database-filter-extra-information": "Database which was added while creating service.", "include-lineage-message": "Configuration to turn off fetching lineage from pipelines.", "ingest-sample-data-for-entity": "{{entity}}からサンプルデータを抽出", "ingestion-bot-cant-be-deleted": "You cannot delete the ingestion bot.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json index 0666cf197fa..fa73b8db328 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json @@ -1022,6 +1022,7 @@ "has-been-created-successfully": "foi criado com sucesso", "in-this-database": "Neste banco de dados", "include-assets-message": "Habilitar extração de {{assets}} da fonte de dados.", + "include-database-filter-extra-information": "Database which was added while creating service.", "include-lineage-message": "Configuração para desligar a busca de linhagem nos pipelines.", "ingest-sample-data-for-entity": "Extrair dados de exemplo de cada {{entity}}.", "ingestion-bot-cant-be-deleted": "Você não pode excluir o robô de ingestão.", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json index 54ab7180ef2..a9fe862489a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json @@ -1022,6 +1022,7 @@ "has-been-created-successfully": "has been created successfully", "in-this-database": "In this Database", "include-assets-message": "Enable extracting {{assets}} from the data source.", + "include-database-filter-extra-information": "Database which was added while creating service.", "include-lineage-message": "Configuration to turn off fetching lineage from pipelines.", "ingest-sample-data-for-entity": "Extract sample data from each {{entity}}.", "ingestion-bot-cant-be-deleted": "You can not delete the ingestion bot.",