openmetadata-ingestion 1.7.1.5__py3-none-any.whl → 1.7.2.1__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 (738) 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/api/topology_runner.py +23 -24
  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/powerbi/metadata.py +37 -28
  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/dashboard/tableau/models.py +11 -1
  706. metadata/ingestion/source/database/databricks/metadata.py +50 -0
  707. metadata/ingestion/source/database/databricks/queries.py +4 -0
  708. metadata/ingestion/source/database/databricks/service_spec.py +2 -0
  709. metadata/ingestion/source/database/db2/connection.py +15 -0
  710. metadata/ingestion/source/database/db2/utils.py +130 -0
  711. metadata/ingestion/source/database/dbt/metadata.py +17 -2
  712. metadata/ingestion/source/database/doris/metadata.py +4 -1
  713. metadata/ingestion/source/database/snowflake/metadata.py +19 -0
  714. metadata/ingestion/source/database/trino/queries.py +1 -1
  715. metadata/ingestion/source/database/trino/query_parser.py +15 -0
  716. metadata/ingestion/source/database/unitycatalog/service_spec.py +1 -1
  717. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +7 -7
  718. metadata/pii/algorithms/classifiers.py +6 -2
  719. metadata/pii/algorithms/presidio_patches.py +38 -0
  720. metadata/sampler/sqlalchemy/azuresql/sampler.py +4 -5
  721. metadata/sampler/sqlalchemy/databricks/sampler.py +26 -0
  722. metadata/sampler/sqlalchemy/mssql/sampler.py +2 -3
  723. metadata/sampler/sqlalchemy/sampler.py +2 -0
  724. metadata/sampler/sqlalchemy/snowflake/sampler.py +2 -3
  725. metadata/utils/filters.py +13 -0
  726. metadata/utils/helpers.py +1 -0
  727. metadata/utils/sqlalchemy_utils.py +21 -0
  728. metadata/workflow/context/base.py +24 -0
  729. metadata/workflow/context/context_manager.py +124 -0
  730. metadata/workflow/context/workflow_context.py +29 -0
  731. metadata/workflow/workflow_status_mixin.py +33 -12
  732. {openmetadata_ingestion-1.7.1.5.dist-info → openmetadata_ingestion-1.7.2.1.dist-info}/METADATA +424 -424
  733. {openmetadata_ingestion-1.7.1.5.dist-info → openmetadata_ingestion-1.7.2.1.dist-info}/RECORD +738 -733
  734. /metadata/{profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py → sampler/sqlalchemy/unitycatalog/sampler.py} +0 -0
  735. {openmetadata_ingestion-1.7.1.5.dist-info → openmetadata_ingestion-1.7.2.1.dist-info}/LICENSE +0 -0
  736. {openmetadata_ingestion-1.7.1.5.dist-info → openmetadata_ingestion-1.7.2.1.dist-info}/WHEEL +0 -0
  737. {openmetadata_ingestion-1.7.1.5.dist-info → openmetadata_ingestion-1.7.2.1.dist-info}/entry_points.txt +0 -0
  738. {openmetadata_ingestion-1.7.1.5.dist-info → openmetadata_ingestion-1.7.2.1.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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+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-09T12:47:28+00:00
3
+ # timestamp: 2025-06-12T10:55:12+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -393,32 +393,31 @@ class TopologyRunnerMixin(Generic[C]):
393
393
  if entity is None and stage.use_cache:
394
394
  # check if we find the entity in the entities list
395
395
  entity_source_hash = self.cache[stage.type_].get(entity_fqn)
396
- if entity_source_hash:
397
- # if the source hash is present, compare it with new hash
398
- # if overrideMetadata is true, we will always update the entity
399
- if (
400
- entity_source_hash != create_entity_request_hash
401
- or self.source_config.overrideMetadata
402
- ):
403
- # the entity has changed, get the entity from server and make a patch request
404
- entity = self.metadata.get_by_name(
405
- entity=stage.type_,
406
- fqn=entity_fqn,
407
- fields=["*"],
408
- )
396
+ # if the source hash is not present or different from new hash, update the entity
397
+ # if overrideMetadata is true, we will always update the entity
398
+ if (
399
+ entity_source_hash != create_entity_request_hash
400
+ or self.source_config.overrideMetadata
401
+ ):
402
+ # the entity has changed, get the entity from server and make a patch request
403
+ entity = self.metadata.get_by_name(
404
+ entity=stage.type_,
405
+ fqn=entity_fqn,
406
+ fields=["*"],
407
+ )
409
408
 
410
- # we return the entity for a patch update
411
- if entity:
412
- patch_entity = self.create_patch_request(
413
- original_entity=entity, create_request=entity_request.right
414
- )
415
- entity_request.right = patch_entity
416
- else:
417
- # nothing has changed on the source skip the API call
418
- logger.debug(
419
- f"No changes detected for {str(stage.type_.__name__)} '{entity_fqn}'"
409
+ # we return the entity for a patch update
410
+ if entity:
411
+ patch_entity = self.create_patch_request(
412
+ original_entity=entity, create_request=entity_request.right
420
413
  )
421
- same_fingerprint = True
414
+ entity_request.right = patch_entity
415
+ else:
416
+ # nothing has changed on the source skip the API call
417
+ logger.debug(
418
+ f"No changes detected for {str(stage.type_.__name__)} '{entity_fqn}'"
419
+ )
420
+ same_fingerprint = True
422
421
 
423
422
  if not same_fingerprint:
424
423
  # We store the generated source hash and yield the request
@@ -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
 
@@ -80,6 +80,8 @@ from metadata.utils.logger import ingestion_logger
80
80
 
81
81
  logger = ingestion_logger()
82
82
 
83
+ OWNER_ACCESS_RIGHTS_KEYWORDS = ["owner", "write", "admin"]
84
+
83
85
 
84
86
  class PowerbiSource(DashboardServiceSource):
85
87
  """PowerBi Source Class"""
@@ -1017,42 +1019,49 @@ class PowerbiSource(DashboardServiceSource):
1017
1019
  elif isinstance(dashboard_details, PowerBIDashboard):
1018
1020
  access_right = owner.dashboardUserAccessRight
1019
1021
 
1020
- if owner.userType != "Member" or (
1021
- isinstance(
1022
- dashboard_details, (Dataflow, PowerBIReport, PowerBIDashboard)
1023
- )
1024
- and access_right != "Owner"
1025
- ):
1022
+ if owner.userType != "Member":
1026
1023
  logger.warning(
1027
- f"User is not a member and has no access to the {dashboard_details.id}: ({owner.displayName}, {owner.email})"
1024
+ f"User is not a member of {dashboard_details.id}:"
1025
+ f" ({owner.displayName}, {owner.email})"
1028
1026
  )
1029
1027
  continue
1030
- if owner.email:
1031
- try:
1032
- owner_email = EmailStr._validate(owner.email)
1033
- except PydanticCustomError:
1034
- logger.warning(f"Invalid email for owner: {owner.email}")
1035
- owner_email = None
1036
- if owner_email:
1028
+ if access_right and any(
1029
+ keyword in access_right.lower()
1030
+ for keyword in OWNER_ACCESS_RIGHTS_KEYWORDS
1031
+ ):
1032
+ if owner.email:
1033
+ try:
1034
+ owner_email = EmailStr._validate(owner.email)
1035
+ except PydanticCustomError:
1036
+ logger.warning(f"Invalid email for owner: {owner.email}")
1037
+ owner_email = None
1038
+ if owner_email:
1039
+ try:
1040
+ owner_ref = self.metadata.get_reference_by_email(
1041
+ owner_email.lower()
1042
+ )
1043
+ except Exception as err:
1044
+ logger.warning(
1045
+ f"Could not process owner data with email"
1046
+ f" {owner.email} in {dashboard_details.id}: {err}"
1047
+ )
1048
+ elif owner.displayName:
1037
1049
  try:
1038
- owner_ref = self.metadata.get_reference_by_email(
1039
- owner_email.lower()
1050
+ owner_ref = self.metadata.get_reference_by_name(
1051
+ name=owner.displayName
1040
1052
  )
1041
1053
  except Exception as err:
1042
1054
  logger.warning(
1043
- f"Could not fetch owner data with email {owner.email} in {dashboard_details.id}: {err}"
1055
+ f"Could not process owner data with name"
1056
+ f" {owner.displayName} in {dashboard_details.id}: {err}"
1044
1057
  )
1045
- elif owner.displayName:
1046
- try:
1047
- owner_ref = self.metadata.get_reference_by_name(
1048
- name=owner.displayName
1049
- )
1050
- except Exception as err:
1051
- logger.warning(
1052
- f"Could not process owner data with name {owner.displayName} in {dashboard_details.id}: {err}"
1053
- )
1054
- if owner_ref:
1055
- owner_ref_list.append(owner_ref.root[0])
1058
+ if owner_ref:
1059
+ owner_ref_list.append(owner_ref.root[0])
1060
+ else:
1061
+ logger.warning(
1062
+ f"User does not have owner, admin or write access to"
1063
+ f" {dashboard_details.id}: ({owner.displayName}, {owner.email})"
1064
+ )
1056
1065
  # check for last modified, configuredBy user
1057
1066
  current_active_user = None
1058
1067
  if isinstance(dashboard_details, Dataset):
@@ -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):