From 628fc077f20ed6f496a361a87ffbe0e5bd6a0823 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Tue, 4 Jul 2023 16:31:48 +0300 Subject: [PATCH 1/4] Allow setting credentials as lambda --- lib/temporal/configuration.rb | 9 ++++++++- spec/unit/lib/temporal/configuration_spec.rb | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/temporal/configuration.rb b/lib/temporal/configuration.rb index df26315b..0291b4cb 100644 --- a/lib/temporal/configuration.rb +++ b/lib/temporal/configuration.rb @@ -15,7 +15,8 @@ class Configuration Execution = Struct.new(:namespace, :task_queue, :timeouts, :headers, :search_attributes, keyword_init: true) attr_reader :timeouts, :error_handlers - attr_accessor :connection_type, :converter, :use_error_serialization_v2, :host, :port, :credentials, :identity, + attr_writer :credentials + attr_accessor :connection_type, :converter, :use_error_serialization_v2, :host, :port, :identity, :logger, :metrics_adapter, :namespace, :task_queue, :headers, :search_attributes, :header_propagators, :payload_codec @@ -100,6 +101,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 c1024e34..30034c5c 100644 --- a/spec/unit/lib/temporal/configuration_spec.rb +++ b/spec/unit/lib/temporal/configuration_spec.rb @@ -61,5 +61,19 @@ 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 -end \ No newline at end of file +end From 194b91d9532b479cf727cd7bf6df42ea6ec6cd22 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Mon, 23 Dec 2024 14:03:04 +0200 Subject: [PATCH 2/4] Remove credentials accessor --- lib/temporal/configuration.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/temporal/configuration.rb b/lib/temporal/configuration.rb index b8214e8a..427fc40e 100644 --- a/lib/temporal/configuration.rb +++ b/lib/temporal/configuration.rb @@ -20,8 +20,7 @@ class Configuration attr_writer :credentials attr_accessor :connection_type, :converter, :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, - :credentials + :legacy_signals, :no_signals_in_first_task, :connection_options, :log_on_workflow_replay # See https://docs.temporal.io/blog/activity-timeouts/ for general docs. # We want an infinite execution timeout for cron schedules and other perpetual workflows. From e99b3246efdaa073d80372393c40a013b7c38575 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Mon, 23 Dec 2024 14:03:47 +0200 Subject: [PATCH 3/4] Adjust attr readers --- lib/temporal/configuration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/temporal/configuration.rb b/lib/temporal/configuration.rb index 427fc40e..9d931b12 100644 --- a/lib/temporal/configuration.rb +++ b/lib/temporal/configuration.rb @@ -16,7 +16,7 @@ class Configuration Connection = Struct.new(:type, :host, :port, :credentials, :identity, :converter, :connection_options, keyword_init: true) Execution = Struct.new(:namespace, :task_queue, :timeouts, :headers, :search_attributes, keyword_init: true) - attr_reader :timeouts, :error_handlers + attr_reader :timeouts, :error_handlers, :capabilities, :payload_codec attr_writer :credentials attr_accessor :connection_type, :converter, :use_error_serialization_v2, :host, :port, :identity, :logger, :metrics_adapter, :namespace, :task_queue, :headers, :search_attributes, :header_propagators, From ec3b29d6d9dd17a5ab21fec4fc171d6424b88af5 Mon Sep 17 00:00:00 2001 From: Laurynas Butkus Date: Mon, 23 Dec 2024 14:06:05 +0200 Subject: [PATCH 4/4] Adjust accessors --- lib/temporal/configuration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/temporal/configuration.rb b/lib/temporal/configuration.rb index 9d931b12..5de11112 100644 --- a/lib/temporal/configuration.rb +++ b/lib/temporal/configuration.rb @@ -18,7 +18,7 @@ class Configuration attr_reader :timeouts, :error_handlers, :capabilities, :payload_codec attr_writer :credentials - attr_accessor :connection_type, :converter, :use_error_serialization_v2, :host, :port, :identity, + 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