openmetadata-ingestion 1.3.3.0rc1__py3-none-any.whl → 1.4.0.0rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of openmetadata-ingestion might be problematic. Click here for more details.

Files changed (961) hide show
  1. metadata/automations/runner.py +9 -0
  2. metadata/cli/backup.py +7 -0
  3. metadata/cli/lineage.py +5 -1
  4. metadata/cli/restore.py +7 -0
  5. metadata/cmd.py +2 -152
  6. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -1
  7. metadata/data_quality/api/models.py +1 -0
  8. metadata/data_quality/processor/test_case_runner.py +9 -2
  9. metadata/data_quality/source/test_suite.py +6 -1
  10. metadata/data_quality/validations/base_test_handler.py +1 -1
  11. metadata/data_quality/validations/column/base/columnValuesMissingCount.py +4 -1
  12. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +28 -17
  13. metadata/data_quality/validations/mixins/sqa_validator_mixin.py +4 -1
  14. metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +1 -1
  15. metadata/examples/workflows/airbyte.yaml +1 -0
  16. metadata/examples/workflows/airflow.yaml +1 -1
  17. metadata/examples/workflows/airflow_backend.yaml +1 -1
  18. metadata/examples/workflows/airflow_postgres.yaml +1 -1
  19. metadata/examples/workflows/amundsen.yaml +1 -0
  20. metadata/examples/workflows/athena.yaml +1 -0
  21. metadata/examples/workflows/athena_lineage.yaml +1 -1
  22. metadata/examples/workflows/athena_usage.yaml +1 -0
  23. metadata/examples/workflows/atlas.yaml +1 -0
  24. metadata/examples/workflows/azuresql.yaml +1 -0
  25. metadata/examples/workflows/azuresql_lineage.yaml +1 -0
  26. metadata/examples/workflows/azuresql_usage.yaml +1 -0
  27. metadata/examples/workflows/bigquery.yaml +1 -0
  28. metadata/examples/workflows/bigquery_lineage.yaml +1 -0
  29. metadata/examples/workflows/bigquery_profiler.yaml +1 -0
  30. metadata/examples/workflows/bigquery_usage.yaml +1 -0
  31. metadata/examples/workflows/bigtable.yaml +1 -1
  32. metadata/examples/workflows/clickhouse.yaml +1 -0
  33. metadata/examples/workflows/clickhouse_lineage.yaml +1 -0
  34. metadata/examples/workflows/clickhouse_usage.yaml +1 -0
  35. metadata/examples/workflows/couchbase.yaml +1 -1
  36. metadata/examples/workflows/dagster.yaml +1 -0
  37. metadata/examples/workflows/data_insight.yaml +1 -1
  38. metadata/examples/workflows/databricks.yaml +1 -0
  39. metadata/examples/workflows/databricks_lineage.yaml +1 -0
  40. metadata/examples/workflows/databricks_pipeline.yaml +1 -0
  41. metadata/examples/workflows/databricks_usage.yaml +1 -0
  42. metadata/examples/workflows/datalake_azure_client_secret.yaml +1 -0
  43. metadata/examples/workflows/datalake_gcs.yaml +1 -0
  44. metadata/examples/workflows/datalake_profiler.yaml +1 -0
  45. metadata/examples/workflows/datalake_s3.yaml +1 -0
  46. metadata/examples/workflows/db2.yaml +1 -0
  47. metadata/examples/workflows/db2_profiler.yaml +1 -0
  48. metadata/examples/workflows/dbt.yaml +2 -0
  49. metadata/examples/workflows/deltalake.yaml +1 -0
  50. metadata/examples/workflows/domodashboard.yaml +1 -0
  51. metadata/examples/workflows/dynamodb.yaml +1 -0
  52. metadata/examples/workflows/elasticsearch.yaml +1 -1
  53. metadata/examples/workflows/fivetran.yaml +1 -0
  54. metadata/examples/workflows/glue.yaml +1 -0
  55. metadata/examples/workflows/gluepipeline.yaml +1 -0
  56. metadata/examples/workflows/hive.yaml +1 -0
  57. metadata/examples/workflows/impala.yaml +1 -0
  58. metadata/examples/workflows/kafka.yaml +1 -1
  59. metadata/examples/workflows/kinesis.yaml +1 -1
  60. metadata/examples/workflows/lightdash.yaml +1 -0
  61. metadata/examples/workflows/looker.yaml +1 -0
  62. metadata/examples/workflows/mariadb.yaml +1 -0
  63. metadata/examples/workflows/metabase.yaml +1 -0
  64. metadata/examples/workflows/mlflow.yaml +1 -0
  65. metadata/examples/workflows/mode.yaml +3 -1
  66. metadata/examples/workflows/mongodb.yaml +1 -0
  67. metadata/examples/workflows/mssql.yaml +1 -0
  68. metadata/examples/workflows/mssql_lineage.yaml +1 -0
  69. metadata/examples/workflows/mssql_usage.yaml +1 -0
  70. metadata/examples/workflows/mstr.yaml +1 -0
  71. metadata/examples/workflows/mysql.yaml +1 -0
  72. metadata/examples/workflows/mysql_profiler.yaml +1 -0
  73. metadata/examples/workflows/openmetadata.yaml +1 -0
  74. metadata/examples/workflows/oracle.yaml +1 -0
  75. metadata/examples/workflows/oracle_lineage.yaml +1 -1
  76. metadata/examples/workflows/oracle_usage.yaml +1 -0
  77. metadata/examples/workflows/pinotdb.yaml +1 -0
  78. metadata/examples/workflows/postgres.yaml +1 -0
  79. metadata/examples/workflows/postgres_lineage.yaml +1 -1
  80. metadata/examples/workflows/postgres_usage.yaml +1 -1
  81. metadata/examples/workflows/powerbi.yaml +52 -0
  82. metadata/examples/workflows/presto.yaml +1 -0
  83. metadata/examples/workflows/qlik_sense.yaml +6 -4
  84. metadata/examples/workflows/qlikcloud.yaml +31 -0
  85. metadata/examples/workflows/query_log_usage.yaml +1 -0
  86. metadata/examples/workflows/quicksight.yaml +1 -0
  87. metadata/examples/workflows/redash.yaml +1 -0
  88. metadata/examples/workflows/redpanda.yaml +1 -0
  89. metadata/examples/workflows/redshift.yaml +1 -0
  90. metadata/examples/workflows/redshift_lineage.yaml +1 -0
  91. metadata/examples/workflows/redshift_profiler.yaml +1 -0
  92. metadata/examples/workflows/redshift_usage.yaml +1 -0
  93. metadata/examples/workflows/sagemaker.yaml +1 -1
  94. metadata/examples/workflows/salesforce.yaml +1 -0
  95. metadata/examples/workflows/sas.yaml +1 -1
  96. metadata/examples/workflows/singlestore.yaml +1 -0
  97. metadata/examples/workflows/snowflake.yaml +1 -0
  98. metadata/examples/workflows/snowflake_lineage.yaml +1 -0
  99. metadata/examples/workflows/snowflake_usage.yaml +1 -0
  100. metadata/examples/workflows/spline.yaml +5 -4
  101. metadata/examples/workflows/sqlite.yaml +1 -0
  102. metadata/examples/workflows/superset.yaml +1 -0
  103. metadata/examples/workflows/tableau.yaml +1 -0
  104. metadata/examples/workflows/test_suite.yaml +13 -16
  105. metadata/examples/workflows/trino.yaml +1 -0
  106. metadata/examples/workflows/trino_lineage.yaml +1 -0
  107. metadata/examples/workflows/trino_usage.yaml +1 -0
  108. metadata/examples/workflows/unity_catalog.yaml +1 -1
  109. metadata/examples/workflows/unity_catalog_lineage.yaml +1 -1
  110. metadata/examples/workflows/unity_catalog_usage.yaml +1 -1
  111. metadata/examples/workflows/vertica.yaml +1 -0
  112. metadata/generated/antlr/EntityLinkLexer.py +354 -349
  113. metadata/generated/schema/analytics/__init__.py +1 -1
  114. metadata/generated/schema/analytics/basic.py +1 -1
  115. metadata/generated/schema/analytics/reportData.py +1 -1
  116. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  117. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  118. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  119. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  120. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  121. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  122. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  123. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  124. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  125. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  126. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  127. metadata/generated/schema/api/__init__.py +1 -1
  128. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  129. metadata/generated/schema/api/analytics/__init__.py +1 -1
  130. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  131. metadata/generated/schema/api/automations/__init__.py +1 -1
  132. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  133. metadata/generated/schema/api/bulkAssets.py +1 -1
  134. metadata/generated/schema/api/classification/__init__.py +1 -1
  135. metadata/generated/schema/api/classification/createClassification.py +2 -3
  136. metadata/generated/schema/api/classification/createTag.py +2 -3
  137. metadata/generated/schema/api/classification/loadTags.py +1 -1
  138. metadata/generated/schema/api/createBot.py +1 -1
  139. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  140. metadata/generated/schema/api/createType.py +1 -1
  141. metadata/generated/schema/api/data/__init__.py +1 -1
  142. metadata/generated/schema/api/data/createChart.py +1 -1
  143. metadata/generated/schema/api/data/createContainer.py +4 -1
  144. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  145. metadata/generated/schema/api/data/createDashboard.py +1 -1
  146. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  147. metadata/generated/schema/api/data/createDatabase.py +1 -1
  148. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  149. metadata/generated/schema/api/data/createGlossary.py +1 -1
  150. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  151. metadata/generated/schema/api/data/createMlModel.py +1 -1
  152. metadata/generated/schema/api/data/createPipeline.py +1 -1
  153. metadata/generated/schema/api/data/createQuery.py +1 -1
  154. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  155. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  156. metadata/generated/schema/api/data/createTable.py +1 -1
  157. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  158. metadata/generated/schema/api/data/createTopic.py +1 -1
  159. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  160. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  161. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  162. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  163. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  164. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  165. metadata/generated/schema/api/docStore/__init__.py +1 -1
  166. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  167. metadata/generated/schema/api/domains/__init__.py +1 -1
  168. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  169. metadata/generated/schema/api/domains/createDomain.py +1 -1
  170. metadata/generated/schema/api/feed/__init__.py +1 -1
  171. metadata/generated/schema/api/feed/closeTask.py +1 -1
  172. metadata/generated/schema/api/feed/createPost.py +1 -1
  173. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  174. metadata/generated/schema/api/feed/createThread.py +1 -1
  175. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  176. metadata/generated/schema/api/feed/threadCount.py +1 -1
  177. metadata/generated/schema/api/lineage/__init__.py +1 -1
  178. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  179. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  180. metadata/generated/schema/api/policies/__init__.py +1 -1
  181. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  182. metadata/generated/schema/api/services/__init__.py +1 -1
  183. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  184. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  185. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  186. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  187. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  188. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  189. metadata/generated/schema/api/services/createSearchService.py +1 -1
  190. metadata/generated/schema/api/services/createStorageService.py +1 -1
  191. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  192. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  193. metadata/generated/schema/api/setOwner.py +1 -1
  194. metadata/generated/schema/api/teams/__init__.py +1 -1
  195. metadata/generated/schema/api/teams/createPersona.py +1 -1
  196. metadata/generated/schema/api/teams/createRole.py +1 -1
  197. metadata/generated/schema/api/teams/createTeam.py +1 -1
  198. metadata/generated/schema/api/teams/createUser.py +1 -1
  199. metadata/generated/schema/api/tests/__init__.py +1 -1
  200. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  201. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  202. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  203. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  204. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  205. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  206. metadata/generated/schema/api/voteRequest.py +1 -1
  207. metadata/generated/schema/auth/__init__.py +1 -1
  208. metadata/generated/schema/auth/basicAuth.py +1 -1
  209. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  210. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  211. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  212. metadata/generated/schema/auth/emailRequest.py +1 -1
  213. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  214. metadata/generated/schema/auth/generateToken.py +1 -1
  215. metadata/generated/schema/auth/jwtAuth.py +1 -1
  216. metadata/generated/schema/auth/loginRequest.py +1 -1
  217. metadata/generated/schema/auth/logoutRequest.py +1 -1
  218. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  219. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  220. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  221. metadata/generated/schema/auth/refreshToken.py +1 -1
  222. metadata/generated/schema/auth/registrationRequest.py +1 -1
  223. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  224. metadata/generated/schema/auth/revokeToken.py +1 -1
  225. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  226. metadata/generated/schema/auth/ssoAuth.py +1 -1
  227. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  228. metadata/generated/schema/configuration/__init__.py +1 -1
  229. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  230. metadata/generated/schema/configuration/authConfig.py +1 -1
  231. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  232. metadata/generated/schema/configuration/authorizerConfiguration.py +4 -1
  233. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  234. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  235. metadata/generated/schema/configuration/elasticSearchConfiguration.py +4 -1
  236. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  237. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  238. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  239. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  240. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  241. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  242. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  243. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  244. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  245. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  246. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  247. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  248. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  249. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  250. metadata/generated/schema/configuration/profilerConfiguration.py +66 -0
  251. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  252. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  253. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  254. metadata/generated/schema/configuration/themeConfiguration.py +32 -0
  255. metadata/generated/schema/configuration/uiThemePreference.py +23 -0
  256. metadata/generated/schema/dataInsight/__init__.py +1 -1
  257. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  258. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  259. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  260. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  261. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  262. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  263. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  264. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  265. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  266. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  267. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  268. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  269. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  270. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  271. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  272. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  273. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  274. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  275. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  276. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  277. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  278. metadata/generated/schema/email/__init__.py +1 -1
  279. metadata/generated/schema/email/emailRequest.py +1 -1
  280. metadata/generated/schema/email/smtpSettings.py +1 -1
  281. metadata/generated/schema/entity/__init__.py +1 -1
  282. metadata/generated/schema/entity/applications/__init__.py +1 -1
  283. metadata/generated/schema/entity/applications/app.py +1 -1
  284. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  285. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  286. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +3 -3
  287. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  288. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +5 -0
  289. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +36 -0
  290. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +31 -0
  291. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +31 -0
  292. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +36 -0
  293. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +31 -0
  294. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +28 -0
  295. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +22 -0
  296. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +30 -0
  297. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +22 -0
  298. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +22 -0
  299. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +31 -0
  300. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +22 -0
  301. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +75 -0
  302. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  303. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  304. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  305. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  306. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  307. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  308. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  309. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  310. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  311. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  312. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  313. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +5 -1
  314. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  315. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  316. metadata/generated/schema/entity/automations/__init__.py +1 -1
  317. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  318. metadata/generated/schema/entity/automations/workflow.py +1 -1
  319. metadata/generated/schema/entity/bot.py +1 -1
  320. metadata/generated/schema/entity/classification/__init__.py +1 -1
  321. metadata/generated/schema/entity/classification/classification.py +2 -3
  322. metadata/generated/schema/entity/classification/tag.py +3 -9
  323. metadata/generated/schema/entity/data/__init__.py +1 -1
  324. metadata/generated/schema/entity/data/chart.py +1 -1
  325. metadata/generated/schema/entity/data/container.py +4 -1
  326. metadata/generated/schema/entity/data/dashboard.py +1 -1
  327. metadata/generated/schema/entity/data/dashboardDataModel.py +2 -2
  328. metadata/generated/schema/entity/data/database.py +1 -1
  329. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  330. metadata/generated/schema/entity/data/glossary.py +1 -1
  331. metadata/generated/schema/entity/data/glossaryTerm.py +4 -1
  332. metadata/generated/schema/entity/data/metrics.py +1 -1
  333. metadata/generated/schema/entity/data/mlmodel.py +2 -2
  334. metadata/generated/schema/entity/data/pipeline.py +1 -1
  335. metadata/generated/schema/entity/data/query.py +1 -1
  336. metadata/generated/schema/entity/data/report.py +1 -1
  337. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  338. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  339. metadata/generated/schema/entity/data/table.py +21 -20
  340. metadata/generated/schema/entity/data/topic.py +1 -1
  341. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  342. metadata/generated/schema/entity/docStore/document.py +1 -1
  343. metadata/generated/schema/entity/domains/__init__.py +1 -1
  344. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  345. metadata/generated/schema/entity/domains/domain.py +1 -1
  346. metadata/generated/schema/entity/events/__init__.py +1 -1
  347. metadata/generated/schema/entity/events/webhook.py +1 -1
  348. metadata/generated/schema/entity/feed/__init__.py +1 -1
  349. metadata/generated/schema/entity/feed/assets.py +18 -0
  350. metadata/generated/schema/entity/feed/customProperty.py +17 -0
  351. metadata/generated/schema/entity/feed/description.py +24 -0
  352. metadata/generated/schema/entity/feed/domain.py +23 -0
  353. metadata/generated/schema/entity/feed/entityInfo.py +19 -0
  354. metadata/generated/schema/entity/feed/owner.py +23 -0
  355. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  356. metadata/generated/schema/entity/feed/tag.py +23 -0
  357. metadata/generated/schema/entity/feed/testCaseResult.py +23 -0
  358. metadata/generated/schema/entity/feed/thread.py +71 -2
  359. metadata/generated/schema/entity/policies/__init__.py +1 -1
  360. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  361. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +3 -1
  362. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  363. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  364. metadata/generated/schema/entity/policies/filters.py +3 -3
  365. metadata/generated/schema/entity/policies/policy.py +1 -1
  366. metadata/generated/schema/entity/services/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  368. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  369. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  370. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  371. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +33 -2
  382. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +3 -0
  383. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +37 -0
  384. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +25 -0
  385. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +37 -0
  386. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +37 -0
  387. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +38 -0
  388. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +6 -15
  389. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +4 -13
  416. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +4 -1
  418. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +2 -15
  420. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +4 -1
  432. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +4 -13
  434. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +2 -15
  437. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +11 -1
  438. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +2 -15
  439. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +6 -1
  449. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  452. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +7 -1
  454. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  458. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  459. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +7 -3
  460. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  465. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  470. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +61 -0
  480. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +73 -0
  482. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  485. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  487. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  488. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  489. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  493. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  495. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  497. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  498. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  499. metadata/generated/schema/entity/services/dashboardService.py +4 -1
  500. metadata/generated/schema/entity/services/databaseService.py +1 -1
  501. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  502. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  503. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  504. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  505. metadata/generated/schema/entity/services/messagingService.py +1 -1
  506. metadata/generated/schema/entity/services/metadataService.py +1 -1
  507. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  508. metadata/generated/schema/entity/services/pipelineService.py +7 -1
  509. metadata/generated/schema/entity/services/searchService.py +1 -1
  510. metadata/generated/schema/entity/services/serviceType.py +1 -1
  511. metadata/generated/schema/entity/services/storageService.py +1 -1
  512. metadata/generated/schema/entity/teams/__init__.py +1 -1
  513. metadata/generated/schema/entity/teams/persona.py +1 -1
  514. metadata/generated/schema/entity/teams/role.py +1 -1
  515. metadata/generated/schema/entity/teams/team.py +1 -1
  516. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  517. metadata/generated/schema/entity/teams/user.py +1 -1
  518. metadata/generated/schema/entity/type.py +1 -1
  519. metadata/generated/schema/entity/utils/__init__.py +1 -1
  520. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  521. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  522. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  523. metadata/generated/schema/events/__init__.py +1 -1
  524. metadata/generated/schema/events/alertMetrics.py +1 -1
  525. metadata/generated/schema/events/api/__init__.py +1 -1
  526. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  527. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  528. metadata/generated/schema/events/eventFilterRule.py +10 -1
  529. metadata/generated/schema/events/eventSubscription.py +6 -2
  530. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  531. metadata/generated/schema/events/failedEvent.py +1 -1
  532. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  533. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  534. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  535. metadata/generated/schema/metadataIngestion/application.py +1 -1
  536. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  537. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +19 -6
  538. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  539. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +32 -1
  540. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +23 -23
  541. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  542. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  543. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  544. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  545. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  546. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  547. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  548. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  549. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  551. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  552. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  553. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  554. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  555. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +22 -4
  556. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  557. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  558. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  559. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  560. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  561. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  562. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  563. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  564. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  565. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  566. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  567. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  569. metadata/generated/schema/monitoring/__init__.py +1 -1
  570. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  571. metadata/generated/schema/security/__init__.py +1 -1
  572. metadata/generated/schema/security/client/__init__.py +1 -1
  573. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  574. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  575. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  576. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  577. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  578. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  579. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  580. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  581. metadata/generated/schema/security/credentials/__init__.py +1 -1
  582. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  583. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  584. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  585. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  586. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  587. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  588. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  589. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  590. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  591. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  592. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  593. metadata/generated/schema/security/secrets/__init__.py +1 -1
  594. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  595. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  596. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  597. metadata/generated/schema/security/securityConfiguration.py +1 -1
  598. metadata/generated/schema/security/ssl/__init__.py +1 -1
  599. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +16 -4
  600. metadata/generated/schema/security/ssl/verifySSLConfig.py +10 -1
  601. metadata/generated/schema/settings/__init__.py +1 -1
  602. metadata/generated/schema/settings/settings.py +5 -2
  603. metadata/generated/schema/system/__init__.py +1 -1
  604. metadata/generated/schema/system/entityError.py +1 -1
  605. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  606. metadata/generated/schema/system/indexingError.py +1 -1
  607. metadata/generated/schema/system/ui/__init__.py +1 -1
  608. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  609. metadata/generated/schema/system/ui/page.py +1 -1
  610. metadata/generated/schema/system/validationResponse.py +1 -1
  611. metadata/generated/schema/tests/__init__.py +1 -1
  612. metadata/generated/schema/tests/assigned.py +1 -1
  613. metadata/generated/schema/tests/basic.py +31 -15
  614. metadata/generated/schema/tests/customMetric.py +1 -1
  615. metadata/generated/schema/tests/resolved.py +1 -1
  616. metadata/generated/schema/tests/testCase.py +12 -1
  617. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  618. metadata/generated/schema/tests/testDefinition.py +21 -1
  619. metadata/generated/schema/tests/testSuite.py +1 -1
  620. metadata/generated/schema/type/__init__.py +1 -1
  621. metadata/generated/schema/type/auditLog.py +1 -1
  622. metadata/generated/schema/type/basic.py +1 -1
  623. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  624. metadata/generated/schema/type/changeEvent.py +1 -1
  625. metadata/generated/schema/type/changeEventType.py +1 -1
  626. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  627. metadata/generated/schema/type/csvDocumentation.py +1 -1
  628. metadata/generated/schema/type/csvErrorType.py +1 -1
  629. metadata/generated/schema/type/csvFile.py +1 -1
  630. metadata/generated/schema/type/csvImportResult.py +1 -1
  631. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  632. metadata/generated/schema/type/customProperties/complexTypes.py +87 -0
  633. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  634. metadata/generated/schema/type/customProperty.py +3 -3
  635. metadata/generated/schema/type/dailyCount.py +1 -1
  636. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  637. metadata/generated/schema/type/entityHierarchy.py +39 -0
  638. metadata/generated/schema/type/entityHistory.py +1 -1
  639. metadata/generated/schema/type/entityLineage.py +3 -1
  640. metadata/generated/schema/type/entityReference.py +1 -1
  641. metadata/generated/schema/type/entityReferenceList.py +1 -1
  642. metadata/generated/schema/type/entityRelationship.py +1 -1
  643. metadata/generated/schema/type/entityUsage.py +1 -1
  644. metadata/generated/schema/type/filterPattern.py +1 -1
  645. metadata/generated/schema/type/function.py +1 -1
  646. metadata/generated/schema/type/include.py +1 -1
  647. metadata/generated/schema/type/jdbcConnection.py +1 -1
  648. metadata/generated/schema/type/lifeCycle.py +1 -1
  649. metadata/generated/schema/type/paging.py +4 -1
  650. metadata/generated/schema/type/profile.py +1 -1
  651. metadata/generated/schema/type/queryParserData.py +1 -1
  652. metadata/generated/schema/type/reaction.py +1 -1
  653. metadata/generated/schema/type/schedule.py +1 -1
  654. metadata/generated/schema/type/schema.py +1 -1
  655. metadata/generated/schema/type/tableQuery.py +1 -1
  656. metadata/generated/schema/type/tableUsageCount.py +1 -1
  657. metadata/generated/schema/type/tagLabel.py +1 -1
  658. metadata/generated/schema/type/usageDetails.py +1 -1
  659. metadata/generated/schema/type/usageRequest.py +1 -1
  660. metadata/generated/schema/type/votes.py +1 -1
  661. metadata/great_expectations/action.py +0 -1
  662. metadata/ingestion/api/delete.py +33 -1
  663. metadata/ingestion/api/step.py +6 -1
  664. metadata/ingestion/api/topology_runner.py +122 -25
  665. metadata/ingestion/bulksink/metadata_usage.py +6 -1
  666. metadata/ingestion/lineage/models.py +34 -1
  667. metadata/ingestion/lineage/parser.py +15 -8
  668. metadata/ingestion/lineage/sql_lineage.py +21 -3
  669. metadata/ingestion/models/custom_properties.py +1 -0
  670. metadata/ingestion/models/life_cycle.py +4 -1
  671. metadata/ingestion/models/patch_request.py +176 -34
  672. metadata/ingestion/models/topology.py +81 -1
  673. metadata/ingestion/ometa/client.py +3 -0
  674. metadata/ingestion/ometa/mixins/es_mixin.py +95 -42
  675. metadata/ingestion/ometa/mixins/lineage_mixin.py +169 -4
  676. metadata/ingestion/ometa/mixins/patch_mixin.py +5 -2
  677. metadata/ingestion/ometa/mixins/server_mixin.py +48 -0
  678. metadata/ingestion/ometa/mixins/tests_mixin.py +55 -1
  679. metadata/ingestion/ometa/mixins/user_mixin.py +2 -2
  680. metadata/ingestion/ometa/ometa_api.py +6 -1
  681. metadata/ingestion/ometa/routes.py +3 -0
  682. metadata/ingestion/ometa/utils.py +2 -0
  683. metadata/ingestion/processor/query_parser.py +7 -1
  684. metadata/ingestion/sink/file.py +4 -1
  685. metadata/ingestion/sink/metadata_rest.py +19 -5
  686. metadata/ingestion/source/dashboard/dashboard_service.py +75 -16
  687. metadata/ingestion/source/dashboard/domodashboard/metadata.py +7 -5
  688. metadata/ingestion/source/dashboard/lightdash/metadata.py +7 -5
  689. metadata/ingestion/source/dashboard/looker/metadata.py +25 -18
  690. metadata/ingestion/source/dashboard/metabase/client.py +39 -8
  691. metadata/ingestion/source/dashboard/metabase/connection.py +2 -1
  692. metadata/ingestion/source/dashboard/metabase/metadata.py +9 -7
  693. metadata/ingestion/source/dashboard/metabase/models.py +1 -1
  694. metadata/ingestion/source/dashboard/mode/metadata.py +7 -5
  695. metadata/ingestion/source/dashboard/mstr/metadata.py +10 -5
  696. metadata/ingestion/source/dashboard/powerbi/client.py +13 -3
  697. metadata/ingestion/source/dashboard/powerbi/connection.py +13 -5
  698. metadata/ingestion/source/dashboard/powerbi/file_client.py +327 -0
  699. metadata/ingestion/source/dashboard/powerbi/metadata.py +130 -52
  700. metadata/ingestion/source/dashboard/powerbi/models.py +26 -0
  701. metadata/ingestion/source/dashboard/qlikcloud/__init__.py +0 -0
  702. metadata/ingestion/source/dashboard/qlikcloud/client.py +167 -0
  703. metadata/ingestion/source/dashboard/qlikcloud/connection.py +56 -0
  704. metadata/ingestion/source/dashboard/qlikcloud/constants.py +66 -0
  705. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +249 -0
  706. metadata/ingestion/source/dashboard/qlikcloud/models.py +33 -0
  707. metadata/ingestion/source/dashboard/qliksense/client.py +9 -26
  708. metadata/ingestion/source/dashboard/qliksense/metadata.py +30 -17
  709. metadata/ingestion/source/dashboard/qliksense/models.py +1 -0
  710. metadata/ingestion/source/dashboard/quicksight/metadata.py +7 -5
  711. metadata/ingestion/source/dashboard/redash/metadata.py +10 -5
  712. metadata/ingestion/source/dashboard/superset/api_source.py +10 -5
  713. metadata/ingestion/source/dashboard/superset/db_source.py +12 -6
  714. metadata/ingestion/source/dashboard/superset/metadata.py +8 -1
  715. metadata/ingestion/source/dashboard/superset/mixin.py +20 -3
  716. metadata/ingestion/source/dashboard/superset/models.py +2 -0
  717. metadata/ingestion/source/dashboard/superset/queries.py +23 -6
  718. metadata/ingestion/source/dashboard/tableau/metadata.py +71 -10
  719. metadata/ingestion/source/database/athena/metadata.py +83 -15
  720. metadata/ingestion/source/database/athena/query_parser.py +4 -1
  721. metadata/ingestion/source/database/azuresql/metadata.py +4 -2
  722. metadata/ingestion/source/database/azuresql/query_parser.py +4 -1
  723. metadata/ingestion/source/database/bigquery/helper.py +23 -12
  724. metadata/ingestion/source/database/bigquery/incremental_table_processor.py +86 -0
  725. metadata/ingestion/source/database/bigquery/metadata.py +196 -43
  726. metadata/ingestion/source/database/bigquery/models.py +35 -1
  727. metadata/ingestion/source/database/bigquery/queries.py +25 -12
  728. metadata/ingestion/source/database/bigquery/query_parser.py +3 -1
  729. metadata/ingestion/source/database/bigtable/metadata.py +6 -4
  730. metadata/ingestion/source/database/clickhouse/metadata.py +3 -1
  731. metadata/ingestion/source/database/clickhouse/query_parser.py +4 -2
  732. metadata/ingestion/source/database/common_db_source.py +92 -46
  733. metadata/ingestion/source/database/common_nosql_source.py +15 -15
  734. metadata/ingestion/source/database/couchbase/metadata.py +8 -6
  735. metadata/ingestion/source/database/database_service.py +40 -26
  736. metadata/ingestion/source/database/databricks/metadata.py +71 -19
  737. metadata/ingestion/source/database/databricks/queries.py +3 -1
  738. metadata/ingestion/source/database/databricks/query_parser.py +9 -2
  739. metadata/ingestion/source/database/datalake/connection.py +1 -2
  740. metadata/ingestion/source/database/datalake/metadata.py +21 -19
  741. metadata/ingestion/source/database/db2/metadata.py +4 -1
  742. metadata/ingestion/source/database/dbt/dbt_service.py +13 -11
  743. metadata/ingestion/source/database/dbt/metadata.py +89 -19
  744. metadata/ingestion/source/database/dbt/models.py +10 -1
  745. metadata/ingestion/source/database/deltalake/metadata.py +18 -16
  746. metadata/ingestion/source/database/domodatabase/metadata.py +16 -11
  747. metadata/ingestion/source/database/doris/connection.py +0 -10
  748. metadata/ingestion/source/database/doris/metadata.py +23 -4
  749. metadata/ingestion/source/database/druid/metadata.py +5 -1
  750. metadata/ingestion/source/database/dynamodb/metadata.py +3 -1
  751. metadata/ingestion/source/database/extended_sample_data.py +4 -2
  752. metadata/ingestion/source/database/external_table_lineage_mixin.py +82 -0
  753. metadata/ingestion/source/database/glue/metadata.py +23 -21
  754. metadata/ingestion/source/database/greenplum/connection.py +0 -10
  755. metadata/ingestion/source/database/greenplum/metadata.py +26 -11
  756. metadata/ingestion/source/database/hive/metadata.py +6 -4
  757. metadata/ingestion/source/database/iceberg/helper.py +42 -5
  758. metadata/ingestion/source/database/iceberg/metadata.py +18 -16
  759. metadata/ingestion/source/database/iceberg/models.py +12 -4
  760. metadata/ingestion/source/database/impala/metadata.py +4 -1
  761. metadata/ingestion/source/database/incremental_metadata_extraction.py +144 -0
  762. metadata/ingestion/source/database/life_cycle_query_mixin.py +39 -36
  763. metadata/ingestion/source/database/mariadb/metadata.py +5 -1
  764. metadata/ingestion/source/database/mongodb/metadata.py +4 -2
  765. metadata/ingestion/source/database/mssql/metadata.py +9 -7
  766. metadata/ingestion/source/database/mssql/queries.py +18 -16
  767. metadata/ingestion/source/database/mssql/query_parser.py +4 -1
  768. metadata/ingestion/source/database/mssql/utils.py +3 -0
  769. metadata/ingestion/source/database/mysql/connection.py +0 -11
  770. metadata/ingestion/source/database/mysql/metadata.py +4 -2
  771. metadata/ingestion/source/database/oracle/connection.py +2 -2
  772. metadata/ingestion/source/database/oracle/metadata.py +7 -5
  773. metadata/ingestion/source/database/oracle/queries.py +13 -13
  774. metadata/ingestion/source/database/oracle/query_parser.py +4 -1
  775. metadata/ingestion/source/database/pinotdb/metadata.py +4 -1
  776. metadata/ingestion/source/database/postgres/connection.py +0 -10
  777. metadata/ingestion/source/database/postgres/metadata.py +34 -15
  778. metadata/ingestion/source/database/postgres/queries.py +17 -1
  779. metadata/ingestion/source/database/postgres/query_parser.py +4 -2
  780. metadata/ingestion/source/database/postgres/utils.py +98 -0
  781. metadata/ingestion/source/database/presto/connection.py +14 -0
  782. metadata/ingestion/source/database/presto/metadata.py +8 -5
  783. metadata/ingestion/source/database/query/lineage.py +5 -1
  784. metadata/ingestion/source/database/query/usage.py +4 -1
  785. metadata/ingestion/source/database/redshift/connection.py +0 -10
  786. metadata/ingestion/source/database/redshift/incremental_table_processor.py +192 -0
  787. metadata/ingestion/source/database/redshift/metadata.py +167 -25
  788. metadata/ingestion/source/database/redshift/models.py +74 -1
  789. metadata/ingestion/source/database/redshift/queries.py +17 -2
  790. metadata/ingestion/source/database/redshift/query_parser.py +3 -1
  791. metadata/ingestion/source/database/redshift/utils.py +13 -7
  792. metadata/ingestion/source/database/salesforce/metadata.py +13 -11
  793. metadata/ingestion/source/database/sample_data.py +55 -10
  794. metadata/ingestion/source/database/sample_usage.py +3 -1
  795. metadata/ingestion/source/database/saphana/metadata.py +6 -5
  796. metadata/ingestion/source/database/sas/metadata.py +8 -3
  797. metadata/ingestion/source/database/singlestore/metadata.py +5 -1
  798. metadata/ingestion/source/database/snowflake/metadata.py +189 -58
  799. metadata/ingestion/source/database/snowflake/models.py +24 -1
  800. metadata/ingestion/source/database/snowflake/queries.py +143 -25
  801. metadata/ingestion/source/database/snowflake/query_parser.py +3 -1
  802. metadata/ingestion/source/database/snowflake/utils.py +167 -11
  803. metadata/ingestion/source/database/sql_column_handler.py +2 -0
  804. metadata/ingestion/source/database/sqlalchemy_source.py +2 -2
  805. metadata/ingestion/source/database/sqlite/metadata.py +5 -1
  806. metadata/ingestion/source/database/stored_procedures_mixin.py +11 -9
  807. metadata/ingestion/source/database/trino/connection.py +7 -0
  808. metadata/ingestion/source/database/trino/metadata.py +7 -4
  809. metadata/ingestion/source/database/trino/query_parser.py +4 -1
  810. metadata/ingestion/source/database/unitycatalog/lineage.py +3 -1
  811. metadata/ingestion/source/database/unitycatalog/metadata.py +43 -32
  812. metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -1
  813. metadata/ingestion/source/database/vertica/metadata.py +4 -2
  814. metadata/ingestion/source/database/vertica/query_parser.py +4 -2
  815. metadata/ingestion/source/messaging/common_broker_source.py +3 -3
  816. metadata/ingestion/source/messaging/kafka/metadata.py +21 -1
  817. metadata/ingestion/source/messaging/kinesis/metadata.py +11 -5
  818. metadata/ingestion/source/messaging/messaging_service.py +3 -3
  819. metadata/ingestion/source/messaging/redpanda/metadata.py +5 -1
  820. metadata/ingestion/source/metadata/amundsen/metadata.py +3 -1
  821. metadata/ingestion/source/metadata/atlas/metadata.py +3 -1
  822. metadata/ingestion/source/mlmodel/mlflow/metadata.py +4 -2
  823. metadata/ingestion/source/mlmodel/mlmodel_service.py +3 -3
  824. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +8 -3
  825. metadata/ingestion/source/pipeline/airbyte/metadata.py +9 -7
  826. metadata/ingestion/source/pipeline/airflow/metadata.py +30 -14
  827. metadata/ingestion/source/pipeline/dagster/metadata.py +17 -15
  828. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +10 -8
  829. metadata/ingestion/source/pipeline/domopipeline/metadata.py +6 -4
  830. metadata/ingestion/source/pipeline/fivetran/metadata.py +6 -4
  831. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +7 -5
  832. metadata/ingestion/source/pipeline/nifi/metadata.py +4 -2
  833. metadata/ingestion/source/pipeline/openlineage/__init__.py +0 -0
  834. metadata/ingestion/source/pipeline/openlineage/connection.py +88 -0
  835. metadata/ingestion/source/pipeline/openlineage/metadata.py +520 -0
  836. metadata/ingestion/source/pipeline/openlineage/models.py +88 -0
  837. metadata/ingestion/source/pipeline/openlineage/utils.py +59 -0
  838. metadata/ingestion/source/pipeline/pipeline_service.py +13 -3
  839. metadata/ingestion/source/pipeline/spline/metadata.py +8 -6
  840. metadata/ingestion/source/search/elasticsearch/metadata.py +8 -6
  841. metadata/ingestion/source/search/search_service.py +3 -3
  842. metadata/ingestion/source/sqa_types.py +20 -1
  843. metadata/ingestion/source/storage/s3/metadata.py +33 -7
  844. metadata/ingestion/source/storage/s3/models.py +4 -0
  845. metadata/ingestion/source/storage/storage_service.py +4 -4
  846. metadata/ingestion/stage/table_usage.py +6 -1
  847. metadata/mixins/pandas/pandas_mixin.py +3 -3
  848. metadata/pii/processor.py +6 -1
  849. metadata/profiler/__init__.py +0 -0
  850. metadata/profiler/adaptors/__init__.py +0 -0
  851. metadata/profiler/adaptors/adaptor_factory.py +43 -0
  852. metadata/profiler/adaptors/dynamodb.py +40 -0
  853. metadata/profiler/adaptors/factory.py +76 -0
  854. metadata/profiler/adaptors/mongodb.py +178 -0
  855. metadata/profiler/adaptors/nosql_adaptor.py +65 -0
  856. metadata/profiler/api/models.py +1 -1
  857. metadata/profiler/factory.py +41 -0
  858. metadata/profiler/interface/nosql/profiler_interface.py +236 -0
  859. metadata/profiler/interface/pandas/profiler_interface.py +51 -30
  860. metadata/profiler/interface/profiler_interface.py +6 -2
  861. metadata/profiler/interface/profiler_interface_factory.py +11 -22
  862. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +79 -0
  863. metadata/profiler/interface/sqlalchemy/profiler_interface.py +3 -1
  864. metadata/profiler/interface/sqlalchemy/unity_catalog/profiler_interface.py +3 -6
  865. metadata/profiler/metrics/composed/distinct_ratio.py +2 -1
  866. metadata/profiler/metrics/composed/duplicate_count.py +2 -1
  867. metadata/profiler/metrics/composed/ilike_ratio.py +2 -1
  868. metadata/profiler/metrics/composed/iqr.py +2 -1
  869. metadata/profiler/metrics/composed/like_ratio.py +2 -1
  870. metadata/profiler/metrics/composed/non_parametric_skew.py +2 -1
  871. metadata/profiler/metrics/composed/null_ratio.py +7 -4
  872. metadata/profiler/metrics/composed/unique_ratio.py +2 -1
  873. metadata/profiler/metrics/core.py +14 -1
  874. metadata/profiler/metrics/hybrid/histogram.py +2 -1
  875. metadata/profiler/metrics/registry.py +4 -0
  876. metadata/profiler/metrics/static/column_count.py +2 -1
  877. metadata/profiler/metrics/static/column_names.py +2 -1
  878. metadata/profiler/metrics/static/count.py +2 -1
  879. metadata/profiler/metrics/static/count_in_set.py +2 -1
  880. metadata/profiler/metrics/static/distinct_count.py +11 -2
  881. metadata/profiler/metrics/static/ilike_count.py +2 -1
  882. metadata/profiler/metrics/static/like_count.py +2 -1
  883. metadata/profiler/metrics/static/max.py +26 -7
  884. metadata/profiler/metrics/static/max_length.py +3 -2
  885. metadata/profiler/metrics/static/mean.py +30 -22
  886. metadata/profiler/metrics/static/min.py +25 -6
  887. metadata/profiler/metrics/static/min_length.py +3 -2
  888. metadata/profiler/metrics/static/not_like_count.py +2 -1
  889. metadata/profiler/metrics/static/not_regexp_match_count.py +2 -1
  890. metadata/profiler/metrics/static/null_count.py +2 -1
  891. metadata/profiler/metrics/static/null_missing_count.py +73 -0
  892. metadata/profiler/metrics/static/regexp_match_count.py +2 -1
  893. metadata/profiler/metrics/static/row_count.py +9 -3
  894. metadata/profiler/metrics/static/stddev.py +2 -1
  895. metadata/profiler/metrics/static/sum.py +22 -4
  896. metadata/profiler/metrics/static/unique_count.py +13 -4
  897. metadata/profiler/metrics/system/system.py +2 -1
  898. metadata/profiler/metrics/window/first_quartile.py +2 -1
  899. metadata/profiler/metrics/window/median.py +8 -2
  900. metadata/profiler/metrics/window/third_quartile.py +2 -1
  901. metadata/profiler/orm/converter/base.py +4 -1
  902. metadata/profiler/orm/converter/bigquery/converter.py +11 -0
  903. metadata/profiler/orm/converter/common.py +47 -0
  904. metadata/profiler/orm/converter/converter_registry.py +2 -0
  905. metadata/profiler/orm/converter/redshift/converter.py +48 -0
  906. metadata/profiler/orm/converter/snowflake/converter.py +13 -0
  907. metadata/profiler/orm/functions/conn_test.py +1 -1
  908. metadata/profiler/orm/functions/sum.py +4 -2
  909. metadata/profiler/orm/functions/table_metric_computer.py +39 -20
  910. metadata/profiler/orm/registry.py +6 -3
  911. metadata/profiler/processor/core.py +58 -97
  912. metadata/profiler/processor/default.py +5 -0
  913. metadata/profiler/processor/handle_partition.py +3 -3
  914. metadata/profiler/processor/metric_filter.py +265 -0
  915. metadata/profiler/processor/processor.py +4 -2
  916. metadata/profiler/processor/sampler/nosql/sampler.py +72 -0
  917. metadata/profiler/processor/sampler/pandas/sampler.py +5 -6
  918. metadata/profiler/processor/sampler/sampler_factory.py +9 -0
  919. metadata/profiler/processor/sampler/sampler_interface.py +2 -2
  920. metadata/profiler/processor/sampler/sqlalchemy/sampler.py +3 -3
  921. metadata/profiler/source/base/profiler_source.py +11 -3
  922. metadata/profiler/source/databricks/profiler_source.py +5 -1
  923. metadata/profiler/source/metadata.py +8 -1
  924. metadata/profiler/source/metadata_ext.py +2 -0
  925. metadata/readers/dataframe/avro.py +5 -5
  926. metadata/readers/dataframe/json.py +1 -1
  927. metadata/readers/file/adls.py +20 -0
  928. metadata/readers/file/base.py +6 -0
  929. metadata/readers/file/config_source_factory.py +12 -0
  930. metadata/readers/file/gcs.py +18 -0
  931. metadata/readers/file/local.py +12 -0
  932. metadata/readers/file/s3.py +16 -0
  933. metadata/utils/constants.py +32 -24
  934. metadata/utils/datalake/datalake_utils.py +40 -4
  935. metadata/utils/execution_time_tracker.py +69 -28
  936. metadata/utils/fqn.py +61 -7
  937. metadata/utils/helpers.py +2 -0
  938. metadata/utils/importer.py +15 -6
  939. metadata/utils/logger.py +1 -1
  940. metadata/utils/lru_cache.py +2 -0
  941. metadata/utils/partition.py +93 -28
  942. metadata/utils/sqlalchemy_utils.py +15 -0
  943. metadata/utils/ssl_manager.py +181 -0
  944. metadata/utils/tag_utils.py +30 -13
  945. metadata/utils/test_utils.py +65 -0
  946. metadata/workflow/application.py +6 -1
  947. metadata/workflow/base.py +1 -1
  948. metadata/workflow/ingestion.py +19 -0
  949. metadata/workflow/metadata.py +9 -1
  950. metadata/workflow/output_handler.py +24 -2
  951. metadata/workflow/workflow_output_handler.py +2 -0
  952. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/METADATA +306 -307
  953. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/RECORD +957 -894
  954. metadata/cli/docker.py +0 -382
  955. metadata/cli/openmetadata_dag_config_migration.py +0 -109
  956. metadata/cli/openmetadata_imports_migration.py +0 -71
  957. metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +0 -28
  958. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/LICENSE +0 -0
  959. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/WHEEL +0 -0
  960. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/entry_points.txt +0 -0
  961. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -16,7 +16,7 @@ import re
