openmetadata-ingestion 1.5.11.0__py3-none-any.whl → 1.6.0.0rc1__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.
- _openmetadata_testutils/dict.py +23 -0
- _openmetadata_testutils/pydantic/test_utils.py +22 -2
- _openmetadata_testutils/pytest_openmetadata/__init__.py +0 -0
- _openmetadata_testutils/pytest_openmetadata/plugin.py +86 -0
- _openmetadata_testutils/pytest_openmetadata/test_utils.py +99 -0
- metadata/cli/app.py +1 -0
- metadata/cli/dataquality.py +4 -1
- metadata/cli/ingest.py +2 -1
- metadata/cli/lineage.py +2 -1
- metadata/cli/profile.py +4 -1
- metadata/cli/usage.py +2 -1
- metadata/config/common.py +3 -1
- metadata/data_quality/api/models.py +2 -1
- metadata/data_quality/builders/i_validator_builder.py +5 -2
- metadata/data_quality/interface/pandas/pandas_test_suite_interface.py +1 -0
- metadata/data_quality/interface/sqlalchemy/sqa_test_suite_interface.py +1 -0
- metadata/data_quality/interface/test_suite_interface.py +6 -11
- metadata/data_quality/interface/test_suite_interface_factory.py +63 -33
- metadata/data_quality/source/test_suite.py +1 -1
- metadata/data_quality/validations/base_test_handler.py +3 -3
- metadata/data_quality/validations/column/base/columnValuesToBeInSet.py +4 -2
- metadata/data_quality/validations/models.py +6 -1
- metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +7 -2
- metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +175 -3
- metadata/examples/workflows/datafactory.yaml +29 -0
- metadata/examples/workflows/matillion.yaml +31 -0
- metadata/examples/workflows/rest.yaml +20 -0
- metadata/examples/workflows/sigma.yaml +25 -0
- metadata/examples/workflows/trino_profiler.yaml +20 -0
- metadata/generated/antlr/EntityLinkLexer.py +70 -99
- metadata/generated/antlr/FqnLexer.py +15 -15
- metadata/generated/schema/analytics/__init__.py +1 -1
- metadata/generated/schema/analytics/basic.py +1 -1
- metadata/generated/schema/analytics/reportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
- metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
- metadata/generated/schema/api/__init__.py +1 -1
- metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
- metadata/generated/schema/api/addTagToAssetsRequest.py +43 -0
- metadata/generated/schema/api/analytics/__init__.py +1 -1
- metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
- metadata/generated/schema/api/automations/__init__.py +1 -1
- metadata/generated/schema/api/automations/createWorkflow.py +1 -1
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +1 -1
- metadata/generated/schema/api/classification/createTag.py +1 -1
- metadata/generated/schema/api/classification/loadTags.py +1 -1
- metadata/generated/schema/api/createBot.py +1 -1
- metadata/generated/schema/api/createEventPublisherJob.py +1 -1
- metadata/generated/schema/api/createType.py +1 -1
- metadata/generated/schema/api/data/__init__.py +1 -1
- metadata/generated/schema/api/data/createAPICollection.py +1 -1
- metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
- metadata/generated/schema/api/data/createChart.py +1 -1
- metadata/generated/schema/api/data/createContainer.py +1 -1
- metadata/generated/schema/api/data/createCustomProperty.py +1 -1
- metadata/generated/schema/api/data/createDashboard.py +1 -1
- metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
- metadata/generated/schema/api/data/createDatabase.py +1 -1
- metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
- metadata/generated/schema/api/data/createGlossary.py +1 -1
- metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
- metadata/generated/schema/api/data/createMetric.py +83 -0
- metadata/generated/schema/api/data/createMlModel.py +1 -1
- metadata/generated/schema/api/data/createPipeline.py +1 -1
- metadata/generated/schema/api/data/createQuery.py +1 -1
- metadata/generated/schema/api/data/createSearchIndex.py +1 -1
- metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
- metadata/generated/schema/api/data/createTable.py +1 -1
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +1 -1
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +1 -1
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +1 -1
- metadata/generated/schema/api/domains/createDomain.py +1 -1
- metadata/generated/schema/api/feed/__init__.py +1 -1
- metadata/generated/schema/api/feed/closeTask.py +1 -1
- metadata/generated/schema/api/feed/createPost.py +1 -1
- metadata/generated/schema/api/feed/createSuggestion.py +1 -1
- metadata/generated/schema/api/feed/createThread.py +1 -1
- metadata/generated/schema/api/feed/resolveTask.py +1 -1
- metadata/generated/schema/api/feed/threadCount.py +1 -1
- metadata/generated/schema/api/governance/__init__.py +3 -0
- metadata/generated/schema/api/governance/createWorkflowDefinition.py +83 -0
- metadata/generated/schema/api/governance/createWorkflowInstanceState.py +22 -0
- metadata/generated/schema/api/lineage/__init__.py +1 -1
- metadata/generated/schema/api/lineage/addLineage.py +1 -1
- metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
- metadata/generated/schema/api/policies/__init__.py +1 -1
- metadata/generated/schema/api/policies/createPolicy.py +1 -1
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createApiService.py +2 -2
- metadata/generated/schema/api/services/createDashboardService.py +1 -1
- metadata/generated/schema/api/services/createDatabaseService.py +1 -1
- metadata/generated/schema/api/services/createMessagingService.py +1 -1
- metadata/generated/schema/api/services/createMetadataService.py +1 -1
- metadata/generated/schema/api/services/createMlModelService.py +1 -1
- metadata/generated/schema/api/services/createPipelineService.py +1 -1
- metadata/generated/schema/api/services/createSearchService.py +1 -1
- metadata/generated/schema/api/services/createStorageService.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
- metadata/generated/schema/api/setOwner.py +1 -1
- metadata/generated/schema/api/teams/__init__.py +1 -1
- metadata/generated/schema/api/teams/createPersona.py +1 -1
- metadata/generated/schema/api/teams/createRole.py +1 -1
- metadata/generated/schema/api/teams/createTeam.py +1 -1
- metadata/generated/schema/api/teams/createUser.py +1 -1
- metadata/generated/schema/api/tests/__init__.py +1 -1
- metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
- metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
- metadata/generated/schema/api/tests/createTestCase.py +1 -1
- metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
- metadata/generated/schema/api/tests/createTestCaseResult.py +71 -0
- metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
- metadata/generated/schema/api/tests/createTestSuite.py +1 -1
- metadata/generated/schema/api/voteRequest.py +1 -1
- metadata/generated/schema/auth/__init__.py +1 -1
- metadata/generated/schema/auth/basicAuth.py +1 -1
- metadata/generated/schema/auth/basicLoginRequest.py +1 -1
- metadata/generated/schema/auth/changePasswordRequest.py +1 -1
- metadata/generated/schema/auth/createPersonalToken.py +1 -1
- metadata/generated/schema/auth/emailRequest.py +1 -1
- metadata/generated/schema/auth/emailVerificationToken.py +1 -1
- metadata/generated/schema/auth/generateToken.py +1 -1
- metadata/generated/schema/auth/jwtAuth.py +1 -1
- metadata/generated/schema/auth/loginRequest.py +1 -1
- metadata/generated/schema/auth/logoutRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetToken.py +1 -1
- metadata/generated/schema/auth/personalAccessToken.py +1 -1
- metadata/generated/schema/auth/refreshToken.py +1 -1
- metadata/generated/schema/auth/registrationRequest.py +1 -1
- metadata/generated/schema/auth/revokePersonalToken.py +1 -1
- metadata/generated/schema/auth/revokeToken.py +1 -1
- metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
- metadata/generated/schema/auth/ssoAuth.py +1 -1
- metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
- metadata/generated/schema/configuration/__init__.py +1 -1
- metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
- metadata/generated/schema/configuration/assetCertificationSettings.py +22 -0
- metadata/generated/schema/configuration/authConfig.py +1 -1
- metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
- metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
- metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
- metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
- metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
- metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
- metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
- metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
- metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
- metadata/generated/schema/configuration/lineageSettings.py +1 -1
- metadata/generated/schema/configuration/loginConfiguration.py +1 -1
- metadata/generated/schema/configuration/logoConfiguration.py +1 -1
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
- metadata/generated/schema/configuration/searchSettings.py +1 -1
- metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
- metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/themeConfiguration.py +1 -1
- metadata/generated/schema/configuration/uiThemePreference.py +1 -1
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +9 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
- metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
- metadata/generated/schema/dataInsight/custom/lineChart.py +23 -8
- metadata/generated/schema/dataInsight/custom/summaryCard.py +20 -9
- metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
- metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
- metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
- metadata/generated/schema/dataInsight/type/__init__.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
- metadata/generated/schema/email/__init__.py +1 -1
- metadata/generated/schema/email/emailRequest.py +1 -1
- metadata/generated/schema/email/emailTemplate.py +1 -1
- metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
- metadata/generated/schema/email/smtpSettings.py +1 -1
- metadata/generated/schema/email/templateValidationReponse.py +1 -1
- metadata/generated/schema/entity/__init__.py +1 -1
- metadata/generated/schema/entity/applications/__init__.py +1 -1
- metadata/generated/schema/entity/applications/app.py +8 -1
- metadata/generated/schema/entity/applications/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +54 -2
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/createAppRequest.py +8 -1
- metadata/generated/schema/entity/applications/jobStatus.py +1 -1
- metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +8 -1
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +8 -1
- metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
- metadata/generated/schema/entity/automations/__init__.py +1 -1
- metadata/generated/schema/entity/automations/testServiceConnection.py +3 -1
- metadata/generated/schema/entity/automations/workflow.py +1 -1
- metadata/generated/schema/entity/bot.py +1 -1
- metadata/generated/schema/entity/classification/__init__.py +1 -1
- metadata/generated/schema/entity/classification/classification.py +2 -2
- metadata/generated/schema/entity/classification/tag.py +2 -2
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/apiCollection.py +4 -2
- metadata/generated/schema/entity/data/apiEndpoint.py +4 -2
- metadata/generated/schema/entity/data/chart.py +4 -3
- metadata/generated/schema/entity/data/container.py +4 -2
- metadata/generated/schema/entity/data/dashboard.py +4 -2
- metadata/generated/schema/entity/data/dashboardDataModel.py +5 -2
- metadata/generated/schema/entity/data/database.py +7 -7
- metadata/generated/schema/entity/data/databaseSchema.py +5 -2
- metadata/generated/schema/entity/data/glossary.py +2 -2
- metadata/generated/schema/entity/data/glossaryTerm.py +3 -2
- metadata/generated/schema/entity/data/metric.py +196 -0
- metadata/generated/schema/entity/data/mlmodel.py +4 -2
- metadata/generated/schema/entity/data/pipeline.py +4 -3
- metadata/generated/schema/entity/data/query.py +3 -5
- metadata/generated/schema/entity/data/report.py +1 -1
- metadata/generated/schema/entity/data/searchIndex.py +4 -2
- metadata/generated/schema/entity/data/storedProcedure.py +4 -2
- metadata/generated/schema/entity/data/table.py +36 -3
- metadata/generated/schema/entity/data/topic.py +4 -3
- metadata/generated/schema/entity/docStore/__init__.py +1 -1
- metadata/generated/schema/entity/docStore/document.py +1 -1
- metadata/generated/schema/entity/domains/__init__.py +1 -1
- metadata/generated/schema/entity/domains/dataProduct.py +1 -1
- metadata/generated/schema/entity/domains/domain.py +1 -1
- metadata/generated/schema/entity/events/__init__.py +1 -1
- metadata/generated/schema/entity/events/webhook.py +19 -2
- metadata/generated/schema/entity/feed/__init__.py +1 -1
- metadata/generated/schema/entity/feed/assets.py +1 -1
- metadata/generated/schema/entity/feed/customProperty.py +1 -1
- metadata/generated/schema/entity/feed/description.py +1 -1
- metadata/generated/schema/entity/feed/domain.py +1 -1
- metadata/generated/schema/entity/feed/entityInfo.py +1 -1
- metadata/generated/schema/entity/feed/owner.py +1 -1
- metadata/generated/schema/entity/feed/suggestion.py +1 -1
- metadata/generated/schema/entity/feed/tag.py +1 -1
- metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
- metadata/generated/schema/entity/feed/thread.py +1 -1
- metadata/generated/schema/entity/policies/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +4 -1
- metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
- metadata/generated/schema/entity/policies/filters.py +1 -1
- metadata/generated/schema/entity/policies/policy.py +1 -1
- metadata/generated/schema/entity/services/__init__.py +1 -1
- metadata/generated/schema/entity/services/apiService.py +7 -7
- metadata/generated/schema/entity/services/connections/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/{apiService → api}/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/{apiService → api}/restConnection.py +15 -7
- metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/connectionBasicType.py +29 -1
- metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +41 -0
- metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/athenaConnection.py +5 -1
- metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +11 -0
- metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/exasolConnection.py +84 -0
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/impalaConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +5 -1
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +8 -1
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +5 -1
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +5 -1
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +5 -1
- metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +9 -1
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/teradataConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +7 -2
- metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +69 -0
- metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +65 -0
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +43 -0
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/serviceConnection.py +3 -3
- metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
- metadata/generated/schema/entity/services/dashboardService.py +5 -2
- metadata/generated/schema/entity/services/databaseService.py +5 -2
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +2 -2
- metadata/generated/schema/entity/services/metadataService.py +2 -2
- metadata/generated/schema/entity/services/mlmodelService.py +2 -2
- metadata/generated/schema/entity/services/pipelineService.py +11 -2
- metadata/generated/schema/entity/services/searchService.py +2 -2
- metadata/generated/schema/entity/services/serviceType.py +2 -2
- metadata/generated/schema/entity/services/storageService.py +2 -2
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +1 -1
- metadata/generated/schema/entity/teams/role.py +1 -1
- metadata/generated/schema/entity/teams/team.py +1 -1
- metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
- metadata/generated/schema/entity/teams/user.py +1 -1
- metadata/generated/schema/entity/type.py +1 -1
- metadata/generated/schema/entity/utils/__init__.py +1 -1
- metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
- metadata/generated/schema/entity/utils/servicesCount.py +1 -1
- metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
- metadata/generated/schema/events/__init__.py +1 -1
- metadata/generated/schema/events/alertMetrics.py +1 -1
- metadata/generated/schema/events/api/__init__.py +1 -1
- metadata/generated/schema/events/api/createEventSubscription.py +1 -1
- metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +69 -0
- metadata/generated/schema/events/api/eventsRecord.py +37 -0
- metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -4
- metadata/generated/schema/events/api/typedEvent.py +46 -0
- metadata/generated/schema/events/emailAlertConfig.py +1 -1
- metadata/generated/schema/events/eventFilterRule.py +1 -1
- metadata/generated/schema/events/eventSubscription.py +15 -46
- metadata/generated/schema/events/eventSubscriptionOffset.py +7 -2
- metadata/generated/schema/events/failedEvent.py +1 -1
- metadata/generated/schema/events/failedEventResponse.py +38 -0
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/statusContext.py +43 -0
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionStatus.py +78 -0
- metadata/generated/schema/events/testDestinationStatus.py +88 -0
- metadata/generated/schema/governance/workflows/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/__init__.py +5 -0
- metadata/generated/schema/governance/workflows/elements/edge.py +29 -0
- metadata/generated/schema/governance/workflows/elements/nodeSubType.py +16 -0
- metadata/generated/schema/governance/workflows/elements/nodeType.py +14 -0
- metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +5 -0
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +44 -0
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +49 -0
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +42 -0
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +30 -0
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +30 -0
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +57 -0
- metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +3 -0
- metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +43 -0
- metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +44 -0
- metadata/generated/schema/{entity/data/metrics.py → governance/workflows/workflowDefinition.py} +36 -49
- metadata/generated/schema/governance/workflows/workflowInstance.py +43 -0
- metadata/generated/schema/governance/workflows/workflowInstanceState.py +66 -0
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +53 -0
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -9
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +37 -2
- metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +42 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/testSuitePipeline.py +4 -1
- metadata/generated/schema/metadataIngestion/workflow.py +13 -1
- metadata/generated/schema/monitoring/__init__.py +1 -1
- metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
- metadata/generated/schema/security/__init__.py +1 -1
- metadata/generated/schema/security/client/__init__.py +1 -1
- metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
- metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
- metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
- metadata/generated/schema/security/credentials/__init__.py +1 -1
- metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
- metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
- metadata/generated/schema/security/credentials/basicAuth.py +1 -1
- metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
- metadata/generated/schema/security/credentials/gcpValues.py +1 -1
- metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
- metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
- metadata/generated/schema/security/sasl/__init__.py +1 -1
- metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
- metadata/generated/schema/security/secrets/__init__.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
- metadata/generated/schema/security/securityConfiguration.py +1 -1
- metadata/generated/schema/security/ssl/__init__.py +1 -1
- metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
- metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
- metadata/generated/schema/settings/__init__.py +1 -1
- metadata/generated/schema/settings/settings.py +7 -1
- metadata/generated/schema/system/__init__.py +1 -1
- metadata/generated/schema/system/entityError.py +1 -1
- metadata/generated/schema/system/eventPublisherJob.py +2 -2
- metadata/generated/schema/system/indexingError.py +1 -1
- metadata/generated/schema/system/limitsResponse.py +1 -1
- metadata/generated/schema/system/ui/__init__.py +1 -1
- metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
- metadata/generated/schema/system/ui/page.py +1 -1
- metadata/generated/schema/system/validationResponse.py +1 -1
- metadata/generated/schema/tests/__init__.py +1 -1
- metadata/generated/schema/tests/assigned.py +1 -1
- metadata/generated/schema/tests/basic.py +19 -4
- metadata/generated/schema/tests/customMetric.py +1 -1
- metadata/generated/schema/tests/dataQualityReport.py +1 -1
- metadata/generated/schema/tests/resolved.py +1 -1
- metadata/generated/schema/tests/testCase.py +6 -2
- metadata/generated/schema/tests/testCaseResolutionStatus.py +17 -2
- metadata/generated/schema/tests/testDefinition.py +1 -1
- metadata/generated/schema/tests/testSuite.py +9 -2
- metadata/generated/schema/type/__init__.py +1 -1
- metadata/generated/schema/type/apiSchema.py +1 -1
- metadata/generated/schema/type/assetCertification.py +26 -0
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +1 -1
- metadata/generated/schema/type/bulkOperationResult.py +1 -1
- metadata/generated/schema/type/changeEvent.py +1 -1
- metadata/generated/schema/type/changeEventType.py +1 -1
- metadata/generated/schema/type/collectionDescriptor.py +1 -1
- metadata/generated/schema/type/csvDocumentation.py +1 -1
- metadata/generated/schema/type/csvErrorType.py +1 -1
- metadata/generated/schema/type/csvFile.py +1 -1
- metadata/generated/schema/type/csvImportResult.py +1 -1
- metadata/generated/schema/type/customProperties/__init__.py +1 -1
- metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
- metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
- metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
- metadata/generated/schema/type/customProperty.py +8 -1
- metadata/generated/schema/type/dailyCount.py +1 -1
- metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
- metadata/generated/schema/type/entityHierarchy.py +1 -1
- metadata/generated/schema/type/entityHistory.py +1 -1
- metadata/generated/schema/type/entityLineage.py +1 -1
- metadata/generated/schema/type/entityReference.py +1 -1
- metadata/generated/schema/type/entityReferenceList.py +1 -1
- metadata/generated/schema/type/entityRelationship.py +1 -1
- metadata/generated/schema/type/entityUsage.py +1 -1
- metadata/generated/schema/type/filterPattern.py +1 -1
- metadata/generated/schema/type/function.py +1 -1
- metadata/generated/schema/type/include.py +1 -1
- metadata/generated/schema/type/jdbcConnection.py +1 -1
- metadata/generated/schema/type/lifeCycle.py +1 -1
- metadata/generated/schema/type/paging.py +1 -1
- metadata/generated/schema/type/profile.py +1 -1
- metadata/generated/schema/type/queryParserData.py +1 -1
- metadata/generated/schema/type/reaction.py +1 -1
- metadata/generated/schema/type/schedule.py +1 -1
- metadata/generated/schema/type/schema.py +1 -1
- metadata/generated/schema/type/tableQuery.py +1 -1
- metadata/generated/schema/type/tableUsageCount.py +1 -1
- metadata/generated/schema/type/tagLabel.py +1 -1
- metadata/generated/schema/type/usageDetails.py +1 -1
- metadata/generated/schema/type/usageRequest.py +1 -1
- metadata/generated/schema/type/votes.py +1 -1
- metadata/ingestion/api/parser.py +14 -0
- metadata/ingestion/models/custom_basemodel_validation.py +80 -0
- metadata/ingestion/models/custom_pydantic.py +33 -1
- metadata/ingestion/models/custom_types.py +2 -0
- metadata/ingestion/models/entity_interface.py +71 -0
- metadata/ingestion/ometa/mixins/es_mixin.py +66 -8
- metadata/ingestion/ometa/routes.py +4 -2
- metadata/ingestion/processor/query_parser.py +2 -2
- metadata/ingestion/source/api/api_service.py +212 -0
- metadata/ingestion/source/api/rest/connection.py +93 -0
- metadata/ingestion/source/api/rest/metadata.py +278 -0
- metadata/ingestion/source/api/rest/models.py +41 -0
- metadata/ingestion/source/api/rest/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/domodashboard/service_spec.py +6 -0
- metadata/ingestion/source/dashboard/lightdash/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/looker/metadata.py +33 -4
- metadata/ingestion/source/dashboard/looker/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/metabase/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/mode/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/mstr/client.py +3 -2
- metadata/ingestion/source/dashboard/mstr/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/powerbi/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/qlikcloud/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/qliksense/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/quicksight/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/redash/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/sigma/__init__.py +0 -0
- metadata/ingestion/source/dashboard/sigma/client.py +186 -0
- metadata/ingestion/source/dashboard/sigma/connection.py +67 -0
- metadata/ingestion/source/dashboard/sigma/metadata.py +331 -0
- metadata/ingestion/source/dashboard/sigma/models.py +97 -0
- metadata/ingestion/source/dashboard/sigma/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/superset/service_spec.py +4 -0
- metadata/ingestion/source/dashboard/tableau/service_spec.py +4 -0
- metadata/ingestion/source/database/athena/service_spec.py +10 -0
- metadata/ingestion/source/database/azuresql/service_spec.py +10 -0
- metadata/ingestion/source/database/bigquery/connection.py +28 -2
- metadata/ingestion/source/database/bigquery/lineage.py +29 -2
- metadata/ingestion/source/database/bigquery/metadata.py +1 -25
- metadata/ingestion/source/database/bigquery/profiler/__init__.py +0 -0
- metadata/ingestion/source/database/bigquery/profiler/profiler.py +30 -0
- metadata/ingestion/source/database/bigquery/profiler/system.py +165 -0
- metadata/ingestion/source/database/bigquery/queries.py +69 -1
- metadata/ingestion/source/database/bigquery/service_spec.py +14 -0
- metadata/ingestion/source/database/bigtable/service_spec.py +4 -0
- metadata/ingestion/source/database/clickhouse/service_spec.py +12 -0
- metadata/ingestion/source/database/common_db_source.py +150 -147
- metadata/ingestion/source/database/common_nosql_source.py +0 -14
- metadata/ingestion/source/database/couchbase/metadata.py +62 -2
- metadata/ingestion/source/database/couchbase/models.py +31 -0
- metadata/ingestion/source/database/couchbase/queries.py +6 -1
- metadata/ingestion/source/database/couchbase/service_spec.py +4 -0
- metadata/ingestion/source/database/database_service.py +15 -22
- metadata/ingestion/source/database/databricks/metadata.py +12 -1
- metadata/ingestion/source/database/databricks/service_spec.py +16 -0
- metadata/ingestion/source/database/datalake/clients/gcs.py +6 -4
- metadata/ingestion/source/database/datalake/metadata.py +2 -13
- metadata/ingestion/source/database/datalake/service_spec.py +9 -0
- metadata/ingestion/source/database/db2/lineage.py +46 -0
- metadata/ingestion/source/database/db2/service_spec.py +9 -0
- metadata/ingestion/source/database/dbt/metadata.py +3 -6
- metadata/ingestion/source/database/dbt/service_spec.py +4 -0
- metadata/ingestion/source/database/deltalake/metadata.py +1 -12
- metadata/ingestion/source/database/deltalake/service_spec.py +4 -0
- metadata/ingestion/source/database/domodatabase/metadata.py +1 -12
- metadata/ingestion/source/database/domodatabase/service_spec.py +4 -0
- metadata/ingestion/source/database/doris/metadata.py +1 -1
- metadata/ingestion/source/database/doris/service_spec.py +4 -0
- metadata/ingestion/source/database/druid/lineage.py +46 -0
- metadata/ingestion/source/database/druid/service_spec.py +4 -0
- metadata/ingestion/source/database/dynamodb/service_spec.py +7 -0
- metadata/ingestion/source/database/exasol/__init__.py +0 -0
- metadata/ingestion/source/database/exasol/connection.py +87 -0
- metadata/ingestion/source/database/exasol/metadata.py +27 -0
- metadata/ingestion/source/database/exasol/service_spec.py +4 -0
- metadata/ingestion/source/database/glue/metadata.py +49 -19
- metadata/ingestion/source/database/glue/models.py +8 -0
- metadata/ingestion/source/database/glue/service_spec.py +4 -0
- metadata/ingestion/source/database/greenplum/lineage.py +46 -0
- metadata/ingestion/source/database/greenplum/service_spec.py +4 -0
- metadata/ingestion/source/database/hive/lineage.py +46 -0
- metadata/ingestion/source/database/hive/service_spec.py +4 -0
- metadata/ingestion/source/database/iceberg/metadata.py +1 -16
- metadata/ingestion/source/database/iceberg/service_spec.py +4 -0
- metadata/ingestion/source/database/impala/lineage.py +46 -0
- metadata/ingestion/source/database/impala/service_spec.py +4 -0
- metadata/ingestion/source/database/life_cycle_query_mixin.py +3 -5
- metadata/ingestion/source/database/lineage_source.py +124 -32
- metadata/ingestion/source/database/mariadb/lineage.py +46 -0
- metadata/ingestion/source/database/mariadb/service_spec.py +4 -0
- metadata/ingestion/source/database/mongodb/service_spec.py +7 -0
- metadata/ingestion/source/database/mssql/lineage.py +51 -2
- metadata/ingestion/source/database/mssql/metadata.py +2 -44
- metadata/ingestion/source/database/mssql/service_spec.py +10 -0
- metadata/ingestion/source/database/mysql/lineage.py +46 -0
- metadata/ingestion/source/database/mysql/service_spec.py +4 -0
- metadata/ingestion/source/database/oracle/lineage.py +28 -1
- metadata/ingestion/source/database/oracle/metadata.py +2 -23
- metadata/ingestion/source/database/oracle/service_spec.py +10 -0
- metadata/ingestion/source/database/pinotdb/lineage.py +46 -0
- metadata/ingestion/source/database/pinotdb/service_spec.py +4 -0
- metadata/ingestion/source/database/postgres/metadata.py +4 -13
- metadata/ingestion/source/database/postgres/service_spec.py +10 -0
- metadata/ingestion/source/database/postgres/utils.py +26 -0
- metadata/ingestion/source/database/presto/service_spec.py +4 -0
- metadata/ingestion/source/database/query/service_spec.py +9 -0
- metadata/ingestion/source/database/query_parser_source.py +1 -0
- metadata/ingestion/source/database/redshift/connection.py +9 -2
- metadata/ingestion/source/database/redshift/lineage.py +27 -3
- metadata/ingestion/source/database/redshift/metadata.py +2 -27
- metadata/ingestion/source/database/redshift/profiler/__init__.py +0 -0
- metadata/ingestion/source/database/redshift/profiler/profiler.py +14 -0
- metadata/ingestion/source/database/redshift/profiler/system.py +148 -0
- metadata/ingestion/source/database/redshift/queries.py +99 -8
- metadata/ingestion/source/database/redshift/service_spec.py +14 -0
- metadata/ingestion/source/database/redshift/utils.py +3 -3
- metadata/ingestion/source/database/salesforce/metadata.py +1 -12
- metadata/ingestion/source/database/salesforce/service_spec.py +4 -0
- metadata/ingestion/source/database/sample_data.py +137 -34
- metadata/ingestion/source/database/saperp/service_spec.py +4 -0
- metadata/ingestion/source/database/saphana/service_spec.py +7 -0
- metadata/ingestion/source/database/sas/metadata.py +1 -10
- metadata/ingestion/source/database/sas/service_spec.py +4 -0
- metadata/ingestion/source/database/singlestore/lineage.py +46 -0
- metadata/ingestion/source/database/singlestore/service_spec.py +9 -0
- metadata/ingestion/source/database/snowflake/connection.py +6 -1
- metadata/ingestion/source/database/snowflake/lineage.py +31 -2
- metadata/ingestion/source/database/snowflake/metadata.py +1 -24
- metadata/ingestion/source/database/snowflake/models.py +50 -1
- metadata/ingestion/source/database/snowflake/profiler/__init__.py +0 -0
- metadata/ingestion/source/database/snowflake/profiler/profiler.py +26 -0
- metadata/ingestion/source/database/snowflake/profiler/system.py +436 -0
- metadata/ingestion/source/database/snowflake/queries.py +27 -0
- metadata/ingestion/source/database/snowflake/service_spec.py +14 -0
- metadata/ingestion/source/database/sql_column_handler.py +26 -0
- metadata/ingestion/source/database/sqlite/lineage.py +46 -0
- metadata/ingestion/source/database/sqlite/service_spec.py +4 -0
- metadata/ingestion/source/database/stored_procedures_mixin.py +78 -37
- metadata/ingestion/source/database/teradata/lineage.py +46 -0
- metadata/ingestion/source/database/teradata/service_spec.py +4 -0
- metadata/ingestion/source/database/trino/connection.py +60 -23
- metadata/ingestion/source/database/trino/profiler/__init__.py +0 -0
- metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +167 -0
- metadata/ingestion/source/database/trino/service_spec.py +14 -0
- metadata/ingestion/source/database/unitycatalog/metadata.py +3 -24
- metadata/ingestion/source/database/unitycatalog/service_spec.py +18 -0
- metadata/ingestion/source/database/usage_source.py +4 -1
- metadata/ingestion/source/database/vertica/service_spec.py +10 -0
- metadata/ingestion/source/messaging/kafka/service_spec.py +4 -0
- metadata/ingestion/source/messaging/kinesis/service_spec.py +4 -0
- metadata/ingestion/source/messaging/redpanda/service_spec.py +4 -0
- metadata/ingestion/source/metadata/alationsink/service_spec.py +4 -0
- metadata/ingestion/source/metadata/amundsen/service_spec.py +4 -0
- metadata/ingestion/source/metadata/atlas/service_spec.py +4 -0
- metadata/ingestion/source/mlmodel/mlflow/service_spec.py +4 -0
- metadata/ingestion/source/mlmodel/sagemaker/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/airbyte/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/airflow/metadata.py +36 -2
- metadata/ingestion/source/pipeline/airflow/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/dagster/metadata.py +3 -1
- metadata/ingestion/source/pipeline/dagster/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/databrickspipeline/service_spec.py +6 -0
- metadata/ingestion/source/pipeline/dbtcloud/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/domopipeline/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/fivetran/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/flink/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/gluepipeline/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/kafkaconnect/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/nifi/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/openlineage/service_spec.py +4 -0
- metadata/ingestion/source/pipeline/pipeline_service.py +3 -1
- metadata/ingestion/source/pipeline/spline/service_spec.py +4 -0
- metadata/ingestion/source/search/elasticsearch/service_spec.py +4 -0
- metadata/ingestion/source/storage/gcs/metadata.py +2 -2
- metadata/ingestion/source/storage/gcs/service_spec.py +4 -0
- metadata/ingestion/source/storage/s3/service_spec.py +4 -0
- metadata/mixins/sqalchemy/sqa_mixin.py +2 -1
- metadata/parsers/avro_parser.py +51 -16
- metadata/parsers/json_schema_parser.py +45 -16
- metadata/pii/scanners/ner_scanner.py +2 -1
- metadata/profiler/api/models.py +5 -0
- metadata/profiler/interface/profiler_interface.py +26 -8
- metadata/profiler/interface/sqlalchemy/mariadb/profiler_interface.py +5 -3
- metadata/profiler/interface/sqlalchemy/profiler_interface.py +32 -21
- metadata/profiler/interface/sqlalchemy/single_store/profiler_interface.py +3 -3
- metadata/profiler/interface/sqlalchemy/stored_statistics_profiler.py +147 -0
- metadata/profiler/interface/sqlalchemy/trino/profiler_interface.py +7 -2
- metadata/profiler/metrics/system/system.py +69 -374
- metadata/profiler/orm/converter/base.py +2 -1
- metadata/profiler/orm/converter/bigquery/converter.py +1 -1
- metadata/profiler/orm/functions/count.py +9 -0
- metadata/profiler/orm/functions/md5.py +39 -0
- metadata/profiler/orm/functions/substr.py +32 -0
- metadata/profiler/orm/functions/table_metric_computer.py +1 -1
- metadata/profiler/orm/functions/unique_count.py +6 -0
- metadata/profiler/orm/registry.py +27 -2
- metadata/profiler/processor/core.py +8 -4
- metadata/profiler/processor/processor.py +1 -1
- metadata/profiler/processor/sampler/sqlalchemy/snowflake/sampler.py +28 -5
- metadata/profiler/source/{base → database/base}/profiler_source.py +20 -23
- metadata/profiler/source/{bigquery → database/bigquery}/profiler_source.py +1 -1
- metadata/profiler/source/{databricks → database/databricks}/profiler_source.py +4 -4
- metadata/profiler/source/{mariadb → database/mariadb}/metrics/window/first_quartile.py +1 -1
- metadata/profiler/source/{mariadb → database/mariadb}/metrics/window/median.py +1 -1
- metadata/profiler/source/{mariadb → database/mariadb}/metrics/window/third_quartile.py +1 -1
- metadata/profiler/source/{single_store → database/single_store}/metrics/window/first_quartile.py +3 -1
- metadata/profiler/source/{single_store → database/single_store}/metrics/window/median.py +3 -1
- metadata/profiler/source/{single_store → database/single_store}/metrics/window/third_quartile.py +3 -1
- metadata/profiler/source/fetcher/entity_fetcher.py +62 -0
- metadata/profiler/source/fetcher/fetcher_strategy.py +301 -0
- metadata/profiler/source/fetcher/profiler_source_factory.py +89 -0
- metadata/profiler/source/metadata.py +16 -201
- metadata/profiler/source/metadata_ext.py +23 -18
- metadata/profiler/source/model.py +29 -0
- metadata/utils/class_helper.py +5 -0
- metadata/utils/collaborative_super.py +28 -0
- metadata/utils/constants.py +2 -0
- metadata/utils/constraints.py +65 -0
- metadata/utils/dict.py +8 -0
- metadata/utils/dispatch.py +1 -53
- metadata/utils/entity_link.py +8 -2
- metadata/utils/entity_utils.py +93 -0
- metadata/utils/filters.py +15 -0
- metadata/utils/fqn.py +15 -0
- metadata/utils/helpers.py +2 -0
- metadata/utils/importer.py +12 -24
- metadata/utils/logger.py +23 -2
- metadata/utils/lru_cache.py +76 -15
- metadata/utils/profiler_utils.py +1 -9
- metadata/utils/service_spec/__init__.py +5 -0
- metadata/utils/service_spec/default.py +15 -0
- metadata/utils/service_spec/service_spec.py +99 -0
- metadata/utils/ssl_manager.py +33 -0
- metadata/utils/time_utils.py +33 -5
- metadata/workflow/application.py +7 -36
- metadata/workflow/base.py +47 -17
- metadata/workflow/ingestion.py +6 -38
- metadata/workflow/workflow_output_handler.py +11 -8
- metadata/workflow/workflow_status_mixin.py +0 -2
- openmetadata_ingestion-1.6.0.0rc1.dist-info/LICENSE +114 -0
- {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/METADATA +499 -578
- {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/RECORD +908 -728
- {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/entry_points.txt +3 -0
- metadata/profiler/interface/profiler_interface_factory.py +0 -107
- metadata/profiler/metrics/system/queries/bigquery.py +0 -54
- metadata/profiler/metrics/system/queries/redshift.py +0 -103
- metadata/profiler/metrics/system/queries/snowflake.py +0 -191
- metadata/profiler/source/profiler_source_factory.py +0 -54
- openmetadata_ingestion-1.5.11.0.dist-info/LICENSE +0 -201
- /metadata/profiler/source/{bigquery → database/bigquery}/type_mapper.py +0 -0
- /metadata/profiler/source/{mariadb → database/mariadb}/functions/median.py +0 -0
- /metadata/profiler/source/{single_store → database/single_store}/functions/median.py +0 -0
- {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/top_level.txt +0 -0
metadata/utils/ssl_manager.py
CHANGED
|
@@ -45,6 +45,9 @@ from metadata.generated.schema.entity.services.connections.database.salesforceCo
|
|
|
45
45
|
from metadata.generated.schema.entity.services.connections.messaging.kafkaConnection import (
|
|
46
46
|
KafkaConnection,
|
|
47
47
|
)
|
|
48
|
+
from metadata.generated.schema.entity.services.connections.pipeline.matillionConnection import (
|
|
49
|
+
MatillionConnection,
|
|
50
|
+
)
|
|
48
51
|
from metadata.generated.schema.security.ssl import verifySSLConfig
|
|
49
52
|
from metadata.ingestion.connections.builders import init_empty_connection_arguments
|
|
50
53
|
from metadata.ingestion.models.custom_pydantic import CustomSecretStr
|
|
@@ -106,6 +109,21 @@ class SSLManager:
|
|
|
106
109
|
connection.connectionArguments.root["ssl"] = ssl_args
|
|
107
110
|
return connection
|
|
108
111
|
|
|
112
|
+
@setup_ssl.register(MatillionConnection)
|
|
113
|
+
def _(self, connection):
|
|
114
|
+
matillion_connection = cast(MatillionConnection, connection)
|
|
115
|
+
if (
|
|
116
|
+
matillion_connection.connection
|
|
117
|
+
and matillion_connection.connection.sslConfig
|
|
118
|
+
):
|
|
119
|
+
if matillion_connection.connection.sslConfig.root.caCertificate:
|
|
120
|
+
setattr(
|
|
121
|
+
matillion_connection.connection.sslConfig.root,
|
|
122
|
+
"caCertificate",
|
|
123
|
+
self.ca_file_path,
|
|
124
|
+
)
|
|
125
|
+
return connection
|
|
126
|
+
|
|
109
127
|
@setup_ssl.register(PostgresConnection)
|
|
110
128
|
@setup_ssl.register(RedshiftConnection)
|
|
111
129
|
@setup_ssl.register(GreenplumConnection)
|
|
@@ -174,6 +192,21 @@ def check_ssl_and_init(_) -> None:
|
|
|
174
192
|
return None
|
|
175
193
|
|
|
176
194
|
|
|
195
|
+
@check_ssl_and_init.register(MatillionConnection)
|
|
196
|
+
def _(connection) -> Union[SSLManager, None]:
|
|
197
|
+
service_connection = cast(MatillionConnection, connection)
|
|
198
|
+
if service_connection.connection:
|
|
199
|
+
ssl: Optional[
|
|
200
|
+
verifySSLConfig.SslConfig
|
|
201
|
+
] = service_connection.connection.sslConfig
|
|
202
|
+
if ssl and ssl.root.caCertificate:
|
|
203
|
+
ssl_dict: dict[str, Union[CustomSecretStr, None]] = {
|
|
204
|
+
"ca": ssl.root.caCertificate
|
|
205
|
+
}
|
|
206
|
+
return SSLManager(**ssl_dict)
|
|
207
|
+
return None
|
|
208
|
+
|
|
209
|
+
|
|
177
210
|
@check_ssl_and_init.register(cls=SalesforceConnection)
|
|
178
211
|
def _(connection) -> Union[SSLManager, None]:
|
|
179
212
|
service_connection = cast(SalesforceConnection, connection)
|
metadata/utils/time_utils.py
CHANGED
|
@@ -17,28 +17,55 @@ from datetime import datetime, time, timedelta, timezone
|
|
|
17
17
|
from math import floor
|
|
18
18
|
from typing import Union
|
|
19
19
|
|
|
20
|
+
from metadata.generated.schema.type.basic import Timestamp
|
|
21
|
+
from metadata.utils.deprecation import deprecated
|
|
20
22
|
from metadata.utils.helpers import datetime_to_ts
|
|
23
|
+
from metadata.utils.logger import utils_logger
|
|
21
24
|
|
|
25
|
+
logger = utils_logger()
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
|
|
28
|
+
def datetime_to_timestamp(datetime_value: datetime, milliseconds=False) -> int:
|
|
29
|
+
"""Convert a datetime object to timestamp integer. If datetime is timezone aware, it will be converted to UTC.
|
|
30
|
+
If it is naive it will be assumed to be in UTC.
|
|
31
|
+
|
|
32
|
+
# TODO: not sure the milliseconds flag is useful. Maybe this should return a 'Timestamp' object instead.
|
|
25
33
|
|
|
26
34
|
Args:
|
|
27
35
|
datetime_value (_type_): datetime object
|
|
28
36
|
milliseconds (bool, optional): make it a milliseconds timestamp. Defaults to False.
|
|
29
37
|
|
|
30
38
|
Returns:
|
|
31
|
-
int:
|
|
39
|
+
int : timestamp in seconds or milliseconds
|
|
32
40
|
"""
|
|
33
41
|
if not getattr(datetime_value, "timestamp", None):
|
|
34
|
-
raise TypeError(
|
|
35
|
-
|
|
42
|
+
raise TypeError(
|
|
43
|
+
f"Object of type {type(datetime_value).__name__} has not method `timestamp()`"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
datetime_value = (
|
|
47
|
+
datetime_value.replace(tzinfo=timezone.utc)
|
|
48
|
+
if datetime_value.tzinfo is None
|
|
49
|
+
else datetime_value.astimezone(timezone.utc)
|
|
50
|
+
)
|
|
36
51
|
tmsap = datetime_value.timestamp()
|
|
37
52
|
if milliseconds:
|
|
38
53
|
return int(tmsap * 1000)
|
|
39
54
|
return int(tmsap)
|
|
40
55
|
|
|
41
56
|
|
|
57
|
+
def timestamp_to_datetime(ts: Timestamp) -> datetime:
|
|
58
|
+
"""Convert a timestamp to datetime object in UTC.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
ts (Timestamp): timestamp
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
datetime: datetime object
|
|
65
|
+
"""
|
|
66
|
+
return datetime.fromtimestamp(ts.root / 1000, tz=timezone.utc)
|
|
67
|
+
|
|
68
|
+
|
|
42
69
|
def get_beginning_of_day_timestamp_mill(
|
|
43
70
|
days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0
|
|
44
71
|
) -> int:
|
|
@@ -115,6 +142,7 @@ def convert_timestamp(timestamp: str) -> Union[int, float]:
|
|
|
115
142
|
return float(timestamp) / 1000
|
|
116
143
|
|
|
117
144
|
|
|
145
|
+
@deprecated("Use `datetime_to_timestamp` instead", "1.7.0")
|
|
118
146
|
def convert_timestamp_to_milliseconds(timestamp: Union[int, float]) -> int:
|
|
119
147
|
"""convert timestamp to milliseconds
|
|
120
148
|
Args:
|
metadata/workflow/application.py
CHANGED
|
@@ -14,10 +14,6 @@ Generic Workflow entrypoint to execute Applications
|
|
|
14
14
|
from abc import ABC, abstractmethod
|
|
15
15
|
from typing import List, Optional
|
|
16
16
|
|
|
17
|
-
from metadata.config.common import WorkflowExecutionError
|
|
18
|
-
from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
|
|
19
|
-
OpenMetadataConnection,
|
|
20
|
-
)
|
|
21
17
|
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
22
18
|
StackTraceError,
|
|
23
19
|
)
|
|
@@ -25,13 +21,11 @@ from metadata.generated.schema.entity.services.serviceType import ServiceType
|
|
|
25
21
|
from metadata.generated.schema.metadataIngestion.application import (
|
|
26
22
|
OpenMetadataApplicationConfig,
|
|
27
23
|
)
|
|
28
|
-
from metadata.
|
|
29
|
-
from metadata.ingestion.api.step import Step, Summary
|
|
24
|
+
from metadata.ingestion.api.step import Step
|
|
30
25
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
31
26
|
from metadata.utils.importer import import_from_module
|
|
32
27
|
from metadata.utils.logger import ingestion_logger
|
|
33
28
|
from metadata.workflow.base import BaseWorkflow
|
|
34
|
-
from metadata.workflow.workflow_status_mixin import SUCCESS_THRESHOLD_VALUE
|
|
35
29
|
|
|
36
30
|
logger = ingestion_logger()
|
|
37
31
|
|
|
@@ -84,29 +78,24 @@ class ApplicationWorkflow(BaseWorkflow, ABC):
|
|
|
84
78
|
config: OpenMetadataApplicationConfig
|
|
85
79
|
runner: Optional[AppRunner]
|
|
86
80
|
|
|
87
|
-
def __init__(self,
|
|
81
|
+
def __init__(self, config: OpenMetadataApplicationConfig):
|
|
88
82
|
self.runner = None # Will be passed in post-init
|
|
89
|
-
|
|
90
|
-
self.config = OpenMetadataApplicationConfig.model_validate(config_dict)
|
|
83
|
+
self.config = config
|
|
91
84
|
|
|
92
85
|
# Applications are associated to the OpenMetadata Service
|
|
93
86
|
self.service_type: ServiceType = ServiceType.Metadata
|
|
94
87
|
|
|
95
|
-
metadata_config: OpenMetadataConnection = (
|
|
96
|
-
self.config.workflowConfig.openMetadataServerConfig
|
|
97
|
-
)
|
|
98
|
-
log_level: LogLevels = self.config.workflowConfig.loggerLevel
|
|
99
|
-
|
|
100
88
|
super().__init__(
|
|
101
89
|
config=self.config,
|
|
102
|
-
|
|
103
|
-
metadata_config=metadata_config,
|
|
90
|
+
workflow_config=config.workflowConfig,
|
|
104
91
|
service_type=self.service_type,
|
|
105
92
|
)
|
|
106
93
|
|
|
107
94
|
@classmethod
|
|
108
95
|
def create(cls, config_dict: dict):
|
|
109
|
-
|
|
96
|
+
# TODO: Create a parse_gracefully method
|
|
97
|
+
config = OpenMetadataApplicationConfig.model_validate(config_dict)
|
|
98
|
+
return cls(config)
|
|
110
99
|
|
|
111
100
|
def post_init(self) -> None:
|
|
112
101
|
"""
|
|
@@ -134,26 +123,8 @@ class ApplicationWorkflow(BaseWorkflow, ABC):
|
|
|
134
123
|
"""Workflow-specific logic to execute safely"""
|
|
135
124
|
self.runner.run()
|
|
136
125
|
|
|
137
|
-
def calculate_success(self) -> float:
|
|
138
|
-
return self.runner.get_status().calculate_success()
|
|
139
|
-
|
|
140
126
|
def get_failures(self) -> List[StackTraceError]:
|
|
141
127
|
return self.workflow_steps()[0].get_status().failures
|
|
142
128
|
|
|
143
129
|
def workflow_steps(self) -> List[Step]:
|
|
144
130
|
return [self.runner]
|
|
145
|
-
|
|
146
|
-
def raise_from_status_internal(self, raise_warnings=False):
|
|
147
|
-
"""Check failed status in the runner"""
|
|
148
|
-
if (
|
|
149
|
-
self.runner.get_status().failures
|
|
150
|
-
and self.calculate_success() < SUCCESS_THRESHOLD_VALUE
|
|
151
|
-
):
|
|
152
|
-
raise WorkflowExecutionError(
|
|
153
|
-
f"{self.runner.name} reported errors: {Summary.from_step(self.runner)}"
|
|
154
|
-
)
|
|
155
|
-
|
|
156
|
-
if raise_warnings and self.runner.get_status().warnings:
|
|
157
|
-
raise WorkflowExecutionError(
|
|
158
|
-
f"{self.runner.name} reported warning: {Summary.from_step(self.runner)}"
|
|
159
|
-
)
|
metadata/workflow/base.py
CHANGED
|
@@ -16,8 +16,10 @@ import traceback
|
|
|
16
16
|
import uuid
|
|
17
17
|
from abc import ABC, abstractmethod
|
|
18
18
|
from datetime import datetime
|
|
19
|
+
from statistics import mean
|
|
19
20
|
from typing import Any, Dict, List, Optional, TypeVar, Union
|
|
20
21
|
|
|
22
|
+
from metadata.config.common import WorkflowExecutionError
|
|
21
23
|
from metadata.generated.schema.api.services.ingestionPipelines.createIngestionPipeline import (
|
|
22
24
|
CreateIngestionPipelineRequest,
|
|
23
25
|
)
|
|
@@ -32,10 +34,13 @@ from metadata.generated.schema.entity.services.ingestionPipelines.ingestionPipel
|
|
|
32
34
|
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
33
35
|
StackTraceError,
|
|
34
36
|
)
|
|
35
|
-
from metadata.generated.schema.metadataIngestion.workflow import
|
|
37
|
+
from metadata.generated.schema.metadataIngestion.workflow import (
|
|
38
|
+
LogLevels,
|
|
39
|
+
WorkflowConfig,
|
|
40
|
+
)
|
|
36
41
|
from metadata.generated.schema.tests.testSuite import ServiceType
|
|
37
42
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
38
|
-
from metadata.ingestion.api.step import Step
|
|
43
|
+
from metadata.ingestion.api.step import Step, Summary
|
|
39
44
|
from metadata.ingestion.ometa.client_utils import create_ometa_client
|
|
40
45
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
41
46
|
from metadata.timer.repeated_timer import RepeatedTimer
|
|
@@ -49,10 +54,7 @@ from metadata.utils.execution_time_tracker import ExecutionTimeTracker
|
|
|
49
54
|
from metadata.utils.helpers import datetime_to_ts
|
|
50
55
|
from metadata.utils.logger import ingestion_logger, set_loggers_level
|
|
51
56
|
from metadata.workflow.workflow_output_handler import WorkflowOutputHandler
|
|
52
|
-
from metadata.workflow.workflow_status_mixin import
|
|
53
|
-
SUCCESS_THRESHOLD_VALUE,
|
|
54
|
-
WorkflowStatusMixin,
|
|
55
|
-
)
|
|
57
|
+
from metadata.workflow.workflow_status_mixin import WorkflowStatusMixin
|
|
56
58
|
|
|
57
59
|
logger = ingestion_logger()
|
|
58
60
|
|
|
@@ -82,8 +84,7 @@ class BaseWorkflow(ABC, WorkflowStatusMixin):
|
|
|
82
84
|
def __init__(
|
|
83
85
|
self,
|
|
84
86
|
config: Union[Any, Dict],
|
|
85
|
-
|
|
86
|
-
metadata_config: OpenMetadataConnection,
|
|
87
|
+
workflow_config: WorkflowConfig,
|
|
87
88
|
service_type: ServiceType,
|
|
88
89
|
output_handler: WorkflowOutputHandler = WorkflowOutputHandler(),
|
|
89
90
|
):
|
|
@@ -92,19 +93,22 @@ class BaseWorkflow(ABC, WorkflowStatusMixin):
|
|
|
92
93
|
"""
|
|
93
94
|
self.output_handler = output_handler
|
|
94
95
|
self.config = config
|
|
96
|
+
self.workflow_config = workflow_config
|
|
95
97
|
self.service_type = service_type
|
|
96
98
|
self._timer: Optional[RepeatedTimer] = None
|
|
97
99
|
self._ingestion_pipeline: Optional[IngestionPipeline] = None
|
|
98
100
|
self._start_ts = datetime_to_ts(datetime.now())
|
|
101
|
+
|
|
99
102
|
self._execution_time_tracker = ExecutionTimeTracker(
|
|
100
|
-
|
|
103
|
+
self.workflow_config.loggerLevel == LogLevels.DEBUG
|
|
101
104
|
)
|
|
102
105
|
|
|
103
|
-
set_loggers_level(
|
|
106
|
+
set_loggers_level(self.workflow_config.loggerLevel.value)
|
|
104
107
|
|
|
105
108
|
# We create the ometa client at the workflow level and pass it to the steps
|
|
106
|
-
self.
|
|
107
|
-
|
|
109
|
+
self.metadata = create_ometa_client(
|
|
110
|
+
self.workflow_config.openMetadataServerConfig
|
|
111
|
+
)
|
|
108
112
|
self.set_ingestion_pipeline_status(state=PipelineState.running)
|
|
109
113
|
|
|
110
114
|
self.post_init()
|
|
@@ -157,9 +161,22 @@ class BaseWorkflow(ABC, WorkflowStatusMixin):
|
|
|
157
161
|
def execute_internal(self) -> None:
|
|
158
162
|
"""Workflow-specific logic to execute safely"""
|
|
159
163
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
164
|
+
def calculate_success(self) -> Optional[float]:
|
|
165
|
+
"""
|
|
166
|
+
Get the success % of the internal execution.
|
|
167
|
+
Since we'll use this to get a single success % from multiple steps, we'll take
|
|
168
|
+
the minimum success % from all the steps. This way, we can have a proper
|
|
169
|
+
workflow status.
|
|
170
|
+
E.g., if we have no errors on the source but a bunch of them on the sink,
|
|
171
|
+
we still want the flow to be marked as a failure or partial success.
|
|
172
|
+
"""
|
|
173
|
+
if not self.workflow_steps():
|
|
174
|
+
logger.warning("No steps to calculate success")
|
|
175
|
+
return None
|
|
176
|
+
|
|
177
|
+
return mean(
|
|
178
|
+
[step.get_status().calculate_success() for step in self.workflow_steps()]
|
|
179
|
+
)
|
|
163
180
|
|
|
164
181
|
@abstractmethod
|
|
165
182
|
def get_failures(self) -> List[StackTraceError]:
|
|
@@ -169,9 +186,22 @@ class BaseWorkflow(ABC, WorkflowStatusMixin):
|
|
|
169
186
|
def workflow_steps(self) -> List[Step]:
|
|
170
187
|
"""Steps to report status from"""
|
|
171
188
|
|
|
172
|
-
@abstractmethod
|
|
173
189
|
def raise_from_status_internal(self, raise_warnings=False) -> None:
|
|
174
190
|
"""Based on the internal workflow status, raise a WorkflowExecutionError"""
|
|
191
|
+
for step in self.workflow_steps():
|
|
192
|
+
if (
|
|
193
|
+
step.get_status().failures
|
|
194
|
+
and step.get_status().calculate_success()
|
|
195
|
+
< self.workflow_config.successThreshold
|
|
196
|
+
):
|
|
197
|
+
raise WorkflowExecutionError(
|
|
198
|
+
f"{step.name} reported errors: {Summary.from_step(step)}"
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
if raise_warnings and step.status.warnings:
|
|
202
|
+
raise WorkflowExecutionError(
|
|
203
|
+
f"{step.name} reported warning: {Summary.from_step(step)}"
|
|
204
|
+
)
|
|
175
205
|
|
|
176
206
|
def execute(self) -> None:
|
|
177
207
|
"""
|
|
@@ -186,7 +216,7 @@ class BaseWorkflow(ABC, WorkflowStatusMixin):
|
|
|
186
216
|
try:
|
|
187
217
|
self.execute_internal()
|
|
188
218
|
|
|
189
|
-
if
|
|
219
|
+
if self.workflow_config.successThreshold <= self.calculate_success() < 100:
|
|
190
220
|
pipeline_state = PipelineState.partialSuccess
|
|
191
221
|
|
|
192
222
|
# Any unhandled exception breaking the workflow should update the status
|
metadata/workflow/ingestion.py
CHANGED
|
@@ -24,9 +24,6 @@ from abc import ABC, abstractmethod
|
|
|
24
24
|
from typing import List, Tuple, Type, cast
|
|
25
25
|
|
|
26
26
|
from metadata.config.common import WorkflowExecutionError
|
|
27
|
-
from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
|
|
28
|
-
OpenMetadataConnection,
|
|
29
|
-
)
|
|
30
27
|
from metadata.generated.schema.entity.services.connections.serviceConnection import (
|
|
31
28
|
ServiceConnection,
|
|
32
29
|
)
|
|
@@ -38,7 +35,7 @@ from metadata.generated.schema.metadataIngestion.workflow import (
|
|
|
38
35
|
OpenMetadataWorkflowConfig,
|
|
39
36
|
)
|
|
40
37
|
from metadata.ingestion.api.parser import parse_workflow_config_gracefully
|
|
41
|
-
from metadata.ingestion.api.step import Step
|
|
38
|
+
from metadata.ingestion.api.step import Step
|
|
42
39
|
from metadata.ingestion.api.steps import BulkSink, Processor, Sink, Source, Stage
|
|
43
40
|
from metadata.ingestion.models.custom_types import ServiceWithConnectionType
|
|
44
41
|
from metadata.profiler.api.models import ProfilerProcessorConfig
|
|
@@ -51,18 +48,19 @@ from metadata.utils.importer import (
|
|
|
51
48
|
DynamicImportException,
|
|
52
49
|
MissingPluginException,
|
|
53
50
|
import_from_module,
|
|
54
|
-
import_source_class,
|
|
55
51
|
)
|
|
56
52
|
from metadata.utils.logger import ingestion_logger
|
|
53
|
+
from metadata.utils.service_spec.service_spec import import_source_class
|
|
57
54
|
from metadata.workflow.base import BaseWorkflow, InvalidWorkflowJSONException
|
|
58
|
-
from metadata.workflow.workflow_status_mixin import SUCCESS_THRESHOLD_VALUE
|
|
59
55
|
|
|
60
56
|
logger = ingestion_logger()
|
|
61
57
|
|
|
62
58
|
|
|
63
59
|
class IngestionWorkflow(BaseWorkflow, ABC):
|
|
64
60
|
"""
|
|
65
|
-
Base Ingestion Workflow implementation
|
|
61
|
+
Base Ingestion Workflow implementation. This is used for all
|
|
62
|
+
workflows minus the application one, which directly inherits the
|
|
63
|
+
BaseWorkflow.
|
|
66
64
|
"""
|
|
67
65
|
|
|
68
66
|
config: OpenMetadataWorkflowConfig
|
|
@@ -79,14 +77,9 @@ class IngestionWorkflow(BaseWorkflow, ABC):
|
|
|
79
77
|
self.config.source.type
|
|
80
78
|
)
|
|
81
79
|
|
|
82
|
-
metadata_config: OpenMetadataConnection = (
|
|
83
|
-
self.config.workflowConfig.openMetadataServerConfig
|
|
84
|
-
)
|
|
85
|
-
|
|
86
80
|
super().__init__(
|
|
87
81
|
config=config,
|
|
88
|
-
|
|
89
|
-
metadata_config=metadata_config,
|
|
82
|
+
workflow_config=config.workflowConfig,
|
|
90
83
|
service_type=self.service_type,
|
|
91
84
|
)
|
|
92
85
|
|
|
@@ -137,37 +130,12 @@ class IngestionWorkflow(BaseWorkflow, ABC):
|
|
|
137
130
|
if bulk_sink:
|
|
138
131
|
bulk_sink.run()
|
|
139
132
|
|
|
140
|
-
def calculate_success(self) -> float:
|
|
141
|
-
return self.source.get_status().calculate_success()
|
|
142
|
-
|
|
143
133
|
def get_failures(self) -> List[StackTraceError]:
|
|
144
134
|
return self.source.get_status().failures
|
|
145
135
|
|
|
146
136
|
def workflow_steps(self) -> List[Step]:
|
|
147
137
|
return [self.source] + list(self.steps)
|
|
148
138
|
|
|
149
|
-
def raise_from_status_internal(self, raise_warnings=False):
|
|
150
|
-
"""
|
|
151
|
-
Check the status of all steps
|
|
152
|
-
"""
|
|
153
|
-
if (
|
|
154
|
-
self.source.get_status().failures
|
|
155
|
-
and self.calculate_success() < SUCCESS_THRESHOLD_VALUE
|
|
156
|
-
):
|
|
157
|
-
raise WorkflowExecutionError(
|
|
158
|
-
f"{self.source.name} reported errors: {Summary.from_step(self.source)}"
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
for step in self.steps:
|
|
162
|
-
if step.status.failures:
|
|
163
|
-
raise WorkflowExecutionError(
|
|
164
|
-
f"{step.name} reported errors: {Summary.from_step(step)}"
|
|
165
|
-
)
|
|
166
|
-
if raise_warnings and step.status.warnings:
|
|
167
|
-
raise WorkflowExecutionError(
|
|
168
|
-
f"{step.name} reported warnings: {Summary.from_step(step)}"
|
|
169
|
-
)
|
|
170
|
-
|
|
171
139
|
def _retrieve_service_connection_if_needed(self, service_type: ServiceType) -> None:
|
|
172
140
|
"""
|
|
173
141
|
We override the current `serviceConnection` source config object if source workflow service already exists
|
|
@@ -14,6 +14,7 @@ Module handles the output messages from different workflows
|
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
16
|
import time
|
|
17
|
+
from statistics import mean
|
|
17
18
|
from typing import Any, Dict, List, Optional, Type, Union
|
|
18
19
|
|
|
19
20
|
from pydantic import BaseModel
|
|
@@ -114,16 +115,15 @@ class WorkflowOutputHandler:
|
|
|
114
115
|
|
|
115
116
|
self._print_summary(steps)
|
|
116
117
|
|
|
117
|
-
def _print_summary(self, steps: List[Step]):
|
|
118
|
+
def _print_summary(self, steps: List[Step]) -> None:
|
|
118
119
|
failures: List[Failure] = []
|
|
119
|
-
|
|
120
|
-
|
|
120
|
+
if not steps:
|
|
121
|
+
log_ansi_encoded_string(message="No steps to process.")
|
|
122
|
+
return
|
|
121
123
|
|
|
122
124
|
for step in steps:
|
|
123
125
|
step_summary = Summary.from_step(step)
|
|
124
126
|
|
|
125
|
-
total_records += step_summary.records or 0
|
|
126
|
-
total_errors += step_summary.errors or 0
|
|
127
127
|
failures.append(
|
|
128
128
|
Failure(name=step.name, failures=step.get_status().failures)
|
|
129
129
|
)
|
|
@@ -141,15 +141,18 @@ class WorkflowOutputHandler:
|
|
|
141
141
|
log_ansi_encoded_string(message=f"Filtered: {step_summary.filtered}")
|
|
142
142
|
|
|
143
143
|
log_ansi_encoded_string(message=f"Errors: {step_summary.errors}")
|
|
144
|
+
log_ansi_encoded_string(
|
|
145
|
+
message=f"Success %: {step.get_status().calculate_success()}"
|
|
146
|
+
)
|
|
144
147
|
|
|
145
148
|
self._print_failures_if_apply(failures)
|
|
146
149
|
|
|
147
|
-
|
|
150
|
+
# If nothing is processed, we'll have a success of 100%
|
|
151
|
+
success_pct = mean([step.get_status().calculate_success() for step in steps])
|
|
148
152
|
log_ansi_encoded_string(
|
|
149
153
|
color=ANSI.BRIGHT_CYAN,
|
|
150
154
|
bold=True,
|
|
151
|
-
message="Success %: "
|
|
152
|
-
+ f"{round(total_success * 100 / (total_success + total_errors), 2)}",
|
|
155
|
+
message="Workflow Success %: " + f"{round(success_pct, 2)}",
|
|
153
156
|
)
|
|
154
157
|
|
|
155
158
|
def _print_debug_summary(self, steps: List[Step]):
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
Collate Community License Agreement
|
|
2
|
+
Version 1.0
|
|
3
|
+
|
|
4
|
+
This Collate Community License Agreement Version 1.0 (the “Agreement”) sets
|
|
5
|
+
forth the terms on which Collate, Inc. (“Collate”) makes available certain
|
|
6
|
+
software made available by Collate under this Agreement (the “Software”). BY
|
|
7
|
+
INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY OF THE SOFTWARE,
|
|
8
|
+
YOU AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE TO
|
|
9
|
+
SUCH TERMS AND CONDITIONS, YOU MUST NOT USE THE SOFTWARE. IF YOU ARE RECEIVING
|
|
10
|
+
THE SOFTWARE ON BEHALF OF A LEGAL ENTITY, YOU REPRESENT AND WARRANT THAT YOU
|
|
11
|
+
HAVE THE ACTUAL AUTHORITY TO AGREE TO THE TERMS AND CONDITIONS OF THIS
|
|
12
|
+
AGREEMENT ON BEHALF OF SUCH ENTITY. “Licensee” means you, an individual, or
|
|
13
|
+
the entity on whose behalf you are receiving the Software.
|
|
14
|
+
|
|
15
|
+
1. LICENSE GRANT AND CONDITIONS.
|
|
16
|
+
|
|
17
|
+
1.1 License. Subject to the terms and conditions of this Agreement,
|
|
18
|
+
Collate hereby grants to Licensee a non-exclusive, royalty-free,
|
|
19
|
+
worldwide, non-transferable, non-sublicenseable license during the term
|
|
20
|
+
of this Agreement to: (a) use the Software; (b) prepare modifications and
|
|
21
|
+
derivative works of the Software; (c) distribute the Software (including
|
|
22
|
+
without limitation in source code or object code form); and (d) reproduce
|
|
23
|
+
copies of the Software (the “License”). Licensee is not granted the
|
|
24
|
+
right to, and Licensee shall not, exercise the License for an Excluded
|
|
25
|
+
Purpose. For purposes of this Agreement, “Excluded Purpose” means making
|
|
26
|
+
available any software-as-a-service, platform-as-a-service,
|
|
27
|
+
infrastructure-as-a-service or other similar online service that competes
|
|
28
|
+
with Collate products or services that provide the Software.
|
|
29
|
+
|
|
30
|
+
1.2 Conditions. In consideration of the License, Licensee’s distribution
|
|
31
|
+
of the Software is subject to the following conditions:
|
|
32
|
+
|
|
33
|
+
(a) Licensee must cause any Software modified by Licensee to carry
|
|
34
|
+
prominent notices stating that Licensee modified the Software.
|
|
35
|
+
|
|
36
|
+
(b) On each Software copy, Licensee shall reproduce and not remove or
|
|
37
|
+
alter all Collate or third party copyright or other proprietary
|
|
38
|
+
notices contained in the Software, and Licensee must provide the
|
|
39
|
+
notice below with each copy.
|
|
40
|
+
|
|
41
|
+
“This software is made available by Collate, Inc., under the
|
|
42
|
+
terms of the Collate Community License Agreement, Version 1.0
|
|
43
|
+
located at http://www.getcollate.io/collate-community-license. BY
|
|
44
|
+
INSTALLING, DOWNLOADING, ACCESSING, USING OR DISTRIBUTING ANY OF
|
|
45
|
+
THE SOFTWARE, YOU AGREE TO THE TERMS OF SUCH LICENSE AGREEMENT.”
|
|
46
|
+
|
|
47
|
+
1.3 Licensee Modifications. Licensee may add its own copyright notices
|
|
48
|
+
to modifications made by Licensee and may provide additional or different
|
|
49
|
+
license terms and conditions for use, reproduction, or distribution of
|
|
50
|
+
Licensee’s modifications. While redistributing the Software or
|
|
51
|
+
modifications thereof, Licensee may choose to offer, for a fee or free of
|
|
52
|
+
charge, support, warranty, indemnity, or other obligations. Licensee, and
|
|
53
|
+
not Collate, will be responsible for any such obligations.
|
|
54
|
+
|
|
55
|
+
1.4 No Sublicensing. The License does not include the right to
|
|
56
|
+
sublicense the Software, however, each recipient to which Licensee
|
|
57
|
+
provides the Software may exercise the Licenses so long as such recipient
|
|
58
|
+
agrees to the terms and conditions of this Agreement.
|
|
59
|
+
|
|
60
|
+
2. TERM AND TERMINATION. This Agreement will continue unless and until
|
|
61
|
+
earlier terminated as set forth herein. If Licensee breaches any of its
|
|
62
|
+
conditions or obligations under this Agreement, this Agreement will
|
|
63
|
+
terminate automatically and the License will terminate automatically and
|
|
64
|
+
permanently.
|
|
65
|
+
|
|
66
|
+
3. INTELLECTUAL PROPERTY. As between the parties, Collate will retain all
|
|
67
|
+
right, title, and interest in the Software, and all intellectual property
|
|
68
|
+
rights therein. Collate hereby reserves all rights not expressly granted
|
|
69
|
+
to Licensee in this Agreement. Collate hereby reserves all rights in its
|
|
70
|
+
trademarks and service marks, and no licenses therein are granted in this
|
|
71
|
+
Agreement.
|
|
72
|
+
|
|
73
|
+
4. DISCLAIMER. COLLATE HEREBY DISCLAIMS ANY AND ALL WARRANTIES AND
|
|
74
|
+
CONDITIONS, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY
|
|
75
|
+
DISCLAIMS ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
|
|
76
|
+
PURPOSE, WITH RESPECT TO THE SOFTWARE.
|
|
77
|
+
|
|
78
|
+
5. LIMITATION OF LIABILITY. COLLATE WILL NOT BE LIABLE FOR ANY DAMAGES OF
|
|
79
|
+
ANY KIND, INCLUDING BUT NOT LIMITED TO, LOST PROFITS OR ANY CONSEQUENTIAL,
|
|
80
|
+
SPECIAL, INCIDENTAL, INDIRECT, OR DIRECT DAMAGES, HOWEVER CAUSED AND ON ANY
|
|
81
|
+
THEORY OF LIABILITY, ARISING OUT OF THIS AGREEMENT. THE FOREGOING SHALL
|
|
82
|
+
APPLY TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
|
83
|
+
|
|
84
|
+
6.GENERAL.
|
|
85
|
+
|
|
86
|
+
6.1 Governing Law. This Agreement will be governed by and interpreted in
|
|
87
|
+
accordance with the laws of the state of California, without reference to
|
|
88
|
+
its conflict of laws principles. If Licensee is located within the
|
|
89
|
+
United States, all disputes arising out of this Agreement are subject to
|
|
90
|
+
the exclusive jurisdiction of courts located in Santa Clara County,
|
|
91
|
+
California. USA. If Licensee is located outside of the United States,
|
|
92
|
+
any dispute, controversy or claim arising out of or relating to this
|
|
93
|
+
Agreement will be referred to and finally determined by arbitration in
|
|
94
|
+
accordance with the JAMS International Arbitration Rules. The tribunal
|
|
95
|
+
will consist of one arbitrator. The place of arbitration will be Palo
|
|
96
|
+
Alto, California. The language to be used in the arbitral proceedings
|
|
97
|
+
will be English. Judgment upon the award rendered by the arbitrator may
|
|
98
|
+
be entered in any court having jurisdiction thereof.
|
|
99
|
+
|
|
100
|
+
6.2 Assignment. Licensee is not authorized to assign its rights under
|
|
101
|
+
this Agreement to any third party. Collate may freely assign its rights
|
|
102
|
+
under this Agreement to any third party.
|
|
103
|
+
|
|
104
|
+
6.3 Other. This Agreement is the entire agreement between the parties
|
|
105
|
+
regarding the subject matter hereof. No amendment or modification of
|
|
106
|
+
this Agreement will be valid or binding upon the parties unless made in
|
|
107
|
+
writing and signed by the duly authorized representatives of both
|
|
108
|
+
parties. In the event that any provision, including without limitation
|
|
109
|
+
any condition, of this Agreement is held to be unenforceable, this
|
|
110
|
+
Agreement and all licenses and rights granted hereunder will immediately
|
|
111
|
+
terminate. Waiver by Collate of a breach of any provision of this
|
|
112
|
+
Agreement or the failure by Collate to exercise any right hereunder
|
|
113
|
+
will not be construed as a waiver of any subsequent breach of that right
|
|
114
|
+
or as a waiver of any other right.
|