openmetadata-ingestion 1.3.0.1__py3-none-any.whl → 1.3.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (574) hide show
  1. metadata/cli/db_dump.py +1 -0
  2. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +39 -47
  3. metadata/data_insight/processor/reports/data_processor.py +1 -0
  4. metadata/data_insight/producer/cost_analysis_producer.py +78 -14
  5. metadata/data_insight/producer/entity_producer.py +1 -1
  6. metadata/data_insight/producer/producer_interface.py +1 -1
  7. metadata/data_insight/producer/web_analytics_producer.py +1 -1
  8. metadata/data_insight/source/metadata.py +10 -1
  9. metadata/data_quality/validations/table/base/tableColumnToMatchSet.py +2 -1
  10. metadata/data_quality/validations/table/pandas/tableColumnToMatchSet.py +2 -1
  11. metadata/data_quality/validations/table/sqlalchemy/tableColumnToMatchSet.py +7 -2
  12. metadata/examples/workflows/bigtable.yaml +32 -0
  13. metadata/generated/antlr/EntityLinkLexer.py +353 -319
  14. metadata/generated/schema/analytics/__init__.py +1 -1
  15. metadata/generated/schema/analytics/basic.py +1 -1
  16. metadata/generated/schema/analytics/reportData.py +1 -1
  17. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  18. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  19. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  20. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  21. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  22. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  23. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  24. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  25. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  26. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  27. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  28. metadata/generated/schema/api/__init__.py +1 -1
  29. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  30. metadata/generated/schema/api/analytics/__init__.py +1 -1
  31. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  32. metadata/generated/schema/api/automations/__init__.py +1 -1
  33. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  34. metadata/generated/schema/api/bulkAssets.py +1 -1
  35. metadata/generated/schema/api/classification/__init__.py +1 -1
  36. metadata/generated/schema/api/classification/createClassification.py +1 -1
  37. metadata/generated/schema/api/classification/createTag.py +1 -1
  38. metadata/generated/schema/api/classification/loadTags.py +1 -1
  39. metadata/generated/schema/api/createBot.py +1 -1
  40. metadata/generated/schema/api/createEventPublisherJob.py +2 -2
  41. metadata/generated/schema/api/createType.py +1 -1
  42. metadata/generated/schema/api/data/__init__.py +1 -1
  43. metadata/generated/schema/api/data/createChart.py +1 -1
  44. metadata/generated/schema/api/data/createContainer.py +1 -1
  45. metadata/generated/schema/api/data/createCustomProperty.py +6 -10
  46. metadata/generated/schema/api/data/createDashboard.py +1 -1
  47. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  48. metadata/generated/schema/api/data/createDatabase.py +1 -1
  49. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  50. metadata/generated/schema/api/data/createGlossary.py +1 -1
  51. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  52. metadata/generated/schema/api/data/createMlModel.py +1 -1
  53. metadata/generated/schema/api/data/createPipeline.py +1 -1
  54. metadata/generated/schema/api/data/createQuery.py +1 -1
  55. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  56. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  57. metadata/generated/schema/api/data/createTable.py +1 -1
  58. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  59. metadata/generated/schema/api/data/createTopic.py +1 -1
  60. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  61. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  62. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  63. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  64. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  65. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  66. metadata/generated/schema/api/docStore/__init__.py +1 -1
  67. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  68. metadata/generated/schema/api/domains/__init__.py +1 -1
  69. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  70. metadata/generated/schema/api/domains/createDomain.py +1 -1
  71. metadata/generated/schema/api/feed/__init__.py +1 -1
  72. metadata/generated/schema/api/feed/closeTask.py +1 -1
  73. metadata/generated/schema/api/feed/createPost.py +1 -1
  74. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  75. metadata/generated/schema/api/feed/createThread.py +1 -1
  76. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  77. metadata/generated/schema/api/feed/threadCount.py +1 -1
  78. metadata/generated/schema/api/lineage/__init__.py +1 -1
  79. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  80. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  81. metadata/generated/schema/api/policies/__init__.py +1 -1
  82. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  83. metadata/generated/schema/api/services/__init__.py +1 -1
  84. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  85. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  86. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  87. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  88. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  89. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  90. metadata/generated/schema/api/services/createSearchService.py +1 -1
  91. metadata/generated/schema/api/services/createStorageService.py +1 -1
  92. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  93. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  94. metadata/generated/schema/api/setOwner.py +1 -1
  95. metadata/generated/schema/api/teams/__init__.py +1 -1
  96. metadata/generated/schema/api/teams/createPersona.py +1 -1
  97. metadata/generated/schema/api/teams/createRole.py +1 -1
  98. metadata/generated/schema/api/teams/createTeam.py +1 -1
  99. metadata/generated/schema/api/teams/createUser.py +1 -1
  100. metadata/generated/schema/api/tests/__init__.py +1 -1
  101. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  102. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  103. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  104. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  105. metadata/generated/schema/api/tests/createTestDefinition.py +2 -1
  106. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  107. metadata/generated/schema/api/voteRequest.py +1 -1
  108. metadata/generated/schema/auth/__init__.py +1 -1
  109. metadata/generated/schema/auth/basicAuth.py +1 -1
  110. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  111. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  112. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  113. metadata/generated/schema/auth/emailRequest.py +1 -1
  114. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  115. metadata/generated/schema/auth/generateToken.py +1 -1
  116. metadata/generated/schema/auth/jwtAuth.py +1 -1
  117. metadata/generated/schema/auth/loginRequest.py +1 -1
  118. metadata/generated/schema/auth/logoutRequest.py +1 -1
  119. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  120. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  121. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  122. metadata/generated/schema/auth/refreshToken.py +1 -1
  123. metadata/generated/schema/auth/registrationRequest.py +1 -1
  124. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  125. metadata/generated/schema/auth/revokeToken.py +1 -1
  126. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  127. metadata/generated/schema/auth/ssoAuth.py +1 -1
  128. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  129. metadata/generated/schema/configuration/__init__.py +1 -1
  130. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  131. metadata/generated/schema/configuration/authConfig.py +1 -1
  132. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  135. metadata/generated/schema/configuration/dataQualityConfiguration.py +16 -0
  136. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  143. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  144. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  145. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  146. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  147. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  148. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  149. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  150. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  151. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  153. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  154. metadata/generated/schema/dataInsight/__init__.py +1 -1
  155. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  156. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  157. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  158. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  159. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  160. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  161. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  162. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  163. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  164. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  165. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  166. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  167. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  168. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  169. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  170. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  171. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  172. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  173. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  174. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  175. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  176. metadata/generated/schema/email/__init__.py +1 -1
  177. metadata/generated/schema/email/emailRequest.py +1 -1
  178. metadata/generated/schema/email/smtpSettings.py +1 -1
  179. metadata/generated/schema/entity/__init__.py +1 -1
  180. metadata/generated/schema/entity/applications/__init__.py +1 -1
  181. metadata/generated/schema/entity/applications/app.py +1 -1
  182. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  183. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  184. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  185. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  186. metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +1 -1
  187. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  189. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +2 -2
  192. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  194. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  195. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  196. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  197. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  198. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  199. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  200. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  201. metadata/generated/schema/entity/automations/__init__.py +1 -1
  202. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  203. metadata/generated/schema/entity/automations/workflow.py +1 -1
  204. metadata/generated/schema/entity/bot.py +1 -1
  205. metadata/generated/schema/entity/classification/__init__.py +1 -1
  206. metadata/generated/schema/entity/classification/classification.py +1 -1
  207. metadata/generated/schema/entity/classification/tag.py +1 -1
  208. metadata/generated/schema/entity/data/__init__.py +1 -1
  209. metadata/generated/schema/entity/data/chart.py +1 -1
  210. metadata/generated/schema/entity/data/container.py +1 -1
  211. metadata/generated/schema/entity/data/dashboard.py +1 -1
  212. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  213. metadata/generated/schema/entity/data/database.py +1 -1
  214. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  215. metadata/generated/schema/entity/data/glossary.py +1 -1
  216. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  217. metadata/generated/schema/entity/data/metrics.py +1 -1
  218. metadata/generated/schema/entity/data/mlmodel.py +2 -2
  219. metadata/generated/schema/entity/data/pipeline.py +1 -1
  220. metadata/generated/schema/entity/data/query.py +1 -1
  221. metadata/generated/schema/entity/data/report.py +1 -1
  222. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  223. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  224. metadata/generated/schema/entity/data/table.py +1 -1
  225. metadata/generated/schema/entity/data/topic.py +1 -1
  226. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  227. metadata/generated/schema/entity/docStore/document.py +1 -1
  228. metadata/generated/schema/entity/domains/__init__.py +1 -1
  229. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  230. metadata/generated/schema/entity/domains/domain.py +1 -1
  231. metadata/generated/schema/entity/events/__init__.py +1 -1
  232. metadata/generated/schema/entity/events/webhook.py +1 -1
  233. metadata/generated/schema/entity/feed/__init__.py +1 -1
  234. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  235. metadata/generated/schema/entity/feed/thread.py +1 -1
  236. metadata/generated/schema/entity/policies/__init__.py +1 -1
  237. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  238. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  239. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  240. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  241. metadata/generated/schema/entity/policies/filters.py +1 -1
  242. metadata/generated/schema/entity/policies/policy.py +1 -1
  243. metadata/generated/schema/entity/services/__init__.py +1 -1
  244. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  245. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  246. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  247. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  248. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  249. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  250. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  251. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  252. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  253. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  254. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  255. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  256. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  257. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  258. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  259. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  260. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  261. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  262. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  263. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  264. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  265. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  266. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  267. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  268. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +41 -0
  269. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  270. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  271. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  272. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  273. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  274. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  275. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  276. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  277. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  278. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  279. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  280. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  281. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  282. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  284. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  287. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  288. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  289. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  290. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  291. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  292. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  296. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  297. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +8 -6
  306. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  318. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  319. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +14 -2
  321. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +14 -2
  324. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  325. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  326. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  328. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +2 -2
  330. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  337. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  350. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  352. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  353. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  354. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  358. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  363. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  364. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  365. metadata/generated/schema/entity/services/databaseService.py +4 -1
  366. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  368. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  369. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  370. metadata/generated/schema/entity/services/messagingService.py +1 -1
  371. metadata/generated/schema/entity/services/metadataService.py +1 -1
  372. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  373. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  374. metadata/generated/schema/entity/services/searchService.py +1 -1
  375. metadata/generated/schema/entity/services/serviceType.py +1 -1
  376. metadata/generated/schema/entity/services/storageService.py +1 -1
  377. metadata/generated/schema/entity/teams/__init__.py +1 -1
  378. metadata/generated/schema/entity/teams/persona.py +1 -1
  379. metadata/generated/schema/entity/teams/role.py +1 -1
  380. metadata/generated/schema/entity/teams/team.py +1 -1
  381. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  382. metadata/generated/schema/entity/teams/user.py +1 -1
  383. metadata/generated/schema/entity/type.py +3 -18
  384. metadata/generated/schema/entity/utils/__init__.py +1 -1
  385. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  386. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  387. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  388. metadata/generated/schema/events/__init__.py +1 -1
  389. metadata/generated/schema/events/alertMetrics.py +1 -1
  390. metadata/generated/schema/events/api/__init__.py +1 -1
  391. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  392. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  393. metadata/generated/schema/events/eventFilterRule.py +1 -1
  394. metadata/generated/schema/events/eventSubscription.py +3 -2
  395. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  396. metadata/generated/schema/events/failedEvent.py +1 -1
  397. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  398. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  399. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  400. metadata/generated/schema/metadataIngestion/application.py +1 -1
  401. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  402. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  403. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  404. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  405. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  406. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  407. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  408. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  409. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  410. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  411. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  412. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  413. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  414. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  415. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  416. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  417. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  418. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  419. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  420. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  421. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  422. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  423. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  424. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  425. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  426. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  427. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  428. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  429. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  430. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  431. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  432. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  433. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  434. metadata/generated/schema/monitoring/__init__.py +1 -1
  435. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  436. metadata/generated/schema/security/__init__.py +1 -1
  437. metadata/generated/schema/security/client/__init__.py +1 -1
  438. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  439. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  440. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  441. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  442. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  443. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  444. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  445. metadata/generated/schema/security/credentials/__init__.py +1 -1
  446. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  447. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  448. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  449. metadata/generated/schema/security/credentials/azureCredentials.py +16 -9
  450. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  451. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  452. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  453. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  454. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  455. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  456. metadata/generated/schema/security/secrets/__init__.py +1 -1
  457. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  458. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  459. metadata/generated/schema/security/secrets/secretsManagerProvider.py +3 -1
  460. metadata/generated/schema/security/securityConfiguration.py +1 -1
  461. metadata/generated/schema/security/ssl/__init__.py +1 -1
  462. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  463. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  464. metadata/generated/schema/settings/__init__.py +1 -1
  465. metadata/generated/schema/settings/settings.py +1 -1
  466. metadata/generated/schema/system/__init__.py +1 -1
  467. metadata/generated/schema/system/entityError.py +1 -1
  468. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  469. metadata/generated/schema/system/indexingError.py +1 -1
  470. metadata/generated/schema/system/ui/__init__.py +1 -1
  471. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  472. metadata/generated/schema/system/ui/page.py +1 -1
  473. metadata/generated/schema/tests/__init__.py +1 -1
  474. metadata/generated/schema/tests/assigned.py +1 -1
  475. metadata/generated/schema/tests/basic.py +1 -1
  476. metadata/generated/schema/tests/customMetric.py +1 -1
  477. metadata/generated/schema/tests/resolved.py +1 -1
  478. metadata/generated/schema/tests/testCase.py +1 -1
  479. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  480. metadata/generated/schema/tests/testDefinition.py +2 -1
  481. metadata/generated/schema/tests/testSuite.py +1 -1
  482. metadata/generated/schema/type/__init__.py +1 -1
  483. metadata/generated/schema/type/auditLog.py +1 -1
  484. metadata/generated/schema/type/basic.py +6 -2
  485. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  486. metadata/generated/schema/type/changeEvent.py +1 -1
  487. metadata/generated/schema/type/changeEventType.py +1 -1
  488. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  489. metadata/generated/schema/type/csvDocumentation.py +1 -1
  490. metadata/generated/schema/type/csvErrorType.py +1 -1
  491. metadata/generated/schema/type/csvFile.py +1 -1
  492. metadata/generated/schema/type/csvImportResult.py +1 -1
  493. metadata/generated/schema/type/customProperties/__init__.py +3 -0
  494. metadata/generated/schema/type/customProperties/enumConfig.py +17 -0
  495. metadata/generated/schema/type/customProperty.py +52 -0
  496. metadata/generated/schema/type/dailyCount.py +1 -1
  497. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  498. metadata/generated/schema/type/entityHistory.py +1 -1
  499. metadata/generated/schema/type/entityLineage.py +1 -1
  500. metadata/generated/schema/type/entityReference.py +1 -1
  501. metadata/generated/schema/type/entityReferenceList.py +1 -1
  502. metadata/generated/schema/type/entityRelationship.py +1 -1
  503. metadata/generated/schema/type/entityUsage.py +1 -1
  504. metadata/generated/schema/type/filterPattern.py +1 -1
  505. metadata/generated/schema/type/function.py +1 -1
  506. metadata/generated/schema/type/include.py +1 -1
  507. metadata/generated/schema/type/jdbcConnection.py +1 -1
  508. metadata/generated/schema/type/lifeCycle.py +1 -1
  509. metadata/generated/schema/type/paging.py +1 -1
  510. metadata/generated/schema/type/profile.py +1 -1
  511. metadata/generated/schema/type/queryParserData.py +1 -1
  512. metadata/generated/schema/type/reaction.py +1 -1
  513. metadata/generated/schema/type/schedule.py +1 -1
  514. metadata/generated/schema/type/schema.py +1 -1
  515. metadata/generated/schema/type/tableQuery.py +1 -1
  516. metadata/generated/schema/type/tableUsageCount.py +1 -1
  517. metadata/generated/schema/type/tagLabel.py +1 -1
  518. metadata/generated/schema/type/usageDetails.py +1 -1
  519. metadata/generated/schema/type/usageRequest.py +1 -1
  520. metadata/generated/schema/type/votes.py +1 -1
  521. metadata/great_expectations/action.py +4 -15
  522. metadata/ingestion/api/steps.py +14 -1
  523. metadata/ingestion/api/topology_runner.py +4 -1
  524. metadata/ingestion/models/custom_properties.py +0 -1
  525. metadata/ingestion/ometa/client.py +6 -0
  526. metadata/ingestion/ometa/mixins/custom_property_mixin.py +11 -11
  527. metadata/ingestion/ometa/ometa_api.py +1 -1
  528. metadata/ingestion/sink/metadata_rest.py +2 -2
  529. metadata/ingestion/source/dashboard/looker/metadata.py +3 -4
  530. metadata/ingestion/source/dashboard/metabase/client.py +4 -0
  531. metadata/ingestion/source/dashboard/metabase/metadata.py +5 -4
  532. metadata/ingestion/source/dashboard/metabase/models.py +2 -2
  533. metadata/ingestion/source/dashboard/tableau/metadata.py +18 -0
  534. metadata/ingestion/source/database/bigquery/helper.py +68 -1
  535. metadata/ingestion/source/database/bigquery/metadata.py +12 -3
  536. metadata/ingestion/source/database/bigquery/queries.py +22 -0
  537. metadata/ingestion/source/database/bigtable/client.py +62 -0
  538. metadata/ingestion/source/database/bigtable/connection.py +116 -0
  539. metadata/ingestion/source/database/bigtable/metadata.py +224 -0
  540. metadata/ingestion/source/database/bigtable/models.py +60 -0
  541. metadata/ingestion/source/database/common_db_source.py +2 -2
  542. metadata/ingestion/source/database/common_nosql_source.py +19 -2
  543. metadata/ingestion/source/database/databricks/metadata.py +132 -46
  544. metadata/ingestion/source/database/databricks/queries.py +3 -4
  545. metadata/ingestion/source/database/dbt/metadata.py +16 -28
  546. metadata/ingestion/source/database/oracle/queries.py +2 -2
  547. metadata/ingestion/source/messaging/common_broker_source.py +9 -7
  548. metadata/ingestion/source/messaging/kafka/connection.py +45 -4
  549. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +20 -8
  550. metadata/profiler/orm/functions/conn_test.py +1 -0
  551. metadata/profiler/orm/functions/sum.py +1 -0
  552. metadata/profiler/orm/registry.py +1 -0
  553. metadata/profiler/processor/core.py +2 -2
  554. metadata/utils/datalake/datalake_utils.py +7 -1
  555. metadata/utils/execution_time_tracker.py +199 -0
  556. metadata/utils/filters.py +4 -0
  557. metadata/utils/helpers.py +0 -51
  558. metadata/utils/secrets/aws_based_secrets_manager.py +67 -4
  559. metadata/utils/secrets/aws_secrets_manager.py +7 -2
  560. metadata/utils/secrets/aws_ssm_secrets_manager.py +7 -2
  561. metadata/utils/secrets/azure_kv_secrets_manager.py +148 -0
  562. metadata/utils/secrets/external_secrets_manager.py +25 -3
  563. metadata/utils/secrets/secrets_manager_factory.py +13 -30
  564. metadata/workflow/base.py +4 -0
  565. metadata/workflow/output_handler.py +22 -0
  566. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/METADATA +297 -288
  567. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/RECORD +573 -562
  568. metadata/utils/secrets/client/loader.py +0 -77
  569. /metadata/{utils/secrets/client → ingestion/source/database/bigtable}/__init__.py +0 -0
  570. /metadata/utils/secrets/{noop_secrets_manager.py → db_secrets_manager.py} +0 -0
  571. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/LICENSE +0 -0
  572. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/WHEEL +0 -0
  573. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/entry_points.txt +0 -0
  574. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/top_level.txt +0 -0
