openmetadata-ingestion 1.5.0.0rc1__py3-none-any.whl → 1.5.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (676) hide show
  1. _openmetadata_testutils/kafka/__init__.py +0 -0
  2. _openmetadata_testutils/kafka/load_csv_data.py +133 -0
  3. _openmetadata_testutils/kafka/schema_registry_container.py +31 -0
  4. _openmetadata_testutils/postgres/conftest.py +5 -0
  5. _openmetadata_testutils/pydantic/test_utils.py +5 -4
  6. metadata/cli/app.py +0 -1
  7. metadata/cli/dataquality.py +0 -1
  8. metadata/cli/ingest.py +0 -1
  9. metadata/cli/profile.py +0 -1
  10. metadata/cli/usage.py +0 -1
  11. metadata/clients/domo_client.py +1 -1
  12. metadata/data_quality/validations/column/sqlalchemy/columnValueLengthsToBeBetween.py +7 -6
  13. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeBetween.py +7 -2
  14. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +44 -12
  15. metadata/generated/antlr/EntityLinkLexer.py +377 -379
  16. metadata/generated/schema/analytics/__init__.py +1 -1
  17. metadata/generated/schema/analytics/basic.py +1 -1
  18. metadata/generated/schema/analytics/reportData.py +1 -1
  19. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  20. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  21. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  22. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  23. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  24. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  25. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  26. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  27. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  28. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  29. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  30. metadata/generated/schema/api/__init__.py +1 -1
  31. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  32. metadata/generated/schema/api/analytics/__init__.py +1 -1
  33. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  34. metadata/generated/schema/api/automations/__init__.py +1 -1
  35. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  36. metadata/generated/schema/api/bulkAssets.py +1 -1
  37. metadata/generated/schema/api/classification/__init__.py +1 -1
  38. metadata/generated/schema/api/classification/createClassification.py +1 -1
  39. metadata/generated/schema/api/classification/createTag.py +1 -1
  40. metadata/generated/schema/api/classification/loadTags.py +1 -1
  41. metadata/generated/schema/api/createBot.py +1 -1
  42. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  43. metadata/generated/schema/api/createType.py +1 -1
  44. metadata/generated/schema/api/data/__init__.py +1 -1
  45. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  46. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  47. metadata/generated/schema/api/data/createChart.py +1 -1
  48. metadata/generated/schema/api/data/createContainer.py +1 -1
  49. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  50. metadata/generated/schema/api/data/createDashboard.py +1 -1
  51. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  52. metadata/generated/schema/api/data/createDatabase.py +1 -1
  53. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  54. metadata/generated/schema/api/data/createGlossary.py +1 -1
  55. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  56. metadata/generated/schema/api/data/createMlModel.py +1 -1
  57. metadata/generated/schema/api/data/createPipeline.py +1 -1
  58. metadata/generated/schema/api/data/createQuery.py +1 -1
  59. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  60. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  61. metadata/generated/schema/api/data/createTable.py +1 -1
  62. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  63. metadata/generated/schema/api/data/createTopic.py +1 -1
  64. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  65. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  66. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  67. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  68. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  69. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  70. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  71. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  72. metadata/generated/schema/api/docStore/__init__.py +1 -1
  73. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  74. metadata/generated/schema/api/domains/__init__.py +1 -1
  75. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  76. metadata/generated/schema/api/domains/createDomain.py +1 -1
  77. metadata/generated/schema/api/feed/__init__.py +1 -1
  78. metadata/generated/schema/api/feed/closeTask.py +1 -1
  79. metadata/generated/schema/api/feed/createPost.py +1 -1
  80. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  81. metadata/generated/schema/api/feed/createThread.py +1 -1
  82. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  83. metadata/generated/schema/api/feed/threadCount.py +1 -1
  84. metadata/generated/schema/api/lineage/__init__.py +1 -1
  85. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  86. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  87. metadata/generated/schema/api/policies/__init__.py +1 -1
  88. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  89. metadata/generated/schema/api/services/__init__.py +1 -1
  90. metadata/generated/schema/api/services/createApiService.py +1 -1
  91. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  92. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  93. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  94. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  95. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  96. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  97. metadata/generated/schema/api/services/createSearchService.py +1 -1
  98. metadata/generated/schema/api/services/createStorageService.py +1 -1
  99. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  100. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  101. metadata/generated/schema/api/setOwner.py +1 -1
  102. metadata/generated/schema/api/teams/__init__.py +1 -1
  103. metadata/generated/schema/api/teams/createPersona.py +1 -1
  104. metadata/generated/schema/api/teams/createRole.py +1 -1
  105. metadata/generated/schema/api/teams/createTeam.py +1 -1
  106. metadata/generated/schema/api/teams/createUser.py +1 -1
  107. metadata/generated/schema/api/tests/__init__.py +1 -1
  108. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  109. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  110. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  111. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  112. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  113. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  114. metadata/generated/schema/api/voteRequest.py +1 -1
  115. metadata/generated/schema/auth/__init__.py +1 -1
  116. metadata/generated/schema/auth/basicAuth.py +1 -1
  117. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  118. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  119. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  120. metadata/generated/schema/auth/emailRequest.py +1 -1
  121. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  122. metadata/generated/schema/auth/generateToken.py +1 -1
  123. metadata/generated/schema/auth/jwtAuth.py +1 -1
  124. metadata/generated/schema/auth/loginRequest.py +1 -1
  125. metadata/generated/schema/auth/logoutRequest.py +1 -1
  126. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  127. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  128. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  129. metadata/generated/schema/auth/refreshToken.py +1 -1
  130. metadata/generated/schema/auth/registrationRequest.py +1 -1
  131. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  132. metadata/generated/schema/auth/revokeToken.py +1 -1
  133. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  134. metadata/generated/schema/auth/ssoAuth.py +1 -1
  135. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  136. metadata/generated/schema/configuration/__init__.py +1 -1
  137. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/authConfig.py +1 -1
  139. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  146. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  147. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  149. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  150. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  151. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  152. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  153. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  154. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  155. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  159. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/slackAppConfiguration.py +18 -7
  161. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  165. metadata/generated/schema/dataInsight/__init__.py +1 -1
  166. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  167. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +2 -1
  168. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  169. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  170. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  171. metadata/generated/schema/dataInsight/custom/lineChart.py +23 -2
  172. metadata/generated/schema/dataInsight/custom/summaryCard.py +8 -1
  173. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  174. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -21
  175. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  176. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  177. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  178. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  179. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  180. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  181. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  182. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  183. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  184. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  185. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  186. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  187. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  188. metadata/generated/schema/email/__init__.py +1 -1
  189. metadata/generated/schema/email/emailRequest.py +1 -1
  190. metadata/generated/schema/email/emailTemplate.py +1 -1
  191. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  192. metadata/generated/schema/email/smtpSettings.py +1 -1
  193. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  194. metadata/generated/schema/entity/__init__.py +1 -1
  195. metadata/generated/schema/entity/applications/__init__.py +1 -1
  196. metadata/generated/schema/entity/applications/app.py +1 -1
  197. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  202. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  203. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  208. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  211. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  213. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +10 -2
  216. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  217. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +9 -1
  218. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  222. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  223. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  224. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  225. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  226. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  227. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  228. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  229. metadata/generated/schema/entity/automations/__init__.py +1 -1
  230. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  231. metadata/generated/schema/entity/automations/workflow.py +1 -1
  232. metadata/generated/schema/entity/bot.py +1 -1
  233. metadata/generated/schema/entity/classification/__init__.py +1 -1
  234. metadata/generated/schema/entity/classification/classification.py +1 -1
  235. metadata/generated/schema/entity/classification/tag.py +1 -1
  236. metadata/generated/schema/entity/data/__init__.py +1 -1
  237. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  238. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  239. metadata/generated/schema/entity/data/chart.py +1 -1
  240. metadata/generated/schema/entity/data/container.py +1 -1
  241. metadata/generated/schema/entity/data/dashboard.py +1 -1
  242. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  243. metadata/generated/schema/entity/data/database.py +1 -1
  244. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  245. metadata/generated/schema/entity/data/glossary.py +1 -1
  246. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  247. metadata/generated/schema/entity/data/metrics.py +1 -1
  248. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  249. metadata/generated/schema/entity/data/pipeline.py +1 -1
  250. metadata/generated/schema/entity/data/query.py +1 -1
  251. metadata/generated/schema/entity/data/report.py +1 -1
  252. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  253. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  254. metadata/generated/schema/entity/data/table.py +2 -1
  255. metadata/generated/schema/entity/data/topic.py +1 -1
  256. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  257. metadata/generated/schema/entity/docStore/document.py +1 -1
  258. metadata/generated/schema/entity/domains/__init__.py +1 -1
  259. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  260. metadata/generated/schema/entity/domains/domain.py +1 -1
  261. metadata/generated/schema/entity/events/__init__.py +1 -1
  262. metadata/generated/schema/entity/events/webhook.py +1 -1
  263. metadata/generated/schema/entity/feed/__init__.py +1 -1
  264. metadata/generated/schema/entity/feed/assets.py +1 -1
  265. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  266. metadata/generated/schema/entity/feed/description.py +1 -1
  267. metadata/generated/schema/entity/feed/domain.py +1 -1
  268. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  269. metadata/generated/schema/entity/feed/owner.py +1 -1
  270. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  271. metadata/generated/schema/entity/feed/tag.py +1 -1
  272. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  273. metadata/generated/schema/entity/feed/thread.py +1 -1
  274. metadata/generated/schema/entity/policies/__init__.py +1 -1
  275. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  276. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  277. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  278. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  279. metadata/generated/schema/entity/policies/filters.py +1 -1
  280. metadata/generated/schema/entity/policies/policy.py +1 -1
  281. metadata/generated/schema/entity/services/__init__.py +1 -1
  282. metadata/generated/schema/entity/services/apiService.py +1 -1
  283. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  284. metadata/generated/schema/entity/services/connections/apiService/__init__.py +1 -1
  285. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  287. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  288. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  289. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  290. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  291. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  292. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +7 -2
  296. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  297. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  301. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  302. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  303. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  304. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  305. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +2 -2
  369. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +2 -1
  372. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  376. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  382. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  383. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  390. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  395. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  412. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  414. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  415. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  416. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  420. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +2 -2
  425. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  426. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  427. metadata/generated/schema/entity/services/databaseService.py +1 -1
  428. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  429. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  430. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  431. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  432. metadata/generated/schema/entity/services/messagingService.py +1 -1
  433. metadata/generated/schema/entity/services/metadataService.py +1 -1
  434. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  435. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  436. metadata/generated/schema/entity/services/searchService.py +1 -1
  437. metadata/generated/schema/entity/services/serviceType.py +1 -1
  438. metadata/generated/schema/entity/services/storageService.py +1 -1
  439. metadata/generated/schema/entity/teams/__init__.py +1 -1
  440. metadata/generated/schema/entity/teams/persona.py +1 -1
  441. metadata/generated/schema/entity/teams/role.py +1 -1
  442. metadata/generated/schema/entity/teams/team.py +1 -1
  443. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  444. metadata/generated/schema/entity/teams/user.py +1 -1
  445. metadata/generated/schema/entity/type.py +1 -1
  446. metadata/generated/schema/entity/utils/__init__.py +1 -1
  447. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  448. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  449. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  450. metadata/generated/schema/events/__init__.py +1 -1
  451. metadata/generated/schema/events/alertMetrics.py +1 -1
  452. metadata/generated/schema/events/api/__init__.py +1 -1
  453. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  454. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  455. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  456. metadata/generated/schema/events/eventFilterRule.py +1 -1
  457. metadata/generated/schema/events/eventSubscription.py +1 -1
  458. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  459. metadata/generated/schema/events/failedEvent.py +1 -1
  460. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  461. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  462. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  463. metadata/generated/schema/metadataIngestion/application.py +1 -1
  464. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  465. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  466. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  467. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +2 -2
  468. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  469. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  470. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  471. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  472. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  473. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  474. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  475. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  476. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  477. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  478. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  479. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  480. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  481. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  482. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  483. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  484. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  485. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  486. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  487. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  488. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  489. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  490. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  491. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  492. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  493. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  494. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  495. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  496. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  497. metadata/generated/schema/monitoring/__init__.py +1 -1
  498. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  499. metadata/generated/schema/security/__init__.py +1 -1
  500. metadata/generated/schema/security/client/__init__.py +1 -1
  501. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  502. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  503. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  504. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  505. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  506. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  507. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  508. metadata/generated/schema/security/client/samlSSOClientConfig.py +7 -5
  509. metadata/generated/schema/security/credentials/__init__.py +1 -1
  510. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  511. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  512. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  513. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  514. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  515. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  516. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  517. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  518. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  519. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  520. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  521. metadata/generated/schema/security/credentials/gitlabCredentials.py +34 -0
  522. metadata/generated/schema/security/sasl/__init__.py +1 -1
  523. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  524. metadata/generated/schema/security/secrets/__init__.py +1 -1
  525. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  526. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  527. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  528. metadata/generated/schema/security/securityConfiguration.py +1 -1
  529. metadata/generated/schema/security/ssl/__init__.py +1 -1
  530. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  531. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  532. metadata/generated/schema/settings/__init__.py +1 -1
  533. metadata/generated/schema/settings/settings.py +2 -1
  534. metadata/generated/schema/system/__init__.py +1 -1
  535. metadata/generated/schema/system/entityError.py +1 -1
  536. metadata/generated/schema/system/eventPublisherJob.py +5 -1
  537. metadata/generated/schema/system/indexingError.py +1 -1
  538. metadata/generated/schema/system/limitsResponse.py +1 -1
  539. metadata/generated/schema/system/ui/__init__.py +1 -1
  540. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  541. metadata/generated/schema/system/ui/page.py +1 -1
  542. metadata/generated/schema/system/validationResponse.py +1 -1
  543. metadata/generated/schema/tests/__init__.py +1 -1
  544. metadata/generated/schema/tests/assigned.py +1 -1
  545. metadata/generated/schema/tests/basic.py +20 -20
  546. metadata/generated/schema/tests/customMetric.py +1 -1
  547. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  548. metadata/generated/schema/tests/resolved.py +1 -1
  549. metadata/generated/schema/tests/testCase.py +1 -1
  550. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  551. metadata/generated/schema/tests/testDefinition.py +1 -1
  552. metadata/generated/schema/tests/testSuite.py +1 -1
  553. metadata/generated/schema/type/__init__.py +1 -1
  554. metadata/generated/schema/type/apiSchema.py +1 -1
  555. metadata/generated/schema/type/auditLog.py +1 -1
  556. metadata/generated/schema/type/basic.py +1 -1
  557. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  558. metadata/generated/schema/type/changeEvent.py +1 -1
  559. metadata/generated/schema/type/changeEventType.py +1 -1
  560. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  561. metadata/generated/schema/type/csvDocumentation.py +1 -1
  562. metadata/generated/schema/type/csvErrorType.py +1 -1
  563. metadata/generated/schema/type/csvFile.py +1 -1
  564. metadata/generated/schema/type/csvImportResult.py +1 -1
  565. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  566. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  567. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  568. metadata/generated/schema/type/customProperty.py +1 -1
  569. metadata/generated/schema/type/dailyCount.py +1 -1
  570. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  571. metadata/generated/schema/type/entityHierarchy.py +1 -1
  572. metadata/generated/schema/type/entityHistory.py +1 -1
  573. metadata/generated/schema/type/entityLineage.py +1 -1
  574. metadata/generated/schema/type/entityReference.py +1 -1
  575. metadata/generated/schema/type/entityReferenceList.py +1 -1
  576. metadata/generated/schema/type/entityRelationship.py +1 -1
  577. metadata/generated/schema/type/entityUsage.py +1 -1
  578. metadata/generated/schema/type/filterPattern.py +1 -1
  579. metadata/generated/schema/type/function.py +1 -1
  580. metadata/generated/schema/type/include.py +1 -1
  581. metadata/generated/schema/type/jdbcConnection.py +1 -1
  582. metadata/generated/schema/type/lifeCycle.py +1 -1
  583. metadata/generated/schema/type/paging.py +1 -1
  584. metadata/generated/schema/type/profile.py +1 -1
  585. metadata/generated/schema/type/queryParserData.py +1 -1
  586. metadata/generated/schema/type/reaction.py +1 -1
  587. metadata/generated/schema/type/schedule.py +1 -1
  588. metadata/generated/schema/type/schema.py +1 -1
  589. metadata/generated/schema/type/tableQuery.py +1 -1
  590. metadata/generated/schema/type/tableUsageCount.py +1 -1
  591. metadata/generated/schema/type/tagLabel.py +1 -1
  592. metadata/generated/schema/type/usageDetails.py +1 -1
  593. metadata/generated/schema/type/usageRequest.py +1 -1
  594. metadata/generated/schema/type/votes.py +1 -1
  595. metadata/great_expectations/action.py +1 -1
  596. metadata/ingestion/connections/builders.py +6 -0
  597. metadata/ingestion/connections/test_connections.py +5 -0
  598. metadata/ingestion/lineage/models.py +4 -0
  599. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +1 -1
  600. metadata/ingestion/source/connections.py +19 -0
  601. metadata/ingestion/source/dashboard/domodashboard/metadata.py +3 -3
  602. metadata/ingestion/source/dashboard/looker/metadata.py +8 -3
  603. metadata/ingestion/source/dashboard/looker/utils.py +6 -3
  604. metadata/ingestion/source/dashboard/metabase/client.py +2 -1
  605. metadata/ingestion/source/dashboard/powerbi/metadata.py +2 -1
  606. metadata/ingestion/source/dashboard/qlikcloud/client.py +1 -1
  607. metadata/ingestion/source/dashboard/superset/mixin.py +5 -0
  608. metadata/ingestion/source/dashboard/tableau/metadata.py +10 -7
  609. metadata/ingestion/source/database/bigquery/metadata.py +5 -1
  610. metadata/ingestion/source/database/column_type_parser.py +3 -2
  611. metadata/ingestion/source/database/common_db_source.py +9 -4
  612. metadata/ingestion/source/database/database_service.py +1 -1
  613. metadata/ingestion/source/database/databricks/lineage.py +2 -2
  614. metadata/ingestion/source/database/databricks/metadata.py +100 -18
  615. metadata/ingestion/source/database/databricks/queries.py +3 -1
  616. metadata/ingestion/source/database/databricks/usage.py +2 -2
  617. metadata/ingestion/source/database/datalake/clients/gcs.py +4 -0
  618. metadata/ingestion/source/database/db2/metadata.py +8 -1
  619. metadata/ingestion/source/database/dbt/constants.py +1 -7
  620. metadata/ingestion/source/database/dbt/dbt_config.py +18 -19
  621. metadata/ingestion/source/database/dbt/dbt_service.py +4 -3
  622. metadata/ingestion/source/database/dbt/metadata.py +14 -3
  623. metadata/ingestion/source/database/dbt/models.py +2 -2
  624. metadata/ingestion/source/database/mssql/lineage.py +0 -4
  625. metadata/ingestion/source/database/mssql/metadata.py +1 -1
  626. metadata/ingestion/source/database/mssql/usage.py +42 -0
  627. metadata/ingestion/source/database/oracle/metadata.py +7 -0
  628. metadata/ingestion/source/database/oracle/queries.py +45 -11
  629. metadata/ingestion/source/database/oracle/utils.py +33 -0
  630. metadata/ingestion/source/database/postgres/converter_orm.py +52 -0
  631. metadata/ingestion/source/database/postgres/metadata.py +6 -0
  632. metadata/ingestion/source/database/postgres/metrics.py +42 -0
  633. metadata/ingestion/source/database/postgres/types/money.py +37 -0
  634. metadata/ingestion/source/database/postgres/usage.py +6 -0
  635. metadata/ingestion/source/database/redshift/connection.py +37 -9
  636. metadata/ingestion/source/database/redshift/queries.py +4 -5
  637. metadata/ingestion/source/database/unitycatalog/client.py +21 -0
  638. metadata/ingestion/source/database/unitycatalog/metadata.py +58 -22
  639. metadata/ingestion/source/pipeline/dagster/metadata.py +17 -14
  640. metadata/ingestion/source/pipeline/dbtcloud/client.py +29 -4
  641. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +94 -71
  642. metadata/ingestion/source/pipeline/dbtcloud/models.py +6 -6
  643. metadata/ingestion/source/pipeline/dbtcloud/queries.py +22 -11
  644. metadata/ingestion/source/pipeline/domopipeline/metadata.py +1 -1
  645. metadata/ingestion/source/pipeline/fivetran/client.py +2 -1
  646. metadata/ingestion/source/storage/gcs/client.py +4 -9
  647. metadata/ingestion/source/storage/gcs/metadata.py +4 -0
  648. metadata/profiler/interface/sqlalchemy/profiler_interface.py +23 -1
  649. metadata/profiler/metrics/composed/null_ratio.py +5 -8
  650. metadata/profiler/metrics/hybrid/histogram.py +9 -3
  651. metadata/profiler/metrics/static/mean.py +8 -9
  652. metadata/profiler/metrics/static/null_count.py +4 -2
  653. metadata/profiler/orm/functions/median.py +11 -4
  654. metadata/profiler/orm/functions/sum.py +1 -1
  655. metadata/profiler/orm/functions/table_metric_computer.py +2 -2
  656. metadata/profiler/orm/registry.py +14 -1
  657. metadata/profiler/processor/default.py +4 -1
  658. metadata/profiler/processor/sampler/sampler_factory.py +9 -0
  659. metadata/profiler/processor/sampler/sqlalchemy/azuresql/sampler.py +40 -0
  660. metadata/profiler/source/base/profiler_source.py +1 -0
  661. metadata/readers/file/api_reader.py +4 -1
  662. metadata/readers/file/gitlab.py +172 -0
  663. metadata/utils/helpers.py +4 -1
  664. metadata/utils/importer.py +26 -0
  665. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/METADATA +353 -346
  666. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/RECORD +670 -667
  667. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +0 -48
  668. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +0 -44
  669. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +0 -46
  670. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +0 -44
  671. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +0 -39
  672. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +0 -40
  673. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/LICENSE +0 -0
  674. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/WHEEL +0 -0
  675. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/entry_points.txt +0 -0
  676. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,4 @@
