openmetadata-ingestion 1.6.10.0__py3-none-any.whl → 1.6.12.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 (673) hide show
  1. metadata/data_quality/validations/models.py +3 -0
  2. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +120 -0
  3. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +61 -47
  4. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +24 -0
  5. metadata/generated/schema/analytics/__init__.py +1 -1
  6. metadata/generated/schema/analytics/basic.py +1 -1
  7. metadata/generated/schema/analytics/reportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  15. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  16. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  17. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  19. metadata/generated/schema/api/__init__.py +1 -1
  20. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  21. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  22. metadata/generated/schema/api/analytics/__init__.py +1 -1
  23. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  24. metadata/generated/schema/api/automations/__init__.py +1 -1
  25. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  26. metadata/generated/schema/api/bulkAssets.py +1 -1
  27. metadata/generated/schema/api/classification/__init__.py +1 -1
  28. metadata/generated/schema/api/classification/createClassification.py +1 -1
  29. metadata/generated/schema/api/classification/createTag.py +1 -1
  30. metadata/generated/schema/api/classification/loadTags.py +1 -1
  31. metadata/generated/schema/api/createBot.py +1 -1
  32. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  33. metadata/generated/schema/api/createType.py +1 -1
  34. metadata/generated/schema/api/data/__init__.py +1 -1
  35. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  36. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  37. metadata/generated/schema/api/data/createChart.py +1 -1
  38. metadata/generated/schema/api/data/createContainer.py +1 -1
  39. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  40. metadata/generated/schema/api/data/createDashboard.py +1 -1
  41. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  42. metadata/generated/schema/api/data/createDatabase.py +1 -1
  43. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  44. metadata/generated/schema/api/data/createGlossary.py +1 -1
  45. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  46. metadata/generated/schema/api/data/createMetric.py +1 -1
  47. metadata/generated/schema/api/data/createMlModel.py +1 -1
  48. metadata/generated/schema/api/data/createPipeline.py +1 -1
  49. metadata/generated/schema/api/data/createQuery.py +1 -1
  50. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  51. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  52. metadata/generated/schema/api/data/createTable.py +1 -1
  53. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  54. metadata/generated/schema/api/data/createTopic.py +1 -1
  55. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  56. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  57. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  58. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  59. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  60. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  61. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  62. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  63. metadata/generated/schema/api/docStore/__init__.py +1 -1
  64. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  65. metadata/generated/schema/api/domains/__init__.py +1 -1
  66. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  67. metadata/generated/schema/api/domains/createDomain.py +1 -1
  68. metadata/generated/schema/api/feed/__init__.py +1 -1
  69. metadata/generated/schema/api/feed/closeTask.py +1 -1
  70. metadata/generated/schema/api/feed/createPost.py +1 -1
  71. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  72. metadata/generated/schema/api/feed/createThread.py +1 -1
  73. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  74. metadata/generated/schema/api/feed/threadCount.py +1 -1
  75. metadata/generated/schema/api/governance/__init__.py +1 -1
  76. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  77. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  78. metadata/generated/schema/api/lineage/__init__.py +1 -1
  79. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  80. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  81. metadata/generated/schema/api/policies/__init__.py +1 -1
  82. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  83. metadata/generated/schema/api/services/__init__.py +1 -1
  84. metadata/generated/schema/api/services/createApiService.py +1 -1
  85. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  86. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  87. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  88. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  89. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  90. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  91. metadata/generated/schema/api/services/createSearchService.py +1 -1
  92. metadata/generated/schema/api/services/createStorageService.py +1 -1
  93. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  94. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  95. metadata/generated/schema/api/setOwner.py +1 -1
  96. metadata/generated/schema/api/teams/__init__.py +1 -1
  97. metadata/generated/schema/api/teams/createPersona.py +1 -1
  98. metadata/generated/schema/api/teams/createRole.py +1 -1
  99. metadata/generated/schema/api/teams/createTeam.py +1 -1
  100. metadata/generated/schema/api/teams/createUser.py +1 -1
  101. metadata/generated/schema/api/tests/__init__.py +1 -1
  102. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  103. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  104. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  105. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  106. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  107. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  108. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  109. metadata/generated/schema/api/voteRequest.py +1 -1
  110. metadata/generated/schema/auth/__init__.py +1 -1
  111. metadata/generated/schema/auth/basicAuth.py +1 -1
  112. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  113. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  114. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  115. metadata/generated/schema/auth/emailRequest.py +1 -1
  116. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  117. metadata/generated/schema/auth/generateToken.py +1 -1
  118. metadata/generated/schema/auth/jwtAuth.py +1 -1
  119. metadata/generated/schema/auth/loginRequest.py +1 -1
  120. metadata/generated/schema/auth/logoutRequest.py +1 -1
  121. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  122. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  123. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  124. metadata/generated/schema/auth/refreshToken.py +1 -1
  125. metadata/generated/schema/auth/registrationRequest.py +1 -1
  126. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  127. metadata/generated/schema/auth/revokeToken.py +1 -1
  128. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  129. metadata/generated/schema/auth/ssoAuth.py +1 -1
  130. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  131. metadata/generated/schema/configuration/__init__.py +1 -1
  132. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  134. metadata/generated/schema/configuration/authConfig.py +1 -1
  135. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  136. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  146. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  147. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  148. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  149. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  150. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  151. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  153. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  154. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  155. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/searchSettings.py +1 -1
  158. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  159. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  163. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  164. metadata/generated/schema/dataInsight/__init__.py +1 -1
  165. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  166. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  167. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  168. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  169. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  170. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  171. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  172. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  173. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  174. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  175. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  176. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  177. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  178. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  179. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  180. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  181. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  182. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  183. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  184. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  185. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  186. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  187. metadata/generated/schema/email/__init__.py +1 -1
  188. metadata/generated/schema/email/emailRequest.py +1 -1
  189. metadata/generated/schema/email/emailTemplate.py +1 -1
  190. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  191. metadata/generated/schema/email/smtpSettings.py +1 -1
  192. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  193. metadata/generated/schema/entity/__init__.py +1 -1
  194. metadata/generated/schema/entity/applications/__init__.py +1 -1
  195. metadata/generated/schema/entity/applications/app.py +1 -1
  196. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  197. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  202. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  203. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  208. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  211. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  213. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  216. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  217. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  218. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  222. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  226. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  227. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  228. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  229. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  230. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  231. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  232. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  233. metadata/generated/schema/entity/automations/__init__.py +1 -1
  234. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  235. metadata/generated/schema/entity/automations/workflow.py +1 -1
  236. metadata/generated/schema/entity/bot.py +1 -1
  237. metadata/generated/schema/entity/classification/__init__.py +1 -1
  238. metadata/generated/schema/entity/classification/classification.py +1 -1
  239. metadata/generated/schema/entity/classification/tag.py +1 -1
  240. metadata/generated/schema/entity/data/__init__.py +1 -1
  241. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  242. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  243. metadata/generated/schema/entity/data/chart.py +1 -1
  244. metadata/generated/schema/entity/data/container.py +1 -1
  245. metadata/generated/schema/entity/data/dashboard.py +1 -1
  246. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  247. metadata/generated/schema/entity/data/database.py +1 -1
  248. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  249. metadata/generated/schema/entity/data/glossary.py +1 -1
  250. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  251. metadata/generated/schema/entity/data/metric.py +1 -1
  252. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  253. metadata/generated/schema/entity/data/pipeline.py +1 -1
  254. metadata/generated/schema/entity/data/query.py +1 -1
  255. metadata/generated/schema/entity/data/report.py +1 -1
  256. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  257. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  258. metadata/generated/schema/entity/data/table.py +1 -1
  259. metadata/generated/schema/entity/data/topic.py +1 -1
  260. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  261. metadata/generated/schema/entity/docStore/document.py +1 -1
  262. metadata/generated/schema/entity/domains/__init__.py +1 -1
  263. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  264. metadata/generated/schema/entity/domains/domain.py +1 -1
  265. metadata/generated/schema/entity/events/__init__.py +1 -1
  266. metadata/generated/schema/entity/events/webhook.py +1 -1
  267. metadata/generated/schema/entity/feed/__init__.py +1 -1
  268. metadata/generated/schema/entity/feed/assets.py +1 -1
  269. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  270. metadata/generated/schema/entity/feed/description.py +1 -1
  271. metadata/generated/schema/entity/feed/domain.py +1 -1
  272. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  273. metadata/generated/schema/entity/feed/owner.py +1 -1
  274. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  275. metadata/generated/schema/entity/feed/tag.py +1 -1
  276. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  277. metadata/generated/schema/entity/feed/thread.py +1 -1
  278. metadata/generated/schema/entity/policies/__init__.py +1 -1
  279. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  280. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  281. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  282. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  283. metadata/generated/schema/entity/policies/filters.py +1 -1
  284. metadata/generated/schema/entity/policies/policy.py +1 -1
  285. metadata/generated/schema/entity/services/__init__.py +1 -1
  286. metadata/generated/schema/entity/services/apiService.py +1 -1
  287. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  288. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  289. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  290. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  291. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  292. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  293. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  294. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  295. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  296. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  297. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  306. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  307. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  308. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  309. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  310. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  384. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  390. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  391. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  398. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  404. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  419. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  421. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  422. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  423. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  430. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  432. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  433. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  434. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  438. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  443. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  444. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  445. metadata/generated/schema/entity/services/databaseService.py +1 -1
  446. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  447. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  448. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  449. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  450. metadata/generated/schema/entity/services/messagingService.py +1 -1
  451. metadata/generated/schema/entity/services/metadataService.py +1 -1
  452. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  453. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  454. metadata/generated/schema/entity/services/searchService.py +1 -1
  455. metadata/generated/schema/entity/services/serviceType.py +1 -1
  456. metadata/generated/schema/entity/services/storageService.py +1 -1
  457. metadata/generated/schema/entity/teams/__init__.py +1 -1
  458. metadata/generated/schema/entity/teams/persona.py +1 -1
  459. metadata/generated/schema/entity/teams/role.py +1 -1
  460. metadata/generated/schema/entity/teams/team.py +1 -1
  461. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  462. metadata/generated/schema/entity/teams/user.py +1 -1
  463. metadata/generated/schema/entity/type.py +1 -1
  464. metadata/generated/schema/entity/utils/__init__.py +1 -1
  465. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  466. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  467. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  468. metadata/generated/schema/events/__init__.py +1 -1
  469. metadata/generated/schema/events/alertMetrics.py +1 -1
  470. metadata/generated/schema/events/api/__init__.py +1 -1
  471. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  472. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  473. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  474. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  475. metadata/generated/schema/events/api/typedEvent.py +1 -1
  476. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  477. metadata/generated/schema/events/eventFilterRule.py +1 -1
  478. metadata/generated/schema/events/eventSubscription.py +1 -1
  479. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  480. metadata/generated/schema/events/failedEvent.py +1 -1
  481. metadata/generated/schema/events/failedEventResponse.py +1 -1
  482. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  483. metadata/generated/schema/events/statusContext.py +1 -1
  484. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  485. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  486. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  487. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  488. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  489. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  490. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  491. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  492. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  493. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  494. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  495. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  496. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  497. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  498. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  499. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  500. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  501. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  502. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  503. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  504. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  505. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  506. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  507. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  508. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  509. metadata/generated/schema/jobs/__init__.py +1 -1
  510. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  511. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  512. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  513. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  514. metadata/generated/schema/metadataIngestion/application.py +1 -1
  515. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  516. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  517. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  518. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  519. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  520. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  521. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  522. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  523. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  524. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  525. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  526. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  527. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  528. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  529. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  530. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  531. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  532. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  533. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  534. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  535. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  536. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  537. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  538. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  539. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  540. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  541. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  542. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  543. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  544. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  545. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  546. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  547. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  548. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  549. metadata/generated/schema/monitoring/__init__.py +1 -1
  550. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  551. metadata/generated/schema/security/__init__.py +1 -1
  552. metadata/generated/schema/security/client/__init__.py +1 -1
  553. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  554. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  555. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  556. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  557. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  558. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  559. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  560. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  561. metadata/generated/schema/security/credentials/__init__.py +1 -1
  562. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  563. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  564. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  565. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  566. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  567. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  568. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  569. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  570. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  571. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  572. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  573. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  574. metadata/generated/schema/security/sasl/__init__.py +1 -1
  575. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  576. metadata/generated/schema/security/secrets/__init__.py +1 -1
  577. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  578. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  579. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  580. metadata/generated/schema/security/securityConfiguration.py +1 -1
  581. metadata/generated/schema/security/ssl/__init__.py +1 -1
  582. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  583. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  584. metadata/generated/schema/settings/__init__.py +1 -1
  585. metadata/generated/schema/settings/settings.py +1 -1
  586. metadata/generated/schema/system/__init__.py +1 -1
  587. metadata/generated/schema/system/entityError.py +1 -1
  588. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  589. metadata/generated/schema/system/indexingError.py +1 -1
  590. metadata/generated/schema/system/limitsResponse.py +1 -1
  591. metadata/generated/schema/system/ui/__init__.py +1 -1
  592. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  593. metadata/generated/schema/system/ui/page.py +1 -1
  594. metadata/generated/schema/system/validationResponse.py +1 -1
  595. metadata/generated/schema/tests/__init__.py +1 -1
  596. metadata/generated/schema/tests/assigned.py +1 -1
  597. metadata/generated/schema/tests/basic.py +1 -1
  598. metadata/generated/schema/tests/customMetric.py +1 -1
  599. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  600. metadata/generated/schema/tests/resolved.py +1 -1
  601. metadata/generated/schema/tests/testCase.py +1 -1
  602. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  603. metadata/generated/schema/tests/testDefinition.py +1 -1
  604. metadata/generated/schema/tests/testSuite.py +1 -1
  605. metadata/generated/schema/type/__init__.py +1 -1
  606. metadata/generated/schema/type/apiSchema.py +1 -1
  607. metadata/generated/schema/type/assetCertification.py +1 -1
  608. metadata/generated/schema/type/auditLog.py +1 -1
  609. metadata/generated/schema/type/basic.py +1 -1
  610. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  611. metadata/generated/schema/type/changeEvent.py +1 -1
  612. metadata/generated/schema/type/changeEventType.py +1 -1
  613. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  614. metadata/generated/schema/type/csvDocumentation.py +1 -1
  615. metadata/generated/schema/type/csvErrorType.py +1 -1
  616. metadata/generated/schema/type/csvFile.py +1 -1
  617. metadata/generated/schema/type/csvImportResult.py +1 -1
  618. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  619. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  620. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  621. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  622. metadata/generated/schema/type/customProperty.py +1 -1
  623. metadata/generated/schema/type/dailyCount.py +1 -1
  624. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  625. metadata/generated/schema/type/entityHierarchy.py +1 -1
  626. metadata/generated/schema/type/entityHistory.py +1 -1
  627. metadata/generated/schema/type/entityLineage.py +1 -1
  628. metadata/generated/schema/type/entityReference.py +1 -1
  629. metadata/generated/schema/type/entityReferenceList.py +1 -1
  630. metadata/generated/schema/type/entityRelationship.py +1 -1
  631. metadata/generated/schema/type/entityUsage.py +1 -1
  632. metadata/generated/schema/type/filterPattern.py +1 -1
  633. metadata/generated/schema/type/function.py +1 -1
  634. metadata/generated/schema/type/include.py +1 -1
  635. metadata/generated/schema/type/jdbcConnection.py +1 -1
  636. metadata/generated/schema/type/lifeCycle.py +1 -1
  637. metadata/generated/schema/type/paging.py +1 -1
  638. metadata/generated/schema/type/profile.py +1 -1
  639. metadata/generated/schema/type/queryParserData.py +1 -1
  640. metadata/generated/schema/type/reaction.py +1 -1
  641. metadata/generated/schema/type/schedule.py +1 -1
  642. metadata/generated/schema/type/schema.py +1 -1
  643. metadata/generated/schema/type/tableQuery.py +1 -1
  644. metadata/generated/schema/type/tableUsageCount.py +1 -1
  645. metadata/generated/schema/type/tagLabel.py +1 -1
  646. metadata/generated/schema/type/usageDetails.py +1 -1
  647. metadata/generated/schema/type/usageRequest.py +1 -1
  648. metadata/generated/schema/type/votes.py +1 -1
  649. metadata/ingestion/lineage/masker.py +8 -1
  650. metadata/ingestion/lineage/parser.py +6 -2
  651. metadata/ingestion/lineage/sql_lineage.py +98 -22
  652. metadata/ingestion/models/topology.py +9 -0
  653. metadata/ingestion/ometa/mixins/es_mixin.py +2 -0
  654. metadata/ingestion/ometa/ometa_api.py +36 -0
  655. metadata/ingestion/source/dashboard/powerbi/metadata.py +1 -1
  656. metadata/ingestion/source/database/lineage_processors.py +336 -0
  657. metadata/ingestion/source/database/lineage_source.py +134 -133
  658. metadata/ingestion/source/database/snowflake/data_diff/__init__.py +0 -0
  659. metadata/ingestion/source/database/snowflake/data_diff/data_diff.py +37 -0
  660. metadata/ingestion/source/database/snowflake/service_spec.py +4 -0
  661. metadata/ingestion/source/database/stored_procedures_mixin.py +21 -158
  662. metadata/readers/dataframe/parquet.py +10 -2
  663. metadata/utils/db_utils.py +11 -1
  664. metadata/utils/execution_time_tracker.py +30 -0
  665. metadata/utils/lru_cache.py +14 -0
  666. metadata/utils/service_spec/default.py +4 -0
  667. metadata/utils/service_spec/service_spec.py +1 -0
  668. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/METADATA +365 -365
  669. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/RECORD +673 -669
  670. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/LICENSE +0 -0
  671. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/WHEEL +0 -0
  672. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/entry_points.txt +0 -0
  673. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/top_level.txt +0 -0
