openmetadata-ingestion 1.7.1.4__py3-none-any.whl → 1.7.2.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 (737) hide show
  1. metadata/cli/classify.py +3 -1
  2. metadata/cli/dataquality.py +3 -1
  3. metadata/generated/schema/analytics/__init__.py +1 -1
  4. metadata/generated/schema/analytics/basic.py +1 -1
  5. metadata/generated/schema/analytics/reportData.py +1 -1
  6. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  7. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  12. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  13. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  15. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  16. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  17. metadata/generated/schema/api/__init__.py +1 -1
  18. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  19. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  20. metadata/generated/schema/api/analytics/__init__.py +1 -1
  21. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  22. metadata/generated/schema/api/automations/__init__.py +1 -1
  23. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  24. metadata/generated/schema/api/bulkAssets.py +1 -1
  25. metadata/generated/schema/api/classification/__init__.py +1 -1
  26. metadata/generated/schema/api/classification/createClassification.py +1 -1
  27. metadata/generated/schema/api/classification/createTag.py +1 -1
  28. metadata/generated/schema/api/classification/loadTags.py +1 -1
  29. metadata/generated/schema/api/createBot.py +1 -1
  30. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  31. metadata/generated/schema/api/createType.py +1 -1
  32. metadata/generated/schema/api/data/__init__.py +1 -1
  33. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  34. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  35. metadata/generated/schema/api/data/createChart.py +1 -1
  36. metadata/generated/schema/api/data/createContainer.py +1 -1
  37. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  38. metadata/generated/schema/api/data/createDashboard.py +1 -1
  39. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  40. metadata/generated/schema/api/data/createDatabase.py +1 -1
  41. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  42. metadata/generated/schema/api/data/createGlossary.py +1 -1
  43. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  44. metadata/generated/schema/api/data/createMetric.py +1 -1
  45. metadata/generated/schema/api/data/createMlModel.py +1 -1
  46. metadata/generated/schema/api/data/createPipeline.py +1 -1
  47. metadata/generated/schema/api/data/createQuery.py +1 -1
  48. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  49. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  50. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  51. metadata/generated/schema/api/data/createTable.py +1 -1
  52. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  53. metadata/generated/schema/api/data/createTopic.py +1 -1
  54. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  55. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  56. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  57. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  58. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  59. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  60. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  61. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  62. metadata/generated/schema/api/docStore/__init__.py +1 -1
  63. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  64. metadata/generated/schema/api/domains/__init__.py +1 -1
  65. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  66. metadata/generated/schema/api/domains/createDomain.py +1 -1
  67. metadata/generated/schema/api/feed/__init__.py +1 -1
  68. metadata/generated/schema/api/feed/closeTask.py +1 -1
  69. metadata/generated/schema/api/feed/createPost.py +1 -1
  70. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  71. metadata/generated/schema/api/feed/createThread.py +1 -1
  72. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  73. metadata/generated/schema/api/feed/threadCount.py +1 -1
  74. metadata/generated/schema/api/governance/__init__.py +1 -1
  75. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  76. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  77. metadata/generated/schema/api/lineage/__init__.py +1 -1
  78. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  79. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  80. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  81. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  82. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  83. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  84. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  85. metadata/generated/schema/api/policies/__init__.py +1 -1
  86. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  87. metadata/generated/schema/api/search/__init__.py +1 -1
  88. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  89. metadata/generated/schema/api/services/__init__.py +1 -1
  90. metadata/generated/schema/api/services/createApiService.py +1 -1
  91. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  92. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  93. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  94. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  95. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  96. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  97. metadata/generated/schema/api/services/createSearchService.py +1 -1
  98. metadata/generated/schema/api/services/createStorageService.py +1 -1
  99. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  100. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +2 -1
  101. metadata/generated/schema/api/setOwner.py +1 -1
  102. metadata/generated/schema/api/teams/__init__.py +1 -1
  103. metadata/generated/schema/api/teams/createPersona.py +1 -1
  104. metadata/generated/schema/api/teams/createRole.py +1 -1
  105. metadata/generated/schema/api/teams/createTeam.py +1 -1
  106. metadata/generated/schema/api/teams/createUser.py +1 -1
  107. metadata/generated/schema/api/tests/__init__.py +1 -1
  108. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  109. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  110. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  111. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  112. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  113. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  114. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  115. metadata/generated/schema/api/voteRequest.py +1 -1
  116. metadata/generated/schema/auth/__init__.py +1 -1
  117. metadata/generated/schema/auth/basicAuth.py +1 -1
  118. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  119. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  120. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  121. metadata/generated/schema/auth/emailRequest.py +1 -1
  122. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  123. metadata/generated/schema/auth/generateToken.py +1 -1
  124. metadata/generated/schema/auth/jwtAuth.py +1 -1
  125. metadata/generated/schema/auth/loginRequest.py +1 -1
  126. metadata/generated/schema/auth/logoutRequest.py +1 -1
  127. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  128. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  129. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  130. metadata/generated/schema/auth/refreshToken.py +1 -1
  131. metadata/generated/schema/auth/registrationRequest.py +1 -1
  132. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  133. metadata/generated/schema/auth/revokeToken.py +1 -1
  134. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  135. metadata/generated/schema/auth/ssoAuth.py +1 -1
  136. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  137. metadata/generated/schema/configuration/__init__.py +1 -1
  138. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  140. metadata/generated/schema/configuration/authConfig.py +1 -1
  141. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  146. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  147. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  149. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  150. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  151. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  152. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  153. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  154. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  155. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  156. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  157. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  159. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/opsConfig.py +1 -1
  164. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  165. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/searchSettings.py +1 -1
  167. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  168. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  172. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  173. metadata/generated/schema/dataInsight/__init__.py +1 -1
  174. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  175. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  176. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  177. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  178. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  179. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  180. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  181. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  182. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  183. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  184. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  185. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  186. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  187. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  188. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  189. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  190. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  191. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  192. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  193. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  194. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  195. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  196. metadata/generated/schema/email/__init__.py +1 -1
  197. metadata/generated/schema/email/emailRequest.py +1 -1
  198. metadata/generated/schema/email/emailTemplate.py +1 -1
  199. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  200. metadata/generated/schema/email/smtpSettings.py +1 -1
  201. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  202. metadata/generated/schema/entity/__init__.py +1 -1
  203. metadata/generated/schema/entity/applications/__init__.py +1 -1
  204. metadata/generated/schema/entity/applications/app.py +1 -1
  205. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  206. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  208. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  211. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  213. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  216. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  217. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  218. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  222. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  226. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  232. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  234. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  247. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  248. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  249. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  250. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  251. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  252. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  253. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  254. metadata/generated/schema/entity/automations/__init__.py +1 -1
  255. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  256. metadata/generated/schema/entity/automations/workflow.py +1 -1
  257. metadata/generated/schema/entity/bot.py +1 -1
  258. metadata/generated/schema/entity/classification/__init__.py +1 -1
  259. metadata/generated/schema/entity/classification/classification.py +1 -1
  260. metadata/generated/schema/entity/classification/tag.py +1 -1
  261. metadata/generated/schema/entity/data/__init__.py +1 -1
  262. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  263. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  264. metadata/generated/schema/entity/data/chart.py +1 -1
  265. metadata/generated/schema/entity/data/container.py +1 -1
  266. metadata/generated/schema/entity/data/dashboard.py +1 -1
  267. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  268. metadata/generated/schema/entity/data/database.py +1 -1
  269. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  270. metadata/generated/schema/entity/data/glossary.py +1 -1
  271. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  272. metadata/generated/schema/entity/data/metric.py +1 -1
  273. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  274. metadata/generated/schema/entity/data/pipeline.py +1 -1
  275. metadata/generated/schema/entity/data/query.py +1 -1
  276. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  277. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  278. metadata/generated/schema/entity/data/report.py +1 -1
  279. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  280. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  281. metadata/generated/schema/entity/data/table.py +1 -1
  282. metadata/generated/schema/entity/data/topic.py +1 -1
  283. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  284. metadata/generated/schema/entity/docStore/document.py +1 -1
  285. metadata/generated/schema/entity/domains/__init__.py +1 -1
  286. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  287. metadata/generated/schema/entity/domains/domain.py +1 -1
  288. metadata/generated/schema/entity/events/__init__.py +1 -1
  289. metadata/generated/schema/entity/events/webhook.py +1 -1
  290. metadata/generated/schema/entity/feed/__init__.py +1 -1
  291. metadata/generated/schema/entity/feed/assets.py +1 -1
  292. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  293. metadata/generated/schema/entity/feed/description.py +1 -1
  294. metadata/generated/schema/entity/feed/domain.py +1 -1
  295. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  296. metadata/generated/schema/entity/feed/owner.py +1 -1
  297. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  298. metadata/generated/schema/entity/feed/tag.py +1 -1
  299. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  300. metadata/generated/schema/entity/feed/thread.py +1 -1
  301. metadata/generated/schema/entity/policies/__init__.py +1 -1
  302. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  303. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  304. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  305. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  306. metadata/generated/schema/entity/policies/filters.py +1 -1
  307. metadata/generated/schema/entity/policies/policy.py +1 -1
  308. metadata/generated/schema/entity/services/__init__.py +1 -1
  309. metadata/generated/schema/entity/services/apiService.py +1 -1
  310. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  311. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  312. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  314. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  315. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  316. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  317. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  318. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  319. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  328. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  329. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  330. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  331. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  332. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  333. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +9 -1
  340. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/db2Connection.py +9 -1
  365. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +9 -1
  408. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  411. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  417. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  425. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  431. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  445. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  446. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  448. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  449. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +56 -0
  455. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  458. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  460. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  461. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  462. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  466. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +2 -2
  470. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  471. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  472. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  473. metadata/generated/schema/entity/services/databaseService.py +1 -1
  474. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  475. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +5 -1
  476. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  477. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  478. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  479. metadata/generated/schema/entity/services/messagingService.py +1 -1
  480. metadata/generated/schema/entity/services/metadataService.py +1 -1
  481. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  482. metadata/generated/schema/entity/services/pipelineService.py +4 -1
  483. metadata/generated/schema/entity/services/searchService.py +1 -1
  484. metadata/generated/schema/entity/services/serviceType.py +1 -1
  485. metadata/generated/schema/entity/services/storageService.py +1 -1
  486. metadata/generated/schema/entity/teams/__init__.py +1 -1
  487. metadata/generated/schema/entity/teams/persona.py +1 -1
  488. metadata/generated/schema/entity/teams/role.py +1 -1
  489. metadata/generated/schema/entity/teams/team.py +1 -1
  490. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  491. metadata/generated/schema/entity/teams/user.py +1 -1
  492. metadata/generated/schema/entity/type.py +1 -1
  493. metadata/generated/schema/entity/utils/__init__.py +1 -1
  494. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  495. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  496. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  497. metadata/generated/schema/events/__init__.py +1 -1
  498. metadata/generated/schema/events/alertMetrics.py +1 -1
  499. metadata/generated/schema/events/api/__init__.py +1 -1
  500. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  501. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  502. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  503. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  504. metadata/generated/schema/events/api/typedEvent.py +1 -1
  505. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  506. metadata/generated/schema/events/eventFilterRule.py +1 -1
  507. metadata/generated/schema/events/eventSubscription.py +1 -1
  508. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  509. metadata/generated/schema/events/failedEvent.py +1 -1
  510. metadata/generated/schema/events/failedEventResponse.py +1 -1
  511. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  512. metadata/generated/schema/events/statusContext.py +1 -1
  513. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  514. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  515. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  516. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  517. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  518. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  519. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  520. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  521. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  522. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  523. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  524. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  525. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  526. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  527. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  528. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  529. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  530. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  531. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  532. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  533. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  534. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  535. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  536. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  537. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  538. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  539. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  540. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  541. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  542. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  543. metadata/generated/schema/jobs/__init__.py +1 -1
  544. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  545. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  546. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  547. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  548. metadata/generated/schema/metadataIngestion/application.py +1 -1
  549. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  551. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  552. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  553. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  554. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  555. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  556. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  557. metadata/generated/schema/metadataIngestion/dbtPipeline.py +9 -1
  558. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  559. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  560. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  561. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  562. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  563. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  564. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  565. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  566. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  567. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  569. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  571. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  572. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  573. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  574. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  575. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  576. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  577. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  578. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  579. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  580. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  581. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  582. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  583. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  584. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  585. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  586. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  587. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  588. metadata/generated/schema/monitoring/__init__.py +1 -1
  589. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  590. metadata/generated/schema/search/__init__.py +1 -1
  591. metadata/generated/schema/search/aggregationRequest.py +1 -1
  592. metadata/generated/schema/search/searchRequest.py +1 -1
  593. metadata/generated/schema/security/__init__.py +1 -1
  594. metadata/generated/schema/security/client/__init__.py +1 -1
  595. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  596. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  597. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  598. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  599. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  600. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  601. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  602. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  603. metadata/generated/schema/security/credentials/__init__.py +1 -1
  604. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  605. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  606. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  607. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  608. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  609. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  610. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  611. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  612. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  613. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  614. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  615. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  616. metadata/generated/schema/security/sasl/__init__.py +1 -1
  617. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  618. metadata/generated/schema/security/secrets/__init__.py +1 -1
  619. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  620. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  621. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  622. metadata/generated/schema/security/securityConfiguration.py +1 -1
  623. metadata/generated/schema/security/ssl/__init__.py +1 -1
  624. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  625. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  626. metadata/generated/schema/settings/__init__.py +1 -1
  627. metadata/generated/schema/settings/settings.py +1 -1
  628. metadata/generated/schema/system/__init__.py +1 -1
  629. metadata/generated/schema/system/entityError.py +1 -1
  630. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  631. metadata/generated/schema/system/indexingError.py +1 -1
  632. metadata/generated/schema/system/limitsResponse.py +1 -1
  633. metadata/generated/schema/system/ui/__init__.py +1 -1
  634. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  635. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  636. metadata/generated/schema/system/ui/page.py +1 -1
  637. metadata/generated/schema/system/ui/tab.py +1 -1
  638. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  639. metadata/generated/schema/system/validationResponse.py +1 -1
  640. metadata/generated/schema/tests/__init__.py +1 -1
  641. metadata/generated/schema/tests/assigned.py +1 -1
  642. metadata/generated/schema/tests/basic.py +1 -1
  643. metadata/generated/schema/tests/customMetric.py +1 -1
  644. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  645. metadata/generated/schema/tests/resolved.py +1 -1
  646. metadata/generated/schema/tests/testCase.py +1 -1
  647. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  648. metadata/generated/schema/tests/testDefinition.py +1 -1
  649. metadata/generated/schema/tests/testSuite.py +1 -1
  650. metadata/generated/schema/type/__init__.py +1 -1
  651. metadata/generated/schema/type/apiSchema.py +1 -1
  652. metadata/generated/schema/type/assetCertification.py +1 -1
  653. metadata/generated/schema/type/auditLog.py +1 -1
  654. metadata/generated/schema/type/basic.py +2 -1
  655. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  656. metadata/generated/schema/type/changeEvent.py +1 -1
  657. metadata/generated/schema/type/changeEventType.py +1 -1
  658. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  659. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  660. metadata/generated/schema/type/csvDocumentation.py +1 -1
  661. metadata/generated/schema/type/csvErrorType.py +1 -1
  662. metadata/generated/schema/type/csvFile.py +1 -1
  663. metadata/generated/schema/type/csvImportResult.py +1 -1
  664. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  665. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  666. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  667. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  668. metadata/generated/schema/type/customProperty.py +1 -1
  669. metadata/generated/schema/type/dailyCount.py +1 -1
  670. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  671. metadata/generated/schema/type/entityHierarchy.py +1 -1
  672. metadata/generated/schema/type/entityHistory.py +1 -1
  673. metadata/generated/schema/type/entityLineage.py +1 -1
  674. metadata/generated/schema/type/entityReference.py +1 -1
  675. metadata/generated/schema/type/entityReferenceList.py +1 -1
  676. metadata/generated/schema/type/entityRelationship.py +1 -1
  677. metadata/generated/schema/type/entityUsage.py +1 -1
  678. metadata/generated/schema/type/filterPattern.py +1 -1
  679. metadata/generated/schema/type/function.py +1 -1
  680. metadata/generated/schema/type/include.py +1 -1
  681. metadata/generated/schema/type/jdbcConnection.py +1 -1
  682. metadata/generated/schema/type/lifeCycle.py +1 -1
  683. metadata/generated/schema/type/paging.py +1 -1
  684. metadata/generated/schema/type/profile.py +1 -1
  685. metadata/generated/schema/type/queryParserData.py +1 -1
  686. metadata/generated/schema/type/reaction.py +1 -1
  687. metadata/generated/schema/type/schedule.py +1 -1
  688. metadata/generated/schema/type/schema.py +1 -1
  689. metadata/generated/schema/type/tableQuery.py +1 -1
  690. metadata/generated/schema/type/tableUsageCount.py +1 -1
  691. metadata/generated/schema/type/tagLabel.py +1 -1
  692. metadata/generated/schema/type/usageDetails.py +1 -1
  693. metadata/generated/schema/type/usageRequest.py +1 -1
  694. metadata/generated/schema/type/votes.py +1 -1
  695. metadata/ingestion/lineage/models.py +14 -0
  696. metadata/ingestion/models/custom_pydantic.py +2 -0
  697. metadata/ingestion/ometa/mixins/lineage_mixin.py +1 -0
  698. metadata/ingestion/source/dashboard/lightdash/client.py +81 -8
  699. metadata/ingestion/source/dashboard/lightdash/metadata.py +39 -21
  700. metadata/ingestion/source/dashboard/lightdash/models.py +11 -0
  701. metadata/ingestion/source/dashboard/looker/metadata.py +17 -9
  702. metadata/ingestion/source/dashboard/tableau/client.py +28 -24
  703. metadata/ingestion/source/dashboard/tableau/connection.py +18 -4
  704. metadata/ingestion/source/dashboard/tableau/metadata.py +3 -2
  705. metadata/ingestion/source/database/databricks/metadata.py +50 -0
  706. metadata/ingestion/source/database/databricks/queries.py +4 -0
  707. metadata/ingestion/source/database/databricks/service_spec.py +2 -0
  708. metadata/ingestion/source/database/db2/connection.py +15 -0
  709. metadata/ingestion/source/database/db2/utils.py +130 -0
  710. metadata/ingestion/source/database/dbt/metadata.py +17 -2
  711. metadata/ingestion/source/database/doris/metadata.py +4 -1
  712. metadata/ingestion/source/database/snowflake/metadata.py +19 -0
  713. metadata/ingestion/source/database/trino/queries.py +1 -1
  714. metadata/ingestion/source/database/trino/query_parser.py +15 -0
  715. metadata/ingestion/source/database/unitycatalog/service_spec.py +1 -1
  716. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +7 -7
  717. metadata/pii/algorithms/classifiers.py +6 -2
  718. metadata/pii/algorithms/presidio_patches.py +38 -0
  719. metadata/sampler/sqlalchemy/azuresql/sampler.py +4 -5
  720. metadata/sampler/sqlalchemy/databricks/sampler.py +26 -0
  721. metadata/sampler/sqlalchemy/mssql/sampler.py +2 -3
  722. metadata/sampler/sqlalchemy/sampler.py +2 -0
  723. metadata/sampler/sqlalchemy/snowflake/sampler.py +2 -3
  724. metadata/utils/filters.py +13 -0
  725. metadata/utils/helpers.py +1 -0
  726. metadata/utils/sqlalchemy_utils.py +21 -0
  727. metadata/workflow/context/base.py +24 -0
  728. metadata/workflow/context/context_manager.py +124 -0
  729. metadata/workflow/context/workflow_context.py +29 -0
  730. metadata/workflow/workflow_status_mixin.py +33 -12
  731. {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/METADATA +426 -426
  732. {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/RECORD +737 -732
  733. /metadata/{profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py → sampler/sqlalchemy/unitycatalog/sampler.py} +0 -0
  734. {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/LICENSE +0 -0
  735. {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/WHEEL +0 -0
  736. {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/entry_points.txt +0 -0
  737. {openmetadata_ingestion-1.7.1.4.dist-info → openmetadata_ingestion-1.7.2.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/schema.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tableQuery.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tableUsageCount.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tagLabel.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageDetails.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageRequest.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/votes.json
3
- # timestamp: 2025-06-03T15:26:31+00:00
3
+ # timestamp: 2025-06-11T01:25:49+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -37,6 +37,9 @@ from metadata.generated.schema.entity.services.connections.database.db2Connectio
37
37
  from metadata.generated.schema.entity.services.connections.database.deltaLakeConnection import (
38
38
  DeltaLakeType,
39
39
  )
40
+ from metadata.generated.schema.entity.services.connections.database.exasolConnection import (
41
+ ExasolType,
42
+ )
40
43
  from metadata.generated.schema.entity.services.connections.database.hiveConnection import (
41
44
  HiveType,
42
45
  )
@@ -73,9 +76,15 @@ from metadata.generated.schema.entity.services.connections.database.sqliteConnec
73
76
  from metadata.generated.schema.entity.services.connections.database.teradataConnection import (
74
77
  TeradataType,
75
78
  )
79
+ from metadata.generated.schema.entity.services.connections.database.trinoConnection import (
80
+ TrinoType,
81
+ )
76
82
  from metadata.generated.schema.entity.services.connections.database.unityCatalogConnection import (
77
83
  DatabricksType as UnityCatalogType,
78
84
  )
85
+ from metadata.generated.schema.entity.services.connections.database.verticaConnection import (
86
+ VerticaType,
87
+ )
79
88
  from metadata.utils.singleton import Singleton
80
89
 
81
90
 
@@ -106,6 +115,8 @@ class Dialect(Enum):
106
115
  TERADATA = "teradata"
107
116
  TSQL = "tsql"
108
117
  MARIADB = "mariadb"
118
+ TRINO = "trino"
119
+ VERTICA = "vertica"
109
120
 
110
121
 
111
122
  MAP_CONNECTION_TYPE_DIALECT: Dict[str, Dialect] = {
@@ -129,6 +140,9 @@ MAP_CONNECTION_TYPE_DIALECT: Dict[str, Dialect] = {
129
140
  str(TeradataType.Teradata.value): Dialect.TERADATA,
130
141
  str(MariaDBType.MariaDB.value): Dialect.MARIADB,
131
142
  str(SingleStoreType.SingleStore.value): Dialect.MYSQL,
143
+ str(ExasolType.Exasol.value): Dialect.EXASOL,
144
+ str(TrinoType.Trino.value): Dialect.TRINO,
145
+ str(VerticaType.Vertica.value): Dialect.VERTICA,
132
146
  }
133
147
 
134
148
 
@@ -57,6 +57,8 @@ class BaseModel(PydanticBaseModel):
57
57
  if not self.__class__.__name__.endswith("Connection"):
58
58
  # Only parse FilterPattern for Connection classes
59
59
  return
60
+ if not hasattr(self, "__pydantic_fields__"):
61
+ return
60
62
  for field in self.__pydantic_fields__:
61
63
  if field.endswith("FilterPattern"):
62
64
  from metadata.generated.schema.type.filterPattern import (
@@ -113,6 +113,7 @@ class OMetaLineageMixin(Generic[T]):
113
113
  Add lineage relationship between two entities and returns
114
114
  the entity information of the origin node
115
115
  """
116
+ data = deepcopy(data)
116
117
  try:
117
118
  patch_op_success = False
118
119
  if check_patch and data.edge.lineageDetails:
@@ -18,6 +18,7 @@ from metadata.ingestion.ometa.client import REST, ClientConfig
18
18
  from metadata.ingestion.source.dashboard.lightdash.models import (
19
19
  LightdashChart,
20
20
  LightdashDashboard,
21
+ LightdashSpace,
21
22
  )
22
23
  from metadata.utils.helpers import clean_uri
23
24
  from metadata.utils.logger import utils_logger
@@ -28,6 +29,7 @@ logger = utils_logger()
28
29
  class LightdashApiClient:
29
30
  """
30
31
  REST Auth & Client for Lightdash
32
+ API Documentation: https://docs.lightdash.com/api-reference/v1
31
33
  """
32
34
 
33
35
  client: REST
@@ -50,6 +52,44 @@ class LightdashApiClient:
50
52
  "/api/v1/org",
51
53
  )
52
54
 
55
+ def get_spaces(self) -> List[LightdashSpace]:
56
+ """GET Lightdash Spaces within the project"""
57
+ try:
58
+ response = self.client.get(
59
+ f"api/v1/projects/{self.config.projectUUID}/spaces"
60
+ )
61
+ response_json_results = response.get("results")
62
+ if response_json_results is None:
63
+ logger.warning(
64
+ "Failed to fetch the spaces list for the Lightdash Connector"
65
+ )
66
+ return []
67
+
68
+ if len(response_json_results) > 0:
69
+ spaces_list = []
70
+ for space in response_json_results:
71
+ spaces_list.append(LightdashSpace(**space))
72
+ return spaces_list
73
+ except Exception:
74
+ logger.debug(traceback.format_exc())
75
+ logger.warning(
76
+ "Failed to fetch the spaces list for the Lightdash Connector"
77
+ )
78
+ return []
79
+
80
+ def get_project_name(self, project_uuid: str) -> str:
81
+ """GET project name"""
82
+ try:
83
+ response = self.client.get(f"api/v1/projects/{project_uuid}")
84
+ response_json_results = response.get("results")
85
+ return response_json_results["name"]
86
+ except Exception:
87
+ logger.debug(traceback.format_exc())
88
+ logger.warning(
89
+ "Failed to fetch the project data from the Lightdash Connector"
90
+ )
91
+ return ""
92
+
53
93
  def get_charts_list(self) -> List[LightdashChart]:
54
94
  """
55
95
  Get List of all charts
@@ -93,12 +133,15 @@ class LightdashApiClient:
93
133
  )
94
134
  return []
95
135
 
136
+ space_name = results["name"]
96
137
  dashboards_raw = results["dashboards"]
97
138
 
98
139
  if len(dashboards_raw) > 0:
99
140
  dashboards_list = []
100
141
  for dashboard in dashboards_raw:
101
- dashboards_list.append(LightdashDashboard(**dashboard))
142
+ dashboards_list.append(
143
+ LightdashDashboard(**dashboard, spaceName=space_name)
144
+ )
102
145
 
103
146
  self.add_dashboard_lineage(dashboards_list=dashboards_list)
104
147
  return dashboards_list
@@ -109,8 +152,10 @@ class LightdashApiClient:
109
152
  )
110
153
  return []
111
154
 
112
- def add_dashboard_lineage(self, dashboards_list) -> None:
113
- charts_uuid_list = []
155
+ def add_dashboard_lineage(self, dashboards_list: List[LightdashDashboard]) -> None:
156
+ """
157
+ Get Lineage of all dashboard charts
158
+ """
114
159
  for dashboard in dashboards_list:
115
160
  response = self.client.get(f"api/v1/dashboards/{dashboard.uuid}")
116
161
  response_json_results = response.get("results")
@@ -122,14 +167,42 @@ class LightdashApiClient:
122
167
  return
123
168
 
124
169
  charts = response_json_results["tiles"]
125
- charts_properties = [chart["properties"] for chart in charts]
126
-
170
+ # Lightdash has title, loom & markdown chart types which we want to ignore
171
+ accepted_chart_types = ["saved_chart", "sql_chart", "semantic_viewer_chart"]
172
+ charts_properties = [
173
+ chart["properties"]
174
+ for chart in charts
175
+ if chart["type"] in accepted_chart_types
176
+ ]
177
+
178
+ dashboard_external_uuid_charts = []
179
+ dashboard_internal_charts = []
127
180
  for chart in charts_properties:
128
- charts_uuid_list.append(chart["savedChartUuid"])
129
-
130
- dashboard.charts = self.get_charts_objects(charts_uuid_list)
181
+ if chart["belongsToDashboard"]:
182
+ dashboard_internal_charts.append(
183
+ LightdashChart(
184
+ uuid=chart["savedChartUuid"],
185
+ name=chart["chartName"],
186
+ organizationUuid=dashboard.organizationUuid,
187
+ projectUuid=dashboard.projectUuid,
188
+ spaceUuid=dashboard.spaceUuid,
189
+ spaceName=dashboard.spaceName,
190
+ chartType=chart["lastVersionChartKind"],
191
+ chartKind=chart["lastVersionChartKind"],
192
+ )
193
+ )
194
+ else:
195
+ dashboard_external_uuid_charts.append(chart["savedChartUuid"])
196
+
197
+ dashboard_external_charts = self.get_charts_objects(
198
+ dashboard_external_uuid_charts
199
+ )
200
+ dashboard.charts = dashboard_external_charts + dashboard_internal_charts
131
201
 
132
202
  def get_charts_objects(self, charts_uuid_list) -> List[LightdashChart]:
203
+ """
204
+ Get Lineage of all non-dashboard charts
205
+ """
133
206
  all_charts = self.get_charts_list()
134
207
  charts_objects = []
135
208
 
@@ -11,7 +11,7 @@
11
11
  """Lightdash source module"""
12
12
 
13
13
  import traceback
14
- from typing import Iterable, List, Optional
14
+ from typing import Any, Iterable, List, Optional
15
15
 
16
16
  from metadata.generated.schema.api.data.createChart import CreateChartRequest
17
17
  from metadata.generated.schema.api.data.createDashboard import CreateDashboardRequest
@@ -32,16 +32,18 @@ from metadata.generated.schema.type.basic import (
32
32
  Markdown,
33
33
  SourceUrl,
34
34
  )
35
+ from metadata.ingestion.api.models import Either
35
36
  from metadata.ingestion.api.steps import InvalidSourceException
36
37
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
37
38
  from metadata.ingestion.source.dashboard.dashboard_service import DashboardServiceSource
38
39
  from metadata.ingestion.source.dashboard.lightdash.models import (
39
40
  LightdashChart,
40
41
  LightdashDashboard,
42
+ LightdashSpace,
41
43
  )
42
44
  from metadata.utils import fqn
43
45
  from metadata.utils.filters import filter_by_chart
44
- from metadata.utils.helpers import clean_uri, replace_special_with
46
+ from metadata.utils.helpers import clean_uri, get_standard_chart_type
45
47
  from metadata.utils.logger import ingestion_logger
46
48
 
47
49
  logger = ingestion_logger()
@@ -73,12 +75,17 @@ class LightdashSource(DashboardServiceSource):
73
75
  metadata: OpenMetadata,
74
76
  ):
75
77
  super().__init__(config, metadata)
78
+ self.spaces: List[LightdashSpace] = []
76
79
  self.charts: List[LightdashChart] = []
77
80
 
78
81
  def prepare(self):
82
+ self.spaces = self.client.get_spaces()
79
83
  self.charts = self.client.get_charts_list()
80
84
  return super().prepare()
81
85
 
86
+ def get_project_name(self, dashboard_details: Any) -> Optional[str]:
87
+ return self.client.get_project_name(dashboard_details.projectUuid)
88
+
82
89
  def get_dashboards_list(self) -> Optional[List[LightdashDashboard]]:
83
90
  """
84
91
  Get List of all dashboards
@@ -101,18 +108,21 @@ class LightdashSource(DashboardServiceSource):
101
108
 
102
109
  def yield_dashboard(
103
110
  self, dashboard_details: LightdashDashboard
104
- ) -> Iterable[CreateDashboardRequest]:
111
+ ) -> Iterable[Either[CreateDashboardRequest]]:
105
112
  """
106
113
  Method to Get Dashboard Entity
107
114
  """
108
115
  try:
109
116
  dashboard_url = (
110
- f"{clean_uri(self.service_connection.hostPort)}/dashboard/{dashboard_details.uuid}-"
111
- f"{replace_special_with(raw=dashboard_details.name.lower(), replacement='-')}"
117
+ f"{clean_uri(self.service_connection.hostPort)}/projects/{dashboard_details.projectUuid}"
118
+ f"/dashboards/{dashboard_details.uuid}/view"
112
119
  )
120
+ dashboard_charts = [chart.uuid for chart in dashboard_details.charts]
121
+
113
122
  dashboard_request = CreateDashboardRequest(
114
123
  name=EntityName(dashboard_details.uuid),
115
124
  sourceUrl=SourceUrl(dashboard_url),
125
+ project=self.client.get_project_name(dashboard_details.projectUuid),
116
126
  displayName=dashboard_details.name,
117
127
  description=Markdown(dashboard_details.description)
118
128
  if dashboard_details.description
@@ -126,12 +136,12 @@ class LightdashSource(DashboardServiceSource):
126
136
  chart_name=chart,
127
137
  )
128
138
  )
129
- for chart in self.context.get().charts or []
139
+ for chart in dashboard_charts or []
130
140
  ],
131
141
  service=self.context.get().dashboard_service,
132
142
  owners=self.get_owner_ref(dashboard_details=dashboard_details),
133
143
  )
134
- yield dashboard_request
144
+ yield Either(right=dashboard_request)
135
145
  self.register_record(dashboard_request=dashboard_request)
136
146
  except Exception as exc: # pylint: disable=broad-except
137
147
  logger.debug(traceback.format_exc())
@@ -140,8 +150,8 @@ class LightdashSource(DashboardServiceSource):
140
150
  )
141
151
 
142
152
  def yield_dashboard_chart(
143
- self, dashboard_details: LightdashChart
144
- ) -> Iterable[Optional[CreateChartRequest]]:
153
+ self, dashboard_details: LightdashDashboard
154
+ ) -> Iterable[Either[CreateChartRequest]]:
145
155
  """Get chart method
146
156
 
147
157
  Args:
@@ -149,24 +159,32 @@ class LightdashSource(DashboardServiceSource):
149
159
  Returns:
150
160
  Iterable[CreateChartRequest]
151
161
  """
152
- charts = self.charts
153
- for chart in charts:
162
+ # charts = self.charts
163
+ logger.info(
164
+ f"Processing ChartRequests for dashboard {dashboard_details.spaceName}:{dashboard_details.name}"
165
+ )
166
+ for chart in dashboard_details.charts:
154
167
  try:
155
168
  chart_url = (
156
- f"{clean_uri(self.service_connection.hostPort)}/question/{chart.uuid}-"
157
- f"{replace_special_with(raw=chart.name.lower(), replacement='-')}"
169
+ f"{clean_uri(self.service_connection.hostPort)}/projects/{dashboard_details.projectUuid}"
170
+ f"/saved/{chart.uuid}"
158
171
  )
172
+ chart_type = get_standard_chart_type(chart.chartKind).value
173
+
159
174
  if filter_by_chart(self.source_config.chartFilterPattern, chart.name):
160
175
  self.status.filter(chart.name, "Chart Pattern not allowed")
161
176
  continue
162
- yield CreateChartRequest(
163
- name=EntityName(chart.uuid),
164
- displayName=chart.name,
165
- description=Markdown(chart.description)
166
- if chart.description
167
- else None,
168
- sourceUrl=SourceUrl(chart_url),
169
- service=self.context.get().dashboard_service,
177
+ yield Either(
178
+ right=CreateChartRequest(
179
+ name=EntityName(chart.uuid),
180
+ displayName=chart.name,
181
+ description=Markdown(chart.description)
182
+ if chart.description
183
+ else None,
184
+ sourceUrl=SourceUrl(chart_url),
185
+ service=self.context.get().dashboard_service,
186
+ chartType=chart_type,
187
+ )
170
188
  )
171
189
  self.status.scanned(chart.name)
172
190
  except Exception as exc: # pylint: disable=broad-except
@@ -19,6 +19,7 @@ class LightdashChart(BaseModel):
19
19
  pinnedListUuid: Optional[str] = None
20
20
  spaceName: str
21
21
  chartType: Optional[str] = None
22
+ chartKind: Optional[str] = None
22
23
  dashboardUuid: Optional[str] = None
23
24
  dashboardName: Optional[str] = None
24
25
 
@@ -31,6 +32,7 @@ class LightdashDashboard(BaseModel):
31
32
  projectUuid: str
32
33
  updatedAt: str
33
34
  spaceUuid: str
35
+ spaceName: Optional[str] = None
34
36
  views: float
35
37
  firstViewedAt: str
36
38
  pinnedListUuid: Optional[str] = None
@@ -38,6 +40,15 @@ class LightdashDashboard(BaseModel):
38
40
  charts: Optional[List[LightdashChart]] = None
39
41
 
40
42
 
43
+ class LightdashSpace(BaseModel):
44
+ organizationUuid: str
45
+ projectUuid: str
46
+ uuid: str
47
+ name: str
48
+ isPrivate: bool
49
+ parentSpaceUuid: Optional[str] = None
50
+
51
+
41
52
  class LightdashChartList(BaseModel):
42
53
  charts: Optional[List[LightdashChart]] = None
43
54
 
@@ -880,15 +880,23 @@ class LookerSource(DashboardServiceSource):
880
880
  self._parsed_views[view_name] = sql_query
881
881
  for from_table_name in lineage_parser.source_tables:
882
882
  # Process column level lineage
883
- column_lineage = [
884
- (
885
- source_col.raw_name,
886
- target_col.raw_name,
887
- )
888
- for source_col, target_col in lineage_parser.column_lineage
889
- or []
890
- if source_col.parent == from_table_name
891
- ]
883
+ column_lineage = []
884
+ for column_tuple in lineage_parser.column_lineage or []:
885
+ if (
886
+ column_tuple
887
+ and hasattr(column_tuple[0], "parent")
888
+ and column_tuple[0].parent == from_table_name
889
+ ):
890
+ column_lineage.append(
891
+ (
892
+ column_tuple[0].raw_name
893
+ if hasattr(column_tuple[0], "raw_name")
894
+ else column_tuple[0],
895
+ column_tuple[-1].raw_name
896
+ if hasattr(column_tuple[-1], "raw_name")
897
+ else column_tuple[-1],
898
+ )
899
+ )
892
900
  yield self.build_lineage_request(
893
901
  source=str(from_table_name),
894
902
  db_service_name=db_service_name,
@@ -13,7 +13,7 @@ Wrapper module of TableauServerConnection client
13
13
  """
14
14
  import math
15
15
  import traceback
16
- from typing import Callable, Dict, List, Optional, Tuple, Union
16
+ from typing import Callable, Dict, Iterable, List, Optional, Tuple, Union
17
17
 
18
18
  import validators
19
19
  from cached_property import cached_property
@@ -77,16 +77,18 @@ class TableauClient:
77
77
  self,
78
78
  tableau_server_auth: Union[PersonalAccessTokenAuth, TableauAuth],
79
79
  config,
80
- verify_ssl,
80
+ verify_ssl: Union[bool, str],
81
81
  pagination_limit: int,
82
82
  ):
83
83
  self.tableau_server = Server(str(config.hostPort), use_server_version=True)
84
+ if config.apiVersion:
85
+ self.tableau_server.version = config.apiVersion
84
86
  self.tableau_server.add_http_options({"verify": verify_ssl})
85
87
  self.tableau_server.auth.sign_in(tableau_server_auth)
86
88
  self.config = config
87
89
  self.pagination_limit = pagination_limit
88
90
  self.custom_sql_table_queries: Dict[str, List[str]] = {}
89
- self.usage_metrics: Dict[str, int] = {}
91
+ self.owner_cache: Dict[str, TableauOwner] = {}
90
92
 
91
93
  @cached_property
92
94
  def server_info(self) -> Callable:
@@ -101,9 +103,15 @@ class TableauClient:
101
103
 
102
104
  def get_tableau_owner(self, owner_id: str) -> Optional[TableauOwner]:
103
105
  try:
106
+ if owner_id in self.owner_cache:
107
+ return self.owner_cache[owner_id]
104
108
  owner = self.tableau_server.users.get_by_id(owner_id) if owner_id else None
105
109
  if owner and owner.email:
106
- return TableauOwner(id=owner.id, name=owner.name, email=owner.email)
110
+ owner_obj = TableauOwner(
111
+ id=owner.id, name=owner.name, email=owner.email
112
+ )
113
+ self.owner_cache[owner_id] = owner_obj
114
+ return owner_obj
107
115
  except Exception as err:
108
116
  logger.debug(f"Failed to fetch owner details for ID {owner_id}: {str(err)}")
109
117
  return None
@@ -130,21 +138,20 @@ class TableauClient:
130
138
  )
131
139
  view_count += view.total_views
132
140
  except AttributeError as e:
133
- logger.warning(
141
+ logger.debug(
134
142
  f"Failed to process view due to missing attribute: {str(e)}"
135
143
  )
136
144
  continue
137
145
  except Exception as e:
138
- logger.warning(f"Failed to process view: {str(e)}")
146
+ logger.debug(f"Failed to process view: {str(e)}")
139
147
  continue
140
148
 
141
149
  return charts, view_count
142
150
 
143
- def get_workbooks(self) -> List[TableauDashboard]:
151
+ def get_workbooks(self) -> Iterable[TableauDashboard]:
144
152
  """
145
153
  Fetch all tableau workbooks
146
154
  """
147
- workbooks: Optional[List[TableauDashboard]] = []
148
155
  self.cache_custom_sql_tables()
149
156
  for workbook in Pager(self.tableau_server.workbooks):
150
157
  try:
@@ -152,22 +159,20 @@ class TableauClient:
152
159
  charts, user_views = self.get_workbook_charts_and_user_count(
153
160
  workbook.views
154
161
  )
155
- workbooks.append(
156
- TableauDashboard(
157
- id=workbook.id,
158
- name=workbook.name,
159
- project=TableauBaseModel(
160
- id=workbook.project_id, name=workbook.project_name
161
- ),
162
- description=workbook.description,
163
- owner=self.get_tableau_owner(workbook.owner_id),
164
- tags=workbook.tags,
165
- webpageUrl=workbook.webpage_url,
166
- charts=charts,
167
- dataModels=self.get_datasources(dashboard_id=workbook.id),
168
- user_views=user_views,
169
- )
162
+ workbook = TableauDashboard(
163
+ id=workbook.id,
164
+ name=workbook.name,
165
+ project=TableauBaseModel(
166
+ id=workbook.project_id, name=workbook.project_name
167
+ ),
168
+ owner=self.get_tableau_owner(workbook.owner_id),
169
+ description=workbook.description,
170
+ tags=workbook.tags,
171
+ webpageUrl=workbook.webpage_url,
172
+ charts=charts,
173
+ user_views=user_views,
170
174
  )
175
+ yield workbook
171
176
  except AttributeError as err:
172
177
  logger.warning(
173
178
  f"Failed to process workbook due to missing attribute: {str(err)}"
@@ -176,7 +181,6 @@ class TableauClient:
176
181
  except Exception as err:
177
182
  logger.warning(f"Failed to process workbook: {str(err)}")
178
183
  continue
179
- return workbooks
180
184
 
181
185
  def test_get_workbooks(self):
182
186
  for workbook in Pager(self.tableau_server.workbooks):
@@ -13,7 +13,7 @@
13
13
  Source connection handler
14
14
  """
15
15
  import traceback
16
- from typing import Any, Dict, Optional
16
+ from typing import Any, Dict, Optional, Union
17
17
 
18
18
  import tableauserverclient as TSC
19
19
 
@@ -38,7 +38,6 @@ from metadata.ingestion.ometa.ometa_api import OpenMetadata
38
38
  from metadata.ingestion.source.dashboard.tableau.client import TableauClient
39
39
  from metadata.utils.constants import THREE_MIN
40
40
  from metadata.utils.logger import ingestion_logger
41
- from metadata.utils.ssl_registry import get_verify_ssl_fn
42
41
 
43
42
  logger = ingestion_logger()
44
43
 
@@ -48,12 +47,12 @@ def get_connection(connection: TableauConnection) -> TableauClient:
48
47
  Create connection
49
48
  """
50
49
  tableau_server_auth = build_server_config(connection)
51
- get_verify_ssl = get_verify_ssl_fn(connection.verifySSL)
50
+ verify_ssl = set_verify_ssl(connection)
52
51
  try:
53
52
  return TableauClient(
54
53
  tableau_server_auth=tableau_server_auth,
55
54
  config=connection,
56
- verify_ssl=get_verify_ssl(connection.sslConfig),
55
+ verify_ssl=verify_ssl,
57
56
  pagination_limit=connection.paginationLimit,
58
57
  )
59
58
  except Exception as exc:
@@ -63,6 +62,21 @@ def get_connection(connection: TableauConnection) -> TableauClient:
63
62
  )
64
63
 
65
64
 
65
+ def set_verify_ssl(connection: TableauConnection) -> Union[bool, str]:
66
+ """
67
+ Set verify ssl based on connection configuration
68
+ ref: https://tableau.github.io/server-client-python/docs/sign-in-out#handling-ssl-certificates-for-tableau-server
69
+ """
70
+ if connection.verifySSL.value == "validate":
71
+ if connection.sslConfig.root.caCertificate:
72
+ return connection.sslConfig.root.caCertificate.get_secret_value()
73
+ if connection.sslConfig.root.sslCertificate:
74
+ return connection.sslConfig.root.sslCertificate.get_secret_value()
75
+ if connection.verifySSL.value == "ignore":
76
+ return False
77
+ return None
78
+
79
+
66
80
  def test_connection(
67
81
  metadata: OpenMetadata,
68
82
  client: TableauClient,
@@ -127,8 +127,8 @@ class TableauSource(DashboardServiceSource):
127
127
  )
128
128
  return cls(config, metadata)
129
129
 
130
- def get_dashboards_list(self) -> Optional[List[TableauDashboard]]:
131
- return self.client.get_workbooks()
130
+ def get_dashboards_list(self) -> Iterable[TableauDashboard]:
131
+ yield from self.client.get_workbooks()
132
132
 
133
133
  def get_dashboard_name(self, dashboard: TableauDashboard) -> str:
134
134
  return dashboard.name
@@ -137,6 +137,7 @@ class TableauSource(DashboardServiceSource):
137
137
  """
138
138
  Get Dashboard Details including the dashboard charts and datamodels
139
139
  """
140
+ dashboard.dataModels = self.client.get_datasources(dashboard.id)
140
141
  return dashboard
141
142
 
142
143
  def get_owner_ref(