diff --git a/lib/temporal/configuration.rb b/lib/temporal/configuration.rb index 0506b61f..5de11112 100644 --- a/lib/temporal/configuration.rb +++ b/lib/temporal/configuration.rb @@ -17,7 +17,8 @@ class Configuration Execution = Struct.new(:namespace, :task_queue, :timeouts, :headers, :search_attributes, keyword_init: true) attr_reader :timeouts, :error_handlers, :capabilities, :payload_codec - attr_accessor :connection_type, :use_error_serialization_v2, :host, :port, :credentials, :identity, + attr_writer :credentials + attr_accessor :connection_type, :use_error_serialization_v2, :host, :port, :identity, :logger, :metrics_adapter, :namespace, :task_queue, :headers, :search_attributes, :header_propagators, :legacy_signals, :no_signals_in_first_task, :connection_options, :log_on_workflow_replay @@ -118,6 +119,12 @@ def timeouts=(new_timeouts) @timeouts = DEFAULT_TIMEOUTS.merge(new_timeouts) end + def credentials + return @credentials.call if @credentials.is_a?(Proc) + + @credentials + end + def for_connection Connection.new( type: connection_type, diff --git a/spec/unit/lib/temporal/configuration_spec.rb b/spec/unit/lib/temporal/configuration_spec.rb index 8ab2e282..ca0a6078 100644 --- a/spec/unit/lib/temporal/configuration_spec.rb +++ b/spec/unit/lib/temporal/configuration_spec.rb @@ -61,6 +61,20 @@ def inject!(_); end subject.identity = new_identity expect(subject.for_connection).to have_attributes(identity: new_identity) end + + it 'default credentials' do + expect(subject.for_connection).to have_attributes(credentials: :this_channel_is_insecure) + end + + it 'override credentials' do + subject.credentials = :test_credentials + expect(subject.for_connection).to have_attributes(credentials: :test_credentials) + end + + it 'override credentials with lambda' do + subject.credentials = -> { :test_credentials } + expect(subject.for_connection).to have_attributes(credentials: :test_credentials) + end end describe '#converter' do