openmetadata-ingestion 1.7.0.1__py3-none-any.whl → 1.7.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of openmetadata-ingestion might be problematic. Click here for more details.

Files changed (780) hide show
  1. metadata/applications/example.py +74 -0
  2. metadata/cli/classify.py +2 -4
  3. metadata/cli/common.py +26 -0
  4. metadata/cli/dataquality.py +2 -4
  5. metadata/cli/ingest.py +2 -4
  6. metadata/cli/profile.py +2 -4
  7. metadata/cli/usage.py +2 -4
  8. metadata/data_quality/source/test_suite.py +11 -1
  9. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +14 -2
  10. metadata/data_quality/validations/column/sqlalchemy/columnValuesToMatchRegex.py +1 -1
  11. metadata/data_quality/validations/models.py +3 -0
  12. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +120 -0
  13. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +61 -47
  14. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +24 -0
  15. metadata/examples/workflows/tableau.yaml +0 -3
  16. metadata/generated/schema/analytics/__init__.py +1 -1
  17. metadata/generated/schema/analytics/basic.py +1 -1
  18. metadata/generated/schema/analytics/reportData.py +1 -1
  19. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  20. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  21. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  22. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  23. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  24. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  25. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  26. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  27. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  28. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  29. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  30. metadata/generated/schema/api/__init__.py +1 -1
  31. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  32. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  33. metadata/generated/schema/api/analytics/__init__.py +1 -1
  34. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  35. metadata/generated/schema/api/automations/__init__.py +1 -1
  36. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  37. metadata/generated/schema/api/bulkAssets.py +1 -1
  38. metadata/generated/schema/api/classification/__init__.py +1 -1
  39. metadata/generated/schema/api/classification/createClassification.py +1 -1
  40. metadata/generated/schema/api/classification/createTag.py +1 -1
  41. metadata/generated/schema/api/classification/loadTags.py +1 -1
  42. metadata/generated/schema/api/createBot.py +1 -1
  43. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  44. metadata/generated/schema/api/createType.py +1 -1
  45. metadata/generated/schema/api/data/__init__.py +1 -1
  46. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  47. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  48. metadata/generated/schema/api/data/createChart.py +1 -1
  49. metadata/generated/schema/api/data/createContainer.py +1 -1
  50. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  51. metadata/generated/schema/api/data/createDashboard.py +1 -1
  52. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  53. metadata/generated/schema/api/data/createDatabase.py +1 -1
  54. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  55. metadata/generated/schema/api/data/createGlossary.py +1 -1
  56. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  57. metadata/generated/schema/api/data/createMetric.py +1 -1
  58. metadata/generated/schema/api/data/createMlModel.py +1 -1
  59. metadata/generated/schema/api/data/createPipeline.py +1 -1
  60. metadata/generated/schema/api/data/createQuery.py +1 -1
  61. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  62. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  63. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  64. metadata/generated/schema/api/data/createTable.py +1 -1
  65. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  66. metadata/generated/schema/api/data/createTopic.py +1 -1
  67. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  68. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  69. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  70. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  71. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  72. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  73. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  74. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  75. metadata/generated/schema/api/docStore/__init__.py +1 -1
  76. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  77. metadata/generated/schema/api/domains/__init__.py +1 -1
  78. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  79. metadata/generated/schema/api/domains/createDomain.py +1 -1
  80. metadata/generated/schema/api/feed/__init__.py +1 -1
  81. metadata/generated/schema/api/feed/closeTask.py +1 -1
  82. metadata/generated/schema/api/feed/createPost.py +1 -1
  83. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  84. metadata/generated/schema/api/feed/createThread.py +1 -1
  85. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  86. metadata/generated/schema/api/feed/threadCount.py +1 -1
  87. metadata/generated/schema/api/governance/__init__.py +1 -1
  88. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  89. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  90. metadata/generated/schema/api/lineage/__init__.py +1 -1
  91. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  92. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  93. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  94. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  95. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  96. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  97. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  98. metadata/generated/schema/api/policies/__init__.py +1 -1
  99. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  100. metadata/generated/schema/api/search/__init__.py +1 -1
  101. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  102. metadata/generated/schema/api/services/__init__.py +1 -1
  103. metadata/generated/schema/api/services/createApiService.py +1 -1
  104. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  105. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  106. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  107. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  108. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  109. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  110. metadata/generated/schema/api/services/createSearchService.py +1 -1
  111. metadata/generated/schema/api/services/createStorageService.py +1 -1
  112. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  113. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +8 -1
  114. metadata/generated/schema/api/setOwner.py +1 -1
  115. metadata/generated/schema/api/teams/__init__.py +1 -1
  116. metadata/generated/schema/api/teams/createPersona.py +1 -1
  117. metadata/generated/schema/api/teams/createRole.py +1 -1
  118. metadata/generated/schema/api/teams/createTeam.py +1 -1
  119. metadata/generated/schema/api/teams/createUser.py +1 -1
  120. metadata/generated/schema/api/tests/__init__.py +1 -1
  121. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  122. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  123. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  124. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  125. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  126. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  127. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  128. metadata/generated/schema/api/voteRequest.py +1 -1
  129. metadata/generated/schema/auth/__init__.py +1 -1
  130. metadata/generated/schema/auth/basicAuth.py +1 -1
  131. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  132. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  133. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  134. metadata/generated/schema/auth/emailRequest.py +1 -1
  135. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  136. metadata/generated/schema/auth/generateToken.py +1 -1
  137. metadata/generated/schema/auth/jwtAuth.py +1 -1
  138. metadata/generated/schema/auth/loginRequest.py +1 -1
  139. metadata/generated/schema/auth/logoutRequest.py +1 -1
  140. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  141. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  142. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  143. metadata/generated/schema/auth/refreshToken.py +1 -1
  144. metadata/generated/schema/auth/registrationRequest.py +1 -1
  145. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  146. metadata/generated/schema/auth/revokeToken.py +1 -1
  147. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  148. metadata/generated/schema/auth/ssoAuth.py +1 -1
  149. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  150. metadata/generated/schema/configuration/__init__.py +1 -1
  151. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  153. metadata/generated/schema/configuration/authConfig.py +1 -1
  154. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  155. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  159. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  165. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  166. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  167. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  168. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  169. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  170. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  172. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +3 -2
  175. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  176. metadata/generated/schema/configuration/opsConfig.py +1 -1
  177. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/searchSettings.py +1 -1
  180. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  182. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  183. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  184. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  185. metadata/generated/schema/configuration/workflowSettings.py +3 -3
  186. metadata/generated/schema/dataInsight/__init__.py +1 -1
  187. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  188. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  189. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  190. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  191. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  192. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  193. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  194. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  195. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  196. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  197. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  198. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  199. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  200. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  201. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  202. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  203. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  204. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  205. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  206. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  207. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  208. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  209. metadata/generated/schema/email/__init__.py +1 -1
  210. metadata/generated/schema/email/emailRequest.py +1 -1
  211. metadata/generated/schema/email/emailTemplate.py +1 -1
  212. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  213. metadata/generated/schema/email/smtpSettings.py +1 -1
  214. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  215. metadata/generated/schema/entity/__init__.py +1 -1
  216. metadata/generated/schema/entity/applications/__init__.py +1 -1
  217. metadata/generated/schema/entity/applications/app.py +4 -3
  218. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  219. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +10 -4
  222. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  226. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  232. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  234. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +3 -1
  250. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +18 -0
  253. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  260. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  261. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  262. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  263. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  264. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +5 -2
  265. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +12 -2
  266. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  267. metadata/generated/schema/entity/automations/__init__.py +1 -1
  268. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  269. metadata/generated/schema/entity/automations/workflow.py +1 -1
  270. metadata/generated/schema/entity/bot.py +1 -1
  271. metadata/generated/schema/entity/classification/__init__.py +1 -1
  272. metadata/generated/schema/entity/classification/classification.py +1 -1
  273. metadata/generated/schema/entity/classification/tag.py +1 -1
  274. metadata/generated/schema/entity/data/__init__.py +1 -1
  275. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  276. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  277. metadata/generated/schema/entity/data/chart.py +1 -1
  278. metadata/generated/schema/entity/data/container.py +1 -1
  279. metadata/generated/schema/entity/data/dashboard.py +1 -1
  280. metadata/generated/schema/entity/data/dashboardDataModel.py +2 -1
  281. metadata/generated/schema/entity/data/database.py +5 -1
  282. metadata/generated/schema/entity/data/databaseSchema.py +5 -1
  283. metadata/generated/schema/entity/data/glossary.py +1 -1
  284. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  285. metadata/generated/schema/entity/data/metric.py +1 -1
  286. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  287. metadata/generated/schema/entity/data/pipeline.py +1 -1
  288. metadata/generated/schema/entity/data/query.py +1 -1
  289. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  290. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  291. metadata/generated/schema/entity/data/report.py +1 -1
  292. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  293. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  294. metadata/generated/schema/entity/data/table.py +1 -1
  295. metadata/generated/schema/entity/data/topic.py +1 -1
  296. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  297. metadata/generated/schema/entity/docStore/document.py +1 -1
  298. metadata/generated/schema/entity/domains/__init__.py +1 -1
  299. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  300. metadata/generated/schema/entity/domains/domain.py +1 -1
  301. metadata/generated/schema/entity/events/__init__.py +1 -1
  302. metadata/generated/schema/entity/events/webhook.py +1 -1
  303. metadata/generated/schema/entity/feed/__init__.py +1 -1
  304. metadata/generated/schema/entity/feed/assets.py +1 -1
  305. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  306. metadata/generated/schema/entity/feed/description.py +1 -1
  307. metadata/generated/schema/entity/feed/domain.py +1 -1
  308. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  309. metadata/generated/schema/entity/feed/owner.py +1 -1
  310. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  311. metadata/generated/schema/entity/feed/tag.py +1 -1
  312. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  313. metadata/generated/schema/entity/feed/thread.py +1 -1
  314. metadata/generated/schema/entity/policies/__init__.py +1 -1
  315. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  316. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  317. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  318. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  319. metadata/generated/schema/entity/policies/filters.py +1 -1
  320. metadata/generated/schema/entity/policies/policy.py +1 -1
  321. metadata/generated/schema/entity/services/__init__.py +1 -1
  322. metadata/generated/schema/entity/services/apiService.py +5 -1
  323. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  324. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  325. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  327. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  328. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  329. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  330. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  331. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  342. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  343. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  344. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  345. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  346. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +2 -11
  353. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +9 -1
  403. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  424. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  430. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  431. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  438. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  444. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  458. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  459. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  461. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  462. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  463. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  470. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  472. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  473. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  474. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  478. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  483. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  484. metadata/generated/schema/entity/services/dashboardService.py +5 -1
  485. metadata/generated/schema/entity/services/databaseService.py +5 -1
  486. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  487. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +12 -1
  488. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  489. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  490. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  491. metadata/generated/schema/entity/services/messagingService.py +5 -1
  492. metadata/generated/schema/entity/services/metadataService.py +5 -1
  493. metadata/generated/schema/entity/services/mlmodelService.py +5 -1
  494. metadata/generated/schema/entity/services/pipelineService.py +5 -1
  495. metadata/generated/schema/entity/services/searchService.py +5 -1
  496. metadata/generated/schema/entity/services/serviceType.py +1 -1
  497. metadata/generated/schema/entity/services/storageService.py +5 -1
  498. metadata/generated/schema/entity/teams/__init__.py +1 -1
  499. metadata/generated/schema/entity/teams/persona.py +1 -1
  500. metadata/generated/schema/entity/teams/role.py +1 -1
  501. metadata/generated/schema/entity/teams/team.py +1 -1
  502. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  503. metadata/generated/schema/entity/teams/user.py +1 -1
  504. metadata/generated/schema/entity/type.py +1 -1
  505. metadata/generated/schema/entity/utils/__init__.py +1 -1
  506. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  507. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  508. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  509. metadata/generated/schema/events/__init__.py +1 -1
  510. metadata/generated/schema/events/alertMetrics.py +1 -1
  511. metadata/generated/schema/events/api/__init__.py +1 -1
  512. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  513. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  514. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  515. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  516. metadata/generated/schema/events/api/typedEvent.py +1 -1
  517. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  518. metadata/generated/schema/events/eventFilterRule.py +1 -1
  519. metadata/generated/schema/events/eventSubscription.py +1 -1
  520. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  521. metadata/generated/schema/events/failedEvent.py +1 -1
  522. metadata/generated/schema/events/failedEventResponse.py +1 -1
  523. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  524. metadata/generated/schema/events/statusContext.py +1 -1
  525. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  526. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  527. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  528. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  529. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  530. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  531. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  532. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  533. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  534. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  535. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  536. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  537. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  538. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  539. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  540. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  541. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  542. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  543. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  544. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  545. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  546. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  547. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  548. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  549. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  550. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  551. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  552. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  553. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  554. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  555. metadata/generated/schema/jobs/__init__.py +1 -1
  556. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  557. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  558. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  559. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  560. metadata/generated/schema/metadataIngestion/application.py +1 -1
  561. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  562. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  563. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  564. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  565. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  566. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  567. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  569. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  571. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  572. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  573. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  574. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  575. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  576. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  577. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  578. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  579. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  580. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  581. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  582. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  583. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  584. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  585. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  586. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  587. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  588. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  589. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  590. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  591. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  592. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  593. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  594. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  595. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  596. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  597. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  598. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  599. metadata/generated/schema/metadataIngestion/workflow.py +8 -1
  600. metadata/generated/schema/monitoring/__init__.py +1 -1
  601. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  602. metadata/generated/schema/search/__init__.py +1 -1
  603. metadata/generated/schema/search/aggregationRequest.py +1 -1
  604. metadata/generated/schema/search/searchRequest.py +1 -1
  605. metadata/generated/schema/security/__init__.py +1 -1
  606. metadata/generated/schema/security/client/__init__.py +1 -1
  607. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  608. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  609. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  610. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  611. metadata/generated/schema/security/client/oidcClientConfig.py +4 -1
  612. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  613. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  614. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  615. metadata/generated/schema/security/credentials/__init__.py +1 -1
  616. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  617. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  618. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  619. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  620. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  621. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  622. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  623. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  624. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  625. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  626. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  627. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  628. metadata/generated/schema/security/sasl/__init__.py +1 -1
  629. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  630. metadata/generated/schema/security/secrets/__init__.py +1 -1
  631. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  632. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  633. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  634. metadata/generated/schema/security/securityConfiguration.py +1 -1
  635. metadata/generated/schema/security/ssl/__init__.py +1 -1
  636. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  637. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  638. metadata/generated/schema/settings/__init__.py +1 -1
  639. metadata/generated/schema/settings/settings.py +1 -1
  640. metadata/generated/schema/system/__init__.py +1 -1
  641. metadata/generated/schema/system/entityError.py +1 -1
  642. metadata/generated/schema/system/eventPublisherJob.py +17 -5
  643. metadata/generated/schema/system/indexingError.py +1 -1
  644. metadata/generated/schema/system/limitsResponse.py +1 -1
  645. metadata/generated/schema/system/ui/__init__.py +1 -1
  646. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  647. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  648. metadata/generated/schema/system/ui/page.py +1 -1
  649. metadata/generated/schema/system/ui/tab.py +1 -1
  650. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  651. metadata/generated/schema/system/validationResponse.py +1 -1
  652. metadata/generated/schema/tests/__init__.py +1 -1
  653. metadata/generated/schema/tests/assigned.py +1 -1
  654. metadata/generated/schema/tests/basic.py +20 -20
  655. metadata/generated/schema/tests/customMetric.py +1 -1
  656. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  657. metadata/generated/schema/tests/resolved.py +1 -1
  658. metadata/generated/schema/tests/testCase.py +1 -1
  659. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  660. metadata/generated/schema/tests/testDefinition.py +1 -1
  661. metadata/generated/schema/tests/testSuite.py +1 -1
  662. metadata/generated/schema/type/__init__.py +1 -1
  663. metadata/generated/schema/type/apiSchema.py +1 -1
  664. metadata/generated/schema/type/assetCertification.py +1 -1
  665. metadata/generated/schema/type/auditLog.py +1 -1
  666. metadata/generated/schema/type/basic.py +1 -1
  667. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  668. metadata/generated/schema/type/changeEvent.py +1 -1
  669. metadata/generated/schema/type/changeEventType.py +1 -1
  670. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  671. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  672. metadata/generated/schema/type/csvDocumentation.py +1 -1
  673. metadata/generated/schema/type/csvErrorType.py +1 -1
  674. metadata/generated/schema/type/csvFile.py +1 -1
  675. metadata/generated/schema/type/csvImportResult.py +1 -1
  676. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  677. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  678. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  679. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  680. metadata/generated/schema/type/customProperty.py +1 -1
  681. metadata/generated/schema/type/dailyCount.py +1 -1
  682. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  683. metadata/generated/schema/type/entityHierarchy.py +1 -1
  684. metadata/generated/schema/type/entityHistory.py +1 -1
  685. metadata/generated/schema/type/entityLineage.py +1 -1
  686. metadata/generated/schema/type/entityReference.py +1 -1
  687. metadata/generated/schema/type/entityReferenceList.py +1 -1
  688. metadata/generated/schema/type/entityRelationship.py +1 -1
  689. metadata/generated/schema/type/entityUsage.py +1 -1
  690. metadata/generated/schema/type/filterPattern.py +1 -1
  691. metadata/generated/schema/type/function.py +1 -1
  692. metadata/generated/schema/type/include.py +1 -1
  693. metadata/generated/schema/type/jdbcConnection.py +1 -1
  694. metadata/generated/schema/type/lifeCycle.py +1 -1
  695. metadata/generated/schema/type/paging.py +1 -1
  696. metadata/generated/schema/type/profile.py +1 -1
  697. metadata/generated/schema/type/queryParserData.py +1 -1
  698. metadata/generated/schema/type/reaction.py +1 -1
  699. metadata/generated/schema/type/schedule.py +1 -1
  700. metadata/generated/schema/type/schema.py +1 -1
  701. metadata/generated/schema/type/tableQuery.py +1 -1
  702. metadata/generated/schema/type/tableUsageCount.py +1 -1
  703. metadata/generated/schema/type/tagLabel.py +2 -1
  704. metadata/generated/schema/type/usageDetails.py +1 -1
  705. metadata/generated/schema/type/usageRequest.py +1 -1
  706. metadata/generated/schema/type/votes.py +1 -1
  707. metadata/ingestion/api/topology_runner.py +5 -1
  708. metadata/ingestion/models/patch_request.py +71 -3
  709. metadata/ingestion/ometa/mixins/es_mixin.py +11 -5
  710. metadata/ingestion/source/api/rest/metadata.py +15 -2
  711. metadata/ingestion/source/dashboard/powerbi/metadata.py +122 -38
  712. metadata/ingestion/source/dashboard/powerbi/models.py +22 -0
  713. metadata/ingestion/source/dashboard/tableau/client.py +152 -171
  714. metadata/ingestion/source/dashboard/tableau/connection.py +23 -48
  715. metadata/ingestion/source/dashboard/tableau/metadata.py +73 -99
  716. metadata/ingestion/source/dashboard/tableau/models.py +8 -18
  717. metadata/ingestion/source/dashboard/tableau/queries.py +2 -2
  718. metadata/ingestion/source/database/athena/metadata.py +26 -0
  719. metadata/ingestion/source/database/bigquery/connection.py +8 -3
  720. metadata/ingestion/source/database/bigquery/helper.py +8 -6
  721. metadata/ingestion/source/database/bigquery/metadata.py +13 -5
  722. metadata/ingestion/source/database/dbt/metadata.py +30 -17
  723. metadata/ingestion/source/database/life_cycle_query_mixin.py +9 -0
  724. metadata/ingestion/source/database/mysql/connection.py +11 -3
  725. metadata/ingestion/source/database/mysql/lineage.py +4 -4
  726. metadata/ingestion/source/database/mysql/queries.py +29 -0
  727. metadata/ingestion/source/database/mysql/query_parser.py +31 -0
  728. metadata/ingestion/source/database/oracle/queries.py +2 -2
  729. metadata/ingestion/source/database/postgres/metadata.py +3 -1
  730. metadata/ingestion/source/database/postgres/queries.py +7 -0
  731. metadata/ingestion/source/database/postgres/utils.py +28 -19
  732. metadata/ingestion/source/database/snowflake/data_diff/__init__.py +0 -0
  733. metadata/ingestion/source/database/snowflake/data_diff/data_diff.py +37 -0
  734. metadata/ingestion/source/database/snowflake/metadata.py +14 -0
  735. metadata/ingestion/source/database/snowflake/queries.py +11 -7
  736. metadata/ingestion/source/database/snowflake/service_spec.py +4 -0
  737. metadata/ingestion/source/database/snowflake/utils.py +32 -4
  738. metadata/ingestion/source/database/vertica/queries.py +5 -20
  739. metadata/ingestion/source/pipeline/airbyte/constants.py +29 -0
  740. metadata/ingestion/source/pipeline/airbyte/metadata.py +67 -26
  741. metadata/ingestion/source/pipeline/airbyte/utils.py +99 -0
  742. metadata/ingestion/source/pipeline/openlineage/models.py +3 -2
  743. metadata/ingestion/source/pipeline/pipeline_service.py +2 -3
  744. metadata/ingestion/source/storage/s3/metadata.py +7 -8
  745. metadata/pii/algorithms/classifiers.py +180 -0
  746. metadata/pii/algorithms/column_patterns.py +61 -0
  747. metadata/pii/algorithms/feature_extraction.py +154 -0
  748. metadata/pii/algorithms/preprocessing.py +62 -0
  749. metadata/pii/algorithms/presidio_patches.py +45 -0
  750. metadata/pii/algorithms/presidio_utils.py +119 -0
  751. metadata/pii/algorithms/tags.py +111 -0
  752. metadata/pii/algorithms/utils.py +38 -0
  753. metadata/pii/base_processor.py +125 -0
  754. metadata/pii/constants.py +8 -0
  755. metadata/pii/processor.py +42 -138
  756. metadata/profiler/interface/sqlalchemy/profiler_interface.py +66 -36
  757. metadata/profiler/processor/runner.py +29 -6
  758. metadata/profiler/source/database/mssql/profiler_source.py +86 -0
  759. metadata/profiler/source/fetcher/profiler_source_factory.py +13 -0
  760. metadata/readers/dataframe/json.py +5 -1
  761. metadata/readers/dataframe/parquet.py +10 -2
  762. metadata/readers/dataframe/reader_factory.py +8 -0
  763. metadata/sampler/processor.py +1 -1
  764. metadata/sampler/sampler_interface.py +3 -0
  765. metadata/sampler/sqlalchemy/bigquery/sampler.py +2 -63
  766. metadata/sampler/sqlalchemy/sampler.py +32 -40
  767. metadata/utils/datalake/datalake_utils.py +9 -3
  768. metadata/utils/fqn.py +4 -4
  769. metadata/utils/service_spec/default.py +4 -0
  770. metadata/utils/service_spec/service_spec.py +1 -0
  771. metadata/utils/sqa_utils.py +15 -0
  772. metadata/workflow/base.py +8 -1
  773. metadata/workflow/profiler.py +9 -9
  774. metadata/workflow/workflow_status_mixin.py +1 -7
  775. {openmetadata_ingestion-1.7.0.1.dist-info → openmetadata_ingestion-1.7.1.0.dist-info}/METADATA +420 -414
  776. {openmetadata_ingestion-1.7.0.1.dist-info → openmetadata_ingestion-1.7.1.0.dist-info}/RECORD +780 -762
  777. {openmetadata_ingestion-1.7.0.1.dist-info → openmetadata_ingestion-1.7.1.0.dist-info}/LICENSE +0 -0
  778. {openmetadata_ingestion-1.7.0.1.dist-info → openmetadata_ingestion-1.7.1.0.dist-info}/WHEEL +0 -0
  779. {openmetadata_ingestion-1.7.0.1.dist-info → openmetadata_ingestion-1.7.1.0.dist-info}/entry_points.txt +0 -0
  780. {openmetadata_ingestion-1.7.0.1.dist-info → openmetadata_ingestion-1.7.1.0.dist-info}/top_level.txt +0 -0
