Class: E2B::Configuration
- Inherits:
-
Object
- Object
- E2B::Configuration
- Defined in:
- lib/e2b/configuration.rb
Overview
Configuration for E2B SDK
Supports environment variables:
- E2B_API_KEY: API key for authentication
- E2B_ACCESS_TOKEN: Access token (alternative auth)
- E2B_DOMAIN: Custom domain (default: e2b.app)
- E2B_API_URL: Custom API URL
- E2B_DEBUG: Enable debug logging
Constant Summary collapse
- DEFAULT_DOMAIN =
Default domain
"e2b.app"- DEFAULT_API_URL =
Default API base URL
"https://api.#{DEFAULT_DOMAIN}"- DEFAULT_REQUEST_TIMEOUT =
Default request timeout in seconds
60- DEFAULT_SANDBOX_TIMEOUT =
Default sandbox timeout in seconds
300- DEFAULT_TIMEOUT_MS =
Default timeout in milliseconds (backward compat)
300_000- DEFAULT_SANDBOX_TIMEOUT_MS =
Default sandbox timeout in milliseconds (backward compat)
300_000- MAX_SANDBOX_TIMEOUT_MS =
Maximum sandbox timeout (24 hours for Pro)
86_400_000
Instance Attribute Summary collapse
-
#access_token ⇒ String?
Access token (alternative auth method).
-
#api_key ⇒ String?
API key for authentication.
-
#api_url ⇒ String
API base URL.
-
#debug ⇒ Boolean
Enable debug logging.
-
#default_template ⇒ String?
Default template ID.
-
#domain ⇒ String
E2B domain.
-
#logger ⇒ Logger?
Optional logger.
-
#request_timeout ⇒ Integer
Request timeout in seconds.
-
#sandbox_timeout_ms ⇒ Integer
Default sandbox timeout in milliseconds (backward compat).
-
#timeout_ms ⇒ Integer
Request timeout in milliseconds (backward compat).
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(api_key: nil, access_token: nil, domain: nil, api_url: nil, request_timeout: DEFAULT_REQUEST_TIMEOUT, timeout_ms: DEFAULT_TIMEOUT_MS, sandbox_timeout_ms: DEFAULT_SANDBOX_TIMEOUT_MS, debug: false) ⇒ Configuration
constructor
Initialize configuration.
-
#valid? ⇒ Boolean
Check if configuration is valid.
-
#validate! ⇒ Object
Validate configuration.
Constructor Details
#initialize(api_key: nil, access_token: nil, domain: nil, api_url: nil, request_timeout: DEFAULT_REQUEST_TIMEOUT, timeout_ms: DEFAULT_TIMEOUT_MS, sandbox_timeout_ms: DEFAULT_SANDBOX_TIMEOUT_MS, debug: false) ⇒ Configuration
Initialize configuration
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/e2b/configuration.rb', line 80 def initialize( api_key: nil, access_token: nil, domain: nil, api_url: nil, request_timeout: DEFAULT_REQUEST_TIMEOUT, timeout_ms: DEFAULT_TIMEOUT_MS, sandbox_timeout_ms: DEFAULT_SANDBOX_TIMEOUT_MS, debug: false ) @api_key = api_key || ENV["E2B_API_KEY"] @access_token = access_token || ENV["E2B_ACCESS_TOKEN"] @domain = domain || ENV["E2B_DOMAIN"] || DEFAULT_DOMAIN @debug = debug || ENV["E2B_DEBUG"]&.downcase == "true" @api_url = api_url || ENV["E2B_API_URL"] || self.class.default_api_url(@domain, debug: @debug) @request_timeout = request_timeout @timeout_ms = timeout_ms @sandbox_timeout_ms = sandbox_timeout_ms @default_template = nil @logger = nil end |
Instance Attribute Details
#access_token ⇒ String?
Returns Access token (alternative auth method).
44 45 46 |
# File 'lib/e2b/configuration.rb', line 44 def access_token @access_token end |
#api_key ⇒ String?
Returns API key for authentication.
41 42 43 |
# File 'lib/e2b/configuration.rb', line 41 def api_key @api_key end |
#api_url ⇒ String
Returns API base URL.
50 51 52 |
# File 'lib/e2b/configuration.rb', line 50 def api_url @api_url end |
#debug ⇒ Boolean
Returns Enable debug logging.
62 63 64 |
# File 'lib/e2b/configuration.rb', line 62 def debug @debug end |
#default_template ⇒ String?
Returns Default template ID.
65 66 67 |
# File 'lib/e2b/configuration.rb', line 65 def default_template @default_template end |
#domain ⇒ String
Returns E2B domain.
47 48 49 |
# File 'lib/e2b/configuration.rb', line 47 def domain @domain end |
#logger ⇒ Logger?
Returns Optional logger.
68 69 70 |
# File 'lib/e2b/configuration.rb', line 68 def logger @logger end |
#request_timeout ⇒ Integer
Returns Request timeout in seconds.
53 54 55 |
# File 'lib/e2b/configuration.rb', line 53 def request_timeout @request_timeout end |
#sandbox_timeout_ms ⇒ Integer
Returns Default sandbox timeout in milliseconds (backward compat).
59 60 61 |
# File 'lib/e2b/configuration.rb', line 59 def sandbox_timeout_ms @sandbox_timeout_ms end |
#timeout_ms ⇒ Integer
Returns Request timeout in milliseconds (backward compat).
56 57 58 |
# File 'lib/e2b/configuration.rb', line 56 def timeout_ms @timeout_ms end |
Class Method Details
.default_api_url(domain, debug: false) ⇒ Object
119 120 121 122 123 |
# File 'lib/e2b/configuration.rb', line 119 def self.default_api_url(domain, debug: false) return "http://localhost:3000" if debug "https://api.#{domain}" end |
Instance Method Details
#valid? ⇒ Boolean
Check if configuration is valid
115 116 117 |
# File 'lib/e2b/configuration.rb', line 115 def valid? (!@api_key.nil? && !@api_key.empty?) || (!@access_token.nil? && !@access_token.empty?) end |
#validate! ⇒ Object
Validate configuration
105 106 107 108 109 110 |
# File 'lib/e2b/configuration.rb', line 105 def validate! if (@api_key.nil? || @api_key.empty?) && (@access_token.nil? || @access_token.empty?) raise ConfigurationError, "E2B API key is required. Set E2B_API_KEY environment variable or pass api_key option." end end |