openmetadata-ingestion 1.7.5.3__py3-none-any.whl → 1.8.1.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 (805) 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/cli/ingest_dbt.py +1 -1
  5. metadata/data_quality/processor/test_case_runner.py +2 -11
  6. metadata/data_quality/source/test_suite.py +3 -1
  7. metadata/data_quality/validations/models.py +2 -2
  8. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +3 -30
  9. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +5 -11
  10. metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +17 -2
  11. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +1 -4
  12. metadata/generated/schema/analytics/__init__.py +1 -1
  13. metadata/generated/schema/analytics/basic.py +1 -1
  14. metadata/generated/schema/analytics/reportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  16. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  17. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  18. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  19. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  20. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  21. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  22. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  23. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  24. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  25. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  26. metadata/generated/schema/api/__init__.py +1 -1
  27. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +3 -16
  28. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -10
  29. metadata/generated/schema/api/analytics/__init__.py +1 -1
  30. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  31. metadata/generated/schema/api/automations/__init__.py +1 -1
  32. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  33. metadata/generated/schema/api/bulkAssets.py +1 -1
  34. metadata/generated/schema/api/classification/__init__.py +1 -1
  35. metadata/generated/schema/api/classification/createClassification.py +6 -2
  36. metadata/generated/schema/api/classification/createTag.py +6 -2
  37. metadata/generated/schema/api/classification/loadTags.py +1 -1
  38. metadata/generated/schema/api/createBot.py +1 -1
  39. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  40. metadata/generated/schema/api/createType.py +1 -1
  41. metadata/generated/schema/api/data/__init__.py +1 -1
  42. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  43. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  44. metadata/generated/schema/api/data/createChart.py +1 -1
  45. metadata/generated/schema/api/data/createContainer.py +1 -1
  46. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  47. metadata/generated/schema/api/data/createDashboard.py +1 -1
  48. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  49. metadata/generated/schema/api/data/createDataContract.py +66 -0
  50. metadata/generated/schema/api/data/createDatabase.py +1 -1
  51. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  52. metadata/generated/schema/api/data/createGlossary.py +1 -1
  53. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  54. metadata/generated/schema/api/data/createMetric.py +1 -1
  55. metadata/generated/schema/api/data/createMlModel.py +1 -1
  56. metadata/generated/schema/api/data/createPipeline.py +1 -1
  57. metadata/generated/schema/api/data/createQuery.py +1 -1
  58. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  59. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  60. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  61. metadata/generated/schema/api/data/createTable.py +1 -1
  62. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  63. metadata/generated/schema/api/data/createTopic.py +1 -1
  64. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  65. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  66. metadata/generated/schema/api/data/updateColumn.py +49 -0
  67. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  68. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  69. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  70. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  71. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  72. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  73. metadata/generated/schema/api/docStore/__init__.py +1 -1
  74. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  75. metadata/generated/schema/api/domains/__init__.py +1 -1
  76. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  77. metadata/generated/schema/api/domains/createDomain.py +1 -1
  78. metadata/generated/schema/api/feed/__init__.py +1 -1
  79. metadata/generated/schema/api/feed/closeTask.py +1 -1
  80. metadata/generated/schema/api/feed/createPost.py +1 -1
  81. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  82. metadata/generated/schema/api/feed/createThread.py +1 -1
  83. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  84. metadata/generated/schema/api/feed/threadCount.py +1 -1
  85. metadata/generated/schema/api/governance/__init__.py +1 -1
  86. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  87. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  88. metadata/generated/schema/api/lineage/__init__.py +1 -1
  89. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  90. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  91. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  92. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  93. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  94. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  95. metadata/generated/schema/api/mcp/__init__.py +3 -0
  96. metadata/generated/schema/api/mcp/mcpToolDefinition.py +54 -0
  97. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  98. metadata/generated/schema/api/policies/__init__.py +1 -1
  99. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  100. metadata/generated/schema/api/scim/__init__.py +3 -0
  101. metadata/generated/schema/api/scim/scimGroup.py +52 -0
  102. metadata/generated/schema/api/scim/scimPatchOp.py +32 -0
  103. metadata/generated/schema/api/scim/scimUser.py +83 -0
  104. metadata/generated/schema/api/search/__init__.py +1 -1
  105. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  106. metadata/generated/schema/api/services/__init__.py +1 -1
  107. metadata/generated/schema/api/services/createApiService.py +1 -1
  108. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  109. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  110. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  111. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  112. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  113. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  114. metadata/generated/schema/api/services/createSearchService.py +1 -1
  115. metadata/generated/schema/api/services/createStorageService.py +1 -1
  116. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  117. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  118. metadata/generated/schema/api/setOwner.py +1 -1
  119. metadata/generated/schema/api/teams/__init__.py +1 -1
  120. metadata/generated/schema/api/teams/createPersona.py +1 -1
  121. metadata/generated/schema/api/teams/createRole.py +1 -1
  122. metadata/generated/schema/api/teams/createTeam.py +8 -1
  123. metadata/generated/schema/api/teams/createUser.py +11 -1
  124. metadata/generated/schema/api/tests/__init__.py +1 -1
  125. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  126. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  127. metadata/generated/schema/api/tests/createTestCase.py +9 -6
  128. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  129. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  130. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  131. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  132. metadata/generated/schema/api/validateGlossaryTagsRequest.py +31 -0
  133. metadata/generated/schema/api/voteRequest.py +1 -1
  134. metadata/generated/schema/auth/__init__.py +1 -1
  135. metadata/generated/schema/auth/basicAuth.py +1 -1
  136. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  137. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  138. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  139. metadata/generated/schema/auth/emailRequest.py +1 -1
  140. metadata/generated/schema/auth/emailVerificationToken.py +2 -1
  141. metadata/generated/schema/auth/generateToken.py +1 -1
  142. metadata/generated/schema/auth/jwtAuth.py +1 -1
  143. metadata/generated/schema/auth/loginRequest.py +1 -1
  144. metadata/generated/schema/auth/logoutRequest.py +1 -1
  145. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  146. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  147. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  148. metadata/generated/schema/auth/refreshToken.py +1 -1
  149. metadata/generated/schema/auth/registrationRequest.py +1 -1
  150. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  151. metadata/generated/schema/auth/revokeToken.py +1 -1
  152. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  153. metadata/generated/schema/auth/ssoAuth.py +1 -1
  154. metadata/generated/schema/auth/supportToken.py +35 -0
  155. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  156. metadata/generated/schema/configuration/__init__.py +1 -1
  157. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  159. metadata/generated/schema/configuration/authConfig.py +1 -1
  160. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  165. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  168. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  171. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  172. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  173. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  174. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  175. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  176. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  178. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  182. metadata/generated/schema/configuration/opsConfig.py +1 -1
  183. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  184. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  185. metadata/generated/schema/configuration/searchSettings.py +1 -1
  186. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  187. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  189. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  191. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  192. metadata/generated/schema/dataInsight/__init__.py +1 -1
  193. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  194. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  195. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  196. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  197. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  198. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  199. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  200. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  201. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  202. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  203. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  204. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  205. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  206. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  207. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  208. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  209. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  210. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  211. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  212. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  213. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  214. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  215. metadata/generated/schema/email/__init__.py +1 -1
  216. metadata/generated/schema/email/emailRequest.py +1 -1
  217. metadata/generated/schema/email/emailTemplate.py +1 -1
  218. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  219. metadata/generated/schema/email/smtpSettings.py +1 -1
  220. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  221. metadata/generated/schema/entity/__init__.py +1 -1
  222. metadata/generated/schema/entity/applications/__init__.py +1 -1
  223. metadata/generated/schema/entity/applications/app.py +3 -2
  224. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  225. metadata/generated/schema/entity/applications/appRunRecord.py +2 -1
  226. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  232. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  234. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +5 -2
  237. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +9 -1
  258. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +9 -1
  260. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  266. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  267. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  268. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  269. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  270. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  271. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  272. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  273. metadata/generated/schema/entity/automations/__init__.py +1 -1
  274. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  275. metadata/generated/schema/entity/automations/workflow.py +1 -1
  276. metadata/generated/schema/entity/bot.py +1 -1
  277. metadata/generated/schema/entity/classification/__init__.py +1 -1
  278. metadata/generated/schema/entity/classification/classification.py +7 -4
  279. metadata/generated/schema/entity/classification/tag.py +6 -3
  280. metadata/generated/schema/entity/data/__init__.py +1 -1
  281. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  282. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  283. metadata/generated/schema/entity/data/chart.py +1 -1
  284. metadata/generated/schema/entity/data/container.py +1 -1
  285. metadata/generated/schema/entity/data/dashboard.py +1 -1
  286. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  287. metadata/generated/schema/entity/data/dataContract.py +180 -0
  288. metadata/generated/schema/entity/data/database.py +1 -1
  289. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  290. metadata/generated/schema/entity/data/glossary.py +1 -1
  291. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  292. metadata/generated/schema/entity/data/metric.py +1 -1
  293. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  294. metadata/generated/schema/entity/data/pipeline.py +1 -1
  295. metadata/generated/schema/entity/data/query.py +1 -1
  296. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  297. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  298. metadata/generated/schema/entity/data/report.py +1 -1
  299. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  300. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  301. metadata/generated/schema/entity/data/table.py +10 -1
  302. metadata/generated/schema/entity/data/topic.py +1 -1
  303. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  304. metadata/generated/schema/entity/docStore/document.py +1 -1
  305. metadata/generated/schema/entity/domains/__init__.py +1 -1
  306. metadata/generated/schema/entity/domains/dataProduct.py +5 -1
  307. metadata/generated/schema/entity/domains/domain.py +5 -1
  308. metadata/generated/schema/entity/events/__init__.py +1 -1
  309. metadata/generated/schema/entity/events/webhook.py +7 -1
  310. metadata/generated/schema/entity/feed/__init__.py +1 -1
  311. metadata/generated/schema/entity/feed/assets.py +1 -1
  312. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  313. metadata/generated/schema/entity/feed/description.py +1 -1
  314. metadata/generated/schema/entity/feed/domain.py +1 -1
  315. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  316. metadata/generated/schema/entity/feed/owner.py +1 -1
  317. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  318. metadata/generated/schema/entity/feed/tag.py +1 -1
  319. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  320. metadata/generated/schema/entity/feed/thread.py +1 -1
  321. metadata/generated/schema/entity/policies/__init__.py +1 -1
  322. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  323. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +6 -1
  324. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  325. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  326. metadata/generated/schema/entity/policies/filters.py +1 -1
  327. metadata/generated/schema/entity/policies/policy.py +1 -1
  328. metadata/generated/schema/entity/services/__init__.py +1 -1
  329. metadata/generated/schema/entity/services/apiService.py +1 -1
  330. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  331. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  334. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  335. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  336. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  337. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  349. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  350. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  351. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  352. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  353. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +5 -1
  364. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  431. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +9 -1
  436. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  437. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  438. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  445. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +9 -1
  457. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  465. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  466. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  468. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  469. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  470. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  478. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  480. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  481. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  482. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  486. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  491. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  492. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  493. metadata/generated/schema/entity/services/databaseService.py +1 -1
  494. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  495. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  496. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  497. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  498. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  499. metadata/generated/schema/entity/services/messagingService.py +1 -1
  500. metadata/generated/schema/entity/services/metadataService.py +1 -1
  501. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  502. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  503. metadata/generated/schema/entity/services/searchService.py +1 -1
  504. metadata/generated/schema/entity/services/serviceType.py +1 -1
  505. metadata/generated/schema/entity/services/storageService.py +1 -1
  506. metadata/generated/schema/entity/teams/__init__.py +1 -1
  507. metadata/generated/schema/entity/teams/persona.py +1 -1
  508. metadata/generated/schema/entity/teams/role.py +1 -1
  509. metadata/generated/schema/entity/teams/team.py +8 -1
  510. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  511. metadata/generated/schema/entity/teams/user.py +11 -1
  512. metadata/generated/schema/entity/type.py +1 -1
  513. metadata/generated/schema/entity/utils/__init__.py +1 -1
  514. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  515. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  516. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  517. metadata/generated/schema/events/__init__.py +1 -1
  518. metadata/generated/schema/events/alertMetrics.py +1 -1
  519. metadata/generated/schema/events/api/__init__.py +1 -1
  520. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  521. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  522. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  523. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  524. metadata/generated/schema/events/api/typedEvent.py +1 -1
  525. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  526. metadata/generated/schema/events/eventFilterRule.py +1 -1
  527. metadata/generated/schema/events/eventSubscription.py +1 -1
  528. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  529. metadata/generated/schema/events/failedEvent.py +1 -1
  530. metadata/generated/schema/events/failedEventResponse.py +1 -1
  531. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  532. metadata/generated/schema/events/statusContext.py +1 -1
  533. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  534. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  535. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  536. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  537. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  538. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  539. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  540. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  541. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  542. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  543. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  544. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  545. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  546. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  547. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  548. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  549. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  550. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  551. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  552. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  553. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  554. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  555. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  556. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  557. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  558. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  559. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  560. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  561. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  562. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  563. metadata/generated/schema/jobs/__init__.py +1 -1
  564. metadata/generated/schema/jobs/backgroundJob.py +12 -3
  565. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  566. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  567. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/application.py +1 -1
  569. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  571. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  572. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  573. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  574. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  575. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  576. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  577. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  578. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  579. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  580. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  581. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  582. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  583. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  584. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  585. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  586. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  587. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  588. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  589. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  590. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  591. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  592. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  593. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  594. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  595. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  596. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  597. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  598. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  599. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  600. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  601. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  602. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  603. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  604. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  605. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  606. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  607. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  608. metadata/generated/schema/monitoring/__init__.py +1 -1
  609. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  610. metadata/generated/schema/scim/__init__.py +3 -0
  611. metadata/generated/schema/scim/scimConfiguration.py +32 -0
  612. metadata/generated/schema/search/__init__.py +1 -1
  613. metadata/generated/schema/search/aggregationRequest.py +1 -1
  614. metadata/generated/schema/search/searchRequest.py +8 -1
  615. metadata/generated/schema/security/__init__.py +1 -1
  616. metadata/generated/schema/security/client/__init__.py +1 -1
  617. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  618. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  619. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  620. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  621. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  622. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  623. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  624. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  625. metadata/generated/schema/security/credentials/__init__.py +1 -1
  626. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  627. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  628. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  629. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  630. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  631. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  632. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  633. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  634. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  635. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  636. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  637. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  638. metadata/generated/schema/security/sasl/__init__.py +1 -1
  639. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  640. metadata/generated/schema/security/secrets/__init__.py +1 -1
  641. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  642. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  643. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  644. metadata/generated/schema/security/securityConfiguration.py +1 -1
  645. metadata/generated/schema/security/ssl/__init__.py +1 -1
  646. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  647. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  648. metadata/generated/schema/settings/__init__.py +1 -1
  649. metadata/generated/schema/settings/settings.py +2 -1
  650. metadata/generated/schema/system/__init__.py +1 -1
  651. metadata/generated/schema/system/entityError.py +1 -1
  652. metadata/generated/schema/system/eventPublisherJob.py +8 -1
  653. metadata/generated/schema/system/indexingError.py +1 -1
  654. metadata/generated/schema/system/limitsResponse.py +1 -1
  655. metadata/generated/schema/system/ui/__init__.py +1 -1
  656. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  657. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  658. metadata/generated/schema/system/ui/page.py +1 -1
  659. metadata/generated/schema/system/ui/tab.py +1 -1
  660. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  661. metadata/generated/schema/system/validationResponse.py +1 -1
  662. metadata/generated/schema/tests/__init__.py +1 -1
  663. metadata/generated/schema/tests/assigned.py +1 -1
  664. metadata/generated/schema/tests/basic.py +1 -1
  665. metadata/generated/schema/tests/customMetric.py +1 -1
  666. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  667. metadata/generated/schema/tests/resolved.py +1 -1
  668. metadata/generated/schema/tests/testCase.py +1 -1
  669. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  670. metadata/generated/schema/tests/testDefinition.py +1 -1
  671. metadata/generated/schema/tests/testSuite.py +1 -1
  672. metadata/generated/schema/type/__init__.py +1 -1
  673. metadata/generated/schema/type/apiSchema.py +1 -1
  674. metadata/generated/schema/type/assetCertification.py +1 -1
  675. metadata/generated/schema/type/auditLog.py +1 -1
  676. metadata/generated/schema/type/basic.py +1 -1
  677. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  678. metadata/generated/schema/type/changeEvent.py +1 -1
  679. metadata/generated/schema/type/changeEventType.py +1 -1
  680. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  681. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  682. metadata/generated/schema/type/csvDocumentation.py +1 -1
  683. metadata/generated/schema/type/csvErrorType.py +1 -1
  684. metadata/generated/schema/type/csvFile.py +1 -1
  685. metadata/generated/schema/type/csvImportResult.py +1 -1
  686. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  687. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  688. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  689. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  690. metadata/generated/schema/type/customProperty.py +1 -1
  691. metadata/generated/schema/type/dailyCount.py +1 -1
  692. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  693. metadata/generated/schema/type/entityHierarchy.py +1 -1
  694. metadata/generated/schema/type/entityHistory.py +1 -1
  695. metadata/generated/schema/type/entityLineage.py +1 -1
  696. metadata/generated/schema/type/entityReference.py +1 -1
  697. metadata/generated/schema/type/entityReferenceList.py +1 -1
  698. metadata/generated/schema/type/entityRelationship.py +1 -1
  699. metadata/generated/schema/type/entityUsage.py +1 -1
  700. metadata/generated/schema/type/filterPattern.py +1 -1
  701. metadata/generated/schema/type/function.py +1 -1
  702. metadata/generated/schema/type/include.py +1 -1
  703. metadata/generated/schema/type/jdbcConnection.py +1 -1
  704. metadata/generated/schema/type/lifeCycle.py +1 -1
  705. metadata/generated/schema/type/paging.py +1 -1
  706. metadata/generated/schema/type/profile.py +1 -1
  707. metadata/generated/schema/type/queryParserData.py +1 -1
  708. metadata/generated/schema/type/reaction.py +1 -1
  709. metadata/generated/schema/type/schedule.py +1 -1
  710. metadata/generated/schema/type/schema.py +1 -1
  711. metadata/generated/schema/type/tableQuery.py +1 -1
  712. metadata/generated/schema/type/tableUsageCount.py +1 -1
  713. metadata/generated/schema/type/tagLabel.py +1 -1
  714. metadata/generated/schema/type/usageDetails.py +1 -1
  715. metadata/generated/schema/type/usageRequest.py +1 -1
  716. metadata/generated/schema/type/votes.py +1 -1
  717. metadata/great_expectations/action.py +4 -8
  718. metadata/great_expectations/action1xx.py +395 -0
  719. metadata/ingestion/connections/builders.py +14 -4
  720. metadata/ingestion/connections/connection.py +63 -0
  721. metadata/ingestion/connections/query_logger.py +115 -0
  722. metadata/ingestion/connections/test_connections.py +1 -1
  723. metadata/ingestion/ometa/mixins/tests_mixin.py +3 -5
  724. metadata/ingestion/ometa/routes.py +2 -0
  725. metadata/ingestion/sink/metadata_rest.py +54 -11
  726. metadata/ingestion/source/api/api_service.py +2 -7
  727. metadata/ingestion/source/api/rest/metadata.py +0 -1
  728. metadata/ingestion/source/connections.py +80 -14
  729. metadata/ingestion/source/connections_utils.py +32 -0
  730. metadata/ingestion/source/dashboard/dashboard_service.py +2 -7
  731. metadata/ingestion/source/dashboard/qlikcloud/client.py +34 -2
  732. metadata/ingestion/source/dashboard/qlikcloud/constants.py +6 -0
  733. metadata/ingestion/source/dashboard/qlikcloud/models.py +8 -0
  734. metadata/ingestion/source/dashboard/superset/connection.py +8 -8
  735. metadata/ingestion/source/dashboard/superset/queries.py +1 -1
  736. metadata/ingestion/source/dashboard/tableau/client.py +4 -4
  737. metadata/ingestion/source/dashboard/tableau/metadata.py +0 -1
  738. metadata/ingestion/source/database/bigquery/connection.py +13 -9
  739. metadata/ingestion/source/database/bigquery/helper.py +11 -9
  740. metadata/ingestion/source/database/bigquery/metadata.py +102 -13
  741. metadata/ingestion/source/database/bigquery/profiler/system.py +1 -1
  742. metadata/ingestion/source/database/bigquery/queries.py +15 -3
  743. metadata/ingestion/source/database/common_db_source.py +2 -4
  744. metadata/ingestion/source/database/database_service.py +2 -7
  745. metadata/ingestion/source/database/databricks/client.py +149 -14
  746. metadata/ingestion/source/database/databricks/queries.py +26 -0
  747. metadata/ingestion/source/database/datalake/metadata.py +1 -1
  748. metadata/ingestion/source/database/dbt/metadata.py +0 -5
  749. metadata/ingestion/source/database/mysql/connection.py +52 -45
  750. metadata/ingestion/source/database/mysql/service_spec.py +2 -0
  751. metadata/ingestion/source/database/postgres/metadata.py +16 -4
  752. metadata/ingestion/source/database/postgres/models.py +1 -0
  753. metadata/ingestion/source/database/postgres/queries.py +7 -4
  754. metadata/ingestion/source/database/query_parser_source.py +2 -7
  755. metadata/ingestion/source/database/redshift/connection.py +1 -1
  756. metadata/ingestion/source/database/sample_data.py +1 -1
  757. metadata/ingestion/source/database/saphana/lineage.py +2 -7
  758. metadata/ingestion/source/database/sas/metadata.py +2 -7
  759. metadata/ingestion/source/database/trino/connection.py +10 -79
  760. metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +26 -17
  761. metadata/ingestion/source/database/unitycatalog/connection.py +33 -0
  762. metadata/ingestion/source/database/unitycatalog/lineage.py +2 -7
  763. metadata/ingestion/source/database/unitycatalog/metadata.py +126 -13
  764. metadata/ingestion/source/database/unitycatalog/queries.py +19 -0
  765. metadata/ingestion/source/messaging/messaging_service.py +2 -7
  766. metadata/ingestion/source/metadata/alationsink/metadata.py +2 -7
  767. metadata/ingestion/source/metadata/amundsen/metadata.py +2 -7
  768. metadata/ingestion/source/metadata/atlas/metadata.py +2 -7
  769. metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -7
  770. metadata/ingestion/source/pipeline/airflow/connection.py +4 -6
  771. metadata/ingestion/source/pipeline/databrickspipeline/connection.py +26 -2
  772. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +175 -13
  773. metadata/ingestion/source/pipeline/nifi/metadata.py +133 -3
  774. metadata/ingestion/source/pipeline/pipeline_service.py +20 -7
  775. metadata/ingestion/source/search/search_service.py +2 -7
  776. metadata/ingestion/source/storage/storage_service.py +2 -7
  777. metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +3 -3
  778. metadata/profiler/interface/sqlalchemy/profiler_interface.py +1 -0
  779. metadata/profiler/metrics/static/not_regexp_match_count.py +4 -3
  780. metadata/profiler/metrics/static/regexp_match_count.py +3 -2
  781. metadata/profiler/orm/functions/length.py +1 -0
  782. metadata/profiler/orm/functions/md5.py +9 -0
  783. metadata/profiler/orm/functions/modulo.py +1 -0
  784. metadata/profiler/orm/functions/random_num.py +4 -0
  785. metadata/profiler/orm/functions/regexp.py +40 -0
  786. metadata/profiler/orm/functions/table_metric_computer.py +34 -8
  787. metadata/profiler/orm/registry.py +1 -0
  788. metadata/profiler/processor/core.py +2 -2
  789. metadata/profiler/processor/default.py +29 -28
  790. metadata/profiler/processor/metric_filter.py +16 -3
  791. metadata/profiler/processor/models.py +14 -4
  792. metadata/profiler/source/database/base/profiler_resolver.py +35 -0
  793. metadata/profiler/source/database/base/profiler_source.py +45 -30
  794. metadata/profiler/source/profiler_source_interface.py +8 -13
  795. metadata/sampler/sampler_interface.py +15 -10
  796. metadata/sampler/sqlalchemy/bigquery/sampler.py +7 -0
  797. metadata/utils/dependency_injector/dependency_injector.py +403 -0
  798. metadata/utils/service_spec/service_spec.py +66 -10
  799. metadata/workflow/profiler.py +2 -7
  800. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/METADATA +523 -516
  801. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/RECORD +805 -782
  802. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/LICENSE +0 -0
  803. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/WHEEL +0 -0
  804. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/entry_points.txt +0 -0
  805. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,115 @@
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
+ # pylint: disable=W0613
12
+
13
+ """
14
+ Query tracking implementation using SQLAlchemy event listeners
15
+ """
16
+ from datetime import datetime, timezone
17
+ from typing import Any, Dict, Optional, Tuple, Union
18
+
19
+ from pydantic import BaseModel, ConfigDict
20
+ from sqlalchemy.event import listen
21
+ from sqlalchemy.sql.elements import TextClause
22
+
23
+ from metadata.utils.logger import ingestion_logger
24
+
25
+ logger = ingestion_logger()
26
+
27
+
28
+ class QueryInfo(BaseModel):
29
+ """Class to store information about a query execution"""
30
+
31
+ model_config = ConfigDict(arbitrary_types_allowed=True)
32
+
33
+ statement: Union[str, TextClause]
34
+ parameters: Optional[Union[Dict[str, Any], Tuple[Any, ...]]]
35
+ start_time: datetime
36
+ end_time: Optional[datetime] = None
37
+ duration_ms: Optional[float] = None
38
+ error: Optional[Exception] = None
39
+
40
+
41
+ class QueryLogger:
42
+ """Class to track SQL query execution using SQLAlchemy event listeners"""
43
+
44
+ def __init__(self):
45
+ self._current_query: Optional[QueryInfo] = None
46
+
47
+ def before_cursor_execute(
48
+ self,
49
+ conn: Any,
50
+ cursor: Any,
51
+ statement: Union[str, TextClause],
52
+ parameters: Optional[Dict[str, Any]],
53
+ context: Any,
54
+ executemany: bool,
55
+ ) -> Tuple[Union[str, TextClause], Optional[Dict[str, Any]]]:
56
+ """Event listener for before cursor execute"""
57
+ self._current_query = QueryInfo(
58
+ statement=statement,
59
+ parameters=parameters,
60
+ start_time=datetime.now(timezone.utc),
61
+ )
62
+ return statement, parameters
63
+
64
+ def after_cursor_execute(
65
+ self,
66
+ conn: Any,
67
+ cursor: Any,
68
+ statement: Union[str, TextClause],
69
+ parameters: Optional[Dict[str, Any]],
70
+ context: Any,
71
+ executemany: bool,
72
+ ) -> None:
73
+ """Event listener for after cursor execute"""
74
+ if self._current_query:
75
+ query = self._current_query
76
+ query.end_time = datetime.now(timezone.utc)
77
+ query.duration_ms = (
78
+ query.end_time - query.start_time
79
+ ).total_seconds() * 1000
80
+
81
+ logger.debug(
82
+ "Query execution details:\n"
83
+ f" Start Time: {query.start_time}\n"
84
+ f" End Time: {query.end_time}\n"
85
+ f" Duration: {query.duration_ms:.2f} ms\n"
86
+ f" Query: {query.statement}\n"
87
+ f" Parameters: {query.parameters}"
88
+ )
89
+
90
+ self._current_query = None
91
+
92
+
93
+ def attach_query_tracker(engine: Any):
94
+ """
95
+ Attach query tracking event listeners to a SQLAlchemy engine
96
+
97
+ Args:
98
+ engine: SQLAlchemy engine to attach listeners to
99
+
100
+ Returns:
101
+ QueryLogger instance that can be used to access query execution data
102
+ """
103
+ tracker = QueryLogger()
104
+
105
+ listen(
106
+ engine,
107
+ "before_cursor_execute",
108
+ tracker.before_cursor_execute,
109
+ retval=True,
110
+ )
111
+ listen(
112
+ engine,
113
+ "after_cursor_execute",
114
+ tracker.after_cursor_execute,
115
+ )
@@ -38,7 +38,7 @@ from metadata.generated.schema.entity.services.connections.testConnectionResult
38
38
  )
