daytona 0.198.0 → 0.199.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/daytona/common/daytona.rb +9 -0
- data/lib/daytona/daytona.rb +5 -2
- data/lib/daytona/sandbox.rb +18 -0
- data/lib/daytona/sdk/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 10a8c1d98ef86a3f5cb94cef3bb6df610bcfbb5abf59a585eaa76c3b5c527fdd
|
|
4
|
+
data.tar.gz: d6159db7b2febce21f6670c7340a792b10cecedac1b20178bf506a44926d7467
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 434cb81dc3376883e3bdce1456f5d1bcad59c51a6cf0e0390e629fdb61f80fbaccf7475fe210e872e8214b3dc6a399da1e9b9b865e950c855d370bd6cf30fd6e
|
|
7
|
+
data.tar.gz: 7ad98fd8a62ba96305475cb3742376cd7c48d729d3bd2a7b49f0e0a8075ff188671d03285497cf8abfc429c13a7e5cd98b55e29147e88c8f1cc982fe8d4815ce
|
|
@@ -56,6 +56,9 @@ module Daytona
|
|
|
56
56
|
# @return [String, nil] Comma-separated list of allowed domains for the Sandbox
|
|
57
57
|
attr_accessor :domain_allow_list
|
|
58
58
|
|
|
59
|
+
# @return [Integer, nil] Time to live in minutes (0 to disable)
|
|
60
|
+
attr_accessor :ttl_minutes
|
|
61
|
+
|
|
59
62
|
# @return [Boolean, nil] Whether the Sandbox should be ephemeral
|
|
60
63
|
attr_accessor :ephemeral
|
|
61
64
|
|
|
@@ -83,6 +86,7 @@ module Daytona
|
|
|
83
86
|
# @param network_block_all [Boolean, nil] Whether to block all network access for the Sandbox
|
|
84
87
|
# @param network_allow_list [String, nil] Comma-separated list of allowed CIDR network addresses for the Sandbox
|
|
85
88
|
# @param domain_allow_list [String, nil] Comma-separated list of allowed domains for the Sandbox
|
|
89
|
+
# @param ttl_minutes [Integer, nil] Time to live in minutes (0 to disable)
|
|
86
90
|
# @param ephemeral [Boolean, nil] Whether the Sandbox should be ephemeral
|
|
87
91
|
# @param linked_sandbox [String, nil] ID or name of an existing Sandbox to link the new Sandbox to
|
|
88
92
|
def initialize( # rubocop:disable Metrics/MethodLength, Metrics/ParameterLists
|
|
@@ -96,6 +100,7 @@ module Daytona
|
|
|
96
100
|
auto_pause_interval: nil,
|
|
97
101
|
auto_archive_interval: nil,
|
|
98
102
|
auto_delete_interval: nil,
|
|
103
|
+
ttl_minutes: nil,
|
|
99
104
|
volumes: nil,
|
|
100
105
|
secrets: nil,
|
|
101
106
|
network_block_all: nil,
|
|
@@ -114,6 +119,7 @@ module Daytona
|
|
|
114
119
|
@auto_pause_interval = auto_pause_interval
|
|
115
120
|
@auto_archive_interval = auto_archive_interval
|
|
116
121
|
@auto_delete_interval = auto_delete_interval
|
|
122
|
+
@ttl_minutes = ttl_minutes
|
|
117
123
|
@volumes = volumes
|
|
118
124
|
@secrets = secrets
|
|
119
125
|
@network_block_all = network_block_all
|
|
@@ -141,6 +147,7 @@ module Daytona
|
|
|
141
147
|
auto_pause_interval:,
|
|
142
148
|
auto_archive_interval:,
|
|
143
149
|
auto_delete_interval:,
|
|
150
|
+
ttl_minutes:,
|
|
144
151
|
volumes:,
|
|
145
152
|
secrets:,
|
|
146
153
|
network_block_all:,
|
|
@@ -193,6 +200,7 @@ module Daytona
|
|
|
193
200
|
# @param auto_pause_interval [Integer, nil] Auto-pause interval in minutes
|
|
194
201
|
# @param auto_archive_interval [Integer, nil] Auto-archive interval in minutes
|
|
195
202
|
# @param auto_delete_interval [Integer, nil] Auto-delete interval in minutes
|
|
203
|
+
# @param ttl_minutes [Integer, nil] Time to live in minutes (0 to disable)
|
|
196
204
|
# @param volumes [Array<DaytonaApiClient::SandboxVolume>, nil] List of volumes mounts to attach to the Sandbox
|
|
197
205
|
# @param secrets [Hash<String, String>, nil] Organization Secrets to expose in the Sandbox, as a
|
|
198
206
|
# mapping of env var name to existing Secret name
|
|
@@ -235,6 +243,7 @@ module Daytona
|
|
|
235
243
|
# @param auto_pause_interval [Integer, nil] Auto-pause interval in minutes
|
|
236
244
|
# @param auto_archive_interval [Integer, nil] Auto-archive interval in minutes
|
|
237
245
|
# @param auto_delete_interval [Integer, nil] Auto-delete interval in minutes
|
|
246
|
+
# @param ttl_minutes [Integer, nil] Time to live in minutes (0 to disable)
|
|
238
247
|
# @param volumes [Array<DaytonaApiClient::SandboxVolume>, nil] List of volumes mounts to attach to the Sandbox
|
|
239
248
|
# @param secrets [Hash<String, String>, nil] Organization Secrets to expose in the Sandbox, as a
|
|
240
249
|
# mapping of env var name to existing Secret name
|
data/lib/daytona/daytona.rb
CHANGED
|
@@ -99,7 +99,7 @@ module Daytona
|
|
|
99
99
|
#
|
|
100
100
|
# @param params [Daytona::CreateSandboxFromSnapshotParams, Daytona::CreateSandboxFromImageParams, Nil] Sandbox creation parameters
|
|
101
101
|
# @return [Daytona::Sandbox] The created sandbox
|
|
102
|
-
# @raise [Daytona::Sdk::Error] If auto_stop_interval, auto_pause_interval, or
|
|
102
|
+
# @raise [Daytona::Sdk::Error] If auto_stop_interval, auto_pause_interval, auto_archive_interval, or ttl_minutes is negative,
|
|
103
103
|
# or if auto_stop_interval and auto_pause_interval are both non-zero
|
|
104
104
|
def create(params = nil, on_snapshot_create_logs: nil)
|
|
105
105
|
if params.nil?
|
|
@@ -237,7 +237,7 @@ module Daytona
|
|
|
237
237
|
# @param timeout [Numeric] Maximum wait time in seconds (defaults to 60 s).
|
|
238
238
|
# @param on_snapshot_create_logs [Proc]
|
|
239
239
|
# @return [Daytona::Sandbox] The created sandbox
|
|
240
|
-
# @raise [Daytona::Sdk::Error] If auto_stop_interval, auto_pause_interval, or
|
|
240
|
+
# @raise [Daytona::Sdk::Error] If auto_stop_interval, auto_pause_interval, auto_archive_interval, or ttl_minutes is negative,
|
|
241
241
|
# or if auto_stop_interval and auto_pause_interval are both non-zero
|
|
242
242
|
def _create(params, timeout: 60, on_snapshot_create_logs: nil)
|
|
243
243
|
raise Sdk::Error, 'Timeout must be a non-negative number' if timeout.negative?
|
|
@@ -261,6 +261,8 @@ module Daytona
|
|
|
261
261
|
raise Sdk::Error, 'auto_archive_interval must be a non-negative integer'
|
|
262
262
|
end
|
|
263
263
|
|
|
264
|
+
raise Sdk::Error, 'ttl_minutes must be a non-negative integer' if params.ttl_minutes&.negative?
|
|
265
|
+
|
|
264
266
|
labels = params.labels&.dup || {}
|
|
265
267
|
labels[CODE_TOOLBOX_LANGUAGE_LABEL] = params.language.to_s if params.language
|
|
266
268
|
|
|
@@ -274,6 +276,7 @@ module Daytona
|
|
|
274
276
|
auto_pause_interval: params.auto_pause_interval,
|
|
275
277
|
auto_archive_interval: params.auto_archive_interval,
|
|
276
278
|
auto_delete_interval: params.auto_delete_interval,
|
|
279
|
+
ttl_minutes: params.ttl_minutes,
|
|
277
280
|
volumes: params.volumes,
|
|
278
281
|
secrets: params.secrets&.map { |env_var, secret_name| { env_var.to_s => secret_name.to_s } },
|
|
279
282
|
network_block_all: params.network_block_all,
|
data/lib/daytona/sandbox.rb
CHANGED
|
@@ -140,6 +140,9 @@ module Daytona
|
|
|
140
140
|
# Not returned by list results; call #refresh on each item to populate.
|
|
141
141
|
attr_reader :build_info
|
|
142
142
|
|
|
143
|
+
# @return [String, nil] When the sandbox will be automatically destroyed (nil if no TTL is set)
|
|
144
|
+
attr_reader :auto_destroy_at
|
|
145
|
+
|
|
143
146
|
# @return [String] The creation timestamp of the sandbox
|
|
144
147
|
attr_reader :created_at
|
|
145
148
|
|
|
@@ -354,6 +357,19 @@ module Daytona
|
|
|
354
357
|
@auto_pause_interval = interval
|
|
355
358
|
end
|
|
356
359
|
|
|
360
|
+
# Sets the TTL (time to live) for the Sandbox.
|
|
361
|
+
# The TTL is re-anchored from the current time. When it elapses the Sandbox is destroyed,
|
|
362
|
+
# regardless of its current state. Use 0 to disable.
|
|
363
|
+
#
|
|
364
|
+
# @param minutes [Integer]
|
|
365
|
+
# @return [void]
|
|
366
|
+
# @raise [Daytona::Sdk::Error]
|
|
367
|
+
def ttl_minutes=(minutes)
|
|
368
|
+
raise Sdk::Error, 'TTL must be a non-negative integer' if minutes.negative?
|
|
369
|
+
|
|
370
|
+
sandbox_api.set_ttl(id, minutes)
|
|
371
|
+
end
|
|
372
|
+
|
|
357
373
|
# Creates an SSH access token for the sandbox.
|
|
358
374
|
#
|
|
359
375
|
# @param expires_in_minutes [Integer] TThe number of minutes the SSH access token will be valid for
|
|
@@ -821,6 +837,7 @@ module Daytona
|
|
|
821
837
|
:experimental_fork, :experimental_create_snapshot, :pause
|
|
822
838
|
|
|
823
839
|
instrument :archive, :auto_archive_interval=, :auto_delete_interval=, :auto_pause_interval=, :auto_stop_interval=,
|
|
840
|
+
:ttl_minutes=,
|
|
824
841
|
:update_network_settings, :update_secrets, :update_env,
|
|
825
842
|
:create_ssh_access, :delete, :get_user_home_dir, :get_work_dir, :get_metrics, :get_metrics_latest,
|
|
826
843
|
:labels=,
|
|
@@ -973,6 +990,7 @@ module Daytona
|
|
|
973
990
|
@auto_pause_interval = sandbox_dto.auto_pause_interval
|
|
974
991
|
@auto_archive_interval = sandbox_dto.auto_archive_interval
|
|
975
992
|
@auto_delete_interval = sandbox_dto.auto_delete_interval
|
|
993
|
+
@auto_destroy_at = sandbox_dto.auto_destroy_at
|
|
976
994
|
@created_at = sandbox_dto.created_at
|
|
977
995
|
@updated_at = sandbox_dto.updated_at
|
|
978
996
|
@last_activity_at = sandbox_dto.last_activity_at
|
data/lib/daytona/sdk/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: daytona
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.199.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daytona Platforms Inc.
|
|
@@ -85,42 +85,42 @@ dependencies:
|
|
|
85
85
|
requirements:
|
|
86
86
|
- - '='
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: 0.
|
|
88
|
+
version: 0.199.0
|
|
89
89
|
type: :runtime
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
93
|
- - '='
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 0.
|
|
95
|
+
version: 0.199.0
|
|
96
96
|
- !ruby/object:Gem::Dependency
|
|
97
97
|
name: daytona_api_client
|
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
|
99
99
|
requirements:
|
|
100
100
|
- - '='
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: 0.
|
|
102
|
+
version: 0.199.0
|
|
103
103
|
type: :runtime
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - '='
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 0.
|
|
109
|
+
version: 0.199.0
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: daytona_toolbox_api_client
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
114
|
- - '='
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: 0.
|
|
116
|
+
version: 0.199.0
|
|
117
117
|
type: :runtime
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - '='
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: 0.
|
|
123
|
+
version: 0.199.0
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: dotenv
|
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|