openmetadata-ingestion 1.9.3.0__py3-none-any.whl → 1.9.5.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 (780) hide show
  1. airflow_provider_openmetadata/lineage/backend.py +2 -1
  2. airflow_provider_openmetadata/lineage/config/loader.py +1 -1
  3. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +27 -4
  4. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +1 -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/createDataContract.py +1 -1
  43. metadata/generated/schema/api/data/createDatabase.py +1 -1
  44. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  45. metadata/generated/schema/api/data/createDirectory.py +1 -1
  46. metadata/generated/schema/api/data/createFile.py +1 -1
  47. metadata/generated/schema/api/data/createGlossary.py +1 -1
  48. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  49. metadata/generated/schema/api/data/createMetric.py +1 -1
  50. metadata/generated/schema/api/data/createMlModel.py +1 -1
  51. metadata/generated/schema/api/data/createPipeline.py +1 -1
  52. metadata/generated/schema/api/data/createQuery.py +1 -1
  53. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  54. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  55. metadata/generated/schema/api/data/createSpreadsheet.py +1 -1
  56. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  57. metadata/generated/schema/api/data/createTable.py +1 -1
  58. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  59. metadata/generated/schema/api/data/createTopic.py +1 -1
  60. metadata/generated/schema/api/data/createWorksheet.py +1 -1
  61. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  62. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  63. metadata/generated/schema/api/data/updateColumn.py +1 -1
  64. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  65. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  66. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  67. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  68. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  69. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  70. metadata/generated/schema/api/docStore/__init__.py +1 -1
  71. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  72. metadata/generated/schema/api/domains/__init__.py +1 -1
  73. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  74. metadata/generated/schema/api/domains/createDomain.py +1 -1
  75. metadata/generated/schema/api/entityRelationship/__init__.py +1 -1
  76. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +1 -1
  77. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +1 -1
  78. metadata/generated/schema/api/entityRelationship/relationshipRef.py +1 -1
  79. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +1 -1
  80. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +1 -1
  81. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +1 -1
  82. metadata/generated/schema/api/feed/__init__.py +1 -1
  83. metadata/generated/schema/api/feed/closeTask.py +1 -1
  84. metadata/generated/schema/api/feed/createPost.py +1 -1
  85. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  86. metadata/generated/schema/api/feed/createThread.py +1 -1
  87. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  88. metadata/generated/schema/api/feed/threadCount.py +1 -1
  89. metadata/generated/schema/api/governance/__init__.py +1 -1
  90. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  91. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  92. metadata/generated/schema/api/lineage/__init__.py +1 -1
  93. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  94. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  95. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  96. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  97. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  98. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  99. metadata/generated/schema/api/mcp/__init__.py +1 -1
  100. metadata/generated/schema/api/mcp/mcpSearchResponse.py +1 -1
  101. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  102. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  103. metadata/generated/schema/api/policies/__init__.py +1 -1
  104. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  105. metadata/generated/schema/api/scim/__init__.py +1 -1
  106. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  107. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  108. metadata/generated/schema/api/scim/scimUser.py +1 -1
  109. metadata/generated/schema/api/search/__init__.py +1 -1
  110. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  111. metadata/generated/schema/api/services/__init__.py +1 -1
  112. metadata/generated/schema/api/services/createApiService.py +1 -1
  113. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  114. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  115. metadata/generated/schema/api/services/createDriveService.py +1 -1
  116. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  117. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  118. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  119. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  120. metadata/generated/schema/api/services/createSearchService.py +1 -1
  121. metadata/generated/schema/api/services/createSecurityService.py +1 -1
  122. metadata/generated/schema/api/services/createStorageService.py +1 -1
  123. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  124. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  125. metadata/generated/schema/api/setOwner.py +1 -1
  126. metadata/generated/schema/api/teams/__init__.py +1 -1
  127. metadata/generated/schema/api/teams/createPersona.py +1 -1
  128. metadata/generated/schema/api/teams/createRole.py +1 -1
  129. metadata/generated/schema/api/teams/createTeam.py +1 -1
  130. metadata/generated/schema/api/teams/createUser.py +1 -1
  131. metadata/generated/schema/api/tests/__init__.py +1 -1
  132. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  133. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  134. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  135. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  136. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  137. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  138. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  139. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +1 -1
  140. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  141. metadata/generated/schema/api/voteRequest.py +1 -1
  142. metadata/generated/schema/auth/__init__.py +1 -1
  143. metadata/generated/schema/auth/basicAuth.py +1 -1
  144. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  145. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  146. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  147. metadata/generated/schema/auth/emailRequest.py +1 -1
  148. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  149. metadata/generated/schema/auth/generateToken.py +1 -1
  150. metadata/generated/schema/auth/jwtAuth.py +1 -1
  151. metadata/generated/schema/auth/loginRequest.py +1 -1
  152. metadata/generated/schema/auth/logoutRequest.py +1 -1
  153. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  154. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  155. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  156. metadata/generated/schema/auth/refreshToken.py +1 -1
  157. metadata/generated/schema/auth/registrationRequest.py +1 -1
  158. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  159. metadata/generated/schema/auth/revokeToken.py +1 -1
  160. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  161. metadata/generated/schema/auth/ssoAuth.py +1 -1
  162. metadata/generated/schema/auth/supportToken.py +1 -1
  163. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  164. metadata/generated/schema/configuration/__init__.py +1 -1
  165. metadata/generated/schema/configuration/aiPlatformConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  168. metadata/generated/schema/configuration/authConfig.py +1 -1
  169. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/cacheConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/entityRulesSettings.py +1 -1
  176. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  182. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  186. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  187. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  189. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  193. metadata/generated/schema/configuration/opsConfig.py +1 -1
  194. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  195. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  196. metadata/generated/schema/configuration/searchSettings.py +1 -1
  197. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  199. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  200. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  201. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  202. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  203. metadata/generated/schema/dataInsight/__init__.py +1 -1
  204. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  205. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  207. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  208. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  209. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  210. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  211. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  212. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  213. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  214. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  215. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  216. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  217. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  218. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  219. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  220. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  221. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  222. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  223. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  224. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  225. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  226. metadata/generated/schema/email/__init__.py +1 -1
  227. metadata/generated/schema/email/emailRequest.py +1 -1
  228. metadata/generated/schema/email/emailTemplate.py +1 -1
  229. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  230. metadata/generated/schema/email/smtpSettings.py +1 -1
  231. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  232. metadata/generated/schema/entity/__init__.py +1 -1
  233. metadata/generated/schema/entity/applications/__init__.py +1 -1
  234. metadata/generated/schema/entity/applications/app.py +1 -1
  235. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  236. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  278. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  279. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  280. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  281. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  282. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  283. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  284. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  285. metadata/generated/schema/entity/automations/__init__.py +1 -1
  286. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  287. metadata/generated/schema/entity/automations/workflow.py +1 -1
  288. metadata/generated/schema/entity/bot.py +1 -1
  289. metadata/generated/schema/entity/classification/__init__.py +1 -1
  290. metadata/generated/schema/entity/classification/classification.py +1 -1
  291. metadata/generated/schema/entity/classification/tag.py +1 -1
  292. metadata/generated/schema/entity/data/__init__.py +1 -1
  293. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  294. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  295. metadata/generated/schema/entity/data/chart.py +1 -1
  296. metadata/generated/schema/entity/data/container.py +1 -1
  297. metadata/generated/schema/entity/data/dashboard.py +1 -1
  298. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  299. metadata/generated/schema/entity/data/dataContract.py +1 -1
  300. metadata/generated/schema/entity/data/database.py +1 -1
  301. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  302. metadata/generated/schema/entity/data/directory.py +1 -1
  303. metadata/generated/schema/entity/data/file.py +1 -1
  304. metadata/generated/schema/entity/data/glossary.py +1 -1
  305. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  306. metadata/generated/schema/entity/data/metric.py +1 -1
  307. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  308. metadata/generated/schema/entity/data/pipeline.py +1 -1
  309. metadata/generated/schema/entity/data/query.py +1 -1
  310. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  311. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  312. metadata/generated/schema/entity/data/report.py +1 -1
  313. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  314. metadata/generated/schema/entity/data/spreadsheet.py +1 -1
  315. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  316. metadata/generated/schema/entity/data/table.py +1 -1
  317. metadata/generated/schema/entity/data/topic.py +1 -1
  318. metadata/generated/schema/entity/data/worksheet.py +1 -1
  319. metadata/generated/schema/entity/datacontract/__init__.py +1 -1
  320. metadata/generated/schema/entity/datacontract/dataContractResult.py +1 -1
  321. metadata/generated/schema/entity/datacontract/qualityValidation.py +1 -1
  322. metadata/generated/schema/entity/datacontract/schemaValidation.py +1 -1
  323. metadata/generated/schema/entity/datacontract/semanticsValidation.py +1 -1
  324. metadata/generated/schema/entity/datacontract/slaValidation.py +1 -1
  325. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  326. metadata/generated/schema/entity/docStore/document.py +1 -1
  327. metadata/generated/schema/entity/domains/__init__.py +1 -1
  328. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  329. metadata/generated/schema/entity/domains/domain.py +1 -1
  330. metadata/generated/schema/entity/events/__init__.py +1 -1
  331. metadata/generated/schema/entity/events/webhook.py +1 -1
  332. metadata/generated/schema/entity/feed/__init__.py +1 -1
  333. metadata/generated/schema/entity/feed/assets.py +1 -1
  334. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  335. metadata/generated/schema/entity/feed/description.py +1 -1
  336. metadata/generated/schema/entity/feed/domain.py +1 -1
  337. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  338. metadata/generated/schema/entity/feed/owner.py +1 -1
  339. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  340. metadata/generated/schema/entity/feed/tag.py +1 -1
  341. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  342. metadata/generated/schema/entity/feed/thread.py +1 -1
  343. metadata/generated/schema/entity/policies/__init__.py +1 -1
  344. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  345. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  346. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  347. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  348. metadata/generated/schema/entity/policies/filters.py +1 -1
  349. metadata/generated/schema/entity/policies/policy.py +1 -1
  350. metadata/generated/schema/entity/services/__init__.py +1 -1
  351. metadata/generated/schema/entity/services/apiService.py +1 -1
  352. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  353. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  356. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  357. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  358. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  359. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  360. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +2 -2
  362. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/dashboard/grafanaConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  372. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +2 -2
  402. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/epicConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/drive/__init__.py +1 -1
  457. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +2 -2
  458. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  461. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +2 -2
  462. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  467. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  468. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  475. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +2 -2
  476. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +2 -2
  485. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  495. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  496. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  497. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  498. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  499. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  500. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  501. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  505. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  506. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  507. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  508. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +2 -2
  509. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  510. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  511. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  512. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  513. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  514. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  515. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  516. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  517. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  518. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  519. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  520. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  521. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +2 -2
  522. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  524. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  525. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  526. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  527. metadata/generated/schema/entity/services/databaseService.py +1 -1
  528. metadata/generated/schema/entity/services/driveService.py +1 -1
  529. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  530. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  531. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  532. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  533. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  534. metadata/generated/schema/entity/services/messagingService.py +1 -1
  535. metadata/generated/schema/entity/services/metadataService.py +1 -1
  536. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  537. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  538. metadata/generated/schema/entity/services/searchService.py +1 -1
  539. metadata/generated/schema/entity/services/securityService.py +1 -1
  540. metadata/generated/schema/entity/services/serviceType.py +1 -1
  541. metadata/generated/schema/entity/services/storageService.py +1 -1
  542. metadata/generated/schema/entity/teams/__init__.py +1 -1
  543. metadata/generated/schema/entity/teams/persona.py +1 -1
  544. metadata/generated/schema/entity/teams/role.py +1 -1
  545. metadata/generated/schema/entity/teams/team.py +1 -1
  546. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  547. metadata/generated/schema/entity/teams/user.py +1 -1
  548. metadata/generated/schema/entity/type.py +1 -1
  549. metadata/generated/schema/entity/utils/__init__.py +1 -1
  550. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  551. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  552. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  553. metadata/generated/schema/events/__init__.py +1 -1
  554. metadata/generated/schema/events/alertMetrics.py +1 -1
  555. metadata/generated/schema/events/api/__init__.py +1 -1
  556. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  557. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  558. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  559. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  560. metadata/generated/schema/events/api/typedEvent.py +1 -1
  561. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  562. metadata/generated/schema/events/eventFilterRule.py +1 -1
  563. metadata/generated/schema/events/eventSubscription.py +1 -1
  564. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  565. metadata/generated/schema/events/failedEvent.py +1 -1
  566. metadata/generated/schema/events/failedEventResponse.py +1 -1
  567. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  568. metadata/generated/schema/events/statusContext.py +1 -1
  569. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  570. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  571. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  572. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  573. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  574. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  575. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  576. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  577. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  578. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  579. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  580. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  581. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  582. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  583. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  584. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  585. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  586. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  587. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  588. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  589. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  590. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  591. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  592. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  593. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  594. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  595. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  596. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  597. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  598. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  599. metadata/generated/schema/jobs/__init__.py +1 -1
  600. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  601. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  602. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  603. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  604. metadata/generated/schema/metadataIngestion/application.py +1 -1
  605. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  606. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  607. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  608. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  609. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  610. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  611. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  612. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  613. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  614. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  615. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  616. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  617. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  618. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  619. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  620. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  621. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  622. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +1 -1
  623. metadata/generated/schema/metadataIngestion/engine/__init__.py +1 -1
  624. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +1 -1
  625. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +1 -1
  626. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  627. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  628. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  629. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  630. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  631. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  632. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  633. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  634. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  635. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  636. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  637. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  638. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  639. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  640. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  641. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  642. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  643. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  644. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  645. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  646. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  647. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  648. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  649. metadata/generated/schema/monitoring/__init__.py +1 -1
  650. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  651. metadata/generated/schema/scim/__init__.py +1 -1
  652. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  653. metadata/generated/schema/search/__init__.py +1 -1
  654. metadata/generated/schema/search/aggregationRequest.py +1 -1
  655. metadata/generated/schema/search/searchRequest.py +1 -1
  656. metadata/generated/schema/security/__init__.py +1 -1
  657. metadata/generated/schema/security/client/__init__.py +1 -1
  658. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  659. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  660. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  661. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  662. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  663. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  664. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  665. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  666. metadata/generated/schema/security/credentials/__init__.py +1 -1
  667. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  668. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  669. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  670. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  671. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  672. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  673. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  674. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  675. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  676. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  677. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  678. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  679. metadata/generated/schema/security/credentials/kubernetesCredentials.py +1 -1
  680. metadata/generated/schema/security/sasl/__init__.py +1 -1
  681. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  682. metadata/generated/schema/security/secrets/__init__.py +1 -1
  683. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  684. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  685. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  686. metadata/generated/schema/security/securityConfiguration.py +1 -1
  687. metadata/generated/schema/security/ssl/__init__.py +1 -1
  688. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  689. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  690. metadata/generated/schema/settings/__init__.py +1 -1
  691. metadata/generated/schema/settings/settings.py +1 -1
  692. metadata/generated/schema/system/__init__.py +1 -1
  693. metadata/generated/schema/system/entityError.py +1 -1
  694. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  695. metadata/generated/schema/system/indexingError.py +1 -1
  696. metadata/generated/schema/system/limitsResponse.py +1 -1
  697. metadata/generated/schema/system/ui/__init__.py +1 -1
  698. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  699. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  700. metadata/generated/schema/system/ui/page.py +1 -1
  701. metadata/generated/schema/system/ui/tab.py +1 -1
  702. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  703. metadata/generated/schema/system/validationResponse.py +1 -1
  704. metadata/generated/schema/tests/__init__.py +1 -1
  705. metadata/generated/schema/tests/assigned.py +1 -1
  706. metadata/generated/schema/tests/basic.py +20 -20
  707. metadata/generated/schema/tests/customMetric.py +1 -1
  708. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  709. metadata/generated/schema/tests/resolved.py +1 -1
  710. metadata/generated/schema/tests/testCase.py +1 -1
  711. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  712. metadata/generated/schema/tests/testDefinition.py +1 -1
  713. metadata/generated/schema/tests/testSuite.py +1 -1
  714. metadata/generated/schema/type/__init__.py +1 -1
  715. metadata/generated/schema/type/apiSchema.py +1 -1
  716. metadata/generated/schema/type/assetCertification.py +1 -1
  717. metadata/generated/schema/type/auditLog.py +1 -1
  718. metadata/generated/schema/type/basic.py +1 -1
  719. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  720. metadata/generated/schema/type/changeEvent.py +1 -1
  721. metadata/generated/schema/type/changeEventType.py +1 -1
  722. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  723. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  724. metadata/generated/schema/type/contractExecutionStatus.py +1 -1
  725. metadata/generated/schema/type/csvDocumentation.py +1 -1
  726. metadata/generated/schema/type/csvErrorType.py +1 -1
  727. metadata/generated/schema/type/csvFile.py +1 -1
  728. metadata/generated/schema/type/csvImportResult.py +1 -1
  729. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  730. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  731. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  732. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  733. metadata/generated/schema/type/customProperty.py +1 -1
  734. metadata/generated/schema/type/dailyCount.py +1 -1
  735. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  736. metadata/generated/schema/type/entityHierarchy.py +1 -1
  737. metadata/generated/schema/type/entityHistory.py +1 -1
  738. metadata/generated/schema/type/entityLineage.py +1 -1
  739. metadata/generated/schema/type/entityReference.py +1 -1
  740. metadata/generated/schema/type/entityReferenceList.py +1 -1
  741. metadata/generated/schema/type/entityRelationship/__init__.py +1 -1
  742. metadata/generated/schema/type/entityRelationship/nodeInformation.py +1 -1
  743. metadata/generated/schema/type/entityUsage.py +1 -1
  744. metadata/generated/schema/type/filterPattern.py +1 -1
  745. metadata/generated/schema/type/function.py +1 -1
  746. metadata/generated/schema/type/include.py +1 -1
  747. metadata/generated/schema/type/jdbcConnection.py +1 -1
  748. metadata/generated/schema/type/layerPaging.py +1 -1
  749. metadata/generated/schema/type/lifeCycle.py +1 -1
  750. metadata/generated/schema/type/paging.py +1 -1
  751. metadata/generated/schema/type/personaPreferences.py +1 -1
  752. metadata/generated/schema/type/profile.py +1 -1
  753. metadata/generated/schema/type/queryParserData.py +1 -1
  754. metadata/generated/schema/type/reaction.py +1 -1
  755. metadata/generated/schema/type/schedule.py +1 -1
  756. metadata/generated/schema/type/schema.py +1 -1
  757. metadata/generated/schema/type/tableQuery.py +1 -1
  758. metadata/generated/schema/type/tableUsageCount.py +1 -1
  759. metadata/generated/schema/type/tagLabel.py +1 -1
  760. metadata/generated/schema/type/usageDetails.py +1 -1
  761. metadata/generated/schema/type/usageRequest.py +1 -1
  762. metadata/generated/schema/type/votes.py +1 -1
  763. metadata/ingestion/lineage/sql_lineage.py +10 -3
  764. metadata/ingestion/source/database/oracle/connection.py +162 -106
  765. metadata/ingestion/source/database/oracle/service_spec.py +2 -0
  766. metadata/ingestion/source/database/saphana/cdata_parser.py +151 -48
  767. metadata/ingestion/source/database/unitycatalog/lineage.py +33 -20
  768. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +18 -0
  769. metadata/profiler/interface/sqlalchemy/unity_catalog/profiler_interface.py +16 -2
  770. metadata/profiler/metrics/system/databricks/system.py +1 -1
  771. metadata/sampler/sqlalchemy/databricks/sampler.py +13 -1
  772. metadata/sampler/sqlalchemy/unitycatalog/sampler.py +6 -39
  773. metadata/utils/bigquery_utils.py +7 -4
  774. metadata/utils/logger.py +2 -0
  775. {openmetadata_ingestion-1.9.3.0.dist-info → openmetadata_ingestion-1.9.5.0.dist-info}/METADATA +533 -533
  776. {openmetadata_ingestion-1.9.3.0.dist-info → openmetadata_ingestion-1.9.5.0.dist-info}/RECORD +780 -780
  777. {openmetadata_ingestion-1.9.3.0.dist-info → openmetadata_ingestion-1.9.5.0.dist-info}/LICENSE +0 -0
  778. {openmetadata_ingestion-1.9.3.0.dist-info → openmetadata_ingestion-1.9.5.0.dist-info}/WHEEL +0 -0
  779. {openmetadata_ingestion-1.9.3.0.dist-info → openmetadata_ingestion-1.9.5.0.dist-info}/entry_points.txt +0 -0
  780. {openmetadata_ingestion-1.9.3.0.dist-info → openmetadata_ingestion-1.9.5.0.dist-info}/top_level.txt +0 -0
