openmetadata-ingestion 1.6.7.1__py3-none-any.whl → 1.7.0.0rc1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (867) hide show
  1. metadata/automations/execute_runner.py +49 -0
  2. metadata/automations/extended_runner.py +13 -0
  3. metadata/automations/runner.py +34 -35
  4. metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +11 -1
  5. metadata/examples/workflows/cassandra.yaml +35 -0
  6. metadata/examples/workflows/cockroach.yaml +24 -0
  7. metadata/examples/workflows/nifi.yaml +51 -0
  8. metadata/examples/workflows/opensearch.yaml +20 -0
  9. metadata/generated/schema/analytics/__init__.py +1 -1
  10. metadata/generated/schema/analytics/basic.py +1 -1
  11. metadata/generated/schema/analytics/reportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  16. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  17. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  20. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  21. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  22. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  23. metadata/generated/schema/api/__init__.py +1 -1
  24. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  25. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  26. metadata/generated/schema/api/analytics/__init__.py +1 -1
  27. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  28. metadata/generated/schema/api/automations/__init__.py +1 -1
  29. metadata/generated/schema/api/automations/createWorkflow.py +14 -4
  30. metadata/generated/schema/api/bulkAssets.py +1 -1
  31. metadata/generated/schema/api/classification/__init__.py +1 -1
  32. metadata/generated/schema/api/classification/createClassification.py +2 -2
  33. metadata/generated/schema/api/classification/createTag.py +2 -2
  34. metadata/generated/schema/api/classification/loadTags.py +1 -1
  35. metadata/generated/schema/api/createBot.py +1 -1
  36. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  37. metadata/generated/schema/api/createType.py +1 -1
  38. metadata/generated/schema/api/data/__init__.py +1 -1
  39. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  40. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  41. metadata/generated/schema/api/data/createChart.py +1 -1
  42. metadata/generated/schema/api/data/createContainer.py +1 -1
  43. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  44. metadata/generated/schema/api/data/createDashboard.py +1 -1
  45. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  46. metadata/generated/schema/api/data/createDatabase.py +1 -1
  47. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  48. metadata/generated/schema/api/data/createGlossary.py +1 -1
  49. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  50. metadata/generated/schema/api/data/createMetric.py +1 -1
  51. metadata/generated/schema/api/data/createMlModel.py +1 -1
  52. metadata/generated/schema/api/data/createPipeline.py +5 -1
  53. metadata/generated/schema/api/data/createQuery.py +1 -1
  54. metadata/generated/schema/api/data/createQueryCostRecord.py +35 -0
  55. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  56. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  57. metadata/generated/schema/api/data/createTable.py +1 -1
  58. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  59. metadata/generated/schema/api/data/createTopic.py +1 -1
  60. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  61. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  62. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  63. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  64. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  65. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  66. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  67. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  68. metadata/generated/schema/api/docStore/__init__.py +1 -1
  69. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  70. metadata/generated/schema/api/domains/__init__.py +1 -1
  71. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  72. metadata/generated/schema/api/domains/createDomain.py +8 -1
  73. metadata/generated/schema/api/feed/__init__.py +1 -1
  74. metadata/generated/schema/api/feed/closeTask.py +1 -1
  75. metadata/generated/schema/api/feed/createPost.py +1 -1
  76. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  77. metadata/generated/schema/api/feed/createThread.py +1 -1
  78. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  79. metadata/generated/schema/api/feed/threadCount.py +25 -1
  80. metadata/generated/schema/api/governance/__init__.py +1 -1
  81. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  82. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  83. metadata/generated/schema/api/lineage/__init__.py +1 -1
  84. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  85. metadata/generated/schema/api/lineage/esLineageData.py +85 -0
  86. metadata/generated/schema/api/lineage/lineageDirection.py +12 -0
  87. metadata/generated/schema/api/lineage/nodeInformation.py +19 -0
  88. metadata/generated/schema/api/lineage/searchLineageRequest.py +45 -0
  89. metadata/generated/schema/api/lineage/searchLineageResult.py +46 -0
  90. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  91. metadata/generated/schema/api/policies/__init__.py +1 -1
  92. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  93. metadata/generated/schema/api/search/__init__.py +3 -0
  94. metadata/generated/schema/api/search/previewSearchRequest.py +47 -0
  95. metadata/generated/schema/api/services/__init__.py +1 -1
  96. metadata/generated/schema/api/services/createApiService.py +9 -2
  97. metadata/generated/schema/api/services/createDashboardService.py +9 -2
  98. metadata/generated/schema/api/services/createDatabaseService.py +9 -2
  99. metadata/generated/schema/api/services/createMessagingService.py +9 -2
  100. metadata/generated/schema/api/services/createMetadataService.py +9 -2
  101. metadata/generated/schema/api/services/createMlModelService.py +9 -2
  102. metadata/generated/schema/api/services/createPipelineService.py +9 -2
  103. metadata/generated/schema/api/services/createSearchService.py +9 -2
  104. metadata/generated/schema/api/services/createStorageService.py +9 -2
  105. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  106. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  107. metadata/generated/schema/api/setOwner.py +1 -1
  108. metadata/generated/schema/api/teams/__init__.py +1 -1
  109. metadata/generated/schema/api/teams/createPersona.py +1 -1
  110. metadata/generated/schema/api/teams/createRole.py +1 -1
  111. metadata/generated/schema/api/teams/createTeam.py +1 -1
  112. metadata/generated/schema/api/teams/createUser.py +1 -1
  113. metadata/generated/schema/api/tests/__init__.py +1 -1
  114. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  115. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  116. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  117. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  118. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  119. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  120. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  121. metadata/generated/schema/api/voteRequest.py +1 -1
  122. metadata/generated/schema/auth/__init__.py +1 -1
  123. metadata/generated/schema/auth/basicAuth.py +1 -1
  124. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  125. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  126. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  127. metadata/generated/schema/auth/emailRequest.py +1 -1
  128. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  129. metadata/generated/schema/auth/generateToken.py +1 -1
  130. metadata/generated/schema/auth/jwtAuth.py +1 -1
  131. metadata/generated/schema/auth/loginRequest.py +1 -1
  132. metadata/generated/schema/auth/logoutRequest.py +1 -1
  133. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  134. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  135. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  136. metadata/generated/schema/auth/refreshToken.py +1 -1
  137. metadata/generated/schema/auth/registrationRequest.py +1 -1
  138. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  139. metadata/generated/schema/auth/revokeToken.py +1 -1
  140. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  141. metadata/generated/schema/auth/ssoAuth.py +1 -1
  142. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  143. metadata/generated/schema/configuration/__init__.py +1 -1
  144. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  146. metadata/generated/schema/configuration/authConfig.py +1 -1
  147. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/authorizerConfiguration.py +4 -1
  149. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  150. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  151. metadata/generated/schema/configuration/elasticSearchConfiguration.py +55 -1
  152. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  153. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  154. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  155. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  158. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  159. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  160. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  161. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  162. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  163. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  165. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +21 -0
  168. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/searchSettings.py +428 -4
  171. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  176. metadata/generated/schema/configuration/workflowSettings.py +8 -1
  177. metadata/generated/schema/dataInsight/__init__.py +1 -1
  178. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  179. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  180. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  181. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  182. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  183. metadata/generated/schema/dataInsight/custom/lineChart.py +15 -1
  184. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  185. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  186. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  187. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  188. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  189. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  190. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  191. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  192. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  193. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  194. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  195. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  196. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  197. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  198. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  199. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  200. metadata/generated/schema/email/__init__.py +1 -1
  201. metadata/generated/schema/email/emailRequest.py +1 -1
  202. metadata/generated/schema/email/emailTemplate.py +1 -1
  203. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  204. metadata/generated/schema/email/smtpSettings.py +1 -2
  205. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  206. metadata/generated/schema/entity/__init__.py +1 -1
  207. metadata/generated/schema/entity/applications/__init__.py +1 -1
  208. metadata/generated/schema/entity/applications/app.py +14 -1
  209. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  210. metadata/generated/schema/entity/applications/appRunRecord.py +23 -4
  211. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +9 -3
  213. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  216. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +41 -0
  217. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  218. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +71 -0
  222. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  226. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +33 -0
  227. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +45 -0
  232. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +13 -1
  234. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +46 -0
  238. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +46 -0
  239. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +109 -2
  240. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/internal/dayOneExperienceAppConfig.py +48 -0
  243. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/private/__init__.py +3 -0
  245. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +3 -22
  247. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +3 -0
  248. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +24 -0
  249. metadata/generated/schema/entity/applications/configuration/private/limits.py +33 -0
  250. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  251. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  252. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  253. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  254. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +13 -1
  255. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +13 -1
  256. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  257. metadata/generated/schema/entity/automations/__init__.py +1 -1
  258. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  259. metadata/generated/schema/entity/automations/workflow.py +15 -4
  260. metadata/generated/schema/entity/bot.py +1 -1
  261. metadata/generated/schema/entity/classification/__init__.py +1 -1
  262. metadata/generated/schema/entity/classification/classification.py +1 -1
  263. metadata/generated/schema/entity/classification/tag.py +1 -1
  264. metadata/generated/schema/entity/data/__init__.py +1 -1
  265. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  266. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  267. metadata/generated/schema/entity/data/chart.py +1 -1
  268. metadata/generated/schema/entity/data/container.py +1 -1
  269. metadata/generated/schema/entity/data/dashboard.py +1 -1
  270. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  271. metadata/generated/schema/entity/data/database.py +5 -1
  272. metadata/generated/schema/entity/data/databaseSchema.py +7 -5
  273. metadata/generated/schema/entity/data/glossary.py +1 -1
  274. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  275. metadata/generated/schema/entity/data/metric.py +1 -1
  276. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  277. metadata/generated/schema/entity/data/pipeline.py +14 -1
  278. metadata/generated/schema/entity/data/query.py +1 -1
  279. metadata/generated/schema/entity/data/queryCostRecord.py +47 -0
  280. metadata/generated/schema/entity/data/queryCostSearchResult.py +56 -0
  281. metadata/generated/schema/entity/data/report.py +1 -1
  282. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  283. metadata/generated/schema/entity/data/storedProcedure.py +3 -1
  284. metadata/generated/schema/entity/data/table.py +6 -1
  285. metadata/generated/schema/entity/data/topic.py +1 -1
  286. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  287. metadata/generated/schema/entity/docStore/document.py +1 -1
  288. metadata/generated/schema/entity/domains/__init__.py +1 -1
  289. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  290. metadata/generated/schema/entity/domains/domain.py +8 -1
  291. metadata/generated/schema/entity/events/__init__.py +1 -1
  292. metadata/generated/schema/entity/events/webhook.py +1 -1
  293. metadata/generated/schema/entity/feed/__init__.py +1 -1
  294. metadata/generated/schema/entity/feed/assets.py +1 -1
  295. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  296. metadata/generated/schema/entity/feed/description.py +1 -1
  297. metadata/generated/schema/entity/feed/domain.py +1 -1
  298. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  299. metadata/generated/schema/entity/feed/owner.py +1 -1
  300. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  301. metadata/generated/schema/entity/feed/tag.py +1 -1
  302. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  303. metadata/generated/schema/entity/feed/thread.py +1 -1
  304. metadata/generated/schema/entity/policies/__init__.py +1 -1
  305. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  306. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  307. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  308. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  309. metadata/generated/schema/entity/policies/filters.py +1 -1
  310. metadata/generated/schema/entity/policies/policy.py +1 -1
  311. metadata/generated/schema/entity/services/__init__.py +1 -1
  312. metadata/generated/schema/entity/services/apiService.py +8 -1
  313. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  314. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  315. metadata/generated/schema/entity/services/connections/api/restConnection.py +11 -1
  316. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  317. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  318. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  319. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  320. metadata/generated/schema/entity/services/connections/connectionBasicType.py +7 -1
  321. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  322. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +34 -1
  323. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +34 -1
  324. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +34 -1
  325. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +34 -1
  326. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +34 -1
  327. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +34 -1
  328. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +34 -1
  329. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +34 -1
  330. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +34 -1
  331. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  333. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  334. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  335. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  336. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +50 -2
  337. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +34 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +34 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +34 -1
  340. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +35 -1
  341. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +34 -1
  342. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +34 -1
  343. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +26 -1
  345. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +26 -1
  346. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +36 -1
  347. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +26 -1
  348. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +3 -0
  349. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +61 -0
  350. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +106 -0
  351. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +26 -1
  352. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +136 -0
  353. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +26 -1
  360. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +26 -1
  361. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +37 -2
  362. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +26 -1
  367. metadata/generated/schema/entity/services/connections/database/db2Connection.py +26 -1
  368. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +26 -1
  369. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +26 -1
  373. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +26 -1
  374. metadata/generated/schema/entity/services/connections/database/druidConnection.py +26 -1
  375. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +26 -1
  376. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +26 -1
  377. metadata/generated/schema/entity/services/connections/database/glueConnection.py +26 -1
  378. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +26 -1
  379. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +26 -1
  380. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +26 -1
  388. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +26 -1
  389. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +26 -1
  390. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +26 -1
  391. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +42 -2
  392. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +32 -2
  393. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +32 -2
  394. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +26 -1
  395. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +37 -2
  396. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +26 -1
  397. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +41 -2
  398. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +26 -1
  399. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +26 -1
  400. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +26 -1
  404. metadata/generated/schema/entity/services/connections/database/sasConnection.py +27 -1
  405. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +26 -1
  406. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +58 -3
  407. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +26 -1
  408. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +26 -1
  409. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +26 -1
  410. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +26 -1
  411. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +37 -2
  412. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +26 -1
  413. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  414. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +10 -1
  415. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +10 -1
  416. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +10 -1
  417. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +10 -1
  418. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +10 -1
  419. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  420. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  421. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +26 -1
  422. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +26 -1
  423. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +26 -1
  424. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +26 -1
  425. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +26 -1
  426. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +26 -2
  427. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  428. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +10 -1
  429. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +10 -1
  430. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +10 -1
  431. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +10 -1
  432. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +10 -1
  433. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  434. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +10 -1
  435. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +10 -1
  436. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +11 -1
  437. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +10 -1
  438. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +10 -1
  439. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +10 -1
  440. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +10 -1
  441. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +11 -1
  442. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +10 -1
  443. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +10 -1
  444. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +10 -1
  445. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +10 -1
  446. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +11 -1
  447. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  448. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  449. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +10 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +10 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +10 -1
  455. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +11 -1
  456. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +10 -1
  457. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +10 -1
  458. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  459. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +10 -1
  460. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  461. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  462. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  463. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +10 -1
  464. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +37 -29
  465. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  467. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +10 -1
  468. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +10 -1
  469. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +10 -1
  470. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +10 -1
  471. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  472. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  473. metadata/generated/schema/entity/services/dashboardService.py +8 -1
  474. metadata/generated/schema/entity/services/databaseService.py +14 -1
  475. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  476. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +8 -1
  477. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  478. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +47 -0
  479. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  480. metadata/generated/schema/entity/services/messagingService.py +8 -1
  481. metadata/generated/schema/entity/services/metadataService.py +8 -1
  482. metadata/generated/schema/entity/services/mlmodelService.py +8 -1
  483. metadata/generated/schema/entity/services/pipelineService.py +8 -1
  484. metadata/generated/schema/entity/services/searchService.py +9 -2
  485. metadata/generated/schema/entity/services/serviceType.py +1 -1
  486. metadata/generated/schema/entity/services/storageService.py +8 -1
  487. metadata/generated/schema/entity/teams/__init__.py +1 -1
  488. metadata/generated/schema/entity/teams/persona.py +5 -1
  489. metadata/generated/schema/entity/teams/role.py +1 -1
  490. metadata/generated/schema/entity/teams/team.py +1 -1
  491. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  492. metadata/generated/schema/entity/teams/user.py +5 -1
  493. metadata/generated/schema/entity/type.py +1 -1
  494. metadata/generated/schema/entity/utils/__init__.py +1 -1
  495. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  496. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  497. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  498. metadata/generated/schema/events/__init__.py +1 -1
  499. metadata/generated/schema/events/alertMetrics.py +1 -1
  500. metadata/generated/schema/events/api/__init__.py +1 -1
  501. metadata/generated/schema/events/api/createEventSubscription.py +9 -1
  502. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  503. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  504. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  505. metadata/generated/schema/events/api/typedEvent.py +1 -1
  506. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  507. metadata/generated/schema/events/eventFilterRule.py +1 -1
  508. metadata/generated/schema/events/eventSubscription.py +9 -2
  509. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  510. metadata/generated/schema/events/failedEvent.py +1 -1
  511. metadata/generated/schema/events/failedEventResponse.py +1 -1
  512. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  513. metadata/generated/schema/events/statusContext.py +1 -1
  514. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  515. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  516. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  517. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  518. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  519. metadata/generated/schema/governance/workflows/elements/edge.py +2 -2
  520. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +4 -1
  521. metadata/generated/schema/governance/workflows/elements/nodeType.py +2 -1
  522. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  523. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  524. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +28 -8
  525. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +86 -0
  526. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +73 -0
  527. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +27 -6
  528. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +28 -7
  529. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  530. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +9 -4
  531. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +3 -0
  532. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +30 -0
  533. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  534. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +9 -4
  535. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  536. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +24 -7
  537. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  538. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +8 -4
  539. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +20 -0
  540. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +18 -5
  541. metadata/generated/schema/governance/workflows/workflowDefinition.py +30 -7
  542. metadata/generated/schema/governance/workflows/workflowInstance.py +11 -8
  543. metadata/generated/schema/governance/workflows/workflowInstanceState.py +4 -8
  544. metadata/generated/schema/jobs/__init__.py +1 -1
  545. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  546. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  547. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  548. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  549. metadata/generated/schema/metadataIngestion/application.py +1 -1
  550. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  551. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  552. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  553. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  554. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +4 -4
  555. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +5 -1
  556. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +18 -2
  557. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +9 -1
  558. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  559. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  560. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  561. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  562. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  563. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  564. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  565. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  566. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  567. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  569. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  571. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +64 -0
  572. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +3 -0
  573. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +24 -0
  574. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +28 -0
  575. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +28 -0
  576. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  577. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  578. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  579. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  580. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  581. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  582. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  583. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  584. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  585. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  586. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  587. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  588. metadata/generated/schema/metadataIngestion/workflow.py +3 -1
  589. metadata/generated/schema/monitoring/__init__.py +1 -1
  590. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  591. metadata/generated/schema/search/__init__.py +3 -0
  592. metadata/generated/schema/search/searchRequest.py +106 -0
  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 +42 -22
  611. metadata/generated/schema/security/credentials/gcpExternalAccount.py +2 -2
  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 +4 -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 +38 -0
  636. metadata/generated/schema/system/ui/page.py +23 -15
  637. metadata/generated/schema/system/ui/tab.py +36 -0
  638. metadata/generated/schema/system/ui/uiCustomization.py +45 -0
  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 +4 -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 +1 -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 +37 -0
  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 +6 -3
  673. metadata/generated/schema/type/entityLineage.py +27 -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 +4 -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 +4 -1
  690. metadata/generated/schema/type/tableUsageCount.py +18 -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 +3 -3
  696. metadata/ingestion/bulksink/metadata_usage.py +27 -6
  697. metadata/ingestion/lineage/masker.py +13 -2
  698. metadata/ingestion/models/custom_pydantic.py +44 -6
  699. metadata/ingestion/ometa/client.py +20 -0
  700. metadata/ingestion/ometa/mixins/domain_mixin.py +80 -0
  701. metadata/ingestion/ometa/mixins/es_mixin.py +42 -2
  702. metadata/ingestion/ometa/mixins/lineage_mixin.py +7 -33
  703. metadata/ingestion/ometa/mixins/patch_mixin.py +15 -5
  704. metadata/ingestion/ometa/mixins/pipeline_mixin.py +18 -0
  705. metadata/ingestion/ometa/mixins/query_mixin.py +43 -0
  706. metadata/ingestion/ometa/ometa_api.py +28 -3
  707. metadata/ingestion/ometa/routes.py +7 -0
  708. metadata/ingestion/ometa/utils.py +13 -0
  709. metadata/ingestion/processor/query_parser.py +1 -0
  710. metadata/ingestion/sink/metadata_rest.py +21 -1
  711. metadata/ingestion/source/dashboard/dashboard_service.py +9 -1
  712. metadata/ingestion/source/dashboard/domodashboard/metadata.py +3 -1
  713. metadata/ingestion/source/dashboard/lightdash/metadata.py +1 -1
  714. metadata/ingestion/source/dashboard/looker/metadata.py +8 -2
  715. metadata/ingestion/source/dashboard/metabase/client.py +65 -6
  716. metadata/ingestion/source/dashboard/metabase/metadata.py +88 -37
  717. metadata/ingestion/source/dashboard/metabase/models.py +2 -1
  718. metadata/ingestion/source/dashboard/microstrategy/metadata.py +3 -1
  719. metadata/ingestion/source/dashboard/mode/metadata.py +16 -9
  720. metadata/ingestion/source/dashboard/powerbi/client.py +3 -14
  721. metadata/ingestion/source/dashboard/powerbi/metadata.py +6 -54
  722. metadata/ingestion/source/dashboard/powerbi/models.py +0 -12
  723. metadata/ingestion/source/dashboard/qlikcloud/client.py +25 -2
  724. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +69 -15
  725. metadata/ingestion/source/dashboard/qlikcloud/models.py +44 -1
  726. metadata/ingestion/source/dashboard/qliksense/metadata.py +26 -18
  727. metadata/ingestion/source/dashboard/quicksight/metadata.py +32 -29
  728. metadata/ingestion/source/dashboard/redash/metadata.py +12 -10
  729. metadata/ingestion/source/dashboard/sigma/metadata.py +12 -14
  730. metadata/ingestion/source/dashboard/superset/api_source.py +25 -26
  731. metadata/ingestion/source/dashboard/superset/db_source.py +22 -20
  732. metadata/ingestion/source/dashboard/superset/mixin.py +207 -53
  733. metadata/ingestion/source/dashboard/superset/models.py +3 -0
  734. metadata/ingestion/source/dashboard/superset/queries.py +7 -4
  735. metadata/ingestion/source/dashboard/superset/utils.py +36 -0
  736. metadata/ingestion/source/dashboard/tableau/client.py +56 -1
  737. metadata/ingestion/source/dashboard/tableau/metadata.py +243 -128
  738. metadata/ingestion/source/database/bigquery/helper.py +9 -1
  739. metadata/ingestion/source/database/bigquery/metadata.py +82 -10
  740. metadata/ingestion/source/database/bigquery/queries.py +2 -1
  741. metadata/ingestion/source/database/bigquery/query_parser.py +1 -0
  742. metadata/ingestion/source/database/bigtable/metadata.py +11 -3
  743. metadata/ingestion/source/database/cassandra/__init__.py +0 -0
  744. metadata/ingestion/source/database/cassandra/connection.py +138 -0
  745. metadata/ingestion/source/database/cassandra/helpers.py +100 -0
  746. metadata/ingestion/source/database/cassandra/metadata.py +138 -0
  747. metadata/ingestion/source/database/cassandra/queries.py +45 -0
  748. metadata/ingestion/source/database/cassandra/service_spec.py +10 -0
  749. metadata/ingestion/source/database/cockroach/__init__.py +0 -0
  750. metadata/ingestion/source/database/cockroach/connection.py +71 -0
  751. metadata/ingestion/source/database/cockroach/metadata.py +206 -0
  752. metadata/ingestion/source/database/cockroach/queries.py +90 -0
  753. metadata/ingestion/source/database/cockroach/service_spec.py +4 -0
  754. metadata/ingestion/source/database/common_db_source.py +9 -0
  755. metadata/ingestion/source/database/common_nosql_source.py +78 -29
  756. metadata/ingestion/source/database/common_pg_mappings.py +49 -0
  757. metadata/ingestion/source/database/couchbase/metadata.py +8 -2
  758. metadata/ingestion/source/database/databricks/metadata.py +8 -0
  759. metadata/ingestion/source/database/datalake/metadata.py +15 -9
  760. metadata/ingestion/source/database/db2/service_spec.py +4 -1
  761. metadata/ingestion/source/database/dbt/dbt_config.py +1 -0
  762. metadata/ingestion/source/database/dbt/dbt_utils.py +1 -1
  763. metadata/ingestion/source/database/dbt/metadata.py +5 -1
  764. metadata/ingestion/source/database/doris/metadata.py +7 -2
  765. metadata/ingestion/source/database/druid/service_spec.py +5 -1
  766. metadata/ingestion/source/database/dynamodb/metadata.py +6 -3
  767. metadata/ingestion/source/database/greenplum/metadata.py +6 -37
  768. metadata/ingestion/source/database/greenplum/service_spec.py +5 -1
  769. metadata/ingestion/source/database/hive/metastore_dialects/mysql/dialect.py +35 -13
  770. metadata/ingestion/source/database/hive/metastore_dialects/postgres/dialect.py +38 -14
  771. metadata/ingestion/source/database/hive/service_spec.py +5 -1
  772. metadata/ingestion/source/database/impala/service_spec.py +5 -1
  773. metadata/ingestion/source/database/life_cycle_query_mixin.py +11 -7
  774. metadata/ingestion/source/database/lineage_source.py +75 -2
  775. metadata/ingestion/source/database/mariadb/service_spec.py +9 -1
  776. metadata/ingestion/source/database/mongodb/metadata.py +8 -3
  777. metadata/ingestion/source/database/mssql/metadata.py +68 -2
  778. metadata/ingestion/source/database/mssql/queries.py +43 -0
  779. metadata/ingestion/source/database/mysql/utils.py +5 -3
  780. metadata/ingestion/source/database/oracle/connection.py +24 -2
  781. metadata/ingestion/source/database/oracle/metadata.py +36 -19
  782. metadata/ingestion/source/database/oracle/models.py +5 -4
  783. metadata/ingestion/source/database/oracle/queries.py +22 -1
  784. metadata/ingestion/source/database/pinotdb/service_spec.py +5 -1
  785. metadata/ingestion/source/database/postgres/lineage.py +1 -2
  786. metadata/ingestion/source/database/postgres/metadata.py +32 -56
  787. metadata/ingestion/source/database/postgres/models.py +1 -0
  788. metadata/ingestion/source/database/postgres/queries.py +18 -1
  789. metadata/ingestion/source/database/query_parser_source.py +11 -6
  790. metadata/ingestion/source/database/sample_data.py +11 -0
  791. metadata/ingestion/source/database/sample_usage.py +2 -0
  792. metadata/ingestion/source/database/saphana/lineage.py +1 -1
  793. metadata/ingestion/source/database/singlestore/service_spec.py +6 -1
  794. metadata/ingestion/source/database/snowflake/connection.py +6 -0
  795. metadata/ingestion/source/database/snowflake/constants.py +48 -0
  796. metadata/ingestion/source/database/snowflake/metadata.py +114 -3
  797. metadata/ingestion/source/database/snowflake/models.py +3 -3
  798. metadata/ingestion/source/database/snowflake/queries.py +27 -1
  799. metadata/ingestion/source/database/snowflake/query_parser.py +2 -0
  800. metadata/ingestion/source/database/snowflake/utils.py +110 -26
  801. metadata/ingestion/source/database/sql_column_handler.py +95 -60
  802. metadata/ingestion/source/database/sqlite/service_spec.py +5 -1
  803. metadata/ingestion/source/database/teradata/service_spec.py +5 -1
  804. metadata/ingestion/source/database/trino/lineage.py +95 -0
  805. metadata/ingestion/source/database/unitycatalog/connection.py +23 -0
  806. metadata/ingestion/source/database/unitycatalog/lineage.py +2 -0
  807. metadata/ingestion/source/database/unitycatalog/metadata.py +2 -0
  808. metadata/ingestion/source/database/usage_source.py +2 -0
  809. metadata/ingestion/source/messaging/messaging_service.py +2 -0
  810. metadata/ingestion/source/metadata/alationsink/metadata.py +32 -18
  811. metadata/ingestion/source/metadata/amundsen/metadata.py +7 -4
  812. metadata/ingestion/source/metadata/atlas/metadata.py +2 -1
  813. metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -0
  814. metadata/ingestion/source/pipeline/airflow/metadata.py +25 -0
  815. metadata/ingestion/source/pipeline/airflow/models.py +1 -0
  816. metadata/ingestion/source/pipeline/nifi/client.py +68 -74
  817. metadata/ingestion/source/pipeline/nifi/connection.py +1 -18
  818. metadata/ingestion/source/pipeline/openlineage/metadata.py +1 -0
  819. metadata/ingestion/source/pipeline/pipeline_service.py +121 -2
  820. metadata/ingestion/source/search/opensearch/connection.py +215 -0
  821. metadata/ingestion/source/search/opensearch/metadata.py +270 -0
  822. metadata/ingestion/source/search/opensearch/parser.py +71 -0
  823. metadata/ingestion/source/search/opensearch/service_spec.py +4 -0
  824. metadata/ingestion/source/search/search_service.py +2 -0
  825. metadata/ingestion/source/storage/storage_service.py +2 -0
  826. metadata/ingestion/stage/table_usage.py +53 -1
  827. metadata/profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py +3 -4
  828. metadata/profiler/orm/converter/azuresql/converter.py +39 -0
  829. metadata/profiler/orm/converter/converter_registry.py +2 -0
  830. metadata/profiler/orm/functions/length.py +2 -0
  831. metadata/profiler/orm/functions/median.py +19 -0
  832. metadata/profiler/orm/functions/modulo.py +1 -0
  833. metadata/profiler/orm/functions/random_num.py +1 -0
  834. metadata/profiler/orm/functions/sum.py +1 -0
  835. metadata/profiler/orm/registry.py +2 -0
  836. metadata/profiler/processor/core.py +1 -0
  837. metadata/profiler/processor/metric_filter.py +1 -1
  838. metadata/profiler/source/database/base/profiler_source.py +1 -0
  839. metadata/profiler/source/fetcher/fetcher_strategy.py +4 -0
  840. metadata/sampler/config.py +1 -0
  841. metadata/sampler/models.py +3 -0
  842. metadata/sampler/nosql/sampler.py +4 -0
  843. metadata/sampler/pandas/sampler.py +1 -0
  844. metadata/sampler/partition.py +9 -2
  845. metadata/sampler/sampler_interface.py +0 -1
  846. metadata/sampler/sqlalchemy/azuresql/sampler.py +30 -3
  847. metadata/sampler/sqlalchemy/mssql/sampler.py +2 -1
  848. metadata/sampler/sqlalchemy/sampler.py +51 -42
  849. metadata/sampler/sqlalchemy/snowflake/sampler.py +2 -1
  850. metadata/sampler/sqlalchemy/trino/sampler.py +9 -8
  851. metadata/utils/constants.py +1 -0
  852. metadata/utils/credentials.py +25 -4
  853. metadata/utils/db_utils.py +1 -11
  854. metadata/utils/elasticsearch.py +4 -0
  855. metadata/utils/helpers.py +91 -0
  856. metadata/utils/logger.py +9 -0
  857. metadata/utils/ssl_manager.py +35 -0
  858. metadata/utils/tag_utils.py +72 -27
  859. metadata/workflow/classification.py +3 -0
  860. metadata/workflow/profiler.py +13 -5
  861. metadata/workflow/workflow_status_mixin.py +6 -0
  862. {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/METADATA +433 -370
  863. {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/RECORD +867 -798
  864. {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/LICENSE +0 -0
  865. {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/WHEEL +0 -0
  866. {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/entry_points.txt +0 -0
  867. {openmetadata_ingestion-1.6.7.1.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -102,13 +102,14 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
102
102
  selectable = self.set_tablesample(self.raw_dataset.__table__)
103
103
 
104
104
  entity = selectable if column is None else selectable.c.get(column.key)
105
- if label is not None:
106
- query = self.client.query(entity, label)
107
- else:
108
- query = self.client.query(entity)
105
+ with self.get_client() as client:
106
+ if label is not None:
107
+ query = client.query(entity, label)
108
+ else:
109
+ query = client.query(entity)
109
110
 
110
- if self.partition_details:
111
- query = self.get_partitioned_query(query)
111
+ if self.partition_details:
112
+ query = self.get_partitioned_query(query)
112
113
  return query
113
114
 
114
115
  def get_sampler_table_name(self) -> str:
@@ -129,20 +130,27 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
129
130
  column,
130
131
  (ModuloFn(RandomNumFn(), 100)).label(RANDOM_LABEL),
131
132
  ).cte(f"{self.get_sampler_table_name()}_rnd")
132
- session_query = self.client.query(rnd)
133
+ with self.get_client() as client:
134
+ session_query = client.query(rnd)
133
135
  return session_query.where(
134
136
  rnd.c.random <= self.sample_config.profileSample
135
137
  ).cte(f"{self.get_sampler_table_name()}_sample")
136
138
 
137
- table_query = self.client.query(self.raw_dataset)
139
+ with self.get_client() as client:
140
+ table_query = client.query(self.raw_dataset)
138
141
  session_query = self._base_sample_query(
139
142
  column,
140
- (ModuloFn(RandomNumFn(), table_query.count())).label(RANDOM_LABEL),
143
+ (ModuloFn(RandomNumFn(), table_query.count())).label(RANDOM_LABEL)
144
+ if self.sample_config.randomizedSample
145
+ else None,
141
146
  )
142
- return (
147
+ query = (
143
148
  session_query.order_by(RANDOM_LABEL)
144
- .limit(self.sample_config.profileSample)
145
- .cte(f"{self.get_sampler_table_name()}_rnd")
149
+ if self.sample_config.randomizedSample
150
+ else session_query
151
+ )
152
+ return query.limit(self.sample_config.profileSample).cte(
153
+ f"{self.get_sampler_table_name()}_rnd"
146
154
  )
147
155
 
148
156
  def get_dataset(self, column=None, **__) -> Union[DeclarativeMeta, AliasedClass]:
@@ -190,38 +198,38 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
190
198
  for col in inspect(ds).c
191
199
  if col.name != RANDOM_LABEL and col.name in names
192
200
  ]
193
-
194
- try:
195
- sqa_sample = (
196
- self.client.query(*sqa_columns)
197
- .select_from(ds)
198
- .limit(self.sample_limit)
199
- .all()
200
- )
201
- except Exception:
202
- logger.debug(
203
- "Cannot fetch sample data with random sampling. Falling back to 100 rows."
204
- )
205
- logger.debug(traceback.format_exc())
206
- sqa_columns = list(inspect(self.raw_dataset).c)
207
- sqa_sample = (
208
- self.client.query(*sqa_columns)
209
- .select_from(self.raw_dataset)
210
- .limit(100)
211
- .all()
201
+ with self.get_client() as client:
202
+ try:
203
+ sqa_sample = (
204
+ client.query(*sqa_columns)
205
+ .select_from(ds)
206
+ .limit(self.sample_limit)
207
+ .all()
208
+ )
209
+ except Exception:
210
+ logger.debug(
211
+ "Cannot fetch sample data with random sampling. Falling back to 100 rows."
212
+ )
213
+ logger.debug(traceback.format_exc())
214
+ sqa_columns = list(inspect(self.raw_dataset).c)
215
+ sqa_sample = (
216
+ client.query(*sqa_columns)
217
+ .select_from(self.raw_dataset)
218
+ .limit(100)
219
+ .all()
220
+ )
221
+ return TableData(
222
+ columns=[column.name for column in sqa_columns],
223
+ rows=[list(row) for row in sqa_sample],
212
224
  )
213
225
 
214
- return TableData(
215
- columns=[column.name for column in sqa_columns],
216
- rows=[list(row) for row in sqa_sample],
217
- )
218
-
219
226
  def _fetch_sample_data_from_user_query(self) -> TableData:
220
227
  """Returns a table data object using results from query execution"""
221
228
  if not is_safe_sql_query(self.sample_query):
222
229
  raise RuntimeError(f"SQL expression is not safe\n\n{self.sample_query}")
223
230
 
224
- rnd = self.client.execute(f"{self.sample_query}")
231
+ with self.get_client() as client:
232
+ rnd = client.execute(f"{self.sample_query}")
225
233
  try:
226
234
  columns = [col.name for col in rnd.cursor.description]
227
235
  except AttributeError:
@@ -238,10 +246,10 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
238
246
 
239
247
  stmt = text(f"{self.sample_query}")
240
248
  stmt = stmt.columns(*list(inspect(self.raw_dataset).c))
241
-
242
- return self.client.query(stmt.subquery()).cte(
243
- f"{self.get_sampler_table_name()}_user_sampled"
244
- )
249
+ with self.get_client() as client:
250
+ return client.query(stmt.subquery()).cte(
251
+ f"{self.get_sampler_table_name()}_user_sampled"
252
+ )
245
253
 
246
254
  def _partitioned_table(self) -> Query:
247
255
  """Return the Query object for partitioned tables"""
@@ -258,7 +266,8 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
258
266
  )
259
267
  if query is not None:
260
268
  return query.filter(partition_filter)
261
- return self.client.query(self.raw_dataset).filter(partition_filter)
269
+ with self.get_client() as client:
270
+ return client.query(self.raw_dataset).filter(partition_filter)
262
271
 
263
272
  def get_columns(self):
264
273
  """get columns from entity"""
@@ -91,5 +91,6 @@ class SnowflakeSampler(SQASampler):
91
91
  rnd = self._base_sample_query(column).cte(
92
92
  f"{self.get_sampler_table_name()}_rnd"
93
93
  )
94
- query = self.client.query(rnd)
94
+ with self.get_client() as client:
95
+ query = client.query(rnd)
95
96
  return query.cte(f"{self.get_sampler_table_name()}_sample")
@@ -38,12 +38,13 @@ class TrinoSampler(SQASampler):
38
38
  col for col in inspect(self.raw_dataset).c if col.name != RANDOM_LABEL
39
39
  ]
40
40
  entity = self.raw_dataset if column is None else column
41
- return self.client.query(entity, label).where(
42
- or_(
43
- *[
44
- text(f'is_nan("{cols.name}") = False')
45
- for cols in sqa_columns
46
- if type(cols.type) in FLOAT_SET
47
- ]
41
+ with self.get_client() as client:
42
+ return client.query(entity, label).where(
43
+ or_(
44
+ *[
45
+ text(f'is_nan("{cols.name}") = False')
46
+ for cols in sqa_columns
47
+ if type(cols.type) in FLOAT_SET
48
+ ]
49
+ )
48
50
  )
49
- )
@@ -85,6 +85,7 @@ THREE_MIN = 3 * 60
85
85
  UTF_8 = "utf-8"
86
86
  CHUNKSIZE = 200000
87
87
  DEFAULT_DATABASE = "default"
88
+ DEFAULT_DASHBAORD = "default"
88
89
  BUILDER_PASSWORD_ATTR = "password"
89
90
  TIMEDELTA = "timedelta"
90
91
  COMPLEX_COLUMN_SEPARATOR = "_##"
@@ -22,6 +22,7 @@ from google import auth
22
22
  from google.auth import impersonated_credentials
23
23
 
24
24
  from metadata.generated.schema.security.credentials.gcpCredentials import (
25
+ GcpADC,
25
26
  GCPCredentials,
26
27
  GcpCredentialsPath,
27
28
  )
@@ -89,7 +90,8 @@ def create_credential_tmp_file(credentials: dict) -> str:
89
90
 
90
91
 
91
92
  def build_google_credentials_dict(
92
- gcp_values: Union[GcpCredentialsValues, GcpExternalAccount]
93
+ gcp_values: Union[GcpCredentialsValues, GcpExternalAccount],
94
+ single_project: bool = False,
93
95
  ) -> Dict[str, str]:
94
96
  """
95
97
  Given GcPCredentialsValues, build a dictionary as the JSON file
@@ -103,9 +105,18 @@ def build_google_credentials_dict(
103
105
  private_key_str = private_key_str.replace("\\n", "\n")
104
106
  validate_private_key(private_key_str)
105
107
 
108
+ if single_project:
109
+ project_id = (
110
+ gcp_values.projectId.root
111
+ if isinstance(gcp_values.projectId.root, str)
112
+ else gcp_values.projectId.root[0]
113
+ )
114
+ else:
115
+ project_id = gcp_values.projectId.root
116
+
106
117
  return {
107
118
  "type": gcp_values.type,
108
- "project_id": gcp_values.projectId.root,
119
+ "project_id": project_id,
109
120
  "private_key_id": gcp_values.privateKeyId,
110
121
  "private_key": private_key_str,
111
122
  "client_email": gcp_values.clientEmail,
@@ -128,7 +139,9 @@ def build_google_credentials_dict(
128
139
  )
129
140
 
130
141
 
131
- def set_google_credentials(gcp_credentials: GCPCredentials) -> None:
142
+ def set_google_credentials(
143
+ gcp_credentials: GCPCredentials, single_project: bool = False
144
+ ) -> None:
132
145
  """
133
146
  Set GCP credentials environment variable
134
147
  :param gcp_credentials: GCPCredentials
@@ -162,11 +175,19 @@ def set_google_credentials(gcp_credentials: GCPCredentials) -> None:
162
175
  )
163
176
  return
164
177
 
165
- credentials_dict = build_google_credentials_dict(gcp_credentials.gcpConfig)
178
+ credentials_dict = build_google_credentials_dict(
179
+ gcp_credentials.gcpConfig, single_project
180
+ )
166
181
  tmp_credentials_file = create_credential_tmp_file(credentials=credentials_dict)
167
182
  os.environ[GOOGLE_CREDENTIALS] = tmp_credentials_file
168
183
  return
169
184
 
185
+ if isinstance(gcp_credentials.gcpConfig, GcpADC):
186
+ logger.info(
187
+ "Using Application Default Credentials to authenticate with GCP services."
188
+ )
189
+ return
190
+
170
191
  raise InvalidGcpConfigException(
171
192
  f"Error trying to set GCP credentials with {gcp_credentials}."
172
193
  " Check https://docs.open-metadata.org/connectors/database/bigquery "
@@ -18,9 +18,6 @@ from typing import Iterable
18
18
 
19
19
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
20
20
  from metadata.generated.schema.entity.data.table import Table
21
- from metadata.generated.schema.entity.services.databaseService import (
22
- DatabaseServiceType,
23
- )
24
21
  from metadata.generated.schema.type.entityLineage import Source as LineageSource
25
22
  from metadata.ingestion.api.models import Either
26
23
  from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper
@@ -36,8 +33,6 @@ from metadata.utils.logger import utils_logger
36
33
 
37
34
  logger = utils_logger()
38
35
 
39
- PUBLIC_SCHEMA = "public"
40
-
41
36
 
42
37
  def get_host_from_host_port(uri: str) -> str:
43
38
  """
@@ -69,7 +64,7 @@ def get_view_lineage(
69
64
  schema_name=schema_name,
70
65
  table_name=table_name,
71
66
  )
72
- table_entity: Table = metadata.get_by_name(
67
+ table_entity = metadata.get_by_name(
73
68
  entity=Table,
74
69
  fqn=table_fqn,
75
70
  )
@@ -84,11 +79,6 @@ def get_view_lineage(
84
79
  lineage_parser = LineageParser(
85
80
  view_definition, dialect, timeout_seconds=timeout_seconds
86
81
  )
87
-
88
- if table_entity.serviceType == DatabaseServiceType.Postgres:
89
- # For Postgres, if schema is not defined, we need to use the public schema
90
- schema_name = PUBLIC_SCHEMA
91
-
92
82
  if lineage_parser.source_tables and lineage_parser.target_tables:
93
83
  yield from get_lineage_by_query(
94
84
  metadata,
@@ -17,6 +17,9 @@ from typing import List, Optional, TypeVar
17
17
  from pydantic import BaseModel
18
18
 
19
19
  from metadata.generated.schema.analytics.reportData import ReportData
20
+ from metadata.generated.schema.entity.classification.classification import (
21
+ Classification,
22
+ )
20
23
  from metadata.generated.schema.entity.classification.tag import Tag
21
24
  from metadata.generated.schema.entity.data.apiCollection import APICollection
22
25
  from metadata.generated.schema.entity.data.apiEndpoint import APIEndpoint
@@ -66,6 +69,7 @@ ES_INDEX_MAP = {
66
69
  GlossaryTerm.__name__: "glossary_term_search_index",
67
70
  MlModel.__name__: "mlmodel_search_index",
68
71
  Tag.__name__: "tag_search_index",
72
+ Classification.__name__: "classification_search_index",
69
73
  Container.__name__: "container_search_index",
70
74
  Query.__name__: "query_search_index",
71
75
  ReportData.__name__: "entity_report_data_index",
metadata/utils/helpers.py CHANGED
@@ -15,6 +15,7 @@ Helpers module for ingestion related methods
15
15
 
16
16
  from __future__ import annotations
17
17
 
18
+ import hashlib
18
19
  import itertools
19
20
  import re
20
21
  import shutil
@@ -32,6 +33,9 @@ from metadata.generated.schema.entity.data.chart import ChartType
32
33
  from metadata.generated.schema.entity.data.table import Column, Table
33
34
  from metadata.generated.schema.entity.feed.suggestion import Suggestion, SuggestionType
34
35
  from metadata.generated.schema.entity.services.databaseService import DatabaseService
36
+ from metadata.generated.schema.metadataIngestion.workflow import (
37
+ Source as WorkflowSource,
38
+ )
35
39
  from metadata.generated.schema.type.basic import EntityLink
36
40
  from metadata.generated.schema.type.tagLabel import TagLabel
37
41
  from metadata.utils.constants import DEFAULT_DATABASE
@@ -476,3 +480,90 @@ def init_staging_dir(directory: str) -> None:
476
480
  location = Path(directory)
477
481
  logger.info(f"Creating the directory to store staging data in {location}")
478
482
  location.mkdir(parents=True, exist_ok=True)
483
+
484
+
485
+ def retry_with_docker_host(config: Optional[WorkflowSource] = None):
486
+ """
487
+ Retries the function on exception, replacing "localhost" with "host.docker.internal"
488
+ in the `hostPort` config if applicable. Raises the original exception if no `config` is found.
489
+ """
490
+
491
+ def decorator(func):
492
+ def wrapper(*args, **kwargs):
493
+ nonlocal config
494
+ try:
495
+ func(*args, **kwargs)
496
+ except Exception as error:
497
+ config = config or kwargs.get("config")
498
+ if not config:
499
+ for argument in args:
500
+ if isinstance(argument, WorkflowSource):
501
+ config = argument
502
+ break
503
+ else:
504
+ raise error
505
+
506
+ host_port_str = str(
507
+ getattr(config.serviceConnection.root.config, "hostPort", None)
508
+ or ""
509
+ )
510
+ if "localhost" not in host_port_str:
511
+ raise error
512
+
513
+ host_port_type = type(config.serviceConnection.root.config.hostPort)
514
+ docker_host_port_str = host_port_str.replace(
515
+ "localhost", "host.docker.internal"
516
+ )
517
+ config.serviceConnection.root.config.hostPort = host_port_type(
518
+ docker_host_port_str
519
+ )
520
+ func(*args, **kwargs)
521
+
522
+ return wrapper
523
+
524
+ return decorator
525
+
526
+
527
+ def get_query_hash(query: str) -> str:
528
+ result = hashlib.md5(query.encode())
529
+ return str(result.hexdigest())
530
+
531
+
532
+ def evaluate_threshold(threshold: int, operator: str, result: int) -> bool:
533
+ """Evaluate the threshold against the result.
534
+
535
+ Args:
536
+ threshold: A string representing a comparison threshold (e.g., "< 5", ">= 10").
537
+ result: The integer value to compare against the threshold.
538
+
539
+ Returns:
540
+ True if the result satisfies the threshold condition, False otherwise.
541
+ If no comparison operator is provided, it defaults to less than or equal to comparison.
542
+ Returns False for invalid threshold formats.
543
+ """
544
+ import operator as op # pylint: disable=import-outside-toplevel
545
+
546
+ operators = {
547
+ "<": op.lt,
548
+ "<=": op.le,
549
+ ">": op.gt,
550
+ ">=": op.ge,
551
+ "==": op.eq,
552
+ "!=": op.ne,
553
+ }
554
+ op_func = operators.get(operator, op.le)
555
+ try:
556
+ if op_func:
557
+ return op_func(result, threshold)
558
+ except ValueError:
559
+ return False
560
+
561
+ # Fallback:
562
+ logger.error(
563
+ f"Invalid threshold: {threshold}, "
564
+ "Allowed format: <, >, <=, >=, ==, !=. Example: >5"
565
+ )
566
+ raise ValueError(
567
+ f"Invalid threshold: {threshold}, "
568
+ "Allowed format: <, >, <=, >=, ==, !=. Example: >5"
569
+ )
metadata/utils/logger.py CHANGED
@@ -60,6 +60,7 @@ class Loggers(Enum):
60
60
  TEST_SUITE = "TestSuite"
61
61
  QUERY_RUNNER = "QueryRunner"
62
62
  APP = "App"
63
+ REVERSE_INGESTION = "ReverseIngestion"
63
64
 
64
65
  @DynamicClassAttribute
65
66
  def value(self):
@@ -143,6 +144,14 @@ def ingestion_logger():
143
144
  return logging.getLogger(Loggers.INGESTION.value)
144
145
 
145
146
 
147
+ def reverse_ingestion_logger():
148
+ """
149
+ Method to get the REVERSE INGESTION logger
150
+ """
151
+
152
+ return logging.getLogger(Loggers.REVERSE_INGESTION.value)
153
+
154
+
146
155
  def utils_logger():
147
156
  """
148
157
  Method to get the UTILS logger
@@ -17,6 +17,7 @@ import os
17
17
  import tempfile
18
18
  import traceback
19
19
  from functools import singledispatch, singledispatchmethod
20
+ from ssl import CERT_REQUIRED, SSLContext
20
21
  from typing import List, Optional, Union, cast
21
22
 
22
23
  from pydantic import SecretStr
@@ -27,6 +28,9 @@ from metadata.generated.schema.entity.services.connections.connectionBasicType i
27
28
  from metadata.generated.schema.entity.services.connections.dashboard.qlikSenseConnection import (
28
29
  QlikSenseConnection,
29
30
  )
31
+ from metadata.generated.schema.entity.services.connections.database.cassandraConnection import (
32
+ CassandraConnection,
33
+ )
30
34
  from metadata.generated.schema.entity.services.connections.database.dorisConnection import (
31
35
  DorisConnection,
32
36
  )
@@ -55,6 +59,7 @@ from metadata.generated.schema.entity.services.connections.pipeline.matillionCon
55
59
  MatillionConnection,
56
60
  )
57
61
  from metadata.generated.schema.security.ssl import verifySSLConfig
62
+ from metadata.generated.schema.security.ssl.verifySSLConfig import SslMode
58
63
  from metadata.ingestion.connections.builders import init_empty_connection_arguments
59
64
  from metadata.ingestion.models.custom_pydantic import CustomSecretStr
60
65
  from metadata.ingestion.source.connections import get_connection
@@ -223,6 +228,25 @@ class SSLManager:
223
228
  ] = self.cert_file_path
224
229
  return connection
225
230
 
231
+ @setup_ssl.register(CassandraConnection)
232
+ def _(self, connection):
233
+ connection = cast(CassandraConnection, connection)
234
+
235
+ ssl_context = None
236
+ if connection.sslMode != SslMode.disable:
237
+ ssl_context = SSLContext()
238
+ ssl_context.load_verify_locations(cafile=self.ca_file_path)
239
+ ssl_context.verify_mode = CERT_REQUIRED
240
+ ssl_context.load_cert_chain(
241
+ certfile=self.cert_file_path, keyfile=self.key_file_path
242
+ )
243
+
244
+ connection.connectionArguments = (
245
+ connection.connectionArguments or init_empty_connection_arguments()
246
+ )
247
+ connection.connectionArguments.root["ssl_context"] = ssl_context
248
+ return connection
249
+
226
250
 
227
251
  @singledispatch
228
252
  def check_ssl_and_init(
@@ -340,6 +364,17 @@ def _(connection):
340
364
  return None
341
365
 
342
366
 
367
+ @check_ssl_and_init.register(CassandraConnection)
368
+ def _(connection):
369
+ service_connection = cast(CassandraConnection, connection)
370
+ ssl: Optional[verifySSLConfig.SslConfig] = service_connection.sslConfig
371
+ if ssl and (ssl.root.caCertificate or ssl.root.sslCertificate or ssl.root.sslKey):
372
+ return SSLManager(
373
+ ca=ssl.root.caCertificate, cert=ssl.root.sslCertificate, key=ssl.root.sslKey
374
+ )
375
+ return None
376
+
377
+
343
378
  def get_ssl_connection(service_config):
344
379
  try:
345
380
  # To be cleaned up as part of https://github.com/open-metadata/OpenMetadata/issues/15913
@@ -20,6 +20,9 @@ from metadata.generated.schema.api.classification.createClassification import (
20
20
  CreateClassificationRequest,
21
21
  )
22
22
  from metadata.generated.schema.api.classification.createTag import CreateTagRequest
23
+ from metadata.generated.schema.entity.classification.classification import (
24
+ Classification,
25
+ )
23
26
  from metadata.generated.schema.entity.classification.tag import Tag
24
27
  from metadata.generated.schema.entity.data.glossaryTerm import GlossaryTerm
25
28
  from metadata.generated.schema.entity.services.ingestionPipelines.status import (
@@ -29,6 +32,7 @@ from metadata.generated.schema.type.basic import (
29
32
  EntityName,
30
33
  FullyQualifiedEntityName,
31
34
  Markdown,
35
+ ProviderType,
32
36
  )
33
37
  from metadata.generated.schema.type.tagLabel import (
34
38
  LabelType,
@@ -46,6 +50,7 @@ from metadata.utils.logger import ingestion_logger
46
50
  logger = ingestion_logger()
47
51
 
48
52
 
53
+ # pylint: disable=too-many-arguments
49
54
  def get_ometa_tag_and_classification(
50
55
  tags: List[str],
51
56
  classification_name: str,
@@ -53,39 +58,79 @@ def get_ometa_tag_and_classification(
53
58
  classification_description: str,
54
59
  include_tags: bool = True,
55
60
  tag_fqn: Optional[FullyQualifiedEntityName] = None,
61
+ metadata: Optional[OpenMetadata] = None,
62
+ system_tags: bool = False,
56
63
  ) -> Iterable[Either[OMetaTagAndClassification]]:
57
64
  """
58
65
  Returns the OMetaTagAndClassification object
59
66
  """
60
- if include_tags:
61
- for tag in tags:
62
- try:
63
- classification = OMetaTagAndClassification(
64
- fqn=tag_fqn,
65
- classification_request=CreateClassificationRequest(
66
- name=EntityName(classification_name),
67
- description=Markdown(classification_description),
68
- ),
69
- tag_request=CreateTagRequest(
70
- classification=FullyQualifiedEntityName(classification_name),
71
- name=EntityName(tag),
72
- description=Markdown(tag_description)
73
- if tag_description
74
- else None,
75
- ),
76
- )
77
- yield Either(right=classification)
78
- logger.debug(
79
- f"Classification {classification_name}, Tag {tag} Ingested"
80
- )
81
- except Exception as err:
82
- yield Either(
83
- left=StackTraceError(
84
- name=tag,
85
- error=f"Error yielding tag [{tag}]: [{err}]",
86
- stackTrace=traceback.format_exc(),
67
+ if not include_tags:
68
+ return
69
+
70
+ if system_tags:
71
+ # Checking for system classification
72
+ for classification_entity in (
73
+ metadata.es_search_from_fqn(
74
+ entity_type=Classification, fqn_search_string=classification_name
75
+ )
76
+ or []
77
+ ):
78
+ if (
79
+ classification_entity.provider == ProviderType.system
80
+ and classification_entity.name.root.lower()
81
+ == classification_name.lower()
82
+ ):
83
+ classification_name = classification_entity.name.root
84
+ classification_description = classification_entity.description.root
85
+ break
86
+
87
+ for tag in tags:
88
+ specific_tag_description = tag_description
89
+ try:
90
+ if system_tags:
91
+ # Checking for system tag
92
+ for tag_entity in (
93
+ metadata.es_search_from_fqn(
94
+ entity_type=Tag,
95
+ fqn_search_string=f"{classification_name}.{tag}",
87
96
  )
97
+ or []
98
+ ):
99
+ if (
100
+ tag_entity.provider == ProviderType.system
101
+ and tag_entity.classification.name == classification_name
102
+ and tag_entity.name.root.lower() == tag.lower()
103
+ ):
104
+ tag = tag_entity.name.root
105
+ specific_tag_description = tag_entity.description.root
106
+ break
107
+
108
+ classification = OMetaTagAndClassification(
109
+ fqn=tag_fqn,
110
+ classification_request=CreateClassificationRequest(
111
+ name=EntityName(classification_name),
112
+ description=Markdown(classification_description),
113
+ ),
114
+ tag_request=CreateTagRequest(
115
+ classification=FullyQualifiedEntityName(classification_name),
116
+ name=EntityName(tag),
117
+ description=(
118
+ Markdown(specific_tag_description)
119
+ if specific_tag_description
120
+ else None
121
+ ),
122
+ ),
123
+ )
124
+ yield Either(right=classification)
125
+ logger.debug(f"Classification {classification_name}, Tag {tag} Ingested")
126
+ except Exception as err:
127
+ yield Either(
128
+ left=StackTraceError(
129
+ name=tag,
130
+ error=f"Error yielding tag [{tag}]: [{err}]",
131
+ stackTrace=traceback.format_exc(),
88
132
  )
133
+ )
89
134
 
90
135
 
91
136
  @functools.lru_cache(maxsize=512)
@@ -29,6 +29,9 @@ class AutoClassificationWorkflow(ProfilerWorkflow):
29
29
  """Auto Classification workflow implementation. Based on the Profiler logic with different steps"""
30
30
 
31
31
  def set_steps(self):
32
+ # NOTE: Call test_connection to update host value before creating the source class
33
+ self.test_connection()
34
+
32
35
  source_class = self._get_source_class()
33
36
  self.source = source_class.create(self.config.model_dump(), self.metadata)
34
37