1
+ # pylint: disable=too-many-lines
1
2
  # Copyright 2021 Collate
2
3
  # Licensed under the Apache License, Version 2.0 (the "License");
3
4
  # you may not use this file except in compliance with the License.
@@ -156,6 +157,13 @@ class DbtSource(DbtServiceSource):
156
157
  owner = self.metadata.get_reference_by_name(
157
158
  name=dbt_owner, is_owner=True
158
159
  )
160
+
161
+ if owner:
162
+ return owner
163
+
164
+ # If owner is not found, try to find the owner in OMD using email
165
+ owner = self.metadata.get_reference_by_email(email=dbt_owner)
166
+
159
167
  if not owner:
160
168
  logger.warning(
161
169
  "Unable to ingest owner from DBT since no user or"
@@ -312,7 +320,8 @@ class DbtSource(DbtServiceSource):
312
320
  self.context.get().dbt_tests[key][DbtCommonEnum.RESULTS.value] = next(
313
321
  (
314
322
  item
315
- for item in dbt_objects.dbt_run_results.results
323
+ for run_result in dbt_objects.dbt_run_results
324
+ for item in run_result.results
316
325
  if item.unique_id == key
317
326
  ),
318
327
  None,
@@ -340,12 +349,14 @@ class DbtSource(DbtServiceSource):
340
349
  self.context.get().data_model_links = []
341
350
  self.context.get().dbt_tests = {}
342
351
  self.context.get().run_results_generate_time = None
352
+ # Since we'll be processing multiple run_results for a single project
353
+ # we'll only consider the first run_results generated_at time
343
354
  if (
344
355
  dbt_objects.dbt_run_results
345
- and dbt_objects.dbt_run_results.metadata.generated_at
356
+ and dbt_objects.dbt_run_results[0].metadata.generated_at
346
357
  ):
347
358
  self.context.get().run_results_generate_time = (
348
- dbt_objects.dbt_run_results.metadata.generated_at
359
+ dbt_objects.dbt_run_results[0].metadata.generated_at
349
360
  )
350
361
  for key, manifest_node in manifest_entities.items():
351
362
  try:
@@ -20,13 +20,13 @@ from pydantic import BaseModel
20
20
  class DbtFiles(BaseModel):
21
21
  dbt_catalog: Optional[dict] = None
22
22
  dbt_manifest: dict
23
- dbt_run_results: Optional[dict] = None
23
+ dbt_run_results: Optional[List[dict]] = None
24
24
 
25
25
 
26
26
  class DbtObjects(BaseModel):
27
27
  dbt_catalog: Optional[Any] = None
28
28
  dbt_manifest: Any
29
- dbt_run_results: Optional[Any] = None
29
+ dbt_run_results: Optional[List[Any]] = None
30
30
 
31
31
 
32
32
  class DbtFilteredModel(BaseModel):
@@ -26,10 +26,6 @@ from metadata.ingestion.source.database.mssql.utils import (
26
26
 
27
27
 
28
28
  class MssqlLineageSource(MssqlQueryParserSource, LineageSource):
29
- def __init__(self, *args, **kwargs):
30
- super().__init__(*args, **kwargs)
31
- self.start = self.start.replace(tzinfo=None)
32
- self.end = self.end.replace(tzinfo=None)
33
29
 
34
30
  sql_stmt = MSSQL_SQL_STATEMENT
35
31
 
@@ -224,7 +224,7 @@ class MssqlSource(StoredProcedureMixin, CommonDbSourceService, MultiDBSource):
224
224
  current_datetime_format = MSSQL_DATEFORMAT_DATETIME_MAP.get(
225
225
  server_date_format, DEFAULT_DATETIME_FORMAT
226
226
  )
227
- start = start.replace(tzinfo=None).strftime(current_datetime_format)
227
+ start = start.strftime(current_datetime_format)
228
228
  query = MSSQL_GET_STORED_PROCEDURE_QUERIES.format(
229
229
  start_date=start,
230
230
  )
@@ -11,8 +11,21 @@
11
11
  """
12
12
  MSSQL usage module
13
13
  """
14
+ from datetime import datetime
15
+
16
+ from metadata.generated.schema.metadataIngestion.workflow import (
17
+ Source as WorkflowSource,
18
+ )
19
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
20
+ from metadata.ingestion.source.database.mssql.constants import (
21
+ DEFAULT_DATETIME_FORMAT,
22
+ MSSQL_DATEFORMAT_DATETIME_MAP,
23
+ )
14
24
  from metadata.ingestion.source.database.mssql.queries import MSSQL_SQL_STATEMENT
15
25
  from metadata.ingestion.source.database.mssql.query_parser import MssqlQueryParserSource
26
+ from metadata.ingestion.source.database.mssql.utils import (
27
+ get_sqlalchemy_engine_dateformat,
28
+ )
16
29
  from metadata.ingestion.source.database.usage_source import UsageSource
17
30
 
18
31
 
@@ -24,3 +37,32 @@ class MssqlUsageSource(MssqlQueryParserSource, UsageSource):
24
37
  AND lower(t.text) NOT LIKE '%%create%%function%%'
25
38
  AND lower(t.text) NOT LIKE '%%declare%%'
26
39
  """
40
+
41
+ def __init__(
42
+ self,
43
+ config: WorkflowSource,
44
+ metadata: OpenMetadata,
45
+ get_engine: bool = True,
46
+ ):
47
+ super().__init__(config, metadata, get_engine)
48
+
49
+ self.dt_format = DEFAULT_DATETIME_FORMAT
50
+
51
+ if self.engine:
52
+ server_date_format = get_sqlalchemy_engine_dateformat(self.engine)
53
+ self.dt_format = MSSQL_DATEFORMAT_DATETIME_MAP.get(
54
+ server_date_format, DEFAULT_DATETIME_FORMAT
55
+ )
56
+
57
+ def get_sql_statement(self, start_time: datetime, end_time: datetime) -> str:
58
+ """
59
+ returns sql statement to fetch query logs.
60
+
61
+ Override if we have specific parameters
62
+ """
63
+ return self.sql_stmt.format(
64
+ start_time=start_time.strftime(self.dt_format),
65
+ end_time=end_time.strftime(self.dt_format),
66
+ filters=self.get_filters(),
67
+ result_limit=self.source_config.resultLimit,
68
+ )
@@ -54,6 +54,7 @@ from metadata.ingestion.source.database.oracle.queries import (
54
54
  )
55
55
  from metadata.ingestion.source.database.oracle.utils import (
56
56
  _get_col_type,
57
+ _get_constraint_data,
57
58
  get_columns,
58
59
  get_mview_definition,
59
60
  get_mview_names,
@@ -61,6 +62,8 @@ from metadata.ingestion.source.database.oracle.utils import (
61
62
  get_table_comment,
62
63
  get_table_names,
63
64
  get_view_definition,
65
+ get_view_names,
66
+ get_view_names_dialect,
64
67
  )
65
68
  from metadata.ingestion.source.database.stored_procedures_mixin import (
66
69
  QueryByProcedure,
@@ -97,10 +100,14 @@ OracleDialect.get_table_names = get_table_names
97
100
  Inspector.get_mview_names = get_mview_names
98
101
  Inspector.get_mview_definition = get_mview_definition
99
102
  OracleDialect.get_mview_names = get_mview_names_dialect
103
+ Inspector.get_view_names = get_view_names
104
+ OracleDialect.get_view_names = get_view_names_dialect
100
105
 
101
106
  Inspector.get_all_table_ddls = get_all_table_ddls
102
107
  Inspector.get_table_ddl = get_table_ddl
103
108
 
109
+ OracleDialect._get_constraint_data = _get_constraint_data
110
+
104
111
 
105
112
  class OracleSource(StoredProcedureMixin, CommonDbSourceService):
106
113
  """
@@ -20,7 +20,7 @@ SELECT
20
20
  comments table_comment,
21
21
  LOWER(table_name) "table_name",
22
22
  LOWER(owner) "schema"
23
- FROM ALL_TAB_COMMENTS
23
+ FROM DBA_TAB_COMMENTS
24
24
  where comments is not null and owner not in ('SYSTEM', 'SYS')
25
25
  """
26
26
  )
@@ -32,33 +32,39 @@ SELECT
32
32
  LOWER(view_name) AS "view_name",
33
33
  LOWER(owner) AS "schema",
34
34
  DBMS_METADATA.GET_DDL('VIEW', view_name, owner) AS view_def
35
- FROM ALL_VIEWS
35
+ FROM DBA_VIEWS
36
36
  WHERE owner NOT IN ('SYSTEM', 'SYS')
37
37
  UNION ALL
38
38
  SELECT
39
39
  LOWER(mview_name) AS "view_name",
40
40
  LOWER(owner) AS "schema",
41
41
  DBMS_METADATA.GET_DDL('MATERIALIZED_VIEW', mview_name, owner) AS view_def
42
- FROM ALL_MVIEWS
42
+ FROM DBA_MVIEWS
43
43
  WHERE owner NOT IN ('SYSTEM', 'SYS')
44
44
  """
45
45
  )
46
46
 
47
+ GET_VIEW_NAMES = textwrap.dedent(
48
+ """
49
+ SELECT view_name FROM DBA_VIEWS WHERE owner = :owner
50
+ """
51
+ )
52
+
47
53
  GET_MATERIALIZED_VIEW_NAMES = textwrap.dedent(
48
54
  """
49
- SELECT mview_name FROM ALL_MVIEWS WHERE owner = :owner
55
+ SELECT mview_name FROM DBA_MVIEWS WHERE owner = :owner
50
56
  """
51
57
  )
52
58
 
53
59
  ORACLE_GET_TABLE_NAMES = textwrap.dedent(
54
60
  """
55
- SELECT table_name FROM ALL_TABLES WHERE
61
+ SELECT table_name FROM DBA_TABLES WHERE
56
62
  {tablespace}
57
63
  OWNER = :owner
58
64
  AND IOT_NAME IS NULL
59
65
  AND DURATION IS NULL
60
66
  AND TABLE_NAME NOT IN
61
- (SELECT mview_name FROM ALL_MVIEWS WHERE owner = :owner)
67
+ (SELECT mview_name FROM DBA_MVIEWS WHERE owner = :owner)
62
68
  """
63
69
  )
64
70
 
@@ -67,7 +73,7 @@ ORACLE_IDENTITY_TYPE = textwrap.dedent(
67
73
  col.default_on_null,
68
74
  (
69
75
  SELECT id.generation_type || ',' || id.IDENTITY_OPTIONS
70
- FROM ALL_TAB_IDENTITY_COLS{dblink} id
76
+ FROM DBA_TAB_IDENTITY_COLS{dblink} id
71
77
  WHERE col.table_name = id.table_name
72
78
  AND col.column_name = id.column_name
73
79
  AND col.owner = id.owner
@@ -83,12 +89,12 @@ SELECT
83
89
  LINE,
84
90
  TEXT
85
91
  FROM
86
- ALL_SOURCE
92
+ DBA_SOURCE
87
93
  WHERE
88
94
  type = 'PROCEDURE' and owner = '{schema}'
89
95
  """
90
96
  )
91
- CHECK_ACCESS_TO_ALL = "SELECT table_name FROM ALL_TABLES where ROWNUM < 2"
97
+ CHECK_ACCESS_TO_ALL = "SELECT table_name FROM DBA_TABLES where ROWNUM < 2"
92
98
  ORACLE_GET_STORED_PROCEDURE_QUERIES = textwrap.dedent(
93
99
  """
94
100
  WITH SP_HISTORY AS (SELECT
@@ -153,8 +159,8 @@ ORACLE_GET_COLUMNS = textwrap.dedent(
153
159
  com.comments,
154
160
  col.virtual_column,
155
161
  {identity_cols}
156
- FROM ALL_TAB_COLS{dblink} col
157
- LEFT JOIN ALL_COL_COMMENTS{dblink} com
162
+ FROM DBA_TAB_COLS{dblink} col
163
+ LEFT JOIN DBA_COL_COMMENTS{dblink} com
158
164
  ON col.table_name = com.table_name
159
165
  AND col.column_name = com.column_name
160
166
  AND col.owner = com.owner
@@ -163,6 +169,34 @@ ORACLE_GET_COLUMNS = textwrap.dedent(
163
169
  """
164
170
  )
165
171
 
172
+ ORACLE_ALL_CONSTRAINTS = textwrap.dedent(
173
+ """
174
+ SELECT
175
+ ac.constraint_name,
176
+ ac.constraint_type,
177
+ loc.column_name AS local_column,
178
+ rem.table_name AS remote_table,
179
+ rem.column_name AS remote_column,
180
+ rem.owner AS remote_owner,
181
+ loc.position as loc_pos,
182
+ rem.position as rem_pos,
183
+ ac.search_condition,
184
+ ac.delete_rule
185
+ FROM DBA_CONSTRAINTS{dblink} ac,
186
+ DBA_CONS_COLUMNS{dblink} loc,
187
+ DBA_CONS_COLUMNS{dblink} rem
188
+ WHERE ac.table_name = CAST(:table_name AS VARCHAR2(128))
189
+ AND ac.constraint_type IN ('R','P', 'U', 'C')
190
+ AND ac.owner = CAST(:owner AS VARCHAR2(128))
191
+ AND ac.owner = loc.owner
192
+ AND ac.constraint_name = loc.constraint_name
193
+ AND ac.r_owner = rem.owner(+)
194
+ AND ac.r_constraint_name = rem.constraint_name(+)
195
+ AND (rem.position IS NULL or loc.position=rem.position)
196
+ ORDER BY ac.constraint_name, loc.position
197
+ """
198
+ )
199
+
166
200
  ORACLE_QUERY_HISTORY_STATEMENT = textwrap.dedent(
167
201
  """
168
202
  SELECT
@@ -21,6 +21,8 @@ from sqlalchemy.sql import sqltypes
21
21
 
22
22
  from metadata.ingestion.source.database.oracle.queries import (
23
23
  GET_MATERIALIZED_VIEW_NAMES,
24
+ GET_VIEW_NAMES,
25
+ ORACLE_ALL_CONSTRAINTS,
24
26
  ORACLE_ALL_TABLE_COMMENTS,
25
27
  ORACLE_ALL_VIEW_DEFINITIONS,
26
28
  ORACLE_GET_COLUMNS,
@@ -222,6 +224,26 @@ def get_table_names(self, connection, schema=None, **kw):
222
224
  return [row[0] for row in cursor]
223
225
 
224
226
 
227
+ def get_view_names(self, schema=None):
228
+ """Return all materialized view names in `schema`.
229
+
230
+ :param schema: Optional, retrieve names from a non-default schema.
231
+ For special quoting, use :class:`.quoted_name`.
232
+
233
+ """
234
+
235
+ with self._operation_context() as conn:
236
+ return self.dialect.get_view_names(conn, schema, info_cache=self.info_cache)
237
+
238
+
239
+ @reflection.cache
240
+ def get_view_names_dialect(self, connection, schema=None, **kw):
241
+ schema = self.denormalize_name(schema or self.default_schema_name)
242
+ sql_query = sql.text(GET_VIEW_NAMES)
243
+ cursor = connection.execute(sql_query, {"owner": self.denormalize_name(schema)})
244
+ return [self.normalize_name(row[0]) for row in cursor]
245
+
246
+
225
247
  def get_mview_names(self, schema=None):
226
248
  """Return all materialized view names in `schema`.
227
249
 
@@ -254,3 +276,14 @@ def get_mview_definition(self, mview_name, schema=None):
254
276
  return self.dialect.get_view_definition(
255
277
  conn, mview_name, schema, info_cache=self.info_cache
256
278
  )
279
+
280
+
281
+ @reflection.cache
282
+ def _get_constraint_data(self, connection, table_name, schema=None, dblink="", **kw):
283
+
284
+ params = {"table_name": table_name, "owner": schema}
285
+ text = ORACLE_ALL_CONSTRAINTS.format(dblink=dblink)
286
+
287
+ rp = connection.execute(sql.text(text), params)
288
+ constraint_data = rp.fetchall()
289
+ return constraint_data
@@ -0,0 +1,52 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ Converter logic to transform an OpenMetadata Table Entity for Redshift
14
+ to an SQLAlchemy ORM class.
15
+ """
16
+
17
+ from typing import Dict, Set
18
+
19
+ from sqlalchemy.sql.sqltypes import TypeEngine
20
+
21
+ from metadata.generated.schema.entity.data.table import Column, DataType
22
+ from metadata.generated.schema.entity.services.databaseService import (
23
+ DatabaseServiceType,
24
+ )
25
+ from metadata.ingestion.source.database.postgres.types.money import PostgresMoney
26
+ from metadata.profiler.orm.converter.common import CommonMapTypes
27
+ from metadata.profiler.orm.converter.converter_registry import converter_registry
28
+
29
+ _CUSTOM_TYPE_MAP = {DataType.MONEY: PostgresMoney}
30
+ _CUSTOM_TYPE_MAP_reversed = {v: {k} for k, v in _CUSTOM_TYPE_MAP.items()}
31
+
32
+
33
+ class PostgrestMapTypes(CommonMapTypes):
34
+ """Postgres type mapper, inherits from CommonMapTypes"""
35
+
36
+ def return_custom_type(self, col: Column, table_service_type):
37
+ return _CUSTOM_TYPE_MAP.get(
38
+ col.dataType, super().return_custom_type(col, table_service_type)
39
+ )
40
+
41
+ @staticmethod
42
+ def map_sqa_to_om_types() -> Dict[TypeEngine, Set[DataType]]:
43
+ """returns an ORM type"""
44
+ # pylint: disable=import-outside-toplevel
45
+
46
+ return {
47
+ **CommonMapTypes.map_sqa_to_om_types(),
48
+ **_CUSTOM_TYPE_MAP_reversed,
49
+ }
50
+
51
+
52
+ converter_registry[DatabaseServiceType.Postgres] = PostgrestMapTypes
@@ -65,6 +65,7 @@ from metadata.ingestion.source.database.postgres.utils import (
65
65
  )
66
66
  from metadata.utils import fqn
67
67
  from metadata.utils.filters import filter_by_database
68
+ from metadata.utils.importer import import_side_effects
68
69
  from metadata.utils.logger import ingestion_logger
69
70
  from metadata.utils.sqlalchemy_utils import (
70
71
  get_all_table_comments,
@@ -76,6 +77,11 @@ from metadata.utils.sqlalchemy_utils import (
76
77
  )
77
78
  from metadata.utils.tag_utils import get_ometa_tag_and_classification
78
79
 
80
+ import_side_effects(
81
+ "metadata.ingestion.source.database.postgres.converter_orm",
82
+ "metadata.ingestion.source.database.postgres.metrics",
83
+ )
84
+
79
85
  TableKey = namedtuple("TableKey", ["schema", "table_name"])
80
86
 
81
87
  logger = ingestion_logger()
@@ -0,0 +1,42 @@
1
+ from sqlalchemy.ext.compiler import compiles
2
+
3
+ from metadata.ingestion.source.database.postgres.types.money import PostgresMoney
4
+ from metadata.profiler.metrics.static.mean import AvgFn
5
+ from metadata.profiler.metrics.static.stddev import StdDevFn
6
+ from metadata.profiler.orm.functions.median import MedianFn
7
+ from metadata.profiler.orm.registry import Dialects
8
+
9
+
10
+ @compiles(AvgFn, Dialects.Postgres)
11
+ def avg(element, compiler, **kw):
12
+ """
13
+ Cast to decimal to get around potential integer overflow error
14
+ """
15
+ proc = compiler.process(element.clauses, **kw)
16
+ if isinstance(list(element.clauses)[0].type, PostgresMoney):
17
+ return f"{element.name}({PostgresMoney.compile_as_float(proc)})"
18
+ return f"{element.name}({proc})"
19
+
20
+
21
+ @compiles(StdDevFn, Dialects.Postgres)
22
+ def stddev(element, compiler, **kw):
23
+ """Returns stdv for clickhouse database and handle empty tables.
24
+ If table is empty, clickhouse returns NaN.
25
+ """
26
+ proc = compiler.process(element.clauses, **kw)
27
+ if isinstance(list(element.clauses)[0].type, PostgresMoney):
28
+ return f"STDDEV_POP({PostgresMoney.compile_as_float(proc)})"
29
+ return f"STDDEV_POP({proc})"
30
+
31
+
32
+ @compiles(MedianFn, Dialects.Postgres)
33
+ def median(elements, compiler, **kwargs): # pylint: disable=unused-argument
34
+ col, _, percentile = [
35
+ compiler.process(element, **kwargs) for element in elements.clauses
36
+ ]
37
+ if isinstance(list(elements.clauses)[0], PostgresMoney):
38
+ return "percentile_cont(%.2f) WITHIN GROUP (ORDER BY %s ASC)" % (
39
+ percentile,
40
+ PostgresMoney.compile_as_float(col),
41
+ )
42
+ return MedianFn.default_fn(elements, compiler, **kwargs)
@@ -0,0 +1,37 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ Custom sqlalchemy type for Postgres MONEY type
14
+ """
15
+
16
+
17
+ from sqlalchemy.dialects.postgresql import MONEY
18
+ from sqlalchemy.sql.sqltypes import String
19
+
20
+ from metadata.utils.logger import ingestion_logger
21
+
22
+ logger = ingestion_logger()
23
+
24
+
25
+ class PostgresMoney(MONEY):
26
+ """Wrapper for Postgres MONEY type"""
27
+
28
+ impl = String
29
+ cache_ok = True
30
+
31
+ @property
32
+ def quantifiable(self):
33
+ return True
34
+
35
+ @staticmethod
36
+ def compile_as_float(expr: str) -> str:
37
+ return f"(({expr})::numeric::float8)"
@@ -73,3 +73,9 @@ class PostgresUsageSource(PostgresQueryParserSource, UsageSource):
73
73
  )
74
74
  logger.error(f"Source usage processing error - {err}")
75
75
  logger.debug(traceback.format_exc())
76
+
77
+ def get_filters(self) -> str:
78
+ if filter_condition := self.source_config.filterCondition:
79
+ filter_condition = filter_condition.replace("%", "%%")
80
+ return f"{self.filters} AND s.{filter_condition}"
81
+ return self.filters
@@ -12,6 +12,7 @@
12
12
  """
13
13
  Source connection handler
14
14
  """
15
+ from functools import partial
15
16
  from typing import Optional
16
17
 
17
18
  from sqlalchemy.engine import Engine
@@ -27,8 +28,15 @@ from metadata.ingestion.connections.builders import (
27
28
  get_connection_args_common,
28
29
  get_connection_url_common,
29
30
  )
30
- from metadata.ingestion.connections.test_connections import test_connection_db_common
31
+ from metadata.ingestion.connections.test_connections import (
32
+ SourceConnectionException,
33
+ execute_inspector_func,
34
+ test_connection_engine_step,
35
+ test_connection_steps,
36
+ test_query,
37
+ )
31
38
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
39
+ from metadata.ingestion.source.connections import kill_active_connections
32
40
  from metadata.ingestion.source.database.redshift.queries import (
33
41
  REDSHIFT_GET_DATABASE_NAMES,
34
42
  REDSHIFT_TEST_GET_QUERIES,
@@ -57,15 +65,35 @@ def test_connection(
57
65
  Test connection. This can be executed either as part
58
66
  of a metadata workflow or during an Automation Workflow
59
67
  """
60
- queries = {
61
- "GetQueries": REDSHIFT_TEST_GET_QUERIES,
62
- "GetDatabases": REDSHIFT_GET_DATABASE_NAMES,
63
- "GetPartitionTableDetails": REDSHIFT_TEST_PARTITION_DETAILS,
68
+
69
+ def test_get_queries_permissions(engine_: Engine):
70
+ """Check if we have the right permissions to list queries"""
71
+ with engine_.connect() as conn:
72
+ res = conn.execute(REDSHIFT_TEST_GET_QUERIES).fetchone()
73
+ if not all(res):
74
+ raise SourceConnectionException(
75
+ f"We don't have the right permissions to list queries - {res}"
76
+ )
77
+
78
+ test_fn = {
79
+ "CheckAccess": partial(test_connection_engine_step, engine),
80
+ "GetSchemas": partial(execute_inspector_func, engine, "get_schema_names"),
81
+ "GetTables": partial(execute_inspector_func, engine, "get_table_names"),
82
+ "GetViews": partial(execute_inspector_func, engine, "get_view_names"),
83
+ "GetQueries": partial(test_get_queries_permissions, engine),
84
+ "GetDatabases": partial(
85
+ test_query, statement=REDSHIFT_GET_DATABASE_NAMES, engine=engine
86
+ ),
87
+ "GetPartitionTableDetails": partial(
88
+ test_query, statement=REDSHIFT_TEST_PARTITION_DETAILS, engine=engine
89
+ ),
64
90
  }
65
- test_connection_db_common(
91
+
92
+ test_connection_steps(
66
93
  metadata=metadata,
67
- engine=engine,
68
- service_connection=service_connection,
94
+ test_fn=test_fn,
95
+ service_type=service_connection.type.value,
69
96
  automation_workflow=automation_workflow,
70
- queries=queries,
71
97
  )
98
+
99
+ kill_active_connections(engine)
@@ -222,11 +222,10 @@ SELECT datname FROM pg_database
222
222
  """
223
223
 
224
224
  REDSHIFT_TEST_GET_QUERIES = """
225
- (select 1 from pg_catalog.svv_table_info limit 1)
226
- UNION
227
- (select 1 from pg_catalog.stl_querytext limit 1)
228
- UNION
229
- (select 1 from pg_catalog.stl_query limit 1)
225
+ SELECT
226
+ has_table_privilege('svv_table_info', 'SELECT') as can_access_svv_table_info,
227
+ has_table_privilege('stl_querytext', 'SELECT') as can_access_stl_querytext,
228
+ has_table_privilege('stl_query', 'SELECT') as can_access_stl_query;
230
229
  """
231
230
 
232
231
 
@@ -14,6 +14,8 @@ Client to interact with databricks apis
14
14
  import json
15
15
  import traceback
16
16
 
17
+ from requests import HTTPError
18
+
17
19
  from metadata.ingestion.source.database.databricks.client import (
18
20
  API_TIMEOUT,
19
21
  DatabricksClient,
@@ -27,6 +29,7 @@ from metadata.utils.logger import ingestion_logger
27
29
  logger = ingestion_logger()
28
30
  TABLE_LINEAGE_PATH = "/lineage-tracking/table-lineage/get"
29
31
  COLUMN_LINEAGE_PATH = "/lineage-tracking/column-lineage/get"
32
+ TABLES_PATH = "/unity-catalog/tables"
30
33
 
31
34
 
32
35
  class UnityCatalogClient(DatabricksClient):
@@ -85,3 +88,21 @@ class UnityCatalogClient(DatabricksClient):
85
88
  logger.error(exc)
86
89
 
87
90
  return LineageColumnStreams()
91
+
92
+ def get_owner_info(self, full_table_name: str) -> str:
93
+ """
94
+ get owner info from tables API
95
+ """
96
+ try:
97
+ response = self.client.get(
98
+ f"{self.base_url}{TABLES_PATH}/{full_table_name}",
99
+ headers=self.headers,
100
+ timeout=API_TIMEOUT,
101
+ )
102
+ if response.status_code != 200:
103
+ raise HTTPError(response.text)
104
+ return response.json().get("owner")
105
+ except Exception as exc:
106
+ logger.debug(traceback.format_exc())
107
+ logger.error(exc)
108
+ return