openmetadata-ingestion 1.5.0.0rc1__py3-none-any.whl → 1.5.0.0rc2__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 (665) 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 -1
  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/percentageOfEntitiesWithDescriptionByType.py +1 -1
  188. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  189. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  190. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  191. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  192. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  193. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  194. metadata/generated/schema/email/__init__.py +1 -1
  195. metadata/generated/schema/email/emailRequest.py +1 -1
  196. metadata/generated/schema/email/emailTemplate.py +1 -1
  197. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  198. metadata/generated/schema/email/smtpSettings.py +1 -1
  199. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  200. metadata/generated/schema/entity/__init__.py +1 -1
  201. metadata/generated/schema/entity/applications/__init__.py +1 -1
  202. metadata/generated/schema/entity/applications/app.py +1 -1
  203. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  208. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  211. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  213. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  216. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  217. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  218. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +10 -2
  222. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +9 -1
  224. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  226. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  228. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  229. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  230. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  231. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  232. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  233. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  234. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  235. metadata/generated/schema/entity/automations/__init__.py +1 -1
  236. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  237. metadata/generated/schema/entity/automations/workflow.py +1 -1
  238. metadata/generated/schema/entity/bot.py +1 -1
  239. metadata/generated/schema/entity/classification/__init__.py +1 -1
  240. metadata/generated/schema/entity/classification/classification.py +1 -1
  241. metadata/generated/schema/entity/classification/tag.py +1 -1
  242. metadata/generated/schema/entity/data/__init__.py +1 -1
  243. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  244. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  245. metadata/generated/schema/entity/data/chart.py +1 -1
  246. metadata/generated/schema/entity/data/container.py +1 -1
  247. metadata/generated/schema/entity/data/dashboard.py +1 -1
  248. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  249. metadata/generated/schema/entity/data/database.py +1 -1
  250. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  251. metadata/generated/schema/entity/data/glossary.py +1 -1
  252. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  253. metadata/generated/schema/entity/data/metrics.py +1 -1
  254. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  255. metadata/generated/schema/entity/data/pipeline.py +1 -1
  256. metadata/generated/schema/entity/data/query.py +1 -1
  257. metadata/generated/schema/entity/data/report.py +1 -1
  258. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  259. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  260. metadata/generated/schema/entity/data/table.py +1 -1
  261. metadata/generated/schema/entity/data/topic.py +1 -1
  262. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  263. metadata/generated/schema/entity/docStore/document.py +1 -1
  264. metadata/generated/schema/entity/domains/__init__.py +1 -1
  265. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  266. metadata/generated/schema/entity/domains/domain.py +1 -1
  267. metadata/generated/schema/entity/events/__init__.py +1 -1
  268. metadata/generated/schema/entity/events/webhook.py +1 -1
  269. metadata/generated/schema/entity/feed/__init__.py +1 -1
  270. metadata/generated/schema/entity/feed/assets.py +1 -1
  271. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  272. metadata/generated/schema/entity/feed/description.py +1 -1
  273. metadata/generated/schema/entity/feed/domain.py +1 -1
  274. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  275. metadata/generated/schema/entity/feed/owner.py +1 -1
  276. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  277. metadata/generated/schema/entity/feed/tag.py +1 -1
  278. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  279. metadata/generated/schema/entity/feed/thread.py +1 -1
  280. metadata/generated/schema/entity/policies/__init__.py +1 -1
  281. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  282. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  283. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  284. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  285. metadata/generated/schema/entity/policies/filters.py +1 -1
  286. metadata/generated/schema/entity/policies/policy.py +1 -1
  287. metadata/generated/schema/entity/services/__init__.py +1 -1
  288. metadata/generated/schema/entity/services/apiService.py +1 -1
  289. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  290. metadata/generated/schema/entity/services/connections/apiService/__init__.py +1 -1
  291. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +1 -1
  292. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  293. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  294. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  295. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  296. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  297. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  298. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +7 -2
  302. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  307. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  308. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  309. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  310. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  311. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +2 -2
  375. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +2 -1
  378. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  382. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  388. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  389. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  396. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  401. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  420. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  421. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  422. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  426. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +2 -2
  431. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  432. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  433. metadata/generated/schema/entity/services/databaseService.py +1 -1
  434. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  435. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  436. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  437. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  438. metadata/generated/schema/entity/services/messagingService.py +1 -1
  439. metadata/generated/schema/entity/services/metadataService.py +1 -1
  440. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  441. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  442. metadata/generated/schema/entity/services/searchService.py +1 -1
  443. metadata/generated/schema/entity/services/serviceType.py +1 -1
  444. metadata/generated/schema/entity/services/storageService.py +1 -1
  445. metadata/generated/schema/entity/teams/__init__.py +1 -1
  446. metadata/generated/schema/entity/teams/persona.py +1 -1
  447. metadata/generated/schema/entity/teams/role.py +1 -1
  448. metadata/generated/schema/entity/teams/team.py +1 -1
  449. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  450. metadata/generated/schema/entity/teams/user.py +1 -1
  451. metadata/generated/schema/entity/type.py +1 -1
  452. metadata/generated/schema/entity/utils/__init__.py +1 -1
  453. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  454. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  455. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  456. metadata/generated/schema/events/__init__.py +1 -1
  457. metadata/generated/schema/events/alertMetrics.py +1 -1
  458. metadata/generated/schema/events/api/__init__.py +1 -1
  459. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  460. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  461. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  462. metadata/generated/schema/events/eventFilterRule.py +1 -1
  463. metadata/generated/schema/events/eventSubscription.py +1 -1
  464. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  465. metadata/generated/schema/events/failedEvent.py +1 -1
  466. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  467. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  468. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  469. metadata/generated/schema/metadataIngestion/application.py +1 -1
  470. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  471. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  472. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  473. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +2 -2
  474. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  475. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  476. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  477. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  478. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  479. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  480. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  481. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  482. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  483. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  484. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  485. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  486. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  487. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  488. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  489. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  490. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  491. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  492. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  493. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  494. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  495. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  496. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  497. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  498. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  499. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  500. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  501. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  502. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  503. metadata/generated/schema/monitoring/__init__.py +1 -1
  504. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  505. metadata/generated/schema/security/__init__.py +1 -1
  506. metadata/generated/schema/security/client/__init__.py +1 -1
  507. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  508. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  509. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  510. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  511. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  512. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  513. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  514. metadata/generated/schema/security/client/samlSSOClientConfig.py +7 -5
  515. metadata/generated/schema/security/credentials/__init__.py +1 -1
  516. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  517. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  518. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  519. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  520. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  521. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  522. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  523. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  524. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  525. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  526. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  527. metadata/generated/schema/security/credentials/gitlabCredentials.py +34 -0
  528. metadata/generated/schema/security/sasl/__init__.py +1 -1
  529. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  530. metadata/generated/schema/security/secrets/__init__.py +1 -1
  531. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  532. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  533. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  534. metadata/generated/schema/security/securityConfiguration.py +1 -1
  535. metadata/generated/schema/security/ssl/__init__.py +1 -1
  536. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  537. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  538. metadata/generated/schema/settings/__init__.py +1 -1
  539. metadata/generated/schema/settings/settings.py +2 -1
  540. metadata/generated/schema/system/__init__.py +1 -1
  541. metadata/generated/schema/system/entityError.py +1 -1
  542. metadata/generated/schema/system/eventPublisherJob.py +5 -1
  543. metadata/generated/schema/system/indexingError.py +1 -1
  544. metadata/generated/schema/system/limitsResponse.py +1 -1
  545. metadata/generated/schema/system/ui/__init__.py +1 -1
  546. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  547. metadata/generated/schema/system/ui/page.py +1 -1
  548. metadata/generated/schema/system/validationResponse.py +1 -1
  549. metadata/generated/schema/tests/__init__.py +1 -1
  550. metadata/generated/schema/tests/assigned.py +1 -1
  551. metadata/generated/schema/tests/basic.py +20 -20
  552. metadata/generated/schema/tests/customMetric.py +1 -1
  553. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  554. metadata/generated/schema/tests/resolved.py +1 -1
  555. metadata/generated/schema/tests/testCase.py +1 -1
  556. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  557. metadata/generated/schema/tests/testDefinition.py +1 -1
  558. metadata/generated/schema/tests/testSuite.py +1 -1
  559. metadata/generated/schema/type/__init__.py +1 -1
  560. metadata/generated/schema/type/apiSchema.py +1 -1
  561. metadata/generated/schema/type/auditLog.py +1 -1
  562. metadata/generated/schema/type/basic.py +1 -1
  563. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  564. metadata/generated/schema/type/changeEvent.py +1 -1
  565. metadata/generated/schema/type/changeEventType.py +1 -1
  566. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  567. metadata/generated/schema/type/csvDocumentation.py +1 -1
  568. metadata/generated/schema/type/csvErrorType.py +1 -1
  569. metadata/generated/schema/type/csvFile.py +1 -1
  570. metadata/generated/schema/type/csvImportResult.py +1 -1
  571. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  572. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  573. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  574. metadata/generated/schema/type/customProperty.py +1 -1
  575. metadata/generated/schema/type/dailyCount.py +1 -1
  576. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  577. metadata/generated/schema/type/entityHierarchy.py +1 -1
  578. metadata/generated/schema/type/entityHistory.py +1 -1
  579. metadata/generated/schema/type/entityLineage.py +1 -1
  580. metadata/generated/schema/type/entityReference.py +1 -1
  581. metadata/generated/schema/type/entityReferenceList.py +1 -1
  582. metadata/generated/schema/type/entityRelationship.py +1 -1
  583. metadata/generated/schema/type/entityUsage.py +1 -1
  584. metadata/generated/schema/type/filterPattern.py +1 -1
  585. metadata/generated/schema/type/function.py +1 -1
  586. metadata/generated/schema/type/include.py +1 -1
  587. metadata/generated/schema/type/jdbcConnection.py +1 -1
  588. metadata/generated/schema/type/lifeCycle.py +1 -1
  589. metadata/generated/schema/type/paging.py +1 -1
  590. metadata/generated/schema/type/profile.py +1 -1
  591. metadata/generated/schema/type/queryParserData.py +1 -1
  592. metadata/generated/schema/type/reaction.py +1 -1
  593. metadata/generated/schema/type/schedule.py +1 -1
  594. metadata/generated/schema/type/schema.py +1 -1
  595. metadata/generated/schema/type/tableQuery.py +1 -1
  596. metadata/generated/schema/type/tableUsageCount.py +1 -1
  597. metadata/generated/schema/type/tagLabel.py +1 -1
  598. metadata/generated/schema/type/usageDetails.py +1 -1
  599. metadata/generated/schema/type/usageRequest.py +1 -1
  600. metadata/generated/schema/type/votes.py +1 -1
  601. metadata/great_expectations/action.py +1 -1
  602. metadata/ingestion/connections/test_connections.py +5 -0
  603. metadata/ingestion/lineage/models.py +4 -0
  604. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +1 -1
  605. metadata/ingestion/source/connections.py +19 -0
  606. metadata/ingestion/source/dashboard/domodashboard/metadata.py +3 -3
  607. metadata/ingestion/source/dashboard/looker/metadata.py +8 -3
  608. metadata/ingestion/source/dashboard/looker/utils.py +6 -3
  609. metadata/ingestion/source/dashboard/metabase/client.py +2 -1
  610. metadata/ingestion/source/dashboard/powerbi/metadata.py +2 -1
  611. metadata/ingestion/source/dashboard/qlikcloud/client.py +1 -1
  612. metadata/ingestion/source/dashboard/superset/mixin.py +5 -0
  613. metadata/ingestion/source/database/bigquery/metadata.py +5 -1
  614. metadata/ingestion/source/database/column_type_parser.py +2 -1
  615. metadata/ingestion/source/database/common_db_source.py +9 -4
  616. metadata/ingestion/source/database/database_service.py +1 -1
  617. metadata/ingestion/source/database/databricks/lineage.py +2 -2
  618. metadata/ingestion/source/database/databricks/metadata.py +100 -18
  619. metadata/ingestion/source/database/databricks/queries.py +3 -1
  620. metadata/ingestion/source/database/databricks/usage.py +2 -2
  621. metadata/ingestion/source/database/datalake/clients/gcs.py +4 -0
  622. metadata/ingestion/source/database/db2/metadata.py +8 -1
  623. metadata/ingestion/source/database/dbt/constants.py +1 -7
  624. metadata/ingestion/source/database/dbt/dbt_config.py +18 -19
  625. metadata/ingestion/source/database/dbt/dbt_service.py +4 -3
  626. metadata/ingestion/source/database/dbt/metadata.py +14 -3
  627. metadata/ingestion/source/database/dbt/models.py +2 -2
  628. metadata/ingestion/source/database/mssql/lineage.py +0 -4
  629. metadata/ingestion/source/database/mssql/metadata.py +1 -1
  630. metadata/ingestion/source/database/mssql/usage.py +42 -0
  631. metadata/ingestion/source/database/oracle/metadata.py +7 -0
  632. metadata/ingestion/source/database/oracle/queries.py +45 -11
  633. metadata/ingestion/source/database/oracle/utils.py +33 -0
  634. metadata/ingestion/source/database/postgres/usage.py +6 -0
  635. metadata/ingestion/source/database/unitycatalog/client.py +21 -0
  636. metadata/ingestion/source/database/unitycatalog/metadata.py +58 -22
  637. metadata/ingestion/source/pipeline/dagster/metadata.py +17 -14
  638. metadata/ingestion/source/pipeline/dbtcloud/client.py +29 -4
  639. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +94 -71
  640. metadata/ingestion/source/pipeline/dbtcloud/models.py +6 -6
  641. metadata/ingestion/source/pipeline/dbtcloud/queries.py +22 -11
  642. metadata/ingestion/source/pipeline/domopipeline/metadata.py +1 -1
  643. metadata/ingestion/source/pipeline/fivetran/client.py +2 -1
  644. metadata/ingestion/source/storage/gcs/client.py +4 -9
  645. metadata/ingestion/source/storage/gcs/metadata.py +4 -0
  646. metadata/profiler/interface/sqlalchemy/profiler_interface.py +9 -0
  647. metadata/profiler/metrics/composed/null_ratio.py +5 -8
  648. metadata/profiler/metrics/hybrid/histogram.py +9 -3
  649. metadata/profiler/metrics/static/null_count.py +4 -2
  650. metadata/profiler/orm/functions/sum.py +1 -1
  651. metadata/profiler/orm/functions/table_metric_computer.py +2 -2
  652. metadata/profiler/orm/registry.py +11 -0
  653. metadata/profiler/processor/default.py +4 -1
  654. metadata/profiler/processor/sampler/sampler_factory.py +9 -0
  655. metadata/profiler/processor/sampler/sqlalchemy/azuresql/sampler.py +40 -0
  656. metadata/profiler/source/base/profiler_source.py +1 -0
  657. metadata/readers/file/api_reader.py +4 -1
  658. metadata/readers/file/gitlab.py +172 -0
  659. metadata/utils/helpers.py +4 -1
  660. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc2.dist-info}/METADATA +352 -345
  661. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc2.dist-info}/RECORD +665 -659
  662. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc2.dist-info}/LICENSE +0 -0
  663. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc2.dist-info}/WHEEL +0 -0
  664. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc2.dist-info}/entry_points.txt +0 -0
  665. {openmetadata_ingestion-1.5.0.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc2.dist-info}/top_level.txt +0 -0