@@ -76,7 +76,6 @@ from metadata.ingestion.source.dashboard.tableau.models import (
76
76
  DatasourceField,
77
77
  TableAndQuery,
78
78
  TableauDashboard,
79
- TableauTag,
80
79
  UpstreamTable,
81
80
  )
82
81
  from metadata.ingestion.source.database.column_type_parser import ColumnTypeParser
@@ -128,13 +127,6 @@ class TableauSource(DashboardServiceSource):
128
127
  )
129
128
  return cls(config, metadata)
130
129
 
131
- def prepare(self):
132
- """
133
- Prepare the source before ingestion
134
- we will fetch the custom sql tables from the tableau server
135
- """
136
- self.client.cache_custom_sql_tables()
137
-
138
130
  def get_dashboards_list(self) -> Optional[List[TableauDashboard]]:
139
131
  return self.client.get_workbooks()
140
132
 
@@ -145,18 +137,6 @@ class TableauSource(DashboardServiceSource):
145
137
  """
146
138
  Get Dashboard Details including the dashboard charts and datamodels
147
139
  """
148
-
149
- # Get the tableau views/sheets
150
- dashboard.charts = self.client.get_workbook_charts(dashboard_id=dashboard.id)
151
-
152
- # Get the tableau data sources
153
- dashboard.dataModels = self.client.get_datasources(dashboard_id=dashboard.id)
154
-
155
- # Get custom SQL queries
156
- dashboard.custom_sql_queries = self.client.get_custom_sql_table_queries(
157
- dashboard_id=dashboard.id
158
- )
159
-
160
140
  return dashboard
