openmetadata-ingestion 1.2.3.1__py3-none-any.whl → 1.2.4.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 (496) hide show
  1. metadata/generated/schema/analytics/__init__.py +1 -1
  2. metadata/generated/schema/analytics/basic.py +1 -1
  3. metadata/generated/schema/analytics/reportData.py +1 -1
  4. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  5. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  6. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  7. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  10. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  11. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  12. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  13. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  15. metadata/generated/schema/api/__init__.py +1 -1
  16. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  17. metadata/generated/schema/api/analytics/__init__.py +1 -1
  18. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  19. metadata/generated/schema/api/automations/__init__.py +1 -1
  20. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  21. metadata/generated/schema/api/bulkAssets.py +1 -1
  22. metadata/generated/schema/api/classification/__init__.py +1 -1
  23. metadata/generated/schema/api/classification/createClassification.py +1 -1
  24. metadata/generated/schema/api/classification/createTag.py +1 -1
  25. metadata/generated/schema/api/classification/loadTags.py +1 -1
  26. metadata/generated/schema/api/createBot.py +1 -1
  27. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  28. metadata/generated/schema/api/createType.py +1 -1
  29. metadata/generated/schema/api/data/__init__.py +1 -1
  30. metadata/generated/schema/api/data/createChart.py +1 -1
  31. metadata/generated/schema/api/data/createContainer.py +1 -1
  32. metadata/generated/schema/api/data/createCustomProperty.py +32 -0
  33. metadata/generated/schema/api/data/createDashboard.py +1 -1
  34. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  35. metadata/generated/schema/api/data/createDatabase.py +1 -1
  36. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  37. metadata/generated/schema/api/data/createGlossary.py +1 -1
  38. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  39. metadata/generated/schema/api/data/createMlModel.py +1 -1
  40. metadata/generated/schema/api/data/createPipeline.py +1 -1
  41. metadata/generated/schema/api/data/createQuery.py +1 -1
  42. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  43. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  44. metadata/generated/schema/api/data/createTable.py +1 -1
  45. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  46. metadata/generated/schema/api/data/createTopic.py +1 -1
  47. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  48. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  49. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  50. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  51. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  52. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  53. metadata/generated/schema/api/docStore/__init__.py +1 -1
  54. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  55. metadata/generated/schema/api/domains/__init__.py +1 -1
  56. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  57. metadata/generated/schema/api/domains/createDomain.py +1 -1
  58. metadata/generated/schema/api/feed/__init__.py +1 -1
  59. metadata/generated/schema/api/feed/closeTask.py +1 -1
  60. metadata/generated/schema/api/feed/createPost.py +1 -1
  61. metadata/generated/schema/api/feed/createThread.py +1 -1
  62. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  63. metadata/generated/schema/api/feed/threadCount.py +1 -1
  64. metadata/generated/schema/api/lineage/__init__.py +1 -1
  65. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  66. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  67. metadata/generated/schema/api/policies/__init__.py +1 -1
  68. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  69. metadata/generated/schema/api/services/__init__.py +1 -1
  70. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  71. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  72. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  73. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  74. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  75. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  76. metadata/generated/schema/api/services/createSearchService.py +1 -1
  77. metadata/generated/schema/api/services/createStorageService.py +1 -1
  78. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  79. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  80. metadata/generated/schema/api/setOwner.py +1 -1
  81. metadata/generated/schema/api/teams/__init__.py +1 -1
  82. metadata/generated/schema/api/teams/createPersona.py +1 -1
  83. metadata/generated/schema/api/teams/createRole.py +1 -1
  84. metadata/generated/schema/api/teams/createTeam.py +1 -1
  85. metadata/generated/schema/api/teams/createUser.py +1 -1
  86. metadata/generated/schema/api/tests/__init__.py +1 -1
  87. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  88. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  89. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  90. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  91. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  92. metadata/generated/schema/api/voteRequest.py +1 -1
  93. metadata/generated/schema/auth/__init__.py +1 -1
  94. metadata/generated/schema/auth/basicAuth.py +1 -1
  95. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  96. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  97. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  98. metadata/generated/schema/auth/emailRequest.py +1 -1
  99. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  100. metadata/generated/schema/auth/generateToken.py +1 -1
  101. metadata/generated/schema/auth/jwtAuth.py +1 -1
  102. metadata/generated/schema/auth/loginRequest.py +1 -1
  103. metadata/generated/schema/auth/logoutRequest.py +1 -1
  104. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  105. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  106. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  107. metadata/generated/schema/auth/refreshToken.py +1 -1
  108. metadata/generated/schema/auth/registrationRequest.py +1 -1
  109. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  110. metadata/generated/schema/auth/revokeToken.py +1 -1
  111. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  112. metadata/generated/schema/auth/ssoAuth.py +1 -1
  113. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  114. metadata/generated/schema/configuration/__init__.py +1 -1
  115. metadata/generated/schema/configuration/authConfig.py +1 -1
  116. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  117. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  118. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  119. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  120. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  121. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  122. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  123. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  124. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  125. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  126. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  127. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  128. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  129. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  130. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  131. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  132. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  135. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  136. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  137. metadata/generated/schema/dataInsight/__init__.py +1 -1
  138. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  139. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  140. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  141. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  142. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  143. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  144. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  145. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  146. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  147. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  148. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  149. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  150. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  151. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  152. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  153. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  154. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  155. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  156. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  157. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  158. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  159. metadata/generated/schema/email/__init__.py +1 -1
  160. metadata/generated/schema/email/emailRequest.py +1 -1
  161. metadata/generated/schema/email/smtpSettings.py +1 -1
  162. metadata/generated/schema/entity/__init__.py +1 -1
  163. metadata/generated/schema/entity/applications/__init__.py +1 -1
  164. metadata/generated/schema/entity/applications/app.py +1 -1
  165. metadata/generated/schema/entity/applications/appConfig.py +1 -1
  166. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  167. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  168. metadata/generated/schema/entity/applications/configuration/dataInsightsApp.py +1 -1
  169. metadata/generated/schema/entity/applications/configuration/externalAppIngestionConfig.py +1 -1
  170. metadata/generated/schema/entity/applications/configuration/searchIndexingApp.py +1 -1
  171. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  172. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  173. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  174. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  175. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  176. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  177. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  178. metadata/generated/schema/entity/automations/__init__.py +1 -1
  179. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  180. metadata/generated/schema/entity/automations/workflow.py +1 -1
  181. metadata/generated/schema/entity/bot.py +1 -1
  182. metadata/generated/schema/entity/classification/__init__.py +1 -1
  183. metadata/generated/schema/entity/classification/classification.py +1 -1
  184. metadata/generated/schema/entity/classification/tag.py +1 -1
  185. metadata/generated/schema/entity/data/__init__.py +1 -1
  186. metadata/generated/schema/entity/data/chart.py +1 -1
  187. metadata/generated/schema/entity/data/container.py +1 -1
  188. metadata/generated/schema/entity/data/dashboard.py +1 -1
  189. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  190. metadata/generated/schema/entity/data/database.py +1 -1
  191. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  192. metadata/generated/schema/entity/data/glossary.py +1 -1
  193. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  194. metadata/generated/schema/entity/data/metrics.py +1 -1
  195. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  196. metadata/generated/schema/entity/data/pipeline.py +1 -1
  197. metadata/generated/schema/entity/data/query.py +1 -1
  198. metadata/generated/schema/entity/data/report.py +1 -1
  199. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  200. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  201. metadata/generated/schema/entity/data/table.py +1 -1
  202. metadata/generated/schema/entity/data/topic.py +1 -1
  203. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  204. metadata/generated/schema/entity/docStore/document.py +1 -1
  205. metadata/generated/schema/entity/domains/__init__.py +1 -1
  206. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  207. metadata/generated/schema/entity/domains/domain.py +1 -1
  208. metadata/generated/schema/entity/events/__init__.py +1 -1
  209. metadata/generated/schema/entity/events/webhook.py +1 -1
  210. metadata/generated/schema/entity/feed/__init__.py +1 -1
  211. metadata/generated/schema/entity/feed/thread.py +1 -1
  212. metadata/generated/schema/entity/policies/__init__.py +1 -1
  213. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  214. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  215. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  216. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  217. metadata/generated/schema/entity/policies/filters.py +1 -1
  218. metadata/generated/schema/entity/policies/policy.py +1 -1
  219. metadata/generated/schema/entity/services/__init__.py +1 -1
  220. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  221. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  222. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  223. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  224. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  225. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  226. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  227. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  228. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  229. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  230. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  231. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  232. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  233. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  234. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  235. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  236. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  237. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  238. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  239. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  240. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  241. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  242. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  243. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  244. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  245. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  246. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  247. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  248. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  249. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  250. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  251. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  252. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  253. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  254. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  255. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  256. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  257. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  258. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  259. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  260. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  261. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  262. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  263. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  264. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  265. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  266. metadata/generated/schema/entity/services/connections/database/mongoDB/__init__.py +1 -1
  267. metadata/generated/schema/entity/services/connections/database/mongoDB/mongoDBValues.py +1 -1
  268. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  269. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  270. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  271. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  272. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  273. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  274. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  275. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  276. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  277. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  278. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  279. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  280. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  281. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  282. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  284. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  287. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  288. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  289. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  290. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  291. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +62 -0
  292. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  296. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  297. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  302. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  314. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  316. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  317. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  318. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  322. metadata/generated/schema/entity/services/connections/storage/adlsConection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  327. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  328. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  329. metadata/generated/schema/entity/services/databaseService.py +1 -1
  330. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  331. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  332. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  333. metadata/generated/schema/entity/services/messagingService.py +1 -1
  334. metadata/generated/schema/entity/services/metadataService.py +4 -1
  335. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  336. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  337. metadata/generated/schema/entity/services/searchService.py +1 -1
  338. metadata/generated/schema/entity/services/serviceType.py +1 -1
  339. metadata/generated/schema/entity/services/storageService.py +1 -1
  340. metadata/generated/schema/entity/teams/__init__.py +1 -1
  341. metadata/generated/schema/entity/teams/persona.py +1 -1
  342. metadata/generated/schema/entity/teams/role.py +1 -1
  343. metadata/generated/schema/entity/teams/team.py +1 -1
  344. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  345. metadata/generated/schema/entity/teams/user.py +1 -1
  346. metadata/generated/schema/entity/type.py +1 -1
  347. metadata/generated/schema/entity/utils/__init__.py +1 -1
  348. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  349. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  350. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  351. metadata/generated/schema/events/__init__.py +1 -1
  352. metadata/generated/schema/events/api/__init__.py +1 -1
  353. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  354. metadata/generated/schema/events/dataInsightAlertConfig.py +1 -1
  355. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  356. metadata/generated/schema/events/entitySpelFilters.py +1 -1
  357. metadata/generated/schema/events/eventFilterRule.py +1 -1
  358. metadata/generated/schema/events/eventSubscription.py +1 -1
  359. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  360. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  361. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  362. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  363. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  364. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  365. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  366. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  367. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  368. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  369. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  370. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  371. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  372. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  373. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  374. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  375. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  376. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  377. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  378. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  379. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  380. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  381. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  382. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  383. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  384. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  385. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  386. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  387. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  388. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  389. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  390. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  391. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  392. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  393. metadata/generated/schema/monitoring/__init__.py +1 -1
  394. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  395. metadata/generated/schema/security/__init__.py +1 -1
  396. metadata/generated/schema/security/client/__init__.py +1 -1
  397. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  398. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  399. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  400. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  401. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  402. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  403. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  404. metadata/generated/schema/security/credentials/__init__.py +1 -1
  405. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  406. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +18 -0
  407. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  408. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  409. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  410. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  411. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  412. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  413. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  414. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  415. metadata/generated/schema/security/secrets/__init__.py +1 -1
  416. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  417. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  418. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  419. metadata/generated/schema/security/securityConfiguration.py +1 -1
  420. metadata/generated/schema/security/ssl/__init__.py +1 -1
  421. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  422. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  423. metadata/generated/schema/settings/__init__.py +1 -1
  424. metadata/generated/schema/settings/settings.py +1 -1
  425. metadata/generated/schema/system/__init__.py +1 -1
  426. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  427. metadata/generated/schema/system/ui/__init__.py +1 -1
  428. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  429. metadata/generated/schema/system/ui/page.py +1 -1
  430. metadata/generated/schema/tests/__init__.py +1 -1
  431. metadata/generated/schema/tests/basic.py +1 -1
  432. metadata/generated/schema/tests/customMetric.py +1 -1
  433. metadata/generated/schema/tests/testCase.py +1 -1
  434. metadata/generated/schema/tests/testDefinition.py +1 -1
  435. metadata/generated/schema/tests/testSuite.py +1 -1
  436. metadata/generated/schema/type/__init__.py +1 -1
  437. metadata/generated/schema/type/auditLog.py +1 -1
  438. metadata/generated/schema/type/basic.py +1 -1
  439. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  440. metadata/generated/schema/type/changeEvent.py +1 -1
  441. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  442. metadata/generated/schema/type/csvDocumentation.py +1 -1
  443. metadata/generated/schema/type/csvErrorType.py +1 -1
  444. metadata/generated/schema/type/csvFile.py +1 -1
  445. metadata/generated/schema/type/csvImportResult.py +1 -1
  446. metadata/generated/schema/type/dailyCount.py +1 -1
  447. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  448. metadata/generated/schema/type/entityHistory.py +1 -1
  449. metadata/generated/schema/type/entityLineage.py +1 -1
  450. metadata/generated/schema/type/entityReference.py +1 -1
  451. metadata/generated/schema/type/entityReferenceList.py +1 -1
  452. metadata/generated/schema/type/entityRelationship.py +1 -1
  453. metadata/generated/schema/type/entityUsage.py +1 -1
  454. metadata/generated/schema/type/filterPattern.py +1 -1
  455. metadata/generated/schema/type/function.py +1 -1
  456. metadata/generated/schema/type/include.py +1 -1
  457. metadata/generated/schema/type/jdbcConnection.py +1 -1
  458. metadata/generated/schema/type/lifeCycle.py +1 -1
  459. metadata/generated/schema/type/paging.py +1 -1
  460. metadata/generated/schema/type/profile.py +1 -1
  461. metadata/generated/schema/type/queryParserData.py +1 -1
  462. metadata/generated/schema/type/reaction.py +1 -1
  463. metadata/generated/schema/type/schedule.py +1 -1
  464. metadata/generated/schema/type/schema.py +1 -1
  465. metadata/generated/schema/type/tableQuery.py +1 -1
  466. metadata/generated/schema/type/tableUsageCount.py +1 -1
  467. metadata/generated/schema/type/tagLabel.py +1 -1
  468. metadata/generated/schema/type/usageDetails.py +1 -1
  469. metadata/generated/schema/type/usageRequest.py +1 -1
  470. metadata/generated/schema/type/votes.py +1 -1
  471. metadata/ingestion/api/parser.py +79 -26
  472. metadata/ingestion/api/topology_runner.py +15 -1
  473. metadata/ingestion/lineage/parser.py +20 -14
  474. metadata/ingestion/models/custom_properties.py +63 -0
  475. metadata/ingestion/ometa/mixins/custom_property_mixin.py +80 -0
  476. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +3 -2
  477. metadata/ingestion/ometa/mixins/patch_mixin_utils.py +0 -5
  478. metadata/ingestion/ometa/mixins/server_mixin.py +4 -2
  479. metadata/ingestion/ometa/ometa_api.py +4 -0
  480. metadata/ingestion/sink/metadata_rest.py +9 -0
  481. metadata/ingestion/source/dashboard/superset/api_source.py +25 -14
  482. metadata/ingestion/source/dashboard/superset/db_source.py +72 -36
  483. metadata/ingestion/source/dashboard/superset/mixin.py +23 -17
  484. metadata/ingestion/source/database/dbt/constants.py +2 -0
  485. metadata/ingestion/source/database/dbt/metadata.py +13 -3
  486. metadata/ingestion/source/database/salesforce/metadata.py +1 -1
  487. metadata/ingestion/source/pipeline/airflow/metadata.py +27 -8
  488. metadata/profiler/interface/sqlalchemy/profiler_interface.py +1 -1
  489. metadata/utils/logger.py +13 -0
  490. metadata/utils/tag_utils.py +2 -2
  491. {openmetadata_ingestion-1.2.3.1.dist-info → openmetadata_ingestion-1.2.4.0.dist-info}/METADATA +197 -197
  492. {openmetadata_ingestion-1.2.3.1.dist-info → openmetadata_ingestion-1.2.4.0.dist-info}/RECORD +496 -491
  493. {openmetadata_ingestion-1.2.3.1.dist-info → openmetadata_ingestion-1.2.4.0.dist-info}/LICENSE +0 -0
  494. {openmetadata_ingestion-1.2.3.1.dist-info → openmetadata_ingestion-1.2.4.0.dist-info}/WHEEL +0 -0
  495. {openmetadata_ingestion-1.2.3.1.dist-info → openmetadata_ingestion-1.2.4.0.dist-info}/entry_points.txt +0 -0
  496. {openmetadata_ingestion-1.2.3.1.dist-info → openmetadata_ingestion-1.2.4.0.dist-info}/top_level.txt +0 -0