@@ -11,12 +11,15 @@
11
11
  """
12
12
  Helper functions to handle SQL lineage operations
13
13
  """
14
+ import functools
14
15
  import itertools
15
16
  import traceback
16
17
  from collections import defaultdict
18
+ from copy import deepcopy
17
19
  from typing import Any, Iterable, List, Optional, Tuple, Union
18
20
 
19
21
  import networkx as nx
22
+ from collate_sqllineage.core.holders import SQLLineageHolder
20
23
  from collate_sqllineage.core.models import Column, DataFunction
21
24
  from collate_sqllineage.core.models import Table as LineageTable
22
25
  from networkx import DiGraph
@@ -48,6 +51,10 @@ from metadata.ingestion.lineage.parser import LINEAGE_PARSING_TIMEOUT, LineagePa
48
51
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
49
52
  from metadata.utils import fqn
50
53
  from metadata.utils.elasticsearch import get_entity_from_es_result
54
+ from metadata.utils.execution_time_tracker import (
55
+ calculate_execution_time,
56
+ calculate_execution_time_generator,
57
+ )
51
58
  from metadata.utils.fqn import build_es_fqn_search_string
52
59
  from metadata.utils.logger import utils_logger
53
60
  from metadata.utils.lru_cache import LRU_CACHE_SIZE, LRUCache