@@ -17,6 +17,9 @@ from typing import Optional
17
17
 
18
18
  from botocore.exceptions import ClientError
19
19
 
20
+ from metadata.generated.schema.security.secrets.secretsManagerClientLoader import (
21
+ SecretsManagerClientLoader,
22
+ )
20
23
  from metadata.generated.schema.security.secrets.secretsManagerProvider import (
21
24
  SecretsManagerProvider,
22
25
  )
@@ -32,8 +35,10 @@ class AWSSecretsManager(AWSBasedSecretsManager):
32
35
  Secrets Manager Implementation Class
33
36
  """
34
37
 
35
- def __init__(self, credentials: Optional["AWSCredentials"]):
36
- super().__init__(credentials, "secretsmanager", SecretsManagerProvider.aws)
38
+ def __init__(self, loader: SecretsManagerClientLoader):
39
+ super().__init__(
40
+ client="secretsmanager", provider=SecretsManagerProvider.aws, loader=loader
41
+ )
37
42
 
38
43
  def get_string_value(self, secret_id: str) -> Optional[str]:
39
44
  """
@@ -17,6 +17,9 @@ from typing import Optional
17
17
 
18
18
  from botocore.exceptions import ClientError
19
19
 
20
+ from metadata.generated.schema.security.secrets.secretsManagerClientLoader import (
21
+ SecretsManagerClientLoader,
22
+ )
20
23
  from metadata.generated.schema.security.secrets.secretsManagerProvider import (
21
24
  SecretsManagerProvider,
22
25
  )
