Class: E2B::Services::BaseService

Inherits:
Object
  • Object
show all
Defined in:
lib/e2b/services/base_service.rb

Overview

Base class for sandbox services

E2B sandboxes expose services through the envd daemon on port 49983. This base class handles communication with that daemon using the Connect RPC protocol (gRPC-over-HTTP with JSON encoding).

Direct Known Subclasses

Commands, Filesystem, Pty

Constant Summary collapse

ENVD_PORT =

Default envd port

49983
DEFAULT_USERNAME =
"user"
ENVD_DEFAULT_USER_VERSION =
Gem::Version.new("0.4.0")
ENVD_RECURSIVE_WATCH_VERSION =
Gem::Version.new("0.1.4")

Instance Method Summary collapse

Constructor Details

#initialize(sandbox_id:, sandbox_domain:, api_key:, access_token: nil, envd_version: nil, logger: nil) ⇒ BaseService

Returns a new instance of BaseService.

Parameters:

  • sandbox_id (String)

    Sandbox ID

  • sandbox_domain (String)

    Sandbox domain (e.g., “e2b.app”)

  • api_key (String)

    API key for authentication

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

    Sandbox-specific access token

  • logger (Logger, nil) (defaults to: nil)

    Optional logger



27
28
29
30
31
32
33
34
35
# File 'lib/e2b/services/base_service.rb', line 27

def initialize(sandbox_id:, sandbox_domain:, api_key:, access_token: nil, envd_version: nil, logger: nil)
  @sandbox_id = sandbox_id
  @sandbox_domain = sandbox_domain
  @api_key = api_key
  @access_token = access_token
  @envd_version = envd_version
  @logger = logger
  @envd_client = nil
end