openmetadata-ingestion 1.6.0.0rc1__py3-none-any.whl → 1.6.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 (791) hide show
  1. metadata/cli/classify.py +52 -0
  2. metadata/cmd.py +9 -0
  3. metadata/data_quality/builders/{i_validator_builder.py → validator_builder.py} +40 -29
  4. metadata/data_quality/interface/pandas/pandas_test_suite_interface.py +25 -25
  5. metadata/data_quality/interface/sqlalchemy/sqa_test_suite_interface.py +23 -50
  6. metadata/data_quality/interface/test_suite_interface.py +45 -56
  7. metadata/data_quality/processor/test_case_runner.py +9 -9
  8. metadata/data_quality/runner/base_test_suite_source.py +52 -26
  9. metadata/data_quality/validations/base_test_handler.py +10 -5
  10. metadata/data_quality/validations/column/sqlalchemy/columnValueLengthsToBeBetween.py +1 -1
  11. metadata/data_quality/validations/column/sqlalchemy/columnValueMaxToBeBetween.py +1 -1
  12. metadata/data_quality/validations/column/sqlalchemy/columnValueMeanToBeBetween.py +1 -1
  13. metadata/data_quality/validations/column/sqlalchemy/columnValueMedianToBeBetween.py +1 -1
  14. metadata/data_quality/validations/column/sqlalchemy/columnValueMinToBeBetween.py +1 -1
  15. metadata/data_quality/validations/column/sqlalchemy/columnValueStdDevToBeBetween.py +1 -1
  16. metadata/data_quality/validations/column/sqlalchemy/columnValuesMissingCount.py +1 -1
  17. metadata/data_quality/validations/column/sqlalchemy/columnValuesSumToBeBetween.py +1 -1
  18. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeAtExpectedLocation.py +1 -1
  19. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeBetween.py +1 -1
  20. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeInSet.py +1 -1
  21. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotInSet.py +1 -1
  22. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotNull.py +1 -1
  23. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +2 -8
  24. metadata/data_quality/validations/column/sqlalchemy/columnValuesToMatchRegex.py +1 -1
  25. metadata/data_quality/validations/column/sqlalchemy/columnValuesToNotMatchRegex.py +1 -1
  26. metadata/data_quality/validations/runtime_param_setter/param_setter.py +2 -3
  27. metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +45 -17
  28. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +21 -16
  29. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +21 -18
  30. metadata/data_quality/validations/table/sqlalchemy/tableRowInsertedCountToBeBetween.py +2 -2
  31. metadata/examples/workflows/bigquery_classifier.yaml +56 -0
  32. metadata/examples/workflows/bigquery_profiler.yaml +1 -2
  33. metadata/examples/workflows/db2_profiler.yaml +1 -2
  34. metadata/examples/workflows/dbtcloud.yaml +2 -1
  35. metadata/examples/workflows/{mstr.yaml → microstrategy.yaml} +3 -2
  36. metadata/examples/workflows/mongodb.yaml +4 -0
  37. metadata/examples/workflows/mysql_profiler.yaml +0 -1
  38. metadata/examples/workflows/redshift_classifier.yaml +38 -0
  39. metadata/examples/workflows/redshift_profiler.yaml +2 -3
  40. metadata/generated/antlr/FqnLexer.py +15 -15
  41. metadata/generated/schema/analytics/__init__.py +1 -1
  42. metadata/generated/schema/analytics/basic.py +1 -1
  43. metadata/generated/schema/analytics/reportData.py +1 -1
  44. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  45. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  46. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  47. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  48. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  49. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  50. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  51. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  52. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  53. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  54. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  55. metadata/generated/schema/api/__init__.py +1 -1
  56. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  57. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  58. metadata/generated/schema/api/analytics/__init__.py +1 -1
  59. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  60. metadata/generated/schema/api/automations/__init__.py +1 -1
  61. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  62. metadata/generated/schema/api/bulkAssets.py +1 -1
  63. metadata/generated/schema/api/classification/__init__.py +1 -1
  64. metadata/generated/schema/api/classification/createClassification.py +1 -1
  65. metadata/generated/schema/api/classification/createTag.py +1 -1
  66. metadata/generated/schema/api/classification/loadTags.py +1 -1
  67. metadata/generated/schema/api/createBot.py +1 -1
  68. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  69. metadata/generated/schema/api/createType.py +1 -1
  70. metadata/generated/schema/api/data/__init__.py +1 -1
  71. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  72. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  73. metadata/generated/schema/api/data/createChart.py +1 -1
  74. metadata/generated/schema/api/data/createContainer.py +1 -1
  75. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  76. metadata/generated/schema/api/data/createDashboard.py +1 -1
  77. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  78. metadata/generated/schema/api/data/createDatabase.py +1 -1
  79. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  80. metadata/generated/schema/api/data/createGlossary.py +1 -1
  81. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  82. metadata/generated/schema/api/data/createMetric.py +1 -1
  83. metadata/generated/schema/api/data/createMlModel.py +1 -1
  84. metadata/generated/schema/api/data/createPipeline.py +1 -1
  85. metadata/generated/schema/api/data/createQuery.py +1 -1
  86. metadata/generated/schema/api/data/createSearchIndex.py +8 -1
  87. metadata/generated/schema/api/data/createStoredProcedure.py +8 -1
  88. metadata/generated/schema/api/data/createTable.py +1 -1
  89. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  90. metadata/generated/schema/api/data/createTopic.py +1 -1
  91. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  92. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  93. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  94. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  95. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  96. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  97. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  98. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  99. metadata/generated/schema/api/docStore/__init__.py +1 -1
  100. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  101. metadata/generated/schema/api/domains/__init__.py +1 -1
  102. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  103. metadata/generated/schema/api/domains/createDomain.py +1 -1
  104. metadata/generated/schema/api/feed/__init__.py +1 -1
  105. metadata/generated/schema/api/feed/closeTask.py +1 -1
  106. metadata/generated/schema/api/feed/createPost.py +1 -1
  107. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  108. metadata/generated/schema/api/feed/createThread.py +1 -1
  109. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  110. metadata/generated/schema/api/feed/threadCount.py +1 -1
  111. metadata/generated/schema/api/governance/__init__.py +1 -1
  112. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  113. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  114. metadata/generated/schema/api/lineage/__init__.py +1 -1
  115. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  116. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  117. metadata/generated/schema/api/policies/__init__.py +1 -1
  118. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  119. metadata/generated/schema/api/services/__init__.py +1 -1
  120. metadata/generated/schema/api/services/createApiService.py +1 -1
  121. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  122. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  123. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  124. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  125. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  126. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  127. metadata/generated/schema/api/services/createSearchService.py +1 -1
  128. metadata/generated/schema/api/services/createStorageService.py +1 -1
  129. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  130. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  131. metadata/generated/schema/api/setOwner.py +1 -1
  132. metadata/generated/schema/api/teams/__init__.py +1 -1
  133. metadata/generated/schema/api/teams/createPersona.py +1 -1
  134. metadata/generated/schema/api/teams/createRole.py +1 -1
  135. metadata/generated/schema/api/teams/createTeam.py +1 -1
  136. metadata/generated/schema/api/teams/createUser.py +1 -1
  137. metadata/generated/schema/api/tests/__init__.py +1 -1
  138. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  139. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  140. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  141. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  142. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  143. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  144. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  145. metadata/generated/schema/api/voteRequest.py +1 -1
  146. metadata/generated/schema/auth/__init__.py +1 -1
  147. metadata/generated/schema/auth/basicAuth.py +1 -1
  148. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  149. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  150. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  151. metadata/generated/schema/auth/emailRequest.py +1 -1
  152. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  153. metadata/generated/schema/auth/generateToken.py +1 -1
  154. metadata/generated/schema/auth/jwtAuth.py +1 -1
  155. metadata/generated/schema/auth/loginRequest.py +1 -1
  156. metadata/generated/schema/auth/logoutRequest.py +1 -1
  157. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  158. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  159. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  160. metadata/generated/schema/auth/refreshToken.py +1 -1
  161. metadata/generated/schema/auth/registrationRequest.py +1 -1
  162. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  163. metadata/generated/schema/auth/revokeToken.py +1 -1
  164. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  165. metadata/generated/schema/auth/ssoAuth.py +1 -1
  166. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  167. metadata/generated/schema/configuration/__init__.py +1 -1
  168. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  170. metadata/generated/schema/configuration/authConfig.py +1 -1
  171. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  176. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  182. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  186. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  187. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  189. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  193. metadata/generated/schema/configuration/searchSettings.py +1 -1
  194. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -14
  195. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  196. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  197. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  199. metadata/generated/schema/dataInsight/__init__.py +1 -1
  200. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  201. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  202. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  203. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  204. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  205. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  207. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  208. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  209. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  210. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  211. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  212. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  213. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  214. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  215. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  216. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  217. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  218. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  219. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  220. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  221. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  222. metadata/generated/schema/email/__init__.py +1 -1
  223. metadata/generated/schema/email/emailRequest.py +1 -1
  224. metadata/generated/schema/email/emailTemplate.py +1 -1
  225. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  226. metadata/generated/schema/email/smtpSettings.py +1 -1
  227. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  228. metadata/generated/schema/entity/__init__.py +1 -1
  229. metadata/generated/schema/entity/applications/__init__.py +1 -1
  230. metadata/generated/schema/entity/applications/app.py +2 -1
  231. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  232. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  234. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +4 -2
  235. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +22 -0
  252. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  258. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  259. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  260. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  261. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  262. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  263. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  264. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  265. metadata/generated/schema/entity/automations/__init__.py +1 -1
  266. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  267. metadata/generated/schema/entity/automations/workflow.py +1 -1
  268. metadata/generated/schema/entity/bot.py +1 -1
  269. metadata/generated/schema/entity/classification/__init__.py +1 -1
  270. metadata/generated/schema/entity/classification/classification.py +1 -1
  271. metadata/generated/schema/entity/classification/tag.py +1 -1
  272. metadata/generated/schema/entity/data/__init__.py +1 -1
  273. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  274. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  275. metadata/generated/schema/entity/data/chart.py +1 -1
  276. metadata/generated/schema/entity/data/container.py +1 -1
  277. metadata/generated/schema/entity/data/dashboard.py +1 -1
  278. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  279. metadata/generated/schema/entity/data/database.py +1 -1
  280. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  281. metadata/generated/schema/entity/data/glossary.py +1 -1
  282. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  283. metadata/generated/schema/entity/data/metric.py +1 -1
  284. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  285. metadata/generated/schema/entity/data/pipeline.py +1 -1
  286. metadata/generated/schema/entity/data/query.py +1 -1
  287. metadata/generated/schema/entity/data/report.py +1 -1
  288. metadata/generated/schema/entity/data/searchIndex.py +13 -1
  289. metadata/generated/schema/entity/data/storedProcedure.py +13 -1
  290. metadata/generated/schema/entity/data/table.py +1 -1
  291. metadata/generated/schema/entity/data/topic.py +1 -1
  292. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  293. metadata/generated/schema/entity/docStore/document.py +1 -1
  294. metadata/generated/schema/entity/domains/__init__.py +1 -1
  295. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  296. metadata/generated/schema/entity/domains/domain.py +1 -1
  297. metadata/generated/schema/entity/events/__init__.py +1 -1
  298. metadata/generated/schema/entity/events/webhook.py +1 -1
  299. metadata/generated/schema/entity/feed/__init__.py +1 -1
  300. metadata/generated/schema/entity/feed/assets.py +1 -1
  301. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  302. metadata/generated/schema/entity/feed/description.py +1 -1
  303. metadata/generated/schema/entity/feed/domain.py +1 -1
  304. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  305. metadata/generated/schema/entity/feed/owner.py +1 -1
  306. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  307. metadata/generated/schema/entity/feed/tag.py +1 -1
  308. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  309. metadata/generated/schema/entity/feed/thread.py +1 -1
  310. metadata/generated/schema/entity/policies/__init__.py +1 -1
  311. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  312. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  313. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  314. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  315. metadata/generated/schema/entity/policies/filters.py +1 -1
  316. metadata/generated/schema/entity/policies/policy.py +1 -1
  317. metadata/generated/schema/entity/services/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/apiService.py +1 -1
  319. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  320. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  321. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  323. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  324. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  325. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  326. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  327. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  328. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +67 -0
  334. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  340. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  341. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  342. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +6 -2
  393. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +6 -3
  395. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  416. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  422. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  423. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  430. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  436. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +17 -5
  444. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  456. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  458. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  459. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  460. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  464. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  469. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  470. metadata/generated/schema/entity/services/dashboardService.py +4 -4
  471. metadata/generated/schema/entity/services/databaseService.py +1 -1
  472. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  473. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +2 -1
  474. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  475. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  476. metadata/generated/schema/entity/services/messagingService.py +1 -1
  477. metadata/generated/schema/entity/services/metadataService.py +1 -1
  478. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  479. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  480. metadata/generated/schema/entity/services/searchService.py +1 -1
  481. metadata/generated/schema/entity/services/serviceType.py +1 -1
  482. metadata/generated/schema/entity/services/storageService.py +1 -1
  483. metadata/generated/schema/entity/teams/__init__.py +1 -1
  484. metadata/generated/schema/entity/teams/persona.py +1 -1
  485. metadata/generated/schema/entity/teams/role.py +1 -1
  486. metadata/generated/schema/entity/teams/team.py +1 -1
  487. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  488. metadata/generated/schema/entity/teams/user.py +1 -1
  489. metadata/generated/schema/entity/type.py +1 -1
  490. metadata/generated/schema/entity/utils/__init__.py +1 -1
  491. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  492. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  493. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  494. metadata/generated/schema/events/__init__.py +1 -1
  495. metadata/generated/schema/events/alertMetrics.py +1 -1
  496. metadata/generated/schema/events/api/__init__.py +1 -1
  497. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  498. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  499. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  500. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  501. metadata/generated/schema/events/api/typedEvent.py +1 -1
  502. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  503. metadata/generated/schema/events/eventFilterRule.py +1 -1
  504. metadata/generated/schema/events/eventSubscription.py +1 -1
  505. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  506. metadata/generated/schema/events/failedEvent.py +1 -1
  507. metadata/generated/schema/events/failedEventResponse.py +1 -1
  508. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  509. metadata/generated/schema/events/statusContext.py +1 -1
  510. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  511. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  512. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  513. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  514. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  515. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  516. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  517. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  518. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  519. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  520. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  521. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  522. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  523. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  524. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  525. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  526. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  527. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  528. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  529. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  530. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  531. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +2 -2
  532. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  533. metadata/generated/schema/governance/workflows/workflowInstance.py +8 -1
  534. metadata/generated/schema/governance/workflows/workflowInstanceState.py +8 -1
  535. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  536. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  537. metadata/generated/schema/metadataIngestion/application.py +1 -1
  538. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  539. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  540. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  541. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +127 -0
  542. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  543. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -25
  544. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  545. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  546. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  547. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  548. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  549. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  551. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  552. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +9 -1
  553. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +9 -1
  554. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  555. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  556. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  557. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  558. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  559. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +9 -1
  560. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  561. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  562. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  563. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  564. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  565. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  566. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  567. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  568. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  569. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  571. metadata/generated/schema/metadataIngestion/workflow.py +3 -1
  572. metadata/generated/schema/monitoring/__init__.py +1 -1
  573. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  574. metadata/generated/schema/security/__init__.py +1 -1
  575. metadata/generated/schema/security/client/__init__.py +1 -1
  576. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  577. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  578. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  579. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  580. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  581. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  582. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  583. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  584. metadata/generated/schema/security/credentials/__init__.py +1 -1
  585. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  586. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  587. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  588. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  589. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  590. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  591. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  592. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  593. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  594. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  595. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  596. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  597. metadata/generated/schema/security/sasl/__init__.py +1 -1
  598. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  599. metadata/generated/schema/security/secrets/__init__.py +1 -1
  600. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  601. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  602. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  603. metadata/generated/schema/security/securityConfiguration.py +1 -1
  604. metadata/generated/schema/security/ssl/__init__.py +1 -1
  605. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  606. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  607. metadata/generated/schema/settings/__init__.py +1 -1
  608. metadata/generated/schema/settings/settings.py +1 -1
  609. metadata/generated/schema/system/__init__.py +1 -1
  610. metadata/generated/schema/system/entityError.py +1 -1
  611. metadata/generated/schema/system/eventPublisherJob.py +2 -1
  612. metadata/generated/schema/system/indexingError.py +1 -1
  613. metadata/generated/schema/system/limitsResponse.py +1 -1
  614. metadata/generated/schema/system/ui/__init__.py +1 -1
  615. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  616. metadata/generated/schema/system/ui/page.py +1 -1
  617. metadata/generated/schema/system/validationResponse.py +1 -1
  618. metadata/generated/schema/tests/__init__.py +1 -1
  619. metadata/generated/schema/tests/assigned.py +1 -1
  620. metadata/generated/schema/tests/basic.py +1 -1
  621. metadata/generated/schema/tests/customMetric.py +1 -1
  622. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  623. metadata/generated/schema/tests/resolved.py +1 -1
  624. metadata/generated/schema/tests/testCase.py +1 -1
  625. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  626. metadata/generated/schema/tests/testDefinition.py +1 -1
  627. metadata/generated/schema/tests/testSuite.py +1 -1
  628. metadata/generated/schema/type/__init__.py +1 -1
  629. metadata/generated/schema/type/apiSchema.py +1 -1
  630. metadata/generated/schema/type/assetCertification.py +1 -1
  631. metadata/generated/schema/type/auditLog.py +1 -1
  632. metadata/generated/schema/type/basic.py +1 -1
  633. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  634. metadata/generated/schema/type/changeEvent.py +1 -1
  635. metadata/generated/schema/type/changeEventType.py +1 -1
  636. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  637. metadata/generated/schema/type/csvDocumentation.py +1 -1
  638. metadata/generated/schema/type/csvErrorType.py +1 -1
  639. metadata/generated/schema/type/csvFile.py +1 -1
  640. metadata/generated/schema/type/csvImportResult.py +1 -1
  641. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  642. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  643. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  644. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  645. metadata/generated/schema/type/customProperty.py +1 -1
  646. metadata/generated/schema/type/dailyCount.py +1 -1
  647. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  648. metadata/generated/schema/type/entityHierarchy.py +1 -1
  649. metadata/generated/schema/type/entityHistory.py +1 -1
  650. metadata/generated/schema/type/entityLineage.py +1 -1
  651. metadata/generated/schema/type/entityReference.py +1 -1
  652. metadata/generated/schema/type/entityReferenceList.py +1 -1
  653. metadata/generated/schema/type/entityRelationship.py +1 -1
  654. metadata/generated/schema/type/entityUsage.py +1 -1
  655. metadata/generated/schema/type/filterPattern.py +1 -1
  656. metadata/generated/schema/type/function.py +1 -1
  657. metadata/generated/schema/type/include.py +1 -1
  658. metadata/generated/schema/type/jdbcConnection.py +1 -1
  659. metadata/generated/schema/type/lifeCycle.py +1 -1
  660. metadata/generated/schema/type/paging.py +1 -1
  661. metadata/generated/schema/type/profile.py +1 -1
  662. metadata/generated/schema/type/queryParserData.py +1 -1
  663. metadata/generated/schema/type/reaction.py +1 -1
  664. metadata/generated/schema/type/schedule.py +1 -1
  665. metadata/generated/schema/type/schema.py +1 -1
  666. metadata/generated/schema/type/tableQuery.py +1 -1
  667. metadata/generated/schema/type/tableUsageCount.py +1 -1
  668. metadata/generated/schema/type/tagLabel.py +1 -1
  669. metadata/generated/schema/type/usageDetails.py +1 -1
  670. metadata/generated/schema/type/usageRequest.py +1 -1
  671. metadata/generated/schema/type/votes.py +1 -1
  672. metadata/ingestion/api/models.py +9 -5
  673. metadata/ingestion/models/patch_request.py +1 -0
  674. metadata/ingestion/ometa/client.py +13 -8
  675. metadata/ingestion/ometa/models.py +1 -0
  676. metadata/ingestion/ometa/ometa_api.py +6 -3
  677. metadata/ingestion/sink/metadata_rest.py +23 -18
  678. metadata/ingestion/source/dashboard/microstrategy/client.py +252 -0
  679. metadata/ingestion/source/dashboard/{mstr → microstrategy}/connection.py +7 -10
  680. metadata/ingestion/source/dashboard/{mstr → microstrategy}/metadata.py +74 -51
  681. metadata/ingestion/source/dashboard/{mstr → microstrategy}/models.py +9 -3
  682. metadata/ingestion/source/dashboard/microstrategy/service_spec.py +6 -0
  683. metadata/ingestion/source/dashboard/powerbi/client.py +1 -2
  684. metadata/ingestion/source/dashboard/superset/db_source.py +1 -1
  685. metadata/ingestion/source/database/athena/metadata.py +8 -0
  686. metadata/ingestion/source/database/azuresql/service_spec.py +2 -0
  687. metadata/ingestion/source/database/bigquery/profiler/profiler.py +1 -1
  688. metadata/ingestion/source/database/bigquery/service_spec.py +2 -0
  689. metadata/ingestion/source/database/common_nosql_source.py +7 -0
  690. metadata/ingestion/source/database/databricks/metadata.py +1 -3
  691. metadata/ingestion/source/database/databricks/service_spec.py +4 -0
  692. metadata/ingestion/source/database/datalake/clients/azure_blob.py +0 -3
  693. metadata/ingestion/source/database/datalake/clients/base.py +10 -1
  694. metadata/ingestion/source/database/datalake/clients/gcs.py +4 -2
  695. metadata/ingestion/source/database/datalake/clients/s3.py +0 -3
  696. metadata/ingestion/source/database/datalake/service_spec.py +8 -1
  697. metadata/ingestion/source/database/dbt/constants.py +4 -0
  698. metadata/ingestion/source/database/dbt/dbt_config.py +19 -1
  699. metadata/ingestion/source/database/dbt/dbt_service.py +8 -1
  700. metadata/ingestion/source/database/dbt/dbt_utils.py +29 -0
  701. metadata/ingestion/source/database/dbt/metadata.py +70 -1
  702. metadata/ingestion/source/database/dbt/models.py +2 -0
  703. metadata/ingestion/source/database/dynamodb/service_spec.py +4 -1
  704. metadata/ingestion/source/database/mongodb/service_spec.py +4 -1
  705. metadata/ingestion/source/database/mysql/connection.py +5 -0
  706. metadata/ingestion/source/database/mysql/lineage.py +12 -30
  707. metadata/ingestion/source/database/mysql/queries.py +43 -0
  708. metadata/ingestion/source/database/mysql/query_parser.py +46 -0
  709. metadata/ingestion/source/database/mysql/service_spec.py +7 -1
  710. metadata/{data_quality/builders/pandas_validator_builder.py → ingestion/source/database/mysql/usage.py} +9 -14
  711. metadata/ingestion/source/database/sample_data.py +4 -12
  712. metadata/ingestion/source/database/snowflake/connection.py +1 -1
  713. metadata/ingestion/source/database/snowflake/service_spec.py +6 -0
  714. metadata/ingestion/source/database/trino/service_spec.py +2 -0
  715. metadata/ingestion/source/database/unitycatalog/service_spec.py +4 -0
  716. metadata/ingestion/source/pipeline/airflow/connection.py +45 -2
  717. metadata/ingestion/source/pipeline/airflow/metadata.py +35 -25
  718. metadata/ingestion/source/pipeline/dbtcloud/client.py +67 -28
  719. metadata/ingestion/source/pipeline/dbtcloud/connection.py +1 -3
  720. metadata/ingestion/source/pipeline/dbtcloud/models.py +1 -1
  721. metadata/ingestion/source/pipeline/kafkaconnect/client.py +1 -1
  722. metadata/ingestion/source/search/elasticsearch/metadata.py +53 -0
  723. metadata/ingestion/source/search/search_service.py +44 -1
  724. metadata/mixins/pandas/pandas_mixin.py +2 -31
  725. metadata/mixins/sqalchemy/sqa_mixin.py +16 -16
  726. metadata/pii/processor.py +10 -9
  727. metadata/profiler/api/models.py +3 -79
  728. metadata/profiler/config.py +39 -0
  729. metadata/profiler/interface/nosql/profiler_interface.py +1 -26
  730. metadata/profiler/interface/pandas/profiler_interface.py +37 -77
  731. metadata/profiler/interface/profiler_interface.py +10 -282
  732. metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +0 -19
  733. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +2 -17
  734. metadata/profiler/interface/sqlalchemy/db2/profiler_interface.py +1 -1
  735. metadata/profiler/interface/sqlalchemy/mariadb/profiler_interface.py +2 -2
  736. metadata/profiler/interface/sqlalchemy/profiler_interface.py +46 -109
  737. metadata/profiler/interface/sqlalchemy/single_store/profiler_interface.py +2 -2
  738. metadata/profiler/interface/sqlalchemy/snowflake/profiler_interface.py +1 -1
  739. metadata/profiler/interface/sqlalchemy/stored_statistics_profiler.py +6 -8
  740. metadata/profiler/interface/sqlalchemy/trino/profiler_interface.py +2 -2
  741. metadata/profiler/orm/converter/base.py +21 -12
  742. metadata/profiler/orm/functions/table_metric_computer.py +5 -4
  743. metadata/profiler/processor/core.py +5 -58
  744. metadata/profiler/processor/handle_partition.py +0 -48
  745. metadata/profiler/processor/runner.py +111 -35
  746. metadata/profiler/processor/sample_data_handler.py +7 -4
  747. metadata/profiler/source/database/base/profiler_source.py +57 -138
  748. metadata/profiler/source/database/bigquery/profiler_source.py +3 -3
  749. metadata/profiler/source/database/databricks/profiler_source.py +2 -3
  750. metadata/profiler/source/fetcher/config.py +44 -0
  751. metadata/profiler/source/fetcher/fetcher_strategy.py +2 -4
  752. metadata/sampler/config.py +237 -0
  753. metadata/sampler/models.py +106 -0
  754. metadata/{profiler/processor/sampler → sampler}/nosql/sampler.py +44 -12
  755. metadata/sampler/pandas/sampler.py +239 -0
  756. metadata/{utils → sampler}/partition.py +66 -51
  757. metadata/sampler/processor.py +158 -0
  758. metadata/sampler/sampler_interface.py +251 -0
  759. metadata/{profiler/processor/sampler → sampler}/sqlalchemy/azuresql/sampler.py +1 -1
  760. metadata/{profiler/processor/sampler → sampler}/sqlalchemy/bigquery/sampler.py +55 -26
  761. metadata/sampler/sqlalchemy/postgres/sampler.py +91 -0
  762. metadata/{profiler/processor/sampler → sampler}/sqlalchemy/sampler.py +90 -98
  763. metadata/sampler/sqlalchemy/snowflake/sampler.py +95 -0
  764. metadata/{profiler/processor/sampler → sampler}/sqlalchemy/trino/sampler.py +5 -3
  765. metadata/utils/constants.py +63 -0
  766. metadata/utils/helpers.py +1 -2
  767. metadata/utils/logger.py +9 -0
  768. metadata/utils/profiler_utils.py +42 -0
  769. metadata/utils/service_spec/default.py +6 -0
  770. metadata/utils/service_spec/service_spec.py +47 -0
  771. metadata/utils/sqlalchemy_utils.py +1 -1
  772. metadata/utils/ssl_manager.py +39 -1
  773. metadata/workflow/classification.py +53 -0
  774. metadata/workflow/profiler.py +1 -17
  775. {openmetadata_ingestion-1.6.0.0rc1.dist-info → openmetadata_ingestion-1.6.0.0rc2.dist-info}/METADATA +366 -366
  776. {openmetadata_ingestion-1.6.0.0rc1.dist-info → openmetadata_ingestion-1.6.0.0rc2.dist-info}/RECORD +781 -771
  777. metadata/data_quality/builders/sqa_validator_builder.py +0 -25
  778. metadata/data_quality/interface/test_suite_interface_factory.py +0 -158
  779. metadata/data_quality/runner/test_suite_source_factory.py +0 -38
  780. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +0 -54
  781. metadata/ingestion/source/dashboard/mstr/client.py +0 -209
  782. metadata/ingestion/source/dashboard/mstr/service_spec.py +0 -4
  783. metadata/profiler/processor/sampler/pandas/sampler.py +0 -170
  784. metadata/profiler/processor/sampler/sampler_factory.py +0 -100
  785. metadata/profiler/processor/sampler/sampler_interface.py +0 -74
  786. metadata/profiler/processor/sampler/sqlalchemy/snowflake/sampler.py +0 -83
  787. /metadata/ingestion/source/dashboard/{mstr → microstrategy}/__init__.py +0 -0
  788. {openmetadata_ingestion-1.6.0.0rc1.dist-info → openmetadata_ingestion-1.6.0.0rc2.dist-info}/LICENSE +0 -0
  789. {openmetadata_ingestion-1.6.0.0rc1.dist-info → openmetadata_ingestion-1.6.0.0rc2.dist-info}/WHEEL +0 -0
  790. {openmetadata_ingestion-1.6.0.0rc1.dist-info → openmetadata_ingestion-1.6.0.0rc2.dist-info}/entry_points.txt +0 -0
  791. {openmetadata_ingestion-1.6.0.0rc1.dist-info → openmetadata_ingestion-1.6.0.0rc2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/profile.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/queryParserData.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/reaction.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/schedule.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/schema.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tableQuery.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tableUsageCount.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tagLabel.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageDetails.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageRequest.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/votes.json
3
- # timestamp: 2024-11-20T14:26:20+00:00
3
+ # timestamp: 2024-11-29T19:36:27+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -14,20 +14,24 @@ Generic models
14
14
  from typing import Generic, Optional, TypeVar
15
15
 
16
16
  from pydantic import BaseModel, Field
17
+ from typing_extensions import Annotated
17
18
 
18
19
  from metadata.generated.schema.entity.services.ingestionPipelines.status import (
19
20
  StackTraceError,
20
21
  )
21
22
 
22
- # Entities are instances of BaseModel
23
23
  Entity = BaseModel
24
+
24
25
  T = TypeVar("T")
25
26
 
26
27
 
27
28
  class Either(BaseModel, Generic[T]):
28
29
  """Any execution should return us Either an Entity of an error for us to handle"""
29
30
 
30
- left: Optional[StackTraceError] = Field(
31
- None, description="Error encountered during execution"
32
- )
33
- right: Optional[T] = Field(None, description="Correct instance of an Entity")
31
+ left: Annotated[
32
+ Optional[StackTraceError],
33
+ Field(description="Error encountered during execution", default=None),
34
+ ]
35
+ right: Annotated[
36
+ Optional[T], Field(description="Correct instance of an Entity", default=None)
37
+ ]
@@ -94,6 +94,7 @@ ALLOWED_COMMON_PATCH_FIELDS = {
94
94
  "tableConstraints": True,
95
95
  "tablePartition": True,
96
96
  "location": True,
97
+ "locationPath": True,
97
98
  "schemaDefinition": True,
98
99
  "sampleData": True,
99
100
  "fileFormat": True,
@@ -14,7 +14,7 @@ Python API REST wrapper and helpers
14
14
  import time
15
15
  import traceback
16
16
  from datetime import datetime, timezone
17
- from typing import Callable, Dict, List, Optional, Union
17
+ from typing import Any, Callable, Dict, List, Optional, Union
18
18
 
19
19
  import requests
20
20
  from requests.exceptions import HTTPError
@@ -115,6 +115,7 @@ class ClientConfig(ConfigModel):
115
115
  allow_redirects: Optional[bool] = False
116
116
  auth_token_mode: Optional[str] = "Bearer"
117
117
  verify: Optional[Union[bool, str]] = None
118
+ cookies: Optional[Any] = None
118
119
  ttl_cache: int = 60
119
120
 
120
121
 
@@ -138,10 +139,11 @@ class REST:
138
139
  self._auth_token = self.config.auth_token
139
140
  self._auth_token_mode = self.config.auth_token_mode
140
141
  self._verify = self.config.verify
142
+ self._cookies = self.config.cookies
141
143
 
142
144
  self._limits_reached = TTLCache(config.ttl_cache)
143
145
 
144
- def _request( # pylint: disable=too-many-arguments
146
+ def _request( # pylint: disable=too-many-arguments,too-many-branches
145
147
  self,
146
148
  method,
147
149
  path,
@@ -160,10 +162,12 @@ class REST:
160
162
  base_url = base_url or self._base_url
161
163
  version = api_version if api_version else self._api_version
162
164
  url: URL = URL(base_url + "/" + version + path)
165
+ cookies = self._cookies
163
166
  if (
164
167
  self.config.expires_in
165
168
  and datetime.now(timezone.utc).timestamp() >= self.config.expires_in
166
169
  or not self.config.access_token
170
+ and self._auth_token
167
171
  ):
168
172
  self.config.access_token, expiry = self._auth_token()
169
173
  if not self.config.access_token == "no_token":
@@ -173,12 +177,12 @@ class REST:
173
177
  self.config.expires_in = (
174
178
  datetime.now(timezone.utc).timestamp() + expiry - 120
175
179
  )
176
-
177
- headers[self.config.auth_header] = (
178
- f"{self._auth_token_mode} {self.config.access_token}"
179
- if self._auth_token_mode
180
- else self.config.access_token
181
- )
180
+ if self.config.auth_header:
181
+ headers[self.config.auth_header] = (
182
+ f"{self._auth_token_mode} {self.config.access_token}"
183
+ if self._auth_token_mode
184
+ else self.config.access_token
185
+ )
182
186
 
183
187
  # Merge extra headers if provided.
184
188
  # If a header value is provided in modulo string format and matches an existing header,
@@ -198,6 +202,7 @@ class REST:
198
202
  # It's better to fail early if the URL isn't right.
199
203
  "allow_redirects": self.config.allow_redirects,
200
204
  "verify": self._verify,
205
+ "cookies": cookies,
201
206
  }
202
207
 
203
208
  method_key = "params" if method.upper() == "GET" else "data"
@@ -30,3 +30,4 @@ class EntityList(BaseModel, Generic[T]):
30
30
  entities: List[T]
31
31
  total: int
32
32
  after: Optional[str] = None
33
+ before: Optional[str] = None
@@ -378,12 +378,13 @@ class OpenMetadata(
378
378
  logger.debug("Cannot find the Entity %s", fqn)
379
379
  return None
380
380
 
381
- # pylint: disable=too-many-locals
381
+ # pylint: disable=too-many-locals, too-many-arguments
382
382
  def list_entities(
383
383
  self,
384
384
  entity: Type[T],
385
385
  fields: Optional[List[str]] = None,
386
386
  after: Optional[str] = None,
387
+ before: Optional[str] = None,
387
388
  limit: int = 100,
388
389
  params: Optional[Dict[str, str]] = None,
389
390
  skip_on_failure: bool = False,
@@ -395,9 +396,10 @@ class OpenMetadata(
395
396
  suffix = self.get_suffix(entity)
396
397
  url_limit = f"?limit={limit}"
397
398
  url_after = f"&after={after}" if after else ""
399
+ url_before = f"&before={before}" if before else ""
398
400
  url_fields = f"&fields={','.join(fields)}" if fields else ""
399
401
  resp = self.client.get(
400
- path=f"{suffix}{url_limit}{url_after}{url_fields}", data=params
402
+ path=f"{suffix}{url_limit}{url_after}{url_before}{url_fields}", data=params
401
403
  )
402
404
 
403
405
  if self._use_raw_data:
@@ -421,7 +423,8 @@ class OpenMetadata(
421
423
 
422
424
  total = resp["paging"]["total"]
423
425
  after = resp["paging"]["after"] if "after" in resp["paging"] else None
424
- return EntityList(entities=entities, total=total, after=after)
426
+ before = resp["paging"]["before"] if "before" in resp["paging"] else None
427
+ return EntityList(entities=entities, total=total, after=after, before=before)
425
428
 
426
429
  def list_all_entities(
427
430
  self,
@@ -84,6 +84,7 @@ from metadata.ingestion.ometa.ometa_api import OpenMetadata
84
84
  from metadata.ingestion.source.dashboard.dashboard_service import DashboardUsage
85
85
  from metadata.ingestion.source.database.database_service import DataModelLink
86
86
  from metadata.profiler.api.models import ProfilerResponse
87
+ from metadata.sampler.models import SamplerResponse
87
88
  from metadata.utils.execution_time_tracker import calculate_execution_time
88
89
  from metadata.utils.logger import get_log_name, ingestion_logger
89
90
 
@@ -549,22 +550,8 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
549
550
  )
550
551
 
551
552
  @_run_dispatch.register
552
- def write_profiler_response(self, record: ProfilerResponse) -> Either[Table]:
553
- """Cleanup "`" character in columns and ingest"""
554
- column_profile = record.profile.columnProfile
555
- for column in column_profile:
556
- column.name = column.name.replace("`", "")
557
-
558
- record.profile.columnProfile = column_profile
559
-
560
- table = self.metadata.ingest_profile_data(
561
- table=record.table,
562
- profile_request=record.profile,
563
- )
564
- logger.debug(
565
- f"Successfully ingested profile metrics for {record.table.fullyQualifiedName.root}"
566
- )
567
-
553
+ def write_sampler_response(self, record: SamplerResponse) -> Either[Table]:
554
+ """Ingest the sample data - if needed - and the PII tags"""
568
555
  if record.sample_data and record.sample_data.store:
569
556
  table_data = self.metadata.ingest_table_sample_data(
570
557
  table=record.table, sample_data=record.sample_data.data
@@ -572,7 +559,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
572
559
  if not table_data:
573
560
  self.status.failed(
574
561
  StackTraceError(
575
- name=table.fullyQualifiedName.root,
562
+ name=record.table.fullyQualifiedName.root,
576
563
  error="Error trying to ingest sample data for table",
577
564
  )
578
565
  )
@@ -587,7 +574,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
587
574
  )
588
575
  if not patched:
589
576
  self.status.warning(
590
- key=table.fullyQualifiedName.root,
577
+ key=record.table.fullyQualifiedName.root,
591
578
  reason="Error patching tags for table",
592
579
  )
593
580
  else:
@@ -595,6 +582,24 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
595
582
  f"Successfully patched tag {record.column_tags} for {record.table.fullyQualifiedName.root}"
596
583
  )
597
584
 
585
+ return Either(right=record.table)
586
+
587
+ @_run_dispatch.register
588
+ def write_profiler_response(self, record: ProfilerResponse) -> Either[Table]:
589
+ """Cleanup "`" character in columns and ingest"""
590
+ column_profile = record.profile.columnProfile
591
+ for column in column_profile:
592
+ column.name = column.name.replace("`", "")
593
+
594
+ record.profile.columnProfile = column_profile
595
+
596
+ table = self.metadata.ingest_profile_data(
597
+ table=record.table,
598
+ profile_request=record.profile,
599
+ )
600
+ logger.debug(
601
+ f"Successfully ingested profile metrics for {record.table.fullyQualifiedName.root}"
602
+ )
598
603
  return Either(right=table)
599
604
 
600
605
  @_run_dispatch.register
@@ -0,0 +1,252 @@
1
+ # Copyright 2023 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
+ REST Auth & Client for MicroStrategy
13
+ """
14
+ import traceback
15
+ from typing import List, Optional
16
+
17
+ import requests
18
+
19
+ from metadata.generated.schema.entity.services.connections.dashboard.microStrategyConnection import (
20
+ MicroStrategyConnection,
21
+ )
22
+ from metadata.ingestion.connections.test_connections import SourceConnectionException
23
+ from metadata.ingestion.ometa.client import REST, ClientConfig
24
+ from metadata.ingestion.source.dashboard.microstrategy.models import (
25
+ AuthHeaderCookie,
26
+ MstrDashboard,
27
+ MstrDashboardDetails,
28
+ MstrDashboardList,
29
+ MstrProject,
30
+ MstrProjectList,
31
+ MstrSearchResult,
32
+ MstrSearchResultList,
33
+ )
34
+ from metadata.utils.helpers import clean_uri
35
+ from metadata.utils.logger import ingestion_logger
36
+
37
+ logger = ingestion_logger()
38
+
39
+ API_VERSION = "MicroStrategyLibrary/api"
40
+ APPLICATION_TYPE = 35
41
+
42
+
43
+ class MicroStrategyClient:
44
+ """
45
+ Client Handling API communication with Metabase
46
+ """
47
+
48
+ def _get_base_url(self, path=None):
49
+ if not path:
50
+ return f"{clean_uri(str(self.config.hostPort))}/{API_VERSION}"
51
+ return f"{clean_uri(str(self.config.hostPort))}/{API_VERSION}/{path}"
52
+
53
+ def __init__(
54
+ self,
55
+ config: MicroStrategyConnection,
56
+ ):
57
+ self.config = config
58
+
59
+ self.auth_params: AuthHeaderCookie = self._get_auth_header_and_cookies()
60
+
61
+ client_config = ClientConfig(
62
+ base_url=clean_uri(str(self.config.hostPort)),
63
+ api_version=API_VERSION,
64
+ extra_headers=self.auth_params.auth_header,
65
+ allow_redirects=True,
66
+ cookies=self.auth_params.auth_cookies,
67
+ )
68
+
69
+ self.client = REST(client_config)
70
+ self._set_api_session()
71
+
72
+ def _get_auth_header_and_cookies(self) -> Optional[AuthHeaderCookie]:
73
+ """
74
+ Send a request to authenticate the user and get headers and
75
+
76
+ To know about the data params below please visit
77
+ https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html#/Authentication/postLogin
78
+ """
79
+ try:
80
+ data = {
81
+ "username": self.config.username,
82
+ "password": self.config.password.get_secret_value(),
83
+ "loginMode": self.config.loginMode,
84
+ "applicationType": APPLICATION_TYPE,
85
+ }
86
+ response = requests.post(
87
+ url=self._get_base_url("auth/login"), data=data, timeout=60
88
+ )
89
+ if not response:
90
+ raise SourceConnectionException()
91
+ return AuthHeaderCookie(
92
+ auth_header=response.headers, auth_cookies=response.cookies
93
+ )
94
+ except Exception as exc:
95
+ logger.debug(traceback.format_exc())
96
+ logger.error(
97
+ f"Failed to fetch the auth header and cookies due to [{exc}], please validate credentials"
98
+ )
99
+ return None
100
+
101
+ def _set_api_session(self) -> bool:
102
+ """
103
+ Set the user api session to active this will keep the connection alive
104
+ """
105
+ api_session = requests.put(
106
+ url=self._get_base_url("sessions"),
107
+ headers=self.auth_params.auth_header,
108
+ cookies=self.auth_params.auth_cookies,
109
+ timeout=60,
110
+ )
111
+ if api_session.ok:
112
+ logger.info(
113
+ f"Connection Successful User {self.config.username} is Authenticated"
114
+ )
115
+ return True
116
+ raise requests.ConnectionError(
117
+ "Connection Failed, Failed to set an api session, Please validate the credentials"
118
+ )
119
+
120
+ def close_api_session(self) -> None:
121
+ """
122
+ Closes the active api session
123
+ """
124
+ try:
125
+ close_api_session = self.client.post(
126
+ path="/auth/logout",
127
+ )
128
+ if close_api_session.ok:
129
+ logger.info("API Session Closed Successfully")
130
+
131
+ except Exception as exc:
132
+ logger.debug(traceback.format_exc())
133
+ logger.warning(f"Failed to close the api sesison due to [{exc}]")
134
+
135
+ def is_project_name(self) -> bool:
136
+ return bool(self.config.projectName)
137
+
138
+ def get_projects_list(self) -> List[MstrProject]:
139
+ """
140
+ Get List of all projects
141
+ """
142
+ try:
143
+ resp_projects = self.client.get(
144
+ path="/projects",
145
+ )
146
+
147
+ project_list = MstrProjectList(projects=resp_projects)
148
+ return project_list.projects
149
+
150
+ except Exception as exc:
151
+ logger.debug(traceback.format_exc())
152
+ logger.warning(f"Failed to fetch the project list due to [{exc}]")
153
+
154
+ return []
155
+
156
+ def get_project_by_name(self) -> Optional[MstrProject]:
157
+ """
158
+ Get Project By Name
159
+ """
160
+ try:
161
+ resp_projects = self.client.get(
162
+ path=f"/projects/{self.config.projectName}",
163
+ )
164
+
165
+ project = MstrProject.model_validate(resp_projects)
166
+ return project
167
+
168
+ except Exception:
169
+ logger.debug(traceback.format_exc())
170
+ logger.warning("Failed to fetch the project list")
171
+
172
+ return None
173
+
174
+ def get_search_results_list(
175
+ self, project_id, object_type
176
+ ) -> List[MstrSearchResult]:
177
+ """
178
+ Get Search Results
179
+
180
+ To know about the data params below please visit
181
+ https://demo.microstrategy.com/MicroStrategyLibrary/api-docs/index.html?#/Browsing/doQuickSearch
182
+ """
183
+ try:
184
+ data = {
185
+ "project_id": project_id,
186
+ "type": object_type,
187
+ "getAncestors": False,
188
+ "offset": 0,
189
+ "limit": -1,
190
+ "certifiedStatus": "ALL",
191
+ "isCrossCluster": False,
192
+ "result.hidden": False,
193
+ }
194
+ resp_results = self.client.get(
195
+ path="/searches/results",
196
+ data=data,
197
+ )
198
+
199
+ results_list = MstrSearchResultList.model_validate(resp_results).result
200
+ return results_list
201
+
202
+ except Exception:
203
+ logger.debug(traceback.format_exc())
204
+ logger.warning("Failed to fetch the Search Result list")
205
+
206
+ return []
207
+
208
+ def get_dashboards_list(self, project_id, project_name) -> List[MstrDashboard]:
209
+ """
210
+ Get Dashboard
211
+ """
212
+ try:
213
+ results = self.get_search_results_list(
214
+ project_id=project_id, object_type=55
215
+ )
216
+
217
+ dashboards = []
218
+ for result in results:
219
+ dashboards.append(
220
+ MstrDashboard(projectName=project_name, **result.model_dump())
221
+ )
222
+
223
+ dashboards_list = MstrDashboardList(dashboards=dashboards)
224
+ return dashboards_list.dashboards
225
+
226
+ except Exception:
227
+ logger.debug(traceback.format_exc())
228
+ logger.warning("Failed to fetch the dashboard list")
229
+
230
+ return []
231
+
232
+ def get_dashboard_details(
233
+ self, project_id, project_name, dashboard_id
234
+ ) -> Optional[MstrDashboardDetails]:
235
+ """
236
+ Get Dashboard Details
237
+ """
238
+ try:
239
+ headers = {"X-MSTR-ProjectID": project_id} | self.auth_params.auth_header
240
+ resp_dashboard = self.client._request( # pylint: disable=protected-access
241
+ "GET", path=f"/v2/dossiers/{dashboard_id}/definition", headers=headers
242
+ )
243
+
244
+ return MstrDashboardDetails(
245
+ projectId=project_id, projectName=project_name, **resp_dashboard
246
+ )
247
+
248
+ except Exception:
249
+ logger.debug(traceback.format_exc())
250
+ logger.warning(f"Failed to fetch the dashboard with id: {dashboard_id}")
251
+
252
+ return None
@@ -17,31 +17,29 @@ from typing import Optional
17
17
  from metadata.generated.schema.entity.automations.workflow import (
18
18
  Workflow as AutomationWorkflow,
19
19
  )
20
- from metadata.generated.schema.entity.services.connections.dashboard.mstrConnection import (
21
- MstrConnection,
20
+ from metadata.generated.schema.entity.services.connections.dashboard.microStrategyConnection import (
21
+ MicroStrategyConnection,
22
22
  )
23
23
  from metadata.generated.schema.entity.services.connections.testConnectionResult import (
24
24
  TestConnectionResult,
25
25
  )
26
26
  from metadata.ingestion.connections.test_connections import test_connection_steps
27
27
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
28
- from metadata.ingestion.source.dashboard.mstr.client import MSTRClient
29
- from metadata.utils.constants import THREE_MIN
28
+ from metadata.ingestion.source.dashboard.microstrategy.client import MicroStrategyClient
30
29
 
31
30
 
32
- def get_connection(connection: MstrConnection) -> MSTRClient:
31
+ def get_connection(connection: MicroStrategyConnection) -> MicroStrategyClient:
33
32
  """
34
33
  Create connection
35
34
  """
36
- return MSTRClient(connection)
35
+ return MicroStrategyClient(connection)
37
36
 
38
37
 
39
38
  def test_connection(
40
39
  metadata: OpenMetadata,
41
- client: MSTRClient,
42
- service_connection: MstrConnection,
40
+ client: MicroStrategyClient,
41
+ service_connection: MicroStrategyConnection,
43
42
  automation_workflow: Optional[AutomationWorkflow] = None,
44
- timeout_seconds: Optional[int] = THREE_MIN,
45
43
  ) -> TestConnectionResult:
46
44
  """
47
45
  Test connection. This can be executed either as part
@@ -55,5 +53,4 @@ def test_connection(
55
53
  test_fn=test_fn,
56
54
  service_type=service_connection.type.value,
57
55
  automation_workflow=automation_workflow,
58
- timeout_seconds=timeout_seconds,
59
56
  )