openmetadata-ingestion 1.6.0.0rc2__py3-none-any.whl → 1.6.0.0rc3__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/clients/aws_client.py +2 -2
- metadata/data_quality/validations/base_test_handler.py +4 -4
- metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +2 -2
- metadata/data_quality/validations/table/sqlalchemy/tableCustomSQLQuery.py +7 -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/createSearchIndex.py +8 -8
- 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/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/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 +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/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/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/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/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/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/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/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.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/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/report.py +1 -1
- metadata/generated/schema/entity/data/searchIndex.py +13 -13
- 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 +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 +1 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.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 +13 -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 +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/matillionConnection.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/stitchConnection.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/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 +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/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/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/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/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 -17
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -9
- 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/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/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/page.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/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 +2 -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/parser.py +6 -4
- metadata/ingestion/lineage/sql_lineage.py +258 -29
- metadata/ingestion/models/patch_request.py +1 -0
- metadata/ingestion/ometa/mixins/data_insight_mixin.py +3 -2
- metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +5 -3
- metadata/ingestion/ometa/mixins/suggestions_mixin.py +3 -3
- metadata/ingestion/ometa/mixins/table_mixin.py +1 -1
- metadata/ingestion/source/dashboard/dashboard_service.py +2 -0
- metadata/ingestion/source/dashboard/microstrategy/client.py +39 -23
- metadata/ingestion/source/dashboard/microstrategy/connection.py +4 -1
- metadata/ingestion/source/dashboard/tableau/metadata.py +29 -12
- metadata/ingestion/source/dashboard/tableau/models.py +10 -0
- metadata/ingestion/source/database/bigquery/profiler/system.py +5 -4
- metadata/ingestion/source/database/db2/connection.py +14 -1
- metadata/ingestion/source/database/dbt/constants.py +8 -0
- metadata/ingestion/source/database/dbt/dbt_service.py +18 -1
- metadata/ingestion/source/database/redshift/profiler/system.py +5 -4
- metadata/ingestion/source/database/snowflake/connection.py +7 -2
- metadata/ingestion/source/database/snowflake/lineage.py +35 -1
- metadata/ingestion/source/database/snowflake/metadata.py +38 -19
- metadata/ingestion/source/database/snowflake/models.py +1 -0
- metadata/ingestion/source/database/snowflake/profiler/system.py +5 -4
- metadata/ingestion/source/database/snowflake/queries.py +22 -1
- metadata/ingestion/source/database/stored_procedures_mixin.py +20 -8
- metadata/ingestion/source/pipeline/fivetran/metadata.py +1 -1
- metadata/profiler/interface/sqlalchemy/profiler_interface.py +1 -1
- metadata/profiler/orm/functions/table_metric_computer.py +6 -6
- metadata/profiler/processor/runner.py +5 -0
- metadata/profiler/source/database/base/profiler_source.py +0 -1
- metadata/sampler/processor.py +1 -5
- metadata/sampler/sqlalchemy/sampler.py +5 -2
- metadata/utils/class_helper.py +7 -0
- metadata/utils/importer.py +1 -1
- metadata/workflow/data_quality.py +5 -1
- {openmetadata_ingestion-1.6.0.0rc2.dist-info → openmetadata_ingestion-1.6.0.0rc3.dist-info}/METADATA +354 -354
- {openmetadata_ingestion-1.6.0.0rc2.dist-info → openmetadata_ingestion-1.6.0.0rc3.dist-info}/RECORD +675 -675
- {openmetadata_ingestion-1.6.0.0rc2.dist-info → openmetadata_ingestion-1.6.0.0rc3.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.6.0.0rc2.dist-info → openmetadata_ingestion-1.6.0.0rc3.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.6.0.0rc2.dist-info → openmetadata_ingestion-1.6.0.0rc3.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.6.0.0rc2.dist-info → openmetadata_ingestion-1.6.0.0rc3.dist-info}/top_level.txt +0 -0
|
@@ -19,7 +19,7 @@ from metadata.generated.schema.entity.feed.suggestion import Suggestion, Suggest
|
|
|
19
19
|
from metadata.generated.schema.type import basic
|
|
20
20
|
from metadata.generated.schema.type.basic import FullyQualifiedEntityName
|
|
21
21
|
from metadata.ingestion.ometa.client import REST
|
|
22
|
-
from metadata.ingestion.ometa.utils import model_str
|
|
22
|
+
from metadata.ingestion.ometa.utils import model_str, quote
|
|
23
23
|
from metadata.utils.logger import ometa_logger
|
|
24
24
|
|
|
25
25
|
logger = ometa_logger()
|
|
@@ -65,7 +65,7 @@ class OMetaSuggestionsMixin:
|
|
|
65
65
|
self.client.put(
|
|
66
66
|
f"{self.get_suffix(Suggestion)}/accept-all?"
|
|
67
67
|
f"userId={model_str(user_id)}&"
|
|
68
|
-
f"entityFQN={
|
|
68
|
+
f"entityFQN={quote(fqn)}&"
|
|
69
69
|
f"suggestionType={suggestion_type.value}",
|
|
70
70
|
)
|
|
71
71
|
|
|
@@ -79,6 +79,6 @@ class OMetaSuggestionsMixin:
|
|
|
79
79
|
self.client.put(
|
|
80
80
|
f"{self.get_suffix(Suggestion)}/reject-all?"
|
|
81
81
|
f"userId={model_str(user_id)}&"
|
|
82
|
-
f"entityFQN={
|
|
82
|
+
f"entityFQN={quote(fqn)}&"
|
|
83
83
|
f"suggestionType={suggestion_type.value}",
|
|
84
84
|
)
|
|
@@ -257,7 +257,7 @@ class OMetaTableMixin:
|
|
|
257
257
|
profile_type_url = profile_type.__name__[0].lower() + profile_type.__name__[1:]
|
|
258
258
|
|
|
259
259
|
resp = self.client.get(
|
|
260
|
-
f"{self.get_suffix(Table)}/{fqn}/{profile_type_url}?limit={limit}{url_after}",
|
|
260
|
+
f"{self.get_suffix(Table)}/{quote(fqn)}/{profile_type_url}?limit={limit}{url_after}",
|
|
261
261
|
data={"startTs": start_ts, "endTs": end_ts},
|
|
262
262
|
)
|
|
263
263
|
|
|
@@ -479,6 +479,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
479
479
|
to_entity: Union[Dashboard, DashboardDataModel],
|
|
480
480
|
from_entity: Union[Table, DashboardDataModel, Dashboard],
|
|
481
481
|
column_lineage: List[ColumnLineage] = None,
|
|
482
|
+
sql: Optional[str] = None,
|
|
482
483
|
) -> Optional[Either[AddLineageRequest]]:
|
|
483
484
|
if from_entity and to_entity:
|
|
484
485
|
return Either(
|
|
@@ -494,6 +495,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
494
495
|
),
|
|
495
496
|
lineageDetails=LineageDetails(
|
|
496
497
|
source=LineageSource.DashboardLineage,
|
|
498
|
+
sqlQuery=sql,
|
|
497
499
|
columnsLineage=column_lineage,
|
|
498
500
|
),
|
|
499
501
|
)
|
|
@@ -37,12 +37,13 @@ from metadata.utils.logger import ingestion_logger
|
|
|
37
37
|
logger = ingestion_logger()
|
|
38
38
|
|
|
39
39
|
API_VERSION = "MicroStrategyLibrary/api"
|
|
40
|
+
HEADERS = {"Content-Type": "application/json"}
|
|
40
41
|
APPLICATION_TYPE = 35
|
|
41
42
|
|
|
42
43
|
|
|
43
44
|
class MicroStrategyClient:
|
|
44
45
|
"""
|
|
45
|
-
Client Handling API communication with
|
|
46
|
+
Client Handling API communication with MicroStrategy
|
|
46
47
|
"""
|
|
47
48
|
|
|
48
49
|
def _get_base_url(self, path=None):
|
|
@@ -56,18 +57,43 @@ class MicroStrategyClient:
|
|
|
56
57
|
):
|
|
57
58
|
self.config = config
|
|
58
59
|
|
|
59
|
-
self.auth_params
|
|
60
|
+
self.auth_params = self._get_auth_header_and_cookies()
|
|
60
61
|
|
|
61
62
|
client_config = ClientConfig(
|
|
62
63
|
base_url=clean_uri(str(self.config.hostPort)),
|
|
63
64
|
api_version=API_VERSION,
|
|
64
|
-
extra_headers=self.auth_params.auth_header,
|
|
65
|
+
extra_headers=self.auth_params.auth_header if self.auth_params else None,
|
|
65
66
|
allow_redirects=True,
|
|
66
|
-
cookies=self.auth_params.auth_cookies,
|
|
67
|
+
cookies=self.auth_params.auth_cookies if self.auth_params else None,
|
|
67
68
|
)
|
|
68
69
|
|
|
69
70
|
self.client = REST(client_config)
|
|
70
|
-
|
|
71
|
+
|
|
72
|
+
def get_auth_params(self) -> AuthHeaderCookie:
|
|
73
|
+
"""
|
|
74
|
+
Test whether we can fetch auth_token from the api
|
|
75
|
+
"""
|
|
76
|
+
data = {
|
|
77
|
+
"username": self.config.username,
|
|
78
|
+
"password": self.config.password.get_secret_value(),
|
|
79
|
+
"loginMode": int(self.config.loginMode),
|
|
80
|
+
"applicationType": APPLICATION_TYPE,
|
|
81
|
+
}
|
|
82
|
+
response = requests.post(
|
|
83
|
+
url=self._get_base_url("auth/login"), json=data, headers=HEADERS, timeout=60
|
|
84
|
+
)
|
|
85
|
+
response.raise_for_status()
|
|
86
|
+
if (
|
|
87
|
+
not response.ok
|
|
88
|
+
or response.status_code != 204
|
|
89
|
+
or "X-MSTR-AuthToken" not in response.headers
|
|
90
|
+
):
|
|
91
|
+
raise SourceConnectionException(
|
|
92
|
+
f"Failed to Fetch Token, please validate your credentials and login_mode : {response.text}"
|
|
93
|
+
)
|
|
94
|
+
return AuthHeaderCookie(
|
|
95
|
+
auth_header=response.headers, auth_cookies=response.cookies
|
|
96
|
+
)
|
|
71
97
|
|
|
72
98
|
def _get_auth_header_and_cookies(self) -> Optional[AuthHeaderCookie]:
|
|
73
99
|
"""
|
|
@@ -77,35 +103,25 @@ class MicroStrategyClient:
|
|
|
77
103
|
https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin
|
|
78
104
|
"""
|
|
79
105
|
try:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"applicationType": APPLICATION_TYPE,
|
|
85
|
-
}
|
|
86
|
-
response = requests.post(
|
|
87
|
-
url=self._get_base_url("auth/login"), data=data, timeout=60
|
|
88
|
-
)
|
|
89
|
-
if not response:
|
|
90
|
-
raise SourceConnectionException()
|
|
91
|
-
return AuthHeaderCookie(
|
|
92
|
-
auth_header=response.headers, auth_cookies=response.cookies
|
|
93
|
-
)
|
|
106
|
+
auth_data = self.get_auth_params()
|
|
107
|
+
if auth_data:
|
|
108
|
+
self._set_api_session(auth_data)
|
|
109
|
+
return auth_data
|
|
94
110
|
except Exception as exc:
|
|
95
111
|
logger.debug(traceback.format_exc())
|
|
96
112
|
logger.error(
|
|
97
|
-
f"Failed to fetch the auth header and cookies due to [{exc}]
|
|
113
|
+
f"Failed to fetch the auth header and cookies due to : [{exc}]"
|
|
98
114
|
)
|
|
99
115
|
return None
|
|
100
116
|
|
|
101
|
-
def _set_api_session(self) -> bool:
|
|
117
|
+
def _set_api_session(self, auth_data: AuthHeaderCookie) -> bool:
|
|
102
118
|
"""
|
|
103
119
|
Set the user api session to active this will keep the connection alive
|
|
104
120
|
"""
|
|
105
121
|
api_session = requests.put(
|
|
106
122
|
url=self._get_base_url("sessions"),
|
|
107
|
-
headers=
|
|
108
|
-
cookies=
|
|
123
|
+
headers=auth_data.auth_header,
|
|
124
|
+
cookies=auth_data.auth_cookies,
|
|
109
125
|
timeout=60,
|
|
110
126
|
)
|
|
111
127
|
if api_session.ok:
|
|
@@ -46,7 +46,10 @@ def test_connection(
|
|
|
46
46
|
of a metadata workflow or during an Automation Workflow
|
|
47
47
|
"""
|
|
48
48
|
|
|
49
|
-
test_fn = {
|
|
49
|
+
test_fn = {
|
|
50
|
+
"GetToken": client.get_auth_params,
|
|
51
|
+
"GetProjects": client.get_projects_list,
|
|
52
|
+
}
|
|
50
53
|
|
|
51
54
|
return test_connection_steps(
|
|
52
55
|
metadata=metadata,
|
|
@@ -69,6 +69,7 @@ from metadata.ingestion.source.dashboard.tableau.models import (
|
|
|
69
69
|
ChartUrl,
|
|
70
70
|
DataSource,
|
|
71
71
|
DatasourceField,
|
|
72
|
+
TableAndQuery,
|
|
72
73
|
TableauDashboard,
|
|
73
74
|
TableauTag,
|
|
74
75
|
UpstreamTable,
|
|
@@ -149,7 +150,7 @@ class TableauSource(DashboardServiceSource):
|
|
|
149
150
|
return None
|
|
150
151
|
|
|
151
152
|
@staticmethod
|
|
152
|
-
def _get_data_models_tags(dataModels: [DataSource]) -> Set[str]:
|
|
153
|
+
def _get_data_models_tags(dataModels: List[DataSource]) -> Set[str]:
|
|
153
154
|
"""
|
|
154
155
|
Get the tags from the data model in the upstreamDatasources
|
|
155
156
|
"""
|
|
@@ -382,9 +383,12 @@ class TableauSource(DashboardServiceSource):
|
|
|
382
383
|
column=column.id,
|
|
383
384
|
)
|
|
384
385
|
for to_column in to_columns:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
386
|
+
if from_column and to_column:
|
|
387
|
+
column_lineage.append(
|
|
388
|
+
ColumnLineage(
|
|
389
|
+
fromColumns=[from_column], toColumn=to_column
|
|
390
|
+
)
|
|
391
|
+
)
|
|
388
392
|
return column_lineage
|
|
389
393
|
except Exception as exc:
|
|
390
394
|
logger.debug(f"Error to get column lineage: {exc}")
|
|
@@ -451,17 +455,22 @@ class TableauSource(DashboardServiceSource):
|
|
|
451
455
|
column.id
|
|
452
456
|
for field in upstream_data_model.fields
|
|
453
457
|
for column in field.upstreamColumns
|
|
458
|
+
if column is not None
|
|
454
459
|
}
|
|
455
460
|
for table in datamodel.upstreamTables or []:
|
|
456
461
|
om_tables = self._get_database_tables(db_service_entity, table)
|
|
457
|
-
for
|
|
462
|
+
for om_table_and_query in om_tables or []:
|
|
458
463
|
column_lineage = self._get_column_lineage(
|
|
459
|
-
table,
|
|
464
|
+
table,
|
|
465
|
+
om_table_and_query.table,
|
|
466
|
+
upstream_data_model_entity,
|
|
467
|
+
upstream_col_set,
|
|
460
468
|
)
|
|
461
469
|
yield self._get_add_lineage_request(
|
|
462
470
|
to_entity=upstream_data_model_entity,
|
|
463
|
-
from_entity=
|
|
471
|
+
from_entity=om_table_and_query.table,
|
|
464
472
|
column_lineage=column_lineage,
|
|
473
|
+
sql=om_table_and_query.query,
|
|
465
474
|
)
|
|
466
475
|
except Exception as err:
|
|
467
476
|
yield Either(
|
|
@@ -698,7 +707,7 @@ class TableauSource(DashboardServiceSource):
|
|
|
698
707
|
|
|
699
708
|
def _get_table_entities_from_api(
|
|
700
709
|
self, db_service_entity: DatabaseService, table: UpstreamTable
|
|
701
|
-
) -> Optional[List[
|
|
710
|
+
) -> Optional[List[TableAndQuery]]:
|
|
702
711
|
"""
|
|
703
712
|
In case we get the table details from the Graphql APIs we process them
|
|
704
713
|
"""
|
|
@@ -734,7 +743,7 @@ class TableauSource(DashboardServiceSource):
|
|
|
734
743
|
fqn=table_fqn,
|
|
735
744
|
)
|
|
736
745
|
if table_entity:
|
|
737
|
-
return [table_entity]
|
|
746
|
+
return [TableAndQuery(table=table_entity)]
|
|
738
747
|
except Exception as exc:
|
|
739
748
|
logger.debug(traceback.format_exc())
|
|
740
749
|
logger.warning(f"Error to get tables for lineage using GraphQL Apis: {exc}")
|
|
@@ -742,7 +751,7 @@ class TableauSource(DashboardServiceSource):
|
|
|
742
751
|
|
|
743
752
|
def _get_table_entities_from_query(
|
|
744
753
|
self, db_service_entity: DatabaseService, table: UpstreamTable
|
|
745
|
-
) -> Optional[List[
|
|
754
|
+
) -> Optional[List[TableAndQuery]]:
|
|
746
755
|
"""
|
|
747
756
|
In case we get the table details from the Graphql APIs we process them
|
|
748
757
|
"""
|
|
@@ -778,7 +787,12 @@ class TableauSource(DashboardServiceSource):
|
|
|
778
787
|
database_schema=schema_name,
|
|
779
788
|
table=table_name,
|
|
780
789
|
)
|
|
781
|
-
tables_list.extend(
|
|
790
|
+
tables_list.extend(
|
|
791
|
+
[
|
|
792
|
+
TableAndQuery(table=table, query=custom_sql_table.query)
|
|
793
|
+
for table in from_entities
|
|
794
|
+
]
|
|
795
|
+
)
|
|
782
796
|
|
|
783
797
|
except Exception as exc:
|
|
784
798
|
logger.debug(traceback.format_exc())
|
|
@@ -787,7 +801,7 @@ class TableauSource(DashboardServiceSource):
|
|
|
787
801
|
|
|
788
802
|
def _get_database_tables(
|
|
789
803
|
self, db_service_entity: DatabaseService, table: UpstreamTable
|
|
790
|
-
) -> Optional[List[
|
|
804
|
+
) -> Optional[List[TableAndQuery]]:
|
|
791
805
|
"""
|
|
792
806
|
Get the table entities for lineage
|
|
793
807
|
"""
|
|
@@ -879,6 +893,9 @@ class TableauSource(DashboardServiceSource):
|
|
|
879
893
|
try:
|
|
880
894
|
return dashboard_details.project.name
|
|
881
895
|
except Exception as exc:
|
|
896
|
+
logger.info(
|
|
897
|
+
f"Cannot parse project name for dashboard:{dashboard_details.id} from Tableau server"
|
|
898
|
+
)
|
|
882
899
|
logger.debug(traceback.format_exc())
|
|
883
900
|
logger.warning(
|
|
884
901
|
f"Error fetching project name for {dashboard_details.id}: {exc}"
|
|
@@ -18,6 +18,7 @@ from typing import Any, Dict, List, Optional, Union
|
|
|
18
18
|
from pydantic import BaseModel, ConfigDict, Field, validator
|
|
19
19
|
|
|
20
20
|
from metadata.generated.schema.entity.data.chart import ChartType
|
|
21
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
21
22
|
|
|
22
23
|
|
|
23
24
|
class TableauBaseModel(BaseModel):
|
|
@@ -172,3 +173,12 @@ class TableauDashboard(TableauBaseModel):
|
|
|
172
173
|
webpageUrl: Optional[str] = None
|
|
173
174
|
charts: Optional[List[TableauChart]] = None
|
|
174
175
|
dataModels: List[DataSource] = []
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
class TableAndQuery(BaseModel):
|
|
179
|
+
"""
|
|
180
|
+
Wrapper class for Table entity and associated Query for lineage
|
|
181
|
+
"""
|
|
182
|
+
|
|
183
|
+
table: Table
|
|
184
|
+
query: Optional[str] = None
|
|
@@ -13,6 +13,7 @@ from metadata.profiler.metrics.system.system import (
|
|
|
13
13
|
SQASessionProvider,
|
|
14
14
|
SystemMetricsComputer,
|
|
15
15
|
)
|
|
16
|
+
from metadata.profiler.processor.runner import QueryRunner
|
|
16
17
|
from metadata.utils.logger import profiler_logger
|
|
17
18
|
from metadata.utils.time_utils import datetime_to_timestamp
|
|
18
19
|
|
|
@@ -25,11 +26,11 @@ class BigQuerySystemMetricsSource(
|
|
|
25
26
|
"""BigQuery system metrics source class"""
|
|
26
27
|
|
|
27
28
|
def get_kwargs(self, **kwargs):
|
|
28
|
-
|
|
29
|
+
runner: QueryRunner = kwargs.get("runner")
|
|
29
30
|
return {
|
|
30
|
-
"table":
|
|
31
|
-
"
|
|
32
|
-
"
|
|
31
|
+
"table": runner.table_name,
|
|
32
|
+
"database": runner.session.get_bind().url.database,
|
|
33
|
+
"schema": runner.schema_name,
|
|
33
34
|
"usage_location": kwargs.get("usage_location"),
|
|
34
35
|
}
|
|
35
36
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
"""
|
|
13
13
|
Source connection handler
|
|
14
14
|
"""
|
|
15
|
+
from pathlib import Path
|
|
15
16
|
from typing import Optional
|
|
16
17
|
|
|
17
18
|
from sqlalchemy.engine import Engine
|
|
@@ -32,13 +33,25 @@ from metadata.ingestion.connections.builders import (
|
|
|
32
33
|
)
|
|
33
34
|
from metadata.ingestion.connections.test_connections import test_connection_db_common
|
|
34
35
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
35
|
-
from metadata.utils.constants import THREE_MIN
|
|
36
|
+
from metadata.utils.constants import THREE_MIN, UTF_8
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
def get_connection(connection: Db2Connection) -> Engine:
|
|
39
40
|
"""
|
|
40
41
|
Create connection
|
|
41
42
|
"""
|
|
43
|
+
# prepare license
|
|
44
|
+
# pylint: disable=import-outside-toplevel
|
|
45
|
+
if connection.license and connection.licenseFileName:
|
|
46
|
+
import clidriver
|
|
47
|
+
|
|
48
|
+
with open(
|
|
49
|
+
Path(clidriver.__path__[0], "license", connection.licenseFileName),
|
|
50
|
+
"w",
|
|
51
|
+
encoding=UTF_8,
|
|
52
|
+
) as file:
|
|
53
|
+
file.write(connection.license)
|
|
54
|
+
|
|
42
55
|
return create_generic_db_connection(
|
|
43
56
|
connection=connection,
|
|
44
57
|
get_connection_url_fn=get_connection_url_common,
|
|
@@ -22,6 +22,14 @@ REQUIRED_MANIFEST_KEYS = ["name", "schema", "resource_type"]
|
|
|
22
22
|
# Based on https://schemas.getdbt.com/dbt/catalog/v1.json
|
|
23
23
|
REQUIRED_CATALOG_KEYS = ["name", "type", "index"]
|
|
24
24
|
|
|
25
|
+
REQUIRED_CONSTRAINT_KEYS = [
|
|
26
|
+
"type",
|
|
27
|
+
"name",
|
|
28
|
+
"expression",
|
|
29
|
+
"warn_unenforced",
|
|
30
|
+
"warn_unsupported",
|
|
31
|
+
]
|
|
32
|
+
|
|
25
33
|
REQUIRED_RESULTS_KEYS = {
|
|
26
34
|
"status",
|
|
27
35
|
"timing",
|
|
@@ -43,6 +43,7 @@ from metadata.ingestion.models.topology import (
|
|
|
43
43
|
)
|
|
44
44
|
from metadata.ingestion.source.database.database_service import DataModelLink
|
|
45
45
|
from metadata.ingestion.source.database.dbt.constants import (
|
|
46
|
+
REQUIRED_CONSTRAINT_KEYS,
|
|
46
47
|
REQUIRED_NODE_KEYS,
|
|
47
48
|
REQUIRED_RESULTS_KEYS,
|
|
48
49
|
)
|
|
@@ -187,6 +188,20 @@ class DbtServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
187
188
|
]
|
|
188
189
|
for key in keys_to_delete:
|
|
189
190
|
del value[key]
|
|
191
|
+
if value.get("columns"):
|
|
192
|
+
for col_name, value in value[
|
|
193
|
+
"columns"
|
|
194
|
+
].items(): # pylint: disable=unused-variable
|
|
195
|
+
if value.get("constraints"):
|
|
196
|
+
keys_to_delete = [
|
|
197
|
+
key
|
|
198
|
+
for key in value
|
|
199
|
+
if key.lower() not in REQUIRED_CONSTRAINT_KEYS
|
|
200
|
+
]
|
|
201
|
+
for key in keys_to_delete:
|
|
202
|
+
del value[key]
|
|
203
|
+
else:
|
|
204
|
+
value["constraints"] = None
|
|
190
205
|
|
|
191
206
|
def remove_run_result_non_required_keys(self, run_results: List[dict]):
|
|
192
207
|
"""
|
|
@@ -220,7 +235,9 @@ class DbtServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
220
235
|
if self.context.get().dbt_file.dbt_catalog
|
|
221
236
|
else None,
|
|
222
237
|
dbt_manifest=parse_manifest(self.context.get().dbt_file.dbt_manifest),
|
|
223
|
-
dbt_sources=parse_sources(self.context.get().dbt_file.dbt_sources)
|
|
238
|
+
dbt_sources=parse_sources(self.context.get().dbt_file.dbt_sources)
|
|
239
|
+
if self.context.get().dbt_file.dbt_sources
|
|
240
|
+
else None,
|
|
224
241
|
dbt_run_results=[
|
|
225
242
|
parse_run_results(run_result_file)
|
|
226
243
|
for run_result_file in self.context.get().dbt_file.dbt_run_results
|
|
@@ -18,6 +18,7 @@ from metadata.profiler.metrics.system.system import (
|
|
|
18
18
|
SQASessionProvider,
|
|
19
19
|
SystemMetricsComputer,
|
|
20
20
|
)
|
|
21
|
+
from metadata.profiler.processor.runner import QueryRunner
|
|
21
22
|
from metadata.utils.logger import profiler_logger
|
|
22
23
|
from metadata.utils.profiler_utils import QueryResult
|
|
23
24
|
from metadata.utils.time_utils import datetime_to_timestamp
|
|
@@ -45,11 +46,11 @@ class RedshiftSystemMetricsSource(
|
|
|
45
46
|
return get_metric_result(queries, table)
|
|
46
47
|
|
|
47
48
|
def get_kwargs(self, **kwargs):
|
|
48
|
-
|
|
49
|
+
runner: QueryRunner = kwargs.get("runner")
|
|
49
50
|
return {
|
|
50
|
-
"table":
|
|
51
|
-
"database":
|
|
52
|
-
"schema":
|
|
51
|
+
"table": runner.table_name,
|
|
52
|
+
"database": runner.session.get_bind().url.database,
|
|
53
|
+
"schema": runner.schema_name,
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
def get_deletes(self, **kwargs) -> List[SystemProfile]:
|
|
@@ -121,7 +121,7 @@ def get_connection(connection: SnowflakeConnection) -> Engine:
|
|
|
121
121
|
)
|
|
122
122
|
p_key = serialization.load_pem_private_key(
|
|
123
123
|
bytes(connection.privateKey.get_secret_value(), "utf-8"),
|
|
124
|
-
password=snowflake_private_key_passphrase.encode(),
|
|
124
|
+
password=snowflake_private_key_passphrase.encode() or None,
|
|
125
125
|
backend=default_backend(),
|
|
126
126
|
)
|
|
127
127
|
pkb = p_key.private_bytes(
|
|
@@ -137,11 +137,16 @@ def get_connection(connection: SnowflakeConnection) -> Engine:
|
|
|
137
137
|
"client_session_keep_alive"
|
|
138
138
|
] = connection.clientSessionKeepAlive
|
|
139
139
|
|
|
140
|
-
|
|
140
|
+
engine = create_generic_db_connection(
|
|
141
141
|
connection=connection,
|
|
142
142
|
get_connection_url_fn=get_connection_url,
|
|
143
143
|
get_connection_args_fn=get_connection_args_common,
|
|
144
144
|
)
|
|
145
|
+
if connection.connectionArguments.root and connection.connectionArguments.root.get(
|
|
146
|
+
"private_key"
|
|
147
|
+
):
|
|
148
|
+
del connection.connectionArguments.root["private_key"]
|
|
149
|
+
return engine
|
|
145
150
|
|
|
146
151
|
|
|
147
152
|
def test_connection(
|
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
Snowflake lineage module
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
import traceback
|
|
16
|
+
from typing import Dict, Iterator, List
|
|
16
17
|
|
|
18
|
+
from metadata.generated.schema.type.tableQuery import TableQuery
|
|
17
19
|
from metadata.ingestion.source.database.lineage_source import LineageSource
|
|
18
20
|
from metadata.ingestion.source.database.snowflake.queries import (
|
|
19
21
|
SNOWFLAKE_GET_STORED_PROCEDURE_QUERIES,
|
|
@@ -27,6 +29,9 @@ from metadata.ingestion.source.database.stored_procedures_mixin import (
|
|
|
27
29
|
StoredProcedureLineageMixin,
|
|
28
30
|
)
|
|
29
31
|
from metadata.utils.helpers import get_start_and_end
|
|
32
|
+
from metadata.utils.logger import ingestion_logger
|
|
33
|
+
|
|
34
|
+
logger = ingestion_logger()
|
|
30
35
|
|
|
31
36
|
|
|
32
37
|
class SnowflakeLineageSource(
|
|
@@ -61,3 +66,32 @@ class SnowflakeLineageSource(
|
|
|
61
66
|
)
|
|
62
67
|
|
|
63
68
|
return queries_dict
|
|
69
|
+
|
|
70
|
+
def yield_table_query(self) -> Iterator[TableQuery]:
|
|
71
|
+
"""
|
|
72
|
+
Given an engine, iterate over the query results to
|
|
73
|
+
yield a TableQuery with query parsing info
|
|
74
|
+
"""
|
|
75
|
+
for engine in self.get_engine():
|
|
76
|
+
rows = []
|
|
77
|
+
with engine.connect() as conn:
|
|
78
|
+
rows = conn.execution_options(
|
|
79
|
+
stream_results=True, max_row_buffer=100
|
|
80
|
+
).execute(
|
|
81
|
+
self.get_sql_statement(start_time=self.start, end_time=self.end)
|
|
82
|
+
)
|
|
83
|
+
# exit from active connection after fetching rows & during
|
|
84
|
+
# further process of `yield_query_lineage`
|
|
85
|
+
for row in rows:
|
|
86
|
+
query_dict = dict(row)
|
|
87
|
+
try:
|
|
88
|
+
yield TableQuery(
|
|
89
|
+
dialect=self.dialect.value,
|
|
90
|
+
query=query_dict["query_text"],
|
|
91
|
+
databaseName=self.get_database_name(query_dict),
|
|
92
|
+
serviceName=self.config.serviceName,
|
|
93
|
+
databaseSchema=self.get_schema_name(query_dict),
|
|
94
|
+
)
|
|
95
|
+
except Exception as exc:
|
|
96
|
+
logger.debug(traceback.format_exc())
|
|
97
|
+
logger.warning(f"Error processing query_dict {query_dict}: {exc}")
|
|
@@ -27,7 +27,10 @@ from metadata.generated.schema.api.data.createStoredProcedure import (
|
|
|
27
27
|
)
|
|
28
28
|
from metadata.generated.schema.entity.data.database import Database
|
|
29
29
|
from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
|
|
30
|
-
from metadata.generated.schema.entity.data.storedProcedure import
|
|
30
|
+
from metadata.generated.schema.entity.data.storedProcedure import (
|
|
31
|
+
StoredProcedureCode,
|
|
32
|
+
StoredProcedureType,
|
|
33
|
+
)
|
|
31
34
|
from metadata.generated.schema.entity.data.table import (
|
|
32
35
|
PartitionColumnDetails,
|
|
33
36
|
PartitionIntervalTypes,
|
|
@@ -71,6 +74,7 @@ from metadata.ingestion.source.database.snowflake.models import (
|
|
|
71
74
|
SnowflakeStoredProcedure,
|
|
72
75
|
)
|
|
73
76
|
from metadata.ingestion.source.database.snowflake.queries import (
|
|
77
|
+
SNOWFLAKE_DESC_FUNCTION,
|
|
74
78
|
SNOWFLAKE_DESC_STORED_PROCEDURE,
|
|
75
79
|
SNOWFLAKE_FETCH_ALL_TAGS,
|
|
76
80
|
SNOWFLAKE_GET_CLUSTER_KEY,
|
|
@@ -78,6 +82,7 @@ from metadata.ingestion.source.database.snowflake.queries import (
|
|
|
78
82
|
SNOWFLAKE_GET_DATABASE_COMMENTS,
|
|
79
83
|
SNOWFLAKE_GET_DATABASES,
|
|
80
84
|
SNOWFLAKE_GET_EXTERNAL_LOCATIONS,
|
|
85
|
+
SNOWFLAKE_GET_FUNCTIONS,
|
|
81
86
|
SNOWFLAKE_GET_ORGANIZATION_NAME,
|
|
82
87
|
SNOWFLAKE_GET_SCHEMA_COMMENTS,
|
|
83
88
|
SNOWFLAKE_GET_STORED_PROCEDURES,
|
|
@@ -623,26 +628,34 @@ class SnowflakeSource(
|
|
|
623
628
|
|
|
624
629
|
return views
|
|
625
630
|
|
|
631
|
+
def _get_stored_procedures_internal(
|
|
632
|
+
self, query: str
|
|
633
|
+
) -> Iterable[SnowflakeStoredProcedure]:
|
|
634
|
+
results = self.engine.execute(
|
|
635
|
+
query.format(
|
|
636
|
+
database_name=self.context.get().database,
|
|
637
|
+
schema_name=self.context.get().database_schema,
|
|
638
|
+
)
|
|
639
|
+
).all()
|
|
640
|
+
for row in results:
|
|
641
|
+
stored_procedure = SnowflakeStoredProcedure.model_validate(dict(row))
|
|
642
|
+
if stored_procedure.definition is None:
|
|
643
|
+
logger.debug(
|
|
644
|
+
f"Missing ownership permissions on procedure {stored_procedure.name}."
|
|
645
|
+
" Trying to fetch description via DESCRIBE."
|
|
646
|
+
)
|
|
647
|
+
stored_procedure.definition = self.describe_procedure_definition(
|
|
648
|
+
stored_procedure
|
|
649
|
+
)
|
|
650
|
+
yield stored_procedure
|
|
651
|
+
|
|
626
652
|
def get_stored_procedures(self) -> Iterable[SnowflakeStoredProcedure]:
|
|
627
653
|
"""List Snowflake stored procedures"""
|
|
628
654
|
if self.source_config.includeStoredProcedures:
|
|
629
|
-
|
|
630
|
-
SNOWFLAKE_GET_STORED_PROCEDURES
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
)
|
|
634
|
-
).all()
|
|
635
|
-
for row in results:
|
|
636
|
-
stored_procedure = SnowflakeStoredProcedure.model_validate(dict(row))
|
|
637
|
-
if stored_procedure.definition is None:
|
|
638
|
-
logger.debug(
|
|
639
|
-
f"Missing ownership permissions on procedure {stored_procedure.name}."
|
|
640
|
-
" Trying to fetch description via DESCRIBE."
|
|
641
|
-
)
|
|
642
|
-
stored_procedure.definition = self.describe_procedure_definition(
|
|
643
|
-
stored_procedure
|
|
644
|
-
)
|
|
645
|
-
yield stored_procedure
|
|
655
|
+
yield from self._get_stored_procedures_internal(
|
|
656
|
+
SNOWFLAKE_GET_STORED_PROCEDURES
|
|
657
|
+
)
|
|
658
|
+
yield from self._get_stored_procedures_internal(SNOWFLAKE_GET_FUNCTIONS)
|
|
646
659
|
|
|
647
660
|
def describe_procedure_definition(
|
|
648
661
|
self, stored_procedure: SnowflakeStoredProcedure
|
|
@@ -654,8 +667,12 @@ class SnowflakeSource(
|
|
|
654
667
|
Then, if the procedure is created with `EXECUTE AS CALLER`, we can still try to
|
|
655
668
|
get the definition with a DESCRIBE.
|
|
656
669
|
"""
|
|
670
|
+
if stored_procedure.procedure_type == StoredProcedureType.StoredProcedure.value:
|
|
671
|
+
query = SNOWFLAKE_DESC_STORED_PROCEDURE
|
|
672
|
+
else:
|
|
673
|
+
query = SNOWFLAKE_DESC_FUNCTION
|
|
657
674
|
res = self.engine.execute(
|
|
658
|
-
|
|
675
|
+
query.format(
|
|
659
676
|
database_name=self.context.get().database,
|
|
660
677
|
schema_name=self.context.get().database_schema,
|
|
661
678
|
procedure_name=stored_procedure.name,
|
|
@@ -677,6 +694,8 @@ class SnowflakeSource(
|
|
|
677
694
|
language=STORED_PROC_LANGUAGE_MAP.get(stored_procedure.language),
|
|
678
695
|
code=stored_procedure.definition,
|
|
679
696
|
),
|
|
697
|
+
storedProcedureType=stored_procedure.procedure_type
|
|
698
|
+
or StoredProcedureType.StoredProcedure.value,
|
|
680
699
|
databaseSchema=fqn.build(
|
|
681
700
|
metadata=self.metadata,
|
|
682
701
|
entity_type=DatabaseSchema,
|
|
@@ -50,6 +50,7 @@ class SnowflakeStoredProcedure(BaseModel):
|
|
|
50
50
|
None, alias="SIGNATURE", description="Used to build the source URL"
|
|
51
51
|
)
|
|
52
52
|
comment: Optional[str] = Field(None, alias="COMMENT")
|
|
53
|
+
procedure_type: Optional[str] = Field(None, alias="PROCEDURE_TYPE")
|
|
53
54
|
|
|
54
55
|
# Update the signature to clean it up on read
|
|
55
56
|
@field_validator("signature")
|
|
@@ -20,6 +20,7 @@ from metadata.profiler.metrics.system.system import (
|
|
|
20
20
|
SQASessionProvider,
|
|
21
21
|
SystemMetricsComputer,
|
|
22
22
|
)
|
|
23
|
+
from metadata.profiler.processor.runner import QueryRunner
|
|
23
24
|
from metadata.utils.collections import CaseInsensitiveString
|
|
24
25
|
from metadata.utils.logger import profiler_logger
|
|
25
26
|
from metadata.utils.lru_cache import LRU_CACHE_SIZE, LRUCache
|
|
@@ -294,11 +295,11 @@ class SnowflakeSystemMetricsSource(
|
|
|
294
295
|
)
|
|
295
296
|
|
|
296
297
|
def get_kwargs(self, **kwargs):
|
|
297
|
-
|
|
298
|
+
runner: QueryRunner = kwargs.get("runner")
|
|
298
299
|
return {
|
|
299
|
-
"table":
|
|
300
|
-
"database":
|
|
301
|
-
"schema":
|
|
300
|
+
"table": runner.table_name,
|
|
301
|
+
"database": runner.session.get_bind().url.database,
|
|
302
|
+
"schema": runner.schema_name,
|
|
302
303
|
}
|
|
303
304
|
|
|
304
305
|
def get_inserts(self, **kwargs) -> List[SystemProfile]:
|