39
39
  from metadata.generated.schema.type.basic import Timestamp
40
40
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
41
- from metadata.ingestion.source.connections import kill_active_connections
41
+ from metadata.ingestion.source.connections_utils import kill_active_connections
42
42
  from metadata.profiler.orm.functions.conn_test import ConnTestFn
43
43
  from metadata.utils.constants import THREE_MIN
44
44
  from metadata.utils.logger import cli_logger
@@ -74,8 +74,8 @@ class OMetaTestsMixin:
74
74
  Returns:
75
75
  _type_: _description_
76
76
  """
77
- resp = self.client.put(
78
- f"{self.get_suffix(TestCase)}/{quote(test_case_fqn)}/testCaseResult",
77
+ resp = self.client.post(
78
+ f"{self.get_suffix(TestCaseResult)}/{quote(test_case_fqn)}",
79
79
  test_results.model_dump_json(),
80
80
  )
81
81
 
@@ -167,7 +167,6 @@ class OMetaTestsMixin:
167
167
  self,
168
168
  test_case_fqn: str,
169
169
  entity_link: Optional[str] = None,
170
- test_suite_fqn: Optional[str] = None,
171
170
  test_definition_fqn: Optional[str] = None,
172
171
  test_case_parameter_values: Optional[List[TestCaseParameterValue]] = None,
173
172
  ):
@@ -196,7 +195,6 @@ class OMetaTestsMixin:
196
195
  CreateTestCaseRequest(
197
196
  name=test_case_fqn.split(".")[-1],
198
197
  entityLink=entity_link,
199
- testSuite=test_suite_fqn,
200
198
  testDefinition=test_definition_fqn,
201
199
  parameterValues=test_case_parameter_values,
202
200
  ) # type: ignore
@@ -253,7 +251,7 @@ class OMetaTestsMixin:
253
251
  }
254
252
 
255
253
  resp = self.client.get(
256
- f"/dataQuality/testCases/{test_case_fqn}/testCaseResult",
254
+ f"{self.get_suffix(TestCaseResult)}/{test_case_fqn}",
257
255
  params,
258
256
  )
259
257
 
@@ -167,6 +167,7 @@ from metadata.generated.schema.entity.teams.role import Role
167
167
  from metadata.generated.schema.entity.teams.team import Team
168
168
  from metadata.generated.schema.entity.teams.user import AuthenticationMechanism, User
169
169
  from metadata.generated.schema.settings.settings import Settings
170
+ from metadata.generated.schema.tests.basic import TestCaseResult
170
171
  from metadata.generated.schema.tests.testCase import TestCase
171
172
  from metadata.generated.schema.tests.testDefinition import TestDefinition
172
173
  from metadata.generated.schema.tests.testSuite import TestSuite
@@ -264,6 +265,7 @@ ROUTES = {
264
265
  TestSuite.__name__: "/dataQuality/testSuites",
265
266
  CreateTestSuiteRequest.__name__: "/dataQuality/testSuites",
266
267
  TestCase.__name__: "/dataQuality/testCases",
268
+ TestCaseResult.__name__: "/dataQuality/testCases/testCaseResults",
267
269
  CreateTestCaseRequest.__name__: "/dataQuality/testCases",
268
270
  # Analytics
269
271
  WebAnalyticEventData.__name__: "/analytics/web/events/collect",
@@ -79,7 +79,7 @@ from metadata.ingestion.models.tests_data import (
79
79
  OMetaTestSuiteSample,
80
80
  )
81
81
  from metadata.ingestion.models.user import OMetaUserProfile
82
- from metadata.ingestion.ometa.client import APIError
82
+ from metadata.ingestion.ometa.client import APIError, LimitsException
83
83
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
84
84
  from metadata.ingestion.source.dashboard.dashboard_service import DashboardUsage
85
85
  from metadata.ingestion.source.database.database_service import DataModelLink
@@ -118,6 +118,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
118
118
  self.metadata = metadata
119
119
  self.role_entities = {}
120
120
  self.team_entities = {}
121
+ self.limit_reached = set()
121
122
 
122
123
  @classmethod
123
124
  def create(
@@ -166,16 +167,30 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
166
167
  Send to OM the request creation received as is.
167
168
  :param entity_request: Create Entity request
168
169
  """