16
16
  import traceback
17
17
  from typing import Dict, Iterable, List, Optional, Tuple
18
18
 
19
- from sqlalchemy import inspect, sql
19
+ from sqlalchemy import sql
20
20
  from sqlalchemy.dialects.postgresql.base import PGDialect
21
21
  from sqlalchemy.engine.reflection import Inspector
22
22
  from sqlalchemy_redshift.dialect import RedshiftDialect, RedshiftDialectMixin
@@ -32,7 +32,9 @@ from metadata.generated.schema.entity.data.storedProcedure import (
32
32
  )
33
33
  from metadata.generated.schema.entity.data.table import (
34
34
  ConstraintType,
35
- IntervalType,
35
+ PartitionColumnDetails,
36
+ PartitionIntervalTypes,
37
+ Table,
36
38
  TableConstraint,
37
39
  TablePartition,
38
40
  TableType,
@@ -47,6 +49,7 @@ from metadata.generated.schema.metadataIngestion.workflow import (
47
49
  Source as WorkflowSource,
48
50
  )
49
51
  from metadata.generated.schema.type.basic import EntityName
52
+ from metadata.ingestion.api.delete import delete_entity_by_name
50
53
  from metadata.ingestion.api.models import Either
51
54
  from metadata.ingestion.api.steps import InvalidSourceException
52
55
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
@@ -54,10 +57,16 @@ from metadata.ingestion.source.database.common_db_source import (
54
57
  CommonDbSourceService,
55
58
  TableNameAndType,
56
59
  )
60
+ from metadata.ingestion.source.database.incremental_metadata_extraction import (
61
+ IncrementalConfig,
62
+ )
57
63
  from metadata.ingestion.source.database.life_cycle_query_mixin import (
58
64
  LifeCycleQueryMixin,
59
65
  )
60
66
  from metadata.ingestion.source.database.multi_db_source import MultiDBSource
67
+ from metadata.ingestion.source.database.redshift.incremental_table_processor import (
68
+ RedshiftIncrementalTableProcessor,
69
+ )
61
70
  from metadata.ingestion.source.database.redshift.models import RedshiftStoredProcedure
62
71
  from metadata.ingestion.source.database.redshift.queries import (
63
72
  REDSHIFT_GET_ALL_RELATION_INFO,
@@ -80,6 +89,10 @@ from metadata.ingestion.source.database.stored_procedures_mixin import (
80
89
  StoredProcedureMixin,
81
90
  )
82
91
  from metadata.utils import fqn
92
+ from metadata.utils.execution_time_tracker import (
93
+ calculate_execution_time,
94
+ calculate_execution_time_generator,
95
+ )
83
96
  from metadata.utils.filters import filter_by_database
84
97
  from metadata.utils.helpers import get_start_and_end
85
98
  from metadata.utils.logger import ingestion_logger
@@ -118,20 +131,41 @@ class RedshiftSource(
118
131
  Database metadata from Redshift Source
119
132
  """
120
133
 
121
- def __init__(self, config, metadata):
134
+ def __init__(
135
+ self,
136
+ config: WorkflowSource,
137
+ metadata,
138
+ incremental_configuration: IncrementalConfig,
139
+ ):
122
140
  super().__init__(config, metadata)
123
141
  self.partition_details = {}
124
142
  self.life_cycle_query = REDSHIFT_LIFE_CYCLE_QUERY
143
+ self.context.get_global().deleted_tables = []
144
+ self.incremental = incremental_configuration
145
+ self.incremental_table_processor: Optional[
146
+ RedshiftIncrementalTableProcessor
147
+ ] = None
148
+
149
+ if self.incremental.enabled:
150
+ logger.info(
151
+ "Starting Incremental Metadata Extraction.\n\t Considering Table changes from %s",
152
+ self.incremental.start_datetime_utc,
153
+ )
125
154
 
126
155
  @classmethod
127
- def create(cls, config_dict, metadata: OpenMetadata):
156
+ def create(
157
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
158
+ ):
128
159
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
129
160
  connection: RedshiftConnection = config.serviceConnection.__root__.config
130
161
  if not isinstance(connection, RedshiftConnection):
131
162
  raise InvalidSourceException(
132
163
  f"Expected RedshiftConnection, but got {connection}"
133
164
  )
134
- return cls(config, metadata)
165
+ incremental_config = IncrementalConfig.create(
166
+ config.sourceConfig.config.incremental, pipeline_name, metadata
167
+ )
168
+ return cls(config, metadata, incremental_config)
135
169
 
136
170
  def get_partition_details(self) -> None:
137
171
  """
@@ -139,7 +173,7 @@ class RedshiftSource(
139
173
  """
140
174
  try:
141
175
  self.partition_details.clear()
142
- results = self.engine.execute(REDSHIFT_PARTITION_DETAILS).fetchall()
176
+ results = self.connection.execute(REDSHIFT_PARTITION_DETAILS).fetchall()
143
177
  for row in results:
144
178
  self.partition_details[f"{row.schema}.{row.table}"] = row.diststyle
145
179
  except Exception as exe:
@@ -158,6 +192,16 @@ class RedshiftSource(
158
192
  {"schema": schema_name},
159
193
  )
160
194
 
195
+ if self.incremental.enabled:
196
+ result = [
197
+ (name, relkind)
198
+ for name, relkind in result
199
+ if name
200
+ in self.incremental_table_processor.get_not_deleted(
201
+ schema_name=schema_name
202
+ )
203
+ ]
204
+
161
205
  return [
162
206
  TableNameAndType(
163
207
  name=name, type_=STANDARD_TABLE_TYPES.get(relkind, TableType.Regular)
@@ -165,6 +209,35 @@ class RedshiftSource(
165
209
  for name, relkind in result
166
210
  ]
167
211
 
212
+ def query_view_names_and_types(
213
+ self, schema_name: str
214
+ ) -> Iterable[TableNameAndType]:
215
+ """
216
+ Connect to the source database to get the view
217
+ name and type. By default, use the inspector method
218
+ to get the names and pass the View type.
219
+
220
+ This is useful for sources where we need fine-grained
221
+ logic on how to handle table types, e.g., material views,...
222
+ """
223
+
224
+ result = self.inspector.get_view_names(schema_name) or []
225
+
226
+ if self.incremental.enabled:
227
+ result = [
228
+ name
229
+ for name in result
230
+ if name
231
+ in self.incremental_table_processor.get_not_deleted(
232
+ schema_name=schema_name
233
+ )
234
+ ]
235
+
236
+ return [
237
+ TableNameAndType(name=table_name, type_=TableType.View)
238
+ for table_name in result
239
+ ]
240
+
168
241
  def get_configured_database(self) -> Optional[str]:
169
242
  if not self.service_connection.ingestAllDatabases:
170
243
  return self.service_connection.database
@@ -173,25 +246,59 @@ class RedshiftSource(
173
246
  def get_database_names_raw(self) -> Iterable[str]:
174
247
  yield from self._execute_database_query(REDSHIFT_GET_DATABASE_NAMES)
175
248
 
249
+ def _set_incremental_table_processor(self, database: str):
250
+ """Prepares the needed data for doing incremental metadata extration for a given database.
251
+
252
+ 1. Queries Redshift to get the changes done after the `self.incremental.start_datetime_utc`
253
+ 2. Sets the table map with the changes within the RedshiftIncrementalTableProcessor
254
+ 3. Sets the deleted tables in the context
255
+ """
256
+ if self.incremental.enabled:
257
+ self.incremental_table_processor = RedshiftIncrementalTableProcessor.create(
258
+ self.connection, self.inspector.default_schema_name
259
+ )
260
+
261
+ self.incremental_table_processor.set_table_map(
262
+ database=database, start_date=self.incremental.start_datetime_utc
263
+ )
264
+
265
+ self.context.get_global().deleted_tables.extend(
266
+ fqn.build(
267
+ metadata=self.metadata,
268
+ entity_type=Table,
269
+ service_name=self.context.get().database_service,
270
+ database_name=database,
271
+ schema_name=schema_name,
272
+ table_name=table_name,
273
+ )
274
+ for schema_name, table_name in self.incremental_table_processor.get_deleted()
275
+ )
276
+
176
277
  def get_database_names(self) -> Iterable[str]:
177
278
  if not self.config.serviceConnection.__root__.config.ingestAllDatabases:
178
- self.inspector = inspect(self.engine)
179
279
  self.get_partition_details()
280
+
281
+ self._set_incremental_table_processor(
282
+ self.config.serviceConnection.__root__.config.database
283
+ )
284
+
180
285
  yield self.config.serviceConnection.__root__.config.database
181
286
  else:
182
287
  for new_database in self.get_database_names_raw():
183
288
  database_fqn = fqn.build(
184
289
  self.metadata,
185
290
  entity_type=Database,
186
- service_name=self.context.database_service,
291
+ service_name=self.context.get().database_service,
187
292
  database_name=new_database,
188
293
  )
189
294
 
190
295
  if filter_by_database(
191
296
  self.source_config.databaseFilterPattern,
192
- database_fqn
193
- if self.source_config.useFqnForFiltering
194
- else new_database,
297
+ (
298
+ database_fqn
299
+ if self.source_config.useFqnForFiltering
300
+ else new_database
301
+ ),
195
302
  ):
196
303
  self.status.filter(database_fqn, "Database Filtered Out")
197
304
  continue
@@ -199,6 +306,9 @@ class RedshiftSource(
199
306
  try:
200
307
  self.set_inspector(database_name=new_database)
201
308
  self.get_partition_details()
309
+
310
+ self._set_incremental_table_processor(new_database)
311
+
202
312
  yield new_database
203
313
  except Exception as exc:
204
314
  logger.debug(traceback.format_exc())
@@ -206,26 +316,34 @@ class RedshiftSource(
206
316
  f"Error trying to connect to database {new_database}: {exc}"
207
317
  )
208
318
 
209
- def _get_partition_key(self, diststyle: str) -> Optional[List[str]]:
319
+ def _get_partition_key(self, diststyle: str) -> Optional[str]:
210
320
  try:
211
321
  regex = re.match(r"KEY\((\w+)\)", diststyle)
212
322
  if regex:
213
- return [regex.group(1)]
323
+ return regex.group(1)
214
324
  except Exception as err:
215
325
  logger.debug(traceback.format_exc())
216
326
  logger.warning(err)
217
327
  return None
218
328
 
329
+ @calculate_execution_time()
219
330
  def get_table_partition_details(
220
331
  self, table_name: str, schema_name: str, inspector: Inspector
221
- ) -> Tuple[bool, TablePartition]:
332
+ ) -> Tuple[bool, Optional[TablePartition]]:
222
333
  diststyle = self.partition_details.get(f"{schema_name}.{table_name}")
223
334
  if diststyle:
224
- partition_details = TablePartition(
225
- columns=self._get_partition_key(diststyle),
226
- intervalType=IntervalType.COLUMN_VALUE,
227
- )
228
- return True, partition_details
335
+ distkey = self._get_partition_key(diststyle)
336
+ if distkey is not None:
337
+ partition_details = TablePartition(
338
+ columns=[
339
+ PartitionColumnDetails(
340
+ columnName=distkey,
341
+ intervalType=PartitionIntervalTypes.COLUMN_VALUE,
342
+ interval=None,
343
+ )
344
+ ]
345
+ )
346
+ return True, partition_details
229
347
  return False, None
230
348
 
231
349
  def process_additional_table_constraints(
@@ -254,15 +372,16 @@ class RedshiftSource(
254
372
  def get_stored_procedures(self) -> Iterable[RedshiftStoredProcedure]:
255
373
  """List Snowflake stored procedures"""
256
374
  if self.source_config.includeStoredProcedures:
257
- results = self.engine.execute(
375
+ results = self.connection.execute(
258
376
  REDSHIFT_GET_STORED_PROCEDURES.format(
259
- schema_name=self.context.database_schema,
377
+ schema_name=self.context.get().database_schema,
260
378
  )
261
379
  ).all()
262
380
  for row in results:
263
381
  stored_procedure = RedshiftStoredProcedure.parse_obj(dict(row))
264
382
  yield stored_procedure
265
383
 
384
+ @calculate_execution_time_generator()
266
385
  def yield_stored_procedure(
267
386
  self, stored_procedure: RedshiftStoredProcedure
268
387
  ) -> Iterable[Either[CreateStoredProcedureRequest]]:
@@ -278,9 +397,9 @@ class RedshiftSource(
278
397
  databaseSchema=fqn.build(
279
398
  metadata=self.metadata,
280
399
  entity_type=DatabaseSchema,
281
- service_name=self.context.database_service,
282
- database_name=self.context.database,
283
- schema_name=self.context.database_schema,
400
+ service_name=self.context.get().database_service,
401
+ database_name=self.context.get().database,
402
+ schema_name=self.context.get().database_schema,
284
403
  ),
285
404
  )
286
405
  yield Either(right=stored_procedure_request)
@@ -304,7 +423,7 @@ class RedshiftSource(
304
423
  start, _ = get_start_and_end(self.source_config.queryLogDuration)
305
424
  query = REDSHIFT_GET_STORED_PROCEDURE_QUERIES.format(
306
425
  start_date=start,
307
- database_name=self.context.database,
426
+ database_name=self.context.get().database,
308
427
  )
309
428
 
310
429
  queries_dict = self.procedure_queries_dict(
@@ -312,3 +431,26 @@ class RedshiftSource(
312
431
  )
313
432
 
314
433
  return queries_dict
434
+
435
+ def mark_tables_as_deleted(self):
436
+ """
437
+ Use the current inspector to mark tables as deleted
438
+ """
439
+ if self.incremental.enabled:
440
+ if not self.context.get().__dict__.get("database"):
441
+ raise ValueError(
442
+ "No Database found in the context. We cannot run the table deletion."
443
+ )
444
+
445
+ if self.source_config.markDeletedTables:
446
+ logger.info(
447
+ f"Mark Deleted Tables set to True. Processing database [{self.context.get().database}]"
448
+ )
449
+ yield from delete_entity_by_name(
450
+ self.metadata,
451
+ entity_type=Table,
452
+ entity_names=self.context.get_global().deleted_tables,
453
+ mark_deleted_entity=self.source_config.markDeletedTables,
454
+ )
455
+ else:
456
+ yield from super().mark_tables_as_deleted()
@@ -11,10 +11,14 @@
11
11
  """
12
12
  Redshift models
13
13
  """
14
- from typing import Optional
14
+ import re
15
+ from typing import Dict, List, Optional, Tuple
15
16
 
16
17
  from pydantic import BaseModel
17
18
 
19
+ TableName = str
20
+ SchemaName = str
21
+
18
22
 
19
23
  class RedshiftStoredProcedure(BaseModel):
20
24
  """Redshift stored procedure list query results"""
@@ -22,3 +26,72 @@ class RedshiftStoredProcedure(BaseModel):
22
26
  name: str
23
27
  owner: Optional[str]
24
28
  definition: str
29
+
30
+
31
+ class RedshiftTableChangeQueryRegex(BaseModel):
32
+ """Redshift Table Change Query Regex Model. Used for Incremental Extraction."""
33
+
34
+ regex: re.Pattern
35
+ deleted: bool
36
+
37
+
38
+ class RedshiftTable(BaseModel):
39
+ """Redshift Simplified Table Model. Used for Incremental Extraction."""
40
+
41
+ name: str
42
+ deleted: bool
43
+
44
+
45
+ class RedshiftTableMap(BaseModel):
46
+ """Redshift TableMap Model. Used for Incremental Extraction"""
47
+
48
+ table_map: Dict[SchemaName, Dict[TableName, RedshiftTable]]
49
+
50
+ @classmethod
51
+ def default(cls) -> "RedshiftTableMap":
52
+ """Creates a new RedshiftTableMap with an Empty dict."""
53
+ return cls(table_map={})
54
+
55
+ def update(self, schema: SchemaName, table: RedshiftTable):
56
+ """Updates the Redshift Table Map.
57
+
58
+ If the table is already registered in the map, it does nothing.
59
+ This relies on the processing of the table being ordered by latest changes first.
60
+ """
61
+ if schema not in self.table_map:
62
+ self.table_map[schema] = {table.name: table}
63
+ else:
64
+ if table.name not in self.table_map[schema]:
65
+ self.table_map[schema][table.name] = table
66
+
67
+ def get_deleted(
68
+ self, schema_name: Optional[SchemaName] = None
69
+ ) -> List[Tuple[SchemaName, TableName]]:
70
+ """Returns all deleted table names for a given schema."""
71
+ if schema_name:
72
+ return [
73
+ (schema_name, table.name)
74
+ for table in self.table_map.get(schema_name, {}).values()
75
+ if table.deleted
76
+ ]
77
+
78
+ deleted_tables = []
79
+
80
+ for schema_name in self.table_map:
81
+ deleted_tables.extend(
82
+ [
83
+ (schema_name, table.name)
84
+ for table in self.table_map.get(schema_name, {}).values()
85
+ if table.deleted
86
+ ]
87
+ )
88
+
89
+ return deleted_tables
90
+
91
+ def get_not_deleted(self, schema_name: SchemaName) -> List[TableName]:
92
+ """Returns all not deleted table names for a given schema."""
93
+ return [
94
+ table.name
95
+ for table in self.table_map.get(schema_name, {}).values()
96
+ if not table.deleted
97
+ ]
@@ -248,7 +248,7 @@ REDSHIFT_GET_ALL_RELATIONS = """
248
248
  AS "diststyle",
249
249
  c.relowner AS "owner_id",
250
250
  u.usename AS "owner_name",
251
- TRIM(TRAILING ';' FROM
251
+ TRIM(TRAILING ';' FROM
252
252
  'create view ' || n.nspname || '.' || c.relname || ' as ' ||pg_catalog.pg_get_viewdef(c.oid, true))
253
253
  AS "view_definition",
254
254
  pg_catalog.array_to_string(c.relacl, '\n') AS "privileges"
@@ -345,7 +345,7 @@ select
345
345
  from SP_HISTORY sp
346
346
  join Q_HISTORY q
347
347
  on sp.procedure_session_id = q.query_session_id
348
- and q.query_start_time between sp.procedure_start_time and sp.procedure_end_time
348
+ and q.query_start_time between sp.procedure_start_time and sp.procedure_end_time
349
349
  and q.query_end_time between sp.procedure_start_time and sp.procedure_end_time
350
350
  order by procedure_start_time DESC
351
351
  """
@@ -360,3 +360,18 @@ where o.schema = '{schema_name}'
360
360
  and o.database = '{database_name}'
361
361
  """
362
362
  )
363
+
364
+ REDSHIFT_TABLE_CHANGES_QUERY = """
365
+ SELECT
366
+ query_text
367
+ FROM SYS_QUERY_HISTORY
368
+ WHERE status = 'success'
369
+ AND (
370
+ query_type = 'DDL' OR
371
+ (query_type = 'UTILITY' AND query_text ilike '%%COMMENT ON%%') OR
372
+ (query_type = 'CTAS' AND query_text ilike '%%CREATE TABLE%%')
373
+ )
374
+ and database_name = '{database}'
375
+ and end_time >= '{start_date}'
376
+ ORDER BY end_time DESC
377
+ """
@@ -38,7 +38,9 @@ class RedshiftQueryParserSource(QueryParserSource, ABC):
38
38
  filters: str
39
39
 
40
40
  @classmethod
41
- def create(cls, config_dict, metadata: OpenMetadata):
41
+ def create(
42
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
43
+ ):
42
44
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
43
45
  connection: RedshiftConnection = config.serviceConnection.__root__.config
44
46
  if not isinstance(connection, RedshiftConnection):
@@ -33,6 +33,7 @@ from metadata.ingestion.source.database.redshift.queries import (
33
33
  REDSHIFT_GET_SCHEMA_COLUMN_INFO,
34
34
  REDSHIFT_TABLE_COMMENTS,
35
35
  )
36
+ from metadata.utils.execution_time_tracker import calculate_execution_time
36
37
  from metadata.utils.sqlalchemy_utils import get_table_comment_wrapper
37
38
 
38
39
  sa_version = Version(sa.__version__)
@@ -45,6 +46,7 @@ ischema_names.update(REDSHIFT_ISCHEMA_NAMES)
45
46
 
46
47
 
47
48
  # pylint: disable=protected-access
49
+ @calculate_execution_time()
48
50
  @reflection.cache
49
51
  def get_columns(self, connection, table_name, schema=None, **kw):
50
52
  """
@@ -80,6 +82,7 @@ def get_columns(self, connection, table_name, schema=None, **kw):
80
82
  return columns
81
83
 
82
84
 
85
+ @calculate_execution_time()
83
86
  def _get_column_info(self, *args, **kwargs):
84
87
  """
85
88
  Get column info
@@ -112,6 +115,7 @@ def _get_column_info(self, *args, **kwargs):
112
115
  return column_info
113
116
 
114
117
 
118
+ @calculate_execution_time()
115
119
  @reflection.cache
116
120
  def _get_schema_column_info(
117
121
  self, connection, schema=None, **kw
@@ -130,13 +134,12 @@ def _get_schema_column_info(
130
134
  """
131
135
  schema_clause = f"AND schema = '{schema if schema else ''}'"
132
136
  all_columns = defaultdict(list)
133
- with connection.connect() as cnct:
134
- result = cnct.execute(
135
- REDSHIFT_GET_SCHEMA_COLUMN_INFO.format(schema_clause=schema_clause)
136
- )
137
- for col in result:
138
- key = RelationKey(col.table_name, col.schema, connection)
139
- all_columns[key].append(col)
137
+ result = connection.execute(
138
+ REDSHIFT_GET_SCHEMA_COLUMN_INFO.format(schema_clause=schema_clause)
139
+ )
140
+ for col in result:
141
+ key = RelationKey(col.table_name, col.schema, connection)
142
+ all_columns[key].append(col)
140
143
  return dict(all_columns)
141
144
 
142
145
 
@@ -270,6 +273,7 @@ def _get_charlen(format_type):
270
273
  return charlen
271
274
 
272
275
 
276
+ @calculate_execution_time()
273
277
  @reflection.cache
274
278
  def _get_pg_column_info( # pylint: disable=too-many-locals,too-many-arguments, unused-argument
275
279
  self,
@@ -353,6 +357,7 @@ def _get_pg_column_info( # pylint: disable=too-many-locals,too-many-arguments,
353
357
  return column_info
354
358
 
355
359
 
360
+ @calculate_execution_time()
356
361
  @reflection.cache
357
362
  def get_table_comment(
358
363
  self, connection, table_name, schema=None, **kw # pylint: disable=unused-argument
@@ -366,6 +371,7 @@ def get_table_comment(
366
371
  )
367
372
 
368
373
 
374
+ @calculate_execution_time()
369
375
  @reflection.cache
370
376
  def _get_all_relation_info(self, connection, **kw): # pylint: disable=unused-argument
371
377
  # pylint: disable=consider-using-f-string
@@ -81,7 +81,9 @@ class SalesforceSource(DatabaseServiceSource):
81
81
  self.database_source_state = set()
82
82
 
83
83
  @classmethod
84
- def create(cls, config_dict, metadata: OpenMetadata):
84
+ def create(
85
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
86
+ ):
85
87
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
86
88
  connection: SalesforceConnection = config.serviceConnection.__root__.config
87
89
  if not isinstance(connection, SalesforceConnection):
@@ -112,7 +114,7 @@ class SalesforceSource(DatabaseServiceSource):
112
114
  yield Either(
113
115
  right=CreateDatabaseRequest(
114
116
  name=database_name,
115
- service=self.context.database_service,
117
+ service=self.context.get().database_service,
116
118
  )
117
119
  )
118
120
 
@@ -135,8 +137,8 @@ class SalesforceSource(DatabaseServiceSource):
135
137
  database=fqn.build(
136
138
  metadata=self.metadata,
137
139
  entity_type=Database,
138
- service_name=self.context.database_service,
139
- database_name=self.context.database,
140
+ service_name=self.context.get().database_service,
141
+ database_name=self.context.get().database,
140
142
  ),
141
143
  )
142
144
  )
@@ -150,7 +152,7 @@ class SalesforceSource(DatabaseServiceSource):
150
152
 
151
153
  :return: tables or views, depending on config
152
154
  """
153
- schema_name = self.context.database_schema
155
+ schema_name = self.context.get().database_schema
154
156
 
155
157
  try:
156
158
  if self.service_connection.sobjectName:
@@ -165,9 +167,9 @@ class SalesforceSource(DatabaseServiceSource):
165
167
  table_fqn = fqn.build(
166
168
  self.metadata,
167
169
  entity_type=Table,
168
- service_name=self.context.database_service,
169
- database_name=self.context.database,
170
- schema_name=self.context.database_schema,
170
+ service_name=self.context.get().database_service,
171
+ database_name=self.context.get().database,
172
+ schema_name=self.context.get().database_schema,
171
173
  table_name=table_name,
172
174
  )
173
175
  if filter_by_table(
@@ -240,9 +242,9 @@ class SalesforceSource(DatabaseServiceSource):
240
242
  databaseSchema=fqn.build(
241
243
  metadata=self.metadata,
242
244
  entity_type=DatabaseSchema,
243
- service_name=self.context.database_service,
244
- database_name=self.context.database,
245
- schema_name=self.context.database_schema,
245
+ service_name=self.context.get().database_service,
246
+ database_name=self.context.get().database,
247
+ schema_name=self.context.get().database_schema,
246
248
  ),
247
249
  sourceUrl=self.get_source_url(
248
250
  table_name=table_name,