keyenv 1.1.0 → 1.2.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b674e0b30a5f7d531fab1e1029ee40fc1706633030c44227e8fbcbd684334b39
4
- data.tar.gz: 62d26d5f098f32e81341929bb86204bafb7543d7df22efc883f666b01b3ab182
3
+ metadata.gz: fa141048d215759e4f13e3d170f7b013a9976bbe7a4436d30fd81607b9940f5b
4
+ data.tar.gz: 343bd22ca25d9e0e947b7a3177b97a4e8727c74b26d2f6e5982b275d18661dd7
5
5
  SHA512:
6
- metadata.gz: b7d130375c1a7b6d275c8dfa9d8cdc82a88e0f593db5ec6253e6d2a0e7040ddfb7a24d516881b795a6ce6accd58d046a43219d1b3680a30ed89d127b8e1015c3
7
- data.tar.gz: 6cb4ab4ba2e5b1f2b962c899cbb868b738dab39c80c26ff2796a1527dd1fa59972536179ec1406d14cf50e6f38867645ef4c169fc5dba560413adb2184ec4d62
6
+ metadata.gz: 4413c55d51d373f4bcaae2fc9a68d3fd511c8990e6c07cc7fca70622f71c3c415359bc199ea985488c5e2d7b3aeef87556dcf3e61b82432cccc1d8349104ae0b
7
+ data.tar.gz: bc5eb4159cbaa3df2056008ff6fe127b08c9c858521b744cb801aa8e5f51ceee832f1d308dc14c472b021fb8e9d595b5b39e63465d10203bfadb9aa861444d98
data/CHANGELOG.md CHANGED
@@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.2.4](https://github.com/keyenv/ruby-sdk/compare/v1.2.3...v1.2.4) (2026-02-24)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * unwrap data envelope for single-resource API responses ([#5](https://github.com/keyenv/ruby-sdk/issues/5)) ([8303187](https://github.com/keyenv/ruby-sdk/commit/83031875540ffb2cc602059cd98090f0045ec70c))
14
+
15
+ ## [1.2.3](https://github.com/keyenv/ruby-sdk/compare/v1.2.2...v1.2.3) (2026-02-16)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * use trusted publishing for RubyGems releases ([e463d89](https://github.com/keyenv/ruby-sdk/commit/e463d89af72072c9baf2f72ac1245fa4e5eb11a1))
21
+
22
+ ## [1.2.2](https://github.com/keyenv/ruby-sdk/compare/v1.2.1...v1.2.2) (2026-02-16)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * correct version extraction in release workflow ([32a8eb0](https://github.com/keyenv/ruby-sdk/commit/32a8eb09978cd642ef29c163b530d0e7e47828da))
28
+
29
+ ## [1.2.1](https://github.com/keyenv/ruby-sdk/compare/v1.2.0...v1.2.1) (2026-02-07)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * security and correctness fixes with test coverage ([462ec7f](https://github.com/keyenv/ruby-sdk/commit/462ec7f4920871c418962e8f5a14cc538a978b59))
35
+
8
36
  ## [1.2.0](https://github.com/keyenv/ruby-sdk/compare/v1.1.0...v1.2.0) (2026-01-26)
9
37
 
10
38
 
data/lib/keyenv/client.rb CHANGED
@@ -43,7 +43,7 @@ module KeyEnv
43
43
  # @return [User] Current user/token info
44
44
  def get_current_user
45
45
  data = request(:get, "/api/v1/users/me")
46
- User.new(data)
46
+ User.new(data["data"] || data)
47
47
  end
48
48
 
49
49
  # Validate the token and return user info.
@@ -62,7 +62,7 @@ module KeyEnv
62
62
  # @return [Array<Project>] List of projects
63
63
  def list_projects
64
64
  data = request(:get, "/api/v1/projects")
65
- (data["projects"] || []).map { |p| Project.new(p) }
65
+ (data["data"] || []).map { |p| Project.new(p) }
66
66
  end
67
67
 
68
68
  # Get a project by ID.
@@ -71,7 +71,7 @@ module KeyEnv
71
71
  # @return [ProjectWithEnvironments] Project with environments
72
72
  def get_project(project_id:)
73
73
  data = request(:get, "/api/v1/projects/#{project_id}")
74
- ProjectWithEnvironments.new(data)
74
+ ProjectWithEnvironments.new(data["data"] || data)
75
75
  end
76
76
 
77
77
  # Create a new project.
@@ -81,7 +81,7 @@ module KeyEnv
81
81
  # @return [Project] Created project
82
82
  def create_project(team_id:, name:)
83
83
  data = request(:post, "/api/v1/projects", { team_id: team_id, name: name })
84
- Project.new(data)
84
+ Project.new(data["data"] || data)
85
85
  end
86
86
 
87
87
  # Delete a project.
@@ -102,7 +102,7 @@ module KeyEnv
102
102
  # @return [Array<Environment>] List of environments
103
103
  def list_environments(project_id:)
104
104
  data = request(:get, "/api/v1/projects/#{project_id}/environments")
105
- (data["environments"] || []).map { |e| Environment.new(e) }
105
+ (data["data"] || []).map { |e| Environment.new(e) }
106
106
  end
107
107
 
108
108
  # Create a new environment.
@@ -115,7 +115,7 @@ module KeyEnv
115
115
  payload = { name: name }
116
116
  payload[:inherits_from] = inherits_from if inherits_from
117
117
  data = request(:post, "/api/v1/projects/#{project_id}/environments", payload)
118
- Environment.new(data)
118
+ Environment.new(data["data"] || data)
119
119
  end
120
120
 
121
121
  # Delete an environment.
@@ -138,7 +138,7 @@ module KeyEnv
138
138
  # @return [Array<Secret>] List of secrets
139
139
  def list_secrets(project_id:, environment:)
140
140
  data = request(:get, "/api/v1/projects/#{project_id}/environments/#{environment}/secrets")
141
- (data["secrets"] || []).map { |s| Secret.new(s) }
141
+ (data["data"] || []).map { |s| Secret.new(s) }
142
142
  end
143
143
 
144
144
  # Export all secrets with their decrypted values.
@@ -160,7 +160,7 @@ module KeyEnv
160
160
  end
161
161
 
162
162
  data = request(:get, "/api/v1/projects/#{project_id}/environments/#{environment}/secrets/export")
163
- secrets = (data["secrets"] || []).map { |s| SecretWithValue.new(s) }
163
+ secrets = (data["data"] || []).map { |s| SecretWithValue.new(s) }
164
164
 
165
165
  # Store in cache if TTL > 0
166
166
  if @cache_ttl.positive?
@@ -188,7 +188,7 @@ module KeyEnv
188
188
  # @return [SecretWithValue] Secret with value
189
189
  def get_secret(project_id:, environment:, key:)
190
190
  data = request(:get, "/api/v1/projects/#{project_id}/environments/#{environment}/secrets/#{key}")
191
- SecretWithValue.new(data["secret"] || data)
191
+ SecretWithValue.new(data["data"] || data)
192
192
  end
193
193
 
194
194
  # Create a new secret.
@@ -204,7 +204,7 @@ module KeyEnv
204
204
  payload[:description] = description if description
205
205
  data = request(:post, "/api/v1/projects/#{project_id}/environments/#{environment}/secrets", payload)
206
206
  clear_cache(project_id: project_id, environment: environment)
207
- Secret.new(data["secret"] || data)
207
+ Secret.new(data["data"] || data)
208
208
  end
209
209
 
210
210
  # Update a secret's value.
@@ -220,7 +220,7 @@ module KeyEnv
220
220
  payload[:description] = description unless description.nil?
221
221
  data = request(:put, "/api/v1/projects/#{project_id}/environments/#{environment}/secrets/#{key}", payload)
222
222
  clear_cache(project_id: project_id, environment: environment)
223
- Secret.new(data["secret"] || data)
223
+ Secret.new(data["data"] || data)
224
224
  end
225
225
 
226
226
  # Set a secret (create or update).
@@ -256,7 +256,7 @@ module KeyEnv
256
256
  # @return [Array<SecretHistory>] Secret version history
257
257
  def get_secret_history(project_id:, environment:, key:)
258
258
  data = request(:get, "/api/v1/projects/#{project_id}/environments/#{environment}/secrets/#{key}/history")
259
- (data["history"] || []).map { |h| SecretHistory.new(h) }
259
+ (data["data"] || []).map { |h| SecretHistory.new(h) }
260
260
  end
261
261
 
262
262
  # Bulk import secrets.
@@ -274,7 +274,7 @@ module KeyEnv
274
274
  { secrets: secret_list, overwrite: overwrite }
275
275
  )
