Class: Daytona::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/daytona/config.rb

Constant Summary collapse

API_URL =
'https://app.daytona.io/api'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, jwt_token: nil, api_url: nil, organization_id: nil, target: nil, _experimental: nil) ⇒ Config

Initializes a new Daytona::Config object.

Parameters:

  • api_key (String, nil) (defaults to: nil)

    Daytona API key. Defaults to ENV.

  • jwt_token (String, nil) (defaults to: nil)

    Daytona JWT token. Defaults to ENV.

  • api_url (String, nil) (defaults to: nil)

    Daytona API URL. Defaults to ENV or Daytona::Config::API_URL.

  • organization_id (String, nil) (defaults to: nil)

    Daytona organization ID. Defaults to ENV.

  • target (String, nil) (defaults to: nil)

    Daytona target. Defaults to ENV.

  • _experimental (Hash, nil) (defaults to: nil)

    Experimental configuration options.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/daytona/config.rb', line 47

def initialize( # rubocop:disable Metrics/ParameterLists
  api_key: nil,
  jwt_token: nil,
  api_url: nil,
  organization_id: nil,
  target: nil,
  _experimental: nil
)
  # Load environment variables from .env and .env.local files
  # Files are loaded from the current working directory (where the code is executed)
  load_env_files

  @api_key = api_key || ENV.fetch('DAYTONA_API_KEY', nil)
  @jwt_token = jwt_token || ENV.fetch('DAYTONA_JWT_TOKEN', nil)
  @api_url = api_url || ENV.fetch('DAYTONA_API_URL', API_URL)
  @target = target || ENV.fetch('DAYTONA_TARGET', nil)
  @organization_id = organization_id || ENV.fetch('DAYTONA_ORGANIZATION_ID', nil)
  @_experimental = _experimental
end

Instance Attribute Details

#_experimentalHash?

Experimental configuration options

Returns:

  • (Hash, nil)

    Experimental configuration hash



37
38
39
# File 'lib/daytona/config.rb', line 37

def _experimental
  @_experimental
end

#api_keyString?

API key for authentication with the Daytona API

Returns:

  • (String, nil)

    Daytona API key



12
13
14
# File 'lib/daytona/config.rb', line 12

def api_key
  @api_key
end

#api_urlString?

URL of the Daytona API

Returns:

  • (String, nil)

    Daytona API URL



22
23
24
# File 'lib/daytona/config.rb', line 22

def api_url
  @api_url
end

#jwt_tokenString?

JWT token for authentication with the Daytona API

Returns:

  • (String, nil)

    Daytona JWT token



17
18
19
# File 'lib/daytona/config.rb', line 17

def jwt_token
  @jwt_token
end

#organization_idString?

Organization ID for authentication with the Daytona API

Returns:

  • (String, nil)

    Daytona API URL



27
28
29
# File 'lib/daytona/config.rb', line 27

def organization_id
  @organization_id
end

#targetString?

Target environment for sandboxes

Returns:

  • (String, nil)

    Daytona target



32
33
34
# File 'lib/daytona/config.rb', line 32

def target
  @target
end