openmetadata-ingestion 1.9.13.0__py3-none-any.whl → 1.10.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (960) hide show
  1. metadata/cli/common.py +0 -1
  2. metadata/examples/workflows/bigquery.yaml +1 -0
  3. metadata/examples/workflows/databricks.yaml +9 -1
  4. metadata/examples/workflows/databricks_usage.yaml +7 -1
  5. metadata/examples/workflows/metabase.yaml +1 -0
  6. metadata/examples/workflows/unity_catalog.yaml +7 -1
  7. metadata/examples/workflows/unity_catalog_usage.yaml +7 -1
  8. metadata/generated/antlr/EntityLinkLexer.py +406 -432
  9. metadata/generated/schema/analytics/__init__.py +1 -1
  10. metadata/generated/schema/analytics/basic.py +1 -1
  11. metadata/generated/schema/analytics/reportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  16. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  17. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  20. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  21. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  22. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  23. metadata/generated/schema/api/__init__.py +1 -1
  24. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  25. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  26. metadata/generated/schema/api/analytics/__init__.py +1 -1
  27. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  28. metadata/generated/schema/api/automations/__init__.py +1 -1
  29. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  30. metadata/generated/schema/api/bulkAssets.py +1 -1
  31. metadata/generated/schema/api/classification/__init__.py +1 -1
  32. metadata/generated/schema/api/classification/createClassification.py +52 -1
  33. metadata/generated/schema/api/classification/createTag.py +29 -2
  34. metadata/generated/schema/api/classification/createTagWithRecognizers.py +67 -0
  35. metadata/generated/schema/api/classification/loadTags.py +1 -1
  36. metadata/generated/schema/api/configuration/__init__.py +3 -0
  37. metadata/generated/schema/api/configuration/rdfConfiguration.py +47 -0
  38. metadata/generated/schema/api/createBot.py +1 -1
  39. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  40. metadata/generated/schema/api/createType.py +1 -1
  41. metadata/generated/schema/api/data/__init__.py +1 -1
  42. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  43. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  44. metadata/generated/schema/api/data/createChart.py +1 -1
  45. metadata/generated/schema/api/data/createContainer.py +1 -1
  46. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  47. metadata/generated/schema/api/data/createDashboard.py +1 -1
  48. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  49. metadata/generated/schema/api/data/createDataContract.py +33 -3
  50. metadata/generated/schema/api/data/createDatabase.py +1 -1
  51. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  52. metadata/generated/schema/api/data/createDirectory.py +1 -1
  53. metadata/generated/schema/api/data/createEntityProfile.py +1 -1
  54. metadata/generated/schema/api/data/createFile.py +1 -1
  55. metadata/generated/schema/api/data/createGlossary.py +1 -1
  56. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  57. metadata/generated/schema/api/data/createMetric.py +8 -1
  58. metadata/generated/schema/api/data/createMlModel.py +1 -1
  59. metadata/generated/schema/api/data/createPipeline.py +1 -1
  60. metadata/generated/schema/api/data/createQuery.py +1 -1
  61. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  62. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  63. metadata/generated/schema/api/data/createSpreadsheet.py +9 -1
  64. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  65. metadata/generated/schema/api/data/createTable.py +1 -1
  66. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  67. metadata/generated/schema/api/data/createTopic.py +1 -1
  68. metadata/generated/schema/api/data/createWorksheet.py +1 -1
  69. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  70. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  71. metadata/generated/schema/api/data/updateColumn.py +1 -1
  72. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  73. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  74. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  75. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  76. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  77. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  78. metadata/generated/schema/api/docStore/__init__.py +1 -1
  79. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  80. metadata/generated/schema/api/domains/__init__.py +1 -1
  81. metadata/generated/schema/api/domains/createDataProduct.py +7 -1
  82. metadata/generated/schema/api/domains/createDomain.py +1 -1
  83. metadata/generated/schema/api/entityRelationship/__init__.py +1 -1
  84. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +1 -1
  85. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +1 -1
  86. metadata/generated/schema/api/entityRelationship/relationshipRef.py +1 -1
  87. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +1 -1
  88. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +1 -1
  89. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +1 -1
  90. metadata/generated/schema/api/events/__init__.py +3 -0
  91. metadata/generated/schema/api/events/createNotificationTemplate.py +61 -0
  92. metadata/generated/schema/api/events/notificationTemplateValidationRequest.py +30 -0
  93. metadata/generated/schema/api/events/notificationTemplateValidationResponse.py +36 -0
  94. metadata/generated/schema/api/feed/__init__.py +1 -1
  95. metadata/generated/schema/api/feed/closeTask.py +1 -1
  96. metadata/generated/schema/api/feed/createPost.py +1 -1
  97. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  98. metadata/generated/schema/api/feed/createThread.py +1 -1
  99. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  100. metadata/generated/schema/api/feed/threadCount.py +1 -1
  101. metadata/generated/schema/api/governance/__init__.py +1 -1
  102. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  103. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  104. metadata/generated/schema/api/lineage/__init__.py +1 -1
  105. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  106. metadata/generated/schema/api/lineage/entityCountLineageRequest.py +66 -0
  107. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  108. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  109. metadata/generated/schema/api/lineage/lineagePaginationInfo.py +57 -0
  110. metadata/generated/schema/api/lineage/nodeInformation.py +9 -1
  111. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  112. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  113. metadata/generated/schema/api/mcp/__init__.py +1 -1
  114. metadata/generated/schema/api/mcp/mcpSearchResponse.py +1 -1
  115. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  116. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  117. metadata/generated/schema/api/policies/__init__.py +1 -1
  118. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  119. metadata/generated/schema/api/rdf/__init__.py +3 -0
  120. metadata/generated/schema/api/rdf/sparqlQuery.py +57 -0
  121. metadata/generated/schema/api/rdf/sparqlResponse.py +56 -0
  122. metadata/generated/schema/api/scim/__init__.py +1 -1
  123. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  124. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  125. metadata/generated/schema/api/scim/scimUser.py +1 -1
  126. metadata/generated/schema/api/search/__init__.py +1 -1
  127. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  128. metadata/generated/schema/api/services/__init__.py +1 -1
  129. metadata/generated/schema/api/services/createApiService.py +1 -1
  130. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  131. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  132. metadata/generated/schema/api/services/createDriveService.py +9 -2
  133. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  134. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  135. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  136. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  137. metadata/generated/schema/api/services/createSearchService.py +1 -1
  138. metadata/generated/schema/api/services/createSecurityService.py +1 -1
  139. metadata/generated/schema/api/services/createStorageService.py +1 -1
  140. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  141. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +8 -1
  142. metadata/generated/schema/api/setOwner.py +1 -1
  143. metadata/generated/schema/api/teams/__init__.py +1 -1
  144. metadata/generated/schema/api/teams/createPersona.py +1 -1
  145. metadata/generated/schema/api/teams/createRole.py +1 -1
  146. metadata/generated/schema/api/teams/createTeam.py +1 -1
  147. metadata/generated/schema/api/teams/createUser.py +1 -1
  148. metadata/generated/schema/api/tests/__init__.py +1 -1
  149. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  150. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  151. metadata/generated/schema/api/tests/createTestCase.py +5 -1
  152. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  153. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  154. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  155. metadata/generated/schema/api/tests/createTestSuite.py +5 -1
  156. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +1 -1
  157. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  158. metadata/generated/schema/api/voteRequest.py +1 -1
  159. metadata/generated/schema/auth/__init__.py +1 -1
  160. metadata/generated/schema/auth/basicAuth.py +1 -1
  161. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  162. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  163. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  164. metadata/generated/schema/auth/emailRequest.py +1 -1
  165. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  166. metadata/generated/schema/auth/generateToken.py +1 -1
  167. metadata/generated/schema/auth/jwtAuth.py +1 -1
  168. metadata/generated/schema/auth/loginRequest.py +1 -1
  169. metadata/generated/schema/auth/logoutRequest.py +1 -1
  170. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  171. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  172. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  173. metadata/generated/schema/auth/refreshToken.py +1 -1
  174. metadata/generated/schema/auth/registrationRequest.py +1 -1
  175. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  176. metadata/generated/schema/auth/revokeToken.py +1 -1
  177. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  178. metadata/generated/schema/auth/ssoAuth.py +1 -1
  179. metadata/generated/schema/auth/supportToken.py +1 -1
  180. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  181. metadata/generated/schema/configuration/__init__.py +1 -1
  182. metadata/generated/schema/configuration/aiPlatformConfiguration.py +1 -1
  183. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  184. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  185. metadata/generated/schema/configuration/authConfig.py +1 -1
  186. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  187. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/cacheConfiguration.py +1 -1
  189. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/elasticSearchConfiguration.py +2 -1
  192. metadata/generated/schema/configuration/entityRulesSettings.py +1 -1
  193. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  194. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  195. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  196. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  197. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  199. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  200. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  201. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  202. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  203. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  204. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  205. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  206. metadata/generated/schema/configuration/logStorageConfiguration.py +105 -0
  207. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  208. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  209. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  210. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  211. metadata/generated/schema/configuration/opsConfig.py +1 -1
  212. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +9 -2
  213. metadata/generated/schema/configuration/profilerConfiguration.py +2 -1
  214. metadata/generated/schema/configuration/searchSettings.py +7 -2
  215. metadata/generated/schema/configuration/securityConfiguration.py +26 -0
  216. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  217. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  218. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  219. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  220. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  221. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  222. metadata/generated/schema/dataInsight/__init__.py +1 -1
  223. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  224. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  225. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  226. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  227. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  228. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  229. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  230. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  231. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  232. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  233. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  234. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  235. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  236. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  237. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  238. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  239. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  240. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  241. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  242. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  243. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  244. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  245. metadata/generated/schema/email/__init__.py +1 -1
  246. metadata/generated/schema/email/emailRequest.py +1 -1
  247. metadata/generated/schema/email/emailTemplate.py +1 -1
  248. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  249. metadata/generated/schema/email/smtpSettings.py +1 -1
  250. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  251. metadata/generated/schema/entity/__init__.py +1 -1
  252. metadata/generated/schema/entity/applications/__init__.py +1 -1
  253. metadata/generated/schema/entity/applications/app.py +1 -1
  254. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  255. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/external/automator/addTermsAction.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/external/automator/removeTermsAction.py +1 -1
  279. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  280. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  281. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  282. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  283. metadata/generated/schema/entity/applications/configuration/external/metadataExporterAppConfig.py +1 -1
  284. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/__init__.py +1 -1
  285. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/bigQueryConnection.py +1 -1
  286. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/databricksConnection.py +18 -6
  287. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/redshiftConnection.py +1 -1
  288. metadata/generated/schema/entity/applications/configuration/external/metadataExporterConnectors/snowflakeConnection.py +1 -1
  289. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  290. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  291. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  292. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  293. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  294. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  295. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  296. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  297. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  298. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  299. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  300. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  301. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  302. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  303. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  304. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  305. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  306. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  307. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  308. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  309. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  310. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  311. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  312. metadata/generated/schema/entity/automations/__init__.py +1 -1
  313. metadata/generated/schema/entity/automations/queryRunnerRequest.py +46 -0
  314. metadata/generated/schema/entity/automations/response/__init__.py +3 -0
  315. metadata/generated/schema/entity/automations/response/queryRunnerResponse.py +51 -0
  316. metadata/generated/schema/entity/automations/testServiceConnection.py +3 -1
  317. metadata/generated/schema/entity/automations/testSparkEngineConnection.py +31 -0
  318. metadata/generated/schema/entity/automations/workflow.py +8 -2
  319. metadata/generated/schema/entity/bot.py +1 -1
  320. metadata/generated/schema/entity/classification/__init__.py +1 -1
  321. metadata/generated/schema/entity/classification/classification.py +57 -2
  322. metadata/generated/schema/entity/classification/tag.py +41 -3
  323. metadata/generated/schema/entity/data/__init__.py +1 -1
  324. metadata/generated/schema/entity/data/apiCollection.py +8 -1
  325. metadata/generated/schema/entity/data/apiEndpoint.py +6 -1
  326. metadata/generated/schema/entity/data/chart.py +7 -1
  327. metadata/generated/schema/entity/data/container.py +6 -1
  328. metadata/generated/schema/entity/data/dashboard.py +6 -1
  329. metadata/generated/schema/entity/data/dashboardDataModel.py +9 -1
  330. metadata/generated/schema/entity/data/dataContract.py +238 -2
  331. metadata/generated/schema/entity/data/database.py +6 -1
  332. metadata/generated/schema/entity/data/databaseSchema.py +8 -1
  333. metadata/generated/schema/entity/data/directory.py +6 -1
  334. metadata/generated/schema/entity/data/file.py +6 -1
  335. metadata/generated/schema/entity/data/glossary.py +6 -1
  336. metadata/generated/schema/entity/data/glossaryTerm.py +8 -12
  337. metadata/generated/schema/entity/data/metric.py +18 -1
  338. metadata/generated/schema/entity/data/mlmodel.py +6 -1
  339. metadata/generated/schema/entity/data/pipeline.py +136 -2
  340. metadata/generated/schema/entity/data/query.py +6 -1
  341. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  342. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  343. metadata/generated/schema/entity/data/report.py +6 -1
  344. metadata/generated/schema/entity/data/searchIndex.py +6 -1
  345. metadata/generated/schema/entity/data/spreadsheet.py +8 -4
  346. metadata/generated/schema/entity/data/storedProcedure.py +8 -1
  347. metadata/generated/schema/entity/data/table.py +95 -1
  348. metadata/generated/schema/entity/data/topic.py +6 -1
  349. metadata/generated/schema/entity/data/worksheet.py +6 -1
  350. metadata/generated/schema/entity/datacontract/__init__.py +1 -1
  351. metadata/generated/schema/entity/datacontract/dataContractResult.py +1 -1
  352. metadata/generated/schema/entity/datacontract/qualityValidation.py +1 -1
  353. metadata/generated/schema/entity/datacontract/schemaValidation.py +1 -1
  354. metadata/generated/schema/entity/datacontract/semanticsValidation.py +1 -1
  355. metadata/generated/schema/entity/datacontract/slaValidation.py +1 -1
  356. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  357. metadata/generated/schema/entity/docStore/document.py +1 -1
  358. metadata/generated/schema/entity/domains/__init__.py +1 -1
  359. metadata/generated/schema/entity/domains/dataProduct.py +153 -2
  360. metadata/generated/schema/entity/domains/domain.py +1 -1
  361. metadata/generated/schema/entity/events/__init__.py +1 -1
  362. metadata/generated/schema/entity/events/notificationTemplate.py +111 -0
  363. metadata/generated/schema/entity/events/webhook.py +1 -1
  364. metadata/generated/schema/entity/feed/__init__.py +1 -1
  365. metadata/generated/schema/entity/feed/assets.py +1 -1
  366. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  367. metadata/generated/schema/entity/feed/description.py +1 -1
  368. metadata/generated/schema/entity/feed/domain.py +1 -1
  369. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  370. metadata/generated/schema/entity/feed/owner.py +1 -1
  371. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  372. metadata/generated/schema/entity/feed/tag.py +1 -1
  373. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  374. metadata/generated/schema/entity/feed/thread.py +1 -1
  375. metadata/generated/schema/entity/policies/__init__.py +1 -1
  376. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  377. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  378. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  379. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  380. metadata/generated/schema/entity/policies/filters.py +1 -1
  381. metadata/generated/schema/entity/policies/policy.py +1 -1
  382. metadata/generated/schema/entity/services/__init__.py +1 -1
  383. metadata/generated/schema/entity/services/apiService.py +1 -1
  384. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  385. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  386. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  388. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  389. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  390. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  391. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  392. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  393. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/dashboard/grafanaConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +17 -4
  399. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  404. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  405. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  406. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  407. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  408. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +9 -1
  420. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/databricks/__init__.py +3 -0
  435. metadata/generated/schema/entity/services/connections/database/databricks/azureAdSetup.py +37 -0
  436. metadata/generated/schema/entity/services/connections/database/databricks/databricksOAuth.py +30 -0
  437. metadata/generated/schema/entity/services/connections/database/databricks/personalAccessToken.py +23 -0
  438. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +14 -6
  439. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/epicConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  459. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  463. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  464. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  479. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/database/serviceNowConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/database/timescaleConnection.py +162 -0
  491. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +14 -6
  493. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/drive/__init__.py +1 -1
  495. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +34 -1
  496. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +34 -1
  497. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +34 -1
  498. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  499. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  500. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  501. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  505. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  506. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  507. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  508. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  509. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  510. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  511. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  512. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  513. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  514. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  515. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  516. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  517. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  518. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  519. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  520. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  521. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  522. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  524. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  525. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  526. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  527. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  528. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  529. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  530. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  531. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  532. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  533. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  534. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  535. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  536. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  537. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  538. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  539. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  540. metadata/generated/schema/entity/services/connections/pipeline/snowplowConnection.py +93 -0
  541. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  542. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  543. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  544. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  545. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  546. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  547. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  548. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  549. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  550. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  551. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  552. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  553. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  554. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  555. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  556. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  557. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  558. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  559. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  560. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  561. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  562. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  563. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  564. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  565. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  566. metadata/generated/schema/entity/services/databaseService.py +4 -1
  567. metadata/generated/schema/entity/services/driveService.py +1 -1
  568. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  569. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +8 -1
  570. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  571. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  572. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  573. metadata/generated/schema/entity/services/messagingService.py +1 -1
  574. metadata/generated/schema/entity/services/metadataService.py +1 -1
  575. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  576. metadata/generated/schema/entity/services/pipelineService.py +4 -1
  577. metadata/generated/schema/entity/services/searchService.py +1 -1
  578. metadata/generated/schema/entity/services/securityService.py +1 -1
  579. metadata/generated/schema/entity/services/serviceType.py +1 -1
  580. metadata/generated/schema/entity/services/storageService.py +1 -1
  581. metadata/generated/schema/entity/teams/__init__.py +1 -1
  582. metadata/generated/schema/entity/teams/persona.py +1 -1
  583. metadata/generated/schema/entity/teams/role.py +1 -1
  584. metadata/generated/schema/entity/teams/team.py +1 -1
  585. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  586. metadata/generated/schema/entity/teams/user.py +1 -1
  587. metadata/generated/schema/entity/type.py +1 -1
  588. metadata/generated/schema/entity/utils/__init__.py +1 -1
  589. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  590. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  591. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  592. metadata/generated/schema/events/__init__.py +1 -1
  593. metadata/generated/schema/events/alertMetrics.py +1 -1
  594. metadata/generated/schema/events/api/__init__.py +1 -1
  595. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  596. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  597. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  598. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  599. metadata/generated/schema/events/api/typedEvent.py +1 -1
  600. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  601. metadata/generated/schema/events/eventFilterRule.py +1 -1
  602. metadata/generated/schema/events/eventSubscription.py +16 -1
  603. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  604. metadata/generated/schema/events/failedEvent.py +1 -1
  605. metadata/generated/schema/events/failedEventResponse.py +1 -1
  606. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  607. metadata/generated/schema/events/statusContext.py +1 -1
  608. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  609. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  610. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  611. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  612. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  613. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  614. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  615. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  616. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  617. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  618. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  619. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  620. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  621. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  622. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +11 -12
  623. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  624. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  625. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  626. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  627. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  628. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  629. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  630. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  631. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  632. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  633. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  634. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  635. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  636. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  637. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  638. metadata/generated/schema/jobs/__init__.py +1 -1
  639. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  640. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  641. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  642. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  643. metadata/generated/schema/metadataIngestion/application.py +8 -1
  644. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  645. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  646. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  647. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  648. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  649. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  650. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  651. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  652. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  653. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  654. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  655. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  656. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  657. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  658. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  659. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  660. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  661. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +1 -1
  662. metadata/generated/schema/metadataIngestion/engine/__init__.py +1 -1
  663. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +1 -1
  664. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +1 -1
  665. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  666. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  667. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +29 -2
  668. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  669. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  670. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  671. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  672. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  673. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  674. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  675. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  676. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  677. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  678. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  679. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  680. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  681. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  682. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  683. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  684. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  685. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  686. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  687. metadata/generated/schema/metadataIngestion/workflow.py +8 -1
  688. metadata/generated/schema/monitoring/__init__.py +1 -1
  689. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  690. metadata/generated/schema/scim/__init__.py +1 -1
  691. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  692. metadata/generated/schema/search/__init__.py +1 -1
  693. metadata/generated/schema/search/aggregationRequest.py +1 -1
  694. metadata/generated/schema/search/searchRequest.py +8 -1
  695. metadata/generated/schema/security/__init__.py +1 -1
  696. metadata/generated/schema/security/client/__init__.py +1 -1
  697. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  698. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  699. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  700. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  701. metadata/generated/schema/security/client/oidcClientConfig.py +6 -10
  702. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  703. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  704. metadata/generated/schema/security/client/samlSSOClientConfig.py +6 -6
  705. metadata/generated/schema/security/credentials/__init__.py +1 -1
  706. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  707. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  708. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  709. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  710. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  711. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  712. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  713. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  714. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  715. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  716. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  717. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  718. metadata/generated/schema/security/credentials/kubernetesCredentials.py +1 -1
  719. metadata/generated/schema/security/sasl/__init__.py +1 -1
  720. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  721. metadata/generated/schema/security/secrets/__init__.py +1 -1
  722. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  723. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  724. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  725. metadata/generated/schema/security/securityConfiguration.py +1 -1
  726. metadata/generated/schema/security/ssl/__init__.py +1 -1
  727. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  728. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  729. metadata/generated/schema/settings/__init__.py +1 -1
  730. metadata/generated/schema/settings/settings.py +5 -2
  731. metadata/generated/schema/system/__init__.py +1 -1
  732. metadata/generated/schema/system/entityError.py +1 -1
  733. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  734. metadata/generated/schema/system/indexingError.py +1 -1
  735. metadata/generated/schema/system/limitsResponse.py +1 -1
  736. metadata/generated/schema/system/securityValidationResponse.py +62 -0
  737. metadata/generated/schema/system/ui/__init__.py +1 -1
  738. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  739. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  740. metadata/generated/schema/system/ui/page.py +5 -1
  741. metadata/generated/schema/system/ui/tab.py +1 -1
  742. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  743. metadata/generated/schema/system/validationResponse.py +8 -1
  744. metadata/generated/schema/tests/__init__.py +1 -1
  745. metadata/generated/schema/tests/assigned.py +1 -1
  746. metadata/generated/schema/tests/basic.py +1 -1
  747. metadata/generated/schema/tests/customMetric.py +1 -1
  748. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  749. metadata/generated/schema/tests/resolved.py +1 -1
  750. metadata/generated/schema/tests/testCase.py +26 -2
  751. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  752. metadata/generated/schema/tests/testDefinition.py +1 -1
  753. metadata/generated/schema/tests/testSuite.py +5 -1
  754. metadata/generated/schema/type/__init__.py +1 -1
  755. metadata/generated/schema/type/apiSchema.py +1 -1
  756. metadata/generated/schema/type/assetCertification.py +1 -1
  757. metadata/generated/schema/type/auditLog.py +1 -1
  758. metadata/generated/schema/type/basic.py +9 -1
  759. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  760. metadata/generated/schema/type/changeEvent.py +1 -1
  761. metadata/generated/schema/type/changeEventType.py +1 -1
  762. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  763. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  764. metadata/generated/schema/type/contextRecognizer.py +50 -0
  765. metadata/generated/schema/type/contractExecutionStatus.py +1 -1
  766. metadata/generated/schema/type/csvDocumentation.py +1 -1
  767. metadata/generated/schema/type/csvErrorType.py +1 -1
  768. metadata/generated/schema/type/csvFile.py +1 -1
  769. metadata/generated/schema/type/csvImportResult.py +1 -1
  770. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  771. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  772. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  773. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  774. metadata/generated/schema/type/customProperty.py +1 -1
  775. metadata/generated/schema/type/customRecognizer.py +39 -0
  776. metadata/generated/schema/type/dailyCount.py +1 -1
  777. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  778. metadata/generated/schema/type/denyListRecognizer.py +37 -0
  779. metadata/generated/schema/type/entityHierarchy.py +1 -1
  780. metadata/generated/schema/type/entityHistory.py +1 -1
  781. metadata/generated/schema/type/entityLineage.py +1 -1
  782. metadata/generated/schema/type/entityProfile.py +1 -1
  783. metadata/generated/schema/type/entityReference.py +1 -1
  784. metadata/generated/schema/type/entityReferenceList.py +1 -1
  785. metadata/generated/schema/type/entityRelationship/__init__.py +1 -1
  786. metadata/generated/schema/type/entityRelationship/nodeInformation.py +1 -1
  787. metadata/generated/schema/type/entityUsage.py +1 -1
  788. metadata/generated/schema/type/filterPattern.py +1 -1
  789. metadata/generated/schema/type/function.py +1 -1
  790. metadata/generated/schema/type/include.py +1 -1
  791. metadata/generated/schema/type/jdbcConnection.py +1 -1
  792. metadata/generated/schema/type/layerPaging.py +1 -1
  793. metadata/generated/schema/type/lifeCycle.py +1 -1
  794. metadata/generated/schema/type/paging.py +1 -1
  795. metadata/generated/schema/type/patternRecognizer.py +39 -0
  796. metadata/generated/schema/type/personaPreferences.py +1 -1
  797. metadata/generated/schema/type/piiEntity.py +48 -0
  798. metadata/generated/schema/type/predefinedRecognizer.py +85 -0
  799. metadata/generated/schema/type/profile.py +1 -1
  800. metadata/generated/schema/type/queryParserData.py +1 -1
  801. metadata/generated/schema/type/reaction.py +1 -1
  802. metadata/generated/schema/type/recognizer.py +159 -0
  803. metadata/generated/schema/type/recognizerFeedback.py +120 -0
  804. metadata/generated/schema/type/recognizers/__init__.py +3 -0
  805. metadata/generated/schema/type/recognizers/patterns.py +29 -0
  806. metadata/generated/schema/type/recognizers/regexFlags.py +29 -0
  807. metadata/generated/schema/type/schedule.py +1 -1
  808. metadata/generated/schema/type/schema.py +1 -1
  809. metadata/generated/schema/type/status.py +16 -0
  810. metadata/generated/schema/type/tableQuery.py +1 -1
  811. metadata/generated/schema/type/tableUsageCount.py +1 -1
  812. metadata/generated/schema/type/tagLabel.py +8 -1
  813. metadata/generated/schema/type/usageDetails.py +1 -1
  814. metadata/generated/schema/type/usageRequest.py +1 -1
  815. metadata/generated/schema/type/votes.py +1 -1
  816. metadata/ingestion/models/patch_request.py +2 -0
  817. metadata/ingestion/ometa/client.py +2 -2
  818. metadata/ingestion/ometa/mixins/csv_mixin.py +180 -0
  819. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +26 -0
  820. metadata/ingestion/ometa/mixins/logs_mixin.py +336 -0
  821. metadata/ingestion/ometa/mixins/patch_mixin.py +23 -9
  822. metadata/ingestion/ometa/ometa_api.py +20 -1
  823. metadata/ingestion/ometa/routes.py +3 -0
  824. metadata/ingestion/source/dashboard/domodashboard/metadata.py +19 -9
  825. metadata/ingestion/source/dashboard/looker/metadata.py +4 -0
  826. metadata/ingestion/source/dashboard/metabase/client.py +31 -9
  827. metadata/ingestion/source/dashboard/metabase/metadata.py +4 -0
  828. metadata/ingestion/source/dashboard/powerbi/metadata.py +70 -226
  829. metadata/ingestion/source/dashboard/redash/metadata.py +4 -0
  830. metadata/ingestion/source/dashboard/sigma/metadata.py +4 -0
  831. metadata/ingestion/source/dashboard/superset/api_source.py +2 -0
  832. metadata/ingestion/source/dashboard/superset/db_source.py +2 -0
  833. metadata/ingestion/source/dashboard/superset/mixin.py +2 -0
  834. metadata/ingestion/source/dashboard/tableau/client.py +21 -10
  835. metadata/ingestion/source/dashboard/tableau/metadata.py +7 -1
  836. metadata/ingestion/source/database/bigquery/connection.py +4 -0
  837. metadata/ingestion/source/database/bigquery/metadata.py +39 -26
  838. metadata/ingestion/source/database/column_type_parser.py +1 -1
  839. metadata/ingestion/source/database/common_pg_mappings.py +7 -0
  840. metadata/ingestion/source/database/databricks/auth.py +99 -0
  841. metadata/ingestion/source/database/databricks/client.py +7 -2
  842. metadata/ingestion/source/database/databricks/connection.py +63 -5
  843. metadata/ingestion/source/database/databricks/queries.py +61 -0
  844. metadata/ingestion/source/database/mariadb/metadata.py +86 -1
  845. metadata/ingestion/source/database/mariadb/models.py +36 -0
  846. metadata/ingestion/source/database/mariadb/queries.py +43 -0
  847. metadata/ingestion/source/database/oracle/connection.py +4 -0
  848. metadata/ingestion/source/database/oracle/queries.py +18 -0
  849. metadata/ingestion/source/database/postgres/connection.py +6 -0
  850. metadata/ingestion/source/database/postgres/queries.py +22 -0
  851. metadata/ingestion/source/database/sample_data.py +24 -8
  852. metadata/ingestion/source/database/snowflake/lineage.py +21 -44
  853. metadata/ingestion/source/database/snowflake/queries.py +0 -2
  854. metadata/ingestion/source/database/snowflake/query_parser.py +2 -12
  855. metadata/ingestion/source/database/snowflake/usage.py +0 -97
  856. metadata/ingestion/source/database/timescale/__init__.py +3 -0
  857. metadata/ingestion/source/database/timescale/connection.py +103 -0
  858. metadata/ingestion/source/database/timescale/lineage.py +124 -0
  859. metadata/ingestion/source/database/timescale/metadata.py +228 -0
  860. metadata/ingestion/source/database/timescale/models.py +60 -0
  861. metadata/ingestion/source/database/timescale/queries.py +96 -0
  862. metadata/ingestion/source/database/timescale/query_parser.py +106 -0
  863. metadata/ingestion/source/database/timescale/service_spec.py +12 -0
  864. metadata/ingestion/source/database/timescale/usage.py +43 -0
  865. metadata/ingestion/source/database/timescale/utils.py +545 -0
  866. metadata/ingestion/source/database/unitycatalog/client.py +35 -1
  867. metadata/ingestion/source/database/unitycatalog/connection.py +36 -4
  868. metadata/ingestion/source/database/unitycatalog/lineage.py +5 -179
  869. metadata/ingestion/source/database/unitycatalog/models.py +2 -18
  870. metadata/ingestion/source/messaging/kafka/connection.py +13 -4
  871. metadata/ingestion/source/metadata/amundsen/client.py +6 -6
  872. metadata/ingestion/source/mlmodel/mlmodel_service.py +75 -1
  873. metadata/ingestion/source/pipeline/kafkaconnect/client.py +30 -318
  874. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +16 -546
  875. metadata/ingestion/source/pipeline/kafkaconnect/models.py +1 -32
  876. metadata/ingestion/source/search/elasticsearch/connection.py +1 -1
  877. metadata/ingestion/source/storage/s3/metadata.py +2 -9
  878. metadata/parsers/json_schema_parser.py +1 -41
  879. metadata/pii/algorithms/classifiers.py +63 -1
  880. metadata/pii/algorithms/presidio_recognizer_factory.py +302 -0
  881. metadata/pii/algorithms/presidio_utils.py +38 -10
  882. metadata/pii/algorithms/utils.py +4 -0
  883. metadata/pii/base_processor.py +2 -1
  884. metadata/pii/processor.py +10 -4
  885. metadata/pii/processor_factory.py +28 -0
  886. metadata/pii/scanners/custom_ner_scanner.py +290 -0
  887. metadata/pii/tag_analyzer.py +124 -0
  888. metadata/pii/tag_processor.py +100 -0
  889. metadata/profiler/metrics/hybrid/cardinality_distribution.py +232 -0
  890. metadata/profiler/metrics/hybrid/histogram.py +1 -1
  891. metadata/profiler/metrics/registry.py +4 -0
  892. metadata/profiler/orm/converter/converter_registry.py +2 -0
  893. metadata/profiler/orm/converter/trino/__init__.py +14 -0
  894. metadata/profiler/orm/converter/trino/converter.py +39 -0
  895. metadata/profiler/orm/functions/conn_test.py +5 -0
  896. metadata/profiler/orm/registry.py +6 -0
  897. metadata/profiler/orm/types/__init__.py +10 -0
  898. metadata/profiler/orm/types/trino.py +70 -0
  899. metadata/profiler/processor/default.py +1 -0
  900. metadata/sdk/__init__.py +188 -0
  901. metadata/sdk/api/__init__.py +7 -0
  902. metadata/sdk/api/lineage.py +421 -0
  903. metadata/sdk/api/search.py +382 -0
  904. metadata/sdk/client.py +91 -0
  905. metadata/sdk/config.py +121 -0
  906. metadata/sdk/entities/__init__.py +64 -0
  907. metadata/sdk/entities/apicollections.py +19 -0
  908. metadata/sdk/entities/apiendpoints.py +19 -0
  909. metadata/sdk/entities/base.py +487 -0
  910. metadata/sdk/entities/charts.py +17 -0
  911. metadata/sdk/entities/classifications.py +21 -0
  912. metadata/sdk/entities/containers.py +17 -0
  913. metadata/sdk/entities/custom_properties.py +144 -0
  914. metadata/sdk/entities/dashboard_services.py +18 -0
  915. metadata/sdk/entities/dashboarddatamodels.py +21 -0
  916. metadata/sdk/entities/dashboards.py +17 -0
  917. metadata/sdk/entities/database_services.py +18 -0
  918. metadata/sdk/entities/databases.py +17 -0
  919. metadata/sdk/entities/databaseschemas.py +19 -0
  920. metadata/sdk/entities/datacontracts.py +19 -0
  921. metadata/sdk/entities/dataproducts.py +19 -0
  922. metadata/sdk/entities/domains.py +17 -0
  923. metadata/sdk/entities/glossaries.py +17 -0
  924. metadata/sdk/entities/glossary_terms.py +18 -0
  925. metadata/sdk/entities/glossaryterms.py +19 -0
  926. metadata/sdk/entities/metrics.py +49 -0
  927. metadata/sdk/entities/mlmodels.py +17 -0
  928. metadata/sdk/entities/pipelines.py +17 -0
  929. metadata/sdk/entities/queries.py +17 -0
  930. metadata/sdk/entities/searchindexes.py +19 -0
  931. metadata/sdk/entities/storedprocedures.py +19 -0
  932. metadata/sdk/entities/tables.py +68 -0
  933. metadata/sdk/entities/tags.py +17 -0
  934. metadata/sdk/entities/teams.py +17 -0
  935. metadata/sdk/entities/testcases.py +17 -0
  936. metadata/sdk/entities/testdefinitions.py +19 -0
  937. metadata/sdk/entities/testsuites.py +17 -0
  938. metadata/sdk/entities/users.py +17 -0
  939. metadata/sdk/examples/builder_end_to_end.py +387 -0
  940. metadata/sdk/types.py +15 -0
  941. metadata/utils/deprecation.py +9 -6
  942. metadata/utils/elasticsearch.py +3 -0
  943. metadata/utils/fqn.py +18 -2
  944. metadata/utils/importer.py +3 -2
  945. metadata/utils/logger.py +10 -0
  946. metadata/utils/sqa_utils.py +3 -0
  947. metadata/utils/streamable_logger.py +525 -0
  948. metadata/workflow/base.py +26 -1
  949. metadata/workflow/classification.py +2 -2
  950. metadata/workflow/workflow_status_mixin.py +1 -1
  951. {openmetadata_ingestion-1.9.13.0.dist-info → openmetadata_ingestion-1.10.1.0.dist-info}/METADATA +549 -549
  952. {openmetadata_ingestion-1.9.13.0.dist-info → openmetadata_ingestion-1.10.1.0.dist-info}/RECORD +956 -855
  953. metadata/examples/workflows/confluent_cdc.yaml +0 -70
  954. metadata/examples/workflows/confluent_cdc_cloud.yaml +0 -86
  955. metadata/examples/workflows/confluent_cdc_local.yaml +0 -120
  956. metadata/examples/workflows/my_confluent_cloud.yaml +0 -49
  957. {openmetadata_ingestion-1.9.13.0.dist-info → openmetadata_ingestion-1.10.1.0.dist-info}/LICENSE +0 -0
  958. {openmetadata_ingestion-1.9.13.0.dist-info → openmetadata_ingestion-1.10.1.0.dist-info}/WHEEL +0 -0
  959. {openmetadata_ingestion-1.9.13.0.dist-info → openmetadata_ingestion-1.10.1.0.dist-info}/entry_points.txt +0 -0
  960. {openmetadata_ingestion-1.9.13.0.dist-info → openmetadata_ingestion-1.10.1.0.dist-info}/top_level.txt +0 -0