@@ -56,7 +63,7 @@ logger = utils_logger()
56
63
  DEFAULT_SCHEMA_NAME = "<default>"
57
64
  CUTOFF_NODES = 20
58
65
 
59
-
66
+ # pylint: disable=too-many-function-args,protected-access
60
67
  def get_column_fqn(table_entity: Table, column: str) -> Optional[str]:
61
68
  """
62
69
  Get fqn of column if exist in table entity
@@ -73,6 +80,7 @@ def get_column_fqn(table_entity: Table, column: str) -> Optional[str]:
73
80
  search_cache = LRUCache(LRU_CACHE_SIZE)
74
81
 
75
82
 
83
+ @calculate_execution_time(context="SearchTableEntities")
76
84
  def search_table_entities(
77
85
  metadata: OpenMetadata,
78
86
  service_name: str,
@@ -236,6 +244,58 @@ def handle_udf_column_lineage(
236
244
  logger.error(f"Error handling UDF column lineage: {exc}")
237
245
 
238
246
 
247
+ @functools.lru_cache(maxsize=1000)
248
+ def _get_udf_parser(
249
+ code: str, dialect: Dialect, timeout_seconds: int
250
+ ) -> Optional[LineageParser]:
251
+ if code:
252
+ return LineageParser(
253
+ f"create table dummy_table_name as {code}",
254
+ dialect=dialect,
255
+ timeout_seconds=timeout_seconds,
256
+ )
257
+ return None
258
+
259
+
260
+ def _replace_target_table(
261
+ parser: LineageParser, expected_table_name: str
262
+ ) -> LineageParser:
263
+ try:
264
+ # Create a new target table instead of modifying the existing one
265
+ new_table = Table(expected_table_name.replace(DEFAULT_SCHEMA_NAME, ""))
266
+
267
+ # Create a new statement holder with the updated target table
268
+ stmt_holder = parser.parser._stmt_holders[0]
269
+ old_write = list(stmt_holder.write)[0] # Get the original target table
270
+
271
+ # Remove old target table and add new one
272
+ stmt_holder.graph.remove_node(old_write)
273
+ stmt_holder.add_write(new_table)
274
+
275
+ # Rebuild column lineage
276
+ for col_lineage in parser.parser.get_column_lineage():
277
+ if col_lineage[-1].parent == old_write:
278
+ # Create new column with same name but parent is new table
279
+ tgt_col = col_lineage[-1]
280
+ new_tgt_col = Column(tgt_col.raw_name)
281
+ new_tgt_col.parent = new_table
282
+
283
+ # Add the column lineage from source to new target
284
+ stmt_holder.add_column_lineage(col_lineage[-2], new_tgt_col)
285
+ try:
286
+ # remove the old edge
287
+ stmt_holder.graph.remove_edge(col_lineage[-2], tgt_col)
288
+ except Exception as _:
289
+ # if the edge is not present, pass
290
+ pass
291
+
292
+ # Rebuild the SQL holder
293
+ parser.parser._sql_holder = SQLLineageHolder.of(*parser.parser._stmt_holders)
294
+ except Exception as exc:
295
+ logger.debug(traceback.format_exc())
296
+ logger.debug(f"Error replacing target table: {exc}")
297
+
298
+
239
299
  # pylint: disable=too-many-arguments
240
300
  def __process_udf_es_results(
241
301
  metadata: OpenMetadata,
@@ -255,27 +315,32 @@ def __process_udf_es_results(
255
315
  and entity.storedProcedureCode
256
316
  and entity.storedProcedureCode.language == Language.SQL
257
317
  ):
258
- expected_table_name = str(source_table).replace(
259
- f"{DEFAULT_SCHEMA_NAME}.", ""
260
- )
261
- lineage_parser = LineageParser(
262
- f"create table {str(expected_table_name)} as {entity.storedProcedureCode.code}",
263
- dialect=dialect,
264
- timeout_seconds=timeout_seconds,
318
+
319
+ lineage_parser = _get_udf_parser(
320
+ entity.storedProcedureCode.code, dialect, timeout_seconds
265
321
  )
266
- handle_udf_column_lineage(column_lineage, lineage_parser.column_lineage)
267
- for source in lineage_parser.source_tables or []:
268
- yield from get_source_table_names(
269
- metadata,
270
- dialect,
271
- source,
272
- database_name,
273
- schema_name,
274
- service_name,
275
- timeout_seconds,
276
- column_lineage,
277
- procedure or entity,
322
+ if lineage_parser and lineage_parser.parser:
323
+ expected_table_name = str(source_table).replace(
324
+ f"{DEFAULT_SCHEMA_NAME}.", ""
325
+ )
326
+ lineage_parser_copy = deepcopy(lineage_parser)
327
+ _replace_target_table(lineage_parser_copy, expected_table_name)
328
+
329
+ handle_udf_column_lineage(
330
+ column_lineage, lineage_parser_copy.column_lineage
278
331
  )
332
+ for source in lineage_parser_copy.source_tables or []:
333
+ yield from get_source_table_names(
334
+ metadata,
335
+ dialect,
336
+ source,
337
+ database_name,
338
+ schema_name,
339
+ service_name,
340
+ timeout_seconds,
341
+ column_lineage,
342
+ procedure or entity,
343
+ )
279
344
 
280
345
 
281
346
  def __process_udf_table_names(
@@ -317,6 +382,7 @@ def __process_udf_table_names(
317
382
  )
318
383
 
319
384
 
385
+ @calculate_execution_time_generator(context="GetSourceTableNames")
320
386
  def get_source_table_names(
321
387
  metadata: OpenMetadata,
322
388
  dialect: Dialect,
@@ -617,6 +683,7 @@ def populate_column_lineage_map(raw_column_lineage):
617
683
 
618
684
 
619
685
  # pylint: disable=too-many-locals
686
+ @calculate_execution_time_generator(context="GetLineageByQuery")
620
687
  def get_lineage_by_query(
621
688
  metadata: OpenMetadata,
622
689
  service_name: str,
@@ -627,6 +694,7 @@ def get_lineage_by_query(
627
694
  timeout_seconds: int = LINEAGE_PARSING_TIMEOUT,
628
695
  lineage_source: LineageSource = LineageSource.QueryLineage,
629
696
  graph: DiGraph = None,
697
+ lineage_parser: Optional[LineageParser] = None,
630
698
  ) -> Iterable[Either[AddLineageRequest]]:
631
699
  """