161
141
 
162
142
  def get_owner_ref(
@@ -200,16 +180,14 @@ class TableauSource(DashboardServiceSource):
200
180
  Method to yield tags related to specific dashboards
201
181
  """
202
182
  if self.source_config.includeTags:
203
- tags: Set[TableauTag] = set()
183
+ tags: Set = set()
204
184
  for container in [[dashboard_details], dashboard_details.charts or []]:
205
185
  for elem in container:
206
186
  tags.update(elem.tags)
207
-
208
- _tags = {tag.label for tag in tags}
209
187
  # retrieve tags from data models
210
188
  _data_models_tags = self._get_data_models_tags(dashboard_details.dataModels)
211
189
 
212
- _all_tags = _tags.union(_data_models_tags)
190
+ _all_tags = tags.union(_data_models_tags)
213
191
 
214
192
  yield from get_ometa_tag_and_classification(
215
193
  tags=[tag for tag in _all_tags],
@@ -219,9 +197,7 @@ class TableauSource(DashboardServiceSource):
219
197
  include_tags=self.source_config.includeTags,
220
198
  )
221
199
 
222
- def _get_datamodel_sql_query(
223
- self, data_model: DataSource, dashboard_details: TableauDashboard
224
- ) -> Optional[str]:
200
+ def _get_datamodel_sql_query(self, data_model: DataSource) -> Optional[str]:
225
201
  """
226
202
  Method to fetch the custom sql query from the tableau datamodels
227
203
  """
@@ -231,8 +207,8 @@ class TableauSource(DashboardServiceSource):
231
207
  for referenced_query in table.referencedByQueries or []:
232
208
  sql_queries.add(referenced_query.query)
233
209
  if not sql_queries:
234
- if dashboard_details and dashboard_details.custom_sql_queries:
235
- sql_queries.update(dashboard_details.custom_sql_queries)
210
+ if query := self.client.get_custom_sql_table_queries(data_model.id):
211
+ sql_queries.update(query)
236
212
  return "\n\n".join(sql_queries) or None
237
213
  except Exception as exc:
238
214
  logger.debug(traceback.format_exc())
@@ -274,9 +250,7 @@ class TableauSource(DashboardServiceSource):
274
250
  classification_name=TABLEAU_TAG_CATEGORY,
275
251
  include_tags=self.source_config.includeTags,
276
252
  ),
277
- sql=self._get_datamodel_sql_query(
278
- data_model=data_model, dashboard_details=dashboard_details
279
- ),
253
+ sql=self._get_datamodel_sql_query(data_model=data_model),
280
254
  owners=self.get_owner_ref(dashboard_details=dashboard_details),
281
255
  )
282
256
  yield Either(right=data_model_request)
@@ -359,7 +333,7 @@ class TableauSource(DashboardServiceSource):
359
333
  ],
360
334
  tags=get_tag_labels(
361
335
  metadata=self.metadata,
362
- tags=[tag.label for tag in dashboard_details.tags],
336
+ tags=list(dashboard_details.tags),
363
337
  classification_name=TABLEAU_TAG_CATEGORY,
364
338
  include_tags=self.source_config.includeTags,
365
339
  ),
@@ -394,7 +368,7 @@ class TableauSource(DashboardServiceSource):
394
368
  columns.append(child_column.fullyQualifiedName.root)
395
369
  return columns
396
370
 
397
- def _get_column_lineage( # pylint: disable=arguments-differ
371
+ def _get_column_lineage(
398
372
  self,
399
373
  upstream_table: UpstreamTable,
400
374
  table_entity: Table,
@@ -617,59 +591,13 @@ class TableauSource(DashboardServiceSource):
617
591
  db_service_name=db_service_name,
618
592
  upstream_data_model_entity=upstream_data_model_entity,
619
593
  )
620
- except Exception as err:
621
- yield Either(
622
- left=StackTraceError(
623
- name="Lineage",
624
- error=(
625
- "Error to yield datamodel table lineage details for DB "
626
- f"service name [{db_service_name}]: {err}"
627
- ),
628
- stackTrace=traceback.format_exc(),
629
- )
630
- )
631
-
632
- def yield_dashboard_lineage_details(
633
- self,
634
- dashboard_details: TableauDashboard,
635
- db_service_name: Optional[str] = None,
636
- ) -> Iterable[Either[AddLineageRequest]]:
637
- """
638
- This method creates the lineage between tables and datamodels
639
594
 
640
- Args:
641
- dashboard_details: Tableau Dashboard
642
- db_service_name: database service where look up for lineage
643
-
644
- Returns:
645
- Lineage request between Data Models and Database tables
646
- """
647
- for datamodel in dashboard_details.dataModels or []:
648
- try:
649
- data_model_entity = self._get_datamodel(datamodel=datamodel)
650
- if data_model_entity:
651
- if datamodel.upstreamDatasources:
652
- # if we have upstreamDatasources(Published Datasources), create lineage in below format
653
- # Table<->Published Datasource<->Embedded Datasource
654
- yield from self._get_datamodel_table_lineage(
655
- datamodel=datamodel,
656
- data_model_entity=data_model_entity,
657
- db_service_name=db_service_name,
658
- )
659
- else:
660
- # else we'll create lineage only using Embedded Datasources in below format
661
- # Table<->Embedded Datasource
662
- yield from self._get_table_datamodel_lineage(
663
- upstream_data_model=datamodel,
664
- datamodel=datamodel,
665
- db_service_name=db_service_name,
666
- upstream_data_model_entity=data_model_entity,
667
- )
668
-
669
- # Process custom SQL queries if available
670
- if dashboard_details.custom_sql_queries:
671
- for query in dashboard_details.custom_sql_queries:
672
- try:
595
+ # Process custom SQL queries if available
596
+ custom_sql_queries = self.client.get_custom_sql_table_queries(
597
+ datasource_id=upstream_data_model.id
598
+ )
599
+ if custom_sql_queries:
600
+ for query in custom_sql_queries or []:
673
601
  db_service_entity = None
674
602
  if db_service_name:
675
603
  db_service_entity = self.metadata.get_by_name(
@@ -714,15 +642,59 @@ class TableauSource(DashboardServiceSource):
714
642
  )
715
643
  for table_entity in from_entities:
716
644
  yield self._get_add_lineage_request(
717
- to_entity=data_model_entity,
645
+ to_entity=upstream_data_model_entity,
718
646
  from_entity=table_entity,
719
647
  sql=query,
720
648
  )
721
- except Exception as err:
722
- logger.debug(traceback.format_exc())
723
- logger.error(
724
- f"Error processing custom SQL query lineage: {err}"
725
- )
649
+
650
+ except Exception as err:
651
+ yield Either(
652
+ left=StackTraceError(
653
+ name="Lineage",
654
+ error=(
655
+ "Error to yield datamodel table lineage details for DB "
656
+ f"service name [{db_service_name}]: {err}"
657
+ ),
658
+ stackTrace=traceback.format_exc(),
659
+ )
660
+ )
661
+
662
+ def yield_dashboard_lineage_details(
663
+ self,
664
+ dashboard_details: TableauDashboard,
665
+ db_service_name: Optional[str] = None,
666
+ ) -> Iterable[Either[AddLineageRequest]]:
667
+ """
668
+ This method creates the lineage between tables and datamodels
669
+
670
+ Args:
671
+ dashboard_details: Tableau Dashboard
672
+ db_service_name: database service where look up for lineage
673
+
674
+ Returns:
675
+ Lineage request between Data Models and Database tables
676
+ """
677
+ for datamodel in dashboard_details.dataModels or []:
678
+ try:
679
+ data_model_entity = self._get_datamodel(datamodel=datamodel)
680
+ if data_model_entity:
681
+ if datamodel.upstreamDatasources:
682
+ # if we have upstreamDatasources(Published Datasources), create lineage in below format
683
+ # Table<->Published Datasource<->Embedded Datasource
684
+ yield from self._get_datamodel_table_lineage(
685
+ datamodel=datamodel,
686
+ data_model_entity=data_model_entity,
687
+ db_service_name=db_service_name,
688
+ )
689
+ else:
690
+ # else we'll create lineage only using Embedded Datasources in below format
691
+ # Table<->Embedded Datasource
692
+ yield from self._get_table_datamodel_lineage(
693
+ upstream_data_model=datamodel,
694
+ datamodel=datamodel,
695
+ db_service_name=db_service_name,
696
+ upstream_data_model_entity=data_model_entity,
697
+ )
726
698
 
727
699
  except Exception as err:
728
700
  yield Either(
@@ -748,8 +720,8 @@ class TableauSource(DashboardServiceSource):
748
720
  self.status.filter(chart.name, "Chart Pattern not allowed")
749
721
  continue
750
722
  site_url = (
751
- f"/site/{self.service_connection.siteUrl}/"
752
- if self.service_connection.siteUrl
723
+ f"/site/{self.service_connection.siteName}/"
724
+ if self.service_connection.siteName
753
725
  else ""
754
726
  )
755
727
  workbook_chart_name = ChartUrl(chart.contentUrl)
@@ -768,7 +740,7 @@ class TableauSource(DashboardServiceSource):
768
740
  sourceUrl=SourceUrl(chart_url),
769
741
  tags=get_tag_labels(
770
742
  metadata=self.metadata,
771
- tags=[tag.label for tag in chart.tags],
743
+ tags=list(chart.tags),
772
744
  classification_name=TABLEAU_TAG_CATEGORY,
773
745
  include_tags=self.source_config.includeTags,
774
746
  ),
@@ -1007,7 +979,7 @@ class TableauSource(DashboardServiceSource):
1007
979
  )
1008
980
  return None
1009
981
 
1010
- def yield_dashboard_usage( # pylint: disable=W0221
982
+ def yield_dashboard_usage(
1011
983
  self, dashboard_details: TableauDashboard
1012
984
  ) -> Iterable[Either[DashboardUsage]]:
1013
985
  """
@@ -1027,9 +999,11 @@ class TableauSource(DashboardServiceSource):
1027
999
  fields=["usageSummary"],
1028
1000
  )
