openmetadata-ingestion 1.7.4.2__py3-none-any.whl → 1.8.0.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (790) hide show
  1. _openmetadata_testutils/helpers/login_user.py +22 -0
  2. metadata/__init__.py +31 -0
  3. metadata/automations/runner.py +24 -14
  4. metadata/data_quality/processor/test_case_runner.py +2 -11
  5. metadata/data_quality/source/test_suite.py +3 -1
  6. metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +17 -2
  7. metadata/examples/workflows/tableau.yaml +1 -0
  8. metadata/generated/schema/analytics/__init__.py +1 -1
  9. metadata/generated/schema/analytics/basic.py +1 -1
  10. metadata/generated/schema/analytics/reportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  16. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  17. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  20. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  21. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  22. metadata/generated/schema/api/__init__.py +1 -1
  23. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +3 -16
  24. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -10
  25. metadata/generated/schema/api/analytics/__init__.py +1 -1
  26. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  27. metadata/generated/schema/api/automations/__init__.py +1 -1
  28. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  29. metadata/generated/schema/api/bulkAssets.py +1 -1
  30. metadata/generated/schema/api/classification/__init__.py +1 -1
  31. metadata/generated/schema/api/classification/createClassification.py +6 -2
  32. metadata/generated/schema/api/classification/createTag.py +6 -2
  33. metadata/generated/schema/api/classification/loadTags.py +1 -1
  34. metadata/generated/schema/api/createBot.py +1 -1
  35. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  36. metadata/generated/schema/api/createType.py +1 -1
  37. metadata/generated/schema/api/data/__init__.py +1 -1
  38. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  39. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  40. metadata/generated/schema/api/data/createChart.py +1 -1
  41. metadata/generated/schema/api/data/createContainer.py +1 -1
  42. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  43. metadata/generated/schema/api/data/createDashboard.py +1 -1
  44. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  45. metadata/generated/schema/api/data/createDataContract.py +66 -0
  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 +1 -1
  53. metadata/generated/schema/api/data/createQuery.py +1 -1
  54. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  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/data/updateColumn.py +49 -0
  63. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  64. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  65. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  66. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  67. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  68. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  69. metadata/generated/schema/api/docStore/__init__.py +1 -1
  70. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  71. metadata/generated/schema/api/domains/__init__.py +1 -1
  72. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  73. metadata/generated/schema/api/domains/createDomain.py +1 -1
  74. metadata/generated/schema/api/feed/__init__.py +1 -1
  75. metadata/generated/schema/api/feed/closeTask.py +1 -1
  76. metadata/generated/schema/api/feed/createPost.py +1 -1
  77. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  78. metadata/generated/schema/api/feed/createThread.py +1 -1
  79. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  80. metadata/generated/schema/api/feed/threadCount.py +1 -1
  81. metadata/generated/schema/api/governance/__init__.py +1 -1
  82. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  83. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  84. metadata/generated/schema/api/lineage/__init__.py +1 -1
  85. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  86. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  87. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  88. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  89. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  90. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  91. metadata/generated/schema/api/mcp/__init__.py +3 -0
  92. metadata/generated/schema/api/mcp/mcpToolDefinition.py +54 -0
  93. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  94. metadata/generated/schema/api/policies/__init__.py +1 -1
  95. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  96. metadata/generated/schema/api/scim/__init__.py +3 -0
  97. metadata/generated/schema/api/scim/scimGroup.py +52 -0
  98. metadata/generated/schema/api/scim/scimPatchOp.py +32 -0
  99. metadata/generated/schema/api/scim/scimUser.py +83 -0
  100. metadata/generated/schema/api/search/__init__.py +1 -1
  101. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  102. metadata/generated/schema/api/services/__init__.py +1 -1
  103. metadata/generated/schema/api/services/createApiService.py +1 -1
  104. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  105. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  106. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  107. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  108. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  109. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  110. metadata/generated/schema/api/services/createSearchService.py +1 -1
  111. metadata/generated/schema/api/services/createStorageService.py +1 -1
  112. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  113. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  114. metadata/generated/schema/api/setOwner.py +1 -1
  115. metadata/generated/schema/api/teams/__init__.py +1 -1
  116. metadata/generated/schema/api/teams/createPersona.py +1 -1
  117. metadata/generated/schema/api/teams/createRole.py +1 -1
  118. metadata/generated/schema/api/teams/createTeam.py +8 -1
  119. metadata/generated/schema/api/teams/createUser.py +11 -1
  120. metadata/generated/schema/api/tests/__init__.py +1 -1
  121. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  122. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  123. metadata/generated/schema/api/tests/createTestCase.py +9 -6
  124. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  125. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  126. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  127. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  128. metadata/generated/schema/api/validateGlossaryTagsRequest.py +31 -0
  129. metadata/generated/schema/api/voteRequest.py +1 -1
  130. metadata/generated/schema/auth/__init__.py +1 -1
  131. metadata/generated/schema/auth/basicAuth.py +1 -1
  132. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  133. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  134. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  135. metadata/generated/schema/auth/emailRequest.py +1 -1
  136. metadata/generated/schema/auth/emailVerificationToken.py +2 -1
  137. metadata/generated/schema/auth/generateToken.py +1 -1
  138. metadata/generated/schema/auth/jwtAuth.py +1 -1
  139. metadata/generated/schema/auth/loginRequest.py +1 -1
  140. metadata/generated/schema/auth/logoutRequest.py +1 -1
  141. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  142. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  143. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  144. metadata/generated/schema/auth/refreshToken.py +1 -1
  145. metadata/generated/schema/auth/registrationRequest.py +1 -1
  146. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  147. metadata/generated/schema/auth/revokeToken.py +1 -1
  148. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  149. metadata/generated/schema/auth/ssoAuth.py +1 -1
  150. metadata/generated/schema/auth/supportToken.py +35 -0
  151. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  152. metadata/generated/schema/configuration/__init__.py +1 -1
  153. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  154. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  155. metadata/generated/schema/configuration/authConfig.py +1 -1
  156. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  159. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  165. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  167. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  168. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  169. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  170. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  171. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  172. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  174. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  176. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/opsConfig.py +1 -1
  179. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/searchSettings.py +1 -1
  182. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  183. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  184. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  185. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  186. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  187. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  188. metadata/generated/schema/dataInsight/__init__.py +1 -1
  189. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  190. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  191. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  192. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  193. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  194. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  195. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  196. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  197. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  198. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  199. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  200. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  201. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  202. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  203. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  204. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  205. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  206. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  207. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  208. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  209. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  210. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  211. metadata/generated/schema/email/__init__.py +1 -1
  212. metadata/generated/schema/email/emailRequest.py +1 -1
  213. metadata/generated/schema/email/emailTemplate.py +1 -1
  214. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  215. metadata/generated/schema/email/smtpSettings.py +1 -1
  216. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  217. metadata/generated/schema/entity/__init__.py +1 -1
  218. metadata/generated/schema/entity/applications/__init__.py +1 -1
  219. metadata/generated/schema/entity/applications/app.py +3 -2
  220. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  221. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  222. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  226. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  232. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  234. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +9 -1
  254. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +9 -1
  256. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  262. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  263. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  264. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  265. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  266. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  267. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  268. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  269. metadata/generated/schema/entity/automations/__init__.py +1 -1
  270. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  271. metadata/generated/schema/entity/automations/workflow.py +1 -1
  272. metadata/generated/schema/entity/bot.py +1 -1
  273. metadata/generated/schema/entity/classification/__init__.py +1 -1
  274. metadata/generated/schema/entity/classification/classification.py +7 -4
  275. metadata/generated/schema/entity/classification/tag.py +6 -3
  276. metadata/generated/schema/entity/data/__init__.py +1 -1
  277. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  278. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  279. metadata/generated/schema/entity/data/chart.py +1 -1
  280. metadata/generated/schema/entity/data/container.py +1 -1
  281. metadata/generated/schema/entity/data/dashboard.py +1 -1
  282. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  283. metadata/generated/schema/entity/data/dataContract.py +180 -0
  284. metadata/generated/schema/entity/data/database.py +1 -1
  285. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  286. metadata/generated/schema/entity/data/glossary.py +1 -1
  287. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  288. metadata/generated/schema/entity/data/metric.py +1 -1
  289. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  290. metadata/generated/schema/entity/data/pipeline.py +1 -1
  291. metadata/generated/schema/entity/data/query.py +1 -1
  292. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  293. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  294. metadata/generated/schema/entity/data/report.py +1 -1
  295. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  296. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  297. metadata/generated/schema/entity/data/table.py +5 -1
  298. metadata/generated/schema/entity/data/topic.py +1 -1
  299. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  300. metadata/generated/schema/entity/docStore/document.py +1 -1
  301. metadata/generated/schema/entity/domains/__init__.py +1 -1
  302. metadata/generated/schema/entity/domains/dataProduct.py +5 -1
  303. metadata/generated/schema/entity/domains/domain.py +5 -1
  304. metadata/generated/schema/entity/events/__init__.py +1 -1
  305. metadata/generated/schema/entity/events/webhook.py +7 -1
  306. metadata/generated/schema/entity/feed/__init__.py +1 -1
  307. metadata/generated/schema/entity/feed/assets.py +1 -1
  308. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  309. metadata/generated/schema/entity/feed/description.py +1 -1
  310. metadata/generated/schema/entity/feed/domain.py +1 -1
  311. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  312. metadata/generated/schema/entity/feed/owner.py +1 -1
  313. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  314. metadata/generated/schema/entity/feed/tag.py +1 -1
  315. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  316. metadata/generated/schema/entity/feed/thread.py +1 -1
  317. metadata/generated/schema/entity/policies/__init__.py +1 -1
  318. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  319. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +6 -1
  320. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  321. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  322. metadata/generated/schema/entity/policies/filters.py +1 -1
  323. metadata/generated/schema/entity/policies/policy.py +1 -1
  324. metadata/generated/schema/entity/services/__init__.py +1 -1
  325. metadata/generated/schema/entity/services/apiService.py +1 -1
  326. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  327. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  328. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  330. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  331. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  332. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  333. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  334. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  335. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  345. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  346. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  347. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  348. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  349. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +9 -1
  356. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +5 -1
  360. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  427. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +9 -1
  432. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  433. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  434. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  441. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  447. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  461. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  462. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  464. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  465. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  466. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  474. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  476. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  477. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  478. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  482. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  487. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  488. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  489. metadata/generated/schema/entity/services/databaseService.py +1 -1
  490. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  491. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  492. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  493. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  494. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  495. metadata/generated/schema/entity/services/messagingService.py +1 -1
  496. metadata/generated/schema/entity/services/metadataService.py +1 -1
  497. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  498. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  499. metadata/generated/schema/entity/services/searchService.py +1 -1
  500. metadata/generated/schema/entity/services/serviceType.py +1 -1
  501. metadata/generated/schema/entity/services/storageService.py +1 -1
  502. metadata/generated/schema/entity/teams/__init__.py +1 -1
  503. metadata/generated/schema/entity/teams/persona.py +1 -1
  504. metadata/generated/schema/entity/teams/role.py +1 -1
  505. metadata/generated/schema/entity/teams/team.py +8 -1
  506. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  507. metadata/generated/schema/entity/teams/user.py +11 -1
  508. metadata/generated/schema/entity/type.py +1 -1
  509. metadata/generated/schema/entity/utils/__init__.py +1 -1
  510. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  511. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  512. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  513. metadata/generated/schema/events/__init__.py +1 -1
  514. metadata/generated/schema/events/alertMetrics.py +1 -1
  515. metadata/generated/schema/events/api/__init__.py +1 -1
  516. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  517. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  518. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  519. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  520. metadata/generated/schema/events/api/typedEvent.py +1 -1
  521. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  522. metadata/generated/schema/events/eventFilterRule.py +1 -1
  523. metadata/generated/schema/events/eventSubscription.py +1 -1
  524. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  525. metadata/generated/schema/events/failedEvent.py +1 -1
  526. metadata/generated/schema/events/failedEventResponse.py +1 -1
  527. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  528. metadata/generated/schema/events/statusContext.py +1 -1
  529. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  530. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  531. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  532. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  533. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  534. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  535. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  536. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  537. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  538. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  539. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  540. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  541. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  542. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  543. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  544. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  545. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  546. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  547. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  548. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  549. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  550. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  551. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  552. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  553. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  554. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  555. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  556. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  557. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  558. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  559. metadata/generated/schema/jobs/__init__.py +1 -1
  560. metadata/generated/schema/jobs/backgroundJob.py +12 -3
  561. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  562. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  563. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  564. metadata/generated/schema/metadataIngestion/application.py +1 -1
  565. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  566. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  567. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  569. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  571. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  572. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  573. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  574. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  575. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  576. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  577. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  578. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  579. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  580. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  581. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  582. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  583. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  584. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  585. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  586. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  587. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  588. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  589. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  590. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  591. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  592. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  593. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  594. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  595. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  596. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  597. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  598. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  599. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  600. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  601. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  602. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  603. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  604. metadata/generated/schema/monitoring/__init__.py +1 -1
  605. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  606. metadata/generated/schema/scim/__init__.py +3 -0
  607. metadata/generated/schema/scim/scimConfiguration.py +32 -0
  608. metadata/generated/schema/search/__init__.py +1 -1
  609. metadata/generated/schema/search/aggregationRequest.py +1 -1
  610. metadata/generated/schema/search/searchRequest.py +8 -1
  611. metadata/generated/schema/security/__init__.py +1 -1
  612. metadata/generated/schema/security/client/__init__.py +1 -1
  613. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  614. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  615. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  616. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  617. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  618. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  619. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  620. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  621. metadata/generated/schema/security/credentials/__init__.py +1 -1
  622. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  623. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  624. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  625. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  626. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  627. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  628. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  629. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  630. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  631. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  632. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  633. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  634. metadata/generated/schema/security/sasl/__init__.py +1 -1
  635. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  636. metadata/generated/schema/security/secrets/__init__.py +1 -1
  637. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  638. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  639. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  640. metadata/generated/schema/security/securityConfiguration.py +1 -1
  641. metadata/generated/schema/security/ssl/__init__.py +1 -1
  642. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  643. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  644. metadata/generated/schema/settings/__init__.py +1 -1
  645. metadata/generated/schema/settings/settings.py +2 -1
  646. metadata/generated/schema/system/__init__.py +1 -1
  647. metadata/generated/schema/system/entityError.py +1 -1
  648. metadata/generated/schema/system/eventPublisherJob.py +8 -1
  649. metadata/generated/schema/system/indexingError.py +1 -1
  650. metadata/generated/schema/system/limitsResponse.py +1 -1
  651. metadata/generated/schema/system/ui/__init__.py +1 -1
  652. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  653. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  654. metadata/generated/schema/system/ui/page.py +1 -1
  655. metadata/generated/schema/system/ui/tab.py +1 -1
  656. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  657. metadata/generated/schema/system/validationResponse.py +1 -1
  658. metadata/generated/schema/tests/__init__.py +1 -1
  659. metadata/generated/schema/tests/assigned.py +1 -1
  660. metadata/generated/schema/tests/basic.py +1 -1
  661. metadata/generated/schema/tests/customMetric.py +1 -1
  662. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  663. metadata/generated/schema/tests/resolved.py +1 -1
  664. metadata/generated/schema/tests/testCase.py +1 -1
  665. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  666. metadata/generated/schema/tests/testDefinition.py +1 -1
  667. metadata/generated/schema/tests/testSuite.py +1 -1
  668. metadata/generated/schema/type/__init__.py +1 -1
  669. metadata/generated/schema/type/apiSchema.py +1 -1
  670. metadata/generated/schema/type/assetCertification.py +1 -1
  671. metadata/generated/schema/type/auditLog.py +1 -1
  672. metadata/generated/schema/type/basic.py +1 -1
  673. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  674. metadata/generated/schema/type/changeEvent.py +1 -1
  675. metadata/generated/schema/type/changeEventType.py +1 -1
  676. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  677. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  678. metadata/generated/schema/type/csvDocumentation.py +1 -1
  679. metadata/generated/schema/type/csvErrorType.py +1 -1
  680. metadata/generated/schema/type/csvFile.py +1 -1
  681. metadata/generated/schema/type/csvImportResult.py +1 -1
  682. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  683. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  684. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  685. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  686. metadata/generated/schema/type/customProperty.py +1 -1
  687. metadata/generated/schema/type/dailyCount.py +1 -1
  688. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  689. metadata/generated/schema/type/entityHierarchy.py +1 -1
  690. metadata/generated/schema/type/entityHistory.py +1 -1
  691. metadata/generated/schema/type/entityLineage.py +1 -1
  692. metadata/generated/schema/type/entityReference.py +1 -1
  693. metadata/generated/schema/type/entityReferenceList.py +1 -1
  694. metadata/generated/schema/type/entityRelationship.py +1 -1
  695. metadata/generated/schema/type/entityUsage.py +1 -1
  696. metadata/generated/schema/type/filterPattern.py +1 -1
  697. metadata/generated/schema/type/function.py +1 -1
  698. metadata/generated/schema/type/include.py +1 -1
  699. metadata/generated/schema/type/jdbcConnection.py +1 -1
  700. metadata/generated/schema/type/lifeCycle.py +1 -1
  701. metadata/generated/schema/type/paging.py +1 -1
  702. metadata/generated/schema/type/profile.py +1 -1
  703. metadata/generated/schema/type/queryParserData.py +1 -1
  704. metadata/generated/schema/type/reaction.py +1 -1
  705. metadata/generated/schema/type/schedule.py +1 -1
  706. metadata/generated/schema/type/schema.py +1 -1
  707. metadata/generated/schema/type/tableQuery.py +1 -1
  708. metadata/generated/schema/type/tableUsageCount.py +1 -1
  709. metadata/generated/schema/type/tagLabel.py +1 -1
  710. metadata/generated/schema/type/usageDetails.py +1 -1
  711. metadata/generated/schema/type/usageRequest.py +1 -1
  712. metadata/generated/schema/type/votes.py +1 -1
  713. metadata/great_expectations/action.py +4 -8
  714. metadata/great_expectations/action1xx.py +395 -0
  715. metadata/ingestion/connections/builders.py +14 -4
  716. metadata/ingestion/connections/connection.py +63 -0
  717. metadata/ingestion/connections/query_logger.py +115 -0
  718. metadata/ingestion/connections/test_connections.py +1 -1
  719. metadata/ingestion/ometa/mixins/tests_mixin.py +3 -5
  720. metadata/ingestion/ometa/routes.py +2 -0
  721. metadata/ingestion/sink/metadata_rest.py +54 -11
  722. metadata/ingestion/source/api/api_service.py +2 -7
  723. metadata/ingestion/source/connections.py +80 -14
  724. metadata/ingestion/source/connections_utils.py +32 -0
  725. metadata/ingestion/source/dashboard/dashboard_service.py +26 -15
  726. metadata/ingestion/source/dashboard/powerbi/metadata.py +32 -20
  727. metadata/ingestion/source/dashboard/superset/connection.py +8 -8
  728. metadata/ingestion/source/dashboard/superset/queries.py +1 -1
  729. metadata/ingestion/source/dashboard/tableau/metadata.py +12 -2
  730. metadata/ingestion/source/dashboard/tableau/models.py +12 -2
  731. metadata/ingestion/source/database/bigquery/connection.py +13 -9
  732. metadata/ingestion/source/database/bigquery/helper.py +11 -9
  733. metadata/ingestion/source/database/bigquery/metadata.py +102 -13
  734. metadata/ingestion/source/database/bigquery/queries.py +15 -3
  735. metadata/ingestion/source/database/common_db_source.py +2 -4
  736. metadata/ingestion/source/database/database_service.py +2 -7
  737. metadata/ingestion/source/database/datalake/metadata.py +1 -1
  738. metadata/ingestion/source/database/dbt/metadata.py +0 -5
  739. metadata/ingestion/source/database/mysql/connection.py +52 -45
  740. metadata/ingestion/source/database/mysql/service_spec.py +2 -0
  741. metadata/ingestion/source/database/query_parser_source.py +2 -7
  742. metadata/ingestion/source/database/redshift/connection.py +1 -1
  743. metadata/ingestion/source/database/sample_data.py +1 -1
  744. metadata/ingestion/source/database/saphana/lineage.py +2 -7
  745. metadata/ingestion/source/database/sas/metadata.py +2 -7
  746. metadata/ingestion/source/database/snowflake/metadata.py +1 -2
  747. metadata/ingestion/source/database/snowflake/utils.py +0 -4
  748. metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +26 -17
  749. metadata/ingestion/source/database/unitycatalog/connection.py +33 -0
  750. metadata/ingestion/source/database/unitycatalog/lineage.py +2 -7
  751. metadata/ingestion/source/database/unitycatalog/metadata.py +126 -13
  752. metadata/ingestion/source/database/unitycatalog/queries.py +19 -0
  753. metadata/ingestion/source/messaging/messaging_service.py +2 -7
  754. metadata/ingestion/source/metadata/alationsink/metadata.py +2 -7
  755. metadata/ingestion/source/metadata/amundsen/metadata.py +2 -7
  756. metadata/ingestion/source/metadata/atlas/metadata.py +2 -7
  757. metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -7
  758. metadata/ingestion/source/pipeline/airflow/connection.py +4 -6
  759. metadata/ingestion/source/pipeline/nifi/metadata.py +133 -3
  760. metadata/ingestion/source/pipeline/pipeline_service.py +20 -7
  761. metadata/ingestion/source/search/search_service.py +2 -7
  762. metadata/ingestion/source/storage/storage_service.py +2 -7
  763. metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +3 -3
  764. metadata/profiler/metrics/static/not_regexp_match_count.py +4 -3
  765. metadata/profiler/metrics/static/regexp_match_count.py +3 -2
  766. metadata/profiler/orm/functions/length.py +1 -0
  767. metadata/profiler/orm/functions/md5.py +9 -0
  768. metadata/profiler/orm/functions/modulo.py +1 -0
  769. metadata/profiler/orm/functions/random_num.py +4 -0
  770. metadata/profiler/orm/functions/regexp.py +40 -0
  771. metadata/profiler/orm/functions/table_metric_computer.py +34 -8
  772. metadata/profiler/orm/registry.py +1 -0
  773. metadata/profiler/processor/core.py +2 -2
  774. metadata/profiler/processor/default.py +29 -28
  775. metadata/profiler/processor/metric_filter.py +16 -3
  776. metadata/profiler/processor/models.py +14 -4
  777. metadata/profiler/source/database/base/profiler_resolver.py +35 -0
  778. metadata/profiler/source/database/base/profiler_source.py +45 -30
  779. metadata/profiler/source/profiler_source_interface.py +8 -13
  780. metadata/sampler/sampler_interface.py +15 -10
  781. metadata/sampler/sqlalchemy/bigquery/sampler.py +7 -0
  782. metadata/utils/dependency_injector/dependency_injector.py +403 -0
  783. metadata/utils/service_spec/service_spec.py +66 -10
  784. metadata/workflow/profiler.py +2 -7
  785. {openmetadata_ingestion-1.7.4.2.dist-info → openmetadata_ingestion-1.8.0.0.dist-info}/METADATA +516 -505
  786. {openmetadata_ingestion-1.7.4.2.dist-info → openmetadata_ingestion-1.8.0.0.dist-info}/RECORD +790 -767
  787. {openmetadata_ingestion-1.7.4.2.dist-info → openmetadata_ingestion-1.8.0.0.dist-info}/LICENSE +0 -0
  788. {openmetadata_ingestion-1.7.4.2.dist-info → openmetadata_ingestion-1.8.0.0.dist-info}/WHEEL +0 -0
  789. {openmetadata_ingestion-1.7.4.2.dist-info → openmetadata_ingestion-1.8.0.0.dist-info}/entry_points.txt +0 -0
  790. {openmetadata_ingestion-1.7.4.2.dist-info → openmetadata_ingestion-1.8.0.0.dist-info}/top_level.txt +0 -0
