Class: Daytona::Config
- Inherits:
-
Object
- Object
- Daytona::Config
- Defined in:
- lib/daytona/config.rb
Constant Summary collapse
- API_URL =
'https://app.daytona.io/api'
Instance Attribute Summary collapse
-
#_experimental ⇒ Hash?
Experimental configuration options.
-
#api_key ⇒ String?
API key for authentication with the Daytona API.
-
#api_url ⇒ String?
URL of the Daytona API.
-
#jwt_token ⇒ String?
JWT token for authentication with the Daytona API.
-
#organization_id ⇒ String?
Organization ID for authentication with the Daytona API.
-
#otel_enabled ⇒ Boolean?
Enable OpenTelemetry tracing for SDK operations.
-
#target ⇒ String?
Target environment for sandboxes.
-
#use_deprecated_polling ⇒ Boolean
deprecated
Deprecated.
Polling-only mode will be removed in a future release; event streaming is the default and falls back to polling automatically when WebSockets are unavailable.
Instance Method Summary collapse
-
#initialize(api_key: nil, jwt_token: nil, api_url: nil, organization_id: nil, target: nil, otel_enabled: nil, use_deprecated_polling: nil, _experimental: nil) ⇒ Config
constructor
Initializes a new Daytona::Config object.
-
#read_env(name) ⇒ String?
Reads a DAYTONA_-prefixed environment variable using the same precedence as the Config initializer: runtime ENV first, then .env.local, then .env.
Constructor Details
#initialize(api_key: nil, jwt_token: nil, api_url: nil, organization_id: nil, target: nil, otel_enabled: nil, use_deprecated_polling: nil, _experimental: nil) ⇒ Config
Initializes a new Daytona::Config object.
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/daytona/config.rb', line 108 def initialize( # rubocop:disable Metrics/ParameterLists api_key: nil, jwt_token: nil, api_url: nil, organization_id: nil, target: nil, otel_enabled: nil, use_deprecated_polling: nil, _experimental: nil ) @env_reader = daytona_env_reader @api_key = api_key || @env_reader.call('DAYTONA_API_KEY') @jwt_token = jwt_token || @env_reader.call('DAYTONA_JWT_TOKEN') # Resolved from the process environment only, never from .env / .env.local: # the endpoint decides where the credential above is sent. @api_url = resolve_api_url(api_url) @target = target || @env_reader.call('DAYTONA_TARGET') @organization_id = organization_id || @env_reader.call('DAYTONA_ORGANIZATION_ID') @otel_enabled = otel_enabled @_experimental = _experimental @use_deprecated_polling = resolve_use_deprecated_polling(use_deprecated_polling) end |
Instance Attribute Details
#_experimental ⇒ Hash?
Experimental configuration options
94 95 96 |
# File 'lib/daytona/config.rb', line 94 def _experimental @_experimental end |
#api_key ⇒ String?
API key for authentication with the Daytona API
54 55 56 |
# File 'lib/daytona/config.rb', line 54 def api_key @api_key end |
#api_url ⇒ String?
URL of the Daytona API
64 65 66 |
# File 'lib/daytona/config.rb', line 64 def api_url @api_url end |
#jwt_token ⇒ String?
JWT token for authentication with the Daytona API
59 60 61 |
# File 'lib/daytona/config.rb', line 59 def jwt_token @jwt_token end |
#organization_id ⇒ String?
Organization ID for authentication with the Daytona API
69 70 71 |
# File 'lib/daytona/config.rb', line 69 def organization_id @organization_id end |
#otel_enabled ⇒ Boolean?
Enable OpenTelemetry tracing for SDK operations.
79 80 81 |
# File 'lib/daytona/config.rb', line 79 def otel_enabled @otel_enabled end |
#target ⇒ String?
Target environment for sandboxes
74 75 76 |
# File 'lib/daytona/config.rb', line 74 def target @target end |
#use_deprecated_polling ⇒ Boolean
Polling-only mode will be removed in a future release; event streaming is the default and falls back to polling automatically when WebSockets are unavailable.
Observe sandbox state by legacy polling instead of WebSocket event streaming. Defaults to false (event streaming). Can also be enabled via the DAYTONA_USE_DEPRECATED_POLLING environment variable.
89 90 91 |
# File 'lib/daytona/config.rb', line 89 def use_deprecated_polling @use_deprecated_polling end |
Instance Method Details
#read_env(name) ⇒ String?
Reads a DAYTONA_-prefixed environment variable using the same precedence as the Config initializer: runtime ENV first, then .env.local, then .env. Only names starting with DAYTONA_ are accepted.
139 140 141 |
# File 'lib/daytona/config.rb', line 139 def read_env(name) @env_reader.call(name) end |