@@ -176,7 +176,7 @@ def get_connection(connection: ElasticsearchConnection) -> Elasticsearch:
176
176
 
177
177
  return Elasticsearch(
178
178
  str(connection.hostPort),
179
- http_auth=basic_auth,
179
+ basic_auth=basic_auth,
180
180
  api_key=api_key,
181
181
  ssl_context=ssl_context,
182
182
  **connection.connectionArguments.root,
@@ -356,7 +356,6 @@ class S3Source(StorageServiceSource):
356
356
  if entry
357
357
  and entry.get("Key")
358
358
  and len(entry.get("Key").split("/")) > total_depth
359
- and "/_delta_log/" not in entry.get("Key")
360
359
  }
361
360
  for key in candidate_keys:
362
361
  metadata_entry_copy = deepcopy(metadata_entry)
@@ -470,10 +469,7 @@ class S3Source(StorageServiceSource):
470
469
  candidate_keys = [
471
470
  entry["Key"]
472
471
  for entry in response
473
- if entry
474
- and entry.get("Key")
475
- and not entry.get("Key").endswith("/")
476
- and "/_delta_log/" not in entry.get("Key")
472
+ if entry and entry.get("Key") and not entry.get("Key").endswith("/")
477
473
  ]
478
474
  for key in candidate_keys:
