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_apiDaytonaApiClient:SecretApi -otel_stateDaytona:OtelState, nil -
Returns:
SecretService- a new instance of SecretService
Methods
create()
def create(name, value, description: nil, hosts: nil)
Create a new Secret.
Parameters:
nameString - 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).valueString - Plaintext value of the Secret. Write-only; never returned by the API.descriptionString, nil - Optional description of the Secret.hostsArray<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_idString -
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_idString -
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:
cursorString, nil - Pagination cursor from a previous response.limitInteger, nil - Number of results per page (1-200, defaults to 100).nameString, nil - Filter by partial name match.sortString, nil - Field to sort by: +name+, +createdAt+ or +updatedAt+ (defaults to +createdAt+).orderString, 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_idString -valueString, nil - New plaintext value. Write-only; never returned by the API.descriptionString, nil - New description of the Secret.hostsArray<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).