@@ -12,13 +12,14 @@
12
12
  Nifi source to extract metadata
13
13
  """
14
14
  import traceback
15
- from typing import Iterable, List, Optional
15
+ from collections import defaultdict
16
+ from typing import Dict, Iterable, List, Optional
16
17
 
17
18
  from pydantic import BaseModel, ValidationError
18
19
 
19
20
  from metadata.generated.schema.api.data.createPipeline import CreatePipelineRequest
20
21
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
21
- from metadata.generated.schema.entity.data.pipeline import Task
22
+ from metadata.generated.schema.entity.data.pipeline import Pipeline, Task
22
23
  from metadata.generated.schema.entity.services.connections.pipeline.nifiConnection import (
23
24
  NifiConnection,
24
25
  )
@@ -30,6 +31,9 @@ from metadata.generated.schema.type.basic import (
30
31
  FullyQualifiedEntityName,
31
32
  SourceUrl,
32
33
  )
34
+ from metadata.generated.schema.type.entityLineage import EntitiesEdge, LineageDetails
35
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
36
+ from metadata.generated.schema.type.entityReference import EntityReference
33
37
  from metadata.ingestion.api.models import Either
34
38
  from metadata.ingestion.api.steps import InvalidSourceException
35
39
  from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
@@ -43,6 +47,7 @@ logger = ingestion_logger()
43
47
 
44
48
  PROCESS_GROUP_FLOW = "processGroupFlow"
45
49
  BREADCRUMB = "breadcrumb"
50
+ PARENT_BREADCRUMB = "parentBreadcrumb"
46
51
 
47
52
 
48
53
  class NifiProcessor(BaseModel):
@@ -77,6 +82,7 @@ class NifiPipelineDetails(BaseModel):
77
82
  uri: str
78
83
  processors: List[NifiProcessor]
79
84
  connections: List[NifiProcessorConnections]
85
+ parent_pipeline_id: Optional[str] = None
80
86
 
81
87
 
82
88
  class NifiSource(PipelineServiceSource):
@@ -85,6 +91,11 @@ class NifiSource(PipelineServiceSource):
85
91
  Pipeline metadata from Airflow's metadata db
86
92
  """