@@ -32,8 +35,10 @@ class AWSSSMSecretsManager(AWSBasedSecretsManager):
32
35
  AWS SSM Parameter Store Secret Manager Class
33
36
  """
34
37
 
35
- def __init__(self, credentials: Optional["AWSCredentials"]):
36
- super().__init__(credentials, "ssm", SecretsManagerProvider.aws)
38
+ def __init__(self, loader: SecretsManagerClientLoader):
39
+ super().__init__(
40
+ client="ssm", provider=SecretsManagerProvider.aws, loader=loader
41
+ )
37
42
 
38
43
  def get_string_value(self, secret_id: str) -> Optional[str]:
39
44
  """
@@ -0,0 +1,148 @@
1
+ # Copyright 2022 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ Abstract class for AWS based secrets manager implementations
14
+ """
15
+ import os
16
+ import traceback
17
+ from abc import ABC
18
+ from typing import Optional
19
+
20
+ from azure.identity import ClientSecretCredential, DefaultAzureCredential
21
+ from azure.keyvault.secrets import KeyVaultSecret, SecretClient
22
+
23
+ from metadata.generated.schema.security.secrets.secretsManagerClientLoader import (
24
+ SecretsManagerClientLoader,
25
+ )
26
+ from metadata.generated.schema.security.secrets.secretsManagerProvider import (
27
+ SecretsManagerProvider,
28
+ )
29
+ from metadata.utils.dispatch import enum_register
30
+ from metadata.utils.logger import utils_logger
31
+ from metadata.utils.secrets.external_secrets_manager import (
32
+ SECRET_MANAGER_AIRFLOW_CONF,
33
+ ExternalSecretsManager,
34
+ SecretsManagerConfigException,
35
+ )
36
+
37
+ logger = utils_logger()
38
+
39
+ secrets_manager_client_loader = enum_register()
40
+
41
+
42
+ # pylint: disable=import-outside-toplevel
43
+ @secrets_manager_client_loader.add(SecretsManagerClientLoader.noop.value)
44
+ def _() -> None:
45
+ return None
46
+
47
+
48
+ @secrets_manager_client_loader.add(SecretsManagerClientLoader.airflow.value)
49
+ def _() -> Optional["AzureCredentials"]:
50
+ from airflow.configuration import conf
51
+
52
+ from metadata.generated.schema.security.credentials.azureCredentials import (
53
+ AzureCredentials,
54
+ )
55
+
56
+ key_vault_name = conf.get(
57
+ SECRET_MANAGER_AIRFLOW_CONF, "azure_key_vault_name", fallback=None
58
+ )
59
+ if not key_vault_name:
60
+ raise ValueError(
61
+ "Missing `azure_key_vault_name` config for Azure Key Vault Secrets Manager Provider."
62
+ )
63
+
64
+ tenant_id = conf.get(SECRET_MANAGER_AIRFLOW_CONF, "azure_tenant_id", fallback=None)
65
+ client_id = conf.get(SECRET_MANAGER_AIRFLOW_CONF, "azure_client_id", fallback=None)
66
+ client_secret = conf.get(
67
+ SECRET_MANAGER_AIRFLOW_CONF, "azure_client_secret", fallback=None
68
+ )
69
+
70
+ return AzureCredentials(
71
+ clientId=client_id,
72
+ clientSecret=client_secret,
73
+ tenantId=tenant_id,
74
+ vaultName=key_vault_name,
75
+ )
76
+
77
+
78
+ @secrets_manager_client_loader.add(SecretsManagerClientLoader.env.value)
79
+ def _() -> Optional["AzureCredentials"]:
80
+ from metadata.generated.schema.security.credentials.azureCredentials import (
81
+ AzureCredentials,
82
+ )
83
+
84
+ # Load only the AZURE_KEY_VAULT_NAME (required) variable and use the
85
+ # Default Auth chain
86
+ # https://learn.microsoft.com/en-us/python/api/overview/azure/identity-readme?view=azure-python#defaultazurecredential
87
+ key_vault_name = os.getenv("AZURE_KEY_VAULT_NAME")
88
+
89
+ if not key_vault_name:
90
+ raise ValueError(
91
+ "Missing `azure_key_vault_name` config for Azure Key Vault Secrets Manager Provider."
92
+ )
93
+
94
+ return AzureCredentials(vaultName=key_vault_name)
95
+
96
+
97
+ class AzureKVSecretsManager(ExternalSecretsManager, ABC):
98
+ """
99
+ Azure Key Vault Secrets Manager class
100
+ """
101
+
102
+ def __init__(
103
+ self,
104
+ loader: SecretsManagerClientLoader,
105
+ ):
106
+ super().__init__(provider=SecretsManagerProvider.azure_kv, loader=loader)
107
+
108
+ if (
109
+ self.credentials.tenantId
110
+ and self.credentials.clientId
111
+ and self.credentials.clientSecret
112
+ ):
113
+ azure_identity = ClientSecretCredential(
114
+ tenant_id=self.credentials.tenantId,
115
+ client_id=self.credentials.clientId,
116
+ client_secret=self.credentials.clientSecret.get_secret_value(),
117
+ )
118
+ else:
119
+ azure_identity = DefaultAzureCredential()
120
+
121
+ self.client = SecretClient(
122
+ vault_url=f"https://{self.credentials.vaultName}.vault.azure.net/",
123
+ credential=azure_identity,
124
+ )
125
+
126
+ def get_string_value(self, secret_id: str) -> str:
127
+ """
128
+ :param secret_id: The secret id to retrieve
129
+ :return: The value of the secret
130
+ """
131
+ try:
132
+ secret: KeyVaultSecret = self.client.get_secret(secret_id)
133
+ logger.debug(f"Got value for secret {secret_id}")
134
+ return secret.value
135
+ except Exception as exc:
136
+ logger.debug(traceback.format_exc())
137
+ logger.error(
138
+ f"Could not get the secret value of {secret_id} due to [{exc}]"
139
+ )
140
+ raise exc
141
+
142
+ def load_credentials(self) -> Optional["AzureCredentials"]:
143
+ """Load the provider credentials based on the loader type"""
144
+ try:
145
+ loader_fn = secrets_manager_client_loader.registry.get(self.loader.value)
146
+ return loader_fn()
147
+ except Exception as err:
148
+ raise SecretsManagerConfigException(f"Error loading credentials - [{err}]")
@@ -12,18 +12,40 @@
12
12
  """
