openmetadata-ingestion 1.9.13.1__py3-none-any.whl → 1.9.14.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 (789) hide show
  1. metadata/clients/aws_client.py +4 -0
  2. metadata/examples/workflows/kinesisfirehose.yaml +99 -0
  3. metadata/generated/schema/analytics/__init__.py +1 -1
  4. metadata/generated/schema/analytics/basic.py +1 -1
  5. metadata/generated/schema/analytics/reportData.py +1 -1
  6. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  7. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  12. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  13. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  15. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  16. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  17. metadata/generated/schema/api/__init__.py +1 -1
  18. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  19. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  20. metadata/generated/schema/api/analytics/__init__.py +1 -1
  21. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  22. metadata/generated/schema/api/automations/__init__.py +1 -1
  23. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  24. metadata/generated/schema/api/bulkAssets.py +1 -1
  25. metadata/generated/schema/api/classification/__init__.py +1 -1
  26. metadata/generated/schema/api/classification/createClassification.py +1 -1
  27. metadata/generated/schema/api/classification/createTag.py +1 -1
  28. metadata/generated/schema/api/classification/loadTags.py +1 -1
  29. metadata/generated/schema/api/createBot.py +1 -1
  30. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  31. metadata/generated/schema/api/createType.py +1 -1
  32. metadata/generated/schema/api/data/__init__.py +1 -1
  33. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  34. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  35. metadata/generated/schema/api/data/createChart.py +1 -1
  36. metadata/generated/schema/api/data/createContainer.py +1 -1
  37. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  38. metadata/generated/schema/api/data/createDashboard.py +1 -1
  39. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  40. metadata/generated/schema/api/data/createDataContract.py +1 -1
  41. metadata/generated/schema/api/data/createDatabase.py +1 -1
  42. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  43. metadata/generated/schema/api/data/createDirectory.py +1 -1
  44. metadata/generated/schema/api/data/createEntityProfile.py +1 -1
  45. metadata/generated/schema/api/data/createFile.py +1 -1
  46. metadata/generated/schema/api/data/createGlossary.py +1 -1
  47. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  48. metadata/generated/schema/api/data/createMetric.py +1 -1
  49. metadata/generated/schema/api/data/createMlModel.py +1 -1
  50. metadata/generated/schema/api/data/createPipeline.py +1 -1
  51. metadata/generated/schema/api/data/createQuery.py +1 -1
  52. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  53. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  54. metadata/generated/schema/api/data/createSpreadsheet.py +1 -1
  55. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  56. metadata/generated/schema/api/data/createTable.py +1 -1
  57. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  58. metadata/generated/schema/api/data/createTopic.py +1 -1
  59. metadata/generated/schema/api/data/createWorksheet.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/data/updateColumn.py +1 -1
  63. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  64. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  65. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  66. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  67. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  68. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  69. metadata/generated/schema/api/docStore/__init__.py +1 -1
  70. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  71. metadata/generated/schema/api/domains/__init__.py +1 -1
  72. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  73. metadata/generated/schema/api/domains/createDomain.py +1 -1
  74. metadata/generated/schema/api/entityRelationship/__init__.py +1 -1
  75. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +1 -1
  76. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +1 -1
  77. metadata/generated/schema/api/entityRelationship/relationshipRef.py +1 -1
  78. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +1 -1
  79. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +1 -1
  80. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +1 -1
  81. metadata/generated/schema/api/feed/__init__.py +1 -1
  82. metadata/generated/schema/api/feed/closeTask.py +1 -1
  83. metadata/generated/schema/api/feed/createPost.py +1 -1
  84. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  85. metadata/generated/schema/api/feed/createThread.py +1 -1
  86. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  87. metadata/generated/schema/api/feed/threadCount.py +1 -1
  88. metadata/generated/schema/api/governance/__init__.py +1 -1
  89. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  90. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  91. metadata/generated/schema/api/lineage/__init__.py +1 -1
  92. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  93. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  94. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  95. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  96. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  97. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  98. metadata/generated/schema/api/mcp/__init__.py +1 -1
  99. metadata/generated/schema/api/mcp/mcpSearchResponse.py +1 -1
  100. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  101. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  102. metadata/generated/schema/api/policies/__init__.py +1 -1
  103. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  104. metadata/generated/schema/api/scim/__init__.py +1 -1
  105. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  106. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  107. metadata/generated/schema/api/scim/scimUser.py +1 -1
  108. metadata/generated/schema/api/search/__init__.py +1 -1
  109. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  110. metadata/generated/schema/api/services/__init__.py +1 -1
  111. metadata/generated/schema/api/services/createApiService.py +1 -1
  112. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  113. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  114. metadata/generated/schema/api/services/createDriveService.py +1 -1
  115. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  116. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  117. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  118. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  119. metadata/generated/schema/api/services/createSearchService.py +1 -1
  120. metadata/generated/schema/api/services/createSecurityService.py +1 -1
  121. metadata/generated/schema/api/services/createStorageService.py +1 -1
  122. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  123. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  124. metadata/generated/schema/api/setOwner.py +1 -1
  125. metadata/generated/schema/api/teams/__init__.py +1 -1
  126. metadata/generated/schema/api/teams/createPersona.py +1 -1
  127. metadata/generated/schema/api/teams/createRole.py +1 -1
  128. metadata/generated/schema/api/teams/createTeam.py +1 -1
  129. metadata/generated/schema/api/teams/createUser.py +1 -1
  130. metadata/generated/schema/api/tests/__init__.py +1 -1
  131. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  132. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  133. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  134. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  135. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  136. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  137. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  138. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +1 -1
  139. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  140. metadata/generated/schema/api/voteRequest.py +1 -1
  141. metadata/generated/schema/auth/__init__.py +1 -1
  142. metadata/generated/schema/auth/basicAuth.py +1 -1
  143. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  144. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  145. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  146. metadata/generated/schema/auth/emailRequest.py +1 -1
  147. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  148. metadata/generated/schema/auth/generateToken.py +1 -1
  149. metadata/generated/schema/auth/jwtAuth.py +1 -1
  150. metadata/generated/schema/auth/loginRequest.py +1 -1
  151. metadata/generated/schema/auth/logoutRequest.py +1 -1
  152. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  153. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  154. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  155. metadata/generated/schema/auth/refreshToken.py +1 -1
  156. metadata/generated/schema/auth/registrationRequest.py +1 -1
  157. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  158. metadata/generated/schema/auth/revokeToken.py +1 -1
  159. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  160. metadata/generated/schema/auth/ssoAuth.py +1 -1
  161. metadata/generated/schema/auth/supportToken.py +1 -1
  162. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  163. metadata/generated/schema/configuration/__init__.py +1 -1
  164. metadata/generated/schema/configuration/aiPlatformConfiguration.py +1 -1
  165. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  167. metadata/generated/schema/configuration/authConfig.py +1 -1
  168. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/cacheConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/entityRulesSettings.py +1 -1
  175. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  176. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  181. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  182. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  186. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  187. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  188. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  189. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/opsConfig.py +1 -1
  193. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  194. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  195. metadata/generated/schema/configuration/searchSettings.py +1 -1
  196. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  197. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  199. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  200. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  201. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  202. metadata/generated/schema/dataInsight/__init__.py +1 -1
  203. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  204. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  205. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  207. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  208. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  209. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  210. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  211. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  212. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  213. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  214. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  215. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  216. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  217. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  218. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  219. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  220. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  221. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  222. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  223. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  224. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  225. metadata/generated/schema/email/__init__.py +1 -1
  226. metadata/generated/schema/email/emailRequest.py +1 -1
  227. metadata/generated/schema/email/emailTemplate.py +1 -1
  228. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  229. metadata/generated/schema/email/smtpSettings.py +1 -1
  230. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  231. metadata/generated/schema/entity/__init__.py +1 -1
  232. metadata/generated/schema/entity/applications/__init__.py +1 -1
  233. metadata/generated/schema/entity/applications/app.py +1 -1
  234. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  235. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/addTermsAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/automator/removeTermsAction.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/external/metadataExporterAppConfig.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/__init__.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/bigQueryConnection.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/databricksConnection.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/redshiftConnection.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/snowflakeConnection.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  279. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  280. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  281. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  282. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  283. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  284. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  285. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  286. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  287. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  288. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  289. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  290. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  291. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  292. metadata/generated/schema/entity/automations/__init__.py +1 -1
  293. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  294. metadata/generated/schema/entity/automations/workflow.py +1 -1
  295. metadata/generated/schema/entity/bot.py +1 -1
  296. metadata/generated/schema/entity/classification/__init__.py +1 -1
  297. metadata/generated/schema/entity/classification/classification.py +1 -1
  298. metadata/generated/schema/entity/classification/tag.py +1 -1
  299. metadata/generated/schema/entity/data/__init__.py +1 -1
  300. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  301. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  302. metadata/generated/schema/entity/data/chart.py +1 -1
  303. metadata/generated/schema/entity/data/container.py +1 -1
  304. metadata/generated/schema/entity/data/dashboard.py +1 -1
  305. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  306. metadata/generated/schema/entity/data/dataContract.py +1 -1
  307. metadata/generated/schema/entity/data/database.py +1 -1
  308. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  309. metadata/generated/schema/entity/data/directory.py +1 -1
  310. metadata/generated/schema/entity/data/file.py +1 -1
  311. metadata/generated/schema/entity/data/glossary.py +1 -1
  312. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  313. metadata/generated/schema/entity/data/metric.py +1 -1
  314. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  315. metadata/generated/schema/entity/data/pipeline.py +1 -1
  316. metadata/generated/schema/entity/data/query.py +1 -1
  317. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  318. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  319. metadata/generated/schema/entity/data/report.py +1 -1
  320. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  321. metadata/generated/schema/entity/data/spreadsheet.py +1 -1
  322. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  323. metadata/generated/schema/entity/data/table.py +1 -1
  324. metadata/generated/schema/entity/data/topic.py +1 -1
  325. metadata/generated/schema/entity/data/worksheet.py +1 -1
  326. metadata/generated/schema/entity/datacontract/__init__.py +1 -1
  327. metadata/generated/schema/entity/datacontract/dataContractResult.py +1 -1
  328. metadata/generated/schema/entity/datacontract/qualityValidation.py +1 -1
  329. metadata/generated/schema/entity/datacontract/schemaValidation.py +1 -1
  330. metadata/generated/schema/entity/datacontract/semanticsValidation.py +1 -1
  331. metadata/generated/schema/entity/datacontract/slaValidation.py +1 -1
  332. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  333. metadata/generated/schema/entity/docStore/document.py +1 -1
  334. metadata/generated/schema/entity/domains/__init__.py +1 -1
  335. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  336. metadata/generated/schema/entity/domains/domain.py +1 -1
  337. metadata/generated/schema/entity/events/__init__.py +1 -1
  338. metadata/generated/schema/entity/events/webhook.py +1 -1
  339. metadata/generated/schema/entity/feed/__init__.py +1 -1
  340. metadata/generated/schema/entity/feed/assets.py +1 -1
  341. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  342. metadata/generated/schema/entity/feed/description.py +1 -1
  343. metadata/generated/schema/entity/feed/domain.py +1 -1
  344. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  345. metadata/generated/schema/entity/feed/owner.py +1 -1
  346. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  347. metadata/generated/schema/entity/feed/tag.py +1 -1
  348. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  349. metadata/generated/schema/entity/feed/thread.py +1 -1
  350. metadata/generated/schema/entity/policies/__init__.py +1 -1
  351. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  352. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  353. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  354. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  355. metadata/generated/schema/entity/policies/filters.py +1 -1
  356. metadata/generated/schema/entity/policies/policy.py +1 -1
  357. metadata/generated/schema/entity/services/__init__.py +1 -1
  358. metadata/generated/schema/entity/services/apiService.py +1 -1
  359. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  360. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  363. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  364. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  365. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  366. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  367. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  368. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/dashboard/grafanaConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  383. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/epicConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/serviceNowConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/drive/__init__.py +1 -1
  465. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  469. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  475. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  476. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  483. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  489. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  495. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  497. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  498. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  499. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  500. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  501. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/pipeline/kinesisFirehoseConnection.py +58 -0
  503. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  504. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  505. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  506. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  507. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  508. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  509. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  510. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  511. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  512. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  513. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  514. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  515. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  516. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  517. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  518. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  519. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  520. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  521. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  522. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  524. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  525. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  526. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  527. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  528. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  529. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  530. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  531. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  532. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  533. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  534. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  535. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  536. metadata/generated/schema/entity/services/databaseService.py +1 -1
  537. metadata/generated/schema/entity/services/driveService.py +1 -1
  538. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  539. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  540. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  541. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  542. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  543. metadata/generated/schema/entity/services/messagingService.py +1 -1
  544. metadata/generated/schema/entity/services/metadataService.py +1 -1
  545. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  546. metadata/generated/schema/entity/services/pipelineService.py +4 -1
  547. metadata/generated/schema/entity/services/searchService.py +1 -1
  548. metadata/generated/schema/entity/services/securityService.py +1 -1
  549. metadata/generated/schema/entity/services/serviceType.py +1 -1
  550. metadata/generated/schema/entity/services/storageService.py +1 -1
  551. metadata/generated/schema/entity/teams/__init__.py +1 -1
  552. metadata/generated/schema/entity/teams/persona.py +1 -1
  553. metadata/generated/schema/entity/teams/role.py +1 -1
  554. metadata/generated/schema/entity/teams/team.py +1 -1
  555. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  556. metadata/generated/schema/entity/teams/user.py +1 -1
  557. metadata/generated/schema/entity/type.py +1 -1
  558. metadata/generated/schema/entity/utils/__init__.py +1 -1
  559. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  560. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  561. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  562. metadata/generated/schema/events/__init__.py +1 -1
  563. metadata/generated/schema/events/alertMetrics.py +1 -1
  564. metadata/generated/schema/events/api/__init__.py +1 -1
  565. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  566. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  567. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  568. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  569. metadata/generated/schema/events/api/typedEvent.py +1 -1
  570. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  571. metadata/generated/schema/events/eventFilterRule.py +1 -1
  572. metadata/generated/schema/events/eventSubscription.py +1 -1
  573. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  574. metadata/generated/schema/events/failedEvent.py +1 -1
  575. metadata/generated/schema/events/failedEventResponse.py +1 -1
  576. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  577. metadata/generated/schema/events/statusContext.py +1 -1
  578. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  579. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  580. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  581. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  582. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  583. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  584. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  585. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  586. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  587. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  588. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  589. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  590. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  591. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  592. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  593. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  594. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  595. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  596. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  597. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  598. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  599. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  600. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  601. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  602. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  603. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  604. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  605. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  606. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  607. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  608. metadata/generated/schema/jobs/__init__.py +1 -1
  609. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  610. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  611. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  612. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  613. metadata/generated/schema/metadataIngestion/application.py +1 -1
  614. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  615. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  616. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  617. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  618. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  619. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  620. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  621. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  622. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  623. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  624. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  625. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  626. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  627. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  628. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  629. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  630. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  631. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +1 -1
  632. metadata/generated/schema/metadataIngestion/engine/__init__.py +1 -1
  633. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +1 -1
  634. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +1 -1
  635. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  636. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  637. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  638. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  639. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  640. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  641. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  642. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  643. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  644. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  645. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  646. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  647. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  648. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  649. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  650. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  651. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  652. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  653. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  654. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  655. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  656. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  657. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  658. metadata/generated/schema/monitoring/__init__.py +1 -1
  659. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  660. metadata/generated/schema/scim/__init__.py +1 -1
  661. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  662. metadata/generated/schema/search/__init__.py +1 -1
  663. metadata/generated/schema/search/aggregationRequest.py +1 -1
  664. metadata/generated/schema/search/searchRequest.py +1 -1
  665. metadata/generated/schema/security/__init__.py +1 -1
  666. metadata/generated/schema/security/client/__init__.py +1 -1
  667. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  668. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  669. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  670. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  671. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  672. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  673. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  674. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  675. metadata/generated/schema/security/credentials/__init__.py +1 -1
  676. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  677. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  678. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  679. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  680. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  681. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  682. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  683. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  684. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  685. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  686. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  687. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  688. metadata/generated/schema/security/credentials/kubernetesCredentials.py +1 -1
  689. metadata/generated/schema/security/sasl/__init__.py +1 -1
  690. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  691. metadata/generated/schema/security/secrets/__init__.py +1 -1
  692. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  693. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  694. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  695. metadata/generated/schema/security/securityConfiguration.py +1 -1
  696. metadata/generated/schema/security/ssl/__init__.py +1 -1
  697. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  698. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  699. metadata/generated/schema/settings/__init__.py +1 -1
  700. metadata/generated/schema/settings/settings.py +1 -1
  701. metadata/generated/schema/system/__init__.py +1 -1
  702. metadata/generated/schema/system/entityError.py +1 -1
  703. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  704. metadata/generated/schema/system/indexingError.py +1 -1
  705. metadata/generated/schema/system/limitsResponse.py +1 -1
  706. metadata/generated/schema/system/ui/__init__.py +1 -1
  707. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  708. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  709. metadata/generated/schema/system/ui/page.py +1 -1
  710. metadata/generated/schema/system/ui/tab.py +1 -1
  711. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  712. metadata/generated/schema/system/validationResponse.py +1 -1
  713. metadata/generated/schema/tests/__init__.py +1 -1
  714. metadata/generated/schema/tests/assigned.py +1 -1
  715. metadata/generated/schema/tests/basic.py +1 -1
  716. metadata/generated/schema/tests/customMetric.py +1 -1
  717. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  718. metadata/generated/schema/tests/resolved.py +1 -1
  719. metadata/generated/schema/tests/testCase.py +1 -1
  720. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  721. metadata/generated/schema/tests/testDefinition.py +1 -1
  722. metadata/generated/schema/tests/testSuite.py +1 -1
  723. metadata/generated/schema/type/__init__.py +1 -1
  724. metadata/generated/schema/type/apiSchema.py +1 -1
  725. metadata/generated/schema/type/assetCertification.py +1 -1
  726. metadata/generated/schema/type/auditLog.py +1 -1
  727. metadata/generated/schema/type/basic.py +1 -1
  728. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  729. metadata/generated/schema/type/changeEvent.py +1 -1
  730. metadata/generated/schema/type/changeEventType.py +1 -1
  731. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  732. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  733. metadata/generated/schema/type/contractExecutionStatus.py +1 -1
  734. metadata/generated/schema/type/csvDocumentation.py +1 -1
  735. metadata/generated/schema/type/csvErrorType.py +1 -1
  736. metadata/generated/schema/type/csvFile.py +1 -1
  737. metadata/generated/schema/type/csvImportResult.py +1 -1
  738. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  739. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  740. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  741. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  742. metadata/generated/schema/type/customProperty.py +1 -1
  743. metadata/generated/schema/type/dailyCount.py +1 -1
  744. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  745. metadata/generated/schema/type/entityHierarchy.py +1 -1
  746. metadata/generated/schema/type/entityHistory.py +1 -1
  747. metadata/generated/schema/type/entityLineage.py +1 -1
  748. metadata/generated/schema/type/entityProfile.py +1 -1
  749. metadata/generated/schema/type/entityReference.py +1 -1
  750. metadata/generated/schema/type/entityReferenceList.py +1 -1
  751. metadata/generated/schema/type/entityRelationship/__init__.py +1 -1
  752. metadata/generated/schema/type/entityRelationship/nodeInformation.py +1 -1
  753. metadata/generated/schema/type/entityUsage.py +1 -1
  754. metadata/generated/schema/type/filterPattern.py +1 -1
  755. metadata/generated/schema/type/function.py +1 -1
  756. metadata/generated/schema/type/include.py +1 -1
  757. metadata/generated/schema/type/jdbcConnection.py +1 -1
  758. metadata/generated/schema/type/layerPaging.py +1 -1
  759. metadata/generated/schema/type/lifeCycle.py +1 -1
  760. metadata/generated/schema/type/paging.py +1 -1
  761. metadata/generated/schema/type/personaPreferences.py +1 -1
  762. metadata/generated/schema/type/profile.py +1 -1
  763. metadata/generated/schema/type/queryParserData.py +1 -1
  764. metadata/generated/schema/type/reaction.py +1 -1
  765. metadata/generated/schema/type/schedule.py +1 -1
  766. metadata/generated/schema/type/schema.py +1 -1
  767. metadata/generated/schema/type/tableQuery.py +1 -1
  768. metadata/generated/schema/type/tableUsageCount.py +1 -1
  769. metadata/generated/schema/type/tagLabel.py +1 -1
  770. metadata/generated/schema/type/usageDetails.py +1 -1
  771. metadata/generated/schema/type/usageRequest.py +1 -1
  772. metadata/generated/schema/type/votes.py +1 -1
  773. metadata/ingestion/ometa/mixins/es_mixin.py +5 -1
  774. metadata/ingestion/source/database/databricks/client.py +120 -0
  775. metadata/ingestion/source/database/unitycatalog/lineage.py +3 -2
  776. metadata/ingestion/source/pipeline/databrickspipeline/connection.py +1 -0
  777. metadata/ingestion/source/pipeline/databrickspipeline/kafka_parser.py +347 -0
  778. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +720 -36
  779. metadata/ingestion/source/pipeline/databrickspipeline/models.py +19 -3
  780. metadata/ingestion/source/pipeline/kafkaconnect/client.py +62 -18
  781. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +1175 -101
  782. metadata/ingestion/source/pipeline/kafkaconnect/models.py +3 -0
  783. metadata/utils/fqn.py +59 -2
  784. {openmetadata_ingestion-1.9.13.1.dist-info → openmetadata_ingestion-1.9.14.0.dist-info}/METADATA +536 -536
  785. {openmetadata_ingestion-1.9.13.1.dist-info → openmetadata_ingestion-1.9.14.0.dist-info}/RECORD +789 -786
  786. {openmetadata_ingestion-1.9.13.1.dist-info → openmetadata_ingestion-1.9.14.0.dist-info}/LICENSE +0 -0
  787. {openmetadata_ingestion-1.9.13.1.dist-info → openmetadata_ingestion-1.9.14.0.dist-info}/WHEEL +0 -0
  788. {openmetadata_ingestion-1.9.13.1.dist-info → openmetadata_ingestion-1.9.14.0.dist-info}/entry_points.txt +0 -0
  789. {openmetadata_ingestion-1.9.13.1.dist-info → openmetadata_ingestion-1.9.14.0.dist-info}/top_level.txt +0 -0