1029
1001
 
1030
- current_views = self.client.get_workbook_view_count_by_id(
1031
- workbook_id=dashboard_details.id
1032
- )
1002
+ if not dashboard:
1003
+ logger.debug(f"Dashboard {dashboard_fqn} not found, skipping usage")
1004
+ return
1005
+
1006
+ current_views = dashboard_details.user_views
1033
1007
 
1034
1008
  if not current_views:
1035
1009
  logger.debug(f"No usage to report for {dashboard_details.name}")
@@ -13,7 +13,7 @@
13
13
  Tableau Source Model module
14
14
  """
15
15
 
16
- from typing import Any, Dict, List, Optional, Union
16
+ from typing import Dict, List, Optional, Set, Union
17
17
 
18
18
  from pydantic import BaseModel, ConfigDict, Field, validator
19
19
 
@@ -75,21 +75,12 @@ class TableauOwner(TableauBaseModel):
75
75
  email: Optional[str] = None
76
76
 
77
77
 
78
- def transform_tags(raw: Union[Dict[str, Any], List[TableauTag]]) -> List[TableauTag]:
79
- if isinstance(raw, List):
80
- return raw
81
- tags = []
82
- for tag in raw.get("tag", []):
83
- tags.append(TableauTag(**tag))
84
- return tags
85
-
86
-
87
- class TableauWorkbook(BaseModel):
78
+ class TableauDatasource(BaseModel):
88
79
  """