632
700
  This method parses the query to get source, target and intermediate table names to create lineage,
@@ -636,7 +704,10 @@ def get_lineage_by_query(
636
704
  query_parsing_failures = QueryParsingFailures()
637
705
 
638
706
  try:
639
- lineage_parser = LineageParser(query, dialect, timeout_seconds=timeout_seconds)
707
+ if not lineage_parser:
708
+ lineage_parser = LineageParser(
709
+ query, dialect, timeout_seconds=timeout_seconds
710
+ )
640
711
  masked_query = lineage_parser.masked_query
641
712
  logger.debug(f"Running lineage with query: {masked_query or query}")
642
713
 
@@ -723,6 +794,7 @@ def get_lineage_by_query(
723
794
  )
724
795
 
725
796
 
797
+ @calculate_execution_time_generator(context="GetLineageViaTableEntity")
726
798
  def get_lineage_via_table_entity(
727
799
  metadata: OpenMetadata,
728
800
  table_entity: Table,
@@ -734,13 +806,17 @@ def get_lineage_via_table_entity(
734
806
  timeout_seconds: int = LINEAGE_PARSING_TIMEOUT,
735
807
  lineage_source: LineageSource = LineageSource.QueryLineage,
736
808
  graph: DiGraph = None,
809
+ lineage_parser: Optional[LineageParser] = None,
737
810
  ) -> Iterable[Either[AddLineageRequest]]:
738
811
  """Get lineage from table entity"""
739
812
  column_lineage = {}
740
813
  query_parsing_failures = QueryParsingFailures()
741
814
 
742
815
  try:
743
- lineage_parser = LineageParser(query, dialect, timeout_seconds=timeout_seconds)
816
+ if not lineage_parser:
817
+ lineage_parser = LineageParser(
818
+ query, dialect, timeout_seconds=timeout_seconds
819
+ )
744
820
  masked_query = lineage_parser.masked_query
745
821
  logger.debug(
746
822
  f"Getting lineage via table entity using query: {masked_query or query}"
@@ -305,6 +305,15 @@ class TopologyContextManager:
305
305
  thread_id, self.contexts[parent_thread_id].model_copy(deep=True)
306
306
  )
307
307
 
308
+ def __getstate__(self):
309
+ """Called when pickling the object."""
310
+ state = self.__dict__.copy()
311
+ return state
312
+
313
+ def __setstate__(self, state):
314
+ """Called when unpickling the object."""
315
+ self.__dict__.update(state)
316
+
308
317
 
309
318
  class Queue:
310
319
  """Small Queue wrapper"""
@@ -30,6 +30,7 @@ from metadata.ingestion.ometa.client import REST, APIError
30
30
  from metadata.ingestion.ometa.utils import quote
31
31
  from metadata.ingestion.source.models import TableView
32
32
  from metadata.utils.elasticsearch import ES_INDEX_MAP
33
+ from metadata.utils.execution_time_tracker import calculate_execution_time_generator
33
34
  from metadata.utils.logger import ometa_logger
34
35
 
35
36
  logger = ometa_logger()
@@ -388,6 +389,7 @@ class ESMixin(Generic[T]):
388
389
  f"Error while getting {hit.source['fullyQualifiedName']} - {exc}"
389
390
  )
390
391
 
392
+ @calculate_execution_time_generator(context="ES.FetchViewDefinition")
391
393
  def yield_es_view_def(
392
394
  self,
393
395
  service_name: str,
@@ -529,6 +529,42 @@ class OpenMetadata(
529
529
  raw_version = self.client.get("/system/version")["version"]
530
530
  return raw_version is not None
531
531
 
532
+ def __getstate__(self):
533
+ """Called when pickling the object, returns the state without the unpicklable objects."""
534
+ state = self.__dict__.copy()
535
+ # Remove objects that might contain thread locks
536
+ if "_auth_provider" in state:
537
+ del state["_auth_provider"]
538
+ if "client" in state:
539
+ del state["client"]
540
+ if "secrets_manager_client" in state:
541
+ del state["secrets_manager_client"]
542
+ return state
543
+
544
+ def __setstate__(self, state):
545
+ """Called when unpickling the object, restores the state."""
546
+ self.__dict__.update(state)
547
+ # Restore the auth provider and client
548
+ self._auth_provider = OpenMetadataAuthenticationProvider.create(self.config)
549
+
550
+ get_verify_ssl = get_verify_ssl_fn(self.config.verifySSL)
551
+
552
+ client_config: ClientConfig = ClientConfig(
553
+ base_url=self.config.hostPort,
554
+ api_version=self.config.apiVersion,
555
+ auth_header="Authorization",
556
+ extra_headers=self.config.extraHeaders,
557
+ auth_token=self._auth_provider.get_access_token,
558
+ verify=get_verify_ssl(self.config.sslConfig),
559
+ )
560
+ self.client = REST(client_config)
561
+
562
+ # Restore the secrets manager client
563
+ self.secrets_manager_client = SecretsManagerFactory(
564
+ self.config.secretsManagerProvider,
565
+ self.config.secretsManagerLoader,
566
+ ).get_secrets_manager()
567
+
532
568
  def close(self):
533
569
  """
534
570
  Closing connection
@@ -286,7 +286,7 @@ class PowerbiSource(DashboardServiceSource):
286
286
  """
287
287
  return (
288
288
  f"{clean_uri(self.service_connection.hostPort)}/groups/"
289
- f"{workspace_id}/dashboards/{dashboard_id}"
289
+ f"{workspace_id}/dashboards/{dashboard_id}?experience=power-bi"
290
290
  )
291
291
 
292
292
  def _get_report_url(self, workspace_id: str, dashboard_id: str) -> str:
@@ -0,0 +1,336 @@
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
+ Mixin class with common Stored Procedures logic aimed at lineage.
13
+ """
14
+ import re
15
+ import time
16
+ import traceback
17
+ from copy import deepcopy
18
+ from datetime import datetime
19
+ from multiprocessing import Queue
20
+ from typing import Iterable, List, Optional, Union
21
+
22
+ import networkx as nx
23
+ from pydantic import BaseModel, ConfigDict, Field
24
+
25
+ from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
26
+ from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
27
+ from metadata.generated.schema.entity.data.storedProcedure import StoredProcedure
28
+ from metadata.generated.schema.entity.data.table import Table
29
+ from metadata.generated.schema.type.basic import SqlQuery, Timestamp
30
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
31
+ from metadata.generated.schema.type.entityReference import EntityReference
32
+ from metadata.generated.schema.type.tableQuery import TableQuery
33
+ from metadata.ingestion.api.models import Either
34
+ from metadata.ingestion.lineage.models import Dialect
35
+ from metadata.ingestion.lineage.sql_lineage import get_lineage_by_query
36
+ from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
37
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
38
+ from metadata.ingestion.source.models import TableView
39
+ from metadata.utils import fqn
40
+ from metadata.utils.db_utils import get_view_lineage
41
+ from metadata.utils.logger import ingestion_logger
42
+ from metadata.utils.time_utils import datetime_to_timestamp
43
+
44
+ logger = ingestion_logger()
45
+
46
+ # pylint: disable=invalid-name
47
+
48
+
49
+ class QueryByProcedure(BaseModel):
50
+ """
51
+ Query(ies) executed by each stored procedure
52
+ """
53
+
54
+ procedure_name: str = Field(None, alias="PROCEDURE_NAME")
55
+ query_type: str = Field(..., alias="QUERY_TYPE")
56
+ query_database_name: Optional[str] = Field(None, alias="QUERY_DATABASE_NAME")
57
+ query_schema_name: Optional[str] = Field(None, alias="QUERY_SCHEMA_NAME")
58
+ procedure_text: str = Field(..., alias="PROCEDURE_TEXT")
59
+ procedure_start_time: datetime = Field(..., alias="PROCEDURE_START_TIME")
60
+ procedure_end_time: datetime = Field(..., alias="PROCEDURE_END_TIME")
61
+ query_start_time: Optional[datetime] = Field(None, alias="QUERY_START_TIME")
62
+ query_duration: Optional[float] = Field(None, alias="QUERY_DURATION")
63
+ query_text: str = Field(..., alias="QUERY_TEXT")
64
+ query_user_name: Optional[str] = Field(None, alias="QUERY_USER_NAME")
65
+
66
+ model_config = ConfigDict(populate_by_name=True)
67
+
68
+
69
+ class ProcedureAndQuery(BaseModel):
70
+ """
71
+ Model to hold the procedure and its queries
72
+ """
73
+
74
+ procedure: StoredProcedure
75
+ query_by_procedure: QueryByProcedure
76
+
77
+ model_config = ConfigDict(populate_by_name=True)
78
+
79
+
80
+ def is_lineage_query(query_type: str, query_text: str) -> bool:
81
+ """Check if it's worth it to parse the query for lineage"""
82
+
83
+ logger.debug(
84
+ f"Validating query lineage for type [{query_type}] and text [{query_text}]"
85
+ )
86
+
87
+ if query_type in ("MERGE", "UPDATE", "CREATE_TABLE_AS_SELECT"):
88
+ return True
89
+
90
+ if query_type == "INSERT" and re.search(
91
+ "^.*insert.*into.*select.*$", query_text.replace("\n", " "), re.IGNORECASE
92
+ ):
93
+ return True
94
+
95
+ return False
96
+
97
+
98
+ def _yield_procedure_lineage(
99
+ metadata: OpenMetadata,
100
+ service_name: str,
101
+ dialect: Dialect,
102
+ parsingTimeoutLimit: int,
103
+ query_by_procedure: QueryByProcedure,
104
+ procedure: StoredProcedure,
105
+ ) -> Iterable[Either[AddLineageRequest]]:
106
+ """Add procedure lineage from its query"""
107
+ if is_lineage_query(
108
+ query_type=query_by_procedure.query_type,
109
+ query_text=query_by_procedure.query_text,
110
+ ):
111
+ for either_lineage in get_lineage_by_query(
112
+ metadata,
113
+ query=query_by_procedure.query_text,
114
+ service_name=service_name,
115
+ database_name=query_by_procedure.query_database_name,
116
+ schema_name=query_by_procedure.query_schema_name,
117
+ dialect=dialect,
118
+ timeout_seconds=parsingTimeoutLimit,
119
+ lineage_source=LineageSource.QueryLineage,
120
+ ):
121
+ if either_lineage.left is None and either_lineage.right.edge.lineageDetails:
122
+ either_lineage.right.edge.lineageDetails.pipeline = EntityReference(
123
+ id=procedure.id,
124
+ type="storedProcedure",
125
+ )
126
+
127
+ yield either_lineage
128
+
129
+
130
+ def procedure_lineage_processor(
131
+ procedure_and_queries: List[ProcedureAndQuery],
132
+ queue: Queue,
133
+ metadata: OpenMetadata,
134
+ service_name: str,
135
+ dialect: Dialect,
136
+ parsingTimeoutLimit: int,
137
+ ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
138
+ """
139
+ Process the procedure and its queries to add lineage
140
+ """
141
+ for procedure_and_query in procedure_and_queries:
142
+ try:
143
+ for lineage in _yield_procedure_lineage(
144
+ query_by_procedure=procedure_and_query.query_by_procedure,
145
+ procedure=procedure_and_query.procedure,
146
+ metadata=deepcopy(metadata),
147
+ service_name=service_name,
148
+ dialect=dialect,
149
+ parsingTimeoutLimit=parsingTimeoutLimit,
150
+ ):
151
+ if lineage and lineage.right is not None:
152
+ queue.put(
153
+ Either(
154
+ right=OMetaLineageRequest(
155
+ override_lineage=False,
156
+ lineage_request=lineage.right,
157
+ entity=StoredProcedure,
158
+ entity_fqn=procedure_and_query.procedure.fullyQualifiedName.root,
159
+ )
160
+ )
161
+ )
162
+ else:
163
+ queue.put(lineage)
164
+ except Exception as exc:
165
+ logger.debug(traceback.format_exc())
166
+ logger.warning(
167
+ f"Could not get lineage for store procedure "
168
+ f"'{procedure_and_query.procedure.fullyQualifiedName}' due to [{exc}]."
169
+ )
170
+ try:
171
+ for lineage in yield_procedure_query(
172
+ query_by_procedure=procedure_and_query.query_by_procedure,
173
+ procedure=procedure_and_query.procedure,
174
+ service_name=service_name,
175
+ ):
176
+ queue.put(lineage)
177
+ except Exception as exc:
178
+ logger.debug(traceback.format_exc())
179
+ logger.warning(
180
+ f"Could not get query for store procedure "
181
+ f"'{procedure_and_query.procedure.fullyQualifiedName}' due to [{exc}]."
182
+ )
183
+
184
+
185
+ def yield_procedure_query(
186
+ query_by_procedure: QueryByProcedure, procedure: StoredProcedure, service_name: str
187
+ ) -> Iterable[Either[CreateQueryRequest]]:
188
+ """Check the queries triggered by the procedure and add their lineage, if any"""
189
+ stored_procedure_query_lineage = is_lineage_query(
190
+ query_type=query_by_procedure.query_type,
191
+ query_text=query_by_procedure.query_text,
192
+ )
193
+
194
+ yield Either(
195
+ right=CreateQueryRequest(
196
+ query=SqlQuery(query_by_procedure.query_text),
197
+ query_type=query_by_procedure.query_type,
198
+ duration=query_by_procedure.query_duration,
199
+ queryDate=Timestamp(
200
+ root=datetime_to_timestamp(query_by_procedure.query_start_time, True)
201
+ ),
202
+ triggeredBy=EntityReference(
203
+ id=procedure.id,
204
+ type="storedProcedure",
205
+ ),
206
+ processedLineage=bool(stored_procedure_query_lineage),
207
+ service=service_name,
208
+ )
209
+ )
210
+
211
+
212
+ # Function that will run in separate processes - defined at module level for pickling
213
+ def _process_chunk_in_subprocess(chunk, processor_fn, queue, *args):
214
+ """
215
+ Process a chunk of data in a subprocess.
216
+
217
+ Args:
218
+ chunk_and_processor_fn: Tuple containing (chunk, processor_fn, queue, *args)
219
+
220
+ Returns:
221
+ True if processing succeeded, False otherwise
222
+ """
223
+ try:
224
+ # Process each item in the chunk
225
+ processor_fn(chunk, queue, *args)
226
+ time.sleep(0.1)
227
+ return True
228
+ except Exception as e:
229
+ logger.error(f"Error processing chunk in subprocess: {e}")
230
+ logger.error(traceback.format_exc())
231
+ return False
232
+
233
+
234
+ def _query_already_processed(metadata: OpenMetadata, table_query: TableQuery) -> bool:
235
+ """
236
+ Check if a query has already been processed by validating if exists
237
+ in ES with lineageProcessed as True
238
+ """
239
+ checksums = metadata.es_get_queries_with_lineage(
240
+ service_name=table_query.serviceName,
241
+ )
242
+ return fqn.get_query_checksum(table_query.query) in checksums or {}
243
+
244
+
245
+ def query_lineage_generator(
246
+ table_queries: List[TableQuery],
247
+ queue: Queue,
248
+ metadata: OpenMetadata,
249
+ dialect: Dialect,
250
+ graph: nx.DiGraph,
251
+ parsingTimeoutLimit: int,
252
+ serviceName: str,
253
+ ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
254
+ """
255
+ Generate lineage for a list of table queries
256
+ """
257
+
258
+ for table_query in table_queries or []:
259
+ if not _query_already_processed(
260
+ metadata=deepcopy(metadata), table_query=table_query
261
+ ):
262
+ lineages: Iterable[Either[AddLineageRequest]] = get_lineage_by_query(
263
+ metadata=deepcopy(metadata),
264
+ query=table_query.query,
265
+ service_name=table_query.serviceName,
266
+ database_name=table_query.databaseName,
267
+ schema_name=table_query.databaseSchema,
268
+ dialect=dialect,
269
+ timeout_seconds=parsingTimeoutLimit,
270
+ graph=graph,
271
+ )
272
+
273
+ for lineage_request in lineages or []:
274
+ queue.put(lineage_request)
275
+
276
+ # If we identified lineage properly, ingest the original query
277
+ if lineage_request.right:
278
+ queue.put(
279
+ Either(
280
+ right=CreateQueryRequest(
281
+ query=SqlQuery(table_query.query),
282
+ query_type=table_query.query_type,
283
+ duration=table_query.duration,
284
+ processedLineage=True,
285
+ service=serviceName,
286
+ )
287
+ )
288
+ )
289
+
290
+
291
+ def view_lineage_generator(
292
+ views: List[TableView],
293
+ queue: Queue,
294
+ metadata: OpenMetadata,
295
+ serviceName: str,
296
+ connectionType: str,
297
+ parsingTimeoutLimit: int,
298
+ overrideViewLineage: bool,
299
+ ) -> Iterable[Either[AddLineageRequest]]:
300
+ """
301
+ Generate lineage for a list of views
302
+ """
303
+ try:
304
+ for view in views:
305
+ for lineage in get_view_lineage(
306
+ view=view,
307
+ metadata=deepcopy(metadata),
308
+ service_name=serviceName,
309
+ connection_type=connectionType,
310
+ timeout_seconds=parsingTimeoutLimit,
311
+ ):
312
+ if lineage.right is not None:
313
+ view_fqn = fqn.build(
314
+ metadata=deepcopy(metadata),
315
+ entity_type=Table,
316
+ service_name=serviceName,
317
+ database_name=view.db_name,
318
+ schema_name=view.schema_name,
319
+ table_name=view.table_name,
320
+ skip_es_search=True,
321
+ )
322
+ queue.put(
323
+ Either(
324
+ right=OMetaLineageRequest(
325
+ lineage_request=lineage.right,
326
+ override_lineage=overrideViewLineage,
327
+ entity_fqn=view_fqn,
328
+ entity=Table,
329
+ )
330
+ )
331
+ )
332
+ else:
333
+ queue.put(lineage)
334
+ except Exception as exc:
335
+ logger.debug(traceback.format_exc())
336
+ logger.warning(f"Error processing view {view}: {exc}")