openmetadata-ingestion 1.6.7.0__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 (865) 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 +8 -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 -7
  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 +89 -1
  721. metadata/ingestion/source/dashboard/powerbi/metadata.py +270 -258
  722. metadata/ingestion/source/dashboard/powerbi/models.py +25 -0
  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 +76 -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/metadata.py +32 -56
  786. metadata/ingestion/source/database/postgres/models.py +1 -0
  787. metadata/ingestion/source/database/postgres/queries.py +18 -1
  788. metadata/ingestion/source/database/query_parser_source.py +11 -6
  789. metadata/ingestion/source/database/sample_data.py +11 -0
  790. metadata/ingestion/source/database/sample_usage.py +2 -0
  791. metadata/ingestion/source/database/saphana/lineage.py +1 -1
  792. metadata/ingestion/source/database/singlestore/service_spec.py +6 -1
  793. metadata/ingestion/source/database/snowflake/connection.py +6 -0
  794. metadata/ingestion/source/database/snowflake/constants.py +48 -0
  795. metadata/ingestion/source/database/snowflake/metadata.py +114 -3
  796. metadata/ingestion/source/database/snowflake/models.py +3 -3
  797. metadata/ingestion/source/database/snowflake/queries.py +27 -1
  798. metadata/ingestion/source/database/snowflake/query_parser.py +2 -0
  799. metadata/ingestion/source/database/snowflake/utils.py +110 -26
  800. metadata/ingestion/source/database/sql_column_handler.py +95 -60
  801. metadata/ingestion/source/database/sqlite/service_spec.py +5 -1
  802. metadata/ingestion/source/database/teradata/service_spec.py +5 -1
  803. metadata/ingestion/source/database/trino/lineage.py +95 -0
  804. metadata/ingestion/source/database/unitycatalog/connection.py +23 -0
  805. metadata/ingestion/source/database/unitycatalog/lineage.py +2 -0
  806. metadata/ingestion/source/database/unitycatalog/metadata.py +2 -0
  807. metadata/ingestion/source/database/usage_source.py +2 -0
  808. metadata/ingestion/source/messaging/messaging_service.py +2 -0
  809. metadata/ingestion/source/metadata/alationsink/metadata.py +32 -18
  810. metadata/ingestion/source/metadata/amundsen/metadata.py +7 -4
  811. metadata/ingestion/source/metadata/atlas/metadata.py +2 -1
  812. metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -0
  813. metadata/ingestion/source/pipeline/airflow/metadata.py +25 -0
  814. metadata/ingestion/source/pipeline/airflow/models.py +1 -0
  815. metadata/ingestion/source/pipeline/nifi/client.py +68 -74
  816. metadata/ingestion/source/pipeline/nifi/connection.py +1 -18
  817. metadata/ingestion/source/pipeline/openlineage/metadata.py +1 -0
  818. metadata/ingestion/source/pipeline/pipeline_service.py +121 -2
  819. metadata/ingestion/source/search/opensearch/connection.py +215 -0
  820. metadata/ingestion/source/search/opensearch/metadata.py +270 -0
  821. metadata/ingestion/source/search/opensearch/parser.py +71 -0
  822. metadata/ingestion/source/search/opensearch/service_spec.py +4 -0
  823. metadata/ingestion/source/search/search_service.py +2 -0
  824. metadata/ingestion/source/storage/storage_service.py +2 -0
  825. metadata/ingestion/stage/table_usage.py +53 -1
  826. metadata/profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py +3 -4
  827. metadata/profiler/orm/converter/azuresql/converter.py +39 -0
  828. metadata/profiler/orm/converter/converter_registry.py +2 -0
  829. metadata/profiler/orm/functions/length.py +2 -0
  830. metadata/profiler/orm/functions/median.py +19 -0
  831. metadata/profiler/orm/functions/modulo.py +1 -0
  832. metadata/profiler/orm/functions/random_num.py +1 -0
  833. metadata/profiler/orm/functions/sum.py +1 -0
  834. metadata/profiler/orm/registry.py +2 -0
  835. metadata/profiler/processor/core.py +1 -0
  836. metadata/profiler/processor/metric_filter.py +1 -1
  837. metadata/profiler/source/database/base/profiler_source.py +1 -0
  838. metadata/profiler/source/fetcher/fetcher_strategy.py +4 -0
  839. metadata/sampler/config.py +1 -0
  840. metadata/sampler/models.py +3 -0
  841. metadata/sampler/nosql/sampler.py +4 -0
  842. metadata/sampler/pandas/sampler.py +1 -0
  843. metadata/sampler/partition.py +9 -2
  844. metadata/sampler/sampler_interface.py +0 -1
  845. metadata/sampler/sqlalchemy/azuresql/sampler.py +30 -3
  846. metadata/sampler/sqlalchemy/mssql/sampler.py +2 -1
  847. metadata/sampler/sqlalchemy/sampler.py +51 -42
  848. metadata/sampler/sqlalchemy/snowflake/sampler.py +2 -1
  849. metadata/sampler/sqlalchemy/trino/sampler.py +9 -8
  850. metadata/utils/constants.py +1 -0
  851. metadata/utils/credentials.py +25 -4
  852. metadata/utils/elasticsearch.py +4 -0
  853. metadata/utils/helpers.py +91 -0
  854. metadata/utils/logger.py +9 -0
  855. metadata/utils/ssl_manager.py +35 -0
  856. metadata/utils/tag_utils.py +72 -27
  857. metadata/workflow/classification.py +3 -0
  858. metadata/workflow/profiler.py +13 -5
  859. metadata/workflow/workflow_status_mixin.py +6 -0
  860. {openmetadata_ingestion-1.6.7.0.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/METADATA +444 -381
  861. {openmetadata_ingestion-1.6.7.0.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/RECORD +865 -796
  862. {openmetadata_ingestion-1.6.7.0.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/LICENSE +0 -0
  863. {openmetadata_ingestion-1.6.7.0.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/WHEEL +0 -0
  864. {openmetadata_ingestion-1.6.7.0.dist-info → openmetadata_ingestion-1.7.0.0rc1.dist-info}/entry_points.txt +0 -0
  865. {openmetadata_ingestion-1.6.7.0.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 "
@@ -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
 
@@ -23,6 +23,7 @@ from metadata.ingestion.source.connections import get_test_connection_fn
23
23
  from metadata.profiler.processor.processor import ProfilerProcessor
24
24
  from metadata.profiler.source.metadata import OpenMetadataSource
25
25
  from metadata.profiler.source.metadata_ext import OpenMetadataSourceExt
26
+ from metadata.utils.helpers import retry_with_docker_host
26
27
  from metadata.utils.importer import import_sink_class
27
28
  from metadata.utils.logger import profiler_logger
28
29
  from metadata.utils.ssl_manager import get_ssl_connection
@@ -57,6 +58,9 @@ class ProfilerWorkflow(IngestionWorkflow):
57
58
  return OpenMetadataSourceExt
58
59
 
59
60
  def set_steps(self):
61
+ # NOTE: Call test_connection to update host value before creating the source class
62
+ self.test_connection()
63
+
60
64
  source_class = self._get_source_class()
61
65
  self.source = source_class.create(self.config.model_dump(), self.metadata)
62
66
 
@@ -66,12 +70,16 @@ class ProfilerWorkflow(IngestionWorkflow):
66
70
  self.steps = (profiler_processor, sink)
67
71
 
68
72
  def test_connection(self) -> None:
69
- service_config = self.config.source.serviceConnection.root.config
70
- conn = get_ssl_connection(service_config)
73
+ @retry_with_docker_host(config=self.config.source)
74
+ def main(self):
75
+ service_config = self.config.source.serviceConnection.root.config
76
+ conn = get_ssl_connection(service_config)
77
+
78
+ test_connection_fn = get_test_connection_fn(service_config)
79
+ result = test_connection_fn(self.metadata, conn, service_config)
80
+ raise_test_connection_exception(result)
71
81
 
72
- test_connection_fn = get_test_connection_fn(service_config)
73
- result = test_connection_fn(self.metadata, conn, service_config)
74
- raise_test_connection_exception(result)
82
+ return main(self)
75
83
 
76
84
  def _get_sink(self) -> Sink:
77
85
  sink_type = self.config.sink.type
@@ -111,6 +111,12 @@ class WorkflowStatusMixin:
111
111
  pipeline_status.status = (
112
112
  ingestion_status if ingestion_status else pipeline_status.status
113
113
  )
114
+ # committing configurations can be a burden on resources,
115
+ # we dump a subset to be mindful of the payload size
116
+ pipeline_status.config = self.config.model_dump(
117
+ include={"appConfig"},
118
+ mask_secrets=True,
119
+ )
114
120
  self.metadata.create_or_update_pipeline_status(
115
121
  self.ingestion_pipeline.fullyQualifiedName.root, pipeline_status
116
122
  )