@@ -105,6 +105,7 @@ class CDATAKeys(Enum):
105
105
  BASE_MEASURES = "baseMeasures"
106
106
  MEASURE = "measure"
107
107
  MEASURE_MAPPING = "measureMapping"
108
+ CALCULATED_MEASURES = "calculatedMeasures"
108
109
  PRIVATE_MEASURE_GROUP = "privateMeasureGroup"
109
110
  LOGICAL_MODEL = "logicalModel"
110
111
  DATA_SOURCES = "dataSources"
@@ -136,6 +137,9 @@ class DataSourceMapping(BaseModel):
136
137
  parents: Annotated[
137
138
  List[ParentSource], Field(..., description="Parent Sources for a target col")
138
139
  ]
140
+ formula: Annotated[
141
+ Optional[str], Field(None, description="Formula used to derive the column")
142
+ ]
139
143
 
140
144
 
141
145
  class DataSource(BaseModel):
@@ -372,10 +376,10 @@ def _get_column_datasources(
372
376
 
373
377
  def _get_column_datasources_with_names(
374
378
  entry: ET.Element, datasource_map: Optional[DataSourceMap] = None
375
- ) -> List[Tuple[DataSource, str]]:
379
+ ) -> List[Tuple[DataSource, str, Optional[str]]]:
376
380
  """
377
381
  Get the DataSource and the actual source column name after traversal.
378
- Returns a list of tuples (DataSource, column_name).
382
+ Returns a list of tuples (DataSource, column_name, formula).
379
383
  """
