Class: Temporalio::EnvConfig::ClientConfig

Inherits:
Data
  • Object
show all
Defined in:
lib/temporalio/env_config.rb,
lib/temporalio/env_config.rb

Overview

Container for multiple client configuration profiles.

This class holds a collection of named client profiles loaded from configuration sources and provides methods for profile management and client connection configuration.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(profiles: {}) ⇒ ClientConfig

Create a ClientConfig instance with defaults



305
306
307
# File 'lib/temporalio/env_config.rb', line 305

def initialize(profiles: {})
  super
end

Instance Attribute Details

#profilesObject (readonly)

Returns the value of attribute profiles

Returns:

  • (Object)

    the current value of profiles



231
# File 'lib/temporalio/env_config.rb', line 231

ClientConfig = Data.define(:profiles)

Class Method Details

.from_h(hash) ⇒ ClientConfig

Create a ClientConfig from a hash

Parameters:

  • hash (Hash)

    Hash representation

Returns:



242
243
244
245
246
247
# File 'lib/temporalio/env_config.rb', line 242

def self.from_h(hash)
  profiles = hash.transform_values do |profile_hash|
    ClientConfigProfile.from_h(profile_hash)
  end
  new(profiles: profiles)
end

.load(config_source: nil, config_file_strict: false, override_env_vars: nil) ⇒ ClientConfig

Load all client profiles from given sources.

This does not apply environment variable overrides to the profiles, it only uses an environment variable to find the default config file path (TEMPORAL_CONFIG_FILE).

Parameters:

  • config_source (Pathname, String, nil) (defaults to: nil)

    Configuration source

  • config_file_strict (Boolean) (defaults to: false)

    If true, will error on unrecognized keys

  • override_env_vars (Hash, nil) (defaults to: nil)

    Environment variables to use

Returns:



259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/temporalio/env_config.rb', line 259

def self.load(
  config_source: nil,
  config_file_strict: false,
  override_env_vars: nil
)
  path, data = EnvConfig._source_to_path_and_data(config_source)

  loaded_profiles = Internal::Bridge::EnvConfig.load_client_config(
    path, data, config_file_strict, override_env_vars
  )

  from_h(loaded_profiles)
end

.load_client_connect_options(profile: nil, config_source: nil, disable_file: false, disable_env: false, config_file_strict: false, override_env_vars: nil) ⇒ Array

Load a single client profile and convert to connect config

This is a convenience function that combines loading a profile and converting it to a connect config hash.

Parameters:

  • profile (String, nil) (defaults to: nil)

    The profile to load from the config

  • config_source (Pathname, String, nil) (defaults to: nil)

    Configuration source

  • disable_file (Boolean) (defaults to: false)

    If true, file loading is disabled

  • disable_env (Boolean) (defaults to: false)

    If true, environment variable loading and overriding is disabled

  • config_file_strict (Boolean) (defaults to: false)

    If true, will error on unrecognized keys

  • override_env_vars (Hash, nil) (defaults to: nil)

    Environment variables to use for loading and overrides

Returns:

  • (Array)

    Tuple of [positional_args, keyword_args] that can be splatted to Client.connect



285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# File 'lib/temporalio/env_config.rb', line 285

def self.load_client_connect_options(
  profile: nil,
  config_source: nil,
  disable_file: false,
  disable_env: false,
  config_file_strict: false,
  override_env_vars: nil
)
  prof = ClientConfigProfile.load(
    profile: profile,
    config_source: config_source,
    disable_file: disable_file,
    disable_env: disable_env,
    config_file_strict: config_file_strict,
    override_env_vars: override_env_vars
  )
  prof.to_client_connect_options
end

Instance Method Details

#to_hHash

Convert to a hash that can be used for TOML serialization

Returns:

  • (Hash)

    Dictionary representation



311
312
313
# File 'lib/temporalio/env_config.rb', line 311

def to_h
  profiles.transform_values(&:to_h)
end