openmetadata-ingestion 1.6.7.1__py3-none-any.whl → 1.7.0.0rc1__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/automations/execute_runner.py +49 -0
- metadata/automations/extended_runner.py +13 -0
- metadata/automations/runner.py +34 -35
- metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +11 -1
- metadata/examples/workflows/cassandra.yaml +35 -0
- metadata/examples/workflows/cockroach.yaml +24 -0
- metadata/examples/workflows/nifi.yaml +51 -0
- metadata/examples/workflows/opensearch.yaml +20 -0
- 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 +14 -4
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +2 -2
- metadata/generated/schema/api/classification/createTag.py +2 -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/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 +5 -1
- metadata/generated/schema/api/data/createQuery.py +1 -1
- metadata/generated/schema/api/data/createQueryCostRecord.py +35 -0
- metadata/generated/schema/api/data/createSearchIndex.py +1 -1
- metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
- metadata/generated/schema/api/data/createTable.py +1 -1
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +1 -1
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +1 -1
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +1 -1
- metadata/generated/schema/api/domains/createDomain.py +8 -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 +25 -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 +85 -0
- metadata/generated/schema/api/lineage/lineageDirection.py +12 -0
- metadata/generated/schema/api/lineage/nodeInformation.py +19 -0
- metadata/generated/schema/api/lineage/searchLineageRequest.py +45 -0
- metadata/generated/schema/api/lineage/searchLineageResult.py +46 -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/search/__init__.py +3 -0
- metadata/generated/schema/api/search/previewSearchRequest.py +47 -0
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createApiService.py +9 -2
- metadata/generated/schema/api/services/createDashboardService.py +9 -2
- metadata/generated/schema/api/services/createDatabaseService.py +9 -2
- metadata/generated/schema/api/services/createMessagingService.py +9 -2
- metadata/generated/schema/api/services/createMetadataService.py +9 -2
- metadata/generated/schema/api/services/createMlModelService.py +9 -2
- metadata/generated/schema/api/services/createPipelineService.py +9 -2
- metadata/generated/schema/api/services/createSearchService.py +9 -2
- metadata/generated/schema/api/services/createStorageService.py +9 -2
- 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 +4 -1
- metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
- metadata/generated/schema/configuration/elasticSearchConfiguration.py +55 -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 +21 -0
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
- metadata/generated/schema/configuration/searchSettings.py +428 -4
- 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 +8 -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 +15 -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 -2
- 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 +14 -1
- metadata/generated/schema/entity/applications/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +23 -4
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +9 -3
- 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 +41 -0
- 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 +71 -0
- 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 +33 -0
- 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 +45 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +13 -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/collateAIQualityAgentAppConfig.py +46 -0
- metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +46 -0
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +109 -2
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dayOneExperienceAppConfig.py +48 -0
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/__init__.py +3 -0
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +3 -22
- metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +3 -0
- metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +24 -0
- metadata/generated/schema/entity/applications/configuration/private/limits.py +33 -0
- 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 +13 -1
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +13 -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 +15 -4
- 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 +5 -1
- metadata/generated/schema/entity/data/databaseSchema.py +7 -5
- 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 +14 -1
- metadata/generated/schema/entity/data/query.py +1 -1
- metadata/generated/schema/entity/data/queryCostRecord.py +47 -0
- metadata/generated/schema/entity/data/queryCostSearchResult.py +56 -0
- 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 +3 -1
- metadata/generated/schema/entity/data/table.py +6 -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 +8 -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 +8 -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 +11 -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 +7 -1
- metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +34 -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 +50 -2
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +35 -1
- metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +34 -1
- metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/athenaConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +36 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +3 -0
- metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +61 -0
- metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +106 -0
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +136 -0
- 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 +26 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +37 -2
- 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 +26 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +26 -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 +26 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/exasolConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +26 -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 +26 -1
- metadata/generated/schema/entity/services/connections/database/impalaConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +42 -2
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +32 -2
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +32 -2
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +37 -2
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +41 -2
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +26 -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 +26 -1
- metadata/generated/schema/entity/services/connections/database/sasConnection.py +27 -1
- metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +58 -3
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/synapseConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/teradataConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +37 -2
- metadata/generated/schema/entity/services/connections/database/verticaConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +10 -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 +26 -1
- metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +26 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +26 -2
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +11 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +11 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +11 -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 +10 -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 +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +11 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +10 -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 +10 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +37 -29
- 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 +10 -1
- metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +10 -1
- metadata/generated/schema/entity/services/connections/storage/s3Connection.py +10 -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 +8 -1
- metadata/generated/schema/entity/services/databaseService.py +14 -1
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +8 -1
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +47 -0
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +8 -1
- metadata/generated/schema/entity/services/metadataService.py +8 -1
- metadata/generated/schema/entity/services/mlmodelService.py +8 -1
- metadata/generated/schema/entity/services/pipelineService.py +8 -1
- metadata/generated/schema/entity/services/searchService.py +9 -2
- metadata/generated/schema/entity/services/serviceType.py +1 -1
- metadata/generated/schema/entity/services/storageService.py +8 -1
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +5 -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 +5 -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 +9 -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 +9 -2
- 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 +2 -2
- metadata/generated/schema/governance/workflows/elements/nodeSubType.py +4 -1
- metadata/generated/schema/governance/workflows/elements/nodeType.py +2 -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 +28 -8
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +86 -0
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +73 -0
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +27 -6
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +28 -7
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +9 -4
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +30 -0
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +9 -4
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +24 -7
- metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +8 -4
- metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +20 -0
- metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +18 -5
- metadata/generated/schema/governance/workflows/workflowDefinition.py +30 -7
- metadata/generated/schema/governance/workflows/workflowInstance.py +11 -8
- metadata/generated/schema/governance/workflows/workflowInstanceState.py +4 -8
- metadata/generated/schema/jobs/__init__.py +1 -1
- metadata/generated/schema/jobs/backgroundJob.py +1 -1
- metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +4 -4
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +5 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +18 -2
- metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +9 -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 +64 -0
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +3 -0
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +24 -0
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +28 -0
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +28 -0
- 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 +3 -1
- metadata/generated/schema/monitoring/__init__.py +1 -1
- metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
- metadata/generated/schema/search/__init__.py +3 -0
- metadata/generated/schema/search/searchRequest.py +106 -0
- 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 +42 -22
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +2 -2
- 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 +4 -1
- metadata/generated/schema/system/__init__.py +1 -1
- metadata/generated/schema/system/entityError.py +1 -1
- metadata/generated/schema/system/eventPublisherJob.py +1 -1
- metadata/generated/schema/system/indexingError.py +1 -1
- metadata/generated/schema/system/limitsResponse.py +1 -1
- metadata/generated/schema/system/ui/__init__.py +1 -1
- metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
- metadata/generated/schema/system/ui/navigationItem.py +38 -0
- metadata/generated/schema/system/ui/page.py +23 -15
- metadata/generated/schema/system/ui/tab.py +36 -0
- metadata/generated/schema/system/ui/uiCustomization.py +45 -0
- 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 +4 -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 +37 -0
- 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 +6 -3
- metadata/generated/schema/type/entityLineage.py +27 -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 +4 -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 +4 -1
- metadata/generated/schema/type/tableUsageCount.py +18 -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/api/topology_runner.py +3 -3
- metadata/ingestion/bulksink/metadata_usage.py +27 -6
- metadata/ingestion/lineage/masker.py +13 -2
- metadata/ingestion/models/custom_pydantic.py +44 -6
- metadata/ingestion/ometa/client.py +20 -0
- metadata/ingestion/ometa/mixins/domain_mixin.py +80 -0
- metadata/ingestion/ometa/mixins/es_mixin.py +42 -2
- metadata/ingestion/ometa/mixins/lineage_mixin.py +7 -33
- metadata/ingestion/ometa/mixins/patch_mixin.py +15 -5
- metadata/ingestion/ometa/mixins/pipeline_mixin.py +18 -0
- metadata/ingestion/ometa/mixins/query_mixin.py +43 -0
- metadata/ingestion/ometa/ometa_api.py +28 -3
- metadata/ingestion/ometa/routes.py +7 -0
- metadata/ingestion/ometa/utils.py +13 -0
- metadata/ingestion/processor/query_parser.py +1 -0
- metadata/ingestion/sink/metadata_rest.py +21 -1
- metadata/ingestion/source/dashboard/dashboard_service.py +9 -1
- metadata/ingestion/source/dashboard/domodashboard/metadata.py +3 -1
- metadata/ingestion/source/dashboard/lightdash/metadata.py +1 -1
- metadata/ingestion/source/dashboard/looker/metadata.py +8 -2
- metadata/ingestion/source/dashboard/metabase/client.py +65 -6
- metadata/ingestion/source/dashboard/metabase/metadata.py +88 -37
- metadata/ingestion/source/dashboard/metabase/models.py +2 -1
- metadata/ingestion/source/dashboard/microstrategy/metadata.py +3 -1
- metadata/ingestion/source/dashboard/mode/metadata.py +16 -9
- metadata/ingestion/source/dashboard/powerbi/client.py +3 -14
- metadata/ingestion/source/dashboard/powerbi/metadata.py +6 -54
- metadata/ingestion/source/dashboard/powerbi/models.py +0 -12
- metadata/ingestion/source/dashboard/qlikcloud/client.py +25 -2
- metadata/ingestion/source/dashboard/qlikcloud/metadata.py +69 -15
- metadata/ingestion/source/dashboard/qlikcloud/models.py +44 -1
- metadata/ingestion/source/dashboard/qliksense/metadata.py +26 -18
- metadata/ingestion/source/dashboard/quicksight/metadata.py +32 -29
- metadata/ingestion/source/dashboard/redash/metadata.py +12 -10
- metadata/ingestion/source/dashboard/sigma/metadata.py +12 -14
- metadata/ingestion/source/dashboard/superset/api_source.py +25 -26
- metadata/ingestion/source/dashboard/superset/db_source.py +22 -20
- metadata/ingestion/source/dashboard/superset/mixin.py +207 -53
- metadata/ingestion/source/dashboard/superset/models.py +3 -0
- metadata/ingestion/source/dashboard/superset/queries.py +7 -4
- metadata/ingestion/source/dashboard/superset/utils.py +36 -0
- metadata/ingestion/source/dashboard/tableau/client.py +56 -1
- metadata/ingestion/source/dashboard/tableau/metadata.py +243 -128
- metadata/ingestion/source/database/bigquery/helper.py +9 -1
- metadata/ingestion/source/database/bigquery/metadata.py +82 -10
- metadata/ingestion/source/database/bigquery/queries.py +2 -1
- metadata/ingestion/source/database/bigquery/query_parser.py +1 -0
- metadata/ingestion/source/database/bigtable/metadata.py +11 -3
- metadata/ingestion/source/database/cassandra/__init__.py +0 -0
- metadata/ingestion/source/database/cassandra/connection.py +138 -0
- metadata/ingestion/source/database/cassandra/helpers.py +100 -0
- metadata/ingestion/source/database/cassandra/metadata.py +138 -0
- metadata/ingestion/source/database/cassandra/queries.py +45 -0
- metadata/ingestion/source/database/cassandra/service_spec.py +10 -0
- metadata/ingestion/source/database/cockroach/__init__.py +0 -0
- metadata/ingestion/source/database/cockroach/connection.py +71 -0
- metadata/ingestion/source/database/cockroach/metadata.py +206 -0
- metadata/ingestion/source/database/cockroach/queries.py +90 -0
- metadata/ingestion/source/database/cockroach/service_spec.py +4 -0
- metadata/ingestion/source/database/common_db_source.py +9 -0
- metadata/ingestion/source/database/common_nosql_source.py +78 -29
- metadata/ingestion/source/database/common_pg_mappings.py +49 -0
- metadata/ingestion/source/database/couchbase/metadata.py +8 -2
- metadata/ingestion/source/database/databricks/metadata.py +8 -0
- metadata/ingestion/source/database/datalake/metadata.py +15 -9
- metadata/ingestion/source/database/db2/service_spec.py +4 -1
- metadata/ingestion/source/database/dbt/dbt_config.py +1 -0
- metadata/ingestion/source/database/dbt/dbt_utils.py +1 -1
- metadata/ingestion/source/database/dbt/metadata.py +5 -1
- metadata/ingestion/source/database/doris/metadata.py +7 -2
- metadata/ingestion/source/database/druid/service_spec.py +5 -1
- metadata/ingestion/source/database/dynamodb/metadata.py +6 -3
- metadata/ingestion/source/database/greenplum/metadata.py +6 -37
- metadata/ingestion/source/database/greenplum/service_spec.py +5 -1
- metadata/ingestion/source/database/hive/metastore_dialects/mysql/dialect.py +35 -13
- metadata/ingestion/source/database/hive/metastore_dialects/postgres/dialect.py +38 -14
- metadata/ingestion/source/database/hive/service_spec.py +5 -1
- metadata/ingestion/source/database/impala/service_spec.py +5 -1
- metadata/ingestion/source/database/life_cycle_query_mixin.py +11 -7
- metadata/ingestion/source/database/lineage_source.py +75 -2
- metadata/ingestion/source/database/mariadb/service_spec.py +9 -1
- metadata/ingestion/source/database/mongodb/metadata.py +8 -3
- metadata/ingestion/source/database/mssql/metadata.py +68 -2
- metadata/ingestion/source/database/mssql/queries.py +43 -0
- metadata/ingestion/source/database/mysql/utils.py +5 -3
- metadata/ingestion/source/database/oracle/connection.py +24 -2
- metadata/ingestion/source/database/oracle/metadata.py +36 -19
- metadata/ingestion/source/database/oracle/models.py +5 -4
- metadata/ingestion/source/database/oracle/queries.py +22 -1
- metadata/ingestion/source/database/pinotdb/service_spec.py +5 -1
- metadata/ingestion/source/database/postgres/lineage.py +1 -2
- metadata/ingestion/source/database/postgres/metadata.py +32 -56
- metadata/ingestion/source/database/postgres/models.py +1 -0
- metadata/ingestion/source/database/postgres/queries.py +18 -1
- metadata/ingestion/source/database/query_parser_source.py +11 -6
- metadata/ingestion/source/database/sample_data.py +11 -0
- metadata/ingestion/source/database/sample_usage.py +2 -0
- metadata/ingestion/source/database/saphana/lineage.py +1 -1
- metadata/ingestion/source/database/singlestore/service_spec.py +6 -1
- metadata/ingestion/source/database/snowflake/connection.py +6 -0
- metadata/ingestion/source/database/snowflake/constants.py +48 -0
- metadata/ingestion/source/database/snowflake/metadata.py +114 -3
- metadata/ingestion/source/database/snowflake/models.py +3 -3
- metadata/ingestion/source/database/snowflake/queries.py +27 -1
- metadata/ingestion/source/database/snowflake/query_parser.py +2 -0
- metadata/ingestion/source/database/snowflake/utils.py +110 -26
- metadata/ingestion/source/database/sql_column_handler.py +95 -60
- metadata/ingestion/source/database/sqlite/service_spec.py +5 -1
- metadata/ingestion/source/database/teradata/service_spec.py +5 -1
- metadata/ingestion/source/database/trino/lineage.py +95 -0
- metadata/ingestion/source/database/unitycatalog/connection.py +23 -0
- metadata/ingestion/source/database/unitycatalog/lineage.py +2 -0
- metadata/ingestion/source/database/unitycatalog/metadata.py +2 -0
- metadata/ingestion/source/database/usage_source.py +2 -0
- metadata/ingestion/source/messaging/messaging_service.py +2 -0
- metadata/ingestion/source/metadata/alationsink/metadata.py +32 -18
- metadata/ingestion/source/metadata/amundsen/metadata.py +7 -4
- metadata/ingestion/source/metadata/atlas/metadata.py +2 -1
- metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -0
- metadata/ingestion/source/pipeline/airflow/metadata.py +25 -0
- metadata/ingestion/source/pipeline/airflow/models.py +1 -0
- metadata/ingestion/source/pipeline/nifi/client.py +68 -74
- metadata/ingestion/source/pipeline/nifi/connection.py +1 -18
- metadata/ingestion/source/pipeline/openlineage/metadata.py +1 -0
- metadata/ingestion/source/pipeline/pipeline_service.py +121 -2
- metadata/ingestion/source/search/opensearch/connection.py +215 -0
- metadata/ingestion/source/search/opensearch/metadata.py +270 -0
- metadata/ingestion/source/search/opensearch/parser.py +71 -0
- metadata/ingestion/source/search/opensearch/service_spec.py +4 -0
- metadata/ingestion/source/search/search_service.py +2 -0
- metadata/ingestion/source/storage/storage_service.py +2 -0
- metadata/ingestion/stage/table_usage.py +53 -1
- metadata/profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py +3 -4
- metadata/profiler/orm/converter/azuresql/converter.py +39 -0
- metadata/profiler/orm/converter/converter_registry.py +2 -0
- metadata/profiler/orm/functions/length.py +2 -0
- metadata/profiler/orm/functions/median.py +19 -0
- metadata/profiler/orm/functions/modulo.py +1 -0
- metadata/profiler/orm/functions/random_num.py +1 -0
- metadata/profiler/orm/functions/sum.py +1 -0
- metadata/profiler/orm/registry.py +2 -0
- metadata/profiler/processor/core.py +1 -0
- metadata/profiler/processor/metric_filter.py +1 -1
- metadata/profiler/source/database/base/profiler_source.py +1 -0
- metadata/profiler/source/fetcher/fetcher_strategy.py +4 -0
- metadata/sampler/config.py +1 -0
- metadata/sampler/models.py +3 -0
- metadata/sampler/nosql/sampler.py +4 -0
- metadata/sampler/pandas/sampler.py +1 -0
- metadata/sampler/partition.py +9 -2
- metadata/sampler/sampler_interface.py +0 -1
- metadata/sampler/sqlalchemy/azuresql/sampler.py +30 -3
- metadata/sampler/sqlalchemy/mssql/sampler.py +2 -1
- metadata/sampler/sqlalchemy/sampler.py +51 -42
- metadata/sampler/sqlalchemy/snowflake/sampler.py +2 -1
- metadata/sampler/sqlalchemy/trino/sampler.py +9 -8
- metadata/utils/constants.py +1 -0
- metadata/utils/credentials.py +25 -4
- metadata/utils/db_utils.py +1 -11
- metadata/utils/elasticsearch.py +4 -0
- metadata/utils/helpers.py +91 -0
- metadata/utils/logger.py +9 -0
- metadata/utils/ssl_manager.py +35 -0
- metadata/utils/tag_utils.py +72 -27
- metadata/workflow/classification.py +3 -0
- metadata/workflow/profiler.py +13 -5
- metadata/workflow/workflow_status_mixin.py +6 -0
- {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/METADATA +433 -370
- {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/RECORD +867 -798
- {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Copyright 2021 Collate
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
8
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
# See the License for the specific language governing permissions and
|
|
10
|
+
# limitations under the License.
|
|
11
|
+
"""Domain and Data Product specific operations"""
|
|
12
|
+
from typing import Dict, List
|
|
13
|
+
|
|
14
|
+
from metadata.generated.schema.type.entityReference import EntityReference
|
|
15
|
+
from metadata.ingestion.models.custom_pydantic import BaseModel
|
|
16
|
+
from metadata.ingestion.ometa.client import REST
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class AssetsRequest(BaseModel):
|
|
20
|
+
"""Request to add assets to a data product"""
|
|
21
|
+
|
|
22
|
+
assets: List[EntityReference]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class OMetaDomainMixin:
|
|
26
|
+
"""Mixin class containing Data Product specific methods"""
|
|
27
|
+
|
|
28
|
+
client: REST
|
|
29
|
+
|
|
30
|
+
def add_assets_to_data_product(
|
|
31
|
+
self, name: str, assets: List[EntityReference]
|
|
32
|
+
) -> Dict:
|
|
33
|
+
"""
|
|
34
|
+
Add assets to a data product
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
name: Name of the data product
|
|
38
|
+
assets: List of entity references to add as assets
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
API response as a dictionary
|
|
42
|
+
"""
|
|
43
|
+
return self._handle_data_product_assets(name, assets, "add")
|
|
44
|
+
|
|
45
|
+
def remove_assets_from_data_product(
|
|
46
|
+
self, name: str, assets: List[EntityReference]
|
|
47
|
+
) -> Dict:
|
|
48
|
+
"""
|
|
49
|
+
Remove assets from a data product
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
name: Name of the data product
|
|
53
|
+
assets: List of entity references to remove from assets
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
API response as a dictionary
|
|
57
|
+
"""
|
|
58
|
+
return self._handle_data_product_assets(name, assets, "remove")
|
|
59
|
+
|
|
60
|
+
def _handle_data_product_assets(
|
|
61
|
+
self,
|
|
62
|
+
name: str,
|
|
63
|
+
assets: List[EntityReference],
|
|
64
|
+
operation: str,
|
|
65
|
+
) -> Dict:
|
|
66
|
+
"""
|
|
67
|
+
Handle adding or removing assets from a data product
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
name: Name of the data product
|
|
71
|
+
assets: List of entity references to add/remove
|
|
72
|
+
operation: Operation to perform ("add" or "remove")
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
API response as a dictionary
|
|
76
|
+
"""
|
|
77
|
+
path = f"/dataProducts/{name}/assets/{operation}"
|
|
78
|
+
payload = AssetsRequest(assets=assets)
|
|
79
|
+
|
|
80
|
+
return self.client.put(path, payload.model_dump_json())
|
|
@@ -16,7 +16,17 @@ To be used by OpenMetadata class
|
|
|
16
16
|
import functools
|
|
17
17
|
import json
|
|
18
18
|
import traceback
|
|
19
|
-
from typing import
|
|
19
|
+
from typing import (
|
|
20
|
+
Generic,
|
|
21
|
+
Iterable,
|
|
22
|
+
Iterator,
|
|
23
|
+
List,
|
|
24
|
+
Optional,
|
|
25
|
+
Set,
|
|
26
|
+
Type,
|
|
27
|
+
TypeVar,
|
|
28
|
+
Union,
|
|
29
|
+
)
|
|
20
30
|
from urllib.parse import quote_plus
|
|
21
31
|
|
|
22
32
|
from pydantic import Field
|
|
@@ -29,7 +39,7 @@ from metadata.ingestion.models.custom_pydantic import BaseModel
|
|
|
29
39
|
from metadata.ingestion.ometa.client import REST, APIError
|
|
30
40
|
from metadata.ingestion.ometa.utils import quote
|
|
31
41
|
from metadata.ingestion.source.models import TableView
|
|
32
|
-
from metadata.utils.elasticsearch import ES_INDEX_MAP
|
|
42
|
+
from metadata.utils.elasticsearch import ES_INDEX_MAP, get_entity_from_es_result
|
|
33
43
|
from metadata.utils.logger import ometa_logger
|
|
34
44
|
|
|
35
45
|
logger = ometa_logger()
|
|
@@ -436,6 +446,11 @@ class ESMixin(Generic[T]):
|
|
|
436
446
|
"tableType": TableType.Dynamic.value
|
|
437
447
|
}
|
|
438
448
|
},
|
|
449
|
+
{
|
|
450
|
+
"term": {
|
|
451
|
+
"tableType": TableType.Stream.value
|
|
452
|
+
}
|
|
453
|
+
},
|
|
439
454
|
]
|
|
440
455
|
}
|
|
441
456
|
}
|
|
@@ -487,3 +502,28 @@ class ESMixin(Generic[T]):
|
|
|
487
502
|
schema_name=schema_name,
|
|
488
503
|
table_name=table_name,
|
|
489
504
|
)
|
|
505
|
+
|
|
506
|
+
def search_in_any_service(
|
|
507
|
+
self,
|
|
508
|
+
entity_type: Type[T],
|
|
509
|
+
fqn_search_string: str,
|
|
510
|
+
fetch_multiple_entities: bool = False,
|
|
511
|
+
) -> Optional[Union[List[Table], Table]]:
|
|
512
|
+
"""
|
|
513
|
+
fetch table from es when with/without `db_service_name`
|
|
514
|
+
"""
|
|
515
|
+
try:
|
|
516
|
+
entity_result = get_entity_from_es_result(
|
|
517
|
+
entity_list=self.es_search_from_fqn(
|
|
518
|
+
entity_type=entity_type,
|
|
519
|
+
fqn_search_string=fqn_search_string,
|
|
520
|
+
),
|
|
521
|
+
fetch_multiple_entities=fetch_multiple_entities,
|
|
522
|
+
)
|
|
523
|
+
return entity_result
|
|
524
|
+
except Exception as exc:
|
|
525
|
+
logger.debug(
|
|
526
|
+
f"Error to fetch entity: fqn={fqn_search_string} from es: {exc}"
|
|
527
|
+
)
|
|
528
|
+
logger.debug(traceback.format_exc())
|
|
529
|
+
return None
|
|
@@ -171,13 +171,9 @@ class OMetaLineageMixin(Generic[T]):
|
|
|
171
171
|
|
|
172
172
|
except APIError as err:
|
|
173
173
|
logger.debug(traceback.format_exc())
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
data.model_dump_json(),
|
|
178
|
-
str(err),
|
|
179
|
-
)
|
|
180
|
-
raise err
|
|
174
|
+
error = f"Error {err.status_code} trying to PUT lineage for {data.model_dump_json()}: {str(err)}"
|
|
175
|
+
logger.error(error)
|
|
176
|
+
return {"error": error}
|
|
181
177
|
|
|
182
178
|
from_entity_lineage = self.get_lineage_by_id(
|
|
183
179
|
data.edge.fromEntity.type, str(data.edge.fromEntity.id.root)
|
|
@@ -397,6 +393,10 @@ class OMetaLineageMixin(Generic[T]):
|
|
|
397
393
|
resp = self.add_lineage(
|
|
398
394
|
lineage_request.right, check_patch=check_patch
|
|
399
395
|
)
|
|
396
|
+
if resp.get("error"):
|
|
397
|
+
logger.error(resp["error"])
|
|
398
|
+
continue
|
|
399
|
+
|
|
400
400
|
entity_name = resp.get("entity", {}).get("name")
|
|
401
401
|
for node in resp.get("nodes", []):
|
|
402
402
|
logger.info(
|
|
@@ -407,37 +407,11 @@ class OMetaLineageMixin(Generic[T]):
|
|
|
407
407
|
f"Error while adding lineage: {lineage_request.left.error}"
|
|
408
408
|
)
|
|
409
409
|
|
|
410
|
-
def _set_permissions(self):
|
|
411
|
-
try:
|
|
412
|
-
if not hasattr(self, "is_edit_table_allowed"):
|
|
413
|
-
permissions = self.client.get(path="/permissions")
|
|
414
|
-
for permission in permissions.get("data", []):
|
|
415
|
-
if permission.get("resource") != "table":
|
|
416
|
-
continue
|
|
417
|
-
for action in permission.get("permissions", []):
|
|
418
|
-
if (
|
|
419
|
-
action.get("operation") == "EditAll"
|
|
420
|
-
and action.get("access") == "allow"
|
|
421
|
-
):
|
|
422
|
-
self.is_edit_table_allowed = True
|
|
423
|
-
return
|
|
424
|
-
logger.warning("Please grant EditAll permission to the user")
|
|
425
|
-
except Exception as exc:
|
|
426
|
-
logger.debug(f"Error while setting permissions: {exc}")
|
|
427
|
-
logger.debug(traceback.format_exc())
|
|
428
|
-
self.is_edit_table_allowed = False
|
|
429
|
-
|
|
430
410
|
def patch_lineage_processed_flag(
|
|
431
411
|
self,
|
|
432
412
|
entity: Type[T],
|
|
433
413
|
fqn: str,
|
|
434
414
|
) -> None:
|
|
435
|
-
"""
|
|
436
|
-
Patch the processed lineage flag for an entity.
|
|
437
|
-
"""
|
|
438
|
-
self._set_permissions()
|
|
439
|
-
if not self.is_edit_table_allowed:
|
|
440
|
-
return
|
|
441
415
|
|
|
442
416
|
try:
|
|
443
417
|
original_entity = self.get_by_name(entity=entity, fqn=fqn)
|
|
@@ -29,6 +29,9 @@ from metadata.generated.schema.entity.domains.domain import Domain
|
|
|
29
29
|
from metadata.generated.schema.entity.services.connections.testConnectionResult import (
|
|
30
30
|
TestConnectionResult,
|
|
31
31
|
)
|
|
32
|
+
from metadata.generated.schema.entity.services.ingestionPipelines.reverseIngestionResponse import (
|
|
33
|
+
ReverseIngestionResponse,
|
|
34
|
+
)
|
|
32
35
|
from metadata.generated.schema.tests.testCase import TestCase, TestCaseParameterValue
|
|
33
36
|
from metadata.generated.schema.type.basic import EntityLink, Markdown
|
|
34
37
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
@@ -488,7 +491,7 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
|
|
|
488
491
|
def patch_automation_workflow_response(
|
|
489
492
|
self,
|
|
490
493
|
automation_workflow: AutomationWorkflow,
|
|
491
|
-
|
|
494
|
+
result: Union[TestConnectionResult, ReverseIngestionResponse],
|
|
492
495
|
workflow_status: WorkflowStatus,
|
|
493
496
|
) -> None:
|
|
494
497
|
"""
|
|
@@ -496,14 +499,21 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
|
|
|
496
499
|
"""
|
|
497
500
|
result_data: Dict = {
|
|
498
501
|
PatchField.PATH: PatchPath.RESPONSE,
|
|
499
|
-
PatchField.VALUE:
|
|
502
|
+
PatchField.VALUE: result.model_dump(),
|
|
500
503
|
PatchField.OPERATION: PatchOperation.ADD,
|
|
501
504
|
}
|
|
502
505
|
|
|
503
506
|
# for deserializing into json convert enum object to string
|
|
504
|
-
|
|
505
|
-
"status"
|
|
506
|
-
|
|
507
|
+
if isinstance(result, TestConnectionResult):
|
|
508
|
+
result_data[PatchField.VALUE]["status"] = result_data[PatchField.VALUE][
|
|
509
|
+
"status"
|
|
510
|
+
].value
|
|
511
|
+
else:
|
|
512
|
+
# Convert UUID in string
|
|
513
|
+
data = result_data[PatchField.VALUE]
|
|
514
|
+
data["serviceId"] = str(data["serviceId"])
|
|
515
|
+
for operation_result in data["results"]:
|
|
516
|
+
operation_result["id"] = str(operation_result["id"])
|
|
507
517
|
|
|
508
518
|
status_data: Dict = {
|
|
509
519
|
PatchField.PATH: PatchPath.STATUS,
|
|
@@ -21,6 +21,7 @@ from metadata.generated.schema.entity.data.pipeline import (
|
|
|
21
21
|
PipelineStatus,
|
|
22
22
|
Task,
|
|
23
23
|
)
|
|
24
|
+
from metadata.generated.schema.type.usageRequest import UsageRequest
|
|
24
25
|
from metadata.ingestion.ometa.client import REST
|
|
25
26
|
from metadata.utils.logger import ometa_logger
|
|
26
27
|
|
|
@@ -83,6 +84,7 @@ class OMetaPipelineMixin:
|
|
|
83
84
|
sourceUrl=pipeline.sourceUrl,
|
|
84
85
|
concurrency=pipeline.concurrency,
|
|
85
86
|
pipelineLocation=pipeline.pipelineLocation,
|
|
87
|
+
state=pipeline.state,
|
|
86
88
|
startDate=pipeline.startDate,
|
|
87
89
|
service=pipeline.service.fullyQualifiedName,
|
|
88
90
|
tasks=all_tasks,
|
|
@@ -110,6 +112,7 @@ class OMetaPipelineMixin:
|
|
|
110
112
|
sourceUrl=pipeline.sourceUrl,
|
|
111
113
|
concurrency=pipeline.concurrency,
|
|
112
114
|
pipelineLocation=pipeline.pipelineLocation,
|
|
115
|
+
state=pipeline.state,
|
|
113
116
|
startDate=pipeline.startDate,
|
|
114
117
|
service=pipeline.service.fullyQualifiedName,
|
|
115
118
|
tasks=[task for task in pipeline.tasks if task.name in task_ids],
|
|
@@ -118,3 +121,18 @@ class OMetaPipelineMixin:
|
|
|
118
121
|
)
|
|
119
122
|
|
|
120
123
|
return self.create_or_update(updated_pipeline)
|
|
124
|
+
|
|
125
|
+
def publish_pipeline_usage(
|
|
126
|
+
self, pipeline: Pipeline, pipeline_usage_request: UsageRequest
|
|
127
|
+
) -> None:
|
|
128
|
+
"""
|
|
129
|
+
POST usage details for a Pipeline
|
|
130
|
+
|
|
131
|
+
:param pipeline: Pipeline Entity to update
|
|
132
|
+
:param pipeline_usage_request: Usage data to add
|
|
133
|
+
"""
|
|
134
|
+
resp = self.client.put(
|
|
135
|
+
f"/usage/pipeline/{pipeline.id.root}",
|
|
136
|
+
data=pipeline_usage_request.model_dump_json(),
|
|
137
|
+
)
|
|
138
|
+
logger.debug("Published pipeline usage %s", resp)
|
|
@@ -15,14 +15,20 @@ To be used by OpenMetadata class
|
|
|
15
15
|
"""
|
|
16
16
|
import hashlib
|
|
17
17
|
import json
|
|
18
|
+
from functools import lru_cache
|
|
18
19
|
from typing import List, Optional, Union
|
|
19
20
|
|
|
20
21
|
from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
|
|
22
|
+
from metadata.generated.schema.api.data.createQueryCostRecord import (
|
|
23
|
+
CreateQueryCostRecordRequest,
|
|
24
|
+
)
|
|
21
25
|
from metadata.generated.schema.entity.data.dashboard import Dashboard
|
|
22
26
|
from metadata.generated.schema.entity.data.query import Query
|
|
27
|
+
from metadata.generated.schema.entity.data.queryCostRecord import QueryCostRecord
|
|
23
28
|
from metadata.generated.schema.entity.data.table import Table
|
|
24
29
|
from metadata.generated.schema.type.basic import Uuid
|
|
25
30
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
31
|
+
from metadata.generated.schema.type.tableUsageCount import QueryCostWrapper
|
|
26
32
|
from metadata.ingestion.lineage.masker import mask_query
|
|
27
33
|
from metadata.ingestion.ometa.client import REST
|
|
28
34
|
from metadata.ingestion.ometa.utils import model_str
|
|
@@ -115,3 +121,40 @@ class OMetaQueryMixin:
|
|
|
115
121
|
if res and res.get("data"):
|
|
116
122
|
return [Query(**query) for query in res.get("data")]
|
|
117
123
|
return None
|
|
124
|
+
|
|
125
|
+
@lru_cache(maxsize=5000)
|
|
126
|
+
def __get_query_by_hash(
|
|
127
|
+
self, query_hash: str, service_name: str
|
|
128
|
+
) -> Optional[Query]:
|
|
129
|
+
return self.get_by_name(entity=Query, fqn=f"{service_name}.{query_hash}")
|
|
130
|
+
|
|
131
|
+
def publish_query_cost(self, query_cost_data: QueryCostWrapper, service_name: str):
|
|
132
|
+
"""
|
|
133
|
+
Create Query Cost Record
|
|
134
|
+
|
|
135
|
+
Args:
|
|
136
|
+
query_cost_record: QueryCostWrapper
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
masked_query = mask_query(query_cost_data.query, query_cost_data.dialect)
|
|
140
|
+
|
|
141
|
+
query_hash = self._get_query_hash(masked_query)
|
|
142
|
+
|
|
143
|
+
query = self.__get_query_by_hash(
|
|
144
|
+
query_hash=query_hash, service_name=service_name
|
|
145
|
+
)
|
|
146
|
+
if not query:
|
|
147
|
+
return None
|
|
148
|
+
|
|
149
|
+
create_request = CreateQueryCostRecordRequest(
|
|
150
|
+
timestamp=int(query_cost_data.date),
|
|
151
|
+
jsonSchema="queryCostRecord",
|
|
152
|
+
queryReference=EntityReference(id=query.id.root, type="query"),
|
|
153
|
+
cost=query_cost_data.cost,
|
|
154
|
+
count=query_cost_data.count,
|
|
155
|
+
totalDuration=query_cost_data.totalDuration,
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
return self.client.post(
|
|
159
|
+
self.get_suffix(QueryCostRecord), data=create_request.model_dump_json()
|
|
160
|
+
)
|
|
@@ -17,7 +17,7 @@ working with OpenMetadata entities.
|
|
|
17
17
|
import traceback
|
|
18
18
|
from typing import Dict, Generic, Iterable, List, Optional, Type, TypeVar, Union
|
|
19
19
|
|
|
20
|
-
from
|
|
20
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
21
21
|
|
|
22
22
|
from metadata.generated.schema.api.createBot import CreateBot
|
|
23
23
|
from metadata.generated.schema.api.services.ingestionPipelines.createIngestionPipeline import (
|
|
@@ -30,6 +30,7 @@ from metadata.generated.schema.type import basic
|
|
|
30
30
|
from metadata.generated.schema.type.basic import FullyQualifiedEntityName
|
|
31
31
|
from metadata.generated.schema.type.entityHistory import EntityVersionHistory
|
|
32
32
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
33
|
+
from metadata.ingestion.models.custom_pydantic import BaseModel
|
|
33
34
|
from metadata.ingestion.ometa.auth_provider import OpenMetadataAuthenticationProvider
|
|
34
35
|
from metadata.ingestion.ometa.client import REST, APIError, ClientConfig
|
|
35
36
|
from metadata.ingestion.ometa.mixins.custom_property_mixin import (
|
|
@@ -37,6 +38,7 @@ from metadata.ingestion.ometa.mixins.custom_property_mixin import (
|
|
|
37
38
|
)
|
|
38
39
|
from metadata.ingestion.ometa.mixins.dashboard_mixin import OMetaDashboardMixin
|
|
39
40
|
from metadata.ingestion.ometa.mixins.data_insight_mixin import DataInsightMixin
|
|
41
|
+
from metadata.ingestion.ometa.mixins.domain_mixin import OMetaDomainMixin
|
|
40
42
|
from metadata.ingestion.ometa.mixins.es_mixin import ESMixin
|
|
41
43
|
from metadata.ingestion.ometa.mixins.ingestion_pipeline_mixin import (
|
|
42
44
|
OMetaIngestionPipelineMixin,
|
|
@@ -89,6 +91,16 @@ class EmptyPayloadException(Exception):
|
|
|
89
91
|
"""
|
|
90
92
|
|
|
91
93
|
|
|
94
|
+
class OpenMetadataSettings(BaseSettings):
|
|
95
|
+
"""OpenMetadataConnection settings wrapper"""
|
|
96
|
+
|
|
97
|
+
model_config = SettingsConfigDict(
|
|
98
|
+
env_prefix="OPENMETADATA__", env_nested_delimiter="__", case_sensitive=True
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
connection: OpenMetadataConnection
|
|
102
|
+
|
|
103
|
+
|
|
92
104
|
class OpenMetadata(
|
|
93
105
|
OMetaPipelineMixin,
|
|
94
106
|
OMetaMlModelMixin,
|
|
@@ -109,6 +121,7 @@ class OpenMetadata(
|
|
|
109
121
|
OMetaSearchIndexMixin,
|
|
110
122
|
OMetaCustomPropertyMixin,
|
|
111
123
|
OMetaSuggestionsMixin,
|
|
124
|
+
OMetaDomainMixin,
|
|
112
125
|
Generic[T, C],
|
|
113
126
|
):
|
|
114
127
|
"""
|
|
@@ -145,11 +158,14 @@ class OpenMetadata(
|
|
|
145
158
|
|
|
146
159
|
get_verify_ssl = get_verify_ssl_fn(self.config.verifySSL)
|
|
147
160
|
|
|
161
|
+
extra_headers: Optional[dict[str, str]] = None
|
|
162
|
+
if self.config.extraHeaders:
|
|
163
|
+
extra_headers = self.config.extraHeaders.root
|
|
148
164
|
client_config: ClientConfig = ClientConfig(
|
|
149
165
|
base_url=self.config.hostPort,
|
|
150
166
|
api_version=self.config.apiVersion,
|
|
151
167
|
auth_header="Authorization",
|
|
152
|
-
extra_headers=
|
|
168
|
+
extra_headers=extra_headers,
|
|
153
169
|
auth_token=self._auth_provider.get_access_token,
|
|
154
170
|
verify=get_verify_ssl(self.config.sslConfig),
|
|
155
171
|
)
|
|
@@ -158,6 +174,11 @@ class OpenMetadata(
|
|
|
158
174
|
if self.config.enableVersionValidation:
|
|
159
175
|
self.validate_versions()
|
|
160
176
|
|
|
177
|
+
@classmethod
|
|
178
|
+
def from_env(cls) -> "OpenMetadata":
|
|
179
|
+
settings = OpenMetadataSettings()
|
|
180
|
+
return cls(settings.connection)
|
|
181
|
+
|
|
161
182
|
@staticmethod
|
|
162
183
|
def get_suffix(entity: Type[T]) -> str:
|
|
163
184
|
"""
|
|
@@ -268,7 +289,11 @@ class OpenMetadata(
|
|
|
268
289
|
)
|
|
269
290
|
|
|
270
291
|
fn = getattr(self.client, method)
|
|
271
|
-
resp = fn(
|
|
292
|
+
resp = fn(
|
|
293
|
+
# this might be a regular pydantic model so we build the context manually
|
|
294
|
+
self.get_suffix(entity),
|
|
295
|
+
data=data.model_dump_json(context={"mask_secrets": False}),
|
|
296
|
+
)
|
|
272
297
|
if not resp:
|
|
273
298
|
raise EmptyPayloadException(
|
|
274
299
|
f"Got an empty response when trying to PUT to {self.get_suffix(entity)}, {data.model_dump_json()}"
|
|
@@ -46,6 +46,9 @@ from metadata.generated.schema.api.data.createMetric import CreateMetricRequest
|
|
|
46
46
|
from metadata.generated.schema.api.data.createMlModel import CreateMlModelRequest
|
|
47
47
|
from metadata.generated.schema.api.data.createPipeline import CreatePipelineRequest
|
|
48
48
|
from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
|
|
49
|
+
from metadata.generated.schema.api.data.createQueryCostRecord import (
|
|
50
|
+
CreateQueryCostRecordRequest,
|
|
51
|
+
)
|
|
49
52
|
from metadata.generated.schema.api.data.createSearchIndex import (
|
|
50
53
|
CreateSearchIndexRequest,
|
|
51
54
|
)
|
|
@@ -133,6 +136,7 @@ from metadata.generated.schema.entity.data.metric import Metric
|
|
|
133
136
|
from metadata.generated.schema.entity.data.mlmodel import MlModel
|
|
134
137
|
from metadata.generated.schema.entity.data.pipeline import Pipeline
|
|
135
138
|
from metadata.generated.schema.entity.data.query import Query
|
|
139
|
+
from metadata.generated.schema.entity.data.queryCostRecord import QueryCostRecord
|
|
136
140
|
from metadata.generated.schema.entity.data.report import Report
|
|
137
141
|
from metadata.generated.schema.entity.data.searchIndex import SearchIndex
|
|
138
142
|
from metadata.generated.schema.entity.data.storedProcedure import StoredProcedure
|
|
@@ -280,4 +284,7 @@ ROUTES = {
|
|
|
280
284
|
CreateAppMarketPlaceDefinitionRequest.__name__: "/apps/marketplace",
|
|
281
285
|
# Settings
|
|
282
286
|
Settings.__name__: "/system/settings",
|
|
287
|
+
# Query Cost
|
|
288
|
+
QueryCostRecord.__name__: "/queryCostRecord",
|
|
289
|
+
CreateQueryCostRecordRequest.__name__: "/queryCostRecord",
|
|
283
290
|
}
|
|
@@ -20,6 +20,7 @@ from pydantic import BaseModel
|
|
|
20
20
|
from requests.utils import quote as url_quote
|
|
21
21
|
|
|
22
22
|
from metadata.generated.schema.type.basic import FullyQualifiedEntityName
|
|
23
|
+
from metadata.generated.schema.type.entityReference import EntityReference
|
|
23
24
|
|
|
24
25
|
T = TypeVar("T", bound=BaseModel)
|
|
25
26
|
|
|
@@ -85,3 +86,15 @@ def quote(fqn: Union[FullyQualifiedEntityName, str]) -> str:
|
|
|
85
86
|
E.g., `"foo.bar/baz"` -> `%22foo.bar%2Fbaz%22`
|
|
86
87
|
"""
|
|
87
88
|
return url_quote(model_str(fqn), safe="")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def build_entity_reference(entity: T) -> EntityReference:
|
|
92
|
+
"""Get the EntityReference from the Entity itself"""
|
|
93
|
+
return EntityReference(
|
|
94
|
+
id=entity.id,
|
|
95
|
+
type=get_entity_type(type(entity)),
|
|
96
|
+
name=model_str(entity.name),
|
|
97
|
+
fullyQualifiedName=model_str(entity.fullyQualifiedName),
|
|
98
|
+
description=entity.description,
|
|
99
|
+
href=entity.href,
|
|
100
|
+
)
|
|
@@ -34,7 +34,7 @@ from metadata.generated.schema.api.tests.createTestSuite import CreateTestSuiteR
|
|
|
34
34
|
from metadata.generated.schema.dataInsight.kpi.basic import KpiResult
|
|
35
35
|
from metadata.generated.schema.entity.classification.tag import Tag
|
|
36
36
|
from metadata.generated.schema.entity.data.dashboard import Dashboard
|
|
37
|
-
from metadata.generated.schema.entity.data.pipeline import PipelineStatus
|
|
37
|
+
from metadata.generated.schema.entity.data.pipeline import Pipeline, PipelineStatus
|
|
38
38
|
from metadata.generated.schema.entity.data.searchIndex import (
|
|
39
39
|
SearchIndex,
|
|
40
40
|
SearchIndexSampleData,
|
|
@@ -83,6 +83,7 @@ from metadata.ingestion.ometa.client import APIError
|
|
|
83
83
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
84
84
|
from metadata.ingestion.source.dashboard.dashboard_service import DashboardUsage
|
|
85
85
|
from metadata.ingestion.source.database.database_service import DataModelLink
|
|
86
|
+
from metadata.ingestion.source.pipeline.pipeline_service import PipelineUsage
|
|
86
87
|
from metadata.profiler.api.models import ProfilerResponse
|
|
87
88
|
from metadata.sampler.models import SamplerResponse
|
|
88
89
|
from metadata.utils.execution_time_tracker import calculate_execution_time
|
|
@@ -250,6 +251,13 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
|
|
|
250
251
|
@_run_dispatch.register
|
|
251
252
|
def write_lineage(self, add_lineage: AddLineageRequest) -> Either[Dict[str, Any]]:
|
|
252
253
|
created_lineage = self.metadata.add_lineage(add_lineage, check_patch=True)
|
|
254
|
+
if created_lineage.get("error"):
|
|
255
|
+
return Either(
|
|
256
|
+
left=StackTraceError(
|
|
257
|
+
name="AddLineageRequestError", error=created_lineage["error"]
|
|
258
|
+
)
|
|
259
|
+
)
|
|
260
|
+
|
|
253
261
|
return Either(right=created_lineage["entity"]["fullyQualifiedName"])
|
|
254
262
|
|
|
255
263
|
@_run_dispatch.register
|
|
@@ -634,6 +642,18 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
|
|
|
634
642
|
|
|
635
643
|
return Either(right=record)
|
|
636
644
|
|
|
645
|
+
@_run_dispatch.register
|
|
646
|
+
def write_pipeline_usage(self, pipeline_usage: PipelineUsage) -> Either[Pipeline]:
|
|
647
|
+
"""
|
|
648
|
+
Send a UsageRequest update to a pipeline entity
|
|
649
|
+
:param pipeline_usage: pipeline entity and usage request
|
|
650
|
+
"""
|
|
651
|
+
self.metadata.publish_pipeline_usage(
|
|
652
|
+
pipeline=pipeline_usage.pipeline,
|
|
653
|
+
pipeline_usage_request=pipeline_usage.usage,
|
|
654
|
+
)
|
|
655
|
+
return Either(right=pipeline_usage.pipeline)
|
|
656
|
+
|
|
637
657
|
def close(self):
|
|
638
658
|
"""
|
|
639
659
|
We don't have anything to close since we are using the given metadata client
|
|
@@ -198,6 +198,9 @@ class DashboardServiceTopology(ServiceTopology):
|
|
|
198
198
|
)
|
|
199
199
|
|
|
200
200
|
|
|
201
|
+
from metadata.utils.helpers import retry_with_docker_host
|
|
202
|
+
|
|
203
|
+
|
|
201
204
|
# pylint: disable=too-many-public-methods
|
|
202
205
|
class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
203
206
|
"""
|
|
@@ -216,6 +219,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
216
219
|
dashboard_source_state: Set = set()
|
|
217
220
|
datamodel_source_state: Set = set()
|
|
218
221
|
|
|
222
|
+
@retry_with_docker_host()
|
|
219
223
|
def __init__(
|
|
220
224
|
self,
|
|
221
225
|
config: WorkflowSource,
|
|
@@ -248,7 +252,9 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
248
252
|
|
|
249
253
|
@abstractmethod
|
|
250
254
|
def yield_dashboard_lineage_details(
|
|
251
|
-
self,
|
|
255
|
+
self,
|
|
256
|
+
dashboard_details: Any,
|
|
257
|
+
db_service_name: Optional[str] = None,
|
|
252
258
|
) -> Iterable[Either[AddLineageRequest]]:
|
|
253
259
|
"""
|
|
254
260
|
Get lineage between dashboard and data sources
|
|
@@ -368,6 +374,8 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
|
|
|
368
374
|
yield lineage
|
|
369
375
|
|
|
370
376
|
db_service_names = self.get_db_service_names()
|
|
377
|
+
if not db_service_names:
|
|
378
|
+
yield from self.yield_dashboard_lineage_details(dashboard_details) or []
|
|
371
379
|
for db_service_name in db_service_names or []:
|
|
372
380
|
yield from self.yield_dashboard_lineage_details(
|
|
373
381
|
dashboard_details, db_service_name
|
|
@@ -248,6 +248,8 @@ class DomodashboardSource(DashboardServiceSource):
|
|
|
248
248
|
)
|
|
249
249
|
|
|
250
250
|
def yield_dashboard_lineage_details(
|
|
251
|
-
self,
|
|
251
|
+
self,
|
|
252
|
+
dashboard_details: dict,
|
|
253
|
+
db_service_name: Optional[str] = None,
|
|
252
254
|
) -> Iterable[Either[AddLineageRequest]]:
|
|
253
255
|
"""No lineage implemented"""
|
|
@@ -176,7 +176,7 @@ class LightdashSource(DashboardServiceSource):
|
|
|
176
176
|
def yield_dashboard_lineage_details(
|
|
177
177
|
self,
|
|
178
178
|
dashboard_details: LightdashDashboard,
|
|
179
|
-
db_service_name: Optional[str],
|
|
179
|
+
db_service_name: Optional[str] = None,
|
|
180
180
|
) -> Optional[Iterable[AddLineageRequest]]:
|
|
181
181
|
"""Get lineage method
|
|
182
182
|
|
|
@@ -185,7 +185,7 @@ class LookerSource(DashboardServiceSource):
|
|
|
185
185
|
Its client uses Looker 40 from the SDK: client = looker_sdk.init40()
|
|
186
186
|
"""
|
|
187
187
|
|
|
188
|
-
# pylint: disable=too-many-instance-attributes
|
|
188
|
+
# pylint: disable=too-many-instance-attributes, too-many-public-methods
|
|
189
189
|
|
|
190
190
|
config: WorkflowSource
|
|
191
191
|
metadata: OpenMetadata
|
|
@@ -924,7 +924,9 @@ class LookerSource(DashboardServiceSource):
|
|
|
924
924
|
)
|
|
925
925
|
|
|
926
926
|
def yield_dashboard_lineage_details(
|
|
927
|
-
self,
|
|
927
|
+
self,
|
|
928
|
+
dashboard_details: LookerDashboard,
|
|
929
|
+
_: Optional[str] = None,
|
|
928
930
|
) -> Iterable[Either[AddLineageRequest]]:
|
|
929
931
|
"""
|
|
930
932
|
Get lineage between charts and data sources.
|
|
@@ -1196,3 +1198,7 @@ class LookerSource(DashboardServiceSource):
|
|
|
1196
1198
|
stackTrace=traceback.format_exc(),
|
|
1197
1199
|
)
|
|
1198
1200
|
)
|
|
1201
|
+
|
|
1202
|
+
def close(self):
|
|
1203
|
+
self.metadata.compute_percentile(Dashboard, self.today)
|
|
1204
|
+
self.metadata.close()
|