169
- created = self.metadata.create_or_update(entity_request)
170
- if created:
171
- return Either(right=created)
170
+ if type(entity_request).__name__ in self.limit_reached:
171
+ # If the limit has been reached, we don't need to try to ingest the entity
172
+ # Note: We use PatchRequest to update the entity, so updating is not affected by the limit
173
+ return None
174
+ try:
175
+ created = self.metadata.create_or_update(entity_request)
176
+ if created:
177
+ return Either(right=created)
172
178
 
173
- error = f"Failed to ingest {type(entity_request).__name__}"
174
- return Either(
175
- left=StackTraceError(
176
- name=type(entity_request).__name__, error=error, stackTrace=None
179
+ error = f"Failed to ingest {type(entity_request).__name__}"
180
+ return Either(
181
+ left=StackTraceError(
182
+ name=type(entity_request).__name__, error=error, stackTrace=None
183
+ )
184
+ )
185
+ except LimitsException as _:
186
+ self.limit_reached.add(type(entity_request).__name__)
187
+ return Either(
188
+ left=StackTraceError(
189
+ name=type(entity_request).__name__,
190
+ error=f"Limit reached for {type(entity_request).__name__}",
191
+ stackTrace=None,
192
+ )
177
193
  )
178
- )
179
194
 
180
195
  @_run_dispatch.register
181
196
  def patch_entity(self, record: PatchRequest) -> Either[Entity]:
@@ -329,12 +344,26 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
329
344
  team = self.metadata.create_or_update(create_team)
330
345
  self.team_entities[team.name.root] = str(team.id.root)
331
346
  return team
347
+ except LimitsException as _:
348
+ if type(create_team).__name__ in self.limit_reached:
349
+ # Note: We do not have a way to patch the team,
350
+ # so we try to put and handle exception
351
+ return None
352
+ self.limit_reached.add(type(create_team).__name__)
353
+ return Either(
354
+ left=StackTraceError(
355
+ name=type(create_team).__name__,
356
+ error=f"Limit reached for {type(create_team).__name__}",
357
+ stackTrace=None,
358
+ )
359
+ )
332
360
  except Exception as exc:
333
361
  logger.debug(traceback.format_exc())
334
362
  logger.error(f"Unexpected error creating team [{create_team}]: {exc}")
335
363
 
336
364
  return None
337
365
 
366
+ # pylint: disable=too-many-branches
338
367
  @_run_dispatch.register
339
368
  def write_users(self, record: OMetaUserProfile) -> Either[User]:
340
369
  """
@@ -388,8 +417,22 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
388
417
  metadata_user = CreateUserRequest(**user_profile)
389
418
 
390
419
  # Create user
391
- user = self.metadata.create_or_update(metadata_user)
392
- return Either(right=user)
420
+ try:
421
+ user = self.metadata.create_or_update(metadata_user)
422
+ return Either(right=user)
423
+ except LimitsException as _:
424
+ if type(metadata_user).__name__ in self.limit_reached:
425
+ # Note: We do not have a way to patch the user,
426
+ # so we try to put and handle exception
427
+ return None
428
+ self.limit_reached.add(type(metadata_user).__name__)
429
+ return Either(
430
+ left=StackTraceError(
431
+ name=type(metadata_user).__name__,
432
+ error=f"Limit reached for {type(metadata_user).__name__}",
433
+ stackTrace=None,
434
+ )
435
+ )
393
436
 
394
437
  @_run_dispatch.register
395
438
  def delete_entity(self, record: DeleteEntity) -> Either[Entity]:
@@ -39,9 +39,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
39
39
  from metadata.ingestion.api.models import Either
40
40
  from metadata.ingestion.api.steps import Source
41
41
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
42
- from metadata.ingestion.connections.test_connections import (
43
- raise_test_connection_exception,
44
- )
45
42
  from metadata.ingestion.models.delete_entity import DeleteEntity
46
43
  from metadata.ingestion.models.topology import (
47
44
  NodeStage,
@@ -50,7 +47,7 @@ from metadata.ingestion.models.topology import (
50
47
  TopologyNode,
51
48
  )
52
49
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
53
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
50
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
54
51
  from metadata.utils import fqn
55
52
  from metadata.utils.logger import ingestion_logger
56
53
 
@@ -177,11 +174,9 @@ class ApiServiceSource(TopologyRunnerMixin, Source, ABC):
177
174
  """By default, nothing to close"""
178
175
 
179
176
  def test_connection(self) -> None:
180
- test_connection_fn = get_test_connection_fn(self.service_connection)
181
- result = test_connection_fn(
177
+ test_connection_common(
182
178
  self.metadata, self.connection_obj, self.service_connection
183
179
  )
184
- raise_test_connection_exception(result)
185
180
 
186
181
  def mark_api_collections_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
187
182
  """Method to mark the api collection as deleted"""
@@ -362,7 +362,6 @@ class RestSource(ApiServiceSource):
362
362
  FieldModel(
363
363
  name=key,
364
364
  dataType=DataTypeTopic.UNKNOWN,
365
- dataTypeDisplay="OBJECT",
366
365
  children=children,
367
366
  )
368
367
  )
@@ -14,11 +14,16 @@ Main entrypoints to create and test connections
14
14
  for any source.
15
15
  """
16
16
  import traceback
17
- from typing import Any, Callable
17
+ from typing import Any, Callable, Optional, Type
18
18
 
19
19
  from pydantic import BaseModel
20
- from sqlalchemy.engine import Engine
21
20
 
21
+ from metadata.ingestion.connections.connection import BaseConnection
22
+ from metadata.ingestion.connections.test_connections import (
23
+ raise_test_connection_exception,
24
+ )
25
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
26
+ from metadata.utils.class_helper import get_service_type_from_source_type
22
27
  from metadata.utils.importer import import_connection_fn
23
28
  from metadata.utils.logger import cli_logger
24
29
 
@@ -28,10 +33,71 @@ GET_CONNECTION_FN_NAME = "get_connection"
28
33
  TEST_CONNECTION_FN_NAME = "test_connection"
29
34
 
30
35
 
36
+ # TODO: This is a temporary solution to get the connection class from the service spec.
37
+ # Once we migrate all connectors we shouldn't need this.
38
+ def _get_connection_class_from_spec(
39
+ connection: BaseModel,
40
+ ) -> Optional[Type[BaseConnection]]:
41
+ """
42
+ Helper method to get the connection class from the connection spec.
43
+ Returns the connection class if successful, None otherwise.
44
+ """
45
+ from metadata.utils.service_spec.service_spec import ( # pylint: disable=import-outside-toplevel
46
+ BaseSpec,
47
+ import_connection_class,
48
+ )
49
+
50
+ connection_type = getattr(connection, "type", None)
51
+ if connection_type:
52
+ service_type = get_service_type_from_source_type(connection_type.value)
53
+ try:
54
+ spec = BaseSpec.get_for_source(service_type, connection_type.value.lower())
55
+ if getattr(spec, "connection_class", None):
56
+ connection_class = import_connection_class(
57
+ service_type, connection_type.value.lower()
58
+ )
59
+ return connection_class
60
+ except Exception:
61
+ logger.error(
62
+ f"Error importing connection class for {connection_type.value}"
63
+ )
64
+ logger.debug(traceback.format_exc())
65
+ return None
66
+
67
+
68
+ def _get_connection_fn_from_service_spec(connection: BaseModel) -> Optional[Callable]:
69
+ """
70
+ Import the get_connection function from the source, or use ServiceSpec connection_class if defined.
71
+ """
72
+ connection_class = _get_connection_class_from_spec(connection)
73
+ if connection_class:
74
+
75
+ def _get_client(conn):
76
+ return connection_class(conn).get_client()
77
+
78
+ return _get_client
79
+ return None
80
+
81
+
82
+ def _get_test_fn_from_service_spec(connection: BaseModel) -> Optional[Callable]:
83
+ """
84
+ Import the get_connection function from the source, or use ServiceSpec connection_class if defined.
85
+ """
86
+ connection_class = _get_connection_class_from_spec(connection)
87
+ if connection_class:
88
+ return connection_class(connection).test_connection
89
+ return None
90
+
91
+
31
92
  def get_connection_fn(connection: BaseModel) -> Callable:
32
93
  """
33
- Import the get_connection function from the source
94
+ Import the get_connection function from the source, or use ServiceSpec connection_class if defined.
34
95
  """
96
+ # Try ServiceSpec path first
97
+ connection_fn = _get_connection_fn_from_service_spec(connection)
98
+ if connection_fn:
99
+ return connection_fn
100
+ # Fallback to default
35
101
  return import_connection_fn(
36
102
  connection=connection, function_name=GET_CONNECTION_FN_NAME
37
103
  )
@@ -41,6 +107,10 @@ def get_test_connection_fn(connection: BaseModel) -> Callable:
41
107
  """
42
108
  Import the test_connection function from the source
43
109
  """
110
+ test_fn = _get_test_fn_from_service_spec(connection)
111
+ if test_fn:
112
+ return test_fn
113
+ # Fallback to default
44
114
  return import_connection_fn(
45
115
  connection=connection, function_name=TEST_CONNECTION_FN_NAME
46
116
  )
@@ -54,15 +124,11 @@ def get_connection(connection: BaseModel) -> Any:
54
124
  return get_connection_fn(connection)(connection)
55
125
 
56
126
 
57
- def kill_active_connections(engine: Engine):
58
- """
59
- Method to kill the active connections
60
- as well as idle connections in the engine
61
- """
127
+ def test_connection_common(metadata: OpenMetadata, connection_obj, service_connection):
128
+ test_connection_fn = get_test_connection_fn(service_connection)
129
+ # TODO: Remove this once we migrate all connectors to use the new test connection function
62
130
  try:
63
- active_conn = engine.pool.checkedout() + engine.pool.checkedin()
64
- if active_conn:
65
- engine.dispose()
66
- except Exception as exc:
67
- logger.warning(f"Error Killing the active connections {exc}")
68
- logger.debug(traceback.format_exc())
131
+ result = test_connection_fn(metadata)
132
+ except TypeError:
133
+ result = test_connection_fn(metadata, connection_obj, service_connection)
134
+ raise_test_connection_exception(result)
@@ -0,0 +1,32 @@
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
+ import traceback
13
+
14
+ from sqlalchemy.engine import Engine
15
+
16
+ from metadata.utils.logger import cli_logger
17
+
18
+ logger = cli_logger()
19
+
20
+
21
+ def kill_active_connections(engine: Engine):
22
+ """
23
+ Method to kill the active connections
24
+ as well as idle connections in the engine
25
+ """
26
+ try:
27
+ active_conn = engine.pool.checkedout() + engine.pool.checkedin()
28
+ if active_conn:
29
+ engine.dispose()
30
+ except Exception as exc:
31
+ logger.warning(f"Error Killing the active connections {exc}")
32
+ logger.debug(traceback.format_exc())
@@ -55,9 +55,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
55
55
  from metadata.ingestion.api.models import Either, Entity
56
56
  from metadata.ingestion.api.steps import Source
57
57
  from metadata.ingestion.api.topology_runner import C, TopologyRunnerMixin
58
- from metadata.ingestion.connections.test_connections import (
59
- raise_test_connection_exception,
60
- )
61
58
  from metadata.ingestion.lineage.sql_lineage import get_column_fqn
62
59
  from metadata.ingestion.models.delete_entity import DeleteEntity
63
60
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
@@ -70,7 +67,7 @@ from metadata.ingestion.models.topology import (
70
67
  TopologyNode,
71
68
  )
72
69
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
73
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
70
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
74
71
  from metadata.utils import fqn
75
72
  from metadata.utils.filters import filter_by_dashboard, filter_by_project
76
73
  from metadata.utils.logger import ingestion_logger
@@ -595,11 +592,9 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
595
592
  yield dashboard_details
596
593
 
597
594
  def test_connection(self) -> None:
598
- test_connection_fn = get_test_connection_fn(self.service_connection)
599
- result = test_connection_fn(
595
+ test_connection_common(
600
596
  self.metadata, self.connection_obj, self.service_connection
601
597
  )
602
- raise_test_connection_exception(result)
603
598
 
604
599
  def prepare(self):
605
600
  """By default, nothing to prepare"""
@@ -12,6 +12,7 @@
12
12
  REST Auth & Client for QlikCloud
13
13
  """
14
14
  import json
15
+ import re
15
16
  import traceback
16
17
  from typing import Dict, Iterable, List, Optional
17
18
 
@@ -23,12 +24,14 @@ from metadata.ingestion.source.dashboard.qlikcloud.constants import (
23
24
  APP_LOADMODEL_REQ,
24
25
  CREATE_SHEET_SESSION,
25
26
  GET_LOADMODEL_LAYOUT,
27
+ GET_SCRIPT,
26
28
  GET_SHEET_LAYOUT,
27
29
  OPEN_DOC_REQ,
28
30
  )
29
31
  from metadata.ingestion.source.dashboard.qlikcloud.models import (
30
32
  QlikApp,
31
33
  QlikAppResponse,
34
+ QlikScriptResult,
32
35
  QlikSpace,
33
36
  QlikSpaceResponse,
34
37
  )
@@ -173,12 +176,18 @@ class QlikCloudClient:
173
176
  models = self._websocket_send_request(GET_LOADMODEL_LAYOUT, response=True)
174
177
  data_models = QlikDataModelResult(**models)
175
178
  layout = data_models.result.qLayout
179
+ parsed_datamodels = []
176
180
  if isinstance(layout, list):
177
181
  tables = []
178
182
  for layout in data_models.result.qLayout:
179
183
  tables.extend(layout.value.tables)
180
- return tables
181
- return layout.tables
184
+ parsed_datamodels.extend(tables)
185
+ else:
186
+ parsed_datamodels.extend(layout.tables)
187
+ script_tables = self.get_script_tables()
188
+ if script_tables:
189
+ parsed_datamodels.extend(script_tables)
190
+ return parsed_datamodels
182
191
  except Exception:
183
192
  logger.debug(traceback.format_exc())
184
193
  logger.warning("Failed to fetch the dashboard datamodels")
@@ -204,3 +213,26 @@ class QlikCloudClient:
204
213
  except Exception:
205
214
  logger.debug(traceback.format_exc())
206
215
  logger.warning("Failed to fetch the space list")
216
+
217
+ def get_script_tables(self) -> Optional[List[QlikTable]]:
218
+ """Get script tables from the dashboard script"""
219
+ script_tables = []
220
+ try:
221
+ script_response = self._websocket_send_request(GET_SCRIPT, response=True)
222
+ script_result = QlikScriptResult(**script_response)
223
+ if script_result.result.qScript:
224
+ script_value = script_result.result.qScript
225
+ matches = re.findall(
226
+ r'FROM\s+["\']?([a-zA-Z0-9_.]+)["\']?', script_value, re.IGNORECASE
227
+ )
228
+ if isinstance(matches, list):
229
+ for table in matches:
230
+ table_name = table.split(".")[-1]
231
+ script_tables.append(QlikTable(tableName=table_name))
232
+ if not script_tables:
233
+ logger.warning("No script tables found")
234
+ return script_tables
235
+ except Exception:
236
+ logger.debug(traceback.format_exc())
237
+ logger.warning("Failed to fetch the script tables")
238
+ return script_tables
@@ -64,3 +64,9 @@ GET_LOADMODEL_LAYOUT = {
64
64
  "id": 5,
65
65
  "jsonrpc": "2.0",
66
66
  }
67
+ GET_SCRIPT = {
68
+ "handle": 3,
69
+ "method": "GetScript",
70
+ "id": 1,
71
+ "jsonrpc": "2.0",
72
+ }
@@ -84,3 +84,11 @@ class QlikAppResponse(BaseModel):
84
84
 
85
85
  apps: Optional[List[QlikApp]] = Field(None, alias="data")
86
86
  links: Optional[QlikLinks] = None
87
+
88
+
89
+ class QlikScript(BaseModel):
90
+ qScript: Optional[str] = None
91
+
92
+
93
+ class QlikScriptResult(BaseModel):
94
+ result: Optional[QlikScript] = QlikScript()
@@ -24,7 +24,7 @@ from metadata.generated.schema.entity.services.connections.dashboard.supersetCon
24
24
  SupersetConnection,
25
25
  )
26
26
  from metadata.generated.schema.entity.services.connections.database.mysqlConnection import (
27
- MysqlConnection,
27
+ MysqlConnection as MysqlConnectionConfig,
28
28
  )
29
29
  from metadata.generated.schema.entity.services.connections.database.postgresConnection import (
30
30
  PostgresConnection,
@@ -46,16 +46,16 @@ from metadata.ingestion.source.dashboard.superset.queries import (
46
46
  FETCH_ALL_CHARTS_TEST,
47
47
  FETCH_DASHBOARDS_TEST,
48
48
  )
49
- from metadata.ingestion.source.database.mysql.connection import (
50
- get_connection as mysql_get_connection,
51
- )
49
+ from metadata.ingestion.source.database.mysql.connection import MySQLConnection
52
50
  from metadata.ingestion.source.database.postgres.connection import (
53
51
  get_connection as pg_get_connection,
54
52
  )
55
53
  from metadata.utils.constants import THREE_MIN
56
54
 
57
55
 
58
- def get_connection(connection: SupersetConnection) -> SupersetAPIClient:
56
+ def get_connection(
57
+ connection: SupersetConnection,
58
+ ) -> Union[SupersetAPIClient, Engine, None]:
59
59
  """
60
60
  Create connection
61
61
  """
@@ -63,8 +63,8 @@ def get_connection(connection: SupersetConnection) -> SupersetAPIClient:
63
63
  return SupersetAPIClient(connection)
64
64
  if isinstance(connection.connection, PostgresConnection):
65
65
  return pg_get_connection(connection=connection.connection)
66
- if isinstance(connection.connection, MysqlConnection):
67
- return mysql_get_connection(connection=connection.connection)
66
+ if isinstance(connection.connection, MysqlConnectionConfig):
67
+ return MySQLConnection(connection.connection).get_client()
68
68
  return None
69
69
 
70
70
 
@@ -89,7 +89,7 @@ def test_connection(
89
89
  else:
90
90
  test_fn["CheckAccess"] = partial(test_connection_engine_step, client)
91
91
  test_fn["GetDashboards"] = partial(test_query, client, FETCH_DASHBOARDS_TEST)
92
- if isinstance(service_connection.connection, MysqlConnection):
92
+ if isinstance(service_connection.connection, MysqlConnectionConfig):
93
93
  test_fn["GetCharts"] = partial(
94
94
  test_query, client, FETCH_ALL_CHARTS_TEST.replace('"', "`")
95
95
  )
@@ -93,7 +93,7 @@ LIMIT 1
93
93
  FETCH_COLUMN = """
94
94
  select
95
95
  tc.id,
96
- tc.table_name ,
96
+ t.table_name ,
97
97
  tc.column_name,
98
98
  tc.table_id,
99
99
  tc.type,