@@ -71,15 +71,27 @@ class SupersetDBSource(SupersetSourceMixin):
71
71
  this step is done because fetch_total_charts api fetches all
72
72
  the required information which is not available in fetch_charts_with_id api
73
73
  """
74
- charts = self.engine.execute(FETCH_ALL_CHARTS)
75
- for chart in charts:
76
- chart_detail = FetchChart(**chart)
77
- self.all_charts[chart_detail.id] = chart_detail
74
+ try:
75
+ charts = self.engine.execute(FETCH_ALL_CHARTS)
76
+ for chart in charts:
77
+ chart_detail = FetchChart(**chart)
78
+ self.all_charts[chart_detail.id] = chart_detail
79
+ except Exception as err:
80
+ logger.debug(traceback.format_exc())
81
+ logger.warning(f"Failed to fetch chart list due to - {err}]")
78
82
 
79
83
  def get_column_list(self, table_name: str) -> Iterable[FetchChart]:
80
- sql_query = sql.text(FETCH_COLUMN.format(table_name=table_name.lower()))
81
- col_list = self.engine.execute(sql_query)
82
- return [FetchColumn(**col) for col in col_list]
84
+ try:
85
+ if table_name:
86
+ sql_query = sql.text(FETCH_COLUMN.format(table_name=table_name.lower()))
87
+ col_list = self.engine.execute(sql_query)
88
+ return [FetchColumn(**col) for col in col_list]
89
+ except Exception as err:
90
+ logger.debug(traceback.format_exc())
91
+ logger.warning(
92
+ f"Failed to fetch column name list for table: [{table_name} due to - {err}]"
93
+ )
94
+ return []
83
95
 
84
96
  def get_dashboards_list(self) -> Iterable[FetchDashboard]:
85
97
  """