89
- Model for downstream workbook information
80
+ Model for downstream datasource information
90
81
  """
91
82
 
92
- luid: Optional[str] = None
83
+ id: Optional[str] = None
93
84
  name: Optional[str] = None
94
85
 
95
86
 
@@ -99,7 +90,7 @@ class CustomSQLTable(TableauBaseModel):
99
90
  https://help.tableau.com/current/api/metadata_api/en-us/reference/customsqltable.doc.html
100
91
  """
101
92
 
102
- downstreamWorkbooks: Optional[List[TableauWorkbook]] = None
93
+ downstreamDatasources: Optional[List[TableauDatasource]] = None
103
94
  query: Optional[str] = None
104
95
 
105
96
 
@@ -178,8 +169,7 @@ class TableauChart(TableauBaseModel):
178
169
  """
179
170
 
180
171
  owner: Optional[TableauOwner] = None
181
- tags: Optional[List[TableauTag]] = []
182
- _extract_tags = validator("tags", pre=True, allow_reuse=True)(transform_tags)
172
+ tags: Optional[Set] = []
183
173
  contentUrl: Optional[str] = ""
184
174
  sheetType: Optional[str] = ChartType.Other.value
185
175
 
@@ -194,12 +184,12 @@ class TableauDashboard(TableauBaseModel):
194
184
  project: Optional[TableauBaseModel] = None
195
185
  description: Optional[str] = None
196
186
  owner: Optional[TableauOwner] = None
197
- tags: Optional[List[TableauTag]] = []
198
- _extract_tags = validator("tags", pre=True, allow_reuse=True)(transform_tags)
187
+ tags: Optional[Set] = []
199
188
  webpageUrl: Optional[str] = None
200
189
  charts: Optional[List[TableauChart]] = None
201
190
  dataModels: List[DataSource] = []
202
191
  custom_sql_queries: Optional[List[str]] = None
192
+ user_views: Optional[int] = None
203
193
 
204
194
 
205
195
  class TableAndQuery(BaseModel):
@@ -83,8 +83,8 @@ TALEAU_GET_CUSTOM_SQL_QUERY = """
83
83
  customSQLTables {
84
84
  name
85
85
  id
86
- downstreamWorkbooks {
87
- luid
86
+ downstreamDatasources{
87
+ id
88
88
  name
89
89
  }
90
90
  query
@@ -17,6 +17,7 @@ from typing import Iterable, Optional, Tuple
17
17
  from pyathena.sqlalchemy.base import AthenaDialect
18
18
  from sqlalchemy.engine.reflection import Inspector
19
19
 
20
+ from metadata.clients.aws_client import AWSClient
20
21
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
21
22
  from metadata.generated.schema.entity.data.table import (
22
23
  Column,
@@ -53,6 +54,7 @@ from metadata.ingestion.source.database.common_db_source import (
53
54
  from metadata.ingestion.source.database.external_table_lineage_mixin import (
54
55
  ExternalTableLineageMixin,
55
56
  )
57
+ from metadata.ingestion.source.database.glue.models import DatabasePage
56
58
  from metadata.utils import fqn
57
59
  from metadata.utils.logger import ingestion_logger
58
60
  from metadata.utils.sqlalchemy_utils import get_all_table_ddls, get_table_ddl
@@ -112,6 +114,29 @@ class AthenaSource(ExternalTableLineageMixin, CommonDbSourceService):
112
114
  connection=self.service_connection
113
115
  )
114
116
  self.external_location_map = {}
117
+ self.schema_description_map = {}
118
+
119
+ def prepare(self):
120
+ """
121
+ Prepare the source by fetching the schema descriptions from the AWS Glue service.
122
+ """
123
+ try:
124
+ super().prepare()
125
+ glue_client = AWSClient(self.service_connection.awsConfig).get_glue_client()
126
+ paginator = glue_client.get_paginator("get_databases")
127
+ for page in paginator.paginate():
128
+ database_page = DatabasePage(**page)
129
+ for database in database_page.DatabaseList or []:
130
+ if database.Description:
131
+ self.schema_description_map[
132
+ database.Name
133
+ ] = database.Description
134
+ except Exception as exc:
135
+ logger.warning(f"Error preparing Athena source: {exc}")
136
+ logger.debug(traceback.format_exc())
137
+
138
+ def get_schema_description(self, schema_name: str) -> Optional[str]:
139
+ return self.schema_description_map.get(schema_name)
115
140
 
116
141
  def query_table_names_and_types(
117
142
  self, schema_name: str
@@ -259,6 +284,7 @@ class AthenaSource(ExternalTableLineageMixin, CommonDbSourceService):
259
284
  )
260
285
  )
261
286
 
287
+ # pylint: disable=arguments-differ
262
288
  def get_table_description(
263
289
  self, schema_name: str, table_name: str, inspector: Inspector
264
290
  ) -> str:
@@ -89,9 +89,14 @@ def get_connection_url(connection: BigQueryConnection) -> str:
89
89
  isinstance(connection.credentials.gcpConfig, GcpCredentialsPath)
90
90
  and connection.credentials.gcpConfig.projectId
91
91
  ):
92
- return (
93
- f"{connection.scheme.value}://{connection.credentials.gcpConfig.projectId}"
94
- )
92
+ if isinstance( # pylint: disable=no-else-return
93
+ connection.credentials.gcpConfig.projectId, SingleProjectId
94
+ ):
95
+ return f"{connection.scheme.value}://{connection.credentials.gcpConfig.projectId.root}"
96
+
97
+ elif isinstance(connection.credentials.gcpConfig.projectId, MultipleProjectId):
98
+ for project_id in connection.credentials.gcpConfig.projectId.root:
99
+ return f"{connection.scheme.value}://{project_id}"
95
100
 
96
101
  return f"{connection.scheme.value}://"
97
102
 
@@ -14,6 +14,7 @@ Source connection helper
14
14
  """
15
15
  import re
16
16
  import traceback
17
+ from copy import deepcopy
17
18
  from typing import Any, List, Tuple
18
19
 
19
20
  from pydantic import BaseModel
@@ -54,24 +55,25 @@ def get_inspector_details(
54
55
  """
55
56
  # TODO support location property in JSON Schema
56
57
  # TODO support OAuth 2.0 scopes
58
+ new_service_connection = deepcopy(service_connection)
57
59
  kwargs = {}
58
- if isinstance(service_connection.credentials.gcpConfig, GcpCredentialsValues):
59
- service_connection.credentials.gcpConfig.projectId = SingleProjectId(
60
+ if isinstance(new_service_connection.credentials.gcpConfig, GcpCredentialsValues):
61
+ new_service_connection.credentials.gcpConfig.projectId = SingleProjectId(
60
62
  database_name
61
63
  )
62
- if service_connection.credentials.gcpImpersonateServiceAccount:
64
+ if new_service_connection.credentials.gcpImpersonateServiceAccount:
63
65
  kwargs[
64
66
  "impersonate_service_account"
65
67
  ] = (
66
- service_connection.credentials.gcpImpersonateServiceAccount.impersonateServiceAccount
68
+ new_service_connection.credentials.gcpImpersonateServiceAccount.impersonateServiceAccount
67
69
  )
68
70
 
69
71
  kwargs[
70
72
  "lifetime"
71
- ] = service_connection.credentials.gcpImpersonateServiceAccount.lifetime
73
+ ] = new_service_connection.credentials.gcpImpersonateServiceAccount.lifetime
72
74
 
73
75
  client = get_bigquery_client(project_id=database_name, **kwargs)
74
- engine = get_connection(service_connection)
76
+ engine = get_connection(new_service_connection)
75
77
  inspector = inspect(engine)
76
78
 
77
79
  return InspectorWrapper(client=client, engine=engine, inspector=inspector)
@@ -154,6 +154,18 @@ def _array_sys_data_type_repr(col_type):
154
154
  )