@@ -28,6 +28,7 @@ from metadata.generated.schema.entity.data.pipeline import (
28
28
  TaskStatus,
29
29
  )
30
30
  from metadata.generated.schema.entity.data.table import Table
31
+ from metadata.generated.schema.entity.data.topic import Topic
31
32
  from metadata.generated.schema.entity.services.connections.pipeline.databricksPipelineConnection import (
32
33
  DatabricksPipelineConnection,
33
34
  )
@@ -56,6 +57,10 @@ from metadata.ingestion.api.steps import InvalidSourceException
56
57
  from metadata.ingestion.lineage.sql_lineage import get_column_fqn
57
58
  from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
58
59
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
60
+ from metadata.ingestion.source.pipeline.databrickspipeline.kafka_parser import (
61
+ extract_dlt_table_names,
62
+ extract_kafka_sources,
63
+ )
59
64
  from metadata.ingestion.source.pipeline.databrickspipeline.models import (
60
65
  DataBrickPipelineDetails,
61
66
  DBRun,
@@ -86,6 +91,12 @@ class DatabrickspipelineSource(PipelineServiceSource):
86
91
  Pipeline metadata from Databricks Jobs API
87
92
  """
88
93
 
94
+ def __init__(self, config, metadata):
95
+ super().__init__(config, metadata)
96
+ # Cache for Databricks services to avoid repeated API calls
97
+ self._databricks_services_cached = False
98
+ self._databricks_services: List[str] = []
99
+
89
100
  @classmethod
90
101
  def create(
91
102
  cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
@@ -105,14 +116,30 @@ class DatabrickspipelineSource(PipelineServiceSource):
105
116
  yield DataBrickPipelineDetails(**workflow)
106
117
  except Exception as exc:
107
118
  logger.debug(traceback.format_exc())
108
- logger.error(f"Failed to get pipeline list due to : {exc}")
119
+ logger.error(f"Failed to get jobs list due to : {exc}")
120
+
121
+ # Fetch DLT pipelines directly (new)
122
+ try:
123
+ for pipeline in self.client.list_pipelines() or []:
124
+ try:
125
+ yield DataBrickPipelineDetails(**pipeline)
126
+ except Exception as exc:
127
+ logger.debug(f"Error creating DLT pipeline details: {exc}")
128
+ logger.debug(traceback.format_exc())
129
+ continue
130
+ except Exception as exc:
131
+ logger.debug(traceback.format_exc())
132
+ logger.warning(f"Failed to get DLT pipelines list due to : {exc}")
133
+
109
134
  return None
110
135
 
111
136
  def get_pipeline_name(
112
137
  self, pipeline_details: DataBrickPipelineDetails
113
138
  ) -> Optional[str]:
114
139
  try:
115
- return pipeline_details.settings.name
140
+ if pipeline_details.pipeline_id:
141
+ return pipeline_details.name
142
+ return pipeline_details.settings.name if pipeline_details.settings else None
116
143
  except Exception as exc:
117
144
  logger.debug(traceback.format_exc())
118
145
  logger.error(f"Failed to get pipeline name due to : {exc}")
@@ -124,17 +151,35 @@ class DatabrickspipelineSource(PipelineServiceSource):
124
151
  ) -> Iterable[Either[CreatePipelineRequest]]:
125
152
  """Method to Get Pipeline Entity"""
126
153
  try:
127
- description = pipeline_details.settings.description
154
+ if pipeline_details.pipeline_id:
155
+ description = None
156
+ display_name = pipeline_details.name
157
+ entity_name = str(pipeline_details.pipeline_id)
158
+ schedule_interval = None
159
+ else:
160
+ description = (
161
+ pipeline_details.settings.description
162
+ if pipeline_details.settings
163
+ else None
164
+ )
165
+ display_name = (
166
+ pipeline_details.settings.name
167
+ if pipeline_details.settings
168
+ else None
169
+ )
170
+ entity_name = str(pipeline_details.job_id)
171
+ schedule_interval = (
172
+ str(pipeline_details.settings.schedule.cron)
173
+ if pipeline_details.settings and pipeline_details.settings.schedule
174
+ else None
175
+ )
176
+
128
177
  pipeline_request = CreatePipelineRequest(
129
- name=EntityName(str(pipeline_details.job_id)),
130
- displayName=pipeline_details.settings.name,
178
+ name=EntityName(entity_name),
179
+ displayName=display_name,
131
180
  description=Markdown(description) if description else None,
132
181
  tasks=self.get_tasks(pipeline_details),
133
- scheduleInterval=(
134
- str(pipeline_details.settings.schedule.cron)
135
- if pipeline_details.settings.schedule
136
- else None
137
- ),
182
+ scheduleInterval=schedule_interval,
138
183
  service=FullyQualifiedEntityName(self.context.get().pipeline_service),
139
184
  )
140
185
  yield Either(right=pipeline_request)
@@ -170,31 +215,25 @@ class DatabrickspipelineSource(PipelineServiceSource):
170
215
 
171
216
  def get_tasks(self, pipeline_details: DataBrickPipelineDetails) -> List[Task]:
172
217
  try:
173
- task_list = []
174
- for run in self.client.get_job_runs(job_id=pipeline_details.job_id) or []:
175
- run = DBRun(**run)
176
- task_list.extend(
177
- [
178
- Task(
179
- name=str(task.name),
180
- taskType=pipeline_details.settings.task_type,
181
- sourceUrl=(
182
- SourceUrl(run.run_page_url)
183
- if run.run_page_url
184
- else None
185
- ),
186
- description=(
187
- Markdown(task.description) if task.description else None
188
- ),
189
- downstreamTasks=[
190
- depend_task.name
191
- for depend_task in task.depends_on or []
192
- ],
193
- )
194
- for task in run.tasks or []
195
- ]
218
+ if not pipeline_details.settings or not pipeline_details.settings.tasks:
219
+ return None
220
+
221
+ job_url = f"https://{self.service_connection.hostPort}/#job/{pipeline_details.job_id}"
222
+
223
+ return [
224
+ Task(
225
+ name=str(task.name),
226
+ taskType=pipeline_details.settings.task_type,
227
+ sourceUrl=SourceUrl(job_url),
228
+ description=(
229
+ Markdown(task.description) if task.description else None
230
+ ),
231
+ downstreamTasks=[
232
+ depend_task.name for depend_task in task.depends_on or []
233
+ ],
196
234
  )
197
- return task_list
235
+ for task in pipeline_details.settings.tasks
236
+ ]
198
237
  except Exception as exc:
199
238
  logger.debug(traceback.format_exc())
200
239
  logger.warning(f"Failed to get tasks list due to : {exc}")
@@ -204,6 +243,9 @@ class DatabrickspipelineSource(PipelineServiceSource):
204
243
  self, pipeline_details: DataBrickPipelineDetails
205
244
  ) -> Iterable[OMetaPipelineStatus]:
206
245
  try:
246
+ if not pipeline_details.job_id:
247
+ return
248
+
207
249
  for run in self.client.get_job_runs(job_id=pipeline_details.job_id) or []:
208
250
  run = DBRun(**run)
209
251
  task_status = [
@@ -241,7 +283,7 @@ class DatabrickspipelineSource(PipelineServiceSource):
241
283
  except Exception as exc:
242
284
  yield Either(
243
285
  left=StackTraceError(
244
- name=pipeline_details.job_id,
286
+ name=pipeline_details.id,
245
287
  error=f"Failed to yield pipeline status: {exc}",
246
288
  stackTrace=traceback.format_exc(),
247
289
  )
@@ -300,6 +342,641 @@ class DatabrickspipelineSource(PipelineServiceSource):
300
342
  )
301
343
  return processed_column_lineage or []
302
344
 
345
+ def _get_databricks_services(self) -> List[str]:
346
+ """
347
+ Get list of all Databricks/Unity Catalog database service names from OpenMetadata
348
+
349
+ Caches the result to avoid repeated API calls during lineage extraction.
350
+ Returns list of service names that are of type Databricks or UnityCatalog.
351
+ """
352
+ # Return cached services if already fetched
353
+ if self._databricks_services_cached:
354
+ logger.debug(
355
+ f"Using cached Databricks services: {self._databricks_services}"
356
+ )
357
+ return self._databricks_services
358
+
359
+ try:
360
+ from metadata.generated.schema.entity.services.databaseService import (
361
+ DatabaseService,
362
+ )
363
+
364
+ logger.info("Fetching Databricks/Unity Catalog database services...")
365
+
366
+ # List all database services
367
+ services = self.metadata.list_all_entities(
368
+ entity=DatabaseService, fields=["serviceType"]
369
+ )
370
+
371
+ databricks_services = []
372
+ for service in services or []:
373
+ try:
374
+ service_type = (
375
+ service.serviceType.value
376
+ if hasattr(service, "serviceType")
377
+ else None
378
+ )
379
+ service_name = (
380
+ service.name.root
381
+ if hasattr(service.name, "root")
382
+ else service.name
383
+ )
384
+
385
+ logger.debug(f" Service: {service_name}, Type: {service_type}")
386
+
387
+ # Check if it's a Databricks or Unity Catalog service
388
+ if service_type and service_type.lower() in [
389
+ "databricks",
390
+ "unitycatalog",
391
+ ]:
392
+ databricks_services.append(service_name)
393
+ logger.debug(
394
+ f" āœ“ Databricks/Unity Catalog service: {service_name}"
395
+ )
396
+
397
+ except Exception as exc:
398
+ logger.debug(f" Error processing service: {exc}")
399
+ continue
400
+
401
+ # Cache the results
402
+ self._databricks_services = databricks_services
403
+ self._databricks_services_cached = True
404
+
405
+ logger.info(
406
+ f"Found {len(databricks_services)} Databricks/Unity Catalog service(s): {databricks_services}"
407
+ )
408
+ return databricks_services
409
+
410
+ except Exception as exc:
411
+ logger.warning(f"Error fetching Databricks services: {exc}")
412
+ logger.debug(traceback.format_exc())
413
+ # Cache empty list to avoid repeated failures
414
+ self._databricks_services = []
415
+ self._databricks_services_cached = True
416
+ return []
417
+
418
+ def _find_dlt_table(
419
+ self, table_name: str, catalog: Optional[str], schema: Optional[str]
420
+ ) -> Optional[Table]:
421
+ """
422
+ Find DLT table in OpenMetadata by iterating through Databricks services
423
+
424
+ DLT pipelines only write to Databricks/Unity Catalog Delta tables.
425
+ Uses catalog.schema.table_name from DLT spec to build FQN for each Databricks service.
426
+
427
+ Args:
428
+ table_name: Table name extracted from notebook code
429
+ catalog: Catalog name from DLT pipeline spec (database in OpenMetadata)
430
+ schema: Schema name from DLT pipeline spec
431
+
432
+ Returns:
433
+ Table entity if found, None otherwise
434
+ """
435
+ try:
436
+ logger.debug(
437
+ f"Searching for DLT table: catalog={catalog}, schema={schema}, table={table_name}"
438
+ )
439
+
440
+ # Get all Databricks/Unity Catalog services (uses cache)
441
+ databricks_services = self._get_databricks_services()
442
+
443
+ if not databricks_services:
444
+ logger.warning(
445
+ "No Databricks/Unity Catalog services found in OpenMetadata"
446
+ )
447
+ # Fall back to configured dbServiceNames if available
448
+ databricks_services = self.get_db_service_names() or []
449
+ if databricks_services:
450
+ logger.info(
451
+ f"Using configured database services: {databricks_services}"
452
+ )
453
+
454
+ if not databricks_services:
455
+ return None
456
+
457
+ logger.debug(f"Trying {len(databricks_services)} Databricks service(s)")
458
+
459
+ # Try each Databricks service with exact case
460
+ for service_name in databricks_services:
461
+ try:
462
+ # Build FQN: service.catalog.schema.table
463
+ table_fqn = fqn.build(
464
+ metadata=self.metadata,
465
+ entity_type=Table,
466
+ service_name=service_name,
467
+ database_name=catalog,
468
+ schema_name=schema,
469
+ table_name=table_name,
470
+ )
471
+
472
+ logger.debug(f" Trying FQN: {table_fqn}")
473
+
474
+ # Try to get table
475
+ table = self.metadata.get_by_name(entity=Table, fqn=table_fqn)
476
+ if table:
477
+ logger.info(f"Found DLT table with FQN: {table_fqn}")
478
+ return table
479
+
480
+ except Exception as exc:
481
+ logger.debug(f" Error checking service {service_name}: {exc}")
482
+ continue
483
+
484
+ # If no exact match found, try case-insensitive (Unity Catalog lowercases table names)
485
+ logger.debug("Exact match not found, trying lowercase variants...")
486
+ for service_name in databricks_services:
487
+ try:
488
+ table_fqn = fqn.build(
489
+ metadata=self.metadata,
490
+ entity_type=Table,
491
+ service_name=service_name,
492
+ database_name=catalog.lower() if catalog else None,
493
+ schema_name=schema.lower() if schema else None,
494
+ table_name=table_name.lower(),
495
+ )
496
+
497
+ logger.debug(f" Trying lowercase FQN: {table_fqn}")
498
+
499
+ table = self.metadata.get_by_name(entity=Table, fqn=table_fqn)
500
+ if table:
501
+ logger.info(
502
+ f"Found DLT table with FQN (lowercase): {table_fqn}"
503
+ )
504
+ return table
505
+
506
+ except Exception as exc:
507
+ logger.debug(
508
+ f" Error checking service {service_name} (lowercase): {exc}"
509
+ )
510
+ continue
511
+
512
+ except Exception as exc:
513
+ logger.debug(f"Could not find DLT table {table_name}: {exc}")
514
+ logger.debug(traceback.format_exc())
515
+
516
+ logger.warning(
517
+ f"DLT table not found: {catalog}.{schema}.{table_name}. "
518
+ f"Ensure the table is ingested from a Databricks/Unity Catalog database service."
519
+ )
520
+ return None
521
+
522
+ def _find_kafka_topic(self, topic_name: str) -> Optional[Topic]:
523
+ """
524
+ Find Kafka topic in OpenMetadata using Elasticsearch search
525
+
526
+ Handles topic names with dots (e.g., "dev.ern.cashout.moneyRequest_v1")
527
+ by searching with wildcard pattern: *.topic_name
528
+
529
+ Topic FQN format: MessagingServiceName.TopicName
530
+ When TopicName has dots, it's quoted: MessagingServiceName."dev.ern.topic"
531
+ """
532
+ try:
533
+ logger.debug(
534
+ f"Searching for topic {topic_name} across all messaging services"
535
+ )
536
+
537
+ # Use ES search with wildcard pattern to find topic regardless of service
538
+ # Pattern: *.topic_name or *."topic.with.dots"
539
+ from metadata.utils.elasticsearch import ES_INDEX_MAP
540
+
541
+ # Quote the topic name if it contains dots
542
+ search_topic_name = f'"{topic_name}"' if "." in topic_name else topic_name
543
+ search_pattern = f"*.{search_topic_name}"
544
+
545
+ logger.debug(f"Using search pattern: {search_pattern}")
546
+
547
+ # Search using ES field query for FQN pattern matching
548
+ query_string = f"/search/fieldQuery?fieldName=fullyQualifiedName&fieldValue={search_pattern}&from=0&size=10&index={ES_INDEX_MAP['Topic']}&deleted=false"
549
+
550
+ try:
551
+ response = self.metadata.client.get(query_string)
552
+ if response and response.get("hits", {}).get("hits"):
553
+ # Get the first matching topic
554
+ hit = response["hits"]["hits"][0]
555
+ topic_fqn = hit["_source"]["fullyQualifiedName"]
556
+
557
+ # Fetch full topic entity
558
+ topic = self.metadata.get_by_name(entity=Topic, fqn=topic_fqn)
559
+ if topic:
560
+ logger.info(f"Found topic {topic_name} with FQN: {topic_fqn}")
561
+ return topic
562
+ except Exception as search_exc:
563
+ logger.debug(f"ES search error: {search_exc}")
564
+ logger.debug(traceback.format_exc())
565
+
566
+ except Exception as exc:
567
+ logger.debug(f"Could not find topic {topic_name}: {exc}")
568
+ logger.debug(traceback.format_exc())
569
+
570
+ logger.warning(
571
+ f"Topic {topic_name} not found in OpenMetadata. "
572
+ f"Ensure the topic is ingested from a messaging service."
573
+ )
574
+ return None
575
+
576
+ def _yield_kafka_lineage(
577
+ self, pipeline_details: DataBrickPipelineDetails, pipeline_entity: Pipeline
578
+ ) -> Iterable[Either[AddLineageRequest]]:
579
+ """
580
+ Extract and yield Kafka topic lineage from DLT pipeline source code
581
+ Only processes DLT pipelines (with pipeline_id), not regular jobs
582
+ Creates lineage: Kafka topic -> DLT table (with pipeline in lineageDetails)
583
+ """
584
+ try:
585
+ logger.info("=" * 80)
586
+ logger.info(f"KAFKA LINEAGE EXTRACTION STARTED")
587
+ logger.info(
588
+ f"Pipeline: {pipeline_details.name if hasattr(pipeline_details, 'name') else 'N/A'}"
589
+ )
590
+ logger.info(f"Job ID: {pipeline_details.job_id}")
591
+ logger.info(f"Pipeline ID: {pipeline_details.pipeline_id}")
592
+ logger.info("=" * 80)
593
+
594
+ # Only process DLT pipelines - check for pipeline_id
595
+ # For pure DLT pipelines, pipeline_id is set directly
596
+ pipeline_id = pipeline_details.pipeline_id
597
+
598
+ # For jobs with DLT pipeline tasks, check settings
599
+ if not pipeline_id and pipeline_details.settings:
600
+ try:
601
+ tasks = pipeline_details.settings.tasks
602
+ logger.debug(
603
+ f"Checking for DLT pipeline in job {pipeline_details.job_id}: "
604
+ f"{len(tasks) if tasks else 0} tasks found"
605
+ )
606
+
607
+ if tasks:
608
+ for task in tasks:
609
+ logger.debug(
610
+ f"Task: {task.name}, has pipeline_task: {task.pipeline_task is not None}"
611
+ )
612
+ # Check for direct DLT pipeline task
613
+ if task.pipeline_task and task.pipeline_task.pipeline_id:
614
+ pipeline_id = task.pipeline_task.pipeline_id
615
+ logger.info(
616
+ f"āœ“ Found DLT pipeline_id from job task: {pipeline_id} for job {pipeline_details.job_id}"
617
+ )
618
+ break
619
+ except Exception as exc:
620
+ logger.debug(f"Error checking for pipeline tasks: {exc}")
621
+ logger.debug(traceback.format_exc())
622
+
623
+ # Only process if we have a DLT pipeline_id
624
+ if not pipeline_id:
625
+ logger.info(
626
+ f"āŠ— No DLT pipeline_id found - skipping Kafka lineage extraction"
627
+ )
628
+ logger.info(f" Job ID: {pipeline_details.job_id}")
629
+ logger.info(f" Pipeline ID: {pipeline_details.pipeline_id}")
630
+ logger.info("=" * 80)
631
+ return
632
+
633
+ logger.info(f"āœ“ Processing Kafka lineage for DLT pipeline: {pipeline_id}")
634
+
635
+ # Get pipeline configuration and extract target catalog/schema
636
+ target_catalog = None
637
+ target_schema = None
638
+ notebook_paths = []
639
+ try:
640
+ logger.info(f"⟳ Fetching pipeline configuration for {pipeline_id}...")
641
+ pipeline_config = self.client.get_pipeline_details(pipeline_id)
642
+ if not pipeline_config:
643
+ logger.warning(
644
+ f"āœ— Could not fetch pipeline config for {pipeline_id}"
645
+ )
646
+ logger.info("=" * 80)
647
+ return
648
+
649
+ logger.debug(f"āœ“ Pipeline config fetched successfully")
650
+ logger.debug(f" Config keys: {list(pipeline_config.keys())}")
651
+
652
+ # Extract spec for detailed configuration
653
+ spec = pipeline_config.get("spec", {})
654
+ logger.info(f"āœ“ Pipeline spec extracted")
655
+ logger.info(f" Spec keys: {list(spec.keys()) if spec else 'None'}")
656
+
657
+ # Extract target catalog and schema for DLT tables
658
+ target_catalog = spec.get("catalog") if spec else None
659
+ # Schema can be in 'target' or 'schema' field
660
+ target_schema = (
661
+ spec.get("target") or spec.get("schema") if spec else None
662
+ )
663
+ logger.info(f"āœ“ DLT Target Location:")
664
+ logger.info(f" Catalog: {target_catalog or 'NOT SET'}")
665
+ logger.info(f" Schema: {target_schema or 'NOT SET'}")
666
+
667
+ # Extract notebook/file paths from libraries in spec
668
+ notebook_paths = []
669
+ if spec and "libraries" in spec:
670
+ libraries = spec["libraries"]
671
+ logger.info(
672
+ f"⟳ Extracting notebook paths from {len(libraries)} libraries..."
673
+ )
674
+ for idx, lib in enumerate(libraries):
675
+ logger.debug(f" Library {idx + 1}: {lib}")
676
+ # Library can be dict or have different structures
677
+ if isinstance(lib, dict):
678
+ # Check for notebook path
679
+ if "notebook" in lib and lib["notebook"]:
680
+ notebook = lib["notebook"]
681
+ if isinstance(notebook, dict):
682
+ path = notebook.get("path")
683
+ else:
684
+ path = notebook
685
+ if path:
686
+ notebook_paths.append(path)
687
+ logger.info(f" āœ“ Found notebook: {path}")
688
+ # Check for glob pattern
689
+ elif "glob" in lib and lib["glob"]:
690
+ glob_pattern = lib["glob"]
691
+ if isinstance(glob_pattern, dict):
692
+ include_pattern = glob_pattern.get("include")
693
+ if include_pattern:
694
+ # Convert glob pattern to directory path
695
+ # e.g., "/path/**" -> "/path/"
696
+ base_path = include_pattern.replace(
697
+ "/**", "/"
698
+ ).replace("**", "")
699
+ notebook_paths.append(base_path)
700
+ logger.info(
701
+ f" āœ“ Found glob pattern, using base path: {base_path}"
702
+ )
703
+
704
+ # Also check for source path in spec configuration
705
+ if not notebook_paths and spec:
706
+ source_path = None
707
+
708
+ # Check spec.configuration for source path
709
+ if "configuration" in spec:
710
+ config = spec["configuration"]
711
+ source_path = config.get("source_path") or config.get("source")
712
+
713
+ # Check development settings
714
+ if not source_path and "development" in spec:
715
+ source_path = spec["development"].get("source_path")
716
+
717
+ if source_path:
718
+ logger.info(
719
+ f" āœ“ Found source_path in pipeline spec: {source_path}"
720
+ )
721
+ notebook_paths.append(source_path)
722
+
723
+ logger.info(f"āœ“ Total notebook paths found: {len(notebook_paths)}")
724
+ for idx, path in enumerate(notebook_paths):
725
+ logger.info(f" {idx + 1}. {path}")
726
+ except Exception as exc:
727
+ logger.error(
728
+ f"āœ— Failed to fetch pipeline config for {pipeline_id}: {exc}"
729
+ )
730
+ logger.debug(traceback.format_exc())
731
+ logger.info("=" * 80)
732
+ return
733
+
734
+ if not notebook_paths:
735
+ logger.warning(f"āœ— No notebook paths found for pipeline {pipeline_id}")
736
+ logger.info(
737
+ " Cannot extract Kafka lineage without notebook source code"
738
+ )
739
+ logger.info("=" * 80)
740
+ return
741
+
742
+ # Expand directories to individual notebook files
743
+ logger.info(f"⟳ Expanding directory paths to individual notebooks...")
744
+ expanded_paths = []
745
+ for path in notebook_paths:
746
+ # If path ends with /, it's a directory - list all notebooks in it
747
+ if path.endswith("/"):
748
+ try:
749
+ logger.debug(f" Listing directory: {path}")
750
+ # List workspace directory to get all notebooks
751
+ objects = self.client.list_workspace_objects(path)
752
+ if objects:
753
+ for obj in objects:
754
+ obj_type = obj.get("object_type")
755
+ if obj_type in ("NOTEBOOK", "FILE"):
756
+ notebook_path = obj.get("path")
757
+ if notebook_path:
758
+ expanded_paths.append(notebook_path)
759
+ logger.info(
760
+ f" āœ“ Found {obj_type.lower()}: {notebook_path}"
761
+ )
762
+ if not expanded_paths:
763
+ logger.debug(f" āŠ— No notebooks found in directory {path}")
764
+ except Exception as exc:
765
+ logger.warning(f" āœ— Could not list directory {path}: {exc}")
766
+ logger.debug(traceback.format_exc())
767
+ else:
768
+ expanded_paths.append(path)
769
+ logger.debug(f" Direct path: {path}")
770
+
771
+ logger.info(f"āœ“ Total notebooks to process: {len(expanded_paths)}")
772
+
773
+ # Process each notebook to extract Kafka sources and DLT tables
774
+ logger.info("-" * 80)
775
+ logger.info(f"PROCESSING NOTEBOOKS FOR KAFKA LINEAGE")
776
+ logger.info("-" * 80)
777
+
778
+ for idx, lib_path in enumerate(expanded_paths, 1):
779
+ try:
780
+ logger.info(f"\nšŸ““ Notebook {idx}/{len(expanded_paths)}: {lib_path}")
781
+ logger.info(f"⟳ Exporting notebook source code...")
782
+
783
+ source_code = self.client.export_notebook_source(lib_path)
784
+ if not source_code:
785
+ logger.warning(f"āœ— Could not export source for {lib_path}")
786
+ continue
787
+
788
+ logger.info(
789
+ f"āœ“ Source code exported ({len(source_code)} characters)"
790
+ )
791
+
792
+ # Log full source code for debugging
793
+ logger.debug(f" ===== FULL NOTEBOOK SOURCE CODE =====")
794
+ for i, line in enumerate(source_code.split("\n"), 1):
795
+ logger.debug(f" {i:3d}: {line}")
796
+ logger.debug(f" ===== END OF SOURCE CODE =====")
797
+
798
+ # Extract Kafka topics
799
+ logger.info(f"⟳ Parsing Kafka sources from notebook...")
800
+ logger.debug(f" Looking for patterns:")
801
+ logger.debug(
802
+ f" - Kafka: .format('kafka')...option('subscribe', 'topic')"
803
+ )
804
+ logger.debug(f" - DLT: @dlt.table(name='table_name')")
805
+ kafka_sources = extract_kafka_sources(source_code)
806
+ if kafka_sources:
807
+ topics_found = [t for ks in kafka_sources for t in ks.topics]
808
+ logger.info(
809
+ f"āœ“ Found {len(kafka_sources)} Kafka source(s) with {len(topics_found)} topic(s):"
810
+ )
811
+ for ks_idx, ks in enumerate(kafka_sources, 1):
812
+ logger.info(f" Kafka Source {ks_idx}:")
813
+ logger.info(f" Topics: {ks.topics}")
814
+ logger.info(
815
+ f" Bootstrap Servers: {ks.bootstrap_servers or 'NOT SET'}"
816
+ )
817
+ logger.info(
818
+ f" Group ID Prefix: {ks.group_id_prefix or 'NOT SET'}"
819
+ )
820
+ else:
821
+ logger.info(f"āŠ— No Kafka sources found in notebook")
822
+
823
+ # Extract DLT table names
824
+ logger.info(f"⟳ Parsing DLT table names from notebook...")
825
+ dlt_table_names = extract_dlt_table_names(source_code)
826
+ if dlt_table_names:
827
+ logger.info(
828
+ f"āœ“ Found {len(dlt_table_names)} DLT table(s): {dlt_table_names}"
829
+ )
830
+ else:
831
+ logger.info(f"āŠ— No DLT tables found in notebook")
832
+
833
+ if not dlt_table_names or not kafka_sources:
834
+ logger.warning(
835
+ f"āŠ— Skipping lineage for this notebook - need both Kafka sources AND DLT tables"
836
+ )
837
+ logger.info(
838
+ f" Kafka sources: {len(kafka_sources) if kafka_sources else 0}"
839
+ )
840
+ logger.info(
841
+ f" DLT tables: {len(dlt_table_names) if dlt_table_names else 0}"
842
+ )
843
+ continue
844
+
845
+ logger.info(
846
+ f"āœ“ Notebook has both Kafka sources and DLT tables - creating lineage..."
847
+ )
848
+
849
+ # Create lineage for each Kafka topic -> DLT table
850
+ logger.info(f"\n⟳ Creating lineage edges...")
851
+ lineage_created = 0
852
+
853
+ for kafka_config in kafka_sources:
854
+ for topic_name in kafka_config.topics:
855
+ try:
856
+ logger.info(f"\n šŸ” Processing topic: {topic_name}")
857
+
858
+ # Use smart discovery to find topic
859
+ logger.info(
860
+ f" ⟳ Searching for topic in OpenMetadata..."
861
+ )
862
+ kafka_topic = self._find_kafka_topic(topic_name)
863
+
864
+ if not kafka_topic:
865
+ logger.warning(
866
+ f" āœ— Kafka topic '{topic_name}' not found in OpenMetadata"
867
+ )
868
+ logger.info(
869
+ f" šŸ’” Make sure the topic is ingested from a messaging service"
870
+ )
871
+ continue
872
+
873
+ logger.info(
874
+ f" āœ“ Topic found: {kafka_topic.fullyQualifiedName.root if hasattr(kafka_topic.fullyQualifiedName, 'root') else kafka_topic.fullyQualifiedName}"
875
+ )
876
+
877
+ # Create lineage to each DLT table in this notebook
878
+ for table_name in dlt_table_names:
879
+ logger.info(
880
+ f" šŸ” Processing target table: {table_name}"
881
+ )
882
+ logger.info(
883
+ f" ⟳ Searching in Databricks/Unity Catalog services..."
884
+ )
885
+
886
+ # Use cached Databricks service lookup
887
+ target_table_entity = self._find_dlt_table(
888
+ table_name=table_name,
889
+ catalog=target_catalog,
890
+ schema=target_schema,
891
+ )
892
+
893
+ if target_table_entity:
894
+ table_fqn = (
895
+ target_table_entity.fullyQualifiedName.root
896
+ if hasattr(
897
+ target_table_entity.fullyQualifiedName,
898
+ "root",
899
+ )
900
+ else target_table_entity.fullyQualifiedName
901
+ )
902
+ logger.info(
903
+ f" āœ“ Target table found: {table_fqn}"
904
+ )
905
+ logger.info(
906
+ f" āœ… Creating lineage: {topic_name} -> {table_fqn}"
907
+ )
908
+ logger.info(f" Pipeline: {pipeline_id}")
909
+
910
+ yield Either(
911
+ right=AddLineageRequest(
912
+ edge=EntitiesEdge(
913
+ fromEntity=EntityReference(
914
+ id=kafka_topic.id,
915
+ type="topic",
916
+ ),
917
+ toEntity=EntityReference(
918
+ id=target_table_entity.id.root
919
+ if hasattr(
920
+ target_table_entity.id,
921
+ "root",
922
+ )
923
+ else target_table_entity.id,
924
+ type="table",
925
+ ),
926
+ lineageDetails=LineageDetails(
927
+ pipeline=EntityReference(
928
+ id=pipeline_entity.id.root,
929
+ type="pipeline",
930
+ ),
931
+ source=LineageSource.PipelineLineage,
932
+ ),
933
+ )
934
+ )
935
+ )
936
+ lineage_created += 1
937
+ else:
938
+ logger.warning(
939
+ f" āœ— Target table '{table_name}' not found in OpenMetadata"
940
+ )
941
+ logger.info(
942
+ f" šŸ’” Expected location: {target_catalog}.{target_schema}.{table_name}"
943
+ )
944
+ logger.info(
945
+ f" šŸ’” Make sure the table is ingested from a Databricks/Unity Catalog database service"
946
+ )
947
+
948
+ except Exception as exc:
949
+ logger.error(
950
+ f" āœ— Failed to process topic {topic_name}: {exc}"
951
+ )
952
+ logger.debug(traceback.format_exc())
953
+ continue
954
+
955
+ logger.info(
956
+ f"\nāœ“ Lineage edges created for this notebook: {lineage_created}"
957
+ )
958
+ except Exception as exc:
959
+ logger.error(f"āœ— Failed to process notebook {lib_path}: {exc}")
960
+ logger.debug(traceback.format_exc())
961
+ logger.info(f" Continuing with next notebook...")
962
+ continue
963
+
964
+ logger.info("\n" + "=" * 80)
965
+ logger.info(f"KAFKA LINEAGE EXTRACTION COMPLETED")
966
+ logger.info(
967
+ f"Pipeline: {pipeline_details.name if hasattr(pipeline_details, 'name') else 'N/A'}"
968
+ )
969
+ logger.info("=" * 80)
970
+
971
+ except Exception as exc:
972
+ logger.error(f"āœ— Unexpected error in Kafka lineage extraction: {exc}")
973
+ logger.error(f" Job ID: {pipeline_details.job_id}")
974
+ logger.error(
975
+ f" Pipeline ID: {pipeline_details.pipeline_id if hasattr(pipeline_details, 'pipeline_id') else 'N/A'}"
976
+ )
977
+ logger.debug(traceback.format_exc())
978
+ logger.info("=" * 80)
979
+
303
980
  def yield_pipeline_lineage_details(
304
981
  self, pipeline_details: DataBrickPipelineDetails
305
982
  ) -> Iterable[Either[AddLineageRequest]]:
@@ -315,6 +992,13 @@ class DatabrickspipelineSource(PipelineServiceSource):
315
992
  entity=Pipeline, fqn=pipeline_fqn
316
993
  )
317
994
 
995
+ # Extract Kafka topic lineage from source code
996
+ # Works automatically - no configuration required!
997
+ yield from self._yield_kafka_lineage(pipeline_details, pipeline_entity)
998
+
999
+ if not pipeline_details.job_id:
1000
+ return
1001
+
318
1002
  table_lineage_list = self.client.get_table_lineage(
319
1003
  job_id=pipeline_details.job_id
320
1004
  )
@@ -409,7 +1093,7 @@ class DatabrickspipelineSource(PipelineServiceSource):
409
1093
  except Exception as exc:
410
1094
  yield Either(
411
1095
  left=StackTraceError(
412
- name=pipeline_details.job_id,
1096
+ name=pipeline_details.id,
413
1097
  error=f"Wild error ingesting pipeline lineage {pipeline_details} - {exc}",
414
1098
  stackTrace=traceback.format_exc(),
415
1099
  )