13
13
  Abstract class for third party secrets' manager implementations
14
14
  """
15
- from abc import ABC
15
+ from abc import ABC, abstractmethod
16
+ from typing import Any
16
17
 
18
+ from metadata.generated.schema.security.secrets.secretsManagerClientLoader import (
19
+ SecretsManagerClientLoader,
20
+ )
17
21
  from metadata.generated.schema.security.secrets.secretsManagerProvider import (
18
22
  SecretsManagerProvider,
19
23
  )
20
24
  from metadata.utils.secrets.secrets_manager import SecretsManager
21
25
 
26
+ SECRET_MANAGER_AIRFLOW_CONF = "openmetadata_secrets_manager"
27
+
28
+
29
+ class SecretsManagerConfigException(Exception):
30
+ """
31
+ Invalid config that does not allow us to create
32
+ the SecretsManagerFactory
33
+ """
34
+
22
35
 
23
36
  class ExternalSecretsManager(SecretsManager, ABC):
24
37
  """
25
38
  Abstract class for third party secrets' manager implementations
26
39
  """
27
40
 
28
- def __init__(self, provider: SecretsManagerProvider):
29
- self.provider = provider.name
41
+ def __init__(
42
+ self, provider: SecretsManagerProvider, loader: SecretsManagerClientLoader
43
+ ):
44
+ self.provider = provider
45
+ self.loader = loader
46
+
47
+ self.credentials = self.load_credentials()
48
+
49
+ @abstractmethod
50
+ def load_credentials(self) -> Any:
51
+ """Load the provider credentials based on the loader type"""
@@ -12,7 +12,7 @@
12
12
  """
