Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Datahub project Datahub DataHubClientConfigV2

From Leeroopedia
Revision as of 14:42, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/Datahub_project_Datahub_DataHubClientConfigV2.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Knowledge Sources
Domains Java_SDK, Metadata_Emission, Client_Configuration
Last Updated 2026-02-10 00:00 GMT

Overview

The top-level immutable configuration class for the DataHub Java SDK V2, wrapping server connection settings, operation mode, emit mode, cache TTLs, and providing conversion to the underlying RestEmitterConfig.

Description

DataHubClientConfigV2 is a Lombok @Value/@Builder class that serves as the primary entry point for configuring a V2 DataHub client. It introduces V2-specific concepts on top of the base REST emitter configuration:

Operation Mode (OperationMode enum):

  • SDK (default) -- User-initiated edits that write to editable aspects (e.g., editableDatasetProperties). Communicated to the server via the X-DataHub-Client-Mode header.
  • INGESTION -- System/pipeline writes that write to system aspects (e.g., datasetProperties).

Key fields:

  • server -- DataHub GMS server URL (required).
  • token -- Authentication token (optional).
  • timeoutMs -- Request timeout in milliseconds (default: 10000).
  • disableSslVerification -- SSL bypass for testing (default: false).
  • maxRetries -- Retry count (default: 3).
  • emitMode -- Controls persistence consistency tradeoff (default: SYNC_PRIMARY).
  • configRefreshIntervalMs -- Server config cache TTL (default: 60000ms; 0 disables, -1 caches forever).
  • aspectCacheTtlMs -- Aspect cache TTL (default: 60000ms).

Key methods:

  • toRestEmitterConfig() -- Converts the V2 config to a RestEmitterConfig, mapping emit mode to async flags and headers (including X-DataHub-Client-Mode and X-DataHub-Sync-Index-Update for SYNC_WAIT mode).
  • fromEnv() -- Static factory that reads DATAHUB_SERVER (or DATAHUB_GMS_URL) and DATAHUB_TOKEN (or DATAHUB_GMS_TOKEN) environment variables. Throws IllegalArgumentException if no server URL is found.

Usage

Use this class as the primary configuration for all V2 DataHub Java SDK clients. It abstracts away the details of REST emitter configuration and provides a clean, V2-specific API.

Code Reference

Source Location

metadata-integration/java/datahub-client/src/main/java/datahub/client/v2/config/DataHubClientConfigV2.java

Signature

@Value
@Builder
public class DataHubClientConfigV2 {

    public enum OperationMode { SDK, INGESTION }

    @Builder.Default @Nonnull OperationMode mode = OperationMode.SDK;
    @Nonnull String server;
    @Nullable String token;
    @Builder.Default int timeoutMs = 10000;
    @Builder.Default boolean disableSslVerification = false;
    @Builder.Default int maxRetries = 3;
    @Builder.Default @Nonnull EmitMode emitMode = EmitMode.SYNC_PRIMARY;
    @Builder.Default long configRefreshIntervalMs = 60000;
    @Builder.Default long aspectCacheTtlMs = 60000;

    @Nonnull
    public RestEmitterConfig toRestEmitterConfig()

    @Nonnull
    public static DataHubClientConfigV2 fromEnv()
}

Import

import datahub.client.v2.config.DataHubClientConfigV2;
import datahub.client.v2.config.DataHubClientConfigV2.OperationMode;

I/O Contract

Inputs

Field Type Default Description
server String (@Nonnull) (required) DataHub GMS server URL
token String (@Nullable) null Authentication bearer token
mode OperationMode SDK SDK (editable aspects) or INGESTION (system aspects)
timeoutMs int 10000 Request timeout in milliseconds
disableSslVerification boolean false Whether to skip SSL verification
maxRetries int 3 Maximum number of retry attempts
emitMode EmitMode SYNC_PRIMARY Persistence consistency mode
configRefreshIntervalMs long 60000 Server config cache TTL (ms); 0 disables, -1 caches forever
aspectCacheTtlMs long 60000 Aspect cache TTL (ms); 0 disables, -1 caches forever

Environment variables for fromEnv():

Variable Fallback Description
DATAHUB_SERVER DATAHUB_GMS_URL Server URL (required)
DATAHUB_TOKEN DATAHUB_GMS_TOKEN Authentication token (optional)

Outputs

  • toRestEmitterConfig() returns a fully configured RestEmitterConfig with appropriate headers and async flags.
  • fromEnv() returns a DataHubClientConfigV2 built from environment variables.

Usage Examples

// Builder-based configuration
DataHubClientConfigV2 config = DataHubClientConfigV2.builder()
    .server("http://localhost:8080")
    .token("my-token")
    .timeoutMs(30000)
    .mode(OperationMode.SDK)
    .emitMode(EmitMode.SYNC_WAIT)
    .build();

// Convert to REST emitter config
RestEmitterConfig restConfig = config.toRestEmitterConfig();

// Environment-based configuration
DataHubClientConfigV2 envConfig = DataHubClientConfigV2.fromEnv();

// Ingestion mode for pipeline writes
DataHubClientConfigV2 ingestionConfig = DataHubClientConfigV2.builder()
    .server("https://datahub.example.com")
    .mode(OperationMode.INGESTION)
    .emitMode(EmitMode.ASYNC)
    .build();

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment