mirror of
https://github.com/datahub-project/datahub.git
synced 2025-08-16 13:16:52 +00:00
feat(Tests): Make DataHub Tests Feature configurable via env variable (#5020)
This commit is contained in:
parent
480fb2e770
commit
b6773e4637
@ -185,6 +185,7 @@ import com.linkedin.datahub.graphql.types.test.TestType;
|
|||||||
import com.linkedin.datahub.graphql.types.usage.UsageType;
|
import com.linkedin.datahub.graphql.types.usage.UsageType;
|
||||||
import com.linkedin.entity.client.EntityClient;
|
import com.linkedin.entity.client.EntityClient;
|
||||||
import com.linkedin.metadata.config.IngestionConfiguration;
|
import com.linkedin.metadata.config.IngestionConfiguration;
|
||||||
|
import com.linkedin.metadata.config.TestsConfiguration;
|
||||||
import com.linkedin.metadata.entity.EntityService;
|
import com.linkedin.metadata.entity.EntityService;
|
||||||
import com.linkedin.metadata.graph.GraphClient;
|
import com.linkedin.metadata.graph.GraphClient;
|
||||||
import com.linkedin.metadata.models.registry.EntityRegistry;
|
import com.linkedin.metadata.models.registry.EntityRegistry;
|
||||||
@ -250,6 +251,7 @@ public class GmsGraphQLEngine {
|
|||||||
private final AuthorizationConfiguration authorizationConfiguration;
|
private final AuthorizationConfiguration authorizationConfiguration;
|
||||||
private final VisualConfiguration visualConfiguration;
|
private final VisualConfiguration visualConfiguration;
|
||||||
private final TelemetryConfiguration telemetryConfiguration;
|
private final TelemetryConfiguration telemetryConfiguration;
|
||||||
|
private final TestsConfiguration testsConfiguration;
|
||||||
|
|
||||||
private final DatasetType datasetType;
|
private final DatasetType datasetType;
|
||||||
private final CorpUserType corpUserType;
|
private final CorpUserType corpUserType;
|
||||||
@ -320,7 +322,8 @@ public class GmsGraphQLEngine {
|
|||||||
final TimelineService timelineService,
|
final TimelineService timelineService,
|
||||||
final boolean supportsImpactAnalysis,
|
final boolean supportsImpactAnalysis,
|
||||||
final VisualConfiguration visualConfiguration,
|
final VisualConfiguration visualConfiguration,
|
||||||
final TelemetryConfiguration telemetryConfiguration
|
final TelemetryConfiguration telemetryConfiguration,
|
||||||
|
final TestsConfiguration testsConfiguration
|
||||||
) {
|
) {
|
||||||
|
|
||||||
this.entityClient = entityClient;
|
this.entityClient = entityClient;
|
||||||
@ -343,6 +346,7 @@ public class GmsGraphQLEngine {
|
|||||||
this.authorizationConfiguration = Objects.requireNonNull(authorizationConfiguration);
|
this.authorizationConfiguration = Objects.requireNonNull(authorizationConfiguration);
|
||||||
this.visualConfiguration = visualConfiguration;
|
this.visualConfiguration = visualConfiguration;
|
||||||
this.telemetryConfiguration = telemetryConfiguration;
|
this.telemetryConfiguration = telemetryConfiguration;
|
||||||
|
this.testsConfiguration = testsConfiguration;
|
||||||
|
|
||||||
this.datasetType = new DatasetType(entityClient);
|
this.datasetType = new DatasetType(entityClient);
|
||||||
this.corpUserType = new CorpUserType(entityClient);
|
this.corpUserType = new CorpUserType(entityClient);
|
||||||
@ -538,7 +542,11 @@ public class GmsGraphQLEngine {
|
|||||||
this.ingestionConfiguration,
|
this.ingestionConfiguration,
|
||||||
this.authenticationConfiguration,
|
this.authenticationConfiguration,
|
||||||
this.authorizationConfiguration,
|
this.authorizationConfiguration,
|
||||||
supportsImpactAnalysis, this.visualConfiguration, this.telemetryConfiguration))
|
this.supportsImpactAnalysis,
|
||||||
|
this.visualConfiguration,
|
||||||
|
this.telemetryConfiguration,
|
||||||
|
this.testsConfiguration
|
||||||
|
))
|
||||||
.dataFetcher("me", new MeResolver(this.entityClient))
|
.dataFetcher("me", new MeResolver(this.entityClient))
|
||||||
.dataFetcher("search", new SearchResolver(this.entityClient))
|
.dataFetcher("search", new SearchResolver(this.entityClient))
|
||||||
.dataFetcher("searchAcrossEntities", new SearchAcrossEntitiesResolver(this.entityClient))
|
.dataFetcher("searchAcrossEntities", new SearchAcrossEntitiesResolver(this.entityClient))
|
||||||
|
@ -14,8 +14,10 @@ import com.linkedin.datahub.graphql.generated.PoliciesConfig;
|
|||||||
import com.linkedin.datahub.graphql.generated.Privilege;
|
import com.linkedin.datahub.graphql.generated.Privilege;
|
||||||
import com.linkedin.datahub.graphql.generated.ResourcePrivileges;
|
import com.linkedin.datahub.graphql.generated.ResourcePrivileges;
|
||||||
import com.linkedin.datahub.graphql.generated.TelemetryConfig;
|
import com.linkedin.datahub.graphql.generated.TelemetryConfig;
|
||||||
|
import com.linkedin.datahub.graphql.generated.TestsConfig;
|
||||||
import com.linkedin.datahub.graphql.generated.VisualConfiguration;
|
import com.linkedin.datahub.graphql.generated.VisualConfiguration;
|
||||||
import com.linkedin.metadata.config.IngestionConfiguration;
|
import com.linkedin.metadata.config.IngestionConfiguration;
|
||||||
|
import com.linkedin.metadata.config.TestsConfiguration;
|
||||||
import com.linkedin.metadata.telemetry.TelemetryConfiguration;
|
import com.linkedin.metadata.telemetry.TelemetryConfiguration;
|
||||||
import com.linkedin.metadata.version.GitVersion;
|
import com.linkedin.metadata.version.GitVersion;
|
||||||
import graphql.schema.DataFetcher;
|
import graphql.schema.DataFetcher;
|
||||||
@ -37,6 +39,7 @@ public class AppConfigResolver implements DataFetcher<CompletableFuture<AppConfi
|
|||||||
private final boolean _supportsImpactAnalysis;
|
private final boolean _supportsImpactAnalysis;
|
||||||
private final VisualConfiguration _visualConfiguration;
|
private final VisualConfiguration _visualConfiguration;
|
||||||
private final TelemetryConfiguration _telemetryConfiguration;
|
private final TelemetryConfiguration _telemetryConfiguration;
|
||||||
|
private final TestsConfiguration _testsConfiguration;
|
||||||
|
|
||||||
public AppConfigResolver(
|
public AppConfigResolver(
|
||||||
final GitVersion gitVersion,
|
final GitVersion gitVersion,
|
||||||
@ -46,7 +49,8 @@ public class AppConfigResolver implements DataFetcher<CompletableFuture<AppConfi
|
|||||||
final AuthorizationConfiguration authorizationConfiguration,
|
final AuthorizationConfiguration authorizationConfiguration,
|
||||||
final boolean supportsImpactAnalysis,
|
final boolean supportsImpactAnalysis,
|
||||||
final VisualConfiguration visualConfiguration,
|
final VisualConfiguration visualConfiguration,
|
||||||
final TelemetryConfiguration telemetryConfiguration) {
|
final TelemetryConfiguration telemetryConfiguration,
|
||||||
|
final TestsConfiguration testsConfiguration) {
|
||||||
_gitVersion = gitVersion;
|
_gitVersion = gitVersion;
|
||||||
_isAnalyticsEnabled = isAnalyticsEnabled;
|
_isAnalyticsEnabled = isAnalyticsEnabled;
|
||||||
_ingestionConfiguration = ingestionConfiguration;
|
_ingestionConfiguration = ingestionConfiguration;
|
||||||
@ -55,6 +59,7 @@ public class AppConfigResolver implements DataFetcher<CompletableFuture<AppConfi
|
|||||||
_supportsImpactAnalysis = supportsImpactAnalysis;
|
_supportsImpactAnalysis = supportsImpactAnalysis;
|
||||||
_visualConfiguration = visualConfiguration;
|
_visualConfiguration = visualConfiguration;
|
||||||
_telemetryConfiguration = telemetryConfiguration;
|
_telemetryConfiguration = telemetryConfiguration;
|
||||||
|
_testsConfiguration = testsConfiguration;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -107,6 +112,10 @@ public class AppConfigResolver implements DataFetcher<CompletableFuture<AppConfi
|
|||||||
telemetryConfig.setEnableThirdPartyLogging(_telemetryConfiguration.isEnableThirdPartyLogging());
|
telemetryConfig.setEnableThirdPartyLogging(_telemetryConfiguration.isEnableThirdPartyLogging());
|
||||||
appConfig.setTelemetryConfig(telemetryConfig);
|
appConfig.setTelemetryConfig(telemetryConfig);
|
||||||
|
|
||||||
|
final TestsConfig testsConfig = new TestsConfig();
|
||||||
|
testsConfig.setEnabled(_testsConfiguration.isEnabled());
|
||||||
|
appConfig.setTestsConfig(testsConfig);
|
||||||
|
|
||||||
return CompletableFuture.completedFuture(appConfig);
|
return CompletableFuture.completedFuture(appConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,6 +127,11 @@ type AppConfig {
|
|||||||
Configurations related to tracking users in the app
|
Configurations related to tracking users in the app
|
||||||
"""
|
"""
|
||||||
telemetryConfig: TelemetryConfig!
|
telemetryConfig: TelemetryConfig!
|
||||||
|
|
||||||
|
"""
|
||||||
|
Configurations related to DataHub tests
|
||||||
|
"""
|
||||||
|
testsConfig: TestsConfig!
|
||||||
}
|
}
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -265,3 +270,13 @@ type ManagedIngestionConfig {
|
|||||||
"""
|
"""
|
||||||
enabled: Boolean!
|
enabled: Boolean!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
Configurations related to DataHub Tests feature
|
||||||
|
"""
|
||||||
|
type TestsConfig {
|
||||||
|
"""
|
||||||
|
Whether Tests feature is enabled
|
||||||
|
"""
|
||||||
|
enabled: Boolean!
|
||||||
|
}
|
||||||
|
@ -28,6 +28,9 @@ export const DEFAULT_APP_CONFIG = {
|
|||||||
telemetryConfig: {
|
telemetryConfig: {
|
||||||
enableThirdPartyLogging: false,
|
enableThirdPartyLogging: false,
|
||||||
},
|
},
|
||||||
|
testsConfig: {
|
||||||
|
enabled: false,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export const AppConfigContext = React.createContext<{
|
export const AppConfigContext = React.createContext<{
|
||||||
|
@ -40,6 +40,9 @@ query appConfig {
|
|||||||
telemetryConfig {
|
telemetryConfig {
|
||||||
enableThirdPartyLogging
|
enableThirdPartyLogging
|
||||||
}
|
}
|
||||||
|
testsConfig {
|
||||||
|
enabled
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.linkedin.metadata.config;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* POJO representing the "tests" configuration block in application.yml.on.yml
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TestsConfiguration {
|
||||||
|
/**
|
||||||
|
* Whether tests are enabled
|
||||||
|
*/
|
||||||
|
public boolean enabled;
|
||||||
|
}
|
@ -3,6 +3,7 @@ package com.linkedin.gms.factory.config;
|
|||||||
import com.datahub.authentication.AuthenticationConfiguration;
|
import com.datahub.authentication.AuthenticationConfiguration;
|
||||||
import com.datahub.authorization.AuthorizationConfiguration;
|
import com.datahub.authorization.AuthorizationConfiguration;
|
||||||
import com.linkedin.metadata.config.IngestionConfiguration;
|
import com.linkedin.metadata.config.IngestionConfiguration;
|
||||||
|
import com.linkedin.metadata.config.TestsConfiguration;
|
||||||
import com.linkedin.metadata.telemetry.TelemetryConfiguration;
|
import com.linkedin.metadata.telemetry.TelemetryConfiguration;
|
||||||
import com.linkedin.gms.factory.spring.YamlPropertySourceFactory;
|
import com.linkedin.gms.factory.spring.YamlPropertySourceFactory;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -28,9 +29,12 @@ public class ConfigurationProvider {
|
|||||||
* Ingestion related configs
|
* Ingestion related configs
|
||||||
*/
|
*/
|
||||||
private IngestionConfiguration ingestion;
|
private IngestionConfiguration ingestion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Telemetry related configs
|
* Telemetry related configs
|
||||||
*/
|
*/
|
||||||
private TelemetryConfiguration telemetry;
|
private TelemetryConfiguration telemetry;
|
||||||
|
/**
|
||||||
|
* Tests related configs
|
||||||
|
*/
|
||||||
|
private TestsConfiguration metadataTests;
|
||||||
}
|
}
|
@ -127,7 +127,8 @@ public class GraphQLEngineFactory {
|
|||||||
_timelineService,
|
_timelineService,
|
||||||
_graphService.supportsMultiHop(),
|
_graphService.supportsMultiHop(),
|
||||||
_visualConfiguration,
|
_visualConfiguration,
|
||||||
_configProvider.getTelemetry()
|
_configProvider.getTelemetry(),
|
||||||
|
_configProvider.getMetadataTests()
|
||||||
).builder().build();
|
).builder().build();
|
||||||
}
|
}
|
||||||
return new GmsGraphQLEngine(
|
return new GmsGraphQLEngine(
|
||||||
@ -148,7 +149,8 @@ public class GraphQLEngineFactory {
|
|||||||
_timelineService,
|
_timelineService,
|
||||||
_graphService.supportsMultiHop(),
|
_graphService.supportsMultiHop(),
|
||||||
_visualConfiguration,
|
_visualConfiguration,
|
||||||
_configProvider.getTelemetry()
|
_configProvider.getTelemetry(),
|
||||||
|
_configProvider.getMetadataTests()
|
||||||
).builder().build();
|
).builder().build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -179,3 +179,6 @@ spring:
|
|||||||
springdoc:
|
springdoc:
|
||||||
cache:
|
cache:
|
||||||
disabled: true
|
disabled: true
|
||||||
|
|
||||||
|
metadataTests:
|
||||||
|
enabled: ${METADATA_TESTS_ENABLED:true}
|
Loading…
x
Reference in New Issue
Block a user