380
384
  if (
381
385
  datasource_map
@@ -387,6 +391,7 @@ def _get_column_datasources_with_names(
387
391
  ds_origin_list=[],
388
392
  current_ds=datasource_map[entry.get(CDATAKeys.COLUMN_OBJECT_NAME.value)],
389
393
  datasource_map=datasource_map,
394
+ formula=None,
390
395
  )
391
396
  return ds_col_pairs
392
397
 
@@ -399,6 +404,7 @@ def _get_column_datasources_with_names(
399
404
  source_type=ViewType.DATA_BASE_TABLE,
400
405
  ),
401
406
  entry.get(CDATAKeys.COLUMN_NAME.value),
407
+ None, # No formula for direct table sources
402
408
  )
403
409
  ]
404
410
 
@@ -441,7 +447,7 @@ def _traverse_ds(
441
447
  else:
442
448
  logger.info(
443
449
  f"Can't find mapping for column [{current_column}] in [{current_ds}]. "
444
- f"We still have to implement `calculatedViewAttributes`."
450
+ f"This might be a constant or derived column."
445
451
  )
446
452
 
447
453
  return ds_origin_list
@@ -449,19 +455,20 @@ def _traverse_ds(
449
455
 
450
456
  def _traverse_ds_with_columns(
451
457
  current_column: str,
452
- ds_origin_list: List[Tuple[DataSource, str]],
458
+ ds_origin_list: List[Tuple[DataSource, str, Optional[str]]],
453
459
  current_ds: DataSource,
454
460
  datasource_map: Optional[DataSourceMap],
455
- ) -> List[Tuple[DataSource, str]]:
461
+ formula: Optional[str] = None,
462
+ ) -> List[Tuple[DataSource, str, Optional[str]]]:
456
463
  """
457
464
  Traverse the ds dict jumping from target -> source columns and getting the right parent.
458
465
  We keep inspecting current datasources and will append to the origin list the ones
459
- that are not LOGICAL, along with the final column name.
460
- Returns a list of tuples (DataSource, column_name).
466
+ that are not LOGICAL, along with the final column name and formula.
467
+ Returns a list of tuples (DataSource, column_name, formula).
461
468
  """
462
469
  if current_ds.source_type != ViewType.LOGICAL:
463
- # This is a final datasource, append it with the current column name
464
- ds_origin_list.append((current_ds, current_column))
470
+ # This is a final datasource, append it with the current column name and formula
471
+ ds_origin_list.append((current_ds, current_column, formula))
465
472
 
466
473
  else:
467
474
  # Based on our current column, find the parents from the mappings in the current_ds
@@ -470,6 +477,10 @@ def _traverse_ds_with_columns(
470
477
  )
471
478
 
472
479
  if current_ds_mapping:
480
+ # Use this layer's formula if we don't have one yet
481
+ if current_ds_mapping.formula and not formula:
482
+ formula = current_ds_mapping.formula
483
+
473
484
  for parent in current_ds_mapping.parents:
474
485
  parent_ds = datasource_map.get(parent.parent)
475
486
  if not parent_ds:
@@ -484,17 +495,44 @@ def _traverse_ds_with_columns(
484
495
  ds_origin_list=ds_origin_list,
485
496
  current_ds=parent_ds,
486
497
  datasource_map=datasource_map,
498
+ formula=formula,
487
499
  )
488
500
  else:
489
- # Current column not in mapping. This can happen for calculated view attributes
490
501
  logger.info(
491
502
  f"Can't find mapping for column [{current_column}] in [{current_ds}]. "
492
- f"We still have to implement `calculatedViewAttributes`."
503
+ f"This might be a constant or derived column."
493
504
  )
494
505
 
495
506
  return ds_origin_list
496
507
 
497
508
 
509
+ def _get_formula_from_logical_mapping(
510
+ entry: Optional[ET.Element], datasource_map: Optional[DataSourceMap]
511
+ ) -> Optional[str]:
512
+ """Extract formula from logical datasource mapping if it exists."""
513
+ if not entry or not datasource_map:
514
+ return None
515
+
516
+ column_object_name = entry.get(CDATAKeys.COLUMN_OBJECT_NAME.value)
517
+ column_name = entry.get(CDATAKeys.COLUMN_NAME.value)
518
+
519
+ if not column_object_name or not column_name:
520
+ return None
521
+
522
+ datasource = datasource_map.get(column_object_name)
523
+ if not datasource:
524
+ return None
525
+
526
+ if datasource.source_type != ViewType.LOGICAL or not datasource.mapping:
527
+ return None
528
+
529
+ mapping = datasource.mapping.get(column_name)
530
+ if not mapping:
531
+ return None
532
+
533
+ return mapping.formula
534
+
535
+
498
536
  def _read_attributes(
499
537
  tree: ET.Element, ns: dict, datasource_map: Optional[DataSourceMap] = None
500
538
  ) -> ParsedLineage:
@@ -506,8 +544,9 @@ def _read_attributes(
506
544
 
507
545
  for attribute in attribute_list.findall(CDATAKeys.ATTRIBUTE.value, ns):
508
546
  key_mapping = attribute.find(CDATAKeys.KEY_MAPPING.value, ns)
547
+ target_name = attribute.get(CDATAKeys.ID.value)
509
548
 
510
- # Get the actual source datasources and their column names
549
+ # Get the actual source datasources, column names, and formulas
511
550
  data_sources_with_columns = _get_column_datasources_with_names(
512
551
  entry=key_mapping, datasource_map=datasource_map
513
552
  )
@@ -517,7 +556,8 @@ def _read_attributes(
517
556
  ColumnMapping(
518
557
  data_source=ds_info[0], # The datasource
519
558
  sources=[ds_info[1]], # The actual source column name
520
- target=attribute.get(CDATAKeys.ID.value),
559
+ target=target_name,
560
+ formula=ds_info[2], # Formula from traversal (if any)
521
561
  )
522
562
  for ds_info in data_sources_with_columns
523
563
  ]
@@ -541,16 +581,39 @@ def _read_calculated_attributes(
541
581
  return lineage
542
582
 
543
583
  for calculated_attr in calculated_attrs.findall(key.value, ns):
544
- formula = (
545
- calculated_attr.find(CDATAKeys.KEY_CALCULATION.value, ns)
546
- .find(CDATAKeys.FORMULA.value, ns)
547
- .text
548
- )
549
- lineage += _explode_formula(
550
- target=calculated_attr.get(CDATAKeys.ID.value),
551
- formula=formula,
552
- base_lineage=base_lineage,
553
- )
584
+ key_calc = calculated_attr.find(CDATAKeys.KEY_CALCULATION.value, ns)
585
+ if key_calc is not None:
586
+ formula_elem = key_calc.find(CDATAKeys.FORMULA.value, ns)
587
+ if formula_elem is not None and formula_elem.text:
588
+ lineage += _explode_formula(
589
+ target=calculated_attr.get(CDATAKeys.ID.value),
590
+ formula=formula_elem.text,
591
+ base_lineage=base_lineage,
592
+ )
593
+
594
+ return lineage
595
+
596
+
597
+ def _read_calculated_measures(
598
+ tree: ET.Element,
599
+ ns: dict,
600
+ base_lineage: ParsedLineage,
601
+ ) -> ParsedLineage:
602
+ """Compute the lineage based on the calculated measures"""
603
+ lineage = ParsedLineage()
604
+
605
+ calculated_measures = tree.find(CDATAKeys.CALCULATED_MEASURES.value, ns)
606
+ if not calculated_measures:
607
+ return lineage
608
+
609
+ for measure in calculated_measures.findall(CDATAKeys.MEASURE.value, ns):
610
+ formula_elem = measure.find(CDATAKeys.FORMULA.value, ns)
611
+ if formula_elem is not None and formula_elem.text:
612
+ lineage += _explode_formula(
613
+ target=measure.get(CDATAKeys.ID.value),
614
+ formula=formula_elem.text,
615
+ base_lineage=base_lineage,
616
+ )
554
617
 
555
618
  return lineage
556
619
 
@@ -573,8 +636,9 @@ def _read_base_measures(
573
636
 
574
637
  for measure in base_measures.findall(CDATAKeys.MEASURE.value, ns):
575
638
  measure_mapping = measure.find(CDATAKeys.MEASURE_MAPPING.value, ns)
639
+ target_name = measure.get(CDATAKeys.ID.value)
576
640
 
577
- # Get the actual source datasources and their column names
641
+ # Get the actual source datasources, column names, and formulas
578
642
  data_sources_with_columns = _get_column_datasources_with_names(
579
643
  entry=measure_mapping, datasource_map=datasource_map
580
644
  )
@@ -584,7 +648,8 @@ def _read_base_measures(
584
648
  ColumnMapping(
585
649
  data_source=ds_info[0], # The datasource
586
650
  sources=[ds_info[1]], # The actual source column name
587
- target=measure.get(CDATAKeys.ID.value),
651
+ target=target_name,
652
+ formula=ds_info[2], # Formula from traversal (if any)
588
653
  )
589
654
  for ds_info in data_sources_with_columns
590
655
  ]
@@ -605,10 +670,16 @@ def _explode_formula(
605
670
  Returns:
606
671
  Parsed Lineage from the formula
607
672
  """
608
- column_ds = {
609
- match.group(1): base_lineage.find_target(match.group(1)).data_source
610
- for match in FORMULA_PATTERN.finditer(formula)
611
- }
673
+ column_ds = {}
674
+ for match in FORMULA_PATTERN.finditer(formula):
675
+ col_name = match.group(1)
676
+ mapping = base_lineage.find_target(col_name)
677
+ if mapping:
678
+ column_ds[col_name] = mapping.data_source
679
+
680
+ # If no columns found in base_lineage, it might be a constant formula
681
+ if not column_ds:
682
+ return ParsedLineage()
612
683
 
613
684
  # Group every datasource (key) with a list of the involved columns (values)
614
685
  ds_columns = defaultdict(list)
@@ -694,17 +765,42 @@ def _(cdata: str) -> ParsedLineage:
694
765
  attribute_lineage = _read_attributes(
695
766
  tree=logical_model, ns=ns, datasource_map=datasource_map
696
767
  )
697
- calculated_attrs_lineage = _read_calculated_attributes(
768
+
769
+ base_measure_lineage = _read_base_measures(
770
+ tree=logical_model, ns=ns, datasource_map=datasource_map
771
+ )
772
+
773
+ # Combine base attributes and measures for calculated columns
774
+ combined_base_lineage = attribute_lineage + base_measure_lineage
775
+
776
+ # Read calculated attributes from calculationViews (if they exist)
777
+ cv_calculated_attrs_lineage = _read_calculated_attributes(
698
778
  tree=tree,
699
779
  ns=ns,
700
- base_lineage=attribute_lineage,
780
+ base_lineage=combined_base_lineage,
701
781
  key=CalculatedAttrKey.CALCULATED_VIEW_ATTRIBUTE,
702
782
  )
703
- base_measure_lineage = _read_base_measures(
704
- tree=logical_model, ns=ns, datasource_map=datasource_map
783
+
784
+ # Read calculated attributes from logical model
785
+ logical_calculated_attrs_lineage = _read_calculated_attributes(
786
+ tree=logical_model,
787
+ ns=ns,
788
+ base_lineage=combined_base_lineage,
789
+ key=CalculatedAttrKey.CALCULATED_ATTRIBUTE,
705
790
  )
706
791
 
707
- return attribute_lineage + calculated_attrs_lineage + base_measure_lineage
792
+ # Read calculated measures from logical model
793
+ calculated_measures_lineage = _read_calculated_measures(
794
+ tree=logical_model, ns=ns, base_lineage=combined_base_lineage
795
+ )
796
+
797
+ return (
798
+ attribute_lineage
799
+ + cv_calculated_attrs_lineage
800
+ + logical_calculated_attrs_lineage
801
+ + base_measure_lineage
802
+ + calculated_measures_lineage
803
+ )
708
804
 
709
805
 
710
806
  def _parse_cv_data_sources(tree: ET.Element, ns: dict) -> DataSourceMap:
@@ -812,11 +908,13 @@ def _build_mappings(calculation_view: ET.Element, ns: dict) -> List[DataSourceMa
812
908
  """
813
909
 
814
910
  input_mappings = _build_input_mappings(calculation_view=calculation_view, ns=ns)
815
- # calculated_view_attrs = _build_cv_attributes(
816
- # calculation_view=calculation_view, ns=ns, input_mappings=input_mappings
817
- # )
911
+ calculated_view_attrs = _build_cv_attributes(
912
+ calculation_view=calculation_view, ns=ns, input_mappings=input_mappings
913
+ )
818
914
 
819
- return input_mappings
915
+ # Combine input mappings and calculated view attributes
916
+ all_mappings = input_mappings + calculated_view_attrs
917
+ return all_mappings
820
918
 
821
919
 
822
920
  def _build_input_mappings(
@@ -875,6 +973,8 @@ def _build_cv_attributes(
875
973
  if view_attrs is None:
876
974
  return mappings
877
975
 
976
+ cv_id = calculation_view.get(CDATAKeys.ID.value)
977
+
878
978
  for view_attr in view_attrs.findall(CDATAKeys.CALCULATION_VIEW_ATTRIBUTE.value, ns):
879
979
  formula = (
880
980
  view_attr.find(CDATAKeys.FORMULA.value, ns).text
@@ -886,25 +986,28 @@ def _build_cv_attributes(
886
986
  continue
887
987
 
888
988
  involved_columns = FORMULA_PATTERN.findall(formula)
989
+ # For calculated columns, all source columns should come from the same calculation view
990
+ # where the formula is defined
991
+ parents = []
889
992
  for col in involved_columns:
890
- # Find the mapping for the involved column
891
- mapping = next(
892
- (mapping for mapping in input_mappings if mapping.target == col), None
893
- )
894
- if not mapping:
895
- logger.debug(
896
- f"Can't find mapping for column [{col}] in [{input_mappings}]"
993
+ # The source columns for the formula are in the same calculation view
994
+ parents.append(
995
+ ParentSource(
996
+ source=col,
997
+ parent=cv_id, # The parent is the current calculation view
897
998
  )
898
- continue
999
+ )
899
1000
 
1001
+ if parents:
900
1002
  mappings.append(
901
1003
  DataSourceMapping(
902
1004
  target=view_attr.get(CDATAKeys.ID.value),
903
- parents=mapping.parents,
1005
+ parents=parents,
1006
+ formula=formula,
904
1007
  )
905
1008
  )
906
1009
 
907
- return _group_mappings(mappings)
1010
+ return mappings
908
1011
 
909
1012
 
910
1013
  def _group_mappings(mappings: List[DataSourceMapping]) -> List[DataSourceMapping]:
@@ -93,29 +93,36 @@ class UnitycatalogLineageSource(Source):
93
93
  def _get_lineage_details(
94
94
  self, from_table: Table, to_table: Table, databricks_table_fqn: str
95
95
  ) -> Optional[LineageDetails]:
96
- col_lineage = []
97
- for column in to_table.columns:
98
- column_streams = self.client.get_column_lineage(
99
- databricks_table_fqn, column_name=column.name.root
100
- )
101
- from_columns = []
102
- for col in column_streams.upstream_cols:
103
- col_fqn = get_column_fqn(from_table, col.name)
104
- if col_fqn:
105
- from_columns.append(col_fqn)
106
-
107
- if from_columns:
108
- col_lineage.append(
109
- ColumnLineage(
110
- fromColumns=from_columns,
111
- toColumn=column.fullyQualifiedName.root,
96
+ try:
97
+ col_lineage = []
98
+ for column in to_table.columns:
99
+ column_streams = self.client.get_column_lineage(
100
+ databricks_table_fqn, column_name=column.name.root
101
+ )
102
+ from_columns = []
103
+ for col in column_streams.upstream_cols:
104
+ col_fqn = get_column_fqn(from_table, col.name)
105
+ if col_fqn:
106
+ from_columns.append(col_fqn)
107
+
108
+ if from_columns:
109
+ col_lineage.append(
110
+ ColumnLineage(
111
+ fromColumns=from_columns,
112
+ toColumn=column.fullyQualifiedName.root,
113
+ )
112
114
  )
115
+ if col_lineage:
116
+ return LineageDetails(
117
+ columnsLineage=col_lineage, source=LineageSource.QueryLineage
113
118
  )
114
- if col_lineage:
115
- return LineageDetails(
116
- columnsLineage=col_lineage, source=LineageSource.QueryLineage
119
+ return None
120
+ except Exception as exc:
121
+ logger.debug(
122
+ f"Error computing column lineage for {to_table.fullyQualifiedName.root} - {exc}"
117
123
  )
118
- return None
124
+ logger.debug(traceback.format_exc())
125
+ return None
119
126
 
120
127
  def _handle_upstream_table(
121
128
  self,
@@ -157,6 +164,12 @@ class UnitycatalogLineageSource(Source):
157
164
  )
158
165
  ),
159
166
  )
167
+ else:
168
+ logger.debug(
169
+ f"Unable to find upstream entity for "
170
+ f"{upstream_table.catalog_name}.{upstream_table.schema_name}.{upstream_table.name}"
171
+ f" -> {databricks_table_fqn}"
172
+ )
160
173
  except Exception:
161
174
  logger.debug(
162
175
  "Error while processing lineage for "
@@ -85,10 +85,28 @@ class DatabricksProfilerInterface(SQAProfilerInterface):
85
85
  result += "`.`".join(splitted_result)
86
86
  return result
87
87
 
88
+ def visit_table(self, *args, **kwargs):
89
+ result = super( # pylint: disable=bad-super-call
90
+ HiveCompiler, self
91
+ ).visit_table(*args, **kwargs)
92
+ # Handle table references with hyphens in database/schema names
93
+ # Format: `database`.`schema`.`table` for Unity Catalog/Databricks
94
+ if "." in result and not result.startswith("`"):
95
+ parts = result.split(".")
96
+ quoted_parts = []
97
+ for part in parts:
98
+ if "-" in part and not (part.startswith("`") and part.endswith("`")):
99
+ quoted_parts.append(f"`{part}`")
100
+ else:
101
+ quoted_parts.append(part)
102
+ result = ".".join(quoted_parts)
103
+ return result
104
+
88
105
  def __init__(self, service_connection_config, **kwargs):
89
106
  super().__init__(service_connection_config=service_connection_config, **kwargs)
90
107
  self.set_catalog(self.session)
91
108
  HiveCompiler.visit_column = DatabricksProfilerInterface.visit_column
109
+ HiveCompiler.visit_table = DatabricksProfilerInterface.visit_table
92
110
 
93
111
  def _get_struct_columns(self, columns: List[OMColumn], parent: str):
94
112
  """Get struct columns"""
@@ -14,6 +14,8 @@ Interfaces with database for all database engine
14
14
  supporting sqlalchemy abstraction layer
15
15
  """
16
16
 
17
+ from sqlalchemy import event
18
+ from sqlalchemy.orm import scoped_session, sessionmaker
17
19
 
18
20
  from metadata.ingestion.source.database.databricks.connection import (
19
21
  get_connection as databricks_get_connection,
@@ -26,5 +28,17 @@ from metadata.profiler.interface.sqlalchemy.databricks.profiler_interface import
26
28
  class UnityCatalogProfilerInterface(DatabricksProfilerInterface):
27
29
  def create_session(self):
28
30
  self.connection = databricks_get_connection(self.service_connection_config)
29
- super().create_session()
30
- self.set_catalog(self.session)
31
+
32
+ # Create custom session factory with after_begin event to set catalog
33
+ session_maker = sessionmaker(bind=self.connection)
34
+
35
+ @event.listens_for(session_maker, "after_begin")
36
+ def set_catalog(session, transaction, connection):
37
+ # Safely quote the catalog name to prevent SQL injection
38
+ quoted_catalog = connection.dialect.identifier_preparer.quote(
39
+ self.service_connection_config.catalog
40
+ )
41
+ connection.execute(f"USE CATALOG {quoted_catalog};")
42
+
43
+ self.session_factory = scoped_session(session_maker)
44
+ self.session = self.session_factory()
@@ -24,7 +24,7 @@ SYSTEM_QUERY = textwrap.dedent(
24
24
  '{database}' AS database,
25
25
  '{schema}' AS schema,
26
26
  '{table}' AS table
27
- FROM (DESCRIBE HISTORY {database}.{schema}.{table})
27
+ FROM (DESCRIBE HISTORY `{database}`.`{schema}`.`{table}`)
28
28
  WHERE operation IN ({operations}) AND timestamp > DATEADD(day, -1, CURRENT_TIMESTAMP())
29
29
  """
30
30
  )
@@ -11,7 +11,8 @@
11
11
  """
12
12
  Helper module to handle data sampling for the profiler
13
13
  """
14
- from sqlalchemy import Column, text
14
+ from sqlalchemy import Column, event, text
15
+ from sqlalchemy.orm import scoped_session, sessionmaker
15
16
 
16
17
  from metadata.ingestion.source.database.databricks.connection import (
17
18
  get_connection as databricks_get_connection,
@@ -25,6 +26,17 @@ class DatabricksSamplerInterface(SQASampler):
25
26
  """Initialize with a single Databricks connection"""
26
27
  super().__init__(*args, **kwargs)
27
28
  self.connection = databricks_get_connection(self.service_connection_config)
29
+ session_maker = sessionmaker(bind=self.connection)
30
+
31
+ @event.listens_for(session_maker, "after_begin")
32
+ def set_catalog(session, transaction, connection):
33
+ # Safely quote the catalog name to prevent SQL injection
34
+ quoted_catalog = connection.dialect.identifier_preparer.quote(
35
+ self.service_connection_config.catalog
36
+ )
37
+ connection.execute(f"USE CATALOG {quoted_catalog};")
38
+
39
+ self.session_factory = scoped_session(session_maker)
28
40
 
29
41
  def get_client(self):
30
42
  """client is the session for SQA"""
@@ -14,47 +14,14 @@ Interfaces with database for all database engine
14
14
  supporting sqlalchemy abstraction layer
15
15
  """
16
16
 
17
- from sqlalchemy import Column, text
18
17
 
19
- from metadata.ingestion.source.database.databricks.connection import (
20
- get_connection as databricks_get_connection,
21
- )
22
- from metadata.profiler.orm.types.custom_array import CustomArray
23
- from metadata.sampler.sqlalchemy.sampler import SQASampler
18
+ from metadata.sampler.sqlalchemy.databricks.sampler import DatabricksSamplerInterface
24
19
 
25
20
 
26
- class UnityCatalogSamplerInterface(SQASampler):
21
+ class UnityCatalogSamplerInterface(DatabricksSamplerInterface):
22
+ """
23
+ Unity Catalog Sampler Interface
24
+ """
25
+
27
26
  def __init__(self, *args, **kwargs):
28
- """Initialize with a single Databricks connection"""
29
27
  super().__init__(*args, **kwargs)
30
- self.connection = databricks_get_connection(self.service_connection_config)
31
-
32
- def get_client(self):
33
- """client is the session for SQA"""
34
- client = super().get_client()
35
- self.set_catalog(client)
36
- return client
37
-
38
- def _handle_array_column(self, column: Column) -> bool:
39
- """Check if a column is an array type"""
40
- return isinstance(column.type, CustomArray)
41
-
42
- def _get_slice_expression(self, column: Column):
43
- """Generate SQL expression to slice array elements at query level
44
-
45
- Args:
46
- column_name: Name of the column
47
- max_elements: Maximum number of elements to extract
48
-
49
- Returns:
50
- SQL expression string for array slicing
51
- """
52
- max_elements = self._get_max_array_elements()
53
- return text(
54
- f"""
55
- CASE
56
- WHEN `{column.name}` IS NULL THEN NULL
57
- ELSE slice(`{column.name}`, 1, {max_elements})
58
- END AS `{column._label}`
59
- """
60
- )
@@ -14,9 +14,7 @@ Utils module of BigQuery
14
14
  """
15
15
 
16
16
  from copy import deepcopy
17
- from typing import List, Optional
18
-
19
- from google.cloud import bigquery
17
+ from typing import TYPE_CHECKING, List, Optional
20
18
 
21
19
  from metadata.generated.schema.entity.services.connections.database.bigQueryConnection import (
22
20
  BigQueryConnection,
@@ -34,6 +32,9 @@ from metadata.utils.credentials import (
34
32
  get_gcp_impersonate_credentials,
35
33
  )
36
34
 
35
+ if TYPE_CHECKING:
36
+ from google.cloud import bigquery
37
+
37
38
 
38
39
  def get_bigquery_client(
39
40
  project_id: Optional[str] = None,
@@ -42,7 +43,7 @@ def get_bigquery_client(
42
43
  quota_project_id: Optional[str] = None,
43
44
  scopes: Optional[List[str]] = None,
44
45
  lifetime: Optional[int] = 3600,
45
- ) -> bigquery.Client:
46
+ ) -> "bigquery.Client":
46
47
  """Get a BigQuery client
47
48
 
48
49
  Args:
@@ -65,6 +66,8 @@ def get_bigquery_client(
65
66
  scopes=scopes,
66
67
  lifetime=lifetime,
67
68
  )
69
+ from google.cloud import bigquery # pylint: disable=import-outside-toplevel
70
+
68
71
  return bigquery.Client(
69
72
  credentials=credentials, project=project_id, location=location
70
73
  )
metadata/utils/logger.py CHANGED
@@ -212,6 +212,8 @@ def get_log_name(record: Entity) -> Optional[str]:
212
212
  try:
213
213
  if hasattr(record, "name"):
214
214
  return f"{type(record).__name__} [{getattr(record, 'name').root}]"
215
+ if hasattr(record, "table") and hasattr(record.table, "name"):
216
+ return f"{type(record).__name__} [{record.table.name.root}]"
215
217
  return f"{type(record).__name__} [{record.entity.name.root}]"
216
218
  except Exception:
217
219
  return str(record)