479
475
  if self.is_valid_unstructured_file(metadata_entry.unstructuredFormats, key):
@@ -682,10 +678,7 @@ class S3Source(StorageServiceSource):
682
678
  candidate_keys = [
683
679
  entry["Key"]
684
680
  for entry in response[S3_CLIENT_ROOT_RESPONSE]
685
- if entry
686
- and entry.get("Key")
687
- and not entry.get("Key").endswith("/")
688
- and "/_delta_log/" not in entry.get("Key")
681
+ if entry and entry.get("Key") and not entry.get("Key").endswith("/")
689
682
  ]
690
683
  # pick a random key out of the candidates if any were returned
691
684
  if candidate_keys:
@@ -68,49 +68,9 @@ def parse_json_schema(
68
68
 
69
69
  def get_child_models(key, value, field_models, cls: Type[BaseModel] = FieldModel):
70
70
  """
71
- Method to parse the child objects in the json schema.
72
- Handles oneOf union types (e.g., Debezium CDC nullable fields).
71
+ Method to parse the child objects in the json schema
73
72
  """
74
73
  try:
75
- # Handle oneOf union types (e.g., [{"type": "null"}, {"type": "object", "properties": {...}}])
76
- # Common in Debezium CDC schemas for nullable fields like "after" and "before"
77
- if "oneOf" in value and isinstance(value["oneOf"], list):
78
- # Find the non-null object schema in the union
79
- object_schema = None
80
- for option in value["oneOf"]:
81
- if (
82
- isinstance(option, dict)
83
- and option.get("type") == JsonSchemaDataTypes.RECORD.value
84
- ):
85
- object_schema = option
86
- break
87
-
88
- if object_schema:
89
- # Use the object schema's properties and metadata
90
- cls_obj = cls(
91
- name=key,
92
- displayName=value.get("title") or object_schema.get("title"),
93
- dataType=JsonSchemaDataTypes.RECORD.name,
94
- description=value.get("description")
95
- or object_schema.get("description"),
96
- )
97
- children = get_json_schema_fields(
98
- object_schema.get("properties", {}), cls=cls
99
- )
100
- cls_obj.children = children
101
- field_models.append(cls_obj)
102
- return
103
- # If no object found in oneOf, treat as UNKNOWN
104
- cls_obj = cls(
105
- name=key,
106
- displayName=value.get("title"),
107
- dataType=JsonSchemaDataTypes.UNKNOWN.name,
108
- description=value.get("description"),
109
- )
110
- field_models.append(cls_obj)
111
- return
112
-
113
- # Standard type handling
114
74
  cls_obj = cls(
115
75
  name=key,
116
76
  displayName=value.get("title"),
@@ -19,6 +19,7 @@ from typing import (
19
19
  Dict,
20
20
  Generic,
21
21
  Hashable,
22
+ Iterable,
22
23
  Mapping,
23
24
  Optional,
24
25
  Sequence,
@@ -29,7 +30,7 @@ from typing import (
29
30
 
30
31
  from presidio_analyzer import AnalyzerEngine
31
32
 
32
- from metadata.generated.schema.entity.data.table import DataType
33
+ from metadata.generated.schema.entity.data.table import Column, DataType
33
34
  from metadata.pii.algorithms.column_patterns import get_pii_column_name_patterns
34
35
  from metadata.pii.algorithms.feature_extraction import (
35
36
  extract_pii_from_column_names,
@@ -48,6 +49,7 @@ from metadata.pii.algorithms.presidio_utils import (
48
49
  set_presidio_logger_level,
49
50
  )
50
51
  from metadata.pii.algorithms.tags import PIISensitivityTag, PIITag
52
+ from metadata.pii.tag_analyzer import TagAnalyzer
51
53
 
52
54
  T = TypeVar("T", bound=Hashable)
53
55
 
@@ -72,6 +74,11 @@ class ColumnClassifier(ABC, Generic[T]):
72
74
  higher scores indicate a higher likelihood of the class for the given inputs.
73
75
  """
74
76
 
77
+ def classify(self, column: Column, sample_data: Sequence[Any]) -> Mapping[T, float]:
78
+ return self.predict_scores(
79
+ sample_data, column_name=column.name.root, column_data_type=column.dataType
80
+ )
81
+
75
82
 
76
83
  @final
77
84
  class HeuristicPIIClassifier(ColumnClassifier[PIITag]):
@@ -178,3 +185,58 @@ class PIISensitiveClassifier(ColumnClassifier[PIISensitivityTag]):
178
185
  results[tag] /= counts[tag]
179
186
 
180
187
  return results
188
+
189
+
190
+ @final
191
+ class TagClassifier(ColumnClassifier[str]):
192
+ """
193
+ Heuristic PII Column Classifier
194
+ """
195
+
196
+ def __init__(
197
+ self,
198
+ *,
199
+ tag_analyzers: Iterable[TagAnalyzer],
200
+ column_name_contribution: float = 0.5,
201
+ score_cutoff: float = 0.1,
202
+ relative_cardinality_cutoff: float = 0.01,
203
+ ):
204
+ set_presidio_logger_level()
205
+
206
+ self._analyzers = tag_analyzers
207
+
208
+ self._column_name_contribution = column_name_contribution
209
+ self._score_cutoff = score_cutoff
210
+ self._relative_cardinality_cutoff = relative_cardinality_cutoff
211
+
212
+ def predict_scores(
213
+ self,
214
+ sample_data: Sequence[Any],
215
+ column_name: Optional[str] = None,
216
+ column_data_type: Optional[DataType] = None,
217
+ ) -> Mapping[str, float]:
218
+ str_values = preprocess_values(sample_data)
219
+
220
+ if not str_values:
221
+ return {}
222
+
223
+ # Relative cardinality test
224
+ unique_values = set(str_values)
225
+ if len(unique_values) / len(str_values) < self._relative_cardinality_cutoff:
226
+ return {}
227
+
228
+ results: dict[str, float] = defaultdict(float)
229
+ for analyzer in self._analyzers:
230
+ content_score = analyzer.analyze_content(values=str_values)
231
+ column_score = 0.0
232
+ if column_name is not None:
233
+ column_score = analyzer.analyze_column()
234
+ column_score *= max(column_score, self._column_name_contribution)
235
+
236
+ total_score = content_score + column_score
237
+ if total_score > self._score_cutoff:
238
+ results[str(analyzer.tag.fullyQualifiedName)] = (
239
+ content_score + column_score
240
+ )
241
+
242
+ return results
@@ -0,0 +1,302 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Factory for creating Presidio recognizers from OpenMetadata recognizer configurations.
13
+ """
14
+ import re
15
+ from typing import Dict, List, Optional, cast
16
+
17
+ from presidio_analyzer import EntityRecognizer
18
+ from presidio_analyzer import Pattern as PresidioPattern
19
+ from presidio_analyzer import PatternRecognizer as PresidioPatternRecognizer
20
+ from presidio_analyzer import predefined_recognizers
21
+
22
+ from metadata.generated.schema.entity.classification.tag import Tag
23
+ from metadata.generated.schema.type.contextRecognizer import ContextRecognizer
24
+ from metadata.generated.schema.type.customRecognizer import CustomRecognizer
25
+ from metadata.generated.schema.type.denyListRecognizer import DenyListRecognizer
26
+ from metadata.generated.schema.type.patternRecognizer import PatternRecognizer
27
+ from metadata.generated.schema.type.predefinedRecognizer import PredefinedRecognizer
28
+ from metadata.generated.schema.type.recognizer import Recognizer
29
+ from metadata.generated.schema.type.recognizers.regexFlags import RegexFlags
30
+ from metadata.pii.algorithms.presidio_utils import apply_confidence_threshold
31
+ from metadata.utils.logger import pii_logger
32
+
33
+ logger = pii_logger()
34
+
35
+
36
+ class PresidioRecognizerFactory:
37
+ """Factory for creating Presidio recognizers from OpenMetadata configurations."""
38
+
39
+ @staticmethod
40
+ def create_recognizer(recognizer_config: Recognizer) -> Optional[EntityRecognizer]:
41
+ """
42
+ Create a Presidio recognizer from an OpenMetadata recognizer configuration.
43
+
44
+ Args:
45
+ recognizer_config: The recognizer configuration from OpenMetadata
46
+ tag_name: The name of the tag this recognizer belongs to
47
+
48
+ Returns:
49
+ A Presidio EntityRecognizer or None if creation fails
50
+ """
51
+ if not recognizer_config.enabled:
52
+ return None
53
+
54
+ config = recognizer_config.recognizerConfig.root
55
+
56
+ if isinstance(config, PatternRecognizer):
57
+ recognizer = PresidioRecognizerFactory._create_pattern_recognizer(
58
+ config, recognizer_config
59
+ )
60
+ elif isinstance(config, DenyListRecognizer):
61
+ recognizer = PresidioRecognizerFactory._create_deny_list_recognizer(
62
+ config, recognizer_config
63
+ )
64
+ elif isinstance(config, ContextRecognizer):
65
+ recognizer = PresidioRecognizerFactory._create_context_recognizer(
66
+ config, recognizer_config
67
+ )
68
+ elif isinstance(config, CustomRecognizer):
69
+ recognizer = PresidioRecognizerFactory._create_custom_recognizer(
70
+ config, recognizer_config
71
+ )
72
+ elif isinstance(
73
+ config, PredefinedRecognizer
74
+ ): # pyright: ignore[reportUnnecessaryIsInstance]
75
+ recognizer = PresidioRecognizerFactory._create_predefined_recognizer(
76
+ config, recognizer_config
77
+ )
78
+ else:
79
+ logger.warning(f"Unknown recognizer type for {recognizer_config.name}")
80
+ return None
81
+
82
+ if recognizer and (threshold := recognizer_config.confidenceThreshold):
83
+ patch_analyze = apply_confidence_threshold(threshold)
84
+ recognizer = patch_analyze(recognizer)
85
+
86
+ return recognizer
87
+
88
+ @staticmethod
89
+ def _get_regex_flags(flags: Optional[RegexFlags]) -> Optional[int]:
90
+ if flags is None:
91
+ return re.IGNORECASE | re.DOTALL | re.MULTILINE
92
+
93
+ re_flags = 0
94
+ if flags.ignoreCase:
95
+ re_flags |= re.IGNORECASE
96
+ if flags.dotAll:
97
+ re_flags |= re.DOTALL
98
+ if flags.multiline:
99
+ re_flags |= re.MULTILINE
100
+
101
+ return re_flags
102
+
103
+ @staticmethod
104
+ def _create_pattern_recognizer(
105
+ config: PatternRecognizer,
106
+ recognizer_config: Recognizer,
107
+ ) -> PresidioPatternRecognizer:
108
+ """Create a pattern-based recognizer."""
109
+ patterns: List[PresidioPattern] = []
110
+ for pattern_config in config.patterns:
111
+ patterns.append(
112
+ PresidioPattern(
113
+ name=pattern_config.name,
114
+ regex=pattern_config.regex,
115
+ score=pattern_config.score or 0.8,
116
+ )
117
+ )
118
+
119
+ return PresidioPatternRecognizer(
120
+ supported_entity=config.supportedEntity.value,
121
+ patterns=patterns,
122
+ name=recognizer_config.name.root,
123
+ supported_language=config.supportedLanguage,
124
+ global_regex_flags=PresidioRecognizerFactory._get_regex_flags(
125
+ config.regexFlags
126
+ ),
127
+ )
128
+
129
+ @staticmethod
130
+ def _create_deny_list_recognizer(
131
+ config: DenyListRecognizer, recognizer_config: Recognizer
132
+ ) -> PresidioPatternRecognizer:
133
+ """Create a deny list recognizer using patterns."""
134
+ patterns: List[PresidioPattern] = []
135
+ for value in config.denyList:
136
+ # Escape special regex characters in the value
137
+ escaped_value = re.escape(value)
138
+
139
+ patterns.append(
140
+ PresidioPattern(
141
+ name=f"deny_{value}",
142
+ regex=escaped_value,
143
+ score=0.9, # High confidence for exact matches
144
+ )
145
+ )
146
+
147
+ return PresidioPatternRecognizer(
148
+ supported_entity=config.supportedEntity.value,
149
+ patterns=patterns,
150
+ name=recognizer_config.name.root,
151
+ supported_language=config.supportedLanguage,
152
+ global_regex_flags=PresidioRecognizerFactory._get_regex_flags(
153
+ config.regexFlags
154
+ ),
155
+ )
156
+
157
+ @staticmethod
158
+ def _create_context_recognizer(
159
+ config: ContextRecognizer, recognizer_config: Recognizer
160
+ ) -> PresidioPatternRecognizer:
161
+ """Create a context-aware recognizer."""
162
+ # For context recognizers, we can use a pattern recognizer with context words
163
+ # or implement a custom recognizer that uses NLP
164
+ context_patterns: List[PresidioPattern] = []
165
+
166
+ # Create patterns that look for context words near potential entities
167
+ for context_word in config.contextWords:
168
+ # Pattern to match words near context words
169
+ pattern = f"(?i)(?:{context_word})\\s+\\w+|\\w+\\s+(?:{context_word})"
170
+ context_patterns.append(
171
+ PresidioPattern(
172
+ name=f"context_{context_word}",
173
+ regex=pattern,
174
+ score=(config.minScore + config.maxScore) / 2
175
+ if config.minScore and config.maxScore
176
+ else 0.6,
177
+ )
178
+ )
179
+
180
+ return PresidioPatternRecognizer(
181
+ supported_entity=config.supportedEntity.value,
182
+ patterns=context_patterns,
183
+ name=recognizer_config.name.root,
184
+ supported_language=config.supportedLanguage,
185
+ )
186
+
187
+ @staticmethod
188
+ def _create_custom_recognizer(
189
+ config: CustomRecognizer, # pyright: ignore[reportUnusedParameter]
190
+ recognizer_config: Recognizer,
191
+ ) -> Optional[EntityRecognizer]:
192
+ """
193
+ Create a custom recognizer with user-defined logic.
194
+
195
+ For security reasons, we don't execute arbitrary Python code.
196
+ Instead, we could support a limited set of custom behaviors
197
+ or require custom recognizers to be implemented as plugins.
198
+ """
199
+ logger.warning(
200
+ f"Custom recognizer {recognizer_config.name} requires implementation. "
201
+ + "Consider using pattern, deny_list, or context recognizers instead."
202
+ )
203
+ return None
204
+
205
+ @staticmethod
206
+ def _create_predefined_recognizer(
207
+ config: PredefinedRecognizer,
208
+ recognizer: Recognizer, # pyright: ignore[reportUnusedParameter]
209
+ ) -> Optional[EntityRecognizer]:
210
+ """Create a custom recognizer with user-defined logic."""
211
+ try:
212
+ predefined_class = getattr(predefined_recognizers, config.name.value)
213
+ except AttributeError:
214
+ logger.error(f"Recognizer {config.name} not found")
215
+ return None
216
+
217
+ args = {}
218
+ if supported_language := config.supportedLanguage:
219
+ args["supported_language"] = supported_language
220
+ if context := config.context:
221
+ args["context"] = context
222
+
223
+ return predefined_class(**args)
224
+
225
+ @staticmethod
226
+ def create_recognizers_for_tag(tag: Tag) -> List[EntityRecognizer]:
227
+ """
228
+ Create all enabled recognizers for a given tag.
229
+
230
+ Args:
231
+ tag: The tag containing recognizer configurations
232
+
233
+ Returns:
234
+ List of Presidio EntityRecognizer instances
235
+ """
236
+ recognizers: List[EntityRecognizer] = []
237
+
238
+ if not tag.autoClassificationEnabled or not tag.recognizers:
239
+ return recognizers
240
+
241
+ for recognizer_config in tag.recognizers:
242
+ recognizer = PresidioRecognizerFactory.create_recognizer(recognizer_config)
243
+ if recognizer:
244
+ recognizers.append(recognizer)
245
+ logger.info(
246
+ f"Created recognizer {recognizer_config.name} for tag {tag.name}"
247
+ )
248
+
249
+ return recognizers
250
+
251
+
252
+ class RecognizerRegistry:
253
+ """Registry for managing custom recognizers from OpenMetadata."""
254
+
255
+ def __init__(self):
256
+ self.recognizers: Dict[str, List[EntityRecognizer]] = {}
257
+ self.tag_priority: Dict[str, int] = {}
258
+ self.tag_confidence_threshold: Dict[str, float] = {}
259
+
260
+ def register_tag_recognizers(self, tag: Tag) -> None:
261
+ """
262
+ Register all recognizers for a tag.
263
+
264
+ Args:
265
+ tag: The tag with recognizer configurations
266
+ """
267
+ if not tag.autoClassificationEnabled:
268
+ return
269
+
270
+ tag_fqn = cast(str, tag.fullyQualifiedName)
271
+ self.recognizers[
272
+ tag_fqn
273
+ ] = PresidioRecognizerFactory.create_recognizers_for_tag(tag)
274
+ self.tag_priority[tag_fqn] = tag.autoClassificationPriority or 50
275
+
276
+ # Calculate minimum confidence from all recognizers
277
+ min_confidence = 1.0
278
+ for recognizer_config in tag.recognizers or []:
279
+ if recognizer_config.confidenceThreshold:
280
+ min_confidence = min(
281
+ min_confidence, recognizer_config.confidenceThreshold
282
+ )
283
+ self.tag_confidence_threshold[tag_fqn] = min_confidence
284
+
285
+ def get_recognizers_for_tag(self, tag_fqn: str) -> List[EntityRecognizer]:
286
+ """Get all recognizers registered for a tag."""
287
+ return self.recognizers.get(tag_fqn, [])
288
+
289
+ def get_all_recognizers(self) -> List[EntityRecognizer]:
290
+ """Get all registered recognizers across all tags."""
291
+ all_recognizers: list[EntityRecognizer] = []
292
+ for recognizers in self.recognizers.values():
293
+ all_recognizers.extend(recognizers)
294
+ return all_recognizers
295
+
296
+ def get_tag_priority(self, tag_fqn: str) -> int:
297
+ """Get the priority for a tag (used in conflict resolution)."""
298
+ return self.tag_priority.get(tag_fqn, 50)
299
+
300
+ def get_tag_confidence_threshold(self, tag_fqn: str) -> float:
301
+ """Get the minimum confidence threshold for a tag."""
302
+ return self.tag_confidence_threshold.get(tag_fqn, 0.6)
@@ -13,16 +13,17 @@ Utilities for working with the Presidio Library.
13
13
  """
14
14
  import inspect
15
15
  import logging
16
- from typing import Iterable, Type, Union
16
+ from typing import Callable, Iterable, List, Type, Union
17
17
 
18
18
  import spacy
19
19
  from presidio_analyzer import (
20
20
  AnalyzerEngine,
21
21
  EntityRecognizer,
22
22
  PatternRecognizer,
23
+ RecognizerResult,
23
24
  predefined_recognizers,
24
25
  )
25
- from presidio_analyzer.nlp_engine import SpacyNlpEngine
26
+ from presidio_analyzer.nlp_engine import NlpArtifacts, SpacyNlpEngine
26
27
  from spacy.cli.download import download # pyright: ignore[reportUnknownVariableType]
27
28
 
28
29
  from metadata.pii.constants import PRESIDIO_LOGGER, SPACY_EN_MODEL, SUPPORTED_LANG
@@ -31,6 +32,17 @@ from metadata.utils.logger import pii_logger
31
32
  logger = pii_logger()
32
33
 
33
34
 
35
+ def load_nlp_engine(
36
+ model_name: str = SPACY_EN_MODEL, supported_language: str = SUPPORTED_LANG
37
+ ) -> SpacyNlpEngine:
38
+ _load_spacy_model(model_name)
39
+ model = {
40
+ "lang_code": supported_language,
41
+ "model_name": model_name,
42
+ }
43
+ return SpacyNlpEngine(models=[model])
44
+
45
+
34
46
  def build_analyzer_engine(
35
47
  model_name: str = SPACY_EN_MODEL,
36
48
  ) -> AnalyzerEngine:
@@ -39,14 +51,9 @@ def build_analyzer_engine(
39
51
 
40
52
  If the model is not found locally, it will be downloaded.
41
53
  """
42
- _load_spacy_model(model_name)
43
-
44
- model = {
45
- "lang_code": SUPPORTED_LANG,
46
- "model_name": model_name,
47
- }
48
-
49
- nlp_engine = SpacyNlpEngine(models=[model])
54
+ nlp_engine = load_nlp_engine(
55
+ model_name=model_name, supported_language=SUPPORTED_LANG
56
+ )
50
57
  analyzer_engine = AnalyzerEngine(
51
58
  nlp_engine=nlp_engine, supported_languages=[SUPPORTED_LANG]
52
59
  )
@@ -109,3 +116,24 @@ def _get_all_pattern_recognizers() -> Iterable[EntityRecognizer]:
109
116
  elif cls == predefined_recognizers.PhoneRecognizer:
110
117
  # Not a pattern recognizer, but pretty much the same
111
118
  yield predefined_recognizers.PhoneRecognizer()
119
+
120
+
121
+ def apply_confidence_threshold(
122
+ threshold: float,
123
+ ) -> Callable[[EntityRecognizer], EntityRecognizer]:
124
+ def decorate_entity_recognizer(recognizer: EntityRecognizer) -> EntityRecognizer:
125
+ original_analyze = recognizer.analyze
126
+
127
+ def analyze(
128
+ instance: EntityRecognizer, # pyright: ignore[reportUnusedParameter]
129
+ text: str,
130
+ entities: List[str],
131
+ nlp_artifacts: NlpArtifacts,
132
+ ) -> List[RecognizerResult]:
133
+ results = original_analyze(text, entities, nlp_artifacts)
134
+ return [result for result in results if result.score >= threshold]
135
+
136
+ recognizer.analyze = analyze.__get__(recognizer, type(recognizer))
137
+ return recognizer
138
+
139
+ return decorate_entity_recognizer
@@ -36,3 +36,7 @@ def get_top_classes(scores: Mapping[T, float], n: int, threshold: float) -> Sequ
36
36
  sorted_scores = sorted(scores.items(), key=lambda x: x[1], reverse=True)
37
37
  top_classes = [key for key, score in sorted_scores if score >= threshold]
38
38
  return top_classes[:n]
39
+
40
+
41
+ def build_reason(tag_name: str, score: float) -> str:
42
+ return f"Chose {tag_name} with a classification score of {score:.2f}"
@@ -100,7 +100,8 @@ class AutoClassificationProcessor(Processor, ABC):
100
100
 
101
101
  column_tags = []
102
102
 
103
- for idx, column in enumerate(record.table.columns):
103
+ for idx, column_name in enumerate(record.sample_data.data.columns):
104
+ column = next(c for c in record.table.columns if c.name == column_name)
104
105
  try:
105
106
  tags = self.create_column_tag_labels(
106
107
  column=column,
metadata/pii/processor.py CHANGED
@@ -27,7 +27,11 @@ from metadata.generated.schema.type.tagLabel import (
27
27
  )
28
28
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
29
29
  from metadata.pii.algorithms.tags import PIISensitivityTag
30
- from metadata.pii.algorithms.utils import get_top_classes, normalize_scores
30
+ from metadata.pii.algorithms.utils import (
31
+ build_reason,
32
+ get_top_classes,
33
+ normalize_scores,
34
+ )
31
35
  from metadata.pii.base_processor import AutoClassificationProcessor
32
36
  from metadata.pii.constants import PII
33
37
  from metadata.utils import fqn
@@ -45,6 +49,7 @@ class PIIProcessor(AutoClassificationProcessor):
45
49
  self,
46
50
  config: OpenMetadataWorkflowConfig,
47
51
  metadata: OpenMetadata,
52
+ tolerance: float = 0.7,
48
53
  ):
49
54
  super().__init__(config, metadata)
50
55
 
@@ -56,10 +61,10 @@ class PIIProcessor(AutoClassificationProcessor):
56
61
  self._classifier: ColumnClassifier[PIISensitivityTag] = PIISensitiveClassifier()
57
62
 
58
63
  self.confidence_threshold = self.source_config.confidence / 100
59
- self._tolerance = 0.01
64
+ self._tolerance = tolerance
60
65
 
61
66
  @staticmethod
62
- def build_tag_label(tag: PIISensitivityTag) -> TagLabel:
67
+ def build_tag_label(tag: PIISensitivityTag, score: float) -> TagLabel:
63
68
  tag_fqn = fqn.build(
64
69
  metadata=None,
65
70
  entity_type=Tag,
@@ -72,6 +77,7 @@ class PIIProcessor(AutoClassificationProcessor):
72
77
  source=TagSource.Classification,
73
78
  state=State.Suggested,
74
79
  labelType=LabelType.Generated,
80
+ reason=build_reason(tag_fqn, score),
75
81
  )
76
82
 
77
83
  return tag_label
@@ -96,5 +102,5 @@ class PIIProcessor(AutoClassificationProcessor):
96
102
 
97
103
  # winner is at most 1 tag
98
104
  winner = get_top_classes(scores, 1, self.confidence_threshold)
99
- tag_labels = [self.build_tag_label(tag) for tag in winner]
105
+ tag_labels = [self.build_tag_label(tag, scores[tag]) for tag in winner]
100
106
  return tag_labels
@@ -0,0 +1,28 @@
1
+ # pyright: reportUnknownMemberType=false, reportUnknownVariableType=false
2
+ from typing import Any
3
+
4
+ from metadata.generated.schema.metadataIngestion.workflow import (
5
+ OpenMetadataWorkflowConfig,
6
+ )
7
+ from metadata.ingestion.api.parser import parse_workflow_config_gracefully
8
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
9
+ from metadata.pii.base_processor import AutoClassificationProcessor
10
+ from metadata.pii.processor import PIIProcessor
11
+ from metadata.pii.tag_processor import TagAnalyzerGenerator, TagProcessor
12
+
13
+
14
+ def create_pii_processor(
15
+ metadata: OpenMetadata[Any, Any], openmetadata_config: OpenMetadataWorkflowConfig
16
+ ) -> AutoClassificationProcessor:
17
+ if getattr(openmetadata_config.processor, "type") == "tag-pii-processor":
18
+ return TagProcessor(
19
+ config=parse_workflow_config_gracefully(openmetadata_config.model_dump()),
20
+ metadata=metadata,
21
+ generate_tag_analyzers=TagAnalyzerGenerator(
22
+ metadata=metadata,
23
+ ),
24
+ )
25
+ return PIIProcessor.create(
26
+ openmetadata_config.model_dump(),
27
+ metadata,
28
+ )