@@ -93,23 +105,35 @@ class SupersetDBSource(SupersetSourceMixin):
93
105
  self, dashboard_details: FetchDashboard
94
106
  ) -> Iterable[Either[CreateDashboardRequest]]:
95
107
  """Method to Get Dashboard Entity"""
96
- dashboard_request = CreateDashboardRequest(
97
- name=dashboard_details.id,
98
- displayName=dashboard_details.dashboard_title,
99
- sourceUrl=f"{clean_uri(self.service_connection.hostPort)}/superset/dashboard/{dashboard_details.id}/",
100
- charts=[
101
- fqn.build(
102
- self.metadata,
103
- entity_type=Chart,
104
- service_name=self.context.dashboard_service,
105
- chart_name=chart,
108
+ try:
109
+ dashboard_request = CreateDashboardRequest(
110
+ name=dashboard_details.id,
111
+ displayName=dashboard_details.dashboard_title,
112
+ sourceUrl=f"{clean_uri(self.service_connection.hostPort)}/superset/dashboard/{dashboard_details.id}/",
113
+ charts=[
114
+ fqn.build(
115
+ self.metadata,
116
+ entity_type=Chart,
117
+ service_name=self.context.dashboard_service,
118
+ chart_name=chart,
119
+ )
120
+ for chart in self.context.charts
121
+ ],
122
+ service=self.context.dashboard_service,
123
+ )
124
+ yield Either(right=dashboard_request)
125
+ self.register_record(dashboard_request=dashboard_request)
126
+ except Exception as exc:
127
+ yield Either(
128
+ left=StackTraceError(
129
+ name=dashboard_details.id,
130
+ error=(
131
+ f"Error yielding Dashboard [{dashboard_details.id} "
132
+ f"- {dashboard_details.dashboard_title}]: {exc}"
133
+ ),
134
+ stack_trace=traceback.format_exc(),
106
135
  )
107
- for chart in self.context.charts
108
- ],
109
- service=self.context.dashboard_service,
110
- )
111
- yield Either(right=dashboard_request)
112
- self.register_record(dashboard_request=dashboard_request)
136
+ )
113
137
 
114
138
  def _get_datasource_fqn_for_lineage(
115
139
  self, chart_json: FetchChart, db_service_entity: DatabaseService
@@ -127,19 +151,31 @@ class SupersetDBSource(SupersetSourceMixin):
127
151
  Metod to fetch charts linked to dashboard
128
152
  """
129
153
  for chart_id in self._get_charts_of_dashboard(dashboard_details):
130
- chart_json = self.all_charts.get(chart_id)
131
- if not chart_json:
132
- logger.warning(f"chart details for id: {chart_id} not found, skipped")
133
- continue
134
- chart = CreateChartRequest(
135
- name=chart_json.id,
136
- displayName=chart_json.slice_name,
137
- description=chart_json.description,
138
- chartType=get_standard_chart_type(chart_json.viz_type),
139
- sourceUrl=f"{clean_uri(self.service_connection.hostPort)}/explore/?slice_id={chart_json.id}",
140
- service=self.context.dashboard_service,
141
- )
142
- yield Either(right=chart)
154
+ try:
155
+ chart_json = self.all_charts.get(chart_id)
156
+ if not chart_json:
157
+ logger.warning(
158
+ f"chart details for id: {chart_id} not found, skipped"
159
+ )
160
+
161
+ continue
162
+ chart = CreateChartRequest(
163
+ name=chart_json.id,
164
+ displayName=chart_json.slice_name,
165
+ description=chart_json.description,
166
+ chartType=get_standard_chart_type(chart_json.viz_type),
167
+ sourceUrl=f"{clean_uri(self.service_connection.hostPort)}/explore/?slice_id={chart_json.id}",
168
+ service=self.context.dashboard_service,
169
+ )
170
+ yield Either(right=chart)
171
+ except Exception as exc:
172
+ yield Either(
173
+ left=StackTraceError(
174
+ name=chart_json.id,
175
+ error=f"Error yielding Chart [{chart_json.id} - {chart_json.slice_name}]: {exc}",
176
+ stack_trace=traceback.format_exc(),
177
+ )
178
+ )
143
179
 
144
180
  def _get_database_name(
145
181
  self, sqa_str: str, db_service_entity: DatabaseService
@@ -121,14 +121,20 @@ class SupersetSourceMixin(DashboardServiceSource):
121
121
  """
122
122
  Method to fetch chart ids linked to dashboard
123
123
  """
124
- raw_position_data = dashboard_details.position_json
125
- if raw_position_data:
126
- position_data = json.loads(raw_position_data)
127
- return [
128
- value.get("meta", {}).get("chartId")
129
- for key, value in position_data.items()
130
- if key.startswith("CHART-") and value.get("meta", {}).get("chartId")
131
- ]
124
+ try:
125
+ raw_position_data = dashboard_details.position_json
126
+ if raw_position_data:
127
+ position_data = json.loads(raw_position_data)
128
+ return [
129
+ value.get("meta", {}).get("chartId")
130
+ for key, value in position_data.items()
131
+ if key.startswith("CHART-") and value.get("meta", {}).get("chartId")
132
+ ]
133
+ except Exception as err:
134
+ logger.debug(traceback.format_exc())
135
+ logger.warning(
136
+ f"Failed to charts of dashboard {dashboard_details.id} due to {err}"
137
+ )
132
138
  return []
133
139
 
134
140
  def yield_dashboard_lineage_details(
@@ -146,16 +152,16 @@ class SupersetSourceMixin(DashboardServiceSource):
146
152
  for chart_id in self._get_charts_of_dashboard(dashboard_details):
147
153
  chart_json = self.all_charts.get(chart_id)
148
154
  if chart_json:
149
- datasource_fqn = self._get_datasource_fqn_for_lineage(
150
- chart_json, db_service_entity
151
- )
152
- if not datasource_fqn:
153
- continue
154
- from_entity = self.metadata.get_by_name(
155
- entity=Table,
156
- fqn=datasource_fqn,
157
- )
158
155
  try:
156
+ datasource_fqn = self._get_datasource_fqn_for_lineage(
157
+ chart_json, db_service_entity
158
+ )
159
+ if not datasource_fqn:
160
+ continue
161
+ from_entity = self.metadata.get_by_name(
162
+ entity=Table,
163
+ fqn=datasource_fqn,
164
+ )
159
165
  datamodel_fqn = fqn.build(
160
166
  self.metadata,
161
167
  entity_type=DashboardDataModel,
@@ -14,6 +14,8 @@ Constants required for dbt
14
14
 
15
15
  from enum import Enum
16
16
 
17
+ DBT_RUN_RESULT_DATE_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
18
+
17
19
  # Based on https://schemas.getdbt.com/dbt/manifest/v7/index.html
18
20
  REQUIRED_MANIFEST_KEYS = ["name", "schema", "resource_type"]
19
21
 
@@ -59,6 +59,7 @@ from metadata.ingestion.ometa.ometa_api import OpenMetadata
59
59
  from metadata.ingestion.source.database.column_type_parser import ColumnTypeParser
60
60
  from metadata.ingestion.source.database.database_service import DataModelLink
61
61
  from metadata.ingestion.source.database.dbt.constants import (
62
+ DBT_RUN_RESULT_DATE_FORMAT,
62
63
  REQUIRED_CATALOG_KEYS,
63
64
  REQUIRED_MANIFEST_KEYS,
64
65
  DbtCommonEnum,
@@ -870,12 +871,21 @@ class DbtSource(DbtServiceSource):
870
871
  dbt_test_completed_at = dbt_test_timing.completed_at
871
872
  dbt_timestamp = None
872
873
  if dbt_test_completed_at:
873
- dbt_timestamp = dbt_test_completed_at.timestamp()
874
+ dbt_timestamp = dbt_test_completed_at
874
875
  elif self.context.run_results_generate_time:
875
- dbt_timestamp = self.context.run_results_generate_time.timestamp()
876
+ dbt_timestamp = self.context.run_results_generate_time
877
+
878
+ # check if the timestamp is a str type and convert accordingly
879
+ if isinstance(dbt_timestamp, str):
880
+ dbt_timestamp = datetime.strptime(
881
+ dbt_timestamp, DBT_RUN_RESULT_DATE_FORMAT
882
+ )
883
+
876
884
  # Create the test case result object
877
885
  test_case_result = TestCaseResult(
878
- timestamp=convert_timestamp_to_milliseconds(dbt_timestamp),
886
+ timestamp=convert_timestamp_to_milliseconds(
887
+ dbt_timestamp.timestamp()
888
+ ),
879
889
  testCaseStatus=test_case_status,
880
890
  testResultValue=[
881
891
  TestResultValue(
@@ -213,7 +213,7 @@ class SalesforceSource(DatabaseServiceSource):
213
213
  entity_type=DatabaseSchema,
214
214
  service_name=self.context.database_service,
215
215
  database_name=self.context.database,
216
- schema_name=self.context.database.database_schema,
216
+ schema_name=self.context.database_schema,
217
217
  ),
218
218
  sourceUrl=self.get_source_url(
219
219
  table_name=table_name,
@@ -13,6 +13,7 @@ Airflow source to extract metadata from OM UI
13
13
  """
14
14
  import traceback
15
15
  from datetime import datetime
16
+ from enum import Enum
16
17
  from typing import Iterable, List, Optional, cast
17
18
 
18
19
  from airflow.models import BaseOperator, DagRun, TaskInstance
@@ -61,10 +62,18 @@ from metadata.utils.logger import ingestion_logger
61
62
 
62
63
  logger = ingestion_logger()
63
64
 
65
+
66
+ class AirflowTaskStatus(Enum):
67
+ SUCCESS = "success"
68
+ FAILED = "failed"
69
+ QUEUED = "queued"
70
+ REMOVED = "removed"
71
+
72
+
64
73
  STATUS_MAP = {
65
- "success": StatusType.Successful.value,
66
- "failed": StatusType.Failed.value,
67
- "queued": StatusType.Pending.value,
74
+ AirflowTaskStatus.SUCCESS.value: StatusType.Successful.value,
75
+ AirflowTaskStatus.FAILED.value: StatusType.Failed.value,
76
+ AirflowTaskStatus.QUEUED.value: StatusType.Pending.value,
68
77
  }
69
78
 
70
79
 
@@ -169,12 +178,15 @@ class AirflowSource(PipelineServiceSource):
169
178
  TaskInstance.end_date,
170
179
  TaskInstance.run_id,
171
180
  )
172
- .filter(TaskInstance.dag_id == dag_id, TaskInstance.run_id == run_id)
181
+ .filter(
182
+ TaskInstance.dag_id == dag_id,
183
+ TaskInstance.run_id == run_id,
184
+ # updating old runs flag deleted tasks as `removed`
185
+ TaskInstance.state != AirflowTaskStatus.REMOVED,
186
+ )
173
187
  .all()
174
188
  )
