Class: Aidp::Temporal::Configuration
- Inherits:
-
Object
- Object
- Aidp::Temporal::Configuration
- Defined in:
- lib/aidp/temporal/configuration.rb
Overview
Configuration management for Temporal integration Loads settings from aidp.yml and environment variables
Constant Summary collapse
- DEFAULT_CONFIG =
{ enabled: false, # Disabled by default - users must explicitly opt-in target_host: "localhost:7233", namespace: "default", task_queue: "aidp-workflows", tls: false, worker: { max_concurrent_activities: 10, max_concurrent_workflows: 10, shutdown_grace_period: 30 }, timeouts: { workflow_execution: 86400, # 24 hours workflow_run: 3600, # 1 hour activity_start_to_close: 600, # 10 minutes activity_schedule_to_close: 1800, # 30 minutes activity_heartbeat: 60 # 1 minute }, retry: { initial_interval: 1, backoff_coefficient: 2.0, maximum_interval: 60, maximum_attempts: 3 } }.freeze
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
-
#build_connection ⇒ Object
Build a connection with this configuration.
-
#build_worker(connection: nil) ⇒ Object
Build a worker with this configuration.
-
#build_workflow_client(connection: nil) ⇒ Object
Build a workflow client with this configuration.
-
#connection_config ⇒ Object
Get connection configuration.
-
#enabled? ⇒ Boolean
Check if Temporal is enabled.
-
#initialize(project_dir = Dir.pwd) ⇒ Configuration
constructor
A new instance of Configuration.
-
#namespace ⇒ Object
Get namespace.
-
#retry_config ⇒ Object
Get retry policy configuration.
-
#target_host ⇒ Object
Get target host.
-
#task_queue ⇒ Object
Get task queue name.
-
#timeout_config ⇒ Object
Get timeout configuration.
-
#worker_config ⇒ Object
Get worker configuration.
Constructor Details
#initialize(project_dir = Dir.pwd) ⇒ Configuration
Returns a new instance of Configuration.
39 40 41 42 |
# File 'lib/aidp/temporal/configuration.rb', line 39 def initialize(project_dir = Dir.pwd) @project_dir = project_dir @config = load_config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
37 38 39 |
# File 'lib/aidp/temporal/configuration.rb', line 37 def config @config end |
Instance Method Details
#build_connection ⇒ Object
Build a connection with this configuration
95 96 97 |
# File 'lib/aidp/temporal/configuration.rb', line 95 def build_connection Connection.new(connection_config) end |
#build_worker(connection: nil) ⇒ Object
Build a worker with this configuration
100 101 102 103 |
# File 'lib/aidp/temporal/configuration.rb', line 100 def build_worker(connection: nil) conn = connection || build_connection Worker.new(connection: conn, config: worker_config) end |
#build_workflow_client(connection: nil) ⇒ Object
Build a workflow client with this configuration
106 107 108 109 |
# File 'lib/aidp/temporal/configuration.rb', line 106 def build_workflow_client(connection: nil) conn = connection || build_connection WorkflowClient.new(connection: conn) end |
#connection_config ⇒ Object
Get connection configuration
50 51 52 53 54 55 56 57 |
# File 'lib/aidp/temporal/configuration.rb', line 50 def connection_config { target_host: @config[:target_host], namespace: @config[:namespace], tls: @config[:tls], api_key: @config[:api_key] } end |
#enabled? ⇒ Boolean
Check if Temporal is enabled
45 46 47 |
# File 'lib/aidp/temporal/configuration.rb', line 45 def enabled? @config[:enabled] end |
#namespace ⇒ Object
Get namespace
90 91 92 |
# File 'lib/aidp/temporal/configuration.rb', line 90 def namespace @config[:namespace] end |
#retry_config ⇒ Object
Get retry policy configuration
75 76 77 |
# File 'lib/aidp/temporal/configuration.rb', line 75 def retry_config @config[:retry] || {} end |
#target_host ⇒ Object
Get target host
85 86 87 |
# File 'lib/aidp/temporal/configuration.rb', line 85 def target_host @config[:target_host] end |
#task_queue ⇒ Object
Get task queue name
80 81 82 |
# File 'lib/aidp/temporal/configuration.rb', line 80 def task_queue @config[:task_queue] end |
#timeout_config ⇒ Object
Get timeout configuration
70 71 72 |
# File 'lib/aidp/temporal/configuration.rb', line 70 def timeout_config @config[:timeouts] || {} end |
#worker_config ⇒ Object
Get worker configuration
60 61 62 63 64 65 66 67 |
# File 'lib/aidp/temporal/configuration.rb', line 60 def worker_config { task_queue: @config[:task_queue], max_concurrent_activities: @config.dig(:worker, :max_concurrent_activities), max_concurrent_workflows: @config.dig(:worker, :max_concurrent_workflows), shutdown_grace_period: @config.dig(:worker, :shutdown_grace_period) } end |