13
13
  Secrets manager factory module
14
14
  """
15
- from typing import Any, Optional
15
+ from typing import Optional
16
16
 
17
17
  from metadata.generated.schema.security.secrets.secretsManagerClientLoader import (
18
18
  SecretsManagerClientLoader,
@@ -22,19 +22,12 @@ from metadata.generated.schema.security.secrets.secretsManagerProvider import (
22
22
  )
23
23
  from metadata.utils.secrets.aws_secrets_manager import AWSSecretsManager
24
24
  from metadata.utils.secrets.aws_ssm_secrets_manager import AWSSSMSecretsManager
25
- from metadata.utils.secrets.client.loader import secrets_manager_client_loader
26
- from metadata.utils.secrets.noop_secrets_manager import DBSecretsManager
25
+ from metadata.utils.secrets.azure_kv_secrets_manager import AzureKVSecretsManager
26
+ from metadata.utils.secrets.db_secrets_manager import DBSecretsManager
27
27
  from metadata.utils.secrets.secrets_manager import SecretsManager
28
28
  from metadata.utils.singleton import Singleton
29
29
 
30
30
 
31
- class SecretsManagerConfigException(Exception):
32
- """
33
- Invalid config that does not allow us to create
34
- the SecretsManagerFactory
35
- """
36
-
37
-
38
31
  class SecretsManagerFactory(metaclass=Singleton):
39
32
  """
