openmetadata-ingestion 1.7.5.3__py3-none-any.whl → 1.8.1.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.
- _openmetadata_testutils/helpers/login_user.py +22 -0
- metadata/__init__.py +31 -0
- metadata/automations/runner.py +24 -14
- metadata/cli/ingest_dbt.py +1 -1
- metadata/data_quality/processor/test_case_runner.py +2 -11
- metadata/data_quality/source/test_suite.py +3 -1
- metadata/data_quality/validations/models.py +2 -2
- metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +3 -30
- metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +5 -11
- metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +17 -2
- metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +1 -4
- 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 +3 -16
- metadata/generated/schema/api/addTagToAssetsRequest.py +1 -10
- 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 +6 -2
- metadata/generated/schema/api/classification/createTag.py +6 -2
- 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/createDataContract.py +66 -0
- 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/data/updateColumn.py +49 -0
- 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/mcp/__init__.py +3 -0
- metadata/generated/schema/api/mcp/mcpToolDefinition.py +54 -0
- 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/scim/__init__.py +3 -0
- metadata/generated/schema/api/scim/scimGroup.py +52 -0
- metadata/generated/schema/api/scim/scimPatchOp.py +32 -0
- metadata/generated/schema/api/scim/scimUser.py +83 -0
- 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 +1 -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 +8 -1
- metadata/generated/schema/api/teams/createUser.py +11 -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 +9 -6
- 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/validateGlossaryTagsRequest.py +31 -0
- 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 +2 -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/supportToken.py +35 -0
- 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 +3 -2
- metadata/generated/schema/entity/applications/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +2 -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 +5 -2
- 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 +9 -1
- metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +9 -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 +7 -4
- metadata/generated/schema/entity/classification/tag.py +6 -3
- 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/dataContract.py +180 -0
- 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 +10 -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 +5 -1
- metadata/generated/schema/entity/domains/domain.py +5 -1
- metadata/generated/schema/entity/events/__init__.py +1 -1
- metadata/generated/schema/entity/events/webhook.py +7 -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 +6 -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 +1 -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 +5 -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 +1 -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 +1 -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 +9 -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 +9 -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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -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 +8 -1
- metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
- metadata/generated/schema/entity/teams/user.py +11 -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 +12 -3
- 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 +1 -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/scim/__init__.py +3 -0
- metadata/generated/schema/scim/scimConfiguration.py +32 -0
- metadata/generated/schema/search/__init__.py +1 -1
- metadata/generated/schema/search/aggregationRequest.py +1 -1
- metadata/generated/schema/search/searchRequest.py +8 -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 +2 -1
- metadata/generated/schema/system/__init__.py +1 -1
- metadata/generated/schema/system/entityError.py +1 -1
- metadata/generated/schema/system/eventPublisherJob.py +8 -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 +1 -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/great_expectations/action.py +4 -8
- metadata/great_expectations/action1xx.py +395 -0
- metadata/ingestion/connections/builders.py +14 -4
- metadata/ingestion/connections/connection.py +63 -0
- metadata/ingestion/connections/query_logger.py +115 -0
- metadata/ingestion/connections/test_connections.py +1 -1
- metadata/ingestion/ometa/mixins/tests_mixin.py +3 -5
- metadata/ingestion/ometa/routes.py +2 -0
- metadata/ingestion/sink/metadata_rest.py +54 -11
- metadata/ingestion/source/api/api_service.py +2 -7
- metadata/ingestion/source/api/rest/metadata.py +0 -1
- metadata/ingestion/source/connections.py +80 -14
- metadata/ingestion/source/connections_utils.py +32 -0
- metadata/ingestion/source/dashboard/dashboard_service.py +2 -7
- metadata/ingestion/source/dashboard/qlikcloud/client.py +34 -2
- metadata/ingestion/source/dashboard/qlikcloud/constants.py +6 -0
- metadata/ingestion/source/dashboard/qlikcloud/models.py +8 -0
- metadata/ingestion/source/dashboard/superset/connection.py +8 -8
- metadata/ingestion/source/dashboard/superset/queries.py +1 -1
- metadata/ingestion/source/dashboard/tableau/client.py +4 -4
- metadata/ingestion/source/dashboard/tableau/metadata.py +0 -1
- metadata/ingestion/source/database/bigquery/connection.py +13 -9
- metadata/ingestion/source/database/bigquery/helper.py +11 -9
- metadata/ingestion/source/database/bigquery/metadata.py +102 -13
- metadata/ingestion/source/database/bigquery/profiler/system.py +1 -1
- metadata/ingestion/source/database/bigquery/queries.py +15 -3
- metadata/ingestion/source/database/common_db_source.py +2 -4
- metadata/ingestion/source/database/database_service.py +2 -7
- metadata/ingestion/source/database/databricks/client.py +149 -14
- metadata/ingestion/source/database/databricks/queries.py +26 -0
- metadata/ingestion/source/database/datalake/metadata.py +1 -1
- metadata/ingestion/source/database/dbt/metadata.py +0 -5
- metadata/ingestion/source/database/mysql/connection.py +52 -45
- metadata/ingestion/source/database/mysql/service_spec.py +2 -0
- metadata/ingestion/source/database/postgres/metadata.py +16 -4
- metadata/ingestion/source/database/postgres/models.py +1 -0
- metadata/ingestion/source/database/postgres/queries.py +7 -4
- metadata/ingestion/source/database/query_parser_source.py +2 -7
- metadata/ingestion/source/database/redshift/connection.py +1 -1
- metadata/ingestion/source/database/sample_data.py +1 -1
- metadata/ingestion/source/database/saphana/lineage.py +2 -7
- metadata/ingestion/source/database/sas/metadata.py +2 -7
- metadata/ingestion/source/database/trino/connection.py +10 -79
- metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +26 -17
- metadata/ingestion/source/database/unitycatalog/connection.py +33 -0
- metadata/ingestion/source/database/unitycatalog/lineage.py +2 -7
- metadata/ingestion/source/database/unitycatalog/metadata.py +126 -13
- metadata/ingestion/source/database/unitycatalog/queries.py +19 -0
- metadata/ingestion/source/messaging/messaging_service.py +2 -7
- metadata/ingestion/source/metadata/alationsink/metadata.py +2 -7
- metadata/ingestion/source/metadata/amundsen/metadata.py +2 -7
- metadata/ingestion/source/metadata/atlas/metadata.py +2 -7
- metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -7
- metadata/ingestion/source/pipeline/airflow/connection.py +4 -6
- metadata/ingestion/source/pipeline/databrickspipeline/connection.py +26 -2
- metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +175 -13
- metadata/ingestion/source/pipeline/nifi/metadata.py +133 -3
- metadata/ingestion/source/pipeline/pipeline_service.py +20 -7
- metadata/ingestion/source/search/search_service.py +2 -7
- metadata/ingestion/source/storage/storage_service.py +2 -7
- metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +3 -3
- metadata/profiler/interface/sqlalchemy/profiler_interface.py +1 -0
- metadata/profiler/metrics/static/not_regexp_match_count.py +4 -3
- metadata/profiler/metrics/static/regexp_match_count.py +3 -2
- metadata/profiler/orm/functions/length.py +1 -0
- metadata/profiler/orm/functions/md5.py +9 -0
- metadata/profiler/orm/functions/modulo.py +1 -0
- metadata/profiler/orm/functions/random_num.py +4 -0
- metadata/profiler/orm/functions/regexp.py +40 -0
- metadata/profiler/orm/functions/table_metric_computer.py +34 -8
- metadata/profiler/orm/registry.py +1 -0
- metadata/profiler/processor/core.py +2 -2
- metadata/profiler/processor/default.py +29 -28
- metadata/profiler/processor/metric_filter.py +16 -3
- metadata/profiler/processor/models.py +14 -4
- metadata/profiler/source/database/base/profiler_resolver.py +35 -0
- metadata/profiler/source/database/base/profiler_source.py +45 -30
- metadata/profiler/source/profiler_source_interface.py +8 -13
- metadata/sampler/sampler_interface.py +15 -10
- metadata/sampler/sqlalchemy/bigquery/sampler.py +7 -0
- metadata/utils/dependency_injector/dependency_injector.py +403 -0
- metadata/utils/service_spec/service_spec.py +66 -10
- metadata/workflow/profiler.py +2 -7
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/METADATA +523 -516
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/RECORD +805 -782
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/top_level.txt +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
Source connection handler
|
|
14
14
|
"""
|
|
15
15
|
from copy import deepcopy
|
|
16
|
-
from typing import Optional
|
|
16
|
+
from typing import Optional
|
|
17
17
|
from urllib.parse import quote_plus
|
|
18
18
|
|
|
19
19
|
from requests import Session
|
|
@@ -25,7 +25,6 @@ from metadata.generated.schema.entity.automations.workflow import (
|
|
|
25
25
|
Workflow as AutomationWorkflow,
|
|
26
26
|
)
|
|
27
27
|
from metadata.generated.schema.entity.services.connections.database.common import (
|
|
28
|
-
azureConfig,
|
|
29
28
|
basicAuth,
|
|
30
29
|
jwtAuth,
|
|
31
30
|
noConfigAuthenticationTypes,
|
|
@@ -148,11 +147,17 @@ def get_connection(connection: TrinoConnection) -> Engine:
|
|
|
148
147
|
)
|
|
149
148
|
connection.connectionArguments.root["verify"] = {"verify": connection.verify}
|
|
150
149
|
if hasattr(connection.authType, "azureConfig"):
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
azure_client = AzureClient(connection.authType.azureConfig).create_client()
|
|
151
|
+
if not connection.authType.azureConfig.scopes:
|
|
152
|
+
raise ValueError(
|
|
153
|
+
"Azure Scopes are missing, please refer https://learn.microsoft.com/en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-microsoft-entra-access-token and fetch the resource associated with it, for e.g. https://ossrdbms-aad.database.windows.net/.default"
|
|
154
|
+
)
|
|
155
|
+
access_token_obj = azure_client.get_token(
|
|
156
|
+
*connection.authType.azureConfig.scopes.split(",")
|
|
157
|
+
)
|
|
153
158
|
if not connection.connectionOptions:
|
|
154
159
|
connection.connectionOptions = init_empty_connection_options()
|
|
155
|
-
connection.connectionOptions.root["access_token"] = access_token_obj
|
|
160
|
+
connection.connectionOptions.root["access_token"] = access_token_obj.token
|
|
156
161
|
return create_generic_db_connection(
|
|
157
162
|
connection=connection_copy,
|
|
158
163
|
get_connection_url_fn=get_connection_url,
|
|
@@ -160,80 +165,6 @@ def get_connection(connection: TrinoConnection) -> Engine:
|
|
|
160
165
|
)
|
|
161
166
|
|
|
162
167
|
|
|
163
|
-
def get_connection_dict(connection: TrinoConnection) -> dict:
|
|
164
|
-
"""
|
|
165
|
-
Create connection
|
|
166
|
-
"""
|
|
167
|
-
url = get_connection(connection).url
|
|
168
|
-
connection_copy = deepcopy(connection)
|
|
169
|
-
|
|
170
|
-
connection_dict = {
|
|
171
|
-
"driver": url.drivername,
|
|
172
|
-
"host": url.host,
|
|
173
|
-
"port": url.port,
|
|
174
|
-
"user": url.username,
|
|
175
|
-
"catalog": url.database,
|
|
176
|
-
"schema": url.query.get("schema"),
|
|
177
|
-
}
|
|
178
|
-
connection_dict.update(url.query)
|
|
179
|
-
|
|
180
|
-
if connection_copy.proxies:
|
|
181
|
-
connection_dict["http_session"] = connection_copy.proxies
|
|
182
|
-
|
|
183
|
-
if connection_copy.connectionArguments and connection_copy.connectionArguments.root:
|
|
184
|
-
connection_with_options_secrets(lambda: connection_copy)
|
|
185
|
-
connection_dict.update(get_connection_args_common(connection_copy))
|
|
186
|
-
|
|
187
|
-
if isinstance(connection_copy.authType, basicAuth.BasicAuth):
|
|
188
|
-
connection_dict["auth"] = {
|
|
189
|
-
"authType": "basic",
|
|
190
|
-
"username": connection.username,
|
|
191
|
-
"password": connection.authType.password.get_secret_value()
|
|
192
|
-
if connection.authType.password
|
|
193
|
-
else None,
|
|
194
|
-
}
|
|
195
|
-
connection_dict["http_scheme"] = "https"
|
|
196
|
-
|
|
197
|
-
elif isinstance(connection_copy.authType, jwtAuth.JwtAuth):
|
|
198
|
-
connection_dict["auth"] = {
|
|
199
|
-
"authType": "jwt",
|
|
200
|
-
"jwt": connection.authType.jwt.get_secret_value(),
|
|
201
|
-
}
|
|
202
|
-
connection_dict["http_scheme"] = "https"
|
|
203
|
-
|
|
204
|
-
elif hasattr(connection_copy.authType, "azureConfig"):
|
|
205
|
-
connection_dict["auth"] = {
|
|
206
|
-
"authType": "jwt",
|
|
207
|
-
"jwt": get_azure_token(connection_copy),
|
|
208
|
-
}
|
|
209
|
-
connection_dict["http_scheme"] = "https"
|
|
210
|
-
|
|
211
|
-
elif (
|
|
212
|
-
connection_copy.authType
|
|
213
|
-
== noConfigAuthenticationTypes.NoConfigAuthenticationTypes.OAuth2
|
|
214
|
-
):
|
|
215
|
-
connection_dict["auth"] = {"authType": "oauth2"}
|
|
216
|
-
connection_dict["http_scheme"] = "https"
|
|
217
|
-
|
|
218
|
-
return connection_dict
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
def get_azure_token(connection: TrinoConnection) -> str:
|
|
222
|
-
"""
|
|
223
|
-
Get the azure token for the trino connection
|
|
224
|
-
"""
|
|
225
|
-
auth_type = cast(azureConfig.AzureConfigurationSource, connection.authType)
|
|
226
|
-
|
|
227
|
-
if not auth_type.azureConfig.scopes:
|
|
228
|
-
raise ValueError(
|
|
229
|
-
"Azure Scopes are missing, please refer https://learn.microsoft.com/en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-microsoft-entra-access-token and fetch the resource associated with it, for e.g. https://ossrdbms-aad.database.windows.net/.default"
|
|
230
|
-
)
|
|
231
|
-
|
|
232
|
-
azure_client = AzureClient(auth_type.azureConfig).create_client()
|
|
233
|
-
|
|
234
|
-
return azure_client.get_token(*auth_type.azureConfig.scopes.split(",")).token
|
|
235
|
-
|
|
236
|
-
|
|
237
168
|
def test_connection(
|
|
238
169
|
metadata: OpenMetadata,
|
|
239
170
|
engine: Engine,
|
|
@@ -13,7 +13,7 @@ System table profiler
|
|
|
13
13
|
"""
|
|
14
14
|
from datetime import datetime
|
|
15
15
|
from decimal import Decimal
|
|
16
|
-
from typing import Any, Dict, List, Optional, Set, Union
|
|
16
|
+
from typing import Any, Dict, List, Optional, Set, Type, Union
|
|
17
17
|
|
|
18
18
|
from more_itertools import partition
|
|
19
19
|
from pydantic import field_validator
|
|
@@ -25,7 +25,11 @@ from metadata.profiler.interface.sqlalchemy.stored_statistics_profiler import (
|
|
|
25
25
|
StoredStatisticsSource,
|
|
26
26
|
)
|
|
27
27
|
from metadata.profiler.metrics.core import Metric
|
|
28
|
-
from metadata.profiler.
|
|
28
|
+
from metadata.profiler.registry import MetricRegistry
|
|
29
|
+
from metadata.utils.dependency_injector.dependency_injector import (
|
|
30
|
+
Inject,
|
|
31
|
+
inject_class_attributes,
|
|
32
|
+
)
|
|
29
33
|
from metadata.utils.logger import profiler_logger
|
|
30
34
|
from metadata.utils.lru_cache import LRU_CACHE_SIZE, LRUCache
|
|
31
35
|
from metadata.utils.ssl_manager import get_ssl_connection
|
|
@@ -61,23 +65,28 @@ class TableStats(BaseModel):
|
|
|
61
65
|
columns: Dict[str, ColumnStats] = {}
|
|
62
66
|
|
|
63
67
|
|
|
68
|
+
@inject_class_attributes
|
|
64
69
|
class TrinoStoredStatisticsSource(StoredStatisticsSource):
|
|
65
70
|
"""Trino system profile source"""
|
|
66
71
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
metrics: Inject[Type[MetricRegistry]]
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def get_metric_stats_map(cls) -> Dict[MetricRegistry, str]:
|
|
76
|
+
return {
|
|
77
|
+
cls.metrics.NULL_RATIO: "nulls_fractions",
|
|
78
|
+
cls.metrics.DISTINCT_COUNT: "distinct_values_count",
|
|
79
|
+
cls.metrics.ROW_COUNT: "row_count",
|
|
80
|
+
cls.metrics.MAX: "high_value",
|
|
81
|
+
cls.metrics.MIN: "low_value",
|
|
82
|
+
}
|
|
74
83
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
@classmethod
|
|
85
|
+
def get_metric_stats_by_name(cls) -> Dict[str, str]:
|
|
86
|
+
return {k.name: v for k, v in cls.get_metric_stats_map().items()}
|
|
78
87
|
|
|
79
|
-
def get_statistics_metrics(self) -> Set[
|
|
80
|
-
return set(self.
|
|
88
|
+
def get_statistics_metrics(self) -> Set[MetricRegistry]:
|
|
89
|
+
return set(self.get_metric_stats_map().keys())
|
|
81
90
|
|
|
82
91
|
def __init__(self, **kwargs):
|
|
83
92
|
super().__init__(**kwargs)
|
|
@@ -96,7 +105,7 @@ class TrinoStoredStatisticsSource(StoredStatisticsSource):
|
|
|
96
105
|
f"Column {column} not found in table {table_name}. Statistics might be stale or missing."
|
|
97
106
|
)
|
|
98
107
|
result = {
|
|
99
|
-
m.name(): getattr(column_stats, self.
|
|
108
|
+
m.name(): getattr(column_stats, self.get_metric_stats_by_name()[m.name()])
|
|
100
109
|
for m in metric
|
|
101
110
|
}
|
|
102
111
|
result.update(self.get_hybrid_statistics(table_stats, column_stats))
|
|
@@ -108,7 +117,7 @@ class TrinoStoredStatisticsSource(StoredStatisticsSource):
|
|
|
108
117
|
) -> dict:
|
|
109
118
|
table_stats = self._get_cached_stats(schema, table_name)
|
|
110
119
|
return {
|
|
111
|
-
m.name(): getattr(table_stats, self.
|
|
120
|
+
m.name(): getattr(table_stats, self.get_metric_stats_by_name()[m.name()])
|
|
112
121
|
for m in metric
|
|
113
122
|
}
|
|
114
123
|
|
|
@@ -159,7 +168,7 @@ class TrinoStoredStatisticsSource(StoredStatisticsSource):
|
|
|
159
168
|
) -> Dict[str, Any]:
|
|
160
169
|
return {
|
|
161
170
|
# trino stats are in fractions, so we need to convert them to counts (unlike our default profiler)
|
|
162
|
-
|
|
171
|
+
self.metrics.NULL_COUNT.name: (
|
|
163
172
|
int(table_stats.row_count * column_stats.nulls_fraction)
|
|
164
173
|
if None not in [table_stats.row_count, column_stats.nulls_fraction]
|
|
165
174
|
else None
|
|
@@ -36,6 +36,12 @@ from metadata.ingestion.connections.test_connections import test_connection_step
|
|
|
36
36
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
37
37
|
from metadata.ingestion.source.database.unitycatalog.client import UnityCatalogClient
|
|
38
38
|
from metadata.ingestion.source.database.unitycatalog.models import DatabricksTable
|
|
39
|
+
from metadata.ingestion.source.database.unitycatalog.queries import (
|
|
40
|
+
UNITY_CATALOG_GET_ALL_SCHEMA_TAGS,
|
|
41
|
+
UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS,
|
|
42
|
+
UNITY_CATALOG_GET_ALL_TABLE_TAGS,
|
|
43
|
+
UNITY_CATALOG_GET_CATALOGS_TAGS,
|
|
44
|
+
)
|
|
39
45
|
from metadata.utils.constants import THREE_MIN
|
|
40
46
|
from metadata.utils.db_utils import get_host_from_host_port
|
|
41
47
|
from metadata.utils.logger import ingestion_logger
|
|
@@ -111,6 +117,32 @@ def test_connection(
|
|
|
111
117
|
table_obj.name = table.name
|
|
112
118
|
break
|
|
113
119
|
|
|
120
|
+
def get_tags(
|
|
121
|
+
service_connection: UnityCatalogConnection, table_obj: DatabricksTable
|
|
122
|
+
):
|
|
123
|
+
engine = get_sqlalchemy_connection(service_connection)
|
|
124
|
+
with engine.connect() as connection:
|
|
125
|
+
connection.execute(
|
|
126
|
+
UNITY_CATALOG_GET_CATALOGS_TAGS.format(
|
|
127
|
+
database=table_obj.catalog_name
|
|
128
|
+
).replace(";", " limit 1;")
|
|
129
|
+
)
|
|
130
|
+
connection.execute(
|
|
131
|
+
UNITY_CATALOG_GET_ALL_SCHEMA_TAGS.format(
|
|
132
|
+
database=table_obj.catalog_name
|
|
133
|
+
).replace(";", " limit 1;")
|
|
134
|
+
)
|
|
135
|
+
connection.execute(
|
|
136
|
+
UNITY_CATALOG_GET_ALL_TABLE_TAGS.format(
|
|
137
|
+
database=table_obj.catalog_name, schema=table_obj.schema_name
|
|
138
|
+
).replace(";", " limit 1;")
|
|
139
|
+
)
|
|
140
|
+
connection.execute(
|
|
141
|
+
UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS.format(
|
|
142
|
+
database=table_obj.catalog_name, schema=table_obj.schema_name
|
|
143
|
+
).replace(";", " limit 1;")
|
|
144
|
+
)
|
|
145
|
+
|
|
114
146
|
test_fn = {
|
|
115
147
|
"CheckAccess": connection.catalogs.list,
|
|
116
148
|
"GetDatabases": partial(get_catalogs, connection, table_obj),
|
|
@@ -118,6 +150,7 @@ def test_connection(
|
|
|
118
150
|
"GetTables": partial(get_tables, connection, table_obj),
|
|
119
151
|
"GetViews": partial(get_tables, connection, table_obj),
|
|
120
152
|
"GetQueries": client.test_query_api_access,
|
|
153
|
+
"GetTags": partial(get_tags, service_connection, table_obj),
|
|
121
154
|
}
|
|
122
155
|
|
|
123
156
|
return test_connection_steps(
|
|
@@ -33,12 +33,9 @@ from metadata.generated.schema.type.entityLineage import Source as LineageSource
|
|
|
33
33
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
34
34
|
from metadata.ingestion.api.models import Either
|
|
35
35
|
from metadata.ingestion.api.steps import InvalidSourceException, Source
|
|
36
|
-
from metadata.ingestion.connections.test_connections import (
|
|
37
|
-
raise_test_connection_exception,
|
|
38
|
-
)
|
|
39
36
|
from metadata.ingestion.lineage.sql_lineage import get_column_fqn
|
|
40
37
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
41
|
-
from metadata.ingestion.source.connections import
|
|
38
|
+
from metadata.ingestion.source.connections import test_connection_common
|
|
42
39
|
from metadata.ingestion.source.database.unitycatalog.client import UnityCatalogClient
|
|
43
40
|
from metadata.ingestion.source.database.unitycatalog.connection import get_connection
|
|
44
41
|
from metadata.ingestion.source.database.unitycatalog.models import LineageTableStreams
|
|
@@ -220,8 +217,6 @@ class UnitycatalogLineageSource(Source):
|
|
|
220
217
|
)
|
|
221
218
|
|
|
222
219
|
def test_connection(self) -> None:
|
|
223
|
-
|
|
224
|
-
result = test_connection_fn(
|
|
220
|
+
test_connection_common(
|
|
225
221
|
self.metadata, self.connection_obj, self.service_connection
|
|
226
222
|
)
|
|
227
|
-
raise_test_connection_exception(result)
|
|
@@ -65,20 +65,33 @@ from metadata.ingestion.source.database.external_table_lineage_mixin import (
|
|
|
65
65
|
from metadata.ingestion.source.database.multi_db_source import MultiDBSource
|
|
66
66
|
from metadata.ingestion.source.database.stored_procedures_mixin import QueryByProcedure
|
|
67
67
|
from metadata.ingestion.source.database.unitycatalog.client import UnityCatalogClient
|
|
68
|
-
from metadata.ingestion.source.database.unitycatalog.connection import
|
|
68
|
+
from metadata.ingestion.source.database.unitycatalog.connection import (
|
|
69
|
+
get_connection,
|
|
70
|
+
get_sqlalchemy_connection,
|
|
71
|
+
)
|
|
69
72
|
from metadata.ingestion.source.database.unitycatalog.models import (
|
|
70
73
|
ColumnJson,
|
|
71
74
|
ElementType,
|
|
72
75
|
ForeignConstrains,
|
|
73
76
|
Type,
|
|
74
77
|
)
|
|
78
|
+
from metadata.ingestion.source.database.unitycatalog.queries import (
|
|
79
|
+
UNITY_CATALOG_GET_ALL_SCHEMA_TAGS,
|
|
80
|
+
UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS,
|
|
81
|
+
UNITY_CATALOG_GET_ALL_TABLE_TAGS,
|
|
82
|
+
UNITY_CATALOG_GET_CATALOGS_TAGS,
|
|
83
|
+
)
|
|
75
84
|
from metadata.utils import fqn
|
|
76
85
|
from metadata.utils.filters import filter_by_database, filter_by_schema, filter_by_table
|
|
77
86
|
from metadata.utils.helpers import retry_with_docker_host
|
|
78
87
|
from metadata.utils.logger import ingestion_logger
|
|
88
|
+
from metadata.utils.tag_utils import get_ometa_tag_and_classification
|
|
79
89
|
|
|
80
90
|
logger = ingestion_logger()
|
|
81
91
|
|
|
92
|
+
UNITY_CATALOG_TAG = "UNITY CATALOG TAG"
|
|
93
|
+
UNITY_CATALOG_TAG_CLASSIFICATION = "UNITY CATALOG TAG CLASSIFICATION"
|
|
94
|
+
|
|
82
95
|
|
|
83
96
|
class UnitycatalogSource(
|
|
84
97
|
ExternalTableLineageMixin, DatabaseServiceSource, MultiDBSource
|
|
@@ -179,10 +192,14 @@ class UnitycatalogSource(
|
|
|
179
192
|
From topology.
|
|
180
193
|
Prepare a database request and pass it to the sink
|
|
181
194
|
"""
|
|
195
|
+
catalog = self.client.catalogs.get(database_name)
|
|
182
196
|
yield Either(
|
|
183
197
|
right=CreateDatabaseRequest(
|
|
184
198
|
name=database_name,
|
|
185
199
|
service=self.context.get().database_service,
|
|
200
|
+
owners=self.get_owner_ref(catalog.owner),
|
|
201
|
+
description=catalog.comment,
|
|
202
|
+
tags=self.get_database_tag_labels(database_name),
|
|
186
203
|
)
|
|
187
204
|
)
|
|
188
205
|
|
|
@@ -227,6 +244,9 @@ class UnitycatalogSource(
|
|
|
227
244
|
From topology.
|
|
228
245
|
Prepare a database schema request and pass it to the sink
|
|
229
246
|
"""
|
|
247
|
+
schema = self.client.schemas.get(
|
|
248
|
+
full_name=f"{self.context.get().database}.{schema_name}"
|
|
249
|
+
)
|
|
230
250
|
yield Either(
|
|
231
251
|
right=CreateDatabaseSchemaRequest(
|
|
232
252
|
name=EntityName(schema_name),
|
|
@@ -238,6 +258,9 @@ class UnitycatalogSource(
|
|
|
238
258
|
database_name=self.context.get().database,
|
|
239
259
|
)
|
|
240
260
|
),
|
|
261
|
+
description=schema.comment,
|
|
262
|
+
owners=self.get_owner_ref(schema.owner),
|
|
263
|
+
tags=self.get_schema_tag_labels(schema_name),
|
|
241
264
|
)
|
|
242
265
|
)
|
|
243
266
|
|
|
@@ -315,7 +338,7 @@ class UnitycatalogSource(
|
|
|
315
338
|
(db_name, schema_name, table_name)
|
|
316
339
|
] = table.storage_location
|
|
317
340
|
try:
|
|
318
|
-
columns = list(self.get_columns(table.columns))
|
|
341
|
+
columns = list(self.get_columns(table_name, table.columns))
|
|
319
342
|
(
|
|
320
343
|
primary_constraints,
|
|
321
344
|
foreign_constraints,
|
|
@@ -341,6 +364,7 @@ class UnitycatalogSource(
|
|
|
341
364
|
)
|
|
342
365
|
),
|
|
343
366
|
owners=self.get_owner_ref(table.owner),
|
|
367
|
+
tags=self.get_tag_labels(table_name),
|
|
344
368
|
)
|
|
345
369
|
yield Either(right=table_request)
|
|
346
370
|
|
|
@@ -477,11 +501,12 @@ class UnitycatalogSource(
|
|
|
477
501
|
f"Unable to add description to complex datatypes for column [{column.name}]: {exc}"
|
|
478
502
|
)
|
|
479
503
|
|
|
480
|
-
def get_columns(
|
|
504
|
+
def get_columns(
|
|
505
|
+
self, table_name: str, column_data: List[ColumnInfo]
|
|
506
|
+
) -> Iterable[Column]:
|
|
481
507
|
"""
|
|
482
508
|
process table regular columns info
|
|
483
509
|
"""
|
|
484
|
-
|
|
485
510
|
for column in column_data:
|
|
486
511
|
parsed_string = {}
|
|
487
512
|
if column.type_text:
|
|
@@ -500,6 +525,9 @@ class UnitycatalogSource(
|
|
|
500
525
|
parsed_string["dataLength"] = parsed_string.get("dataLength", 1)
|
|
501
526
|
if column.comment:
|
|
502
527
|
parsed_string["description"] = Markdown(column.comment)
|
|
528
|
+
parsed_string["tags"] = self.get_column_tag_labels(
|
|
529
|
+
table_name=table_name, column={"name": column.name}
|
|
530
|
+
)
|
|
503
531
|
parsed_column = Column(**parsed_string)
|
|
504
532
|
self.add_complex_datatype_descriptions(
|
|
505
533
|
column=parsed_column,
|
|
@@ -507,10 +535,97 @@ class UnitycatalogSource(
|
|
|
507
535
|
)
|
|
508
536
|
yield parsed_column
|
|
509
537
|
|
|
538
|
+
def yield_database_tag(
|
|
539
|
+
self, database_name: str
|
|
540
|
+
) -> Iterable[Either[OMetaTagAndClassification]]:
|
|
541
|
+
"""Get Unity Catalog database/catalog tags using SQL query"""
|
|
542
|
+
query_tag_fqn_builder_mapping = (
|
|
543
|
+
(
|
|
544
|
+
UNITY_CATALOG_GET_CATALOGS_TAGS.format(database=database_name),
|
|
545
|
+
lambda tag: [self.context.get().database_service, database_name],
|
|
546
|
+
),
|
|
547
|
+
(
|
|
548
|
+
UNITY_CATALOG_GET_ALL_SCHEMA_TAGS.format(database=database_name),
|
|
549
|
+
lambda tag: [
|
|
550
|
+
self.context.get().database_service,
|
|
551
|
+
database_name,
|
|
552
|
+
tag.schema_name,
|
|
553
|
+
],
|
|
554
|
+
),
|
|
555
|
+
)
|
|
556
|
+
try:
|
|
557
|
+
with get_sqlalchemy_connection(
|
|
558
|
+
self.service_connection
|
|
559
|
+
).connect() as connection:
|
|
560
|
+
for query, tag_fqn_builder in query_tag_fqn_builder_mapping:
|
|
561
|
+
for tag in connection.execute(query):
|
|
562
|
+
yield from get_ometa_tag_and_classification(
|
|
563
|
+
tag_fqn=FullyQualifiedEntityName(
|
|
564
|
+
fqn._build(*tag_fqn_builder(tag))
|
|
565
|
+
), # pylint: disable=protected-access
|
|
566
|
+
tags=[tag.tag_value],
|
|
567
|
+
classification_name=tag.tag_name,
|
|
568
|
+
tag_description=UNITY_CATALOG_TAG,
|
|
569
|
+
classification_description=UNITY_CATALOG_TAG_CLASSIFICATION,
|
|
570
|
+
metadata=self.metadata,
|
|
571
|
+
system_tags=True,
|
|
572
|
+
)
|
|
573
|
+
except Exception as exc:
|
|
574
|
+
logger.debug(traceback.format_exc())
|
|
575
|
+
logger.warning(
|
|
576
|
+
f"Error getting tags for catalog/schema {database_name}: {exc}"
|
|
577
|
+
)
|
|
578
|
+
|
|
510
579
|
def yield_tag(
|
|
511
580
|
self, schema_name: str
|
|
512
581
|
) -> Iterable[Either[OMetaTagAndClassification]]:
|
|
513
|
-
"""
|
|
582
|
+
"""Get Unity Catalog schema tags using SQL query"""
|
|
583
|
+
database = self.context.get().database
|
|
584
|
+
query_tag_fqn_builder_mapping = (
|
|
585
|
+
(
|
|
586
|
+
UNITY_CATALOG_GET_ALL_TABLE_TAGS.format(
|
|
587
|
+
database=database, schema=schema_name
|
|
588
|
+
),
|
|
589
|
+
lambda tag: [
|
|
590
|
+
self.context.get().database_service,
|
|
591
|
+
database,
|
|
592
|
+
schema_name,
|
|
593
|
+
tag.table_name,
|
|
594
|
+
],
|
|
595
|
+
),
|
|
596
|
+
(
|
|
597
|
+
UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS.format(
|
|
598
|
+
database=database, schema=schema_name
|
|
599
|
+
),
|
|
600
|
+
lambda tag: [
|
|
601
|
+
self.context.get().database_service,
|
|
602
|
+
database,
|
|
603
|
+
schema_name,
|
|
604
|
+
tag.table_name,
|
|
605
|
+
tag.column_name,
|
|
606
|
+
],
|
|
607
|
+
),
|
|
608
|
+
)
|
|
609
|
+
try:
|
|
610
|
+
with get_sqlalchemy_connection(
|
|
611
|
+
self.service_connection
|
|
612
|
+
).connect() as connection:
|
|
613
|
+
for query, tag_fqn_builder in query_tag_fqn_builder_mapping:
|
|
614
|
+
for tag in connection.execute(query):
|
|
615
|
+
yield from get_ometa_tag_and_classification(
|
|
616
|
+
tag_fqn=FullyQualifiedEntityName(
|
|
617
|
+
fqn._build(*tag_fqn_builder(tag))
|
|
618
|
+
), # pylint: disable=protected-access
|
|
619
|
+
tags=[tag.tag_value],
|
|
620
|
+
classification_name=tag.tag_name,
|
|
621
|
+
tag_description=UNITY_CATALOG_TAG,
|
|
622
|
+
classification_description=UNITY_CATALOG_TAG_CLASSIFICATION,
|
|
623
|
+
metadata=self.metadata,
|
|
624
|
+
system_tags=True,
|
|
625
|
+
)
|
|
626
|
+
except Exception as exc:
|
|
627
|
+
logger.debug(traceback.format_exc())
|
|
628
|
+
logger.warning(f"Error getting tags for schema {schema_name}: {exc}")
|
|
514
629
|
|
|
515
630
|
def get_stored_procedures(self) -> Iterable[Any]:
|
|
516
631
|
"""Not implemented"""
|
|
@@ -527,24 +642,22 @@ class UnitycatalogSource(
|
|
|
527
642
|
"""Nothing to close"""
|
|
528
643
|
|
|
529
644
|
# pylint: disable=arguments-renamed
|
|
530
|
-
def get_owner_ref(
|
|
531
|
-
self, table_owner: Optional[str]
|
|
532
|
-
) -> Optional[EntityReferenceList]:
|
|
645
|
+
def get_owner_ref(self, owner: Optional[str]) -> Optional[EntityReferenceList]:
|
|
533
646
|
"""
|
|
534
647
|
Method to process the table owners
|
|
535
648
|
"""
|
|
536
649
|
if self.source_config.includeOwners is False:
|
|
537
650
|
return None
|
|
538
651
|
try:
|
|
539
|
-
if not
|
|
652
|
+
if not owner or not isinstance(owner, str):
|
|
540
653
|
return None
|
|
541
|
-
owner_ref = self.metadata.get_reference_by_email(email=
|
|
654
|
+
owner_ref = self.metadata.get_reference_by_email(email=owner)
|
|
542
655
|
if owner_ref:
|
|
543
656
|
return owner_ref
|
|
544
|
-
|
|
545
|
-
owner_ref = self.metadata.get_reference_by_name(name=
|
|
657
|
+
owner_name = owner.split("@")[0]
|
|
658
|
+
owner_ref = self.metadata.get_reference_by_name(name=owner_name)
|
|
546
659
|
return owner_ref
|
|
547
660
|
except Exception as exc:
|
|
548
661
|
logger.debug(traceback.format_exc())
|
|
549
|
-
logger.warning(f"Error processing owner {
|
|
662
|
+
logger.warning(f"Error processing owner {owner}: {exc}")
|
|
550
663
|
return None
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""
|
|
2
|
+
SQL queries for Unity Catalog
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
UNITY_CATALOG_GET_CATALOGS_TAGS = """
|
|
6
|
+
SELECT * FROM `{database}`.information_schema.catalog_tags;
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
UNITY_CATALOG_GET_ALL_SCHEMA_TAGS = """
|
|
10
|
+
SELECT * FROM `{database}`.information_schema.schema_tags;
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
UNITY_CATALOG_GET_ALL_TABLE_TAGS = """
|
|
14
|
+
SELECT * FROM `{database}`.information_schema.table_tags WHERE schema_name = '{schema}';
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS = """
|
|
18
|
+
SELECT * FROM `{database}`.information_schema.column_tags WHERE schema_name = '{schema}';
|
|
19
|
+
"""
|
|
@@ -34,9 +34,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
|
|
|
34
34
|
from metadata.ingestion.api.models import Either
|
|
35
35
|
from metadata.ingestion.api.steps import Source
|
|
36
36
|
from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
|
|
37
|
-
from metadata.ingestion.connections.test_connections import (
|
|
38
|
-
raise_test_connection_exception,
|
|
39
|
-
)
|
|
40
37
|
from metadata.ingestion.models.delete_entity import DeleteEntity
|
|
41
38
|
from metadata.ingestion.models.topology import (
|
|
42
39
|
NodeStage,
|
|
@@ -45,7 +42,7 @@ from metadata.ingestion.models.topology import (
|
|
|
45
42
|
TopologyNode,
|
|
46
43
|
)
|
|
47
44
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
48
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
45
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
49
46
|
from metadata.utils import fqn
|
|
50
47
|
from metadata.utils.filters import filter_by_topic
|
|
51
48
|
from metadata.utils.helpers import retry_with_docker_host
|
|
@@ -202,11 +199,9 @@ class MessagingServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
202
199
|
"""By default, nothing to prepare"""
|
|
203
200
|
|
|
204
201
|
def test_connection(self) -> None:
|
|
205
|
-
|
|
206
|
-
result = test_connection_fn(
|
|
202
|
+
test_connection_common(
|
|
207
203
|
self.metadata, self.connection_obj, self.service_connection
|
|
208
204
|
)
|
|
209
|
-
raise_test_connection_exception(result)
|
|
210
205
|
|
|
211
206
|
def mark_topics_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
|
|
212
207
|
"""Method to mark the topics as deleted"""
|
|
@@ -33,12 +33,9 @@ from metadata.generated.schema.metadataIngestion.workflow import (
|
|
|
33
33
|
)
|
|
34
34
|
from metadata.ingestion.api.models import Either, Entity
|
|
35
35
|
from metadata.ingestion.api.steps import InvalidSourceException, Source
|
|
36
|
-
from metadata.ingestion.connections.test_connections import (
|
|
37
|
-
raise_test_connection_exception,
|
|
38
|
-
)
|
|
39
36
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
40
37
|
from metadata.ingestion.ometa.utils import model_str
|
|
41
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
38
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
42
39
|
from metadata.ingestion.source.metadata.alationsink.client import AlationSinkClient
|
|
43
40
|
from metadata.ingestion.source.metadata.alationsink.constants import (
|
|
44
41
|
SERVICE_TYPE_MAPPER,
|
|
@@ -475,8 +472,6 @@ class AlationsinkSource(Source):
|
|
|
475
472
|
"""Not required to implement"""
|
|
476
473
|
|
|
477
474
|
def test_connection(self) -> None:
|
|
478
|
-
|
|
479
|
-
result = test_connection_fn(
|
|
475
|
+
test_connection_common(
|
|
480
476
|
self.metadata, self.alation_sink_client, self.service_connection
|
|
481
477
|
)
|
|
482
|
-
raise_test_connection_exception(result)
|
|
@@ -56,13 +56,10 @@ from metadata.generated.schema.type.entityReferenceList import EntityReferenceLi
|
|
|
56
56
|
from metadata.ingestion.api.common import Entity
|
|
57
57
|
from metadata.ingestion.api.models import Either
|
|
58
58
|
from metadata.ingestion.api.steps import InvalidSourceException, Source
|
|
59
|
-
from metadata.ingestion.connections.test_connections import (
|
|
60
|
-
raise_test_connection_exception,
|
|
61
|
-
)
|
|
62
59
|
from metadata.ingestion.models.user import OMetaUserProfile
|
|
63
60
|
from metadata.ingestion.ometa.client_utils import get_chart_entities_from_id
|
|
64
61
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
65
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
62
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
66
63
|
from metadata.ingestion.source.database.column_type_parser import ColumnTypeParser
|
|
67
64
|
from metadata.ingestion.source.metadata.amundsen.queries import (
|
|
68
65
|
NEO4J_AMUNDSEN_DASHBOARD_QUERY,
|
|
@@ -465,8 +462,6 @@ class AmundsenSource(Source):
|
|
|
465
462
|
return None
|
|
466
463
|
|
|
467
464
|
def test_connection(self) -> None:
|
|
468
|
-
|
|
469
|
-
result = test_connection_fn(
|
|
465
|
+
test_connection_common(
|
|
470
466
|
self.metadata, self.connection_obj, self.service_connection
|
|
471
467
|
)
|
|
472
|
-
raise_test_connection_exception(result)
|
|
@@ -41,12 +41,9 @@ from metadata.generated.schema.type.entityLineage import EntitiesEdge
|
|
|
41
41
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
42
42
|
from metadata.ingestion.api.models import Either, Entity, StackTraceError
|
|
43
43
|
from metadata.ingestion.api.steps import InvalidSourceException, Source
|
|
44
|
-
from metadata.ingestion.connections.test_connections import (
|
|
45
|
-
raise_test_connection_exception,
|
|
46
|
-
)
|
|
47
44
|
from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
|
|
48
45
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
49
|
-
from metadata.ingestion.source.connections import get_connection,
|
|
46
|
+
from metadata.ingestion.source.connections import get_connection, test_connection_common
|
|
50
47
|
from metadata.ingestion.source.database.column_type_parser import ColumnTypeParser
|
|
51
48
|
from metadata.ingestion.source.metadata.atlas.client import AtlasClient
|
|
52
49
|
from metadata.utils import fqn
|
|
@@ -480,8 +477,6 @@ class AtlasSource(Source):
|
|
|
480
477
|
return None
|
|
481
478
|
|
|
482
479
|
def test_connection(self) -> None:
|
|
483
|
-
|
|
484
|
-
result = test_connection_fn(
|
|
480
|
+
test_connection_common(
|
|
485
481
|
self.metadata, self.connection_obj, self.service_connection
|
|
486
482
|
)
|
|
487
|
-
raise_test_connection_exception(result)
|