openmetadata-ingestion 1.9.0.0__py3-none-any.whl → 1.10.14.4__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.
Files changed (1115) hide show
  1. airflow_provider_openmetadata/lineage/backend.py +4 -2
  2. airflow_provider_openmetadata/lineage/config/loader.py +8 -1
  3. metadata/cli/common.py +0 -1
  4. metadata/clients/aws_client.py +4 -0
  5. metadata/data_quality/interface/test_suite_interface.py +9 -3
  6. metadata/data_quality/validations/models.py +11 -1
  7. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +39 -13
  8. metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +9 -0
  9. metadata/data_quality/validations/runtime_param_setter/table_custom_sql_query_params_setter.py +31 -0
  10. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +20 -13
  11. metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +132 -3
  12. metadata/data_quality/validations/table/pandas/tableCustomSQLQuery.py +38 -0
  13. metadata/data_quality/validations/table/sqlalchemy/tableCustomSQLQuery.py +320 -0
  14. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +4 -0
  15. metadata/examples/workflows/airbyte.yaml +8 -2
  16. metadata/examples/workflows/bigquery.yaml +1 -0
  17. metadata/examples/workflows/confluent_cdc.yaml +70 -0
  18. metadata/examples/workflows/confluent_cdc_cloud.yaml +86 -0
  19. metadata/examples/workflows/confluent_cdc_local.yaml +120 -0
  20. metadata/examples/workflows/databricks.yaml +9 -1
  21. metadata/examples/workflows/databricks_usage.yaml +7 -1
  22. metadata/examples/workflows/exasol.yaml +25 -0
  23. metadata/examples/workflows/grafana.yaml +115 -0
  24. metadata/examples/workflows/kinesisfirehose.yaml +99 -0
  25. metadata/examples/workflows/metabase.yaml +1 -0
  26. metadata/examples/workflows/my_confluent_cloud.yaml +49 -0
  27. metadata/examples/workflows/unity_catalog.yaml +7 -1
  28. metadata/examples/workflows/unity_catalog_usage.yaml +7 -1
  29. metadata/generated/antlr/EntityLinkLexer.py +419 -353
  30. metadata/generated/schema/analytics/__init__.py +1 -1
  31. metadata/generated/schema/analytics/basic.py +1 -1
  32. metadata/generated/schema/analytics/reportData.py +1 -1
  33. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  34. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  35. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  36. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  37. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  38. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  39. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  40. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  41. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  42. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  43. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  44. metadata/generated/schema/api/__init__.py +1 -1
  45. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  46. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  47. metadata/generated/schema/api/analytics/__init__.py +1 -1
  48. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  49. metadata/generated/schema/api/automations/__init__.py +1 -1
  50. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  51. metadata/generated/schema/api/bulkAssets.py +1 -1
  52. metadata/generated/schema/api/classification/__init__.py +1 -1
  53. metadata/generated/schema/api/classification/createClassification.py +52 -1
  54. metadata/generated/schema/api/classification/createTag.py +29 -2
  55. metadata/generated/schema/api/classification/createTagWithRecognizers.py +67 -0
  56. metadata/generated/schema/api/classification/loadTags.py +1 -1
  57. metadata/generated/schema/api/configuration/__init__.py +3 -0
  58. metadata/generated/schema/api/configuration/rdfConfiguration.py +47 -0
  59. metadata/generated/schema/api/createBot.py +1 -1
  60. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  61. metadata/generated/schema/api/createType.py +1 -1
  62. metadata/generated/schema/api/data/__init__.py +1 -1
  63. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  64. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  65. metadata/generated/schema/api/data/createChart.py +1 -1
  66. metadata/generated/schema/api/data/createContainer.py +1 -1
  67. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  68. metadata/generated/schema/api/data/createDashboard.py +1 -1
  69. metadata/generated/schema/api/data/createDashboardDataModel.py +5 -1
  70. metadata/generated/schema/api/data/createDataContract.py +33 -3
  71. metadata/generated/schema/api/data/createDatabase.py +1 -1
  72. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  73. metadata/generated/schema/api/data/createDirectory.py +1 -1
  74. metadata/generated/schema/api/data/createEntityProfile.py +36 -0
  75. metadata/generated/schema/api/data/createFile.py +1 -1
  76. metadata/generated/schema/api/data/createGlossary.py +1 -1
  77. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  78. metadata/generated/schema/api/data/createMetric.py +12 -1
  79. metadata/generated/schema/api/data/createMlModel.py +1 -1
  80. metadata/generated/schema/api/data/createPipeline.py +1 -1
  81. metadata/generated/schema/api/data/createQuery.py +1 -1
  82. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  83. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  84. metadata/generated/schema/api/data/createSpreadsheet.py +9 -1
  85. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  86. metadata/generated/schema/api/data/createTable.py +1 -1
  87. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  88. metadata/generated/schema/api/data/createTopic.py +1 -1
  89. metadata/generated/schema/api/data/createWorksheet.py +1 -1
  90. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  91. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  92. metadata/generated/schema/api/data/updateColumn.py +1 -1
  93. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  94. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  95. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  96. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  97. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  98. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  99. metadata/generated/schema/api/docStore/__init__.py +1 -1
  100. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  101. metadata/generated/schema/api/domains/__init__.py +1 -1
  102. metadata/generated/schema/api/domains/createDataProduct.py +7 -1
  103. metadata/generated/schema/api/domains/createDomain.py +1 -1
  104. metadata/generated/schema/api/entityRelationship/__init__.py +1 -1
  105. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +1 -1
  106. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +1 -1
  107. metadata/generated/schema/api/entityRelationship/relationshipRef.py +1 -1
  108. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +1 -1
  109. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +1 -1
  110. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +1 -1
  111. metadata/generated/schema/api/events/__init__.py +3 -0
  112. metadata/generated/schema/api/events/createNotificationTemplate.py +61 -0
  113. metadata/generated/schema/api/events/notificationTemplateValidationRequest.py +30 -0
  114. metadata/generated/schema/api/events/notificationTemplateValidationResponse.py +36 -0
  115. metadata/generated/schema/api/feed/__init__.py +1 -1
  116. metadata/generated/schema/api/feed/closeTask.py +1 -1
  117. metadata/generated/schema/api/feed/createPost.py +1 -1
  118. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  119. metadata/generated/schema/api/feed/createThread.py +1 -1
  120. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  121. metadata/generated/schema/api/feed/threadCount.py +1 -1
  122. metadata/generated/schema/api/governance/__init__.py +1 -1
  123. metadata/generated/schema/api/governance/createWorkflowDefinition.py +20 -5
  124. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  125. metadata/generated/schema/api/lineage/__init__.py +1 -1
  126. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  127. metadata/generated/schema/api/lineage/entityCountLineageRequest.py +66 -0
  128. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  129. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  130. metadata/generated/schema/api/lineage/lineagePaginationInfo.py +57 -0
  131. metadata/generated/schema/api/lineage/nodeInformation.py +10 -2
  132. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  133. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  134. metadata/generated/schema/api/mcp/__init__.py +1 -1
  135. metadata/generated/schema/api/mcp/mcpSearchResponse.py +118 -0
  136. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  137. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  138. metadata/generated/schema/api/policies/__init__.py +1 -1
  139. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  140. metadata/generated/schema/api/rdf/__init__.py +3 -0
  141. metadata/generated/schema/api/rdf/sparqlQuery.py +57 -0
  142. metadata/generated/schema/api/rdf/sparqlResponse.py +56 -0
  143. metadata/generated/schema/api/scim/__init__.py +1 -1
  144. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  145. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  146. metadata/generated/schema/api/scim/scimUser.py +1 -1
  147. metadata/generated/schema/api/search/__init__.py +1 -1
  148. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  149. metadata/generated/schema/api/services/__init__.py +1 -1
  150. metadata/generated/schema/api/services/createApiService.py +1 -1
  151. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  152. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  153. metadata/generated/schema/api/services/createDriveService.py +9 -2
  154. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  155. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  156. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  157. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  158. metadata/generated/schema/api/services/createSearchService.py +1 -1
  159. metadata/generated/schema/api/services/createSecurityService.py +1 -1
  160. metadata/generated/schema/api/services/createStorageService.py +1 -1
  161. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  162. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +8 -1
  163. metadata/generated/schema/api/setOwner.py +1 -1
  164. metadata/generated/schema/api/teams/__init__.py +1 -1
  165. metadata/generated/schema/api/teams/createPersona.py +1 -1
  166. metadata/generated/schema/api/teams/createRole.py +1 -1
  167. metadata/generated/schema/api/teams/createTeam.py +1 -1
  168. metadata/generated/schema/api/teams/createUser.py +1 -1
  169. metadata/generated/schema/api/tests/__init__.py +1 -1
  170. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  171. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  172. metadata/generated/schema/api/tests/createTestCase.py +5 -1
  173. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  174. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  175. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  176. metadata/generated/schema/api/tests/createTestSuite.py +5 -1
  177. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +1 -1
  178. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  179. metadata/generated/schema/api/voteRequest.py +1 -1
  180. metadata/generated/schema/auth/__init__.py +1 -1
  181. metadata/generated/schema/auth/basicAuth.py +1 -1
  182. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  183. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  184. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  185. metadata/generated/schema/auth/emailRequest.py +1 -1
  186. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  187. metadata/generated/schema/auth/generateToken.py +1 -1
  188. metadata/generated/schema/auth/jwtAuth.py +1 -1
  189. metadata/generated/schema/auth/loginRequest.py +1 -1
  190. metadata/generated/schema/auth/logoutRequest.py +1 -1
  191. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  192. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  193. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  194. metadata/generated/schema/auth/refreshToken.py +1 -1
  195. metadata/generated/schema/auth/registrationRequest.py +1 -1
  196. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  197. metadata/generated/schema/auth/revokeToken.py +1 -1
  198. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  199. metadata/generated/schema/auth/ssoAuth.py +1 -1
  200. metadata/generated/schema/auth/supportToken.py +1 -1
  201. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  202. metadata/generated/schema/configuration/__init__.py +1 -1
  203. metadata/generated/schema/configuration/aiPlatformConfiguration.py +1 -1
  204. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  205. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  206. metadata/generated/schema/configuration/authConfig.py +1 -1
  207. metadata/generated/schema/configuration/authenticationConfiguration.py +49 -13
  208. metadata/generated/schema/configuration/authorizerConfiguration.py +39 -10
  209. metadata/generated/schema/configuration/cacheConfiguration.py +1 -1
  210. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  211. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  212. metadata/generated/schema/configuration/elasticSearchConfiguration.py +19 -1
  213. metadata/generated/schema/configuration/entityRulesSettings.py +1 -1
  214. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  215. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  216. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  217. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  218. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  219. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  220. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  221. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  222. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  223. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  224. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  225. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  226. metadata/generated/schema/configuration/lineageSettings.py +9 -1
  227. metadata/generated/schema/configuration/logStorageConfiguration.py +105 -0
  228. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  229. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  230. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  231. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  232. metadata/generated/schema/configuration/opsConfig.py +1 -1
  233. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +9 -2
  234. metadata/generated/schema/configuration/profilerConfiguration.py +2 -1
  235. metadata/generated/schema/configuration/searchSettings.py +7 -2
  236. metadata/generated/schema/configuration/securityConfiguration.py +26 -0
  237. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  238. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  239. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  240. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  241. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  242. metadata/generated/schema/configuration/workflowSettings.py +15 -1
  243. metadata/generated/schema/dataInsight/__init__.py +1 -1
  244. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  245. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  246. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  247. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  248. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  249. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  250. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  251. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  252. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  253. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  254. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  255. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  256. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  257. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  258. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  259. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  260. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  261. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  262. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  263. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  264. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  265. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  266. metadata/generated/schema/email/__init__.py +1 -1
  267. metadata/generated/schema/email/emailRequest.py +1 -1
  268. metadata/generated/schema/email/emailTemplate.py +1 -1
  269. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  270. metadata/generated/schema/email/smtpSettings.py +1 -1
  271. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  272. metadata/generated/schema/entity/__init__.py +1 -1
  273. metadata/generated/schema/entity/applications/__init__.py +1 -1
  274. metadata/generated/schema/entity/applications/app.py +15 -1
  275. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  276. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  279. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  280. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  281. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  282. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  283. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  284. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  285. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  286. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +7 -2
  287. metadata/generated/schema/entity/applications/configuration/external/automator/addTermsAction.py +48 -0
  288. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  289. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  290. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  291. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  292. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +1 -1
  293. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  294. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  295. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  296. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  297. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  298. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +6 -2
  299. metadata/generated/schema/entity/applications/configuration/external/automator/removeTermsAction.py +59 -0
  300. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  301. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  302. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +7 -1
  303. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  304. metadata/generated/schema/entity/applications/configuration/external/metadataExporterAppConfig.py +103 -0
  305. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/__init__.py +3 -0
  306. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/bigQueryConnection.py +90 -0
  307. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/databricksConnection.py +101 -0
  308. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/redshiftConnection.py +76 -0
  309. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/snowflakeConnection.py +115 -0
  310. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  311. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  312. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  313. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  314. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  315. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  316. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  317. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +15 -1
  318. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  319. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  320. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  321. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  322. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  323. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  324. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  325. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  326. metadata/generated/schema/entity/applications/createAppRequest.py +9 -2
  327. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  328. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  329. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  330. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +8 -1
  331. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +8 -1
  332. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  333. metadata/generated/schema/entity/automations/__init__.py +1 -1
  334. metadata/generated/schema/entity/automations/queryRunnerRequest.py +46 -0
  335. metadata/generated/schema/entity/automations/response/__init__.py +3 -0
  336. metadata/generated/schema/entity/automations/response/queryRunnerResponse.py +51 -0
  337. metadata/generated/schema/entity/automations/testServiceConnection.py +3 -1
  338. metadata/generated/schema/entity/automations/testSparkEngineConnection.py +31 -0
  339. metadata/generated/schema/entity/automations/workflow.py +8 -2
  340. metadata/generated/schema/entity/bot.py +1 -1
  341. metadata/generated/schema/entity/classification/__init__.py +1 -1
  342. metadata/generated/schema/entity/classification/classification.py +57 -2
  343. metadata/generated/schema/entity/classification/tag.py +41 -3
  344. metadata/generated/schema/entity/data/__init__.py +1 -1
  345. metadata/generated/schema/entity/data/apiCollection.py +8 -1
  346. metadata/generated/schema/entity/data/apiEndpoint.py +8 -1
  347. metadata/generated/schema/entity/data/chart.py +12 -1
  348. metadata/generated/schema/entity/data/container.py +7 -1
  349. metadata/generated/schema/entity/data/dashboard.py +6 -1
  350. metadata/generated/schema/entity/data/dashboardDataModel.py +13 -1
  351. metadata/generated/schema/entity/data/dataContract.py +238 -2
  352. metadata/generated/schema/entity/data/database.py +6 -1
  353. metadata/generated/schema/entity/data/databaseSchema.py +8 -1
  354. metadata/generated/schema/entity/data/directory.py +6 -1
  355. metadata/generated/schema/entity/data/file.py +6 -1
  356. metadata/generated/schema/entity/data/glossary.py +6 -1
  357. metadata/generated/schema/entity/data/glossaryTerm.py +8 -12
  358. metadata/generated/schema/entity/data/metric.py +18 -1
  359. metadata/generated/schema/entity/data/mlmodel.py +6 -1
  360. metadata/generated/schema/entity/data/pipeline.py +136 -2
  361. metadata/generated/schema/entity/data/query.py +6 -1
  362. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  363. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  364. metadata/generated/schema/entity/data/report.py +6 -1
  365. metadata/generated/schema/entity/data/searchIndex.py +8 -1
  366. metadata/generated/schema/entity/data/spreadsheet.py +10 -4
  367. metadata/generated/schema/entity/data/storedProcedure.py +9 -1
  368. metadata/generated/schema/entity/data/table.py +102 -1
  369. metadata/generated/schema/entity/data/topic.py +6 -1
  370. metadata/generated/schema/entity/data/worksheet.py +6 -1
  371. metadata/generated/schema/entity/datacontract/__init__.py +1 -1
  372. metadata/generated/schema/entity/datacontract/dataContractResult.py +1 -1
  373. metadata/generated/schema/entity/datacontract/qualityValidation.py +1 -1
  374. metadata/generated/schema/entity/datacontract/schemaValidation.py +1 -1
  375. metadata/generated/schema/entity/datacontract/semanticsValidation.py +1 -1
  376. metadata/generated/schema/entity/datacontract/slaValidation.py +1 -1
  377. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  378. metadata/generated/schema/entity/docStore/document.py +1 -1
  379. metadata/generated/schema/entity/domains/__init__.py +1 -1
  380. metadata/generated/schema/entity/domains/dataProduct.py +155 -2
  381. metadata/generated/schema/entity/domains/domain.py +1 -1
  382. metadata/generated/schema/entity/events/__init__.py +1 -1
  383. metadata/generated/schema/entity/events/notificationTemplate.py +111 -0
  384. metadata/generated/schema/entity/events/webhook.py +1 -1
  385. metadata/generated/schema/entity/feed/__init__.py +1 -1
  386. metadata/generated/schema/entity/feed/assets.py +1 -1
  387. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  388. metadata/generated/schema/entity/feed/description.py +1 -1
  389. metadata/generated/schema/entity/feed/domain.py +1 -1
  390. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  391. metadata/generated/schema/entity/feed/owner.py +1 -1
  392. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  393. metadata/generated/schema/entity/feed/tag.py +1 -1
  394. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  395. metadata/generated/schema/entity/feed/thread.py +1 -1
  396. metadata/generated/schema/entity/policies/__init__.py +1 -1
  397. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  398. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  399. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  400. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  401. metadata/generated/schema/entity/policies/filters.py +1 -1
  402. metadata/generated/schema/entity/policies/policy.py +1 -1
  403. metadata/generated/schema/entity/services/__init__.py +1 -1
  404. metadata/generated/schema/entity/services/apiService.py +1 -1
  405. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  406. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  407. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  409. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  410. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  411. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  412. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  413. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  414. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +2 -2
  415. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/dashboard/grafanaConnection.py +77 -0
  417. metadata/generated/schema/entity/services/connections/dashboard/hexConnection.py +76 -0
  418. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +13 -2
  420. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +17 -4
  421. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +9 -1
  424. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  426. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  427. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  428. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  429. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  430. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +9 -1
  442. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +2 -2
  456. metadata/generated/schema/entity/services/connections/database/databricks/__init__.py +3 -0
  457. metadata/generated/schema/entity/services/connections/database/databricks/azureAdSetup.py +37 -0
  458. metadata/generated/schema/entity/services/connections/database/databricks/databricksOAuth.py +30 -0
  459. metadata/generated/schema/entity/services/connections/database/databricks/personalAccessToken.py +23 -0
  460. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +14 -6
  461. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  462. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  463. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  464. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  465. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  469. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  470. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  471. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/database/epicConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +4 -1
  477. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +16 -1
  480. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  481. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  485. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  486. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +26 -1
  492. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  495. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  497. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  498. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +25 -6
  499. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  500. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  501. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  505. metadata/generated/schema/entity/services/connections/database/serviceNowConnection.py +90 -0
  506. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  507. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +10 -2
  508. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  509. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  510. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  511. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  512. metadata/generated/schema/entity/services/connections/database/timescaleConnection.py +162 -0
  513. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  514. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +14 -6
  515. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  516. metadata/generated/schema/entity/services/connections/drive/__init__.py +1 -1
  517. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +35 -2
  518. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +34 -1
  519. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +34 -1
  520. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  521. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +2 -2
  522. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  524. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  525. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  526. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  527. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  528. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  529. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  530. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  531. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  532. metadata/generated/schema/entity/services/connections/metadata/collibraConnection.py +73 -0
  533. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  534. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  535. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  536. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +2 -2
  537. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  538. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  539. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  540. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  541. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  542. metadata/generated/schema/entity/services/connections/pipeline/airbyte/__init__.py +3 -0
  543. metadata/generated/schema/entity/services/connections/pipeline/airbyte/basicAuth.py +26 -0
  544. metadata/generated/schema/entity/services/connections/pipeline/airbyte/oauthClientAuth.py +30 -0
  545. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +16 -10
  546. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  547. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  548. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +2 -2
  549. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  550. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +11 -1
  551. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  552. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  553. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  554. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +2 -2
  555. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  556. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  557. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  558. metadata/generated/schema/entity/services/connections/pipeline/kinesisFirehoseConnection.py +58 -0
  559. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  560. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  561. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  562. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  563. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  564. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  565. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  566. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  567. metadata/generated/schema/entity/services/connections/pipeline/snowplowConnection.py +93 -0
  568. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  569. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  570. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  571. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  572. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  573. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  574. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +2 -2
  575. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  576. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  577. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  578. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  579. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  580. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  581. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  582. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  583. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  584. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  585. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  586. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  587. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +2 -2
  588. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  589. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +10 -2
  590. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  591. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  592. metadata/generated/schema/entity/services/dashboardService.py +7 -1
  593. metadata/generated/schema/entity/services/databaseService.py +7 -1
  594. metadata/generated/schema/entity/services/driveService.py +1 -1
  595. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  596. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +8 -1
  597. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  598. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  599. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  600. metadata/generated/schema/entity/services/messagingService.py +1 -1
  601. metadata/generated/schema/entity/services/metadataService.py +4 -1
  602. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  603. metadata/generated/schema/entity/services/pipelineService.py +7 -1
  604. metadata/generated/schema/entity/services/searchService.py +1 -1
  605. metadata/generated/schema/entity/services/securityService.py +1 -1
  606. metadata/generated/schema/entity/services/serviceType.py +1 -1
  607. metadata/generated/schema/entity/services/storageService.py +1 -1
  608. metadata/generated/schema/entity/teams/__init__.py +1 -1
  609. metadata/generated/schema/entity/teams/persona.py +1 -1
  610. metadata/generated/schema/entity/teams/role.py +1 -1
  611. metadata/generated/schema/entity/teams/team.py +1 -1
  612. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  613. metadata/generated/schema/entity/teams/user.py +1 -1
  614. metadata/generated/schema/entity/type.py +1 -1
  615. metadata/generated/schema/entity/utils/__init__.py +1 -1
  616. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  617. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  618. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  619. metadata/generated/schema/events/__init__.py +1 -1
  620. metadata/generated/schema/events/alertMetrics.py +1 -1
  621. metadata/generated/schema/events/api/__init__.py +1 -1
  622. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  623. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  624. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  625. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  626. metadata/generated/schema/events/api/typedEvent.py +1 -1
  627. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  628. metadata/generated/schema/events/eventFilterRule.py +1 -1
  629. metadata/generated/schema/events/eventSubscription.py +16 -1
  630. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  631. metadata/generated/schema/events/failedEvent.py +1 -1
  632. metadata/generated/schema/events/failedEventResponse.py +1 -1
  633. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  634. metadata/generated/schema/events/statusContext.py +1 -1
  635. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  636. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  637. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  638. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  639. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  640. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  641. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +4 -1
  642. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  643. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  644. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  645. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  646. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  647. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/dataCompletenessTask.py +124 -0
  648. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/rollbackEntityTask.py +54 -0
  649. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  650. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityAttributeTask.py +66 -0
  651. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  652. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +11 -12
  653. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  654. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  655. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  656. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  657. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  658. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  659. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  660. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +22 -1
  661. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  662. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +90 -7
  663. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  664. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +80 -7
  665. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  666. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  667. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  668. metadata/generated/schema/jobs/__init__.py +1 -1
  669. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  670. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  671. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  672. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  673. metadata/generated/schema/metadataIngestion/application.py +8 -1
  674. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  675. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  676. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  677. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  678. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  679. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  680. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  681. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  682. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  683. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  684. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  685. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  686. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  687. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  688. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  689. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  690. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  691. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +1 -1
  692. metadata/generated/schema/metadataIngestion/engine/__init__.py +1 -1
  693. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +1 -1
  694. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +1 -1
  695. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  696. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  697. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +29 -2
  698. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  699. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  700. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  701. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  702. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  703. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  704. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  705. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  706. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  707. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  708. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +17 -1
  709. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  710. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  711. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  712. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  713. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  714. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  715. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  716. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  717. metadata/generated/schema/metadataIngestion/workflow.py +8 -1
  718. metadata/generated/schema/monitoring/__init__.py +1 -1
  719. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  720. metadata/generated/schema/scim/__init__.py +1 -1
  721. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  722. metadata/generated/schema/search/__init__.py +1 -1
  723. metadata/generated/schema/search/aggregationRequest.py +1 -1
  724. metadata/generated/schema/search/searchRequest.py +8 -1
  725. metadata/generated/schema/security/__init__.py +1 -1
  726. metadata/generated/schema/security/client/__init__.py +1 -1
  727. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  728. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  729. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  730. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  731. metadata/generated/schema/security/client/oidcClientConfig.py +6 -10
  732. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  733. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  734. metadata/generated/schema/security/client/samlSSOClientConfig.py +6 -6
  735. metadata/generated/schema/security/credentials/__init__.py +1 -1
  736. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  737. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  738. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  739. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  740. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  741. metadata/generated/schema/security/credentials/bitbucketCredentials.py +10 -2
  742. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  743. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  744. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  745. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  746. metadata/generated/schema/security/credentials/githubCredentials.py +10 -2
  747. metadata/generated/schema/security/credentials/gitlabCredentials.py +10 -2
  748. metadata/generated/schema/security/credentials/kubernetesCredentials.py +1 -1
  749. metadata/generated/schema/security/sasl/__init__.py +1 -1
  750. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  751. metadata/generated/schema/security/secrets/__init__.py +1 -1
  752. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  753. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  754. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  755. metadata/generated/schema/security/securityConfiguration.py +1 -1
  756. metadata/generated/schema/security/ssl/__init__.py +1 -1
  757. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  758. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  759. metadata/generated/schema/settings/__init__.py +1 -1
  760. metadata/generated/schema/settings/settings.py +5 -2
  761. metadata/generated/schema/system/__init__.py +1 -1
  762. metadata/generated/schema/system/entityError.py +1 -1
  763. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  764. metadata/generated/schema/system/indexingError.py +1 -1
  765. metadata/generated/schema/system/limitsResponse.py +1 -1
  766. metadata/generated/schema/system/securityValidationResponse.py +62 -0
  767. metadata/generated/schema/system/ui/__init__.py +1 -1
  768. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  769. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  770. metadata/generated/schema/system/ui/page.py +8 -1
  771. metadata/generated/schema/system/ui/tab.py +1 -1
  772. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  773. metadata/generated/schema/system/validationResponse.py +8 -1
  774. metadata/generated/schema/tests/__init__.py +1 -1
  775. metadata/generated/schema/tests/assigned.py +1 -1
  776. metadata/generated/schema/tests/basic.py +20 -20
  777. metadata/generated/schema/tests/customMetric.py +1 -1
  778. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  779. metadata/generated/schema/tests/resolved.py +1 -1
  780. metadata/generated/schema/tests/testCase.py +26 -2
  781. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  782. metadata/generated/schema/tests/testDefinition.py +1 -1
  783. metadata/generated/schema/tests/testSuite.py +12 -1
  784. metadata/generated/schema/type/__init__.py +1 -1
  785. metadata/generated/schema/type/apiSchema.py +1 -1
  786. metadata/generated/schema/type/assetCertification.py +1 -1
  787. metadata/generated/schema/type/auditLog.py +1 -1
  788. metadata/generated/schema/type/basic.py +9 -1
  789. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  790. metadata/generated/schema/type/changeEvent.py +1 -1
  791. metadata/generated/schema/type/changeEventType.py +1 -1
  792. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  793. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  794. metadata/generated/schema/type/contextRecognizer.py +50 -0
  795. metadata/generated/schema/type/contractExecutionStatus.py +1 -1
  796. metadata/generated/schema/type/csvDocumentation.py +1 -1
  797. metadata/generated/schema/type/csvErrorType.py +1 -1
  798. metadata/generated/schema/type/csvFile.py +1 -1
  799. metadata/generated/schema/type/csvImportResult.py +1 -1
  800. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  801. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  802. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  803. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  804. metadata/generated/schema/type/customProperty.py +1 -1
  805. metadata/generated/schema/type/customRecognizer.py +39 -0
  806. metadata/generated/schema/type/dailyCount.py +1 -1
  807. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  808. metadata/generated/schema/type/denyListRecognizer.py +37 -0
  809. metadata/generated/schema/type/entityHierarchy.py +1 -1
  810. metadata/generated/schema/type/entityHistory.py +1 -1
  811. metadata/generated/schema/type/entityLineage.py +1 -1
  812. metadata/generated/schema/type/entityProfile.py +45 -0
  813. metadata/generated/schema/type/entityReference.py +1 -1
  814. metadata/generated/schema/type/entityReferenceList.py +1 -1
  815. metadata/generated/schema/type/entityRelationship/__init__.py +1 -1
  816. metadata/generated/schema/type/entityRelationship/nodeInformation.py +1 -1
  817. metadata/generated/schema/type/entityUsage.py +1 -1
  818. metadata/generated/schema/type/filterPattern.py +1 -1
  819. metadata/generated/schema/type/function.py +1 -1
  820. metadata/generated/schema/type/include.py +1 -1
  821. metadata/generated/schema/type/jdbcConnection.py +1 -1
  822. metadata/generated/schema/type/layerPaging.py +1 -1
  823. metadata/generated/schema/type/lifeCycle.py +1 -1
  824. metadata/generated/schema/type/paging.py +1 -1
  825. metadata/generated/schema/type/patternRecognizer.py +39 -0
  826. metadata/generated/schema/type/personaPreferences.py +1 -1
  827. metadata/generated/schema/type/piiEntity.py +48 -0
  828. metadata/generated/schema/type/predefinedRecognizer.py +85 -0
  829. metadata/generated/schema/type/profile.py +1 -1
  830. metadata/generated/schema/type/queryParserData.py +1 -1
  831. metadata/generated/schema/type/reaction.py +1 -1
  832. metadata/generated/schema/type/recognizer.py +159 -0
  833. metadata/generated/schema/type/recognizerFeedback.py +120 -0
  834. metadata/generated/schema/type/recognizers/__init__.py +3 -0
  835. metadata/generated/schema/type/recognizers/patterns.py +29 -0
  836. metadata/generated/schema/type/recognizers/regexFlags.py +29 -0
  837. metadata/generated/schema/type/schedule.py +1 -1
  838. metadata/generated/schema/type/schema.py +1 -1
  839. metadata/generated/schema/type/status.py +16 -0
  840. metadata/generated/schema/type/tableQuery.py +1 -1
  841. metadata/generated/schema/type/tableUsageCount.py +1 -1
  842. metadata/generated/schema/type/tagLabel.py +8 -1
  843. metadata/generated/schema/type/usageDetails.py +1 -1
  844. metadata/generated/schema/type/usageRequest.py +1 -1
  845. metadata/generated/schema/type/votes.py +1 -1
  846. metadata/great_expectations/action1xx.py +2 -1
  847. metadata/ingestion/api/status.py +6 -1
  848. metadata/ingestion/api/step.py +3 -1
  849. metadata/ingestion/bulksink/metadata_usage.py +19 -2
  850. metadata/ingestion/connections/builders.py +5 -1
  851. metadata/ingestion/lineage/masker.py +5 -0
  852. metadata/ingestion/lineage/models.py +4 -0
  853. metadata/ingestion/lineage/parser.py +56 -4
  854. metadata/ingestion/lineage/sql_lineage.py +243 -103
  855. metadata/ingestion/models/custom_basemodel_validation.py +169 -43
  856. metadata/ingestion/models/custom_pydantic.py +6 -19
  857. metadata/ingestion/models/patch_request.py +2 -0
  858. metadata/ingestion/ometa/client.py +2 -2
  859. metadata/ingestion/ometa/mixins/csv_mixin.py +180 -0
  860. metadata/ingestion/ometa/mixins/domain_mixin.py +48 -0
  861. metadata/ingestion/ometa/mixins/es_mixin.py +7 -1
  862. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +26 -0
  863. metadata/ingestion/ometa/mixins/lineage_mixin.py +1 -1
  864. metadata/ingestion/ometa/mixins/logs_mixin.py +316 -0
  865. metadata/ingestion/ometa/mixins/patch_mixin.py +23 -9
  866. metadata/ingestion/ometa/mixins/profile_mixin.py +77 -0
  867. metadata/ingestion/ometa/mixins/tag_glossary_mixin.py +68 -0
  868. metadata/ingestion/ometa/mixins/tests_mixin.py +1 -1
  869. metadata/ingestion/ometa/mixins/user_mixin.py +57 -16
  870. metadata/ingestion/ometa/ometa_api.py +24 -1
  871. metadata/ingestion/ometa/routes.py +5 -0
  872. metadata/ingestion/source/api/rest/connection.py +12 -6
  873. metadata/ingestion/source/api/rest/metadata.py +227 -37
  874. metadata/ingestion/source/api/rest/parser.py +103 -0
  875. metadata/ingestion/source/dashboard/domodashboard/metadata.py +19 -9
  876. metadata/ingestion/source/dashboard/grafana/__init__.py +10 -0
  877. metadata/ingestion/source/dashboard/grafana/client.py +223 -0
  878. metadata/ingestion/source/dashboard/grafana/connection.py +66 -0
  879. metadata/ingestion/source/dashboard/grafana/metadata.py +476 -0
  880. metadata/ingestion/source/dashboard/grafana/models.py +159 -0
  881. metadata/ingestion/source/dashboard/grafana/service_spec.py +17 -0
  882. metadata/ingestion/source/dashboard/hex/client.py +104 -0
  883. metadata/ingestion/source/dashboard/hex/connection.py +60 -0
  884. metadata/ingestion/source/dashboard/hex/metadata.py +363 -0
  885. metadata/ingestion/source/dashboard/hex/models.py +143 -0
  886. metadata/ingestion/source/dashboard/hex/query_fetcher.py +503 -0
  887. metadata/ingestion/source/dashboard/hex/service_spec.py +18 -0
  888. metadata/ingestion/source/dashboard/hex/warehouse_queries.py +225 -0
  889. metadata/ingestion/source/dashboard/looker/bulk_parser.py +31 -14
  890. metadata/ingestion/source/dashboard/looker/metadata.py +131 -32
  891. metadata/ingestion/source/dashboard/looker/models.py +3 -0
  892. metadata/ingestion/source/dashboard/looker/utils.py +18 -3
  893. metadata/ingestion/source/dashboard/metabase/client.py +33 -11
  894. metadata/ingestion/source/dashboard/metabase/metadata.py +4 -0
  895. metadata/ingestion/source/dashboard/metabase/models.py +49 -1
  896. metadata/ingestion/source/dashboard/microstrategy/metadata.py +1 -1
  897. metadata/ingestion/source/dashboard/powerbi/client.py +18 -1
  898. metadata/ingestion/source/dashboard/powerbi/databricks_parser.py +108 -0
  899. metadata/ingestion/source/dashboard/powerbi/metadata.py +412 -100
  900. metadata/ingestion/source/dashboard/powerbi/models.py +20 -1
  901. metadata/ingestion/source/dashboard/redash/metadata.py +4 -0
  902. metadata/ingestion/source/dashboard/sigma/metadata.py +4 -0
  903. metadata/ingestion/source/dashboard/superset/api_source.py +2 -0
  904. metadata/ingestion/source/dashboard/superset/db_source.py +2 -0
  905. metadata/ingestion/source/dashboard/superset/mixin.py +2 -0
  906. metadata/ingestion/source/dashboard/tableau/client.py +29 -14
  907. metadata/ingestion/source/dashboard/tableau/metadata.py +7 -1
  908. metadata/ingestion/source/database/athena/utils.py +1 -1
  909. metadata/ingestion/source/database/bigquery/connection.py +33 -13
  910. metadata/ingestion/source/database/bigquery/lineage.py +5 -10
  911. metadata/ingestion/source/database/bigquery/metadata.py +39 -34
  912. metadata/ingestion/source/database/bigquery/queries.py +6 -1
  913. metadata/ingestion/source/database/column_type_parser.py +1 -1
  914. metadata/ingestion/source/database/common/data_diff/databricks_base.py +42 -0
  915. metadata/ingestion/source/database/common_pg_mappings.py +7 -0
  916. metadata/ingestion/source/database/databricks/auth.py +99 -0
  917. metadata/ingestion/source/database/databricks/client.py +201 -51
  918. metadata/ingestion/source/database/databricks/connection.py +99 -13
  919. metadata/ingestion/source/database/databricks/data_diff/__init__.py +1 -0
  920. metadata/ingestion/source/database/databricks/data_diff/data_diff.py +12 -0
  921. metadata/ingestion/source/database/databricks/queries.py +86 -16
  922. metadata/ingestion/source/database/databricks/service_spec.py +4 -0
  923. metadata/ingestion/source/database/dbt/constants.py +0 -1
  924. metadata/ingestion/source/database/dbt/metadata.py +47 -21
  925. metadata/ingestion/source/database/dbt/models.py +1 -0
  926. metadata/ingestion/source/database/exasol/connection.py +6 -0
  927. metadata/ingestion/source/database/exasol/lineage.py +24 -0
  928. metadata/ingestion/source/database/exasol/metadata.py +6 -0
  929. metadata/ingestion/source/database/exasol/queries.py +22 -0
  930. metadata/ingestion/source/database/exasol/query_parser.py +33 -0
  931. metadata/ingestion/source/database/exasol/service_spec.py +5 -1
  932. metadata/ingestion/source/database/glue/metadata.py +2 -2
  933. metadata/ingestion/source/database/hive/connection.py +41 -2
  934. metadata/ingestion/source/database/hive/custom_hive_connection.py +195 -0
  935. metadata/ingestion/source/database/iceberg/metadata.py +44 -1
  936. metadata/ingestion/source/database/iceberg/models.py +22 -13
  937. metadata/ingestion/source/database/lineage_processors.py +386 -0
  938. metadata/ingestion/source/database/lineage_source.py +314 -248
  939. metadata/ingestion/source/database/mariadb/metadata.py +86 -1
  940. metadata/ingestion/source/database/mariadb/models.py +36 -0
  941. metadata/ingestion/source/database/mariadb/queries.py +43 -0
  942. metadata/ingestion/source/database/mssql/lineage.py +3 -27
  943. metadata/ingestion/source/database/oracle/connection.py +158 -114
  944. metadata/ingestion/source/database/oracle/lineage.py +3 -10
  945. metadata/ingestion/source/database/oracle/queries.py +43 -6
  946. metadata/ingestion/source/database/oracle/service_spec.py +2 -0
  947. metadata/ingestion/source/database/postgres/connection.py +6 -0
  948. metadata/ingestion/source/database/postgres/queries.py +22 -0
  949. metadata/ingestion/source/database/redshift/lineage.py +4 -10
  950. metadata/ingestion/source/database/redshift/utils.py +2 -1
  951. metadata/ingestion/source/database/salesforce/connection.py +14 -6
  952. metadata/ingestion/source/database/salesforce/metadata.py +14 -16
  953. metadata/ingestion/source/database/sample_data.py +24 -8
  954. metadata/ingestion/source/database/saphana/cdata_parser.py +327 -117
  955. metadata/ingestion/source/database/saphana/lineage.py +15 -2
  956. metadata/ingestion/source/database/saphana/queries.py +7 -0
  957. metadata/ingestion/source/database/snowflake/connection.py +7 -0
  958. metadata/ingestion/source/database/snowflake/constants.py +21 -0
  959. metadata/ingestion/source/database/snowflake/lineage.py +48 -30
  960. metadata/ingestion/source/database/snowflake/metadata.py +176 -22
  961. metadata/ingestion/source/database/snowflake/queries.py +15 -1
  962. metadata/ingestion/source/database/snowflake/query_parser.py +12 -2
  963. metadata/ingestion/source/database/snowflake/usage.py +97 -0
  964. metadata/ingestion/source/database/sql_column_handler.py +11 -3
  965. metadata/ingestion/source/database/stored_procedures_mixin.py +66 -221
  966. metadata/ingestion/source/database/timescale/__init__.py +3 -0
  967. metadata/ingestion/source/database/timescale/connection.py +103 -0
  968. metadata/ingestion/source/database/timescale/lineage.py +124 -0
  969. metadata/ingestion/source/database/timescale/metadata.py +228 -0
  970. metadata/ingestion/source/database/timescale/models.py +60 -0
  971. metadata/ingestion/source/database/timescale/queries.py +96 -0
  972. metadata/ingestion/source/database/timescale/query_parser.py +106 -0
  973. metadata/ingestion/source/database/timescale/service_spec.py +12 -0
  974. metadata/ingestion/source/database/timescale/usage.py +43 -0
  975. metadata/ingestion/source/database/timescale/utils.py +545 -0
  976. metadata/ingestion/source/database/trino/metadata.py +43 -4
  977. metadata/ingestion/source/database/trino/queries.py +4 -0
  978. metadata/ingestion/source/database/unitycatalog/client.py +35 -1
  979. metadata/ingestion/source/database/unitycatalog/connection.py +43 -12
  980. metadata/ingestion/source/database/unitycatalog/data_diff/__init__.py +1 -0
  981. metadata/ingestion/source/database/unitycatalog/data_diff/data_diff.py +12 -0
  982. metadata/ingestion/source/database/unitycatalog/lineage.py +213 -24
  983. metadata/ingestion/source/database/unitycatalog/metadata.py +5 -4
  984. metadata/ingestion/source/database/unitycatalog/models.py +18 -2
  985. metadata/ingestion/source/database/unitycatalog/service_spec.py +4 -0
  986. metadata/ingestion/source/messaging/kafka/connection.py +13 -4
  987. metadata/ingestion/source/metadata/amundsen/client.py +6 -6
  988. metadata/ingestion/source/mlmodel/mlmodel_service.py +75 -1
  989. metadata/ingestion/source/pipeline/airbyte/client.py +142 -4
  990. metadata/ingestion/source/pipeline/airbyte/connection.py +18 -5
  991. metadata/ingestion/source/pipeline/airbyte/metadata.py +102 -2
  992. metadata/ingestion/source/pipeline/airflow/connection.py +8 -6
  993. metadata/ingestion/source/pipeline/airflow/metadata.py +5 -1
  994. metadata/ingestion/source/pipeline/databrickspipeline/connection.py +1 -0
  995. metadata/ingestion/source/pipeline/databrickspipeline/kafka_parser.py +603 -0
  996. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +1019 -90
  997. metadata/ingestion/source/pipeline/databrickspipeline/models.py +19 -3
  998. metadata/ingestion/source/pipeline/dbtcloud/client.py +85 -76
  999. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +135 -84
  1000. metadata/ingestion/source/pipeline/dbtcloud/models.py +4 -0
  1001. metadata/ingestion/source/pipeline/dbtcloud/queries.py +7 -11
  1002. metadata/ingestion/source/pipeline/fivetran/client.py +7 -3
  1003. metadata/ingestion/source/pipeline/fivetran/metadata.py +122 -90
  1004. metadata/ingestion/source/pipeline/kafkaconnect/client.py +388 -107
  1005. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +1678 -72
  1006. metadata/ingestion/source/pipeline/kafkaconnect/models.py +51 -14
  1007. metadata/ingestion/source/pipeline/nifi/metadata.py +62 -5
  1008. metadata/ingestion/source/pipeline/openlineage/metadata.py +6 -2
  1009. metadata/ingestion/source/search/elasticsearch/connection.py +1 -1
  1010. metadata/ingestion/source/storage/gcs/connection.py +15 -5
  1011. metadata/ingestion/source/storage/gcs/metadata.py +285 -26
  1012. metadata/ingestion/source/storage/gcs/models.py +12 -6
  1013. metadata/ingestion/source/storage/s3/metadata.py +46 -11
  1014. metadata/ingestion/source/storage/storage_service.py +2 -0
  1015. metadata/parsers/json_schema_parser.py +41 -1
  1016. metadata/pii/algorithms/classifiers.py +63 -1
  1017. metadata/pii/algorithms/feature_extraction.py +13 -2
  1018. metadata/pii/algorithms/patterns.py +171 -0
  1019. metadata/pii/algorithms/preprocessing.py +19 -13
  1020. metadata/pii/algorithms/presidio_recognizer_factory.py +302 -0
  1021. metadata/pii/algorithms/presidio_utils.py +205 -24
  1022. metadata/pii/algorithms/utils.py +4 -0
  1023. metadata/pii/base_processor.py +2 -1
  1024. metadata/pii/processor.py +8 -5
  1025. metadata/pii/processor_factory.py +28 -0
  1026. metadata/pii/scanners/custom_ner_scanner.py +290 -0
  1027. metadata/pii/tag_analyzer.py +124 -0
  1028. metadata/pii/tag_processor.py +100 -0
  1029. metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +17 -0
  1030. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +24 -0
  1031. metadata/profiler/interface/sqlalchemy/unity_catalog/profiler_interface.py +16 -2
  1032. metadata/profiler/metrics/hybrid/cardinality_distribution.py +232 -0
  1033. metadata/profiler/metrics/hybrid/histogram.py +1 -1
  1034. metadata/profiler/metrics/registry.py +4 -0
  1035. metadata/profiler/metrics/system/bigquery/system.py +4 -1
  1036. metadata/profiler/metrics/system/databricks/system.py +1 -1
  1037. metadata/profiler/orm/converter/converter_registry.py +2 -0
  1038. metadata/profiler/orm/converter/trino/__init__.py +14 -0
  1039. metadata/profiler/orm/converter/trino/converter.py +39 -0
  1040. metadata/profiler/orm/functions/conn_test.py +5 -0
  1041. metadata/profiler/orm/functions/table_metric_computer.py +5 -18
  1042. metadata/profiler/orm/registry.py +7 -0
  1043. metadata/profiler/orm/types/__init__.py +10 -0
  1044. metadata/profiler/orm/types/trino.py +70 -0
  1045. metadata/profiler/processor/core.py +1 -1
  1046. metadata/profiler/processor/default.py +1 -0
  1047. metadata/readers/dataframe/mf4.py +75 -0
  1048. metadata/readers/dataframe/reader_factory.py +3 -0
  1049. metadata/sampler/sqlalchemy/bigquery/sampler.py +17 -0
  1050. metadata/sampler/sqlalchemy/databricks/sampler.py +13 -1
  1051. metadata/sampler/sqlalchemy/unitycatalog/sampler.py +6 -39
  1052. metadata/sdk/__init__.py +188 -0
  1053. metadata/sdk/api/__init__.py +7 -0
  1054. metadata/sdk/api/lineage.py +421 -0
  1055. metadata/sdk/api/search.py +382 -0
  1056. metadata/sdk/client.py +91 -0
  1057. metadata/sdk/config.py +121 -0
  1058. metadata/sdk/entities/__init__.py +64 -0
  1059. metadata/sdk/entities/apicollections.py +19 -0
  1060. metadata/sdk/entities/apiendpoints.py +19 -0
  1061. metadata/sdk/entities/base.py +487 -0
  1062. metadata/sdk/entities/charts.py +17 -0
  1063. metadata/sdk/entities/classifications.py +21 -0
  1064. metadata/sdk/entities/containers.py +17 -0
  1065. metadata/sdk/entities/custom_properties.py +144 -0
  1066. metadata/sdk/entities/dashboard_services.py +18 -0
  1067. metadata/sdk/entities/dashboarddatamodels.py +21 -0
  1068. metadata/sdk/entities/dashboards.py +17 -0
  1069. metadata/sdk/entities/database_services.py +18 -0
  1070. metadata/sdk/entities/databases.py +17 -0
  1071. metadata/sdk/entities/databaseschemas.py +19 -0
  1072. metadata/sdk/entities/datacontracts.py +19 -0
  1073. metadata/sdk/entities/dataproducts.py +19 -0
  1074. metadata/sdk/entities/domains.py +17 -0
  1075. metadata/sdk/entities/glossaries.py +17 -0
  1076. metadata/sdk/entities/glossary_terms.py +18 -0
  1077. metadata/sdk/entities/glossaryterms.py +19 -0
  1078. metadata/sdk/entities/metrics.py +49 -0
  1079. metadata/sdk/entities/mlmodels.py +17 -0
  1080. metadata/sdk/entities/pipelines.py +17 -0
  1081. metadata/sdk/entities/queries.py +17 -0
  1082. metadata/sdk/entities/searchindexes.py +19 -0
  1083. metadata/sdk/entities/storedprocedures.py +19 -0
  1084. metadata/sdk/entities/tables.py +68 -0
  1085. metadata/sdk/entities/tags.py +17 -0
  1086. metadata/sdk/entities/teams.py +17 -0
  1087. metadata/sdk/entities/testcases.py +17 -0
  1088. metadata/sdk/entities/testdefinitions.py +19 -0
  1089. metadata/sdk/entities/testsuites.py +17 -0
  1090. metadata/sdk/entities/users.py +17 -0
  1091. metadata/sdk/examples/builder_end_to_end.py +387 -0
  1092. metadata/sdk/types.py +15 -0
  1093. metadata/utils/bigquery_utils.py +7 -4
  1094. metadata/utils/datalake/datalake_utils.py +121 -0
  1095. metadata/utils/db_utils.py +20 -6
  1096. metadata/utils/deprecation.py +9 -6
  1097. metadata/utils/dispatch.py +6 -3
  1098. metadata/utils/elasticsearch.py +3 -0
  1099. metadata/utils/fqn.py +104 -7
  1100. metadata/utils/helpers.py +18 -1
  1101. metadata/utils/importer.py +3 -2
  1102. metadata/utils/logger.py +12 -0
  1103. metadata/utils/sqa_utils.py +3 -0
  1104. metadata/utils/ssl_manager.py +93 -5
  1105. metadata/utils/streamable_logger.py +569 -0
  1106. metadata/workflow/base.py +49 -2
  1107. metadata/workflow/classification.py +2 -2
  1108. metadata/workflow/workflow_resource_metrics.py +111 -0
  1109. metadata/workflow/workflow_status_mixin.py +1 -1
  1110. {openmetadata_ingestion-1.9.0.0.dist-info → openmetadata_ingestion-1.10.14.4.dist-info}/METADATA +559 -540
  1111. {openmetadata_ingestion-1.9.0.0.dist-info → openmetadata_ingestion-1.10.14.4.dist-info}/RECORD +1115 -950
  1112. {openmetadata_ingestion-1.9.0.0.dist-info → openmetadata_ingestion-1.10.14.4.dist-info}/LICENSE +0 -0
  1113. {openmetadata_ingestion-1.9.0.0.dist-info → openmetadata_ingestion-1.10.14.4.dist-info}/WHEEL +0 -0
  1114. {openmetadata_ingestion-1.9.0.0.dist-info → openmetadata_ingestion-1.10.14.4.dist-info}/entry_points.txt +0 -0
  1115. {openmetadata_ingestion-1.9.0.0.dist-info → openmetadata_ingestion-1.10.14.4.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, Dict, 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
@@ -28,6 +31,7 @@ from metadata.generated.schema.entity.data.storedProcedure import (
28
31
  StoredProcedureType,
29
32
  )
30
33
  from metadata.generated.schema.entity.data.table import Table
34
+ from metadata.generated.schema.entity.services.databaseService import DatabaseService
31
35
  from metadata.generated.schema.entity.services.ingestionPipelines.status import (
32
36
  StackTraceError,
33
37
  )
@@ -48,6 +52,10 @@ from metadata.ingestion.lineage.parser import LINEAGE_PARSING_TIMEOUT, LineagePa
48
52
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
49
53
  from metadata.utils import fqn
50
54
  from metadata.utils.elasticsearch import get_entity_from_es_result
55
+ from metadata.utils.execution_time_tracker import (
56
+ calculate_execution_time,
57
+ calculate_execution_time_generator,
58
+ )
51
59
  from metadata.utils.fqn import build_es_fqn_search_string
52
60
  from metadata.utils.logger import utils_logger
53
61
  from metadata.utils.lru_cache import LRU_CACHE_SIZE, LRUCache
@@ -57,15 +65,23 @@ DEFAULT_SCHEMA_NAME = "<default>"
57
65
  CUTOFF_NODES = 20
58
66
 
59
67
 
68
+ # pylint: disable=too-many-function-args,protected-access
60
69
  def get_column_fqn(table_entity: Table, column: str) -> Optional[str]:
61
70
  """
62
71
  Get fqn of column if exist in table entity
63
72
  """
64
73
  if not table_entity:
65
74
  return None
66
- for tbl_column in table_entity.columns:
67
- if column.lower() == tbl_column.name.root.lower():
68
- return tbl_column.fullyQualifiedName.root
75
+ for tbl_column in table_entity.columns or []:
76
+ try:
77
+ if column.lower() == tbl_column.name.root.lower():
78
+ return tbl_column.fullyQualifiedName.root
79
+ except Exception as e:
80
+ logger.debug(traceback.format_exc())
81
+ logger.debug(
82
+ f"Error getting column FQN for column [{column}] in"
83
+ f"table [{table_entity.fullyQualifiedName}] for column [{tbl_column}]: {e}"
84
+ )
69
85
 
70
86
  return None
71
87
 
@@ -73,72 +89,98 @@ def get_column_fqn(table_entity: Table, column: str) -> Optional[str]:
73
89
  search_cache = LRUCache(LRU_CACHE_SIZE)
74
90
 
75
91
 
92
+ @calculate_execution_time(context="SearchTableEntities")
76
93
  def search_table_entities(
77
94
  metadata: OpenMetadata,
78
- service_name: str,
95
+ service_names: Union[str, List[str]],
79
96
  database: Optional[str],
80
97
  database_schema: Optional[str],
81
98
  table: str,
82
99
  ) -> Optional[List[Table]]:
83
100
  """
84
101
  Method to get table entity from database, database_schema & table name.
85
-
86
- It will try to search first in ES and doing an extra call to get Table entities
87
- with the needed fields like columns for column lineage.
88
-
89
- If the ES result is empty, it will try by running
90
- a request against the API to find the Entity.
102
+ Now supports searching across multiple services (cross-database lineage).
91
103
 
92
104
  Args:
93
105
  metadata: OMeta client
94
- service_name: service name
106
+ service_names: service name or list of service names (current + cross db)
95
107
  database: database name
96
108
  database_schema: schema name
97
109
  table: table name
98
110
 
99
111
  Returns:
100
- A list of Table entities, otherwise, None
112
+ A list of Table entities from the first service where found, otherwise None
101
113
  """
102
- search_tuple = (service_name, database, database_schema, table)
103
- if search_tuple in search_cache:
104
- return search_cache.get(search_tuple)
105
- try:
106
- table_entities: Optional[List[Table]] = []
107
- # search on ES first
108
- fqn_search_string = build_es_fqn_search_string(
109
- database, database_schema, service_name, table
110
- )
111
- es_result_entities = metadata.es_search_from_fqn(
112
- entity_type=Table,
113
- fqn_search_string=fqn_search_string,
114
- )
115
- if es_result_entities:
116
- table_entities = es_result_entities
117
- else:
118
- # build FQNs and search with the API in case ES response is empty
119
- table_fqns = fqn.build(
120
- metadata,
114
+ if isinstance(service_names, str):
115
+ service_names = [service_names]
116
+ for service_name in service_names:
117
+ # Detect the connection type
118
+ try:
119
+ service: DatabaseService = metadata.get_by_name(
120
+ entity=DatabaseService, fqn=service_name
121
+ )
122
+
123
+ conn_type = service.connection.config.type.value.lower()
124
+ logger.debug(
125
+ f"Searching for connection type '{conn_type}' in service '{service.name}'"
126
+ )
127
+
128
+ except Exception:
129
+ conn_type = None
130
+ logger.warning(
131
+ f"Could not determine connection type for service '{service_name}'"
132
+ )
133
+
134
+ # ClickHouse normalization
135
+ if conn_type == "clickhouse" and database:
136
+ logger.debug(
137
+ f"ClickHouse detected. Using database_schema='{database_schema}' as schema, table='{table}'"
138
+ )
139
+ database = None
140
+
141
+ search_tuple = (service_name, database, database_schema, table)
142
+ if search_tuple in search_cache:
143
+ result = search_cache.get(search_tuple)
144
+ if result:
145
+ return result
146
+ try:
147
+ table_entities: Optional[List[Table]] = []
148
+ # search on ES first
149
+ fqn_search_string = build_es_fqn_search_string(
150
+ database, database_schema, service_name, table
151
+ )
152
+ es_result_entities = metadata.es_search_from_fqn(
121
153
  entity_type=Table,
122
- service_name=service_name,
123
- database_name=database,
124
- schema_name=database_schema,
125
- table_name=table,
126
- fetch_multiple_entities=True,
127
- skip_es_search=True,
154
+ fqn_search_string=fqn_search_string,
128
155
  )
129
- for table_fqn in table_fqns or []:
130
- table_entity: Table = metadata.get_by_name(Table, fqn=table_fqn)
131
- if table_entity:
132
- table_entities.append(table_entity)
133
- # added the search tuple to the cache
134
- search_cache.put(search_tuple, table_entities)
135
- return table_entities
136
- except Exception as exc:
137
- logger.debug(traceback.format_exc())
138
- logger.error(
139
- f"Error searching for table entities for service [{service_name}]: {exc}"
140
- )
141
- return None
156
+ if es_result_entities:
157
+ table_entities = es_result_entities
158
+ else:
159
+ # build FQNs and search with the API in case ES response is empty
160
+ table_fqns = fqn.build(
161
+ metadata,
162
+ entity_type=Table,
163
+ service_name=service_name,
164
+ database_name=database,
165
+ schema_name=database_schema,
166
+ table_name=table,
167
+ fetch_multiple_entities=True,
168
+ skip_es_search=True,
169
+ )
170
+ for table_fqn in table_fqns or []:
171
+ table_entity: Table = metadata.get_by_name(Table, fqn=table_fqn)
172
+ if table_entity:
173
+ table_entities.append(table_entity)
174
+ # added the search tuple to the cache
175
+ search_cache.put(search_tuple, table_entities)
176
+ if table_entities:
177
+ return table_entities
178
+ except Exception as exc:
179
+ logger.debug(traceback.format_exc())
180
+ logger.error(
181
+ f"Error searching for table entities for service [{service_name}]: {exc}"
182
+ )
183
+ return None
142
184
 
143
185
 
144
186
  def get_table_fqn_from_query_name(
@@ -166,6 +208,11 @@ def get_table_fqn_from_query_name(
166
208
  empty_list * (3 - len(split_table))
167
209
  ) + split_table
168
210
 
211
+ logger.debug(
212
+ f"[UsageSink] Extracted components before cleanup -> "
213
+ f"database: {database_query}, schema: {schema_query}, table: {table}"
214
+ )
215
+
169
216
  if schema_query == DEFAULT_SCHEMA_NAME:
170
217
  schema_query = None
171
218
 
@@ -236,6 +283,60 @@ def handle_udf_column_lineage(
236
283
  logger.error(f"Error handling UDF column lineage: {exc}")
237
284
 
238
285
 
286
+ @functools.lru_cache(maxsize=1000)
287
+ def _get_udf_parser(
288
+ code: str, dialect: Dialect, timeout_seconds: int
289
+ ) -> Optional[LineageParser]:
290
+ if code:
291
+ return LineageParser(
292
+ f"create table dummy_table_name as {code}",
293
+ dialect=dialect,
294
+ timeout_seconds=timeout_seconds,
295
+ )
296
+ return None
297
+
298
+
299
+ def _replace_target_table(
300
+ parser: LineageParser, expected_table_name: str
301
+ ) -> LineageParser:
302
+ try:
303
+ # Create a new target table instead of modifying the existing one
304
+ # Replace "<default>." with empty string to handle schema prefix correctly
305
+ clean_table_name = expected_table_name.replace(f"{DEFAULT_SCHEMA_NAME}.", "")
306
+ new_table = LineageTable(clean_table_name)
307
+
308
+ # Create a new statement holder with the updated target table
309
+ stmt_holder = parser.parser._stmt_holders[0]
310
+ old_write = list(stmt_holder.write)[0] # Get the original target table
311
+
312
+ # Remove old target table and add new one
313
+ stmt_holder.graph.remove_node(old_write)
314
+ stmt_holder.add_write(new_table)
315
+
316
+ # Rebuild column lineage
317
+ for col_lineage in parser.parser.get_column_lineage():
318
+ if col_lineage[-1].parent == old_write:
319
+ # Create new column with same name but parent is new table
320
+ tgt_col = col_lineage[-1]
321
+ new_tgt_col = Column(tgt_col.raw_name)
322
+ new_tgt_col.parent = new_table
323
+
324
+ # Add the column lineage from source to new target
325
+ stmt_holder.add_column_lineage(col_lineage[-2], new_tgt_col)
326
+ try:
327
+ # remove the old edge
328
+ stmt_holder.graph.remove_edge(col_lineage[-2], tgt_col)
329
+ except Exception as _:
330
+ # if the edge is not present, pass
331
+ pass
332
+
333
+ # Rebuild the SQL holder
334
+ parser.parser._sql_holder = SQLLineageHolder.of(*parser.parser._stmt_holders)
335
+ except Exception as exc:
336
+ logger.debug(traceback.format_exc())
337
+ logger.debug(f"Error replacing target table: {exc}")
338
+
339
+
239
340
  # pylint: disable=too-many-arguments
240
341
  def __process_udf_es_results(
241
342
  metadata: OpenMetadata,
@@ -243,39 +344,47 @@ def __process_udf_es_results(
243
344
  source_table: Union[DataFunction, LineageTable],
244
345
  database_name: Optional[str],
245
346
  schema_name: Optional[str],
246
- service_name: Optional[str],
347
+ service_names: Union[str, List[str]],
247
348
  timeout_seconds: int,
248
349
  column_lineage: dict,
249
350
  es_result_entities: List[StoredProcedure],
250
351
  procedure: Optional[StoredProcedure] = None,
251
352
  ):
353
+ if isinstance(service_names, str):
354
+ service_names = [service_names]
355
+
252
356
  for entity in es_result_entities:
253
357
  if (
254
358
  entity.storedProcedureType == StoredProcedureType.UDF
255
359
  and entity.storedProcedureCode
256
360
  and entity.storedProcedureCode.language == Language.SQL
257
361
  ):
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,
362
+
363
+ lineage_parser = _get_udf_parser(
364
+ entity.storedProcedureCode.code, dialect, timeout_seconds
265
365
  )
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,
366
+ if lineage_parser and lineage_parser.parser:
367
+ expected_table_name = str(source_table).replace(
368
+ f"{DEFAULT_SCHEMA_NAME}.", ""
278
369
  )
370
+ lineage_parser_copy = deepcopy(lineage_parser)
371
+ _replace_target_table(lineage_parser_copy, expected_table_name)
372
+
373
+ handle_udf_column_lineage(
374
+ column_lineage, lineage_parser_copy.column_lineage
375
+ )
376
+ for source in lineage_parser_copy.source_tables or []:
377
+ yield from get_source_table_names(
378
+ metadata,
379
+ dialect,
380
+ source,
381
+ database_name,
382
+ schema_name,
383
+ service_names,
384
+ timeout_seconds,
385
+ column_lineage,
386
+ procedure or entity,
387
+ )
279
388
 
280
389
 
281
390
  def __process_udf_table_names(
@@ -284,19 +393,22 @@ def __process_udf_table_names(
284
393
  source_table: Union[DataFunction, LineageTable],
285
394
  database_name: Optional[str],
286
395
  schema_name: Optional[str],
287
- service_name: Optional[str],
396
+ service_names: Union[str, List[str]],
288
397
  timeout_seconds: int,
289
398
  column_lineage: dict,
290
399
  procedure: Optional[StoredProcedure] = None,
291
400
  ):
401
+ if isinstance(service_names, str):
402
+ service_names = [service_names]
403
+
292
404
  database_query, schema_query, table = get_table_fqn_from_query_name(
293
405
  str(source_table)
294
406
  )
295
407
  function_fqn_string = build_es_fqn_search_string(
296
- database_query or database_name,
297
- schema_query or schema_name,
298
- service_name,
299
- table,
408
+ database_name=database_query or database_name,
409
+ schema_name=schema_query or schema_name,
410
+ service_name=service_names[0], # Use first service for table entity lookup
411
+ table_name=table,
300
412
  )
301
413
  es_result_entities: Optional[List[StoredProcedure]] = metadata.es_search_from_fqn(
302
414
  entity_type=StoredProcedure,
@@ -309,7 +421,7 @@ def __process_udf_table_names(
309
421
  source_table,
310
422
  database_name,
311
423
  schema_name,
312
- service_name,
424
+ service_names,
313
425
  timeout_seconds,
314
426
  column_lineage,
315
427
  es_result_entities,
@@ -317,13 +429,14 @@ def __process_udf_table_names(
317
429
  )
318
430
 
319
431
 
432
+ @calculate_execution_time_generator(context="GetSourceTableNames")
320
433
  def get_source_table_names(
321
434
  metadata: OpenMetadata,
322
435
  dialect: Dialect,
323
436
  source_table: Union[DataFunction, LineageTable],
324
437
  database_name: Optional[str],
325
438
  schema_name: Optional[str],
326
- service_name: Optional[str],
439
+ service_names: Union[str, List[str]],
327
440
  timeout_seconds: int,
328
441
  column_lineage: dict,
329
442
  procedure: Optional[StoredProcedure] = None,
@@ -331,6 +444,9 @@ def get_source_table_names(
331
444
  """
332
445
  Get source table names from DataFunction
333
446
  """
447
+ if isinstance(service_names, str):
448
+ service_names = [service_names]
449
+
334
450
  try:
335
451
  if not isinstance(source_table, DataFunction):
336
452
  yield (
@@ -345,7 +461,7 @@ def get_source_table_names(
345
461
  source_table,
346
462
  database_name,
347
463
  schema_name,
348
- service_name,
464
+ service_names,
349
465
  timeout_seconds,
350
466
  column_lineage,
351
467
  procedure,
@@ -360,7 +476,7 @@ def get_source_table_names(
360
476
 
361
477
  def get_table_entities_from_query(
362
478
  metadata: OpenMetadata,
363
- service_name: str,
479
+ service_names: Union[str, List[str]],
364
480
  database_name: str,
365
481
  database_schema: str,
366
482
  table_name: str,
@@ -371,8 +487,7 @@ def get_table_entities_from_query(
371
487
 
372
488
  If the sys data is incorrect, use the table name ingredients.
373
489
 
374
- :param metadata: OpenMetadata client
375
- :param service_name: Service being ingested.
490
+ :param service_names: Service(s) being ingested (current + cross db)
376
491
  :param database_name: Name of the database informed on db sys results
377
492
  :param database_schema: Name of the schema informed on db sys results
378
493
  :param table_name: Table name extracted from query. Can be `table`, `schema.table` or `db.schema.table`
@@ -386,7 +501,7 @@ def get_table_entities_from_query(
386
501
 
387
502
  table_entities = search_table_entities(
388
503
  metadata=metadata,
389
- service_name=service_name,
504
+ service_names=service_names,
390
505
  database=database_query if database_query else database_name,
391
506
  database_schema=schema_query if schema_query else database_schema,
392
507
  table=table,
@@ -398,7 +513,7 @@ def get_table_entities_from_query(
398
513
  if schema_fallback:
399
514
  table_entities = search_table_entities(
400
515
  metadata=metadata,
401
- service_name=service_name,
516
+ service_names=service_names,
402
517
  database=database_query if database_query else database_name,
403
518
  database_schema=None,
404
519
  table=table,
@@ -520,23 +635,26 @@ def _create_lineage_by_table_name(
520
635
  metadata: OpenMetadata,
521
636
  from_table: str,
522
637
  to_table: str,
523
- service_name: str,
638
+ service_names: Union[str, List[str]],
524
639
  database_name: Optional[str],
525
640
  schema_name: Optional[str],
526
641
  masked_query: str,
527
642
  column_lineage_map: dict,
528
643
  lineage_source: LineageSource = LineageSource.QueryLineage,
529
644
  procedure: Optional[EntityReference] = None,
530
- graph: DiGraph = None,
645
+ graph: Optional[DiGraph] = None,
531
646
  schema_fallback: bool = False,
532
647
  ) -> Iterable[Either[AddLineageRequest]]:
533
648
  """
534
649
  This method is to create a lineage between two tables
535
650
  """
651
+ if isinstance(service_names, str):
652
+ service_names = [service_names]
653
+
536
654
  try:
537
655
  from_table_entities = get_table_entities_from_query(
538
656
  metadata=metadata,
539
- service_name=service_name,
657
+ service_names=service_names,
540
658
  database_name=database_name,
541
659
  database_schema=schema_name,
542
660
  table_name=from_table,
@@ -545,7 +663,7 @@ def _create_lineage_by_table_name(
545
663
 
546
664
  to_table_entities = get_table_entities_from_query(
547
665
  metadata=metadata,
548
- service_name=service_name,
666
+ service_names=service_names,
549
667
  database_name=database_name,
550
668
  database_schema=schema_name,
551
669
  table_name=to_table,
@@ -638,27 +756,41 @@ def populate_column_lineage_map(raw_column_lineage):
638
756
 
639
757
 
640
758
  # pylint: disable=too-many-locals
759
+ @calculate_execution_time_generator(context="GetLineageByQuery")
641
760
  def get_lineage_by_query(
642
761
  metadata: OpenMetadata,
643
- service_name: str,
762
+ service_names: Union[str, List[str]],
644
763
  database_name: Optional[str],
645
764
  schema_name: Optional[str],
646
765
  query: str,
647
766
  dialect: Dialect,
648
767
  timeout_seconds: int = LINEAGE_PARSING_TIMEOUT,
649
768
  lineage_source: LineageSource = LineageSource.QueryLineage,
650
- graph: DiGraph = None,
769
+ graph: Optional[DiGraph] = None,
770
+ lineage_parser: Optional[LineageParser] = None,
651
771
  schema_fallback: bool = False,
772
+ service_name: Optional[str] = None, # backward compatibility for python sdk
652
773
  ) -> Iterable[Either[AddLineageRequest]]:
653
774
  """
654
775
  This method parses the query to get source, target and intermediate table names to create lineage,
655
776
  and returns True if target table is found to create lineage otherwise returns False.
777
+
778
+ Now supports cross-database lineage by accepting a list of service names.
656
779
  """
657
780
  column_lineage = {}
658
781
  query_parsing_failures = QueryParsingFailures()
659
-
782
+ if service_name and isinstance(service_name, str):
783
+ service_names = [service_name]
784
+ logger.warning(
785
+ "Deprecated: service_name is deprecated, use service_names instead"
786
+ )
787
+ if isinstance(service_names, str):
788
+ service_names = [service_names]
660
789
  try:
661
- lineage_parser = LineageParser(query, dialect, timeout_seconds=timeout_seconds)
790
+ if not lineage_parser:
791
+ lineage_parser = LineageParser(
792
+ query, dialect, timeout_seconds=timeout_seconds
793
+ )
662
794
  masked_query = lineage_parser.masked_query
663
795
  logger.debug(f"Running lineage with query: {masked_query or query}")
664
796
 
@@ -673,7 +805,7 @@ def get_lineage_by_query(
673
805
  source_table=source_table,
674
806
  database_name=database_name,
675
807
  schema_name=schema_name,
676
- service_name=service_name,
808
+ service_names=service_names,
677
809
  timeout_seconds=timeout_seconds,
678
810
  column_lineage=column_lineage,
679
811
  ):
@@ -681,7 +813,7 @@ def get_lineage_by_query(
681
813
  metadata,
682
814
  from_table=str(from_table_name),
683
815
  to_table=str(intermediate_table),
684
- service_name=service_name,
816
+ service_names=service_names,
685
817
  database_name=database_name,
686
818
  schema_name=schema_name,
687
819
  masked_query=masked_query,
@@ -696,13 +828,14 @@ def get_lineage_by_query(
696
828
  metadata,
697
829
  from_table=str(intermediate_table),
698
830
  to_table=str(target_table),
699
- service_name=service_name,
831
+ service_names=service_names,
700
832
  database_name=database_name,
701
833
  schema_name=schema_name,
702
834
  masked_query=masked_query,
703
835
  column_lineage_map=column_lineage,
704
836
  lineage_source=lineage_source,
705
837
  schema_fallback=schema_fallback,
838
+ graph=graph,
706
839
  )
707
840
  if not lineage_parser.intermediate_tables:
708
841
  for target_table in lineage_parser.target_tables:
@@ -713,7 +846,7 @@ def get_lineage_by_query(
713
846
  source_table=source_table,
714
847
  database_name=database_name,
715
848
  schema_name=schema_name,
716
- service_name=service_name,
849
+ service_names=service_names,
717
850
  timeout_seconds=timeout_seconds,
718
851
  column_lineage=column_lineage,
719
852
  ):
@@ -721,7 +854,7 @@ def get_lineage_by_query(
721
854
  metadata,
722
855
  from_table=str(from_table_name),
723
856
  to_table=str(target_table),
724
- service_name=service_name,
857
+ service_names=service_names,
725
858
  database_name=database_name,
726
859
  schema_name=schema_name,
727
860
  masked_query=masked_query,
@@ -742,31 +875,38 @@ def get_lineage_by_query(
742
875
  yield Either(
743
876
  left=StackTraceError(
744
877
  name="Lineage",
745
- error=f"Ingesting lineage failed for service [{service_name}]: {exc}",
878
+ error=f"Ingesting lineage failed for service(s) [{service_names}]: {exc}",
746
879
  stackTrace=traceback.format_exc(),
747
880
  )
748
881
  )
749
882
 
750
883
 
884
+ @calculate_execution_time_generator(context="GetLineageViaTableEntity")
751
885
  def get_lineage_via_table_entity(
752
886
  metadata: OpenMetadata,
753
887
  table_entity: Table,
754
888
  database_name: str,
755
889
  schema_name: str,
756
- service_name: str,
890
+ service_names: Union[str, List[str]],
757
891
  query: str,
758
892
  dialect: Dialect,
759
893
  timeout_seconds: int = LINEAGE_PARSING_TIMEOUT,
760
894
  lineage_source: LineageSource = LineageSource.QueryLineage,
761
- graph: DiGraph = None,
895
+ graph: Optional[DiGraph] = None,
896
+ lineage_parser: Optional[LineageParser] = None,
762
897
  schema_fallback: bool = False,
763
898
  ) -> Iterable[Either[AddLineageRequest]]:
764
899
  """Get lineage from table entity"""
765
900
  column_lineage = {}
766
901
  query_parsing_failures = QueryParsingFailures()
767
902
 
903
+ if isinstance(service_names, str):
904
+ service_names = [service_names]
768
905
  try:
769
- lineage_parser = LineageParser(query, dialect, timeout_seconds=timeout_seconds)
906
+ if not lineage_parser:
907
+ lineage_parser = LineageParser(
908
+ query, dialect, timeout_seconds=timeout_seconds
909
+ )
770
910
  masked_query = lineage_parser.masked_query
771
911
  logger.debug(
772
912
  f"Getting lineage via table entity using query: {masked_query or query}"
@@ -780,7 +920,7 @@ def get_lineage_via_table_entity(
780
920
  source_table=from_table_name,
781
921
  database_name=database_name,
782
922
  schema_name=schema_name,
783
- service_name=service_name,
923
+ service_names=service_names,
784
924
  timeout_seconds=timeout_seconds,
785
925
  column_lineage=column_lineage,
786
926
  ):
@@ -788,7 +928,7 @@ def get_lineage_via_table_entity(
788
928
  metadata,
789
929
  from_table=str(source_table),
790
930
  to_table=f"{schema_name}.{to_table_name}",
791
- service_name=service_name,
931
+ service_names=service_names,
792
932
  database_name=database_name,
793
933
  schema_name=schema_name,
794
934
  masked_query=masked_query,
@@ -809,7 +949,7 @@ def get_lineage_via_table_entity(
809
949
  Either(
810
950
  left=StackTraceError(
811
951
  name="Lineage",
812
- error=f"Failed to create view lineage for database [{database_name}] and table [{table_entity}]: {exc}",
952
+ error=f"Failed to create view lineage for database [{database_name}] and table [{table_entity}] with service(s) [{service_names}]: {exc}",
813
953
  stackTrace=traceback.format_exc(),
814
954
  )
815
955
  )