155
155
 
156
156
 
157
+ def get_system_data_type(col_type):
158
+ """
159
+ Get the system data type for the column type
160
+ """
161
+ if isinstance(col_type, String):
162
+ return "string"
163
+ if str(col_type) == "ARRAY":
164
+ return _array_sys_data_type_repr(col_type)
165
+
166
+ return str(col_type)
167
+
168
+
157
169
  def get_columns(bq_schema):
158
170
  """
159
171
  get_columns method overwritten to include tag details
@@ -170,11 +182,7 @@ def get_columns(bq_schema):
170
182
  "precision": field.precision,
171
183
  "scale": field.scale,
172
184
  "max_length": field.max_length,
173
- "system_data_type": (
174
- _array_sys_data_type_repr(col_type)
175
- if str(col_type) == "ARRAY"
176
- else str(col_type)
177
- ),
185
+ "system_data_type": get_system_data_type(col_type),
178
186
  "is_complex": is_complex_type(str(col_type)),
179
187
  "policy_tags": None,
180
188
  }
@@ -150,29 +150,37 @@ class DbtSource(DbtServiceSource):
150
150
  Returns dbt owner
151
151
  """
152
152
  try:
153
- owner = None
153
+ owner_ref = None
154
154
  dbt_owner = None
155
155
  if catalog_node:
