openmetadata-ingestion 1.8.9.0__py3-none-any.whl → 1.9.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- metadata/__init__.py +2 -0
- metadata/data_quality/validations/models.py +2 -2
- metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +78 -5
- metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +10 -63
- metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +4 -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 +5 -5
- 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 +6 -5
- metadata/generated/schema/api/automations/__init__.py +1 -1
- metadata/generated/schema/api/automations/createWorkflow.py +6 -5
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +6 -5
- metadata/generated/schema/api/classification/createTag.py +4 -4
- metadata/generated/schema/api/classification/loadTags.py +1 -1
- metadata/generated/schema/api/createBot.py +5 -5
- metadata/generated/schema/api/createEventPublisherJob.py +1 -1
- metadata/generated/schema/api/createType.py +6 -5
- metadata/generated/schema/api/data/__init__.py +1 -1
- metadata/generated/schema/api/data/createAPICollection.py +4 -4
- metadata/generated/schema/api/data/createAPIEndpoint.py +4 -4
- metadata/generated/schema/api/data/createChart.py +12 -4
- metadata/generated/schema/api/data/createContainer.py +4 -4
- metadata/generated/schema/api/data/createCustomProperty.py +1 -1
- metadata/generated/schema/api/data/createDashboard.py +4 -4
- metadata/generated/schema/api/data/createDashboardDataModel.py +4 -4
- metadata/generated/schema/api/data/createDataContract.py +11 -5
- metadata/generated/schema/api/data/createDatabase.py +4 -4
- metadata/generated/schema/api/data/createDatabaseSchema.py +4 -4
- metadata/generated/schema/api/data/createDirectory.py +105 -0
- metadata/generated/schema/api/data/createFile.py +104 -0
- metadata/generated/schema/api/data/createGlossary.py +4 -4
- metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
- metadata/generated/schema/api/data/createMetric.py +4 -4
- metadata/generated/schema/api/data/createMlModel.py +4 -4
- metadata/generated/schema/api/data/createPipeline.py +4 -4
- metadata/generated/schema/api/data/createQuery.py +5 -4
- metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
- metadata/generated/schema/api/data/createSearchIndex.py +4 -4
- metadata/generated/schema/api/data/createSpreadsheet.py +111 -0
- metadata/generated/schema/api/data/createStoredProcedure.py +4 -4
- metadata/generated/schema/api/data/createTable.py +5 -4
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +5 -4
- metadata/generated/schema/api/data/createWorksheet.py +105 -0
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/data/updateColumn.py +1 -1
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +5 -4
- 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 +5 -5
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +6 -5
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +4 -4
- metadata/generated/schema/api/domains/createDomain.py +1 -1
- metadata/generated/schema/api/entityRelationship/__init__.py +3 -0
- metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +12 -0
- metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +57 -0
- metadata/generated/schema/api/entityRelationship/relationshipRef.py +32 -0
- metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +47 -0
- metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +47 -0
- metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +20 -0
- 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 +6 -2
- metadata/generated/schema/api/feed/resolveTask.py +1 -1
- metadata/generated/schema/api/feed/threadCount.py +1 -1
- metadata/generated/schema/api/governance/__init__.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
- metadata/generated/schema/api/lineage/__init__.py +1 -1
- metadata/generated/schema/api/lineage/addLineage.py +1 -1
- metadata/generated/schema/api/lineage/esLineageData.py +4 -1
- metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
- metadata/generated/schema/api/lineage/nodeInformation.py +5 -2
- metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
- metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
- metadata/generated/schema/api/mcp/__init__.py +1 -1
- metadata/generated/schema/api/mcp/mcpToolDefinition.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 +6 -5
- metadata/generated/schema/api/scim/__init__.py +1 -1
- metadata/generated/schema/api/scim/scimGroup.py +1 -1
- metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
- metadata/generated/schema/api/scim/scimUser.py +1 -1
- metadata/generated/schema/api/search/__init__.py +1 -1
- metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createApiService.py +4 -4
- metadata/generated/schema/api/services/createDashboardService.py +4 -4
- metadata/generated/schema/api/services/createDatabaseService.py +4 -4
- metadata/generated/schema/api/services/createDriveService.py +58 -0
- metadata/generated/schema/api/services/createMessagingService.py +4 -4
- metadata/generated/schema/api/services/createMetadataService.py +5 -4
- metadata/generated/schema/api/services/createMlModelService.py +4 -4
- metadata/generated/schema/api/services/createPipelineService.py +4 -4
- metadata/generated/schema/api/services/createSearchService.py +4 -4
- metadata/generated/schema/api/services/createSecurityService.py +4 -4
- metadata/generated/schema/api/services/createStorageService.py +4 -4
- metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +13 -5
- metadata/generated/schema/api/setOwner.py +1 -1
- metadata/generated/schema/api/teams/__init__.py +1 -1
- metadata/generated/schema/api/teams/createPersona.py +12 -4
- metadata/generated/schema/api/teams/createRole.py +5 -4
- 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 +5 -4
- metadata/generated/schema/api/tests/createTestSuite.py +13 -5
- metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +27 -0
- metadata/generated/schema/api/validateGlossaryTagsRequest.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/supportToken.py +1 -1
- metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
- metadata/generated/schema/configuration/__init__.py +1 -1
- metadata/generated/schema/configuration/aiPlatformConfiguration.py +58 -0
- 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/cacheConfiguration.py +137 -0
- 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/entityRulesSettings.py +24 -0
- metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
- metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
- metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
- metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
- metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
- metadata/generated/schema/configuration/lineageSettings.py +1 -1
- metadata/generated/schema/configuration/loginConfiguration.py +1 -1
- metadata/generated/schema/configuration/logoConfiguration.py +1 -1
- metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
- metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
- metadata/generated/schema/configuration/opsConfig.py +1 -1
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
- metadata/generated/schema/configuration/searchSettings.py +1 -1
- metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
- metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/themeConfiguration.py +1 -1
- metadata/generated/schema/configuration/uiThemePreference.py +1 -1
- metadata/generated/schema/configuration/workflowSettings.py +1 -1
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
- metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
- metadata/generated/schema/dataInsight/custom/lineChart.py +5 -1
- metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChart.py +5 -5
- 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 +4 -4
- 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 +4 -4
- metadata/generated/schema/entity/applications/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +5 -5
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +4 -4
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +2 -2
- metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
- metadata/generated/schema/entity/applications/createAppRequest.py +6 -5
- 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 +5 -11
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +5 -4
- 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 +5 -5
- metadata/generated/schema/entity/bot.py +5 -5
- metadata/generated/schema/entity/classification/__init__.py +1 -1
- metadata/generated/schema/entity/classification/classification.py +5 -5
- metadata/generated/schema/entity/classification/tag.py +4 -4
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/apiCollection.py +4 -4
- metadata/generated/schema/entity/data/apiEndpoint.py +4 -4
- metadata/generated/schema/entity/data/chart.py +11 -4
- metadata/generated/schema/entity/data/container.py +4 -4
- metadata/generated/schema/entity/data/dashboard.py +4 -4
- metadata/generated/schema/entity/data/dashboardDataModel.py +4 -4
- metadata/generated/schema/entity/data/dataContract.py +40 -53
- metadata/generated/schema/entity/data/database.py +4 -4
- metadata/generated/schema/entity/data/databaseSchema.py +4 -4
- metadata/generated/schema/entity/data/directory.py +173 -0
- metadata/generated/schema/entity/data/file.py +184 -0
- metadata/generated/schema/entity/data/glossary.py +4 -4
- metadata/generated/schema/entity/data/glossaryTerm.py +4 -4
- metadata/generated/schema/entity/data/metric.py +4 -5
- metadata/generated/schema/entity/data/mlmodel.py +4 -4
- metadata/generated/schema/entity/data/pipeline.py +4 -4
- metadata/generated/schema/entity/data/query.py +4 -4
- metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
- metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
- metadata/generated/schema/entity/data/report.py +4 -4
- metadata/generated/schema/entity/data/searchIndex.py +4 -4
- metadata/generated/schema/entity/data/spreadsheet.py +209 -0
- metadata/generated/schema/entity/data/storedProcedure.py +4 -4
- metadata/generated/schema/entity/data/table.py +50 -4
- metadata/generated/schema/entity/data/topic.py +4 -4
- metadata/generated/schema/entity/data/worksheet.py +168 -0
- metadata/generated/schema/entity/datacontract/__init__.py +3 -0
- metadata/generated/schema/entity/datacontract/dataContractResult.py +74 -0
- metadata/generated/schema/entity/datacontract/qualityValidation.py +31 -0
- metadata/generated/schema/entity/datacontract/schemaValidation.py +31 -0
- metadata/generated/schema/entity/datacontract/semanticsValidation.py +39 -0
- metadata/generated/schema/entity/datacontract/slaValidation.py +32 -0
- metadata/generated/schema/entity/docStore/__init__.py +1 -1
- metadata/generated/schema/entity/docStore/document.py +5 -5
- metadata/generated/schema/entity/domains/__init__.py +1 -1
- metadata/generated/schema/entity/domains/dataProduct.py +5 -5
- 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 +8 -8
- 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 +4 -3
- 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 +4 -4
- metadata/generated/schema/entity/services/__init__.py +1 -1
- metadata/generated/schema/entity/services/apiService.py +4 -4
- 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/dashboard/thoughtSpotConnection.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/cassandra/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
- metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/epicConnection.py +80 -0
- 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/ssasConnection.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/drive/__init__.py +3 -0
- metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +45 -0
- metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +82 -0
- metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +79 -0
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/serviceConnection.py +4 -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 +5 -5
- metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
- metadata/generated/schema/entity/services/dashboardService.py +4 -4
- metadata/generated/schema/entity/services/databaseService.py +7 -4
- metadata/generated/schema/entity/services/driveService.py +143 -0
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +11 -4
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +4 -4
- metadata/generated/schema/entity/services/metadataService.py +4 -4
- metadata/generated/schema/entity/services/mlmodelService.py +4 -4
- metadata/generated/schema/entity/services/pipelineService.py +4 -4
- metadata/generated/schema/entity/services/searchService.py +4 -4
- metadata/generated/schema/entity/services/securityService.py +4 -4
- metadata/generated/schema/entity/services/serviceType.py +2 -1
- metadata/generated/schema/entity/services/storageService.py +4 -4
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +11 -4
- metadata/generated/schema/entity/teams/role.py +5 -5
- 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 +21 -3
- metadata/generated/schema/entity/type.py +5 -11
- 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 +5 -4
- 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 +5 -5
- metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
- metadata/generated/schema/events/failedEvent.py +1 -1
- metadata/generated/schema/events/failedEventResponse.py +1 -1
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/statusContext.py +1 -1
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionStatus.py +1 -1
- metadata/generated/schema/events/testDestinationStatus.py +1 -1
- metadata/generated/schema/governance/workflows/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +9 -1
- metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstanceState.py +5 -1
- metadata/generated/schema/jobs/__init__.py +1 -1
- metadata/generated/schema/jobs/backgroundJob.py +1 -1
- metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +25 -3
- 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/driveServiceMetadataPipeline.py +165 -0
- metadata/generated/schema/metadataIngestion/engine/__init__.py +3 -0
- metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +23 -0
- metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +43 -0
- metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.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/scim/__init__.py +1 -1
- metadata/generated/schema/scim/scimConfiguration.py +1 -1
- metadata/generated/schema/search/__init__.py +1 -1
- metadata/generated/schema/search/aggregationRequest.py +1 -1
- metadata/generated/schema/search/searchRequest.py +1 -1
- metadata/generated/schema/security/__init__.py +1 -1
- metadata/generated/schema/security/client/__init__.py +1 -1
- metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
- metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
- metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
- metadata/generated/schema/security/credentials/__init__.py +1 -1
- metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
- metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
- metadata/generated/schema/security/credentials/basicAuth.py +1 -1
- metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
- metadata/generated/schema/security/credentials/gcpValues.py +1 -1
- metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
- metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
- metadata/generated/schema/security/credentials/kubernetesCredentials.py +40 -0
- 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 +2 -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 +1 -1
- metadata/generated/schema/system/ui/page.py +5 -4
- metadata/generated/schema/system/ui/tab.py +1 -1
- metadata/generated/schema/system/ui/uiCustomization.py +9 -2
- 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 -4
- metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
- metadata/generated/schema/tests/testDefinition.py +5 -5
- metadata/generated/schema/tests/testSuite.py +11 -4
- 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 +43 -1
- metadata/generated/schema/type/bulkOperationResult.py +1 -1
- metadata/generated/schema/type/changeEvent.py +5 -7
- metadata/generated/schema/type/changeEventType.py +1 -1
- metadata/generated/schema/type/changeSummaryMap.py +1 -1
- metadata/generated/schema/type/collectionDescriptor.py +1 -1
- metadata/generated/schema/type/contractExecutionStatus.py +16 -0
- 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 → entityRelationship/__init__.py} +2 -2
- metadata/generated/schema/type/entityRelationship/nodeInformation.py +25 -0
- 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/layerPaging.py +24 -0
- metadata/generated/schema/type/lifeCycle.py +1 -1
- metadata/generated/schema/type/paging.py +1 -1
- metadata/generated/schema/type/personaPreferences.py +48 -0
- 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/api/parser.py +13 -0
- metadata/ingestion/connections/connection.py +18 -1
- metadata/ingestion/lineage/sql_lineage.py +21 -0
- metadata/ingestion/models/custom_properties.py +3 -3
- metadata/ingestion/models/patch_request.py +36 -4
- metadata/ingestion/ometa/mixins/data_contract_mixin.py +205 -0
- metadata/ingestion/ometa/mixins/patch_mixin.py +131 -55
- metadata/ingestion/ometa/ometa_api.py +4 -1
- metadata/ingestion/ometa/routes.py +32 -0
- metadata/ingestion/sink/metadata_rest.py +51 -0
- metadata/ingestion/source/api/rest/metadata.py +1 -0
- metadata/ingestion/source/connections.py +1 -1
- metadata/ingestion/source/dashboard/superset/connection.py +5 -7
- metadata/ingestion/source/dashboard/tableau/client.py +4 -4
- metadata/ingestion/source/dashboard/tableau/metadata.py +1 -0
- metadata/ingestion/source/database/datalake/connection.py +51 -73
- metadata/ingestion/source/database/datalake/metadata.py +3 -4
- metadata/ingestion/source/database/datalake/service_spec.py +2 -0
- metadata/ingestion/source/database/dbt/constants.py +17 -1
- metadata/ingestion/source/database/dbt/dbt_service.py +30 -1
- metadata/ingestion/source/database/dbt/metadata.py +135 -0
- metadata/ingestion/source/database/deltalake/clients/pyspark.py +1 -1
- metadata/ingestion/source/database/exasol/connection.py +14 -3
- metadata/ingestion/source/database/exasol/queries.py +13 -0
- metadata/ingestion/source/database/mysql/connection.py +13 -19
- metadata/ingestion/source/database/oracle/metadata.py +1 -1
- metadata/ingestion/source/database/oracle/utils.py +19 -0
- metadata/ingestion/source/database/postgres/connection.py +51 -48
- metadata/ingestion/source/database/postgres/service_spec.py +2 -0
- metadata/ingestion/source/database/sample_data.py +661 -2
- metadata/ingestion/source/database/snowflake/connection.py +196 -162
- metadata/ingestion/source/database/snowflake/service_spec.py +2 -0
- metadata/ingestion/source/database/trino/connection.py +279 -125
- metadata/ingestion/source/database/trino/service_spec.py +2 -0
- metadata/ingestion/source/database/unitycatalog/connection.py +20 -3
- metadata/ingestion/source/database/unitycatalog/queries.py +37 -1
- metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -0
- metadata/ingestion/source/database/unitycatalog/usage.py +21 -35
- metadata/ingestion/source/drive/drive_service.py +648 -0
- metadata/ingestion/source/drives/__init__.py +13 -0
- metadata/ingestion/source/pipeline/airflow/metadata.py +33 -10
- metadata/ingestion/source/pipeline/fivetran/metadata.py +2 -2
- metadata/profiler/processor/processor.py +18 -3
- metadata/profiler/source/database/base/profiler_resolver.py +5 -2
- metadata/profiler/source/database/base/profiler_source.py +8 -1
- metadata/profiler/source/profiler_source_interface.py +11 -2
- metadata/sampler/pandas/sampler.py +1 -1
- metadata/sampler/processor.py +19 -3
- metadata/sampler/sampler_interface.py +7 -0
- metadata/utils/credentials.py +35 -0
- metadata/utils/db_utils.py +4 -0
- metadata/utils/filters.py +60 -0
- metadata/utils/fqn.py +79 -0
- metadata/utils/logger.py +9 -0
- metadata/utils/metadata_service_helper.py +1 -1
- metadata/utils/secrets/kubernetes_secrets_manager.py +176 -0
- metadata/utils/secrets/secrets_manager_factory.py +3 -0
- metadata/workflow/ingestion.py +15 -2
- {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/METADATA +542 -535
- {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/RECORD +825 -780
- metadata/ingestion/source/database/extended_sample_data.py +0 -534
- {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/top_level.txt +0 -0
|
@@ -433,18 +433,41 @@ class AirflowSource(PipelineServiceSource):
|
|
|
433
433
|
- `owners`: Applied at the tasks. In Airflow's source code, DAG ownership is then a
|
|
434
434
|
list joined with the owners of all the tasks.
|
|
435
435
|
|
|
436
|
-
We will pick the owner from the tasks that appears in most tasks
|
|
436
|
+
We will pick the owner from the tasks that appears in most tasks,
|
|
437
|
+
or fall back to the default_args owner if available.
|
|
437
438
|
"""
|
|
438
439
|
try:
|
|
439
|
-
if self.source_config.includeOwners:
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
440
|
+
if not self.source_config.includeOwners:
|
|
441
|
+
return None
|
|
442
|
+
|
|
443
|
+
tasks = data.get("tasks", [])
|
|
444
|
+
task_owners = []
|
|
445
|
+
|
|
446
|
+
# Handle default_args.owner (wrapped or not)
|
|
447
|
+
default_args = data.get("default_args", {})
|
|
448
|
+
if isinstance(default_args, dict) and "__var" in default_args:
|
|
449
|
+
default_args = default_args["__var"]
|
|
450
|
+
default_owner = default_args.get("owner")
|
|
451
|
+
|
|
452
|
+
for task in tasks:
|
|
453
|
+
# Flatten serialized task
|
|
454
|
+
task_data = (
|
|
455
|
+
task.get("__var")
|
|
456
|
+
if isinstance(task, dict) and "__var" in task
|
|
457
|
+
else task
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
owner = task_data.get("owner") or default_owner
|
|
461
|
+
|
|
462
|
+
if owner:
|
|
463
|
+
task_owners.append(owner)
|
|
464
|
+
|
|
465
|
+
if task_owners:
|
|
466
|
+
most_common_owner, _ = Counter(task_owners).most_common(1)[0]
|
|
467
|
+
return most_common_owner
|
|
468
|
+
|
|
469
|
+
return default_owner
|
|
470
|
+
|
|
448
471
|
except Exception as exc:
|
|
449
472
|
self.status.warning(
|
|
450
473
|
data.get("dag_id"), f"Could not extract owner information due to {exc}"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# See the License for the specific language governing permissions and
|
|
10
10
|
# limitations under the License.
|
|
11
11
|
"""
|
|
12
|
-
|
|
12
|
+
Fivetran source to extract metadata
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
15
|
import traceback
|
|
@@ -166,7 +166,7 @@ class FivetranSource(PipelineServiceSource):
|
|
|
166
166
|
) -> Iterable[Either[AddLineageRequest]]:
|
|
167
167
|
"""
|
|
168
168
|
Parse all the stream available in the connection and create a lineage between them
|
|
169
|
-
:param pipeline_details: pipeline_details object from
|
|
169
|
+
:param pipeline_details: pipeline_details object from fivetran
|
|
170
170
|
:return: Lineage from inlets and outlets
|
|
171
171
|
"""
|
|
172
172
|
self.client = cast(FivetranClient, self.client)
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
Profiler Processor Step
|
|
13
13
|
"""
|
|
14
14
|
import traceback
|
|
15
|
-
from typing import Optional, cast
|
|
15
|
+
from typing import Optional, Type, cast
|
|
16
16
|
|
|
17
17
|
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
18
18
|
StackTraceError,
|
|
@@ -31,6 +31,11 @@ from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
|
31
31
|
from metadata.profiler.api.models import ProfilerProcessorConfig, ProfilerResponse
|
|
32
32
|
from metadata.profiler.processor.core import Profiler
|
|
33
33
|
from metadata.profiler.source.model import ProfilerSourceAndEntity
|
|
34
|
+
from metadata.utils.dependency_injector.dependency_injector import (
|
|
35
|
+
DependencyNotFoundError,
|
|
36
|
+
Inject,
|
|
37
|
+
inject,
|
|
38
|
+
)
|
|
34
39
|
|
|
35
40
|
|
|
36
41
|
class ProfilerProcessor(Processor):
|
|
@@ -39,11 +44,21 @@ class ProfilerProcessor(Processor):
|
|
|
39
44
|
the OpenMetadataSource and compute the metrics.
|
|
40
45
|
"""
|
|
41
46
|
|
|
42
|
-
|
|
47
|
+
@inject
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
50
|
+
config: OpenMetadataWorkflowConfig,
|
|
51
|
+
profiler_config_class: Inject[Type[ProfilerProcessorConfig]] = None,
|
|
52
|
+
):
|
|
53
|
+
if profiler_config_class is None:
|
|
54
|
+
raise DependencyNotFoundError(
|
|
55
|
+
"ProfilerProcessorConfig class not found. Please ensure the ProfilerProcessorConfig is properly registered."
|
|
56
|
+
)
|
|
57
|
+
|
|
43
58
|
super().__init__()
|
|
44
59
|
|
|
45
60
|
self.config = config
|
|
46
|
-
self.profiler_config =
|
|
61
|
+
self.profiler_config = profiler_config_class.model_validate(
|
|
47
62
|
self.config.processor.model_dump().get("config")
|
|
48
63
|
)
|
|
49
64
|
self.source_config: DatabaseServiceProfilerPipeline = cast(
|
|
@@ -2,6 +2,9 @@ from abc import ABC, abstractmethod
|
|
|
2
2
|
from typing import Tuple, Type
|
|
3
3
|
|
|
4
4
|
from metadata.generated.schema.entity.services.serviceType import ServiceType
|
|
5
|
+
from metadata.generated.schema.metadataIngestion.databaseServiceProfilerPipeline import (
|
|
6
|
+
ProcessingEngine,
|
|
7
|
+
)
|
|
5
8
|
from metadata.profiler.interface.profiler_interface import ProfilerInterface
|
|
6
9
|
from metadata.sampler.sampler_interface import SamplerInterface
|
|
7
10
|
from metadata.utils.service_spec.service_spec import (
|
|
@@ -16,7 +19,7 @@ class ProfilerResolver(ABC):
|
|
|
16
19
|
@staticmethod
|
|
17
20
|
@abstractmethod
|
|
18
21
|
def resolve(
|
|
19
|
-
processing_engine:
|
|
22
|
+
processing_engine: ProcessingEngine, service_type: ServiceType, source_type: str
|
|
20
23
|
) -> Tuple[Type[SamplerInterface], Type[ProfilerInterface]]:
|
|
21
24
|
"""Resolve the sampler and profiler based on the processing engine."""
|
|
22
25
|
raise NotImplementedError
|
|
@@ -27,7 +30,7 @@ class DefaultProfilerResolver(ProfilerResolver):
|
|
|
27
30
|
|
|
28
31
|
@staticmethod
|
|
29
32
|
def resolve(
|
|
30
|
-
processing_engine:
|
|
33
|
+
processing_engine: ProcessingEngine, service_type: ServiceType, source_type: str
|
|
31
34
|
) -> Tuple[Type[SamplerInterface], Type[ProfilerInterface]]:
|
|
32
35
|
"""Resolve the sampler and profiler based on the processing engine."""
|
|
33
36
|
sampler_class = import_sampler_class(service_type, source_type=source_type)
|
|
@@ -61,16 +61,23 @@ class ProfilerSource(ProfilerSourceInterface):
|
|
|
61
61
|
Base class for the profiler source
|
|
62
62
|
"""
|
|
63
63
|
|
|
64
|
+
@inject
|
|
64
65
|
def __init__(
|
|
65
66
|
self,
|
|
66
67
|
config: OpenMetadataWorkflowConfig,
|
|
67
68
|
database: Database,
|
|
68
69
|
ometa_client: OpenMetadata,
|
|
69
70
|
global_profiler_configuration: ProfilerConfiguration,
|
|
71
|
+
profiler_config_class: Inject[Type[ProfilerProcessorConfig]] = None,
|
|
70
72
|
):
|
|
73
|
+
if profiler_config_class is None:
|
|
74
|
+
raise DependencyNotFoundError(
|
|
75
|
+
"ProfilerProcessorConfig class not found. Please ensure the ProfilerProcessorConfig is properly registered."
|
|
76
|
+
)
|
|
77
|
+
|
|
71
78
|
self.config = config
|
|
72
79
|
self.service_conn_config = self._copy_service_config(config, database)
|
|
73
|
-
self.profiler_config =
|
|
80
|
+
self.profiler_config = profiler_config_class.model_validate(
|
|
74
81
|
config.processor.model_dump().get("config")
|
|
75
82
|
)
|
|
76
83
|
self.ometa_client = ometa_client
|
|
@@ -18,6 +18,11 @@ from typing import Optional
|
|
|
18
18
|
|
|
19
19
|
from metadata.generated.schema.metadataIngestion.databaseServiceProfilerPipeline import (
|
|
20
20
|
DatabaseServiceProfilerPipeline,
|
|
21
|
+
ProcessingEngine,
|
|
22
|
+
)
|
|
23
|
+
from metadata.generated.schema.metadataIngestion.engine.nativeEngineConfig import (
|
|
24
|
+
NativeEngineConfiguration,
|
|
25
|
+
Type,
|
|
21
26
|
)
|
|
22
27
|
from metadata.profiler.interface.profiler_interface import ProfilerInterface
|
|
23
28
|
|
|
@@ -43,6 +48,10 @@ class ProfilerSourceInterface(ABC):
|
|
|
43
48
|
raise NotImplementedError
|
|
44
49
|
|
|
45
50
|
@staticmethod
|
|
46
|
-
def get_processing_engine(
|
|
51
|
+
def get_processing_engine(
|
|
52
|
+
config: DatabaseServiceProfilerPipeline,
|
|
53
|
+
) -> ProcessingEngine:
|
|
47
54
|
"""Get the processing engine based on the configuration."""
|
|
48
|
-
return
|
|
55
|
+
return config.processingEngine or ProcessingEngine(
|
|
56
|
+
root=NativeEngineConfiguration(type=Type.Native)
|
|
57
|
+
)
|
metadata/sampler/processor.py
CHANGED
|
@@ -13,7 +13,7 @@ Data Sampler for the PII Workflow
|
|
|
13
13
|
"""
|
|
14
14
|
import traceback
|
|
15
15
|
from copy import deepcopy
|
|
16
|
-
from typing import Optional, cast
|
|
16
|
+
from typing import Optional, Type, cast
|
|
17
17
|
|
|
18
18
|
from metadata.generated.schema.entity.data.database import Database
|
|
19
19
|
from metadata.generated.schema.entity.data.table import Table
|
|
@@ -42,6 +42,11 @@ from metadata.sampler.config import get_config_for_table
|
|
|
42
42
|
from metadata.sampler.models import SampleConfig, SampleData, SamplerResponse
|
|
43
43
|
from metadata.sampler.sampler_interface import SamplerInterface
|
|
44
44
|
from metadata.utils.bigquery_utils import copy_service_config
|
|
45
|
+
from metadata.utils.dependency_injector.dependency_injector import (
|
|
46
|
+
DependencyNotFoundError,
|
|
47
|
+
Inject,
|
|
48
|
+
inject,
|
|
49
|
+
)
|
|
45
50
|
from metadata.utils.profiler_utils import get_context_entities
|
|
46
51
|
from metadata.utils.service_spec.service_spec import import_sampler_class
|
|
47
52
|
|
|
@@ -49,7 +54,18 @@ from metadata.utils.service_spec.service_spec import import_sampler_class
|
|
|
49
54
|
class SamplerProcessor(Processor):
|
|
50
55
|
"""Use the profiler interface to fetch the sample data"""
|
|
51
56
|
|
|
52
|
-
|
|
57
|
+
@inject
|
|
58
|
+
def __init__(
|
|
59
|
+
self,
|
|
60
|
+
config: OpenMetadataWorkflowConfig,
|
|
61
|
+
metadata: OpenMetadata,
|
|
62
|
+
profiler_config_class: Inject[Type[ProfilerProcessorConfig]] = None,
|
|
63
|
+
):
|
|
64
|
+
if profiler_config_class is None:
|
|
65
|
+
raise DependencyNotFoundError(
|
|
66
|
+
"ProfilerProcessorConfig class not found. Please ensure the ProfilerProcessorConfig is properly registered."
|
|
67
|
+
)
|
|
68
|
+
|
|
53
69
|
super().__init__()
|
|
54
70
|
|
|
55
71
|
self.config = config
|
|
@@ -60,7 +76,7 @@ class SamplerProcessor(Processor):
|
|
|
60
76
|
self.config.source.sourceConfig.config,
|
|
61
77
|
) # Used to satisfy type checked
|
|
62
78
|
# We still rely on the orm-processor. We should decouple this in the future
|
|
63
|
-
self.profiler_config =
|
|
79
|
+
self.profiler_config = profiler_config_class.model_validate(
|
|
64
80
|
self.config.processor.model_dump().get("config")
|
|
65
81
|
)
|
|
66
82
|
|
|
@@ -30,6 +30,9 @@ from metadata.generated.schema.entity.services.connections.database.datalakeConn
|
|
|
30
30
|
DatalakeConnection,
|
|
31
31
|
)
|
|
32
32
|
from metadata.generated.schema.entity.services.databaseService import DatabaseConnection
|
|
33
|
+
from metadata.generated.schema.metadataIngestion.databaseServiceProfilerPipeline import (
|
|
34
|
+
ProcessingEngine,
|
|
35
|
+
)
|
|
33
36
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
34
37
|
from metadata.profiler.api.models import TableConfig
|
|
35
38
|
from metadata.profiler.processor.sample_data_handler import upload_sample_data
|
|
@@ -70,6 +73,7 @@ class SamplerInterface(ABC):
|
|
|
70
73
|
sample_query: Optional[str] = None,
|
|
71
74
|
storage_config: Optional[DataStorageConfig] = None,
|
|
72
75
|
sample_data_count: Optional[int] = SAMPLE_DATA_DEFAULT_COUNT,
|
|
76
|
+
processing_engine: Optional[ProcessingEngine] = None,
|
|
73
77
|
**__,
|
|
74
78
|
):
|
|
75
79
|
self.ometa_client = ometa_client
|
|
@@ -84,6 +88,7 @@ class SamplerInterface(ABC):
|
|
|
84
88
|
self.sample_limit = sample_data_count
|
|
85
89
|
self.partition_details = partition_details
|
|
86
90
|
self.storage_config = storage_config
|
|
91
|
+
self.processing_engine = processing_engine
|
|
87
92
|
|
|
88
93
|
self.service_connection_config = service_connection_config
|
|
89
94
|
self.connection = get_ssl_connection(self.service_connection_config)
|
|
@@ -101,6 +106,7 @@ class SamplerInterface(ABC):
|
|
|
101
106
|
storage_config: Optional[DataStorageConfig] = None,
|
|
102
107
|
default_sample_config: Optional[SampleConfig] = None,
|
|
103
108
|
default_sample_data_count: int = SAMPLE_DATA_DEFAULT_COUNT,
|
|
109
|
+
processing_engine: Optional[ProcessingEngine] = None,
|
|
104
110
|
**kwargs,
|
|
105
111
|
) -> "SamplerInterface":
|
|
106
112
|
"""Create sampler"""
|
|
@@ -137,6 +143,7 @@ class SamplerInterface(ABC):
|
|
|
137
143
|
sample_query=sample_query,
|
|
138
144
|
storage_config=storage_config,
|
|
139
145
|
sample_data_count=sample_data_count,
|
|
146
|
+
processing_engine=processing_engine,
|
|
140
147
|
**kwargs,
|
|
141
148
|
)
|
|
142
149
|
|
metadata/utils/credentials.py
CHANGED
|
@@ -21,6 +21,10 @@ from cryptography.hazmat.primitives import serialization
|
|
|
21
21
|
from google import auth
|
|
22
22
|
from google.auth import impersonated_credentials
|
|
23
23
|
|
|
24
|
+
from metadata.clients.azure_client import AzureClient
|
|
25
|
+
from metadata.generated.schema.entity.services.connections.database.common.azureConfig import (
|
|
26
|
+
AzureConfigurationSource,
|
|
27
|
+
)
|
|
24
28
|
from metadata.generated.schema.security.credentials.gcpCredentials import (
|
|
25
29
|
GcpADC,
|
|
26
30
|
GCPCredentials,
|
|
@@ -237,3 +241,34 @@ def get_gcp_impersonate_credentials(
|
|
|
237
241
|
target_scopes=scopes,
|
|
238
242
|
lifetime=lifetime,
|
|
239
243
|
)
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def get_azure_access_token(azure_config: AzureConfigurationSource) -> str:
|
|
247
|
+
"""
|
|
248
|
+
Get Azure access token using the provided Azure configuration.
|
|
249
|
+
|
|
250
|
+
Args:
|
|
251
|
+
azure_config: Azure configuration containing the necessary credentials and scopes
|
|
252
|
+
|
|
253
|
+
Returns:
|
|
254
|
+
str: The access token
|
|
255
|
+
|
|
256
|
+
Raises:
|
|
257
|
+
ValueError: If Azure config is missing or scopes are not provided
|
|
258
|
+
"""
|
|
259
|
+
if not azure_config.azureConfig:
|
|
260
|
+
raise ValueError("Azure Config is missing")
|
|
261
|
+
|
|
262
|
+
if not azure_config.azureConfig.scopes:
|
|
263
|
+
raise ValueError(
|
|
264
|
+
"Azure Scopes are missing, please refer https://learn.microsoft.com/"
|
|
265
|
+
"en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-microsoft-entra-access-token "
|
|
266
|
+
"and fetch the resource associated with it, for e.g. https://ossrdbms-aad.database.windows.net/.default"
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
azure_client = AzureClient(azure_config.azureConfig).create_client()
|
|
270
|
+
access_token_obj = azure_client.get_token(
|
|
271
|
+
*azure_config.azureConfig.scopes.split(",")
|
|
272
|
+
)
|
|
273
|
+
|
|
274
|
+
return access_token_obj.token
|
metadata/utils/db_utils.py
CHANGED
|
@@ -60,6 +60,7 @@ def get_view_lineage(
|
|
|
60
60
|
table_name = view.table_name
|
|
61
61
|
schema_name = view.schema_name
|
|
62
62
|
db_name = view.db_name
|
|
63
|
+
schema_fallback = False
|
|
63
64
|
view_definition = view.view_definition
|
|
64
65
|
table_fqn = fqn.build(
|
|
65
66
|
metadata,
|
|
@@ -88,6 +89,7 @@ def get_view_lineage(
|
|
|
88
89
|
if table_entity.serviceType == DatabaseServiceType.Postgres:
|
|
89
90
|
# For Postgres, if schema is not defined, we need to use the public schema
|
|
90
91
|
schema_name = PUBLIC_SCHEMA
|
|
92
|
+
schema_fallback = True
|
|
91
93
|
|
|
92
94
|
if lineage_parser.source_tables and lineage_parser.target_tables:
|
|
93
95
|
yield from get_lineage_by_query(
|
|
@@ -99,6 +101,7 @@ def get_view_lineage(
|
|
|
99
101
|
dialect=dialect,
|
|
100
102
|
timeout_seconds=timeout_seconds,
|
|
101
103
|
lineage_source=LineageSource.ViewLineage,
|
|
104
|
+
schema_fallback=schema_fallback,
|
|
102
105
|
) or []
|
|
103
106
|
|
|
104
107
|
else:
|
|
@@ -112,6 +115,7 @@ def get_view_lineage(
|
|
|
112
115
|
dialect=dialect,
|
|
113
116
|
timeout_seconds=timeout_seconds,
|
|
114
117
|
lineage_source=LineageSource.ViewLineage,
|
|
118
|
+
schema_fallback=schema_fallback,
|
|
115
119
|
) or []
|
|
116
120
|
except Exception as exc:
|
|
117
121
|
logger.debug(traceback.format_exc())
|
metadata/utils/filters.py
CHANGED
|
@@ -338,3 +338,63 @@ def filter_by_tag(tag_pattern: Optional[FilterPattern], tag_name: str) -> bool:
|
|
|
338
338
|
:return: True for filtering, False otherwise
|
|
339
339
|
"""
|
|
340
340
|
return _filter(tag_pattern, tag_name)
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
def filter_by_spreadsheet(
|
|
344
|
+
spreadsheet_filter_pattern: Optional[FilterPattern], spreadsheet_name: str
|
|
345
|
+
) -> bool:
|
|
346
|
+
"""
|
|
347
|
+
Return True if the spreadsheet needs to be filtered, False otherwise
|
|
348
|
+
|
|
349
|
+
Include takes precedence over exclude
|
|
350
|
+
|
|
351
|
+
:param spreadsheet_filter_pattern: Model defining spreadsheet filtering logic
|
|
352
|
+
:param spreadsheet_name: spreadsheet name
|
|
353
|
+
:return: True for filtering, False otherwise
|
|
354
|
+
"""
|
|
355
|
+
return _filter(spreadsheet_filter_pattern, spreadsheet_name)
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
def filter_by_directory(
|
|
359
|
+
directory_filter_pattern: Optional[FilterPattern], directory_name: str
|
|
360
|
+
) -> bool:
|
|
361
|
+
"""
|
|
362
|
+
Return True if the directory needs to be filtered, False otherwise
|
|
363
|
+
|
|
364
|
+
Include takes precedence over exclude
|
|
365
|
+
|
|
366
|
+
:param directory_filter_pattern: Model defining directory filtering logic
|
|
367
|
+
:param directory_name: directory name
|
|
368
|
+
:return: True for filtering, False otherwise
|
|
369
|
+
"""
|
|
370
|
+
return _filter(directory_filter_pattern, directory_name)
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
def filter_by_file(
|
|
374
|
+
file_filter_pattern: Optional[FilterPattern], file_name: str
|
|
375
|
+
) -> bool:
|
|
376
|
+
"""
|
|
377
|
+
Return True if the file needs to be filtered, False otherwise
|
|
378
|
+
|
|
379
|
+
Include takes precedence over exclude
|
|
380
|
+
|
|
381
|
+
:param file_filter_pattern: Model defining file filtering logic
|
|
382
|
+
:param file_name: file name
|
|
383
|
+
:return: True for filtering, False otherwise
|
|
384
|
+
"""
|
|
385
|
+
return _filter(file_filter_pattern, file_name)
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
def filter_by_worksheet(
|
|
389
|
+
worksheet_filter_pattern: Optional[FilterPattern], worksheet_name: str
|
|
390
|
+
) -> bool:
|
|
391
|
+
"""
|
|
392
|
+
Return True if the worksheet needs to be filtered, False otherwise
|
|
393
|
+
|
|
394
|
+
Include takes precedence over exclude
|
|
395
|
+
|
|
396
|
+
:param worksheet_filter_pattern: Model defining worksheet filtering logic
|
|
397
|
+
:param worksheet_name: worksheet name
|
|
398
|
+
:return: True for filtering, False otherwise
|
|
399
|
+
"""
|
|
400
|
+
return _filter(worksheet_filter_pattern, worksheet_name)
|
metadata/utils/fqn.py
CHANGED
|
@@ -34,13 +34,18 @@ from metadata.generated.schema.entity.data.dashboard import Dashboard
|
|
|
34
34
|
from metadata.generated.schema.entity.data.dashboardDataModel import DashboardDataModel
|
|
35
35
|
from metadata.generated.schema.entity.data.database import Database
|
|
36
36
|
from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
|
|
37
|
+
from metadata.generated.schema.entity.data.directory import Directory
|
|
38
|
+
from metadata.generated.schema.entity.data.file import File
|
|
37
39
|
from metadata.generated.schema.entity.data.mlmodel import MlModel
|
|
38
40
|
from metadata.generated.schema.entity.data.pipeline import Pipeline
|
|
39
41
|
from metadata.generated.schema.entity.data.query import Query
|
|
40
42
|
from metadata.generated.schema.entity.data.searchIndex import SearchIndex
|
|
43
|
+
from metadata.generated.schema.entity.data.spreadsheet import Spreadsheet
|
|
41
44
|
from metadata.generated.schema.entity.data.storedProcedure import StoredProcedure
|
|
42
45
|
from metadata.generated.schema.entity.data.table import Column, DataModel, Table
|
|
43
46
|
from metadata.generated.schema.entity.data.topic import Topic
|
|
47
|
+
from metadata.generated.schema.entity.data.worksheet import Worksheet
|
|
48
|
+
from metadata.generated.schema.entity.services.driveService import DriveService
|
|
44
49
|
from metadata.generated.schema.entity.teams.team import Team
|
|
45
50
|
from metadata.generated.schema.entity.teams.user import User
|
|
46
51
|
from metadata.generated.schema.tests.testCase import TestCase
|
|
@@ -545,6 +550,80 @@ def _(
|
|
|
545
550
|
return _build(service_name, query_checksum)
|
|
546
551
|
|
|
547
552
|
|
|
553
|
+
@fqn_build_registry.add(DriveService)
|
|
554
|
+
def _(
|
|
555
|
+
_: Optional[OpenMetadata], # ES Index not necessary for dashboard FQN building
|
|
556
|
+
*,
|
|
557
|
+
service_name: str,
|
|
558
|
+
) -> str:
|
|
559
|
+
return _build(service_name)
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
@fqn_build_registry.add(Directory)
|
|
563
|
+
def _(
|
|
564
|
+
_: Optional[OpenMetadata], # ES Index not necessary for directory FQN building
|
|
565
|
+
*,
|
|
566
|
+
service_name: str,
|
|
567
|
+
directory_path: List[str],
|
|
568
|
+
) -> str:
|
|
569
|
+
if not service_name:
|
|
570
|
+
raise FQNBuildingException(
|
|
571
|
+
f"Service name should be informed, but got service=`{service_name}`"
|
|
572
|
+
)
|
|
573
|
+
|
|
574
|
+
if not directory_path:
|
|
575
|
+
raise FQNBuildingException("Directory path should not be empty")
|
|
576
|
+
|
|
577
|
+
return _build(service_name, *directory_path)
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
@fqn_build_registry.add(File)
|
|
581
|
+
def _(
|
|
582
|
+
_: Optional[OpenMetadata], # ES Index not necessary for file FQN building
|
|
583
|
+
*,
|
|
584
|
+
service_name: str,
|
|
585
|
+
directory_path: List[str],
|
|
586
|
+
file_name: str,
|
|
587
|
+
) -> str:
|
|
588
|
+
if not service_name or not file_name:
|
|
589
|
+
raise FQNBuildingException(
|
|
590
|
+
f"Args should be informed, but got service=`{service_name}`, file=`{file_name}`"
|
|
591
|
+
)
|
|
592
|
+
if not directory_path:
|
|
593
|
+
raise FQNBuildingException("Directory path should not be empty")
|
|
594
|
+
return _build(service_name, *directory_path, file_name)
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
@fqn_build_registry.add(Worksheet)
|
|
598
|
+
def _(
|
|
599
|
+
_: Optional[OpenMetadata], # ES Index not necessary for dashboard FQN building
|
|
600
|
+
*,
|
|
601
|
+
service_name: str,
|
|
602
|
+
spreadsheet_name: str,
|
|
603
|
+
worksheet_name: str,
|
|
604
|
+
) -> str:
|
|
605
|
+
if not service_name or not spreadsheet_name or not worksheet_name:
|
|
606
|
+
raise FQNBuildingException(
|
|
607
|
+
f"Args should be informed, but got service=`{service_name}`, "
|
|
608
|
+
f"spreadsheet=`{spreadsheet_name}`, worksheet=`{worksheet_name}``"
|
|
609
|
+
)
|
|
610
|
+
return _build(service_name, spreadsheet_name, worksheet_name)
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
@fqn_build_registry.add(Spreadsheet)
|
|
614
|
+
def _(
|
|
615
|
+
_: Optional[OpenMetadata], # ES Index not necessary for dashboard FQN building
|
|
616
|
+
*,
|
|
617
|
+
service_name: str,
|
|
618
|
+
spreadsheet_name: str,
|
|
619
|
+
) -> str:
|
|
620
|
+
if not service_name or not spreadsheet_name:
|
|
621
|
+
raise FQNBuildingException(
|
|
622
|
+
f"Args should be informed, but got service=`{service_name}`, spreadsheet=`{spreadsheet_name}``"
|
|
623
|
+
)
|
|
624
|
+
return _build(service_name, spreadsheet_name)
|
|
625
|
+
|
|
626
|
+
|
|
548
627
|
def split_table_name(table_name: str) -> Dict[str, Optional[str]]:
|
|
549
628
|
"""
|
|
550
629
|
Given a table name, try to extract database, schema and
|
metadata/utils/logger.py
CHANGED
|
@@ -25,6 +25,9 @@ from metadata.data_quality.api.models import (
|
|
|
25
25
|
TestCaseResults,
|
|
26
26
|
)
|
|
27
27
|
from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
|
|
28
|
+
from metadata.generated.schema.entity.datacontract.dataContractResult import (
|
|
29
|
+
DataContractResult,
|
|
30
|
+
)
|
|
28
31
|
from metadata.generated.schema.type.queryParserData import QueryParserData
|
|
29
32
|
from metadata.generated.schema.type.tableQuery import TableQueries
|
|
30
33
|
from metadata.ingestion.api.models import Entity
|
|
@@ -301,6 +304,12 @@ def _(record: QueryParserData) -> str:
|
|
|
301
304
|
return f"Usage ParsedData [{len(record.parsedData)}]"
|
|
302
305
|
|
|
303
306
|
|
|
307
|
+
@get_log_name.register
|
|
308
|
+
def _(record: DataContractResult) -> str:
|
|
309
|
+
"""Get the log of the DataContractResult"""
|
|
310
|
+
return f"DataContractResult for [{record.dataContractFQN.root}]; status: {record.contractExecutionStatus.value}]"
|
|
311
|
+
|
|
312
|
+
|
|
304
313
|
def redacted_config(config: Dict[str, Union[str, dict]]) -> Dict[str, Union[str, dict]]:
|
|
305
314
|
config_copy = deepcopy(config)
|
|
306
315
|
|