Sign Up

SecretService

Service for managing organization-scoped Daytona Secrets. Can be used to list, get, create, update and delete Secrets.

Constructors

new SecretService()

def initialize(secret_api, otel_state: nil)

Service for managing organization-scoped Daytona Secrets. Can be used to list, get, create, update and delete Secrets.

A Secret stores a plaintext +value+ that is never returned by the API. When a Secret is referenced while creating a Sandbox, the corresponding env var holds an opaque +placeholder+ that is resolved to the real value only for the Secret's allowed +hosts+.

Parameters:

  • secret_api DaytonaApiClient:SecretApi -
  • otel_state Daytona:OtelState, nil -

Returns:

  • SecretService - a new instance of SecretService

Methods

create()

def create(name, value, description: nil, hosts: nil)

Create a new Secret.

Parameters:

  • name String - Name of the Secret. Must match +^[a-zA-Z_][a-zA-Z0-9_-]*$+ and be unique within the organization (a duplicate name raises a 409 error).
  • value String - Plaintext value of the Secret. Write-only; never returned by the API.
  • description String, nil - Optional description of the Secret.
  • hosts Array<String>, nil - Allowed hosts this Secret may be sent to. Accepts exact hostnames and +*.+ wildcards (no ports).

Returns:

  • Daytona:Secret

delete()

def delete(secret_id)

Delete a Secret.

Parameters:

  • secret_id String -

Returns:

  • void

Raises:

  • DaytonaApiClient:ApiError - If no Secret with the given ID exists (404).

get()

def get(secret_id)

Get a Secret by ID.

Parameters:

  • secret_id String -

Returns:

  • Daytona:Secret

Raises:

  • DaytonaApiClient:ApiError - If no Secret with the given ID exists (404).

list()

def list(cursor: nil, limit: nil, name: nil, sort: nil, order: nil)

List Secrets with cursor-based pagination.

Parameters:

  • cursor String, nil - Pagination cursor from a previous response.
  • limit Integer, nil - Number of results per page (1-200, defaults to 100).
  • name String, nil - Filter by partial name match.
  • sort String, nil - Field to sort by: +name+, +createdAt+ or +updatedAt+ (defaults to +createdAt+).
  • order String, nil - Direction to sort by: +asc+ or +desc+ (defaults to +desc+).

Returns:

  • Daytona:ListSecretsResponse

Raises:

  • Daytona:Sdk:Error -

Examples:

daytona = Daytona::Daytona.new
cursor = nil
loop do
  page = daytona.secret.list(cursor:, limit: 100)
  puts "Fetched #{page.items.length} of #{page.total} secrets"
  page.items.each { |secret| puts "#{secret.name} (#{secret.id})" }
  cursor = page.next_cursor
  break if cursor.nil?
end

update()

def update(secret_id, value: nil, description: nil, hosts: nil)

Update a Secret.

Parameters:

  • secret_id String -
  • value String, nil - New plaintext value. Write-only; never returned by the API.
  • description String, nil - New description of the Secret.
  • hosts Array<String>, nil - Allowed hosts this Secret may be sent to. Accepts exact hostnames and +*.+ wildcards (no ports).

Returns:

  • Daytona:Secret

Raises:

  • DaytonaApiClient:ApiError - If no Secret with the given ID exists (404).