40
33
  Singleton factory to initialize a secret manager. It will return always the same secret manager instance.
@@ -56,11 +49,9 @@ class SecretsManagerFactory(metaclass=Singleton):
56
49
  self._secrets_manager_provider = secrets_manager_provider
57
50
  self._secrets_manager_loader = secrets_manager_loader
58
51
 
59
- credentials = self._load_secrets_manager_credentials()
60
-
61
52
  self.secrets_manager = self._get_secrets_manager(
62
53
  secrets_manager_provider,
63
- credentials,
54
+ secrets_manager_loader,
64
55
  )
65
56
 
66
57
  @property
@@ -74,13 +65,12 @@ class SecretsManagerFactory(metaclass=Singleton):
74
65
  def _get_secrets_manager(
75
66
  self,
76
67
  secrets_manager_provider: SecretsManagerProvider,
77
- credentials: Any = None,
68
+ secrets_manager_loader: SecretsManagerClientLoader,
78
69
  ) -> SecretsManager:
79
70
  """
80
71
  Method to get the secrets manager based on the arguments passed
81
72
  :param secrets_manager_provider: the secrets' manager provider
82
- :param credentials: optional credentials that could be required by the clients of the secrets' manager
83
- implementations
73
+ :param secrets_manager_loader: how to retrieve the secrets manager keys from the environment
84
74
  :return: a secrets manager
85
75
  """
