openmetadata-ingestion 1.7.1.4__py3-none-any.whl → 1.7.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openmetadata-ingestion might be problematic. Click here for more details.
- metadata/cli/classify.py +3 -1
- metadata/cli/dataquality.py +3 -1
- metadata/generated/schema/analytics/__init__.py +1 -1
- metadata/generated/schema/analytics/basic.py +1 -1
- metadata/generated/schema/analytics/reportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
- metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
- metadata/generated/schema/api/__init__.py +1 -1
- metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
- metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
- metadata/generated/schema/api/analytics/__init__.py +1 -1
- metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
- metadata/generated/schema/api/automations/__init__.py +1 -1
- metadata/generated/schema/api/automations/createWorkflow.py +1 -1
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +1 -1
- metadata/generated/schema/api/classification/createTag.py +1 -1
- metadata/generated/schema/api/classification/loadTags.py +1 -1
- metadata/generated/schema/api/createBot.py +1 -1
- metadata/generated/schema/api/createEventPublisherJob.py +1 -1
- metadata/generated/schema/api/createType.py +1 -1
- metadata/generated/schema/api/data/__init__.py +1 -1
- metadata/generated/schema/api/data/createAPICollection.py +1 -1
- metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
- metadata/generated/schema/api/data/createChart.py +1 -1
- metadata/generated/schema/api/data/createContainer.py +1 -1
- metadata/generated/schema/api/data/createCustomProperty.py +1 -1
- metadata/generated/schema/api/data/createDashboard.py +1 -1
- metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
- metadata/generated/schema/api/data/createDatabase.py +1 -1
- metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
- metadata/generated/schema/api/data/createGlossary.py +1 -1
- metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
- metadata/generated/schema/api/data/createMetric.py +1 -1
- metadata/generated/schema/api/data/createMlModel.py +1 -1
- metadata/generated/schema/api/data/createPipeline.py +1 -1
- metadata/generated/schema/api/data/createQuery.py +1 -1
- metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
- metadata/generated/schema/api/data/createSearchIndex.py +1 -1
- metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
- metadata/generated/schema/api/data/createTable.py +1 -1
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +1 -1
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +1 -1
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +1 -1
- metadata/generated/schema/api/domains/createDomain.py +1 -1
- metadata/generated/schema/api/feed/__init__.py +1 -1
- metadata/generated/schema/api/feed/closeTask.py +1 -1
- metadata/generated/schema/api/feed/createPost.py +1 -1
- metadata/generated/schema/api/feed/createSuggestion.py +1 -1
- metadata/generated/schema/api/feed/createThread.py +1 -1
- metadata/generated/schema/api/feed/resolveTask.py +1 -1
- metadata/generated/schema/api/feed/threadCount.py +1 -1
- metadata/generated/schema/api/governance/__init__.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
- metadata/generated/schema/api/lineage/__init__.py +1 -1
- metadata/generated/schema/api/lineage/addLineage.py +1 -1
- metadata/generated/schema/api/lineage/esLineageData.py +1 -1
- metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
- metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
- metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
- metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
- metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
- metadata/generated/schema/api/policies/__init__.py +1 -1
- metadata/generated/schema/api/policies/createPolicy.py +1 -1
- metadata/generated/schema/api/search/__init__.py +1 -1
- metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createApiService.py +1 -1
- metadata/generated/schema/api/services/createDashboardService.py +1 -1
- metadata/generated/schema/api/services/createDatabaseService.py +1 -1
- metadata/generated/schema/api/services/createMessagingService.py +1 -1
- metadata/generated/schema/api/services/createMetadataService.py +1 -1
- metadata/generated/schema/api/services/createMlModelService.py +1 -1
- metadata/generated/schema/api/services/createPipelineService.py +1 -1
- metadata/generated/schema/api/services/createSearchService.py +1 -1
- metadata/generated/schema/api/services/createStorageService.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +2 -1
- metadata/generated/schema/api/setOwner.py +1 -1
- metadata/generated/schema/api/teams/__init__.py +1 -1
- metadata/generated/schema/api/teams/createPersona.py +1 -1
- metadata/generated/schema/api/teams/createRole.py +1 -1
- metadata/generated/schema/api/teams/createTeam.py +1 -1
- metadata/generated/schema/api/teams/createUser.py +1 -1
- metadata/generated/schema/api/tests/__init__.py +1 -1
- metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
- metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
- metadata/generated/schema/api/tests/createTestCase.py +1 -1
- metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
- metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
- metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
- metadata/generated/schema/api/tests/createTestSuite.py +1 -1
- metadata/generated/schema/api/voteRequest.py +1 -1
- metadata/generated/schema/auth/__init__.py +1 -1
- metadata/generated/schema/auth/basicAuth.py +1 -1
- metadata/generated/schema/auth/basicLoginRequest.py +1 -1
- metadata/generated/schema/auth/changePasswordRequest.py +1 -1
- metadata/generated/schema/auth/createPersonalToken.py +1 -1
- metadata/generated/schema/auth/emailRequest.py +1 -1
- metadata/generated/schema/auth/emailVerificationToken.py +1 -1
- metadata/generated/schema/auth/generateToken.py +1 -1
- metadata/generated/schema/auth/jwtAuth.py +1 -1
- metadata/generated/schema/auth/loginRequest.py +1 -1
- metadata/generated/schema/auth/logoutRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetToken.py +1 -1
- metadata/generated/schema/auth/personalAccessToken.py +1 -1
- metadata/generated/schema/auth/refreshToken.py +1 -1
- metadata/generated/schema/auth/registrationRequest.py +1 -1
- metadata/generated/schema/auth/revokePersonalToken.py +1 -1
- metadata/generated/schema/auth/revokeToken.py +1 -1
- metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
- metadata/generated/schema/auth/ssoAuth.py +1 -1
- metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
- metadata/generated/schema/configuration/__init__.py +1 -1
- metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
- metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
- metadata/generated/schema/configuration/authConfig.py +1 -1
- metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
- metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
- metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
- metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
- metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
- metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
- metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
- metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
- metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
- metadata/generated/schema/configuration/lineageSettings.py +1 -1
- metadata/generated/schema/configuration/loginConfiguration.py +1 -1
- metadata/generated/schema/configuration/logoConfiguration.py +1 -1
- metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
- metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
- metadata/generated/schema/configuration/opsConfig.py +1 -1
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
- metadata/generated/schema/configuration/searchSettings.py +1 -1
- metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
- metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/themeConfiguration.py +1 -1
- metadata/generated/schema/configuration/uiThemePreference.py +1 -1
- metadata/generated/schema/configuration/workflowSettings.py +1 -1
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
- metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
- metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
- metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
- metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
- metadata/generated/schema/dataInsight/type/__init__.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
- metadata/generated/schema/email/__init__.py +1 -1
- metadata/generated/schema/email/emailRequest.py +1 -1
- metadata/generated/schema/email/emailTemplate.py +1 -1
- metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
- metadata/generated/schema/email/smtpSettings.py +1 -1
- metadata/generated/schema/email/templateValidationReponse.py +1 -1
- metadata/generated/schema/entity/__init__.py +1 -1
- metadata/generated/schema/entity/applications/__init__.py +1 -1
- metadata/generated/schema/entity/applications/app.py +1 -1
- metadata/generated/schema/entity/applications/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
- metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
- metadata/generated/schema/entity/applications/jobStatus.py +1 -1
- metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
- metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
- metadata/generated/schema/entity/automations/__init__.py +1 -1
- metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
- metadata/generated/schema/entity/automations/workflow.py +1 -1
- metadata/generated/schema/entity/bot.py +1 -1
- metadata/generated/schema/entity/classification/__init__.py +1 -1
- metadata/generated/schema/entity/classification/classification.py +1 -1
- metadata/generated/schema/entity/classification/tag.py +1 -1
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/apiCollection.py +1 -1
- metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
- metadata/generated/schema/entity/data/chart.py +1 -1
- metadata/generated/schema/entity/data/container.py +1 -1
- metadata/generated/schema/entity/data/dashboard.py +1 -1
- metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
- metadata/generated/schema/entity/data/database.py +1 -1
- metadata/generated/schema/entity/data/databaseSchema.py +1 -1
- metadata/generated/schema/entity/data/glossary.py +1 -1
- metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
- metadata/generated/schema/entity/data/metric.py +1 -1
- metadata/generated/schema/entity/data/mlmodel.py +1 -1
- metadata/generated/schema/entity/data/pipeline.py +1 -1
- metadata/generated/schema/entity/data/query.py +1 -1
- metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
- metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
- metadata/generated/schema/entity/data/report.py +1 -1
- metadata/generated/schema/entity/data/searchIndex.py +1 -1
- metadata/generated/schema/entity/data/storedProcedure.py +1 -1
- metadata/generated/schema/entity/data/table.py +1 -1
- metadata/generated/schema/entity/data/topic.py +1 -1
- metadata/generated/schema/entity/docStore/__init__.py +1 -1
- metadata/generated/schema/entity/docStore/document.py +1 -1
- metadata/generated/schema/entity/domains/__init__.py +1 -1
- metadata/generated/schema/entity/domains/dataProduct.py +1 -1
- metadata/generated/schema/entity/domains/domain.py +1 -1
- metadata/generated/schema/entity/events/__init__.py +1 -1
- metadata/generated/schema/entity/events/webhook.py +1 -1
- metadata/generated/schema/entity/feed/__init__.py +1 -1
- metadata/generated/schema/entity/feed/assets.py +1 -1
- metadata/generated/schema/entity/feed/customProperty.py +1 -1
- metadata/generated/schema/entity/feed/description.py +1 -1
- metadata/generated/schema/entity/feed/domain.py +1 -1
- metadata/generated/schema/entity/feed/entityInfo.py +1 -1
- metadata/generated/schema/entity/feed/owner.py +1 -1
- metadata/generated/schema/entity/feed/suggestion.py +1 -1
- metadata/generated/schema/entity/feed/tag.py +1 -1
- metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
- metadata/generated/schema/entity/feed/thread.py +1 -1
- metadata/generated/schema/entity/policies/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
- metadata/generated/schema/entity/policies/filters.py +1 -1
- metadata/generated/schema/entity/policies/policy.py +1 -1
- metadata/generated/schema/entity/services/__init__.py +1 -1
- metadata/generated/schema/entity/services/apiService.py +1 -1
- metadata/generated/schema/entity/services/connections/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
- metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +9 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +56 -0
- metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/s3Connection.py +2 -2
- metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
- metadata/generated/schema/entity/services/dashboardService.py +1 -1
- metadata/generated/schema/entity/services/databaseService.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +5 -1
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +1 -1
- metadata/generated/schema/entity/services/metadataService.py +1 -1
- metadata/generated/schema/entity/services/mlmodelService.py +1 -1
- metadata/generated/schema/entity/services/pipelineService.py +4 -1
- metadata/generated/schema/entity/services/searchService.py +1 -1
- metadata/generated/schema/entity/services/serviceType.py +1 -1
- metadata/generated/schema/entity/services/storageService.py +1 -1
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +1 -1
- metadata/generated/schema/entity/teams/role.py +1 -1
- metadata/generated/schema/entity/teams/team.py +1 -1
- metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
- metadata/generated/schema/entity/teams/user.py +1 -1
- metadata/generated/schema/entity/type.py +1 -1
- metadata/generated/schema/entity/utils/__init__.py +1 -1
- metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
- metadata/generated/schema/entity/utils/servicesCount.py +1 -1
- metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
- metadata/generated/schema/events/__init__.py +1 -1
- metadata/generated/schema/events/alertMetrics.py +1 -1
- metadata/generated/schema/events/api/__init__.py +1 -1
- metadata/generated/schema/events/api/createEventSubscription.py +1 -1
- metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
- metadata/generated/schema/events/api/eventsRecord.py +1 -1
- metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
- metadata/generated/schema/events/api/typedEvent.py +1 -1
- metadata/generated/schema/events/emailAlertConfig.py +1 -1
- metadata/generated/schema/events/eventFilterRule.py +1 -1
- metadata/generated/schema/events/eventSubscription.py +1 -1
- metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
- metadata/generated/schema/events/failedEvent.py +1 -1
- metadata/generated/schema/events/failedEventResponse.py +1 -1
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/statusContext.py +1 -1
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionStatus.py +1 -1
- metadata/generated/schema/events/testDestinationStatus.py +1 -1
- metadata/generated/schema/governance/workflows/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
- metadata/generated/schema/jobs/__init__.py +1 -1
- metadata/generated/schema/jobs/backgroundJob.py +1 -1
- metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtPipeline.py +9 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/workflow.py +1 -1
- metadata/generated/schema/monitoring/__init__.py +1 -1
- metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
- metadata/generated/schema/search/__init__.py +1 -1
- metadata/generated/schema/search/aggregationRequest.py +1 -1
- metadata/generated/schema/search/searchRequest.py +1 -1
- metadata/generated/schema/security/__init__.py +1 -1
- metadata/generated/schema/security/client/__init__.py +1 -1
- metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
- metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
- metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
- metadata/generated/schema/security/credentials/__init__.py +1 -1
- metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
- metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
- metadata/generated/schema/security/credentials/basicAuth.py +1 -1
- metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
- metadata/generated/schema/security/credentials/gcpValues.py +1 -1
- metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
- metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
- metadata/generated/schema/security/sasl/__init__.py +1 -1
- metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
- metadata/generated/schema/security/secrets/__init__.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
- metadata/generated/schema/security/securityConfiguration.py +1 -1
- metadata/generated/schema/security/ssl/__init__.py +1 -1
- metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
- metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
- metadata/generated/schema/settings/__init__.py +1 -1
- metadata/generated/schema/settings/settings.py +1 -1
- metadata/generated/schema/system/__init__.py +1 -1
- metadata/generated/schema/system/entityError.py +1 -1
- metadata/generated/schema/system/eventPublisherJob.py +1 -1
- metadata/generated/schema/system/indexingError.py +1 -1
- metadata/generated/schema/system/limitsResponse.py +1 -1
- metadata/generated/schema/system/ui/__init__.py +1 -1
- metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
- metadata/generated/schema/system/ui/navigationItem.py +1 -1
- metadata/generated/schema/system/ui/page.py +1 -1
- metadata/generated/schema/system/ui/tab.py +1 -1
- metadata/generated/schema/system/ui/uiCustomization.py +1 -1
- metadata/generated/schema/system/validationResponse.py +1 -1
- metadata/generated/schema/tests/__init__.py +1 -1
- metadata/generated/schema/tests/assigned.py +1 -1
- metadata/generated/schema/tests/basic.py +1 -1
- metadata/generated/schema/tests/customMetric.py +1 -1
- metadata/generated/schema/tests/dataQualityReport.py +1 -1
- metadata/generated/schema/tests/resolved.py +1 -1
- metadata/generated/schema/tests/testCase.py +1 -1
- metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
- metadata/generated/schema/tests/testDefinition.py +1 -1
- metadata/generated/schema/tests/testSuite.py +1 -1
- metadata/generated/schema/type/__init__.py +1 -1
- metadata/generated/schema/type/apiSchema.py +1 -1
- metadata/generated/schema/type/assetCertification.py +1 -1
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +2 -1
- metadata/generated/schema/type/bulkOperationResult.py +1 -1
- metadata/generated/schema/type/changeEvent.py +1 -1
- metadata/generated/schema/type/changeEventType.py +1 -1
- metadata/generated/schema/type/changeSummaryMap.py +1 -1
- metadata/generated/schema/type/collectionDescriptor.py +1 -1
- metadata/generated/schema/type/csvDocumentation.py +1 -1
- metadata/generated/schema/type/csvErrorType.py +1 -1
- metadata/generated/schema/type/csvFile.py +1 -1
- metadata/generated/schema/type/csvImportResult.py +1 -1
- metadata/generated/schema/type/customProperties/__init__.py +1 -1
- metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
- metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
- metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
- metadata/generated/schema/type/customProperty.py +1 -1
- metadata/generated/schema/type/dailyCount.py +1 -1
- metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
- metadata/generated/schema/type/entityHierarchy.py +1 -1
- metadata/generated/schema/type/entityHistory.py +1 -1
- metadata/generated/schema/type/entityLineage.py +1 -1
- metadata/generated/schema/type/entityReference.py +1 -1
- metadata/generated/schema/type/entityReferenceList.py +1 -1
- metadata/generated/schema/type/entityRelationship.py +1 -1
- metadata/generated/schema/type/entityUsage.py +1 -1
- metadata/generated/schema/type/filterPattern.py +1 -1
- metadata/generated/schema/type/function.py +1 -1
- metadata/generated/schema/type/include.py +1 -1
- metadata/generated/schema/type/jdbcConnection.py +1 -1
- metadata/generated/schema/type/lifeCycle.py +1 -1
- metadata/generated/schema/type/paging.py +1 -1
- metadata/generated/schema/type/profile.py +1 -1
- metadata/generated/schema/type/queryParserData.py +1 -1
- metadata/generated/schema/type/reaction.py +1 -1
- metadata/generated/schema/type/schedule.py +1 -1
- metadata/generated/schema/type/schema.py +1 -1
- metadata/generated/schema/type/tableQuery.py +1 -1
- metadata/generated/schema/type/tableUsageCount.py +1 -1
- metadata/generated/schema/type/tagLabel.py +1 -1
- metadata/generated/schema/type/usageDetails.py +1 -1
- metadata/generated/schema/type/usageRequest.py +1 -1
- metadata/generated/schema/type/votes.py +1 -1
- metadata/ingestion/lineage/models.py +14 -0
- metadata/ingestion/models/custom_pydantic.py +2 -0
- metadata/ingestion/ometa/mixins/lineage_mixin.py +1 -0
- metadata/ingestion/source/dashboard/lightdash/client.py +81 -8
- metadata/ingestion/source/dashboard/lightdash/metadata.py +39 -21
- metadata/ingestion/source/dashboard/lightdash/models.py +11 -0
- metadata/ingestion/source/dashboard/looker/metadata.py +17 -9
- metadata/ingestion/source/dashboard/tableau/client.py +28 -24
- metadata/ingestion/source/dashboard/tableau/connection.py +18 -4
- metadata/ingestion/source/dashboard/tableau/metadata.py +3 -2
- metadata/ingestion/source/database/databricks/metadata.py +50 -0
- metadata/ingestion/source/database/databricks/queries.py +4 -0
- metadata/ingestion/source/database/databricks/service_spec.py +2 -0
- metadata/ingestion/source/database/db2/connection.py +15 -0
- metadata/ingestion/source/database/db2/utils.py +130 -0
- metadata/ingestion/source/database/dbt/metadata.py +17 -2
- metadata/ingestion/source/database/doris/metadata.py +4 -1
- metadata/ingestion/source/database/snowflake/metadata.py +19 -0
- metadata/ingestion/source/database/trino/queries.py +1 -1
- metadata/ingestion/source/database/trino/query_parser.py +15 -0
- metadata/ingestion/source/database/unitycatalog/service_spec.py +1 -1
- metadata/ingestion/source/pipeline/dbtcloud/metadata.py +7 -7
- metadata/pii/algorithms/classifiers.py +6 -2
- metadata/pii/algorithms/presidio_patches.py +38 -0
- metadata/sampler/sqlalchemy/azuresql/sampler.py +4 -5
- metadata/sampler/sqlalchemy/databricks/sampler.py +26 -0
- metadata/sampler/sqlalchemy/mssql/sampler.py +2 -3
- metadata/sampler/sqlalchemy/sampler.py +2 -0
- metadata/sampler/sqlalchemy/snowflake/sampler.py +2 -3
- metadata/utils/filters.py +13 -0
- metadata/utils/helpers.py +1 -0
- metadata/utils/sqlalchemy_utils.py +21 -0
- metadata/workflow/context/base.py +24 -0
- metadata/workflow/context/context_manager.py +124 -0
- metadata/workflow/context/workflow_context.py +29 -0
- metadata/workflow/workflow_status_mixin.py +33 -12
- {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/METADATA +426 -426
- {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/RECORD +737 -732
- /metadata/{profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py → sampler/sqlalchemy/unitycatalog/sampler.py} +0 -0
- {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/top_level.txt +0 -0
|
@@ -50,6 +50,7 @@ from metadata.ingestion.source.database.databricks.queries import (
|
|
|
50
50
|
DATABRICKS_GET_CATALOGS,
|
|
51
51
|
DATABRICKS_GET_CATALOGS_TAGS,
|
|
52
52
|
DATABRICKS_GET_COLUMN_TAGS,
|
|
53
|
+
DATABRICKS_GET_SCHEMA_COMMENTS,
|
|
53
54
|
DATABRICKS_GET_SCHEMA_TAGS,
|
|
54
55
|
DATABRICKS_GET_TABLE_COMMENTS,
|
|
55
56
|
DATABRICKS_GET_TABLE_TAGS,
|
|
@@ -65,6 +66,8 @@ from metadata.utils.filters import filter_by_database
|
|
|
65
66
|
from metadata.utils.logger import ingestion_logger
|
|
66
67
|
from metadata.utils.sqlalchemy_utils import (
|
|
67
68
|
get_all_view_definitions,
|
|
69
|
+
get_schema_comment_result_wrapper,
|
|
70
|
+
get_schema_comment_results,
|
|
68
71
|
get_table_comment_result_wrapper,
|
|
69
72
|
get_table_comment_results,
|
|
70
73
|
get_view_definition_wrapper,
|
|
@@ -325,6 +328,24 @@ def get_table_comment_result(
|
|
|
325
328
|
)
|
|
326
329
|
|
|
327
330
|
|
|
331
|
+
@reflection.cache
|
|
332
|
+
def get_schema_comment_result(
|
|
333
|
+
self,
|
|
334
|
+
connection,
|
|
335
|
+
query,
|
|
336
|
+
database,
|
|
337
|
+
schema,
|
|
338
|
+
**kw, # pylint: disable=unused-argument
|
|
339
|
+
):
|
|
340
|
+
return get_schema_comment_result_wrapper(
|
|
341
|
+
self,
|
|
342
|
+
connection,
|
|
343
|
+
query=query,
|
|
344
|
+
database=database,
|
|
345
|
+
schema=schema,
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
|
|
328
349
|
@reflection.cache
|
|
329
350
|
def get_table_ddl(
|
|
330
351
|
self, connection, table_name, schema=None, **kw
|
|
@@ -413,6 +434,8 @@ DatabricksDialect.get_view_definition = get_view_definition
|
|
|
413
434
|
DatabricksDialect.get_table_names = get_table_names
|
|
414
435
|
DatabricksDialect.get_all_view_definitions = get_all_view_definitions
|
|
415
436
|
DatabricksDialect.get_table_comment_results = get_table_comment_results
|
|
437
|
+
DatabricksDialect.get_schema_comment_results = get_schema_comment_results
|
|
438
|
+
DatabricksDialect.get_schema_comment_result = get_schema_comment_result
|
|
416
439
|
DatabricksDialect.get_table_comment_result = get_table_comment_result
|
|
417
440
|
reflection.Inspector.get_schema_names = get_schema_names_reflection
|
|
418
441
|
reflection.Inspector.get_table_ddl = get_table_ddl
|
|
@@ -756,6 +779,33 @@ class DatabricksSource(ExternalTableLineageMixin, CommonDbSourceService, MultiDB
|
|
|
756
779
|
)
|
|
757
780
|
)
|
|
758
781
|
|
|
782
|
+
def get_schema_description(self, schema_name: str) -> str:
|
|
783
|
+
description = None
|
|
784
|
+
try:
|
|
785
|
+
query = DATABRICKS_GET_SCHEMA_COMMENTS.format(
|
|
786
|
+
database_name=self.context.get().database,
|
|
787
|
+
schema_name=schema_name,
|
|
788
|
+
)
|
|
789
|
+
cursor = self.inspector.dialect.get_schema_comment_result(
|
|
790
|
+
connection=self.connection,
|
|
791
|
+
query=query,
|
|
792
|
+
database=self.context.get().database,
|
|
793
|
+
schema=schema_name,
|
|
794
|
+
)
|
|
795
|
+
for result in list(cursor):
|
|
796
|
+
data = result.values()
|
|
797
|
+
if data[0] and data[0].strip() == "Comment":
|
|
798
|
+
description = data[1] if data and data[1] else None
|
|
799
|
+
return description
|
|
800
|
+
|
|
801
|
+
# Catch any exception without breaking the ingestion
|
|
802
|
+
except Exception as exep: # pylint: disable=broad-except
|
|
803
|
+
logger.debug(traceback.format_exc())
|
|
804
|
+
logger.warning(
|
|
805
|
+
f"Schema description error for schema [{schema_name}]: {exep}"
|
|
806
|
+
)
|
|
807
|
+
return description
|
|
808
|
+
|
|
759
809
|
def get_table_description(
|
|
760
810
|
self, schema_name: str, table_name: str, inspector: Inspector
|
|
761
811
|
) -> str:
|
|
@@ -52,6 +52,10 @@ DATABRICKS_GET_TABLE_COMMENTS = (
|
|
|
52
52
|
"DESCRIBE TABLE EXTENDED `{database_name}`.`{schema_name}`.`{table_name}`"
|
|
53
53
|
)
|
|
54
54
|
|
|
55
|
+
DATABRICKS_GET_SCHEMA_COMMENTS = (
|
|
56
|
+
"DESCRIBE SCHEMA EXTENDED `{database_name}`.`{schema_name}`"
|
|
57
|
+
)
|
|
58
|
+
|
|
55
59
|
DATABRICKS_GET_CATALOGS = "SHOW CATALOGS"
|
|
56
60
|
|
|
57
61
|
DATABRICKS_GET_CATALOGS_TAGS = textwrap.dedent(
|
|
@@ -9,6 +9,7 @@ from metadata.ingestion.source.database.databricks.usage import DatabricksUsageS
|
|
|
9
9
|
from metadata.profiler.interface.sqlalchemy.databricks.profiler_interface import (
|
|
10
10
|
DatabricksProfilerInterface,
|
|
11
11
|
)
|
|
12
|
+
from metadata.sampler.sqlalchemy.databricks.sampler import DatabricksSamplerInterface
|
|
12
13
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
13
14
|
|
|
14
15
|
ServiceSpec = DefaultDatabaseSpec(
|
|
@@ -17,4 +18,5 @@ ServiceSpec = DefaultDatabaseSpec(
|
|
|
17
18
|
usage_source_class=DatabricksUsageSource,
|
|
18
19
|
profiler_class=DatabricksProfilerInterface,
|
|
19
20
|
test_suite_class=DatabricksTestSuiteInterface,
|
|
21
|
+
sampler_class=DatabricksSamplerInterface,
|
|
20
22
|
)
|
|
@@ -33,13 +33,28 @@ from metadata.ingestion.connections.builders import (
|
|
|
33
33
|
)
|
|
34
34
|
from metadata.ingestion.connections.test_connections import test_connection_db_common
|
|
35
35
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
36
|
+
from metadata.ingestion.source.database.db2.utils import (
|
|
37
|
+
check_clidriver_version,
|
|
38
|
+
install_clidriver,
|
|
39
|
+
)
|
|
36
40
|
from metadata.utils.constants import THREE_MIN, UTF_8
|
|
41
|
+
from metadata.utils.logger import ingestion_logger
|
|
42
|
+
|
|
43
|
+
logger = ingestion_logger()
|
|
37
44
|
|
|
38
45
|
|
|
39
46
|
def get_connection(connection: Db2Connection) -> Engine:
|
|
40
47
|
"""
|
|
41
48
|
Create connection
|
|
42
49
|
"""
|
|
50
|
+
# Install ibm_db with specific version
|
|
51
|
+
clidriver_version = connection.clidriverVersion
|
|
52
|
+
|
|
53
|
+
if clidriver_version:
|
|
54
|
+
clidriver_version = check_clidriver_version(clidriver_version)
|
|
55
|
+
if clidriver_version:
|
|
56
|
+
install_clidriver(clidriver_version.value)
|
|
57
|
+
|
|
43
58
|
# prepare license
|
|
44
59
|
# pylint: disable=import-outside-toplevel
|
|
45
60
|
if connection.license and connection.licenseFileName:
|
|
@@ -12,9 +12,33 @@
|
|
|
12
12
|
"""
|
|
13
13
|
Module to define overriden dialect methods
|
|
14
14
|
"""
|
|
15
|
+
from enum import Enum
|
|
16
|
+
|
|
15
17
|
from sqlalchemy import and_, join, sql
|
|
16
18
|
from sqlalchemy.engine import reflection
|
|
17
19
|
|
|
20
|
+
from metadata.utils.logger import ingestion_logger
|
|
21
|
+
|
|
22
|
+
logger = ingestion_logger()
|
|
23
|
+
|
|
24
|
+
BASE_CLIDRIVER_URL = (
|
|
25
|
+
"https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli"
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class DB2CLIDriverVersions(Enum):
|
|
30
|
+
"""
|
|
31
|
+
Enum for the DB2 CLI Driver versions
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
V11_1_4 = "11.1.4"
|
|
35
|
+
V11_5_4 = "11.5.4"
|
|
36
|
+
V11_5_5 = "11.5.5"
|
|
37
|
+
V11_5_6 = "11.5.6"
|
|
38
|
+
V11_5_8 = "11.5.8"
|
|
39
|
+
V11_5_9 = "11.5.9"
|
|
40
|
+
V12_1_0 = "12.1.0"
|
|
41
|
+
|
|
18
42
|
|
|
19
43
|
@reflection.cache
|
|
20
44
|
def get_unique_constraints(
|
|
@@ -61,3 +85,109 @@ def get_unique_constraints(
|
|
|
61
85
|
}
|
|
62
86
|
)
|
|
63
87
|
return unique_consts
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def check_clidriver_version(clidriver_version: str):
|
|
91
|
+
"""
|
|
92
|
+
Check if the CLI Driver version is valid
|
|
93
|
+
"""
|
|
94
|
+
if clidriver_version not in [v.value for v in DB2CLIDriverVersions]:
|
|
95
|
+
logger.warning(f"Invalid CLI Driver version provided: {clidriver_version}")
|
|
96
|
+
return None
|
|
97
|
+
return DB2CLIDriverVersions(clidriver_version)
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
# pylint: disable=too-many-statements,too-many-branches
|
|
101
|
+
def install_clidriver(clidriver_version: str) -> None:
|
|
102
|
+
"""
|
|
103
|
+
Install the CLI Driver for DB2
|
|
104
|
+
"""
|
|
105
|
+
# pylint: disable=import-outside-toplevel
|
|
106
|
+
import os
|
|
107
|
+
import platform
|
|
108
|
+
import subprocess
|
|
109
|
+
import sys
|
|
110
|
+
from urllib.request import URLError, urlopen
|
|
111
|
+
|
|
112
|
+
import pkg_resources
|
|
113
|
+
|
|
114
|
+
clidriver_version = f"v{clidriver_version}"
|
|
115
|
+
system = platform.system().lower()
|
|
116
|
+
is_64bits = platform.architecture()[0] == "64bit"
|
|
117
|
+
clidriver_url = None
|
|
118
|
+
default_clidriver_url = None
|
|
119
|
+
|
|
120
|
+
def is_valid_url(url: str) -> bool:
|
|
121
|
+
"""Check if the URL is valid and accessible"""
|
|
122
|
+
try:
|
|
123
|
+
with urlopen(url) as _:
|
|
124
|
+
return True
|
|
125
|
+
except URLError:
|
|
126
|
+
return False
|
|
127
|
+
|
|
128
|
+
if system == "darwin": # macOS
|
|
129
|
+
machine = platform.machine().lower()
|
|
130
|
+
if machine == "arm64": # Apple Silicon
|
|
131
|
+
default_clidriver_url = f"{BASE_CLIDRIVER_URL}/macarm64_odbc_cli.tar.gz"
|
|
132
|
+
clidriver_url = f"{BASE_CLIDRIVER_URL}/macarm64_odbc_cli.tar.gz"
|
|
133
|
+
elif machine == "x86_64": # Intel
|
|
134
|
+
default_clidriver_url = f"{BASE_CLIDRIVER_URL}/macos64_odbc_cli.tar.gz"
|
|
135
|
+
clidriver_url = (
|
|
136
|
+
f"{BASE_CLIDRIVER_URL}/{str(clidriver_version)}/macos64_odbc_cli.tar.gz"
|
|
137
|
+
)
|
|
138
|
+
elif system == "linux":
|
|
139
|
+
if is_64bits:
|
|
140
|
+
default_clidriver_url = f"{BASE_CLIDRIVER_URL}/linuxx64_odbc_cli.tar.gz"
|
|
141
|
+
clidriver_url = f"{BASE_CLIDRIVER_URL}/{str(clidriver_version)}/linuxx64_odbc_cli.tar.gz"
|
|
142
|
+
else:
|
|
143
|
+
default_clidriver_url = f"{BASE_CLIDRIVER_URL}/linuxia32_odbc_cli.tar.gz"
|
|
144
|
+
clidriver_url = f"{BASE_CLIDRIVER_URL}/{str(clidriver_version)}/linuxia32_odbc_cli.tar.gz"
|
|
145
|
+
elif system == "windows":
|
|
146
|
+
if is_64bits:
|
|
147
|
+
default_clidriver_url = f"{BASE_CLIDRIVER_URL}/ntx64_odbc_cli.zip"
|
|
148
|
+
clidriver_url = (
|
|
149
|
+
f"{BASE_CLIDRIVER_URL}/{str(clidriver_version)}/ntx64_odbc_cli.zip"
|
|
150
|
+
)
|
|
151
|
+
else:
|
|
152
|
+
default_clidriver_url = f"{BASE_CLIDRIVER_URL}/nt32_odbc_cli.zip"
|
|
153
|
+
clidriver_url = (
|
|
154
|
+
f"{BASE_CLIDRIVER_URL}/{str(clidriver_version)}/nt32_odbc_cli.zip"
|
|
155
|
+
)
|
|
156
|
+
else:
|
|
157
|
+
logger.error(
|
|
158
|
+
f"Unsupported operating system for db2 driver installation: {system}"
|
|
159
|
+
)
|
|
160
|
+
return None
|
|
161
|
+
|
|
162
|
+
# set env variables for CLIDRIVER_VERSION and IBM_DB_INSTALLER_URL
|
|
163
|
+
os.environ["CLIDRIVER_VERSION"] = clidriver_version
|
|
164
|
+
if is_valid_url(clidriver_url):
|
|
165
|
+
os.environ["IBM_DB_INSTALLER_URL"] = clidriver_url
|
|
166
|
+
else:
|
|
167
|
+
os.environ["IBM_DB_INSTALLER_URL"] = default_clidriver_url
|
|
168
|
+
logger.info(f"Set IBM_DB_INSTALLER_URL to {os.environ['IBM_DB_INSTALLER_URL']}")
|
|
169
|
+
logger.info(f"Set CLIDRIVER_VERSION to {os.environ['CLIDRIVER_VERSION']}")
|
|
170
|
+
# Uninstall ibm_db if it is already installed
|
|
171
|
+
try:
|
|
172
|
+
pkg_resources.get_distribution("ibm_db")
|
|
173
|
+
# If we get here, ibm_db is installed, so uninstall it first
|
|
174
|
+
subprocess.check_call(
|
|
175
|
+
[sys.executable, "-m", "pip", "uninstall", "-y", "ibm_db"]
|
|
176
|
+
)
|
|
177
|
+
except pkg_resources.DistributionNotFound:
|
|
178
|
+
# ibm_db is not installed, proceed with installation
|
|
179
|
+
pass
|
|
180
|
+
# Install ibm_db with specific flags
|
|
181
|
+
subprocess.check_call(
|
|
182
|
+
[
|
|
183
|
+
sys.executable,
|
|
184
|
+
"-m",
|
|
185
|
+
"pip",
|
|
186
|
+
"install",
|
|
187
|
+
"ibm_db~=3.2.6",
|
|
188
|
+
"--no-binary",
|
|
189
|
+
":all:",
|
|
190
|
+
"--no-cache-dir",
|
|
191
|
+
]
|
|
192
|
+
)
|
|
193
|
+
return None
|
|
@@ -97,6 +97,7 @@ from metadata.ingestion.source.database.dbt.models import DbtMeta
|
|
|
97
97
|
from metadata.utils import fqn
|
|
98
98
|
from metadata.utils.elasticsearch import get_entity_from_es_result
|
|
99
99
|
from metadata.utils.entity_link import get_table_fqn
|
|
100
|
+
from metadata.utils.filters import filter_by_tag
|
|
100
101
|
from metadata.utils.logger import ingestion_logger
|
|
101
102
|
from metadata.utils.tag_utils import get_ometa_tag_and_classification, get_tag_labels
|
|
102
103
|
from metadata.utils.time_utils import datetime_to_timestamp
|
|
@@ -245,6 +246,18 @@ class DbtSource(DbtServiceSource):
|
|
|
245
246
|
f"Unable to find the node or columns in the catalog file for dbt node: {key}"
|
|
246
247
|
)
|
|
247
248
|
|
|
249
|
+
def filter_tags(self, tags: List[str]) -> List[str]:
|
|
250
|
+
"""
|
|
251
|
+
Filter tags based on tag filter pattern if configured
|
|
252
|
+
"""
|
|
253
|
+
if self.source_config.tagFilterPattern:
|
|
254
|
+
return [
|
|
255
|
+
tag
|
|
256
|
+
for tag in tags
|
|
257
|
+
if not filter_by_tag(self.source_config.tagFilterPattern, tag)
|
|
258
|
+
]
|
|
259
|
+
return tags
|
|
260
|
+
|
|
248
261
|
def yield_dbt_tags(
|
|
249
262
|
self, dbt_objects: DbtObjects
|
|
250
263
|
) -> Iterable[Either[OMetaTagAndClassification]]:
|
|
@@ -272,13 +285,13 @@ class DbtSource(DbtServiceSource):
|
|
|
272
285
|
# Add the tags from the model
|
|
273
286
|
model_tags = manifest_node.tags
|
|
274
287
|
if model_tags:
|
|
275
|
-
dbt_tags_list.extend(model_tags)
|
|
288
|
+
dbt_tags_list.extend(self.filter_tags(model_tags))
|
|
276
289
|
|
|
277
290
|
# Add the tags from the columns
|
|
278
291
|
for _, column in manifest_node.columns.items():
|
|
279
292
|
column_tags = column.tags
|
|
280
293
|
if column_tags:
|
|
281
|
-
dbt_tags_list.extend(column_tags)
|
|
294
|
+
dbt_tags_list.extend(self.filter_tags(column_tags))
|
|
282
295
|
except Exception as exc:
|
|
283
296
|
yield Either(
|
|
284
297
|
left=StackTraceError(
|
|
@@ -509,6 +522,7 @@ class DbtSource(DbtServiceSource):
|
|
|
509
522
|
|
|
510
523
|
dbt_table_tags_list = []
|
|
511
524
|
if manifest_node.tags:
|
|
525
|
+
manifest_node.tags = self.filter_tags(manifest_node.tags)
|
|
512
526
|
dbt_table_tags_list = (
|
|
513
527
|
get_tag_labels(
|
|
514
528
|
metadata=self.metadata,
|
|
@@ -669,6 +683,7 @@ class DbtSource(DbtServiceSource):
|
|
|
669
683
|
column_description = catalog_column.comment
|
|
670
684
|
|
|
671
685
|
dbt_column_tag_list = []
|
|
686
|
+
manifest_column.tags = self.filter_tags(manifest_column.tags)
|
|
672
687
|
dbt_column_tag_list.extend(
|
|
673
688
|
get_tag_labels(
|
|
674
689
|
metadata=self.metadata,
|
|
@@ -60,6 +60,7 @@ RELKIND_MAP = {
|
|
|
60
60
|
"Doris": TableType.Regular,
|
|
61
61
|
"View": TableType.View,
|
|
62
62
|
"MEMORY": TableType.View,
|
|
63
|
+
"OLAP": TableType.MaterializedView,
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
DorisDialect.get_table_names_and_type = get_table_names_and_type
|
|
@@ -179,7 +180,9 @@ class DorisSource(CommonDbSourceService):
|
|
|
179
180
|
logic on how to handle table types, e.g., external, foreign,...
|
|
180
181
|
"""
|
|
181
182
|
tables = [
|
|
182
|
-
TableNameAndType(
|
|
183
|
+
TableNameAndType(
|
|
184
|
+
name=name, type_=RELKIND_MAP.get(engine, TableType.Regular)
|
|
185
|
+
)
|
|
183
186
|
for name, engine in self.connection.execute(
|
|
184
187
|
sql.text(DORIS_GET_TABLE_NAMES), {"schema": schema_name}
|
|
185
188
|
)
|
|
@@ -52,6 +52,7 @@ from metadata.generated.schema.type.basic import (
|
|
|
52
52
|
FullyQualifiedEntityName,
|
|
53
53
|
SourceUrl,
|
|
54
54
|
)
|
|
55
|
+
from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
|
|
55
56
|
from metadata.ingestion.api.delete import delete_entity_by_name
|
|
56
57
|
from metadata.ingestion.api.models import Either
|
|
57
58
|
from metadata.ingestion.api.steps import InvalidSourceException
|
|
@@ -908,3 +909,21 @@ class SnowflakeSource(
|
|
|
908
909
|
schema_name=self.context.get().database_schema,
|
|
909
910
|
account_usage=self.service_connection.accountUsageSchema,
|
|
910
911
|
)
|
|
912
|
+
|
|
913
|
+
def get_owner_ref(self, table_name: str) -> Optional[EntityReferenceList]:
|
|
914
|
+
"""
|
|
915
|
+
Method to process the table owners
|
|
916
|
+
|
|
917
|
+
Snowflake uses a role-based ownership model, not a user-based one.
|
|
918
|
+
This means that ownership of database objects, such as tables, is assigned
|
|
919
|
+
to roles rather than individual users.
|
|
920
|
+
|
|
921
|
+
As OpenMetadata currently does not support role-based ownership assignment,
|
|
922
|
+
we are unable to retrieve or associate a meaningful table owner using this method.
|
|
923
|
+
Therefore, this function will return `None` or a placeholder, and ownership
|
|
924
|
+
metadata will not be populated in the OpenMetadata ingestion process.
|
|
925
|
+
"""
|
|
926
|
+
logger.debug(
|
|
927
|
+
f"Processing ownership is not supported for {self.service_connection.type.name}"
|
|
928
|
+
)
|
|
929
|
+
return None
|
|
@@ -20,7 +20,7 @@ TRINO_SQL_STATEMENT = textwrap.dedent(
|
|
|
20
20
|
"user" as user_name,
|
|
21
21
|
"started" as start_time,
|
|
22
22
|
"end" as end_time
|
|
23
|
-
from
|
|
23
|
+
from {query_history_table}
|
|
24
24
|
WHERE "query" NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
|
|
25
25
|
AND "query" NOT LIKE '/* {{"app": "dbt", %%}} */%%'
|
|
26
26
|
AND CAST("started" AS date) >= date_parse('{start_time}', '%Y-%m-%d %H:%i:%s')
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
Trino usage module
|
|
13
13
|
"""
|
|
14
14
|
from abc import ABC
|
|
15
|
+
from datetime import datetime
|
|
15
16
|
from typing import Optional
|
|
16
17
|
|
|
17
18
|
from metadata.generated.schema.entity.services.connections.database.trinoConnection import (
|
|
@@ -44,3 +45,17 @@ class TrinoQueryParserSource(QueryParserSource, ABC):
|
|
|
44
45
|
f"Expected TrinoConnection, but got {connection}"
|
|
45
46
|
)
|
|
46
47
|
return cls(config, metadata)
|
|
48
|
+
|
|
49
|
+
def get_sql_statement(self, start_time: datetime, end_time: datetime) -> str:
|
|
50
|
+
"""
|
|
51
|
+
returns sql statement to fetch query logs.
|
|
52
|
+
|
|
53
|
+
Override if we have specific parameters
|
|
54
|
+
"""
|
|
55
|
+
return self.sql_stmt.format(
|
|
56
|
+
start_time=start_time,
|
|
57
|
+
end_time=end_time,
|
|
58
|
+
filters=self.get_filters(),
|
|
59
|
+
result_limit=self.source_config.resultLimit,
|
|
60
|
+
query_history_table=self.service_connection.queryHistoryTable,
|
|
61
|
+
)
|
|
@@ -11,7 +11,7 @@ from metadata.ingestion.source.database.unitycatalog.usage import (
|
|
|
11
11
|
from metadata.profiler.interface.sqlalchemy.unity_catalog.profiler_interface import (
|
|
12
12
|
UnityCatalogProfilerInterface,
|
|
13
13
|
)
|
|
14
|
-
from metadata.
|
|
14
|
+
from metadata.sampler.sqlalchemy.unitycatalog.sampler import (
|
|
15
15
|
UnityCatalogSamplerInterface,
|
|
16
16
|
)
|
|
17
17
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
@@ -168,13 +168,6 @@ class DbtcloudSource(PipelineServiceSource):
|
|
|
168
168
|
entity=Pipeline, fqn=pipeline_fqn
|
|
169
169
|
)
|
|
170
170
|
|
|
171
|
-
lineage_details = LineageDetails(
|
|
172
|
-
pipeline=EntityReference(
|
|
173
|
-
id=pipeline_entity.id.root, type="pipeline"
|
|
174
|
-
),
|
|
175
|
-
source=LineageSource.PipelineLineage,
|
|
176
|
-
)
|
|
177
|
-
|
|
178
171
|
dbt_models = self.client.get_model_details(
|
|
179
172
|
job_id=pipeline_details.id, run_id=self.context.get().latest_run_id
|
|
180
173
|
)
|
|
@@ -222,6 +215,13 @@ class DbtcloudSource(PipelineServiceSource):
|
|
|
222
215
|
if from_entity is None:
|
|
223
216
|
continue
|
|
224
217
|
|
|
218
|
+
lineage_details = LineageDetails(
|
|
219
|
+
pipeline=EntityReference(
|
|
220
|
+
id=pipeline_entity.id.root, type="pipeline"
|
|
221
|
+
),
|
|
222
|
+
source=LineageSource.PipelineLineage,
|
|
223
|
+
)
|
|
224
|
+
|
|
225
225
|
yield Either(
|
|
226
226
|
right=AddLineageRequest(
|
|
227
227
|
edge=EntitiesEdge(
|
|
@@ -38,7 +38,11 @@ from metadata.pii.algorithms.feature_extraction import (
|
|
|
38
38
|
split_column_name,
|
|
39
39
|
)
|
|
40
40
|
from metadata.pii.algorithms.preprocessing import preprocess_values
|
|
41
|
-
from metadata.pii.algorithms.presidio_patches import
|
|
41
|
+
from metadata.pii.algorithms.presidio_patches import (
|
|
42
|
+
combine_patchers,
|
|
43
|
+
date_time_patcher,
|
|
44
|
+
url_patcher,
|
|
45
|
+
)
|
|
42
46
|
from metadata.pii.algorithms.presidio_utils import (
|
|
43
47
|
build_analyzer_engine,
|
|
44
48
|
set_presidio_logger_level,
|
|
@@ -119,7 +123,7 @@ class HeuristicPIIClassifier(ColumnClassifier[PIITag]):
|
|
|
119
123
|
self._presidio_analyzer,
|
|
120
124
|
str_values,
|
|
121
125
|
context=context,
|
|
122
|
-
recognizer_result_patcher=url_patcher,
|
|
126
|
+
recognizer_result_patcher=combine_patchers(date_time_patcher, url_patcher),
|
|
123
127
|
)
|
|
124
128
|
|
|
125
129
|
column_name_matches: Set[PIITag] = set()
|
|
@@ -13,6 +13,7 @@ Patch the Presidio recognizer results to make adapt them to specific use cases.
|
|
|
13
13
|
"""
|
|
14
14
|
from typing import List, Protocol, Sequence
|
|
15
15
|
|
|
16
|
+
from dateutil.parser import parse
|
|
16
17
|
from presidio_analyzer import RecognizerResult
|
|
17
18
|
|
|
18
19
|
|
|
@@ -29,6 +30,24 @@ class PresidioRecognizerResultPatcher(Protocol):
|
|
|
29
30
|
...
|
|
30
31
|
|
|
31
32
|
|
|
33
|
+
def combine_patchers(
|
|
34
|
+
*patchers: PresidioRecognizerResultPatcher,
|
|
35
|
+
) -> PresidioRecognizerResultPatcher:
|
|
36
|
+
"""
|
|
37
|
+
Combine multiple patchers into one.
|
|
38
|
+
This allows us to apply multiple patches in sequence.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
def combined_patcher(
|
|
42
|
+
recognizer_results: Sequence[RecognizerResult], text: str
|
|
43
|
+
) -> Sequence[RecognizerResult]:
|
|
44
|
+
for patcher in patchers:
|
|
45
|
+
recognizer_results = patcher(recognizer_results, text)
|
|
46
|
+
return recognizer_results
|
|
47
|
+
|
|
48
|
+
return combined_patcher
|
|
49
|
+
|
|
50
|
+
|
|
32
51
|
def url_patcher(
|
|
33
52
|
recognizer_results: Sequence[RecognizerResult], text: str
|
|
34
53
|
) -> Sequence[RecognizerResult]:
|
|
@@ -43,3 +62,22 @@ def url_patcher(
|
|
|
43
62
|
continue
|
|
44
63
|
patched_result.append(result)
|
|
45
64
|
return patched_result
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def date_time_patcher(
|
|
68
|
+
recognizer_results: Sequence[RecognizerResult], text: str
|
|
69
|
+
) -> Sequence[RecognizerResult]:
|
|
70
|
+
"""
|
|
71
|
+
Patch the recognizer result to remove date time false positive with date.
|
|
72
|
+
"""
|
|
73
|
+
patched_result: List[RecognizerResult] = []
|
|
74
|
+
for result in recognizer_results:
|
|
75
|
+
if result.entity_type == "DATE_TIME":
|
|
76
|
+
# try to parse using dateutils, if it fails, skip the result
|
|
77
|
+
try:
|
|
78
|
+
_ = parse(text[result.start : result.end])
|
|
79
|
+
except ValueError:
|
|
80
|
+
# if parsing fails, skip the result
|
|
81
|
+
continue
|
|
82
|
+
patched_result.append(result)
|
|
83
|
+
return patched_result
|
|
@@ -15,7 +15,7 @@ for the profiler
|
|
|
15
15
|
from typing import List, Optional
|
|
16
16
|
|
|
17
17
|
from sqlalchemy import Column, Table, text
|
|
18
|
-
from sqlalchemy.
|
|
18
|
+
from sqlalchemy.sql.selectable import CTE
|
|
19
19
|
|
|
20
20
|
from metadata.generated.schema.entity.data.table import TableData, TableType
|
|
21
21
|
from metadata.sampler.sqlalchemy.sampler import ProfileSampleType, SQASampler
|
|
@@ -49,13 +49,12 @@ class AzureSQLSampler(SQASampler):
|
|
|
49
49
|
|
|
50
50
|
return selectable
|
|
51
51
|
|
|
52
|
-
def get_sample_query(self, *, column=None) ->
|
|
53
|
-
"""
|
|
52
|
+
def get_sample_query(self, *, column=None) -> CTE:
|
|
53
|
+
"""Override the base method as ROWS or PERCENT sampling handled through the tablesample clause"""
|
|
54
54
|
rnd = self._base_sample_query(column).cte(
|
|
55
55
|
f"{self.get_sampler_table_name()}_rnd"
|
|
56
56
|
)
|
|
57
|
-
|
|
58
|
-
query = client.query(rnd)
|
|
57
|
+
query = self.get_client().query(rnd)
|
|
59
58
|
return query.cte(f"{self.get_sampler_table_name()}_sample")
|
|
60
59
|
|
|
61
60
|
def fetch_sample_data(self, columns: Optional[List[Column]] = None) -> TableData:
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Copyright 2025 Collate
|
|
2
|
+
# Licensed under the Collate Community License, Version 1.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
# https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
|
|
6
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
8
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
# See the License for the specific language governing permissions and
|
|
10
|
+
# limitations under the License.
|
|
11
|
+
"""
|
|
12
|
+
Helper module to handle data sampling for the profiler
|
|
13
|
+
"""
|
|
14
|
+
from metadata.ingestion.source.database.databricks.connection import (
|
|
15
|
+
get_connection as databricks_get_connection,
|
|
16
|
+
)
|
|
17
|
+
from metadata.sampler.sqlalchemy.sampler import SQASampler
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class DatabricksSamplerInterface(SQASampler):
|
|
21
|
+
def get_client(self):
|
|
22
|
+
"""client is the session for SQA"""
|
|
23
|
+
self.connection = databricks_get_connection(self.service_connection_config)
|
|
24
|
+
client = super().get_client()
|
|
25
|
+
self.set_catalog(client)
|
|
26
|
+
return client
|
|
@@ -44,10 +44,9 @@ class MssqlSampler(SQASampler):
|
|
|
44
44
|
return selectable
|
|
45
45
|
|
|
46
46
|
def get_sample_query(self, *, column=None) -> CTE:
|
|
47
|
-
"""
|
|
47
|
+
"""Override the base method as ROWS or PERCENT sampling handled through the tablesample clause"""
|
|
48
48
|
rnd = self._base_sample_query(column).cte(
|
|
49
49
|
f"{self.get_sampler_table_name()}_rnd"
|
|
50
50
|
)
|
|
51
|
-
|
|
52
|
-
query = client.query(rnd)
|
|
51
|
+
query = self.get_client().query(rnd)
|
|
53
52
|
return query.cte(f"{self.get_sampler_table_name()}_sample")
|
|
@@ -136,6 +136,8 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
|
|
|
136
136
|
).cte(f"{self.get_sampler_table_name()}_sample")
|
|
137
137
|
|
|
138
138
|
table_query = client.query(self.raw_dataset)
|
|
139
|
+
if self.partition_details:
|
|
140
|
+
table_query = self.get_partitioned_query(table_query)
|
|
139
141
|
session_query = self._base_sample_query(
|
|
140
142
|
column,
|
|
141
143
|
(ModuloFn(RandomNumFn(), table_query.count())).label(RANDOM_LABEL)
|
|
@@ -87,10 +87,9 @@ class SnowflakeSampler(SQASampler):
|
|
|
87
87
|
)
|
|
88
88
|
|
|
89
89
|
def get_sample_query(self, *, column=None) -> CTE:
|
|
90
|
-
"""
|
|
90
|
+
"""Override the base method as ROWS or PERCENT sampling handled through the tablesample clause"""
|
|
91
91
|
rnd = self._base_sample_query(column).cte(
|
|
92
92
|
f"{self.get_sampler_table_name()}_rnd"
|
|
93
93
|
)
|
|
94
|
-
|
|
95
|
-
query = client.query(rnd)
|
|
94
|
+
query = self.get_client().query(rnd)
|
|
96
95
|
return query.cte(f"{self.get_sampler_table_name()}_sample")
|
metadata/utils/filters.py
CHANGED
|
@@ -310,3 +310,16 @@ def filter_by_collection(
|
|
|
310
310
|
:return: True for filtering, False otherwise
|
|
311
311
|
"""
|
|
312
312
|
return _filter(collection_pattern, collection_name)
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
def filter_by_tag(tag_pattern: Optional[FilterPattern], tag_name: str) -> bool:
|
|
316
|
+
"""
|
|
317
|
+
Return True if the models needs to be filtered, False otherwise
|
|
318
|
+
|
|
319
|
+
Include takes precedence over exclude
|
|
320
|
+
|
|
321
|
+
:param tag_pattern: Model defining tag filtering logic
|
|
322
|
+
:param tag_name: tag name
|
|
323
|
+
:return: True for filtering, False otherwise
|
|
324
|
+
"""
|
|
325
|
+
return _filter(tag_pattern, tag_name)
|
metadata/utils/helpers.py
CHANGED