156
156
  dbt_owner = catalog_node.metadata.owner
157
157
  if manifest_node:
158
158
  dbt_owner = manifest_node.meta.get(DbtCommonEnum.OWNER.value)
159
- if dbt_owner:
160
- owner = self.metadata.get_reference_by_name(
159
+ if dbt_owner and isinstance(dbt_owner, str):
160
+ owner_ref = self.metadata.get_reference_by_name(
161
161
  name=dbt_owner, is_owner=True
162
+ ) or self.metadata.get_reference_by_email(email=dbt_owner)
163
+ if owner_ref:
164
+ return owner_ref
165
+ logger.warning(
166
+ "Unable to ingest owner from DBT since no user or"
167
+ f" team was found with name {dbt_owner}"
162
168
  )
163
-
164
- if owner:
165
- return owner
166
-
167
- # If owner is not found, try to find the owner in OMD using email
168
- owner = self.metadata.get_reference_by_email(email=dbt_owner)
169
-
170
- if not owner:
171
- logger.warning(
172
- "Unable to ingest owner from DBT since no user or"
173
- f" team was found with name {dbt_owner}"
174
- )
175
- return owner
169
+ elif dbt_owner and isinstance(dbt_owner, list):
170
+ owner_list = EntityReferenceList(root=[])
171
+ for owner_name in dbt_owner:
172
+ owner_ref = self.metadata.get_reference_by_name(
173
+ name=owner_name, is_owner=True
174
+ ) or self.metadata.get_reference_by_email(email=owner_name)
175
+ if owner_ref:
176
+ owner_list.root.extend(owner_ref.root)
177
+ else:
178
+ logger.warning(
179
+ "Unable to ingest owner from DBT since no user or"
180
+ f" team was found with name {owner_name}"
181
+ )
182
+ if owner_list.root:
183
+ return owner_list
176
184
  except Exception as exc:
177
185
  logger.debug(traceback.format_exc())
178
186
  logger.warning(f"Unable to ingest owner from DBT due to: {exc}")
@@ -741,7 +749,12 @@ class DbtSource(DbtServiceSource):
741
749
  type="table",
742
750
  ),