@@ -111,6 +111,7 @@ class DbtcloudSource(PipelineServiceSource):
111
111
  except Exception as exc:
112
112
  logger.debug(traceback.format_exc())
113
113
  logger.warning(f"Failed to get tasks list due to : {exc}")
114
+ return None
114
115
 
115
116
  def yield_pipeline(
116
117
  self, pipeline_details: DBTJob
@@ -119,16 +120,22 @@ class DbtcloudSource(PipelineServiceSource):
119
120
  Method to Get Pipeline Entity
120
121
  """
121
122
  try:
122
- connection_url = f"{clean_uri(self.service_connection.host)}/deploy/{self.service_connection.accountId}/projects/{pipeline_details.project_id}/jobs/{pipeline_details.id}"
123
+ connection_url = (
124
+ f"{clean_uri(self.service_connection.host)}/deploy/"
125
+ f"{self.service_connection.accountId}/projects/"
126
+ f"{pipeline_details.project_id}/jobs/{pipeline_details.id}"
127
+ )
123
128
 
124
129
  pipeline_request = CreatePipelineRequest(
125
130
  name=EntityName(pipeline_details.name),
126
131
  description=Markdown(pipeline_details.description),
127
132
  sourceUrl=SourceUrl(connection_url),
128
133
  tasks=self._get_task_list(job_id=int(pipeline_details.id)),
129
- scheduleInterval=str(pipeline_details.schedule.cron)
130
- if pipeline_details.schedule
131
- else None,
134
+ scheduleInterval=(
135
+ str(pipeline_details.schedule.cron)
136
+ if pipeline_details.schedule
137
+ else None
138
+ ),
132
139
  service=FullyQualifiedEntityName(self.context.get().pipeline_service),
133
140
  )
134
141
  yield Either(right=pipeline_request)
@@ -148,77 +155,88 @@ class DbtcloudSource(PipelineServiceSource):
148
155
  """
149
156
  Get lineage between pipeline and data sources
150
157
  """
151
- try:
152
- pipeline_fqn = fqn.build(
153
- metadata=self.metadata,
154
- entity_type=Pipeline,
155
- service_name=self.context.get().pipeline_service,
156
- pipeline_name=self.context.get().pipeline,
157
- )
158
-
159
- pipeline_entity = self.metadata.get_by_name(
160
- entity=Pipeline, fqn=pipeline_fqn
161
- )
158
+ try: # pylint: disable=too-many-nested-blocks
159
+ if self.source_config.lineageInformation:
160
+ pipeline_fqn = fqn.build(
161
+ metadata=self.metadata,
162
+ entity_type=Pipeline,
163
+ service_name=self.context.get().pipeline_service,
164
+ pipeline_name=self.context.get().pipeline,
165
+ )
162
166
 
163
- lineage_details = LineageDetails(
164
- pipeline=EntityReference(id=pipeline_entity.id.root, type="pipeline"),
165
- source=LineageSource.PipelineLineage,
166
- )
167
+ pipeline_entity = self.metadata.get_by_name(
168
+ entity=Pipeline, fqn=pipeline_fqn
169
+ )
167
170
 
168
- dbt_models = self.client.get_model_details(
169
- job_id=pipeline_details.id, run_id=self.context.get().latest_run_id
170
- )
171
+ lineage_details = LineageDetails(
172
+ pipeline=EntityReference(
173
+ id=pipeline_entity.id.root, type="pipeline"
174
+ ),
175
+ source=LineageSource.PipelineLineage,
176
+ )
171
177
 
172
- for model in dbt_models or []:
173
- for dbservicename in (
174
- self.source_config.lineageInformation.dbServiceNames or []
175
- ):
176
- to_entity = self.metadata.get_by_name(
177
- entity=Table,
178
- fqn=fqn.build(
179
- metadata=self.metadata,
180
- entity_type=Table,
181
- table_name=model.alias,
182
- database_name=model.database,
183
- schema_name=model.dbtschema,
184
- service_name=dbservicename,
185
- ),
186
- )
178
+ dbt_models = self.client.get_model_details(
179
+ job_id=pipeline_details.id, run_id=self.context.get().latest_run_id
180
+ )
187
181
 
188
- if to_entity is None:
189
- continue
182
+ dbt_parents = self.client.get_models_and_seeds_details(
183
+ job_id=pipeline_details.id, run_id=self.context.get().latest_run_id
184
+ )
190
185
 
191
- for dest in model.parentsSources or []:
192
- from_entity = self.metadata.get_by_name(
186
+ for model in dbt_models or []:
187
+ for dbservicename in (
188
+ self.source_config.lineageInformation.dbServiceNames or []
189
+ ):
190
+ to_entity = self.metadata.get_by_name(
193
191
  entity=Table,
194
192
  fqn=fqn.build(
195
193
  metadata=self.metadata,
196
194
  entity_type=Table,
197
- table_name=dest.name,
198
- database_name=dest.database,
199
- schema_name=dest.dbtschema,
195
+ table_name=model.name,
196
+ database_name=model.database,
197
+ schema_name=model.dbtschema,
200
198
  service_name=dbservicename,
201
199
  ),
202
200
  )
203
201
 
204
- if from_entity is None:
202
+ if to_entity is None:
205
203
  continue
206
204
 
207
- yield Either(
208
- right=AddLineageRequest(
209
- edge=EntitiesEdge(
210
- fromEntity=EntityReference(
211
- id=from_entity.id,
212
- type="table",
213
- ),
214
- toEntity=EntityReference(
215
- id=to_entity.id,
216
- type="table",
205
+ for unique_id in model.dependsOn or []:
206
+ parents = [
207
+ d for d in dbt_parents if d.uniqueId == unique_id
208
+ ]
209
+ if parents:
210
+ from_entity = self.metadata.get_by_name(
211
+ entity=Table,
212
+ fqn=fqn.build(
213
+ metadata=self.metadata,
214
+ entity_type=Table,
215
+ table_name=parents[0].name,
216
+ database_name=parents[0].database,
217
+ schema_name=parents[0].dbtschema,
218
+ service_name=dbservicename,
217
219
  ),
218
- lineageDetails=lineage_details,
219
220
  )
220
- )
221
- )
221
+
222
+ if from_entity is None:
223
+ continue
224
+
225
+ yield Either(
226
+ right=AddLineageRequest(
227
+ edge=EntitiesEdge(
228
+ fromEntity=EntityReference(
229
+ id=from_entity.id,
230
+ type="table",
231
+ ),
232
+ toEntity=EntityReference(
233
+ id=to_entity.id,
234
+ type="table",
235
+ ),
236
+ lineageDetails=lineage_details,
237
+ )
238
+ )
239
+ )
222
240
 
223
241
  except Exception as exc:
224
242
  yield Either(
@@ -238,7 +256,6 @@ class DbtcloudSource(PipelineServiceSource):
238
256
  except Exception as exc:
239
257
  logger.debug(traceback.format_exc())
240
258
  logger.error(f"Failed to get pipeline list due to : {exc}")
241
- return None
242
259
 
243
260
  def get_pipeline_name(self, pipeline_details: DBTJob) -> str:
244
261
  """
@@ -263,21 +280,27 @@ class DbtcloudSource(PipelineServiceSource):
263
280
  TaskStatus(
264
281
  name=str(task.id),
265
282
  executionStatus=STATUS_MAP.get(task.state, StatusType.Pending),
266
- startTime=Timestamp(
267
- datetime_to_ts(
268
- datetime.strptime(task.started_at, "%Y-%m-%d %H:%M:%S.%f%z")
269
- if task.started_at
270
- else datetime.now()
283
+ startTime=(
284
+ Timestamp(
285
+ datetime_to_ts(
286
+ datetime.strptime(
287
+ task.started_at, "%Y-%m-%d %H:%M:%S.%f%z"
288
+ )
289
+ )
271
290
  )
291
+ if task.started_at
292
+ else None
272
293
  ),
273
- endTime=Timestamp(
274
- datetime_to_ts(
275
- datetime.strptime(
276
- task.finished_at, "%Y-%m-%d %H:%M:%S.%f%z"
294
+ endTime=(
295
+ Timestamp(
296
+ datetime_to_ts(
297
+ datetime.strptime(
298
+ task.finished_at, "%Y-%m-%d %H:%M:%S.%f%z"
299
+ )
277
300
  )
278
- if task.finished_at
279
- else datetime.now()
280
301
  )
302
+ if task.finished_at
303
+ else None
281
304
  ),
282
305
  )
283
306
  for task in self.client.get_runs(job_id=int(pipeline_details.id)) or []
@@ -294,7 +317,7 @@ class DbtcloudSource(PipelineServiceSource):
294
317
  pipeline_details.created_at, "%Y-%m-%dT%H:%M:%S.%f%z"
295
318
  )
296
319
  if pipeline_details.created_at
297
- else datetime.now()
320
+ else None
298
321
  )
299
322
  ),
300
323
  )
@@ -35,7 +35,7 @@ class DBTJob(BaseModel):
35
35
 
36
36
 
37
37
  class DBTJobList(BaseModel):
38
- Jobs: Optional[List[DBTJob]] = Field(None, alias="data")
38
+ Jobs: Optional[List[DBTJob]] = Field([], alias="data")
39
39
 
40
40
 
41
41
  class DBTRun(BaseModel):
@@ -50,7 +50,7 @@ class DBTRun(BaseModel):
50
50
 
51
51
 
52
52
  class DBTRunList(BaseModel):
53
- Runs: Optional[List[DBTRun]] = Field(None, alias="data")
53
+ Runs: Optional[List[DBTRun]] = Field([], alias="data")
54
54
 
55
55
 
56
56
  class DBTSources(BaseModel):
@@ -60,13 +60,13 @@ class DBTSources(BaseModel):
60
60
 
61
61
 
62
62
  class DBTModel(BaseModel):
63
+ uniqueId: Optional[str] = None
63
64
  name: Optional[str] = None
64
- alias: Optional[str] = None
65
65
  dbtschema: Optional[str] = Field(None, alias="schema")
66
66
  database: Optional[str] = None
67
- rawSql: Optional[str] = None
68
- parentsSources: Optional[List[DBTSources]] = None
67
+ dependsOn: Optional[List[str]] = None
69
68
 
70
69
 
71
70
  class DBTModelList(BaseModel):
72
- models: Optional[List[DBTModel]] = None
71
+ models: Optional[List[DBTModel]] = []
72
+ seeds: Optional[List[DBTModel]] = []
@@ -12,22 +12,33 @@
12
12
  GraphQL Queries used during ingestion
13
13
  """
14
14
 
15
- DBT_QUERY = """
15
+ DBT_GET_MODEL_DEPENDS_ON = """
16
16
  query Query($jobId: BigInt!, $runId: BigInt) {
17
17
  job(id: $jobId, runId: $runId) {
18
18
  models {
19
- name #destinationTable
20
- alias
19
+ name
21
20
  database
22
21
  schema
23
- rawSql
24
- materializedType
25
- parentsSources {
26
- database
27
- name
28
- schema
29
- sourceName #sourceTable
30
- }
22
+ dependsOn
23
+ }
24
+ }
25
+ }
26
+ """
27
+
28
+ DBT_GET_MODELS_SEEDS = """
29
+ query Query($jobId: BigInt!, $runId: BigInt) {
30
+ job(id: $jobId, runId: $runId) {
31
+ models {
32
+ uniqueId
33
+ name
34
+ database
35
+ schema
36
+ }
37
+ seeds {
38
+ uniqueId
39
+ name
40
+ schema
41
+ database
31
42
  }
32
43
  }
33
44
  }
@@ -89,7 +89,7 @@ class DomopipelineSource(PipelineServiceSource):
89
89
  self, pipeline_details
90
90
  ) -> Iterable[Either[CreatePipelineRequest]]:
91
91
  try:
92
- pipeline_name = pipeline_details["id"]
92
+ pipeline_name = str(pipeline_details["id"])
93
93
  source_url = self.get_source_url(pipeline_id=pipeline_name)
94
94
  task = Task(
95
95
  name=pipeline_name,
@@ -20,6 +20,7 @@ from metadata.generated.schema.entity.services.connections.pipeline.fivetranConn
20
20
  FivetranConnection,
21
21
  )
22
22
  from metadata.ingestion.ometa.client import REST, ClientConfig
23
+ from metadata.utils.helpers import clean_uri
23
24
 
24
25
 
25
26
  class FivetranClient:
@@ -36,7 +37,7 @@ class FivetranClient:
36
37
  )
37
38
 
38
39
  client_config: ClientConfig = ClientConfig(
39
- base_url=str(self.config.hostPort),
40
+ base_url=clean_uri(str(self.config.hostPort)),
40
41
  api_version="v1",
41
42
  auth_header="Authorization",
42
43
  auth_token=lambda: (api_token[2:-1], 0),
@@ -16,8 +16,6 @@ from google import auth
16
16
  from google.cloud.monitoring_v3 import MetricServiceClient
17
17
  from google.cloud.storage import Client
18
18
 
19
- NoProject = object()
20
-
21
19
 
22
20
  class MultiProjectClient:
23
21
  """Google Cloud Client does not support ad-hoc project switching. This class wraps the client and allows
@@ -37,19 +35,16 @@ class MultiProjectClient:
37
35
  project_ids: Optional[List[str]] = None,
38
36
  **client_kwargs,
39
37
  ):
38
+ self.default_project = None
40
39
  if project_ids:
41
40
  self.clients = {
42
41
  project_id: client_class(project=project_id, **client_kwargs)
43
42
  for project_id in project_ids
44
43
  }
45
44
  else:
46
- self.clients = {NoProject: client_class(**client_kwargs)}
47
-
48
- def project_ids(self):
49
- if NoProject in self.clients:
50
45
  _, project_id = auth.default()
51
- return [project_id]
52
- return list(self.clients.keys())
46
+ self.default_project = project_id
47
+ self.clients = {project_id: client_class(**client_kwargs)}
53
48
 
54
49
  def __getattr__(self, client_method):
55
50
  """Return the underlying client method as a partial function so we can inject the project_id."""
@@ -57,7 +52,7 @@ class MultiProjectClient:
57
52
 
58
53
  def _call(self, method, project_id, *args, **kwargs):
59
54
  """Call the method on the client for the given project_id. The args and kwargs are passed through."""
60
- client = self.clients.get(project_id, self.clients.get(NoProject))
55
+ client = self.clients.get(project_id, self.clients.get(self.default_project))
61
56
  if not client:
62
57
  raise ValueError(f"Project {project_id} not found")
63
58
  return getattr(client, method)(*args, **kwargs)
@@ -259,6 +259,10 @@ class GcsSource(StorageServiceSource):
259
259
  try:
260
260
  bucket = client.get_bucket(bucket_name)
261
261
  except NotFound:
262
+ logger.warning(
263
+ f"Bucket {bucket_name} not found in project {project_id}"
264
+ )
265
+ self.status.warning(f"{project_id}.{bucket_name}", "Bucket Not Found")
262
266
  continue
263
267
  return GCSBucketResponse(
264
268
  name=bucket.name,
@@ -16,6 +16,7 @@ supporting sqlalchemy abstraction layer
16
16
  """
17
17
 
18
18
  import concurrent.futures
19
+ import math
19
20
  import threading
20
21
  import traceback
21
22
  from collections import defaultdict
@@ -450,6 +451,14 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
450
451
  column=metric_func.column,
451
452
  sample=sample,
452
453
  )
454
+ if row:
455
+ for k, v in row.items():
456
+ # Replace NaN values with None
457
+ if isinstance(v, float) and math.isnan(v):
458
+ logger.warning(
459
+ "NaN data detected and will be cast to null in OpenMetadata to maintain database parity"
460
+ )
461
+ row[k] = None
453
462
  except Exception as exc:
454
463
  error = (
455
464
  f"{metric_func.column if metric_func.column is not None else metric_func.table.__tablename__} "
@@ -49,12 +49,9 @@ class NullRatio(ComposedMetric):
49
49
  Safely compute null ratio based on the profiler
50
50
  results of other Metrics
51
51
  """
52
- import pandas as pd
53
52
 
54
- res_count = res.get(Count.name())
55
- res_null = res.get(NullCount.name())
56
-
57
- if not pd.isnull(res_count) and not pd.isnull(res_null):
58
- result = res_null / (res_null + res_count)
59
- return None if pd.isnull(result) else result
60
- return None
53
+ count = res.get(Count.name())
54
+ null_count = res.get(NullCount.name())
55
+ if count + null_count == 0:
56
+ return None
57
+ return null_count / (null_count + count)
@@ -25,7 +25,11 @@ from metadata.profiler.metrics.static.count import Count
25
25
  from metadata.profiler.metrics.static.max import Max
26
26
  from metadata.profiler.metrics.static.min import Min
27
27
  from metadata.profiler.orm.functions.length import LenFn
28
- from metadata.profiler.orm.registry import is_concatenable, is_quantifiable
28
+ from metadata.profiler.orm.registry import (
29
+ is_concatenable,
30
+ is_quantifiable,
31
+ is_value_non_numeric,
32
+ )
29
33
  from metadata.utils.helpers import format_large_string_numbers
30
34
  from metadata.utils.logger import profiler_logger
31
35
 
@@ -120,7 +124,6 @@ class Histogram(HybridMetric):
120
124
  # freedman-diaconis rule
121
125
  bin_width = self._get_bin_width(float(res_iqr), res_row_count) # type: ignore
122
126
  num_bins = math.ceil((res_max - res_min) / bin_width) # type: ignore
123
-
124
127
  # sturge's rule
125
128
  if res_iqr is None or num_bins > max_bin_count:
126
129
  num_bins = int(math.ceil(math.log2(res_row_count) + 1))
@@ -148,7 +151,10 @@ class Histogram(HybridMetric):
148
151
  "We are missing the session attribute to compute the Histogram."
149
152
  )
150
153
 
151
- if not (is_quantifiable(self.col.type) or is_concatenable(self.col.type)):
154
+ if not (is_quantifiable(self.col.type) or is_concatenable(self.col.type)) or (
155
+ is_value_non_numeric(res.get(Min.name()))
156
+ or is_value_non_numeric(res.get(Max.name()))
157
+ ):
152
158
  return None
153
159
 
154
160
  # get the metric need for the freedman-diaconis rule
@@ -16,6 +16,7 @@ Null Count Metric definition
16
16
 
17
17
 
18
18
  from sqlalchemy import case, column
19
+ from sqlalchemy.sql.functions import coalesce
19
20
 
20
21
  from metadata.generated.schema.configuration.profilerConfiguration import MetricType
21
22
  from metadata.profiler.metrics.core import StaticMetric, _label
@@ -48,8 +49,9 @@ class NullCount(StaticMetric):
48
49
  @_label
49
50
  def fn(self):
50
51
  """sqlalchemy function"""
51
- return SumFn(
52
- case([(column(self.col.name, self.col.type).is_(None), 1)], else_=0)
52
+ return coalesce(
53
+ SumFn(case([(column(self.col.name, self.col.type).is_(None), 1)], else_=0)),
54
+ 0,
53
55
  )
54
56
 
55
57
  def df_fn(self, dfs=None):
@@ -45,7 +45,7 @@ def _(element, compiler, **kw):
45
45
  def _(element, compiler, **kw):
46
46
  """Cast to DECIMAL to address cannot cast nan to bigint"""
47
47
  proc = compiler.process(element.clauses, **kw)
48
- return f"SUM(TRY_CAST({proc} AS DECIMAL))"
48
+ return f"COALESCE(SUM(CAST({proc} AS DECIMAL)),0)"
49
49
 
50
50
 
51
51
  @compiles(SumFn, Dialects.BigQuery)
@@ -194,7 +194,7 @@ class OracleTableMetricComputer(BaseTableMetricComputer):
194
194
  Column("object_name").label("table_name"),
195
195
  Column("created"),
196
196
  ],
197
- self._build_table("all_objects", None),
197
+ self._build_table("DBA_OBJECTS", None),
198
198
  [
199
199
  func.lower(Column("owner")) == self.schema_name.lower(),
200
200
  func.lower(Column("object_name")) == self.table_name.lower(),
@@ -209,7 +209,7 @@ class OracleTableMetricComputer(BaseTableMetricComputer):
209
209
  Column("table_name"),
210
210
  Column("NUM_ROWS"),
211
211
  ],
212
- self._build_table("all_tables", None),
212
+ self._build_table("DBA_TABLES", None),
213
213
  [
214
214
  func.lower(Column("owner")) == self.schema_name.lower(),
215
215
  func.lower(Column("table_name")) == self.table_name.lower(),
@@ -13,6 +13,8 @@
13
13
  Custom types' registry for easy access
14
14
  without having an import mess
15
15
  """
16
+ import math
17
+
16
18
  import sqlalchemy
17
19
  from sqlalchemy import Date, DateTime, Integer, Numeric, Time
18
20
  from sqlalchemy.sql.sqltypes import Concatenable, Enum
@@ -171,3 +173,12 @@ def is_concatenable(_type) -> bool:
171
173
  if isinstance(_type, DataType):
172
174
  return _type.value in CONCATENABLE_SET
173
175
  return issubclass(_type.__class__, Concatenable)
176
+
177
+
178
+ def is_value_non_numeric(value) -> bool:
179
+ try:
180
+ if isinstance(value, float) and (math.isnan(value) or math.isinf(value)):
181
+ return True
182
+ return False
183
+ except Exception:
184
+ return False
@@ -77,9 +77,12 @@ class DefaultProfiler(Profiler):
77
77
  include_columns: Optional[List[ColumnProfilerConfig]] = None,
78
78
  exclude_columns: Optional[List[str]] = None,
79
79
  global_profiler_configuration: Optional[ProfilerConfiguration] = None,
80
+ db_service=None,
80
81
  ):
81
82
  _metrics = get_default_metrics(
82
- table=profiler_interface.table, ometa_client=profiler_interface.ometa_client
83
+ table=profiler_interface.table,
84
+ ometa_client=profiler_interface.ometa_client,
85
+ db_service=db_service,
83
86
  )
84
87
 
85
88
  super().__init__(
@@ -15,6 +15,9 @@ Factory class for creating sampler objects
15
15
 
16
16
  from typing import Union
17
17
 
18
+ from metadata.generated.schema.entity.services.connections.database.azureSQLConnection import (
19
+ AzureSQLConnection,
20
+ )
18
21
  from metadata.generated.schema.entity.services.connections.database.bigQueryConnection import (
19
22
  BigQueryConnection,
20
23
  )
@@ -36,6 +39,9 @@ from metadata.generated.schema.entity.services.connections.database.trinoConnect
36
39
  from metadata.generated.schema.entity.services.databaseService import DatabaseConnection
37
40
  from metadata.profiler.processor.sampler.nosql.sampler import NoSQLSampler
38
41
  from metadata.profiler.processor.sampler.pandas.sampler import DatalakeSampler
42
+ from metadata.profiler.processor.sampler.sqlalchemy.azuresql.sampler import (
43
+ AzureSQLSampler,
44
+ )
39
45
  from metadata.profiler.processor.sampler.sqlalchemy.bigquery.sampler import (
40
46
  BigQuerySampler,
41
47
  )
@@ -89,3 +95,6 @@ sampler_factory_.register(
89
95
  sampler_factory_.register(
90
96
  source_type=DynamoDBConnection.__name__, sampler_class=NoSQLSampler
91
97
  )
98
+ sampler_factory_.register(
99
+ source_type=AzureSQLConnection.__name__, sampler_class=AzureSQLSampler
100
+ )
@@ -0,0 +1,40 @@
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
+ Helper module to handle data sampling
13
+ for the profiler
14
+ """
15
+ from typing import List, Optional
16
+
17
+ from sqlalchemy import Column
18
+
19
+ from metadata.generated.schema.entity.data.table import TableData
20
+ from metadata.profiler.processor.sampler.sqlalchemy.sampler import SQASampler
21
+
22
+
23
+ class AzureSQLSampler(SQASampler):
24
+ """
25
+ Generates a sample of the data to not
26
+ run the query in the whole table.
27
+ """
28
+
29
+ # These types are not supported by pyodbc - it throws
30
+ # an error when trying to fetch data from these columns
31
+ # pyodbc.ProgrammingError: ('ODBC SQL type -151 is not yet supported. column-index=x type=-151', 'HY106')
32
+ NOT_COMPUTE_PYODBC = {"SQASGeography", "UndeterminedType"}
33
+
34
+ def fetch_sample_data(self, columns: Optional[List[Column]] = None) -> TableData:
35
+ sqa_columns = []
36
+ if columns:
37
+ for col in columns:
38
+ if col.type.__class__.__name__ not in self.NOT_COMPUTE_PYODBC:
39
+ sqa_columns.append(col)
40
+ return super().fetch_sample_data(sqa_columns or columns)
@@ -277,6 +277,7 @@ class ProfilerSource(ProfilerSourceInterface):
277
277
  include_columns=self._get_include_columns(entity, table_config),
278
278
  exclude_columns=self._get_exclude_columns(entity, table_config),
279
279
  global_profiler_configuration=self.global_profiler_configuration,
280
+ db_service=db_service,
280
281
  )
281
282
 
282
283
  metrics = (
@@ -21,12 +21,15 @@ from metadata.generated.schema.security.credentials.bitbucketCredentials import
21
21
  from metadata.generated.schema.security.credentials.githubCredentials import (
22
22
  GitHubCredentials,
23
23
  )
24
+ from metadata.generated.schema.security.credentials.gitlabCredentials import (
25
+ GitlabCredentials,
26
+ )
24
27
  from metadata.readers.file.base import Reader
25
28
  from metadata.utils.logger import ingestion_logger
26
29
 
27
30
  logger = ingestion_logger()
28
31
 
29
- ReadersCredentials = Union[GitHubCredentials, BitBucketCredentials]
32
+ ReadersCredentials = Union[GitHubCredentials, BitBucketCredentials, GitlabCredentials]
30
33
 
31
34
 
32
35
  class ApiReader(Reader, ABC):