Class: Daytona::SecretService
- Inherits:
-
Object
- Object
- Daytona::SecretService
- Includes:
- Instrumentation
- Defined in:
- lib/daytona/secret_service.rb
Instance Method Summary collapse
-
#create(name, value, description: nil, hosts: nil) ⇒ Daytona::Secret
Create a new Secret.
-
#delete(secret_id) ⇒ void
Delete a Secret.
-
#get(secret_id) ⇒ Daytona::Secret
Get a Secret by ID.
-
#initialize(secret_api, otel_state: nil) ⇒ SecretService
constructor
Service for managing organization-scoped Daytona Secrets.
-
#list(cursor: nil, limit: nil, name: nil, sort: nil, order: nil) ⇒ Daytona::ListSecretsResponse
List Secrets with cursor-based pagination.
-
#update(secret_id, value: nil, description: nil, hosts: nil) ⇒ Daytona::Secret
Update a Secret.
Methods included from Instrumentation
Constructor Details
#initialize(secret_api, otel_state: nil) ⇒ SecretService
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.
19 20 21 22 |
# File 'lib/daytona/secret_service.rb', line 19 def initialize(secret_api, otel_state: nil) @secret_api = secret_api @otel_state = otel_state end |
Instance Method Details
#create(name, value, description: nil, hosts: nil) ⇒ Daytona::Secret
Create a new Secret.
33 34 35 36 37 |
# File 'lib/daytona/secret_service.rb', line 33 def create(name, value, description: nil, hosts: nil) Secret.new(secret_api.create_secret( DaytonaApiClient::CreateSecret.new(name:, value:, description:, hosts:) )) end |
#delete(secret_id) ⇒ void
This method returns an undefined value.
Delete a Secret.
44 |
# File 'lib/daytona/secret_service.rb', line 44 def delete(secret_id) = secret_api.delete_secret(secret_id) |
#get(secret_id) ⇒ Daytona::Secret
Get a Secret by ID.
51 |
# File 'lib/daytona/secret_service.rb', line 51 def get(secret_id) = Secret.new(secret_api.get_secret(secret_id)) |
#list(cursor: nil, limit: nil, name: nil, sort: nil, order: nil) ⇒ Daytona::ListSecretsResponse
List Secrets with cursor-based pagination.
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/daytona/secret_service.rb', line 73 def list(cursor: nil, limit: nil, name: nil, sort: nil, order: nil) raise Sdk::Error, 'limit must be positive integer' if limit && limit < 1 response = secret_api.list_secrets_paginated(cursor:, limit:, name:, sort:, order:) ListSecretsResponse.new( items: response.items.map { |secret| Secret.new(secret) }, total: response.total, next_cursor: response.next_cursor ) end |
#update(secret_id, value: nil, description: nil, hosts: nil) ⇒ Daytona::Secret
Update a Secret.
93 94 95 96 97 98 |
# File 'lib/daytona/secret_service.rb', line 93 def update(secret_id, value: nil, description: nil, hosts: nil) Secret.new(secret_api.update_secret( secret_id, DaytonaApiClient::UpdateSecret.new(value:, description:, hosts:) )) end |