276
276
  clear_cache(project_id: project_id, environment: environment)
277
- BulkImportResult.new(data)
277
+ BulkImportResult.new(data["data"] || data)
278
278
  end
279
279
 
280
280
  # =========================================================================
@@ -345,7 +345,7 @@ module KeyEnv
345
345
  # @return [Array<EnvironmentPermission>] List of permissions
346
346
  def list_permissions(project_id:, environment:)
347
347
  data = request(:get, "/api/v1/projects/#{project_id}/environments/#{environment}/permissions")
348
- (data["permissions"] || []).map { |p| EnvironmentPermission.new(p) }
348
+ (data["data"] || []).map { |p| EnvironmentPermission.new(p) }
349
349
  end
350
350
 
351
351
  # Set a user's permission for an environment.
@@ -386,7 +386,7 @@ module KeyEnv
386
386
  "/api/v1/projects/#{project_id}/environments/#{environment}/permissions",
387
387
  { permissions: permissions }
388
388
  )
389
- (data["permissions"] || []).map { |p| EnvironmentPermission.new(p) }
389
+ (data["data"] || []).map { |p| EnvironmentPermission.new(p) }
390
390
  end
391
391
 
392
392
  # Get current user's permissions for all environments in a project.
@@ -406,7 +406,7 @@ module KeyEnv
406
406
  # @return [Array<ProjectDefault>] List of project defaults