175
- except Exception as exc: # pylint: disable=broad-except
176
- # Using a broad Exception here as the backend can come in many flavours (pymysql, pyodbc...)
177
- # And we don't want to force all imports
189
+ except Exception as exc:
178
190
  logger.debug(traceback.format_exc())
179
191
  logger.warning(
180
192
  f"Tried to get TaskInstances with run_id. It might not be available in older Airflow versions - {exc}."
@@ -202,7 +214,7 @@ class AirflowSource(PipelineServiceSource):
202
214
 
203
215
  for dag_run in dag_run_list:
204
216
  if (
205
- dag_run.run_id
217
+ dag_run.run_id and self.context.task_names
206
218
  ): # Airflow dags can have old task which are turned off/commented out in code
207
219
  tasks = self.get_task_instances(
208
220
  dag_id=dag_run.dag_id, run_id=dag_run.run_id
@@ -220,6 +232,7 @@ class AirflowSource(PipelineServiceSource):
220
232
  ), # Might be None for running tasks
221
233
  ) # Log link might not be present in all Airflow versions
222
234
  for task in tasks
235
+ if task.task_id in self.context.task_names
223
236
  ]
224
237
 
225
238
  pipeline_status = PipelineStatus(
@@ -381,7 +394,11 @@ class AirflowSource(PipelineServiceSource):
381
394
  )