87
93
 
94
+ def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
95
+ super().__init__(config, metadata)
96
+ self.pipeline_parents_mapping: Dict[str, List[str]] = defaultdict(list)
97
+ self.process_group_connections: List[NifiProcessorConnections] = []
98
+
88
99
  @classmethod
89
100
  def create(
90
101
  cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
@@ -220,7 +231,7 @@ class NifiSource(PipelineServiceSource):
220
231
  """Get List of all pipelines"""
221
232
  for process_group in self.connection.list_process_groups():
222
233
  try:
223
- yield NifiPipelineDetails(
234
+ nifi_pipeline_details = NifiPipelineDetails(
224
235
  id_=process_group[PROCESS_GROUP_FLOW].get("id"),
225
236
  name=process_group[PROCESS_GROUP_FLOW][BREADCRUMB][BREADCRUMB].get(
226
237
  "name"
@@ -232,7 +243,18 @@ class NifiSource(PipelineServiceSource):
232
243
  connections=self._get_connections_from_process_group(
233
244
  process_group=process_group
234
245
  ),
246
+ parent_pipeline_id=process_group[PROCESS_GROUP_FLOW][BREADCRUMB]
247
+ .get(PARENT_BREADCRUMB, {})
248
+ .get("id"),
249
+ )
250
+ if nifi_pipeline_details.parent_pipeline_id:
251
+ self.pipeline_parents_mapping[nifi_pipeline_details.id_].append(
252
+ nifi_pipeline_details.parent_pipeline_id
253
+ )
254
+ self.process_group_connections.extend(
255
+ self.get_process_group_connections(process_group)
235
256
  )
257
+ yield nifi_pipeline_details
236
258
  except (ValueError, KeyError, ValidationError) as err:
237
259
  logger.debug(traceback.format_exc())
238
260
  logger.warning(
@@ -244,5 +266,113 @@ class NifiSource(PipelineServiceSource):
244
266
  f"Wild error encountered when trying to get pipelines from Process Group {process_group} - {err}."
245
267
  )
246
268
 
269
+ def get_process_group_connections(
270
+ self, process_group: dict
271
+ ) -> List[NifiProcessorConnections]:
272
+ """Get all connections for a process group"""
273
+ connections_list = (
274
+ process_group.get(PROCESS_GROUP_FLOW).get("flow").get("connections")
275
+ )
276
+ connections = []
277
+
278
+ for connection in connections_list:
279
+ try:
280
+ source = connection.get("component", {}).get("source", {})
281
+ destination = connection.get("component", {}).get("destination", {})
282
+ if (
283
+ source.get("type") == "OUTPUT_PORT"
284
+ and destination.get("type") == "INPUT_PORT"
285
+ and source.get("groupId") != destination.get("groupId")
286
+ ):
287
+ connections.append(
288
+ NifiProcessorConnections(
289
+ id_=connection.get("id"),
290
+ source_id=source.get("groupId"),
291
+ destination_id=destination.get("groupId"),
292
+ )
293
+ )
294
+ except Exception as err:
295
+ logger.debug(traceback.format_exc())
296
+ logger.warning(
297
+ f"Wild error encountered when trying to get process group connections from \
298
+ {process_group[PROCESS_GROUP_FLOW][BREADCRUMB][BREADCRUMB].get('name')} - {err}."
299
+ )
300
+ return connections
301
+
302
+ def yield_pipeline_bulk_lineage_details(
303
+ self,
304
+ ) -> Iterable[Either[AddLineageRequest]]:
305
+ """
306
+ Process the pipeline bulk lineage details
307
+ """
308
+ # Process the lineage between parent and child pipelines
309
+ for pipeline_id, parent_pipeline_ids in self.pipeline_parents_mapping.items():
310
+ to_entity = self.metadata.get_by_name(
311
+ entity=Pipeline,
312
+ fqn=f"{self.context.get().pipeline_service}.{pipeline_id}",
313
+ )
314
+ if not to_entity:
315
+ logger.warning(
316
+ f"Pipeline {pipeline_id} not found in metadata, skipping lineage"
317
+ )
318
+ continue
319
+ for parent_pipeline_id in parent_pipeline_ids:
320
+ from_entity = self.metadata.get_by_name(
321
+ entity=Pipeline,
322
+ fqn=f"{self.context.get().pipeline_service}.{parent_pipeline_id}",
323
+ )
324
+ if not from_entity:
325
+ logger.warning(
326
+ f"Parent Pipeline {parent_pipeline_id} not found in metadata, skipping lineage"
327
+ )
328
+ continue
329
+ yield Either(
330
+ right=AddLineageRequest(
331
+ edge=EntitiesEdge(
332
+ fromEntity=EntityReference(
333
+ id=from_entity.id, type="pipeline"
334
+ ),
335
+ toEntity=EntityReference(id=to_entity.id, type="pipeline"),
336
+ lineageDetails=LineageDetails(
337
+ source=LineageSource.PipelineLineage
338
+ ),
339
+ )
340
+ )
341
+ )
342
+
343
+ # Process the lineage between connected pipelines
344
+ for connection in self.process_group_connections:
345
+ from_entity = self.metadata.get_by_name(
346
+ entity=Pipeline,
347
+ fqn=f"{self.context.get().pipeline_service}.{connection.source_id}",
348
+ )
349
+ if not from_entity:
350
+ logger.warning(
351
+ f"Pipeline {connection.source_id} not found in metadata, skipping lineage"
352
+ )
353
+ continue
354
+
355
+ to_entity = self.metadata.get_by_name(
356
+ entity=Pipeline,
357
+ fqn=f"{self.context.get().pipeline_service}.{connection.destination_id}",
358
+ )
359
+ if not to_entity:
360
+ logger.warning(
361
+ f"Pipeline {connection.destination_id} not found in metadata, skipping lineage"
362
+ )
363
+ continue
364
+
365
+ yield Either(
366
+ right=AddLineageRequest(
367
+ edge=EntitiesEdge(
368
+ fromEntity=EntityReference(id=from_entity.id, type="pipeline"),
369
+ toEntity=EntityReference(id=to_entity.id, type="pipeline"),
370
+ lineageDetails=LineageDetails(
371
+ source=LineageSource.PipelineLineage
372
+ ),
373
+ )
374
+ )
375
+ )
376
+
247
377
  def get_pipeline_name(self, pipeline_details: NifiPipelineDetails) -> str:
248
378
  return pipeline_details.name
@@ -41,9 +41,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
41
41
  from metadata.ingestion.api.models import Either
42
42
  from metadata.ingestion.api.steps import Source
43
43
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
44
- from metadata.ingestion.connections.test_connections import (
45
- raise_test_connection_exception,
46
- )
47
44
  from metadata.ingestion.models.delete_entity import DeleteEntity
48
45
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
49
46
  from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
@@ -55,7 +52,7 @@ from metadata.ingestion.models.topology import (
55
52
  TopologyNode,
56
53
  )
57
54
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
58
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
55
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
59
56
  from metadata.ingestion.source.pipeline.openlineage.models import TableDetails
60
57
  from metadata.ingestion.source.pipeline.openlineage.utils import FQNNotFoundException
61
58
  from metadata.utils import fqn
@@ -137,6 +134,7 @@ class PipelineServiceTopology(ServiceTopology):
137
134
  nullable=True,
138
135
  ),
139
136
  ],
137
+ post_process=["process_pipeline_bulk_lineage"],
140
138
  )
141
139
 
142
140
 
@@ -316,6 +314,23 @@ class PipelineServiceSource(TopologyRunnerMixin, Source, ABC):
316
314
  else:
317
315
  yield lineage
318
316
 
317
+ def yield_pipeline_bulk_lineage_details(self) -> Iterable[AddLineageRequest]:
318
+ """Method to yield the bulk pipeline lineage details"""
319
+
320
+ def process_pipeline_bulk_lineage(self) -> Iterable[AddLineageRequest]:
321
+ """Method to process the bulk pipeline lineage"""
322
+ if self.source_config.includeLineage:
323
+ for lineage in self.yield_pipeline_bulk_lineage_details() or []:
324
+ if lineage.right is not None:
325
+ yield Either(
326
+ right=OMetaLineageRequest(
327
+ lineage_request=lineage.right,
328
+ override_lineage=self.source_config.overrideLineage,
329
+ )
330
+ )
331
+ else:
332
+ yield lineage
333
+
319
334
  def _get_table_fqn_from_om(self, table_details: TableDetails) -> Optional[str]:
320
335
  """
321
336
  Based on partial schema and table names look for matching table object in open metadata.
@@ -373,11 +388,9 @@ class PipelineServiceSource(TopologyRunnerMixin, Source, ABC):
373
388
  yield pipeline_detail
374
389
 
375
390
  def test_connection(self) -> None:
376
- test_connection_fn = get_test_connection_fn(self.service_connection)
377
- result = test_connection_fn(
391
+ test_connection_common(
378
392
  self.metadata, self.connection_obj, self.service_connection
379
393
  )
380
- raise_test_connection_exception(result)
381
394
 
382
395
  def register_record(self, pipeline_request: CreatePipelineRequest) -> None:
383
396
  """Mark the pipeline record as scanned and update the pipeline_source_state"""
@@ -41,9 +41,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
41
41
  from metadata.ingestion.api.models import Either
42
42
  from metadata.ingestion.api.steps import Source
43
43
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
44
- from metadata.ingestion.connections.test_connections import (
45
- raise_test_connection_exception,
46
- )
47
44
  from metadata.ingestion.models.delete_entity import DeleteEntity
48
45
  from metadata.ingestion.models.search_index_data import OMetaIndexSampleData
49
46
  from metadata.ingestion.models.topology import (
@@ -53,7 +50,7 @@ from metadata.ingestion.models.topology import (
53
50
  TopologyNode,
54
51
  )
55
52
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
56
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
53
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
57
54
  from metadata.utils import fqn
58
55
  from metadata.utils.filters import filter_by_search_index
59
56
  from metadata.utils.helpers import retry_with_docker_host
@@ -239,11 +236,9 @@ class SearchServiceSource(TopologyRunnerMixin, Source, ABC):
239
236
  """Nothing to prepare by default"""
240
237
 
241
238
  def test_connection(self) -> None:
242
- test_connection_fn = get_test_connection_fn(self.service_connection)
243
- result = test_connection_fn(
239
+ test_connection_common(
244
240
  self.metadata, self.connection_obj, self.service_connection
245
241
  )
246
- raise_test_connection_exception(result)
247
242
 
248
243
  def mark_search_indexes_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
249
244
  """Method to mark the search index as deleted"""
@@ -40,9 +40,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
40
40
  from metadata.ingestion.api.models import Either
41
41
  from metadata.ingestion.api.steps import Source
42
42
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
43
- from metadata.ingestion.connections.test_connections import (
44
- raise_test_connection_exception,
45
- )
46
43
  from metadata.ingestion.models.delete_entity import DeleteEntity
47
44
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
48
45
  from metadata.ingestion.models.topology import (
@@ -52,7 +49,7 @@ from metadata.ingestion.models.topology import (
52
49
  TopologyNode,
53
50
  )
54
51
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
55
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
52
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
56
53
  from metadata.ingestion.source.database.glue.models import Column
57
54
  from metadata.readers.dataframe.models import DatalakeTableSchemaWrapper
58
55
  from metadata.readers.dataframe.reader_factory import SupportedTypes
@@ -240,11 +237,9 @@ class StorageServiceSource(TopologyRunnerMixin, Source, ABC):
240
237
  self.container_source_state.add(container_fqn)
241
238
 
242
239
  def test_connection(self) -> None:
243
- test_connection_fn = get_test_connection_fn(self.service_connection)
244
- result = test_connection_fn(
240
+ test_connection_common(
245
241
  self.metadata, self.connection_obj, self.service_connection
246
242
  )
247
- raise_test_connection_exception(result)
248
243
 
249
244
  def mark_containers_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
250
245
  """Method to mark the containers as deleted"""
@@ -29,7 +29,7 @@ class BigQueryProfilerInterface(SQAProfilerInterface):
29
29
  from sqlalchemy_bigquery import STRUCT
30
30
 
31
31
  columns_list = []
32
- for key, value in columns.items():
32
+ for key, value in columns:
33
33
  if not isinstance(value, STRUCT):
34
34
  col = Column(f"{parent}.{key}", value)
35
35
  # pylint: disable=protected-access
@@ -38,7 +38,7 @@ class BigQueryProfilerInterface(SQAProfilerInterface):
38
38
  columns_list.append(col)
39
39
  else:
40
40
  col = self._get_struct_columns(
41
- value.__dict__.get("_STRUCT_byname"), f"{parent}.{key}"
41
+ value.__dict__.get("_STRUCT_fields"), f"{parent}.{key}"
42
42
  )
43
43
  columns_list.extend(col)
44
44
  return columns_list
@@ -53,7 +53,7 @@ class BigQueryProfilerInterface(SQAProfilerInterface):
53
53
  if isinstance(column.type, STRUCT):
54
54
  columns.extend(
55
55
  self._get_struct_columns(
56
- column.type.__dict__.get("_STRUCT_byname"), column.name
56
+ column.type.__dict__.get("_STRUCT_fields"), column.name
57
57
  )
58
58
  )
59
59
  else:
@@ -18,6 +18,7 @@ from sqlalchemy import case, column, not_
18
18
 
19
19
  from metadata.generated.schema.configuration.profilerConfiguration import MetricType
20
20
  from metadata.profiler.metrics.core import StaticMetric, _label
21
+ from metadata.profiler.orm.functions.regexp import RegexpMatchFn
21
22
  from metadata.profiler.orm.functions.sum import SumFn
22
23
  from metadata.profiler.orm.registry import is_concatenable
23
24
 
@@ -58,9 +59,9 @@ class NotRegexCount(StaticMetric):
58
59
  [
59
60
  (
60
61
  not_(
61
- column(self.col.name, self.col.type).regexp_match(
62
- self.expression
63
- )
62
+ RegexpMatchFn(
63
+ column(self.col.name, self.col.type), self.expression
64
+ ),
64
65
  ),
65
66
  0,
66
67
  )
@@ -18,6 +18,7 @@ from sqlalchemy import case, column
18
18
 
19
19
  from metadata.generated.schema.configuration.profilerConfiguration import MetricType
20
20
  from metadata.profiler.metrics.core import StaticMetric, _label
21
+ from metadata.profiler.orm.functions.regexp import RegexpMatchFn
21
22
  from metadata.profiler.orm.functions.sum import SumFn
22
23
  from metadata.profiler.orm.registry import is_concatenable
23
24
 
@@ -57,8 +58,8 @@ class RegexCount(StaticMetric):
57
58
  case(
58
59
  [
59
60
  (
60
- column(self.col.name, self.col.type).regexp_match(
61
- self.expression
61
+ RegexpMatchFn(
62
+ column(self.col.name, self.col.type), self.expression
62
63
  ),
63
64
  1,
64
65
  )
@@ -52,6 +52,7 @@ def _(element, compiler, **kw):
52
52
  @compiles(LenFn, Dialects.Hana)
53
53
  @compiles(LenFn, Dialects.Druid)
54
54
  @compiles(LenFn, Dialects.Doris)
55
+ @compiles(LenFn, Dialects.Teradata)
55
56
  def _(element, compiler, **kw):
56
57
  return "LENGTH(%s)" % compiler.process(element.clauses, **kw)
57
58
 
@@ -40,3 +40,12 @@ def _(element, compiler, **kw):
40
40
  @compiles(MD5, PythonDialects.BigQuery.value)
41
41
  def _(element, compiler, **kw):
42
42
  return f"TO_HEX(MD5(CAST({compiler.process(element.clauses, **kw)} AS STRING)))"
43
+
44
+
45
+ @compiles(MD5, PythonDialects.Teradata.value)
46
+ def _(element, compiler, **kw):
47
+ # There is no MD5 in Teradata or any other hashes
48
+ # But we can use UDF function hash_md5 published by Teradata Community
49
+ return (
50
+ f"HASH_MD5(CAST({compiler.process(element.clauses, **kw)} AS VARCHAR(32000)))"
51
+ )
@@ -61,6 +61,7 @@ def _(element, compiler, **kw):
61
61
  @compiles(ModuloFn, Dialects.Vertica)
62
62
  @compiles(ModuloFn, Dialects.Hana)
63
63
  @compiles(ModuloFn, Dialects.Cockroach)
64
+ @compiles(ModuloFn, Dialects.Teradata)
64
65
  def _(element, compiler, **kw):
65
66
  """Modulo function for specific dialect"""
66
67
  value, base = validate_and_compile(element, compiler, **kw)
@@ -98,10 +98,14 @@ def _(*_, **__):
98
98
 
99
99
 
100
100
  @compiles(RandomNumFn, Dialects.Snowflake)
101
+ @compiles(RandomNumFn, Dialects.Teradata)
101
102
  def _(*_, **__):
102
103
  """We use FROM <table> SAMPLE BERNOULLI (n) for sampling
