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



307
308
309
# File 'lib/temporalio/env_config.rb', line 307

def initialize(profiles: {})
  super
end

Instance Attribute Details

#profilesObject (readonly)

Returns the value of attribute profiles

Returns:

  • (Object)

    the current value of profiles



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

ClientConfig = Data.define(:profiles)

Class Method Details

.from_h(hash) ⇒ ClientConfig

Create a ClientConfig from a hash

Parameters:

  • hash (Hash)

    Hash representation

Returns:



244
245
246
247
248
249
# File 'lib/temporalio/env_config.rb', line 244

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:



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

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



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

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



313
314
315
# File 'lib/temporalio/env_config.rb', line 313

def to_h
  profiles.transform_values(&:to_h)
end