382
395
  yield Either(right=pipeline_request)
383
396
  self.register_record(pipeline_request=pipeline_request)
397
+ self.context.task_names = {
398
+ task.name for task in pipeline_request.tasks or []
399
+ }
384
400
  except TypeError as err:
401
+ self.context.task_names = set()
385
402
  yield Either(
386
403
  left=StackTraceError(
387
404
  name=pipeline_details.dag_id,
@@ -393,6 +410,7 @@ class AirflowSource(PipelineServiceSource):
393
410
  )
394
411
  )
395
412
  except ValidationError as err:
413
+ self.context.task_names = set()
396
414
  yield Either(
397
415
  left=StackTraceError(
398
416
  name=pipeline_details.dag_id,
@@ -402,6 +420,7 @@ class AirflowSource(PipelineServiceSource):
402
420
  )
403
421
 
404
422
  except Exception as err:
423
+ self.context.task_names = set()
405
424
  yield Either(
406
425
  left=StackTraceError(
407
426
  name=pipeline_details.dag_id,
@@ -399,6 +399,7 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
399
399
  table,
400
400
  sample,
401
401
  )
402
+ row = None
402
403
 
403
404
  try:
404
405
  row = self._get_metric_fn[metric_type.value](
@@ -412,7 +413,6 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
412
413
  error = f"{column if column is not None else runner.table.__tablename__} metric_type.value: {exc}"
413
414
  logger.error(error)
414
415
  self.status.failed_profiler(error, traceback.format_exc())
415
- row = None
416
416
 
417
417
  if column is not None:
418
418
  column = column.name
metadata/utils/logger.py CHANGED
@@ -28,6 +28,8 @@ from metadata.ingestion.api.models import Entity
28
28
  from metadata.ingestion.models.delete_entity import DeleteEntity
29
29
  from metadata.ingestion.models.life_cycle import OMetaLifeCycleData
30
30
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
31
+ from metadata.ingestion.models.patch_request import PatchRequest
32
+ from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
31
33
 
32
34
  METADATA_LOGGER = "metadata"
33
35
  BASE_LOGGING_FORMAT = (
@@ -251,3 +253,14 @@ def _(_: TestCaseResults) -> Optional[str]:
251
253
  @get_log_name.register
252
254
  def _(record: TestCaseResultResponse) -> str:
253
255
  return record.testCase.fullyQualifiedName.__root__
256
+
257
+
258
+ @get_log_name.register
259
+ def _(record: OMetaPipelineStatus) -> str:
260
+ return f"Pipeline Status [{record.pipeline_fqn}]"
261
+
262
+
263
+ @get_log_name.register
264
+ def _(record: PatchRequest) -> str:
265
+ """Get the log of the new entity"""
266
+ return get_log_name(record.new_entity)
@@ -40,8 +40,8 @@ logger = ingestion_logger()
40
40
  def get_ometa_tag_and_classification(
41
41
  tags: List[str],
42
42
  classification_name: str,
43
- tag_description: Optional[str],
44
- classification_description: Optional[str],
43
+ tag_description: Optional[str] = None,
44
+ classification_description: Optional[str] = None,
45
45
  include_tags: bool = True,
46
46
  tag_fqn: Optional[FullyQualifiedEntityName] = None,
47
47
  ) -> Iterable[Either[OMetaTagAndClassification]]: