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
@@ -0,0 +1,124 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ TimescaleDB lineage module with continuous aggregate support
14
+ """
15
+
16
+ import traceback
17
+ from typing import Iterable, Optional
18
+
19
+ from metadata.generated.schema.entity.services.connections.database.timescaleConnection import (
20
+ TimescaleConnection,
21
+ )
22
+ from metadata.generated.schema.metadataIngestion.workflow import (
23
+ Source as WorkflowSource,
24
+ )
25
+ from metadata.ingestion.api.steps import InvalidSourceException
26
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
27
+ from metadata.ingestion.source.database.postgres.lineage import PostgresLineageSource
28
+ from metadata.ingestion.source.database.timescale.queries import (
29
+ TIMESCALE_CHECK_EXTENSION,
30
+ TIMESCALE_GET_CONTINUOUS_AGGREGATE_DEFINITIONS,
31
+ )
32
+ from metadata.ingestion.source.models import TableView
33
+ from metadata.utils.logger import ingestion_logger
34
+
35
+ logger = ingestion_logger()
36
+
37
+
38
+ class TimescaleLineageSource(PostgresLineageSource):
39
+ """
40
+ TimescaleDB lineage source that extends PostgreSQL lineage
41
+ to include continuous aggregates (auto-refreshing materialized views)
42
+ """
43
+
44
+ @classmethod
45
+ def create(
46
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
47
+ ):
48
+ """Create TimescaleLineageSource"""
49
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
50
+ connection = config.serviceConnection.root.config
51
+ if not isinstance(connection, (TimescaleConnection)):
52
+ raise InvalidSourceException(
53
+ f"Expected TimescaleConnection, but got {connection}"
54
+ )
55
+ return cls(config, metadata)
56
+
57
+ def __init__(self, config, metadata):
58
+ super().__init__(config, metadata)
59
+ self.timescaledb_installed = False
60
+
61
+ def prepare(self):
62
+ """Check if TimescaleDB extension is installed"""
63
+ super().prepare()
64
+ try:
65
+ result = self.engine.execute(TIMESCALE_CHECK_EXTENSION).first()
66
+ self.timescaledb_installed = (
67
+ result.timescaledb_installed if result else False
68
+ )
69
+ logger.info(
70
+ f"TimescaleDB extension installed for lineage: {self.timescaledb_installed}"
71
+ )
72
+ except Exception as exc:
73
+ logger.warning(f"Could not check TimescaleDB extension: {exc}")
74
+ self.timescaledb_installed = False
75
+
76
+ def view_lineage_producer(self) -> Iterable[TableView]:
77
+ """
78
+ Get view definitions from ES and add continuous aggregates
79
+ """
80
+ # First yield regular views from parent
81
+ yield from super().view_lineage_producer()
82
+
83
+ # Then yield continuous aggregates if TimescaleDB is installed
84
+ if self.timescaledb_installed:
85
+ yield from self._yield_continuous_aggregate_views()
86
+
87
+ def _yield_continuous_aggregate_views(self) -> Iterable[TableView]:
88
+ """
89
+ Get TimescaleDB continuous aggregates as TableView objects.
90
+
91
+ Continuous aggregates are auto-refreshing materialized views that
92
+ provide clear column-level lineage from source hypertables.
93
+
94
+ The view_definition contains the SELECT statement that defines
95
+ the continuous aggregate, which OpenMetadata can parse for
96
+ column-level lineage.
97
+ """
98
+ try:
99
+ results = self.engine.execute(
100
+ TIMESCALE_GET_CONTINUOUS_AGGREGATE_DEFINITIONS
101
+ )
102
+
103
+ for row in results:
104
+ try:
105
+ yield TableView(
106
+ table_name=row.view_name,
107
+ schema_name=row.view_schema,
108
+ db_name=self.service_connection.database,
109
+ view_definition=row.view_definition,
110
+ )
111
+
112
+ logger.debug(
113
+ f"Extracted continuous aggregate view: {row.view_schema}.{row.view_name}"
114
+ )
115
+
116
+ except Exception as exc:
117
+ logger.debug(traceback.format_exc())
118
+ logger.warning(
119
+ f"Failed to process continuous aggregate {row.view_schema}.{row.view_name}: {exc}"
120
+ )
121
+
122
+ except Exception as exc:
123
+ logger.debug(traceback.format_exc())
124
+ logger.warning(f"Failed to extract continuous aggregate views: {exc}")
@@ -0,0 +1,228 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ TimescaleDB source module
14
+ """
15
+ import traceback
16
+ from typing import Iterable, Optional, Tuple
17
+
18
+ from sqlalchemy.engine import Inspector
19
+
20
+ from metadata.generated.schema.entity.data.table import (
21
+ PartitionColumnDetails,
22
+ PartitionIntervalTypes,
23
+ Table,
24
+ TablePartition,
25
+ )
26
+ from metadata.generated.schema.entity.services.connections.database.timescaleConnection import (
27
+ TimescaleConnection,
28
+ )
29
+ from metadata.generated.schema.metadataIngestion.workflow import (
30
+ Source as WorkflowSource,
31
+ )
32
+ from metadata.ingestion.api.models import Either
33
+ from metadata.ingestion.api.steps import InvalidSourceException
34
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
35
+ from metadata.ingestion.source.database.postgres.metadata import PostgresSource
36
+ from metadata.ingestion.source.database.timescale.models import (
37
+ CompressionSettings,
38
+ HypertableInfo,
39
+ )
40
+ from metadata.ingestion.source.database.timescale.queries import (
41
+ TIMESCALE_CHECK_EXTENSION,
42
+ TIMESCALE_GET_COMPRESSION_SETTINGS,
43
+ TIMESCALE_GET_HYPERTABLE_INFO,
44
+ )
45
+ from metadata.utils.logger import ingestion_logger
46
+
47
+ logger = ingestion_logger()
48
+
49
+
50
+ class TimescaleSource(PostgresSource):
51
+ """
52
+ Implements the necessary methods to extract
53
+ Database metadata from TimescaleDB Source
54
+ """
55
+
56
+ def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
57
+ super().__init__(config, metadata)
58
+ self.timescaledb_installed = False
59
+
60
+ @classmethod
61
+ def create(
62
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
63
+ ):
64
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
65
+ connection: TimescaleConnection = config.serviceConnection.root.config
66
+ if not isinstance(connection, TimescaleConnection):
67
+ raise InvalidSourceException(
68
+ f"Expected TimescaleConnection, but got {connection}"
69
+ )
70
+ return cls(config, metadata)
71
+
72
+ def prepare(self):
73
+ """
74
+ Check if TimescaleDB extension is installed
75
+ """
76
+ super().prepare()
77
+ try:
78
+ result = self.engine.execute(TIMESCALE_CHECK_EXTENSION).first()
79
+ if result:
80
+ self.timescaledb_installed = result.timescaledb_installed
81
+ logger.info(
82
+ f"TimescaleDB extension installed: {self.timescaledb_installed}"
83
+ )
84
+ except Exception as exc:
85
+ logger.warning(f"Could not check TimescaleDB extension: {exc}")
86
+ self.timescaledb_installed = False
87
+
88
+ def yield_table(
89
+ self, table_name_and_type: Tuple[str, str]
90
+ ) -> Iterable[Either[Table]]:
91
+ """
92
+ Override to add TimescaleDB-specific metadata
93
+ """
94
+ for either_table in super().yield_table(table_name_and_type):
95
+ if either_table.right and self.timescaledb_installed:
96
+ try:
97
+ self._add_timescale_metadata(either_table.right)
98
+ except Exception as exc:
99
+ logger.debug(traceback.format_exc())
100
+ logger.warning(
101
+ f"Error adding TimescaleDB metadata for table {either_table.right.name}: {exc}"
102
+ )
103
+ yield either_table
104
+
105
+ def _add_timescale_metadata(self, table: Table) -> None:
106
+ """
107
+ Add compression and hypertable metadata to the table
108
+ """
109
+ try:
110
+ schema_name = table.databaseSchema.root
111
+ table_name = table.name.root
112
+
113
+ hypertable = self._get_hypertable_info(table_name, schema_name)
114
+
115
+ if hypertable:
116
+ logger.debug(f"Found hypertable: {schema_name}.{table_name}")
117
+
118
+ table.compressionEnabled = hypertable.compression_enabled
119
+
120
+ if hypertable.compression_enabled:
121
+ compression = self._get_compression_settings(
122
+ table_name, schema_name
123
+ )
124
+
125
+ if compression:
126
+ table.compressionCodec = "TimescaleDB Native"
127
+ table.compressionStrategy = {
128
+ "compressionType": "POLICY_BASED",
129
+ "segmentColumns": compression.segment_by_columns or [],
130
+ "orderColumns": compression.order_by_columns or [],
131
+ }
132
+
133
+ partition_info = self._build_hypertable_partition(hypertable)
134
+ if partition_info:
135
+ table.tablePartition = partition_info
136
+
137
+ except Exception as exc:
138
+ logger.debug(traceback.format_exc())
139
+ logger.warning(
140
+ f"Error processing TimescaleDB metadata for {table.name}: {exc}"
141
+ )
142
+
143
+ def _get_hypertable_info(
144
+ self, table_name: str, schema_name: str
145
+ ) -> Optional[HypertableInfo]:
146
+ """
147
+ Query timescaledb_information.hypertables for metadata
148
+ """
149
+ try:
150
+ result = self.engine.execute(
151
+ TIMESCALE_GET_HYPERTABLE_INFO,
152
+ {"table_name": table_name, "schema_name": schema_name},
153
+ ).first()
154
+
155
+ if result:
156
+ return HypertableInfo.model_validate(dict(result._mapping))
157
+ return None
158
+ except Exception as exc:
159
+ logger.debug(traceback.format_exc())
160
+ logger.debug(
161
+ f"Could not get hypertable info for {schema_name}.{table_name}: {exc}"
162
+ )
163
+ return None
164
+
165
+ def _get_compression_settings(
166
+ self, table_name: str, schema_name: str
167
+ ) -> Optional[CompressionSettings]:
168
+ """
169
+ Query timescaledb_information.compression_settings for compression config
170
+ """
171
+ try:
172
+ result = self.engine.execute(
173
+ TIMESCALE_GET_COMPRESSION_SETTINGS,
174
+ {"table_name": table_name, "schema_name": schema_name},
175
+ ).first()
176
+
177
+ if result:
178
+ return CompressionSettings.model_validate(dict(result._mapping))
179
+ return None
180
+ except Exception as exc:
181
+ logger.debug(traceback.format_exc())
182
+ logger.debug(
183
+ f"Could not get compression settings for {schema_name}.{table_name}: {exc}"
184
+ )
185
+ return None
186
+
187
+ def _build_hypertable_partition(
188
+ self, hypertable: HypertableInfo
189
+ ) -> Optional[TablePartition]:
190
+ """
191
+ Build partition details from hypertable information
192
+ """
193
+ if not hypertable.column_name:
194
+ return None
195
+
196
+ if hypertable.interval_length:
197
+ interval_type = PartitionIntervalTypes.TIME_UNIT
198
+ interval = f"{hypertable.interval_length} microseconds"
199
+ elif hypertable.integer_interval:
200
+ interval_type = PartitionIntervalTypes.INTEGER_RANGE
201
+ interval = str(hypertable.integer_interval)
202
+ else:
203
+ interval_type = PartitionIntervalTypes.COLUMN_VALUE
204
+ interval = None
205
+
206
+ return TablePartition(
207
+ columns=[
208
+ PartitionColumnDetails(
209
+ columnName=hypertable.column_name,
210
+ intervalType=interval_type,
211
+ interval=interval,
212
+ )
213
+ ]
214
+ )
215
+
216
+ def get_table_partition_details(
217
+ self, table_name: str, schema_name: str, inspector: Inspector
218
+ ) -> Tuple[bool, Optional[TablePartition]]:
219
+ """
220
+ Override to check for hypertables first, then fall back to PostgreSQL partitioning
221
+ """
222
+ if self.timescaledb_installed:
223
+ hypertable = self._get_hypertable_info(table_name, schema_name)
224
+ if hypertable:
225
+ partition = self._build_hypertable_partition(hypertable)
226
+ return (True, partition) if partition else (False, None)
227
+
228
+ return super().get_table_partition_details(table_name, schema_name, inspector)
@@ -0,0 +1,60 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ TimescaleDB models for metadata extraction
14
+ """
15
+ from typing import List, Optional
16
+
17
+ from pydantic import BaseModel, Field
18
+
19
+
20
+ class HypertableInfo(BaseModel):
21
+ """Information about a TimescaleDB hypertable"""
22
+
23
+ hypertable_schema: str
24
+ hypertable_name: str
25
+ compression_enabled: bool
26
+ column_name: Optional[str] = None
27
+ interval_length: Optional[int] = None
28
+ integer_interval: Optional[int] = None
29
+ integer_now_func: Optional[str] = None
30
+ num_dimensions: int = 1
31
+
32
+
33
+ class CompressionSettings(BaseModel):
34
+ """Compression configuration for a hypertable"""
35
+
36
+ segment_by_columns: Optional[List[str]] = Field(default_factory=list)
37
+ order_by_columns: Optional[List[str]] = Field(default_factory=list)
38
+
39
+
40
+ class ContinuousAggregateInfo(BaseModel):
41
+ """Information about a continuous aggregate"""
42
+
43
+ view_schema: str
44
+ view_name: str
45
+ view_definition: Optional[str] = None
46
+ compression_enabled: bool = False
47
+ materialized_only: bool = False
48
+ materialization_hypertable_schema: Optional[str] = None
49
+ materialization_hypertable_name: Optional[str] = None
50
+
51
+
52
+ class ChunkInfo(BaseModel):
53
+ """Information about a hypertable chunk"""
54
+
55
+ chunk_schema: str
56
+ chunk_name: str
57
+ range_start: Optional[str] = None
58
+ range_end: Optional[str] = None
59
+ is_compressed: bool = False
60
+ chunk_tablespace: Optional[str] = None
@@ -0,0 +1,96 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ TimescaleDB system view queries
14
+ """
15
+
16
+ TIMESCALE_GET_HYPERTABLE_INFO = """
17
+ SELECT
18
+ ht.hypertable_schema,
19
+ ht.hypertable_name,
20
+ ht.compression_enabled,
21
+ dim.column_name,
22
+ EXTRACT(EPOCH FROM dim.time_interval) * 1000000 as interval_length,
23
+ dim.integer_interval,
24
+ dim.integer_now_func,
25
+ ht.num_dimensions
26
+ FROM timescaledb_information.hypertables ht
27
+ LEFT JOIN timescaledb_information.dimensions dim
28
+ ON ht.hypertable_schema = dim.hypertable_schema
29
+ AND ht.hypertable_name = dim.hypertable_name
30
+ AND dim.dimension_number = 1
31
+ WHERE ht.hypertable_schema = %(schema_name)s
32
+ AND ht.hypertable_name = %(table_name)s
33
+ """
34
+
35
+ TIMESCALE_GET_COMPRESSION_SETTINGS = """
36
+ SELECT
37
+ array_agg(DISTINCT attname ORDER BY attname) FILTER (WHERE segmentby_column_index IS NOT NULL) as segment_by_columns,
38
+ array_agg(DISTINCT attname ORDER BY attname) FILTER (WHERE orderby_column_index IS NOT NULL) as order_by_columns
39
+ FROM timescaledb_information.compression_settings
40
+ WHERE hypertable_schema = %(schema_name)s
41
+ AND hypertable_name = %(table_name)s
42
+ GROUP BY hypertable_schema, hypertable_name
43
+ """
44
+
45
+ TIMESCALE_GET_CONTINUOUS_AGGREGATES = """
46
+ SELECT
47
+ view_schema,
48
+ view_name,
49
+ view_definition,
50
+ compression_enabled,
51
+ materialized_only,
52
+ materialization_hypertable_schema,
53
+ materialization_hypertable_name
54
+ FROM timescaledb_information.continuous_aggregates
55
+ WHERE view_schema = %(schema_name)s
56
+ """
57
+
58
+ TIMESCALE_GET_CHUNK_INFO = """
59
+ SELECT
60
+ chunk_schema,
61
+ chunk_name,
62
+ range_start,
63
+ range_end,
64
+ is_compressed,
65
+ chunk_tablespace
66
+ FROM timescaledb_information.chunks
67
+ WHERE hypertable_schema = %(schema_name)s
68
+ AND hypertable_name = %(table_name)s
69
+ ORDER BY range_start DESC
70
+ LIMIT 5
71
+ """
72
+
73
+ TIMESCALE_CHECK_EXTENSION = """
74
+ SELECT EXISTS (
75
+ SELECT 1
76
+ FROM pg_extension
77
+ WHERE extname = 'timescaledb'
78
+ ) as timescaledb_installed
79
+ """
80
+
81
+ TIMESCALE_GET_CONTINUOUS_AGGREGATE_DEFINITIONS = """
82
+ SELECT
83
+ ca.view_schema,
84
+ ca.view_name,
85
+ ca.view_definition,
86
+ ca.materialization_hypertable_schema,
87
+ ca.materialization_hypertable_name,
88
+ ht.hypertable_schema as source_hypertable_schema,
89
+ ht.hypertable_name as source_hypertable_name
90
+ FROM timescaledb_information.continuous_aggregates ca
91
+ LEFT JOIN timescaledb_information.hypertables ht
92
+ ON ca.materialization_hypertable_schema = ht.hypertable_schema
93
+ AND ca.materialization_hypertable_name = ht.hypertable_name
94
+ WHERE ca.view_schema NOT IN ('_timescaledb_catalog', '_timescaledb_config', '_timescaledb_cache', '_timescaledb_internal')
95
+ ORDER BY ca.view_schema, ca.view_name
96
+ """
@@ -0,0 +1,106 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Postgres Query parser module
13
+ """
14
+ import traceback
15
+ from abc import ABC
16
+ from typing import Iterable, Optional
17
+
18
+ from sqlalchemy.engine.base import Engine
19
+
20
+ from metadata.generated.schema.entity.services.connections.database.postgresConnection import (
21
+ PostgresConnection,
22
+ )
23
+ from metadata.generated.schema.metadataIngestion.workflow import (
24
+ Source as WorkflowSource,
25
+ )
26
+ from metadata.generated.schema.type.tableQuery import TableQuery
27
+ from metadata.ingestion.api.steps import InvalidSourceException
28
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
29
+ from metadata.ingestion.source.connections import get_connection
30
+ from metadata.ingestion.source.database.postgres.queries import POSTGRES_GET_DATABASE
31
+ from metadata.ingestion.source.database.postgres.utils import (
32
+ get_postgres_time_column_name,
33
+ )
34
+ from metadata.ingestion.source.database.query_parser_source import QueryParserSource
35
+ from metadata.utils.helpers import get_start_and_end
36
+ from metadata.utils.logger import ingestion_logger
37
+
38
+ logger = ingestion_logger()
39
+
40
+
41
+ class PostgresQueryParserSource(QueryParserSource, ABC):
42
+ """
43
+ Postgres base for Usage and Lineage
44
+ """
45
+
46
+ filters: str
47
+
48
+ def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
49
+ super().__init__(config, metadata)
50
+ # Postgres does not allow retrieval of data older than 7 days
51
+ # Update start and end based on this
52
+ duration = min(self.source_config.queryLogDuration, 6)
53
+ self.start, self.end = get_start_and_end(duration)
54
+
55
+ @classmethod
56
+ def create(
57
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
58
+ ):
59
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
60
+ connection: PostgresConnection = config.serviceConnection.root.config
61
+ if not isinstance(connection, PostgresConnection):
62
+ raise InvalidSourceException(
63
+ f"Expected PostgresConnection, but got {connection}"
64
+ )
65
+ return cls(config, metadata)
66
+
67
+ def get_sql_statement(self, *_) -> str:
68
+ """
69
+ returns sql statement to fetch query logs.
70
+ We don't use any start or end times as they are not available
71
+ """
72
+ return self.sql_stmt.format(
73
+ result_limit=self.config.sourceConfig.config.resultLimit,
74
+ filters=self.get_filters(),
75
+ time_column_name=get_postgres_time_column_name(engine=self.engine),
76
+ )
77
+
78
+ # pylint: disable=no-member
79
+ def get_table_query(self) -> Iterable[TableQuery]:
80
+ try:
81
+ if self.config.sourceConfig.config.queryLogFilePath:
82
+ yield from super().yield_table_queries_from_logs()
83
+ else:
84
+ database = self.config.serviceConnection.root.config.database
85
+ if database:
86
+ self.engine: Engine = get_connection(self.service_connection)
87
+ yield from self.process_table_query()
88
+ else:
89
+ results = self.engine.execute(POSTGRES_GET_DATABASE)
90
+ for res in results:
91
+ row = list(res)
92
+ logger.info(f"Ingesting from database: {row[0]}")
93
+ self.config.serviceConnection.root.config.database = row[0]
94
+ self.engine = get_connection(self.service_connection)
95
+ yield from self.process_table_query()
96
+
97
+ except Exception as err:
98
+ logger.error(f"Source usage processing error - {err}")
99
+ logger.debug(traceback.format_exc())
100
+
101
+ @staticmethod
102
+ def get_database_name(data: dict) -> str:
103
+ """
104
+ Method to get database name
105
+ """
106
+ return data.get("database_name")
@@ -0,0 +1,12 @@
1
+ from metadata.ingestion.source.database.timescale.connection import TimescaleConnection
2
+ from metadata.ingestion.source.database.timescale.lineage import TimescaleLineageSource
3
+ from metadata.ingestion.source.database.timescale.metadata import TimescaleSource
4
+ from metadata.ingestion.source.database.timescale.usage import TimescaleUsageSource
5
+ from metadata.utils.service_spec.default import DefaultDatabaseSpec
6
+
7
+ ServiceSpec = DefaultDatabaseSpec(
8
+ metadata_source_class=TimescaleSource,
9
+ lineage_source_class=TimescaleLineageSource,
10
+ usage_source_class=TimescaleUsageSource,
11
+ connection_class=TimescaleConnection,
12
+ )
@@ -0,0 +1,43 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ TimescaleDB usage module
13
+ """
14
+ from typing import Optional
15
+
16
+ from metadata.generated.schema.entity.services.connections.database.timescaleConnection import (
17
+ TimescaleConnection,
18
+ )
19
+ from metadata.generated.schema.metadataIngestion.workflow import (
20
+ Source as WorkflowSource,
21
+ )
22
+ from metadata.ingestion.api.steps import InvalidSourceException
23
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
24
+ from metadata.ingestion.source.database.postgres.usage import PostgresUsageSource
25
+
26
+
27
+ class TimescaleUsageSource(PostgresUsageSource):
28
+ """
29
+ TimescaleDB usage source that extends PostgreSQL usage
30
+ """
31
+
32
+ @classmethod
33
+ def create(
34
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
35
+ ):
36
+ """Create TimescaleUsageSource"""
37
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
38
+ connection = config.serviceConnection.root.config
39
+ if not isinstance(connection, TimescaleConnection):
40
+ raise InvalidSourceException(
41
+ f"Expected TimescaleConnection, but got {connection}"
42
+ )
43
+ return cls(config, metadata)