103
104
  in snowflake. We'll return 0 to make sure we get all the rows
104
105
  from the already sampled results when executing row::MOD(0, 100) < profile_sample.
106
+
107
+ Teradata RANDOM(0,100) function can't be used inside ORDER BY clause. That's why
108
+ use the same trick.
105
109
  """
106
110
  return "0"
107
111
 
@@ -0,0 +1,40 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """Define a regexp match function."""
13
+
14
+ from sqlalchemy.ext.compiler import compiles
15
+ from sqlalchemy.sql.functions import GenericFunction
16
+
17
+ from metadata.profiler.metrics.core import CACHE
18
+ from metadata.profiler.orm.registry import Dialects
19
+
20
+
21
+ class RegexpMatchFn(GenericFunction):
22
+ name = "regexp_match"
23
+ inherit_cache = CACHE
24
+
25
+
26
+ @compiles(RegexpMatchFn)
27
+ def _(element, compiler, **kw):
28
+ """Base function for regexp_match"""
29
+ column, pattern = element.clauses
30
+ fn = column.regexp_match(pattern)
31
+ return compiler.process(fn, **kw)
32
+
33
+
34
+ @compiles(RegexpMatchFn, Dialects.Databricks)
35
+ def _(element, compiler, **kw):
36
+ """Databricks function for regexp_match"""
37
+ column, pattern = element.clauses
38
+ compiled_column = compiler.process(column, **kw)
39
+ compiled_pattern = compiler.process(pattern, **kw)
40
+ return f"REGEXP_LIKE({compiled_column}, {compiled_pattern})"
@@ -16,7 +16,7 @@ Run profiler metrics on the table
16
16
 
17
17
  import traceback
18
18
  from abc import ABC, abstractmethod
19
- from typing import Callable, List, Optional, Tuple
19
+ from typing import Callable, List, Optional, Tuple, Type
20
20
 
21
21
  from sqlalchemy import Column, MetaData, Table, func, inspect, literal, select
22
22
  from sqlalchemy.sql.expression import ColumnOperators, and_, cte
@@ -27,13 +27,29 @@ from metadata.generated.schema.entity.data.table import TableType
27
27
  from metadata.profiler.metrics.registry import Metrics
28
28
  from metadata.profiler.orm.registry import Dialects
29
29
  from metadata.profiler.processor.runner import QueryRunner
30
+ from metadata.profiler.registry import MetricRegistry
31
+ from metadata.utils.dependency_injector.dependency_injector import (
32
+ DependencyNotFoundError,
33
+ Inject,
34
+ inject,
35
+ )
30
36
  from metadata.utils.logger import profiler_interface_registry_logger
31
37
 
32
38
  logger = profiler_interface_registry_logger()
33
39
 
40
+
41
+ @inject
42
+ def get_row_count_metric(metrics: Inject[Type[MetricRegistry]] = None):
43
+ if metrics is None:
44
+ raise DependencyNotFoundError(
45
+ "MetricRegistry dependency not found. Please ensure the MetricRegistry is properly registered."
46
+ )
47
+ return metrics.ROW_COUNT().name()
48
+
49
+
34
50
  COLUMN_COUNT = "columnCount"
35
51
  COLUMN_NAMES = "columnNames"
36
- ROW_COUNT = Metrics.ROW_COUNT().name()
52
+ ROW_COUNT = get_row_count_metric()
37
53
  SIZE_IN_BYTES = "sizeInBytes"
38
54
  CREATE_DATETIME = "createDateTime"
39
55
 
@@ -336,12 +352,16 @@ class BigQueryTableMetricComputer(BaseTableMetricComputer):
336
352
  Column("dataset_id") == self.schema_name,
337
353
  Column("table_id") == self.table_name,
338
354
  ]
355
+ schema = (
356
+ self.schema_name.startswith(
357
+ f"{self.conn_config.credentials.gcpConfig.projectId.root}."
358
+ )
359
+ and self.schema_name
360
+ or f"{self.conn_config.credentials.gcpConfig.projectId.root}.{self.schema_name}"
361
+ )
339
362
  query = self._build_query(
340
363
  columns,
341
- self._build_table(
342
- "__TABLES__",
343
- f"{self.conn_config.credentials.gcpConfig.projectId.root}.{self.schema_name}",
344
- ),
364
+ self._build_table("__TABLES__", schema),
345
365
  where_clause,
346
366
  )
347
367
  res = self.runner._session.execute(query).first()
@@ -358,9 +378,15 @@ class BigQueryTableMetricComputer(BaseTableMetricComputer):
358
378
  class MySQLTableMetricComputer(BaseTableMetricComputer):
359
379
  """MySQL Table Metric Computer"""
360
380
 
361
- def compute(self):
381
+ @inject
382
+ def compute(self, metrics: Inject[Type[MetricRegistry]] = None):
362
383
  """compute table metrics for mysql"""
363
384
 
385
+ if metrics is None:
386
+ raise DependencyNotFoundError(
387
+ "MetricRegistry dependency not found. Please ensure the MetricRegistry is properly registered."
388
+ )
389
+
364
390
  columns = [
365
391
  Column("TABLE_ROWS").label(ROW_COUNT),
366
392
  (Column("data_length") + Column("index_length")).label(SIZE_IN_BYTES),
@@ -386,7 +412,7 @@ class MySQLTableMetricComputer(BaseTableMetricComputer):
386
412
  res = res._asdict()
387
413
  # innodb row count is an estimate we need to patch the row count with COUNT(*)
388
414
  # https://dev.mysql.com/doc/refman/8.3/en/information-schema-innodb-tablestats-table.html
389
- row_count = self.runner.select_first_from_table(Metrics.ROW_COUNT().fn())
415
+ row_count = self.runner.select_first_from_table(metrics.ROW_COUNT().fn())
390
416
  res.update({ROW_COUNT: row_count.rowCount})
391
417
  return res
392
418
 
@@ -86,6 +86,7 @@ class PythonDialects(Enum):
86
86
  SingleStore = "singlestore"
87
87
  SQLite = "sqlite"
88
88
  Snowflake = "snowflake"
89
+ Teradata = "teradatasql"
89
90
  Trino = "trino"
90
91
  Vertica = "vertica"
91
92
 
@@ -16,7 +16,7 @@ from __future__ import annotations
16
16
 
17
17
  import traceback
18
18
  from datetime import datetime, timezone
19
- from typing import Any, Dict, Generic, List, Optional, Set, Tuple, Type
19
+ from typing import Any, Dict, Generic, List, Optional, Set, Tuple, Type, cast
20
20
 
21
21
  from pydantic import ValidationError
22
22
  from sqlalchemy import Column
@@ -94,7 +94,7 @@ class Profiler(Generic[TMetric]):
94
94
  :param profile_sample: % of rows to use for sampling column metrics
95
95
  """
96
96
  self.global_profiler_configuration: Optional[ProfilerConfiguration] = (
97
- global_profiler_configuration.config_value
97
+ cast(ProfilerConfiguration, global_profiler_configuration.config_value)
98
98
  if global_profiler_configuration
99
99
  else None
100
100
  )