feat(queries): [Experimental] Allow customization of # of queries in Query tab via env var (#6964)

This commit is contained in:
Gabe Lyons 2023-01-06 10:54:45 -08:00 committed by GitHub
parent d55ad6ca14
commit 5cecc3c48e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 57 additions and 4 deletions

View File

@ -12,6 +12,7 @@ import com.linkedin.datahub.graphql.generated.LineageConfig;
import com.linkedin.datahub.graphql.generated.ManagedIngestionConfig;
import com.linkedin.datahub.graphql.generated.PoliciesConfig;
import com.linkedin.datahub.graphql.generated.Privilege;
import com.linkedin.datahub.graphql.generated.QueriesTabConfig;
import com.linkedin.datahub.graphql.generated.ResourcePrivileges;
import com.linkedin.datahub.graphql.generated.TelemetryConfig;
import com.linkedin.datahub.graphql.generated.TestsConfig;
@ -122,6 +123,11 @@ public class AppConfigResolver implements DataFetcher<CompletableFuture<AppConfi
visualConfig.setLogoUrl(_visualConfiguration.getAssets().getLogoUrl());
visualConfig.setFaviconUrl(_visualConfiguration.getAssets().getFaviconUrl());
}
if (_visualConfiguration != null && _visualConfiguration.getQueriesTab() != null) {
QueriesTabConfig queriesTabConfig = new QueriesTabConfig();
queriesTabConfig.setQueriesTabResultSize(_visualConfiguration.getQueriesTab().getQueriesTabResultSize());
visualConfig.setQueriesTab(queriesTabConfig);
}
appConfig.setVisualConfig(visualConfig);
final TelemetryConfig telemetryConfig = new TelemetryConfig();

View File

@ -196,6 +196,21 @@ type VisualConfig {
Custom favicon url for the homepage & top banner
"""
faviconUrl: String
"""
Configuration for the queries tab
"""
queriesTab: QueriesTabConfig
}
"""
Configuration for the queries tab
"""
type QueriesTabConfig {
"""
Number of queries to show in the queries tab
"""
queriesTabResultSize: Int
}
"""

View File

@ -4,10 +4,16 @@ import { GetDatasetQuery } from '../../../../../../graphql/dataset.generated';
import Query from './Query';
import { useBaseEntity } from '../../../EntityContext';
import getTopNQueries from './utils/getTopNQueries';
import { useAppConfig } from '../../../../../useAppConfig';
export default function QueriesTab() {
const appConfig = useAppConfig();
const baseEntity = useBaseEntity<GetDatasetQuery>();
const topQueries = getTopNQueries(5, baseEntity?.dataset?.usageStats?.buckets);
const topQueries = getTopNQueries(
appConfig?.config?.visualConfig?.queriesTab?.queriesTabResultSize || 5,
baseEntity?.dataset?.usageStats?.buckets,
);
if (topQueries.length === 0) {
return <Empty description="No Sample Queries" image={Empty.PRESENTED_IMAGE_SIMPLE} />;

View File

@ -21,6 +21,9 @@ export const DEFAULT_APP_CONFIG = {
},
visualConfig: {
logoUrl: undefined,
queriesTab: {
queriesTabResultSize: 5,
},
},
authConfig: {
tokenAuthEnabled: false,

View File

@ -37,6 +37,9 @@ query appConfig {
visualConfig {
logoUrl
faviconUrl
queriesTab {
queriesTabResultSize
}
}
telemetryConfig {
enableThirdPartyLogging

View File

@ -0,0 +1,12 @@
package com.linkedin.metadata.config;
import lombok.Data;
@Data
public class QueriesTabConfig {
/**
* The number of queries to show on the queries tab.
*/
public Integer queriesTabResultSize;
}

View File

@ -12,4 +12,9 @@ public class VisualConfiguration {
* Asset related configurations
*/
public AssetsConfiguration assets;
/**
* Queries tab related configurations
*/
public QueriesTabConfig queriesTab;
}

View File

@ -5,7 +5,7 @@ authentication:
# Required if enabled is true! A configurable chain of Authenticators
authenticators:
# Required for authenticating requests with DataHub-issued Access Tokens - best not to remove.
# Required for authenticating requests with DataHub-issued Access Tokens - best not to remove.
- type: com.datahub.authentication.authenticator.DataHubTokenAuthenticator
configs:
# Key used to validate incoming tokens. Should typically be the same as authentication.tokenService.signingKey
@ -28,7 +28,6 @@ authentication:
# Authorization-related configurations.
authorization:
# Configurations for the default DataHub policies-based authorizer.
defaultAuthorizer:
enabled: ${AUTH_POLICIES_ENABLED:true}
@ -36,7 +35,7 @@ authorization:
ingestion:
enabled: ${UI_INGESTION_ENABLED:true}
defaultCliVersion: '${UI_INGESTION_DEFAULT_CLI_VERSION:@cliMajorVersion@}'
defaultCliVersion: "${UI_INGESTION_DEFAULT_CLI_VERSION:@cliMajorVersion@}"
telemetry:
enabledCli: ${CLI_TELEMETRY_ENABLED:true}
@ -92,6 +91,10 @@ platformAnalytics:
enabled: ${DATAHUB_ANALYTICS_ENABLED:true}
visualConfig:
queriesTab:
# Experimental! This env var is subject to change and may be deprecated in the future. The Queries tab has a larger
# overhaul coming.
queriesTabResultSize: ${REACT_APP_QUERIES_TAB_RESULT_SIZE:5}
assets:
logoUrl: ${REACT_APP_LOGO_URL:/assets/platforms/datahublogo.png}
faviconUrl: ${REACT_APP_FAVICON_URL:/assets/favicon.ico}