407
407
  def get_project_defaults(project_id:)
408
408
  data = request(:get, "/api/v1/projects/#{project_id}/permissions/defaults")
409
- (data["defaults"] || []).map { |d| ProjectDefault.new(d) }
409
+ (data["data"] || []).map { |d| ProjectDefault.new(d) }
410
410
  end
411
411
 
412
412
  # Set default permissions for a project.
@@ -420,7 +420,7 @@ module KeyEnv
420
420
  "/api/v1/projects/#{project_id}/permissions/defaults",
421
421
  { defaults: defaults }
422
422
  )
423
- (data["defaults"] || []).map { |d| ProjectDefault.new(d) }
423
+ (data["data"] || []).map { |d| ProjectDefault.new(d) }
424
424
  end
425
425
 
426
426
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KeyEnv
4
- VERSION = "1.1.0"
4
+ VERSION = '1.2.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keyenv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - KeyEnv
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-16 00:00:00.000000000 Z
11
+ date: 2026-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -133,7 +133,7 @@ metadata:
133
133
  changelog_uri: https://github.com/keyenv/ruby-sdk/blob/main/CHANGELOG.md
134
134
  documentation_uri: https://keyenv.dev/docs/sdks/ruby
135
135
  rubygems_mfa_required: 'true'
136
- post_install_message:
136
+ post_install_message:
137
137
  rdoc_options: []
138
138
  require_paths:
139
139
  - lib
@@ -148,8 +148,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  - !ruby/object:Gem::Version
149
149
  version: '0'
150
150
  requirements: []
151
- rubygems_version: 3.0.3.1
152
- signing_key:
151
+ rubygems_version: 3.5.22
152
+ signing_key:
153
153
  specification_version: 4
154
154
  summary: Official Ruby SDK for KeyEnv - Secure secrets management
155
155
  test_files: []