86
76
  if (
@@ -92,25 +82,18 @@ class SecretsManagerFactory(metaclass=Singleton):
92
82
  SecretsManagerProvider.aws,
93
83
  SecretsManagerProvider.managed_aws,
94
84
  ):
95
- return AWSSecretsManager(credentials)
85
+ return AWSSecretsManager(secrets_manager_loader)
96
86
  if secrets_manager_provider in (
97
87
  SecretsManagerProvider.aws_ssm,
98
88
  SecretsManagerProvider.managed_aws_ssm,
99
89
  ):
100
- return AWSSSMSecretsManager(credentials)
90
+ return AWSSSMSecretsManager(secrets_manager_loader)
91
+ if secrets_manager_provider in (
92
+ SecretsManagerProvider.azure_kv,
93
+ SecretsManagerProvider.managed_azure_kv,
94
+ ):
95
+ return AzureKVSecretsManager(secrets_manager_loader)
101
96
  raise NotImplementedError(f"[{secrets_manager_provider}] is not implemented.")
102
97
 
103
98
  def get_secrets_manager(self):
104
99
  return self.secrets_manager
105
-
106
- def _load_secrets_manager_credentials(self) -> Optional["AWSCredentials"]:
107
- if not self.secrets_manager_loader:
108
- return None
109
-
110
- try:
111
- loader_fn = secrets_manager_client_loader.registry.get(
112
- self.secrets_manager_loader.value
113
- )
114
- return loader_fn(self.secrets_manager_provider)
115
- except Exception as err:
116
- raise SecretsManagerConfigException(f"Error loading credentials - [{err}]")
metadata/workflow/base.py CHANGED
@@ -44,6 +44,7 @@ from metadata.utils.class_helper import (
44
44
  get_reference_type_from_service_type,
45
45
  get_service_class_from_service_type,
46
46
  )