743
751
  lineageDetails=LineageDetails(
744
- source=LineageSource.DbtLineage
752
+ source=LineageSource.DbtLineage,
753
+ sqlQuery=SqlQuery(
754
+ data_model_link.datamodel.sql.root
755
+ )
756
+ if data_model_link.datamodel.sql
757
+ else None,
745
758
  ),
746
759
  )
747
760
  )
@@ -128,6 +128,15 @@ class LifeCycleQueryMixin:
128
128
  )
129
129
  )
130
130
 
131
+ def get_life_cycle_query(self):
132
+ """
133
+ Get the life cycle query
134
+ """
135
+ return self.life_cycle_query.format(
136
+ database_name=self.context.get().database,
137
+ schema_name=self.context.get().database_schema,
138
+ )
139
+
131
140
  def yield_life_cycle_data(self, _) -> Iterable[Either[OMetaLifeCycleData]]:
132
141
  """
133
142
  Get the life cycle data of the table
@@ -38,7 +38,10 @@ from metadata.ingestion.connections.test_connections import (
38
38
  test_connection_db_schema_sources,
39
39
  )
40
40
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
41
- from metadata.ingestion.source.database.mysql.queries import MYSQL_TEST_GET_QUERIES
41
+ from metadata.ingestion.source.database.mysql.queries import (
42
+ MYSQL_TEST_GET_QUERIES,
43
+ MYSQL_TEST_GET_QUERIES_SLOW_LOGS,
44
+ )
42
45
  from metadata.utils.constants import THREE_MIN
43
46
 
44
47
 
@@ -50,7 +53,10 @@ def get_connection(connection: MysqlConnection) -> Engine:
50
53
  azure_client = AzureClient(connection.authType.azureConfig).create_client()
51
54
  if not connection.authType.azureConfig.scopes:
52
55
  raise ValueError(
53
- "Azure Scopes are missing, please refer https://learn.microsoft.com/en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-microsoft-entra-access-token and fetch the resource associated with it, for e.g. https://ossrdbms-aad.database.windows.net/.default"
56
+ "Azure Scopes are missing, please refer https://learn.microsoft.com/"
57
+ "en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-micr"
58
+ "osoft-entra-access-token and fetch the resource associated with it,"
59
+ " for e.g. https://ossrdbms-aad.database.windows.net/.default"
54
60
  )
55
61
  access_token_obj = azure_client.get_token(
56
62
  *connection.authType.azureConfig.scopes.split(",")
@@ -75,7 +81,9 @@ def test_connection(
75
81
  of a metadata workflow or during an Automation Workflow
76
82
  """
77
83
  queries = {
78
- "GetQueries": MYSQL_TEST_GET_QUERIES,
84
+ "GetQueries": MYSQL_TEST_GET_QUERIES
85
+ if not service_connection.useSlowLogs
86
+ else MYSQL_TEST_GET_QUERIES_SLOW_LOGS,
79
87
  }
80
88
  return test_connection_db_schema_sources(
81
89
  metadata=metadata,
@@ -20,9 +20,9 @@ class MysqlLineageSource(MysqlQueryParserSource, LineageSource):
20
20
  sql_stmt = MYSQL_SQL_STATEMENT
21
21
  filters = """
22
22
  AND (
23
- lower(argument) LIKE '%%create%%table%%select%%'
24
- OR lower(argument) LIKE '%%insert%%into%%select%%'
25
- OR lower(argument) LIKE '%%update%%'
26
- OR lower(argument) LIKE '%%merge%%'
23
+ lower({sql_column}) LIKE '%%create%%table%%select%%'
24
+ OR lower({sql_column}) LIKE '%%insert%%into%%select%%'
25
+ OR lower({sql_column}) LIKE '%%update%%'
26
+ OR lower({sql_column}) LIKE '%%merge%%'
27
27
  )
28
28
  """