47
+ from metadata.utils.execution_time_tracker import ExecutionTimeTracker
47
48
  from metadata.utils.helpers import datetime_to_ts
48
49
  from metadata.utils.logger import ingestion_logger, set_loggers_level
49
50
  from metadata.workflow.output_handler import report_ingestion_status
@@ -92,6 +93,9 @@ class BaseWorkflow(ABC, WorkflowStatusMixin):
92
93
  self._timer: Optional[RepeatedTimer] = None
93
94
  self._ingestion_pipeline: Optional[IngestionPipeline] = None
94
95
  self._start_ts = datetime_to_ts(datetime.now())
96
+ self._execution_time_tracker = ExecutionTimeTracker(
97
+ log_level == LogLevels.DEBUG
98
+ )
95
99
 
96
100
  set_loggers_level(log_level.value)
97
101
 
@@ -26,6 +26,8 @@ from metadata.generated.schema.entity.services.ingestionPipelines.status import
26
26
  )
27
27
  from metadata.generated.schema.metadataIngestion.workflow import LogLevels
28
28
  from metadata.ingestion.api.step import Summary
29
+ from metadata.utils.execution_time_tracker import ExecutionTimeTracker
30
+ from metadata.utils.helpers import pretty_print_time_duration
29
31
  from metadata.utils.logger import ANSI, log_ansi_encoded_string
30
32
 
31
33
  WORKFLOW_FAILURE_MESSAGE = "Workflow finished with failures"
@@ -137,6 +139,25 @@ def is_debug_enabled(workflow) -> bool:
137
139
  )
138
140
 
139
141
 
142
+ def print_execution_time_summary():
143
+ """Log the ExecutionTimeTracker Summary."""
144
+ tracker = ExecutionTimeTracker()
145
+
146
+ summary_table = {
147
+ "Context": [],
148
+ "Execution Time Aggregate": [],
149
+ }
150
+
151
+ for key in sorted(tracker.state.keys()):
152
+ summary_table["Context"].append(key)
153
+ summary_table["Execution Time Aggregate"].append(
154
+ pretty_print_time_duration(tracker.state[key])
155
+ )
156
+
157
+ log_ansi_encoded_string(bold=True, message="Execution Time Summary")
158
+ log_ansi_encoded_string(message=f"\n{tabulate(summary_table, tablefmt='grid')}")
159
+
160
+
140
161
  def print_workflow_summary(workflow: "BaseWorkflow") -> None:
141
162
  """
142
163
  Args:
@@ -148,6 +169,7 @@ def print_workflow_summary(workflow: "BaseWorkflow") -> None:
148
169
 
149
170
  if is_debug_enabled(workflow):
150
171
  print_workflow_status_debug(workflow)
172
+ print_execution_time_summary()
151
173
 
152
174
  failures = []
153
175
  total_records = 0