kessel-sdk 1.1.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d150b6fc61112dddb8c412f6335ab567d09d44c47397dafcc7a81b0ec36743fa
4
- data.tar.gz: c79b0372619792f47b8909fe559944af8d19e0a33f67c8ac3525f2b44b3693fb
3
+ metadata.gz: 3800bae939865b2cd83bfb60a4587e80c946506209ea91a137ffa595a94ae771
4
+ data.tar.gz: bfdff251174a21a9e719e1cf82ff5c861f7092c2017e0b3770aac264cfc0eee1
5
5
  SHA512:
6
- metadata.gz: 269123d3b2699c7dc0d8ad3329dbc7d03751c3dda6ff6a52e908f2a242867d7d4fc69770a1da37fb35972d17a9d7e588607bb97364530005822285c55769eb44
7
- data.tar.gz: 6623de8660da4b3ed71deb2ae2fa4a96093a543a6fdba3c06796d48e2aa124b2eaf06603564e50ab25c663566374503d5f9230e4d3bb10f290cf0667e17c426e
6
+ metadata.gz: 1e727e72dc99cc3f98411a0913695259fa21aefbe8189862a5c55ccab8f8419462777d8e7d7ec96453030eada05cb28ea0b85e15ad306aac9aeb547810bbf3c4
7
+ data.tar.gz: b80c52e4e3f8632499df4eb95f409067662e02763dfa8fc52056961ab2fd3edf8894ab8e9abf5f580792e335b43294e4a3250707efd1a14c32fb93743808c816
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'kessel/inventory'
4
+ require 'kessel/inventory/v1/health_services_pb'
5
+
6
+ include Kessel::Inventory
7
+
8
+ module Kessel
9
+ module Inventory
10
+ module V1
11
+ module KesselInventoryHealthService
12
+ ClientBuilder = ::Kessel::Inventory.client_builder_for_stub(Stub)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'kessel/inventory'
4
+ require 'kessel/inventory/v1beta1/relationships/k8spolicy_ispropagatedto_k8scluster_service_services_pb'
5
+ require 'kessel/inventory/v1beta1/resources/k8s_clusters_service_services_pb'
6
+ require 'kessel/inventory/v1beta1/resources/k8s_policies_service_services_pb'
7
+
8
+ include Kessel::Inventory
9
+
10
+ module Kessel
11
+ module Inventory
12
+ module V1beta1
13
+ module Relationships
14
+ module KesselK8SPolicyIsPropagatedToK8SClusterService
15
+ ClientBuilder = ::Kessel::Inventory.client_builder_for_stub(Stub)
16
+ end
17
+ end
18
+
19
+ module Resources
20
+ module KesselK8sClusterService
21
+ ClientBuilder = ::Kessel::Inventory.client_builder_for_stub(Stub)
22
+ end
23
+
24
+ module KesselK8sPolicyService
25
+ ClientBuilder = ::Kessel::Inventory.client_builder_for_stub(Stub)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'kessel/inventory'
4
+ require 'kessel/inventory/v1beta2/inventory_service_services_pb'
5
+
6
+ include Kessel::Inventory
7
+
8
+ module Kessel
9
+ module Inventory
10
+ module V1beta2
11
+ module KesselInventoryService
12
+ ClientBuilder = ::Kessel::Inventory.client_builder_for_stub(Stub)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'grpc'
4
+ require 'kessel/grpc'
5
+
6
+ module Kessel
7
+ module Inventory
8
+ def client_builder_for_stub(stub_class)
9
+ builder_class = Class.new(ClientBuilder)
10
+ builder_class.instance_variable_set(:@stub_class, stub_class)
11
+ builder_class
12
+ end
13
+
14
+ class ClientBuilder
15
+ include Kessel::GRPC
16
+
17
+ def initialize(target)
18
+ @target = target
19
+ raise 'Invalid target type' if @target.nil? || !@target.is_a?(String)
20
+ end
21
+
22
+ def oauth2_client_authenticated(oauth2_client_credentials:, channel_credentials: nil)
23
+ @call_credentials = oauth2_call_credentials(oauth2_client_credentials)
24
+ @channel_credentials = channel_credentials
25
+ validate_credentials
26
+ self
27
+ end
28
+
29
+ def authenticated(call_credentials: nil, channel_credentials: nil)
30
+ @call_credentials = call_credentials
31
+ @channel_credentials = channel_credentials
32
+ validate_credentials
33
+ self
34
+ end
35
+
36
+ def unauthenticated(channel_credentials: nil)
37
+ @call_credentials = nil
38
+ @channel_credentials = channel_credentials
39
+ validate_credentials
40
+ self
41
+ end
42
+
43
+ def insecure
44
+ @call_credentials = nil
45
+ @channel_credentials = :this_channel_is_insecure
46
+ validate_credentials
47
+ self
48
+ end
49
+
50
+ def build
51
+ @channel_credentials = ::GRPC::Core::ChannelCredentials.new if @channel_credentials.nil?
52
+
53
+ credentials = @channel_credentials
54
+ credentials = credentials.compose(@call_credentials) unless @call_credentials.nil?
55
+ self.class.stub_class.new(@target, credentials)
56
+ end
57
+
58
+ private
59
+
60
+ class << self
61
+ attr_reader :stub_class
62
+ end
63
+
64
+ def validate_credentials
65
+ return unless @channel_credentials == :this_channel_is_insecure && !@call_credentials.nil?
66
+
67
+ raise 'Invalid credential configuration: can not authenticate with insecure channel'
68
+ end
69
+ end
70
+ end
71
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Kessel
4
4
  module Inventory
5
- VERSION = '1.1.0'
5
+ VERSION = '1.2.0'
6
6
  end
7
7
  end
data/lib/kessel-sdk.rb CHANGED
@@ -4,6 +4,6 @@ require 'kessel/version'
4
4
  require 'kessel/grpc'
5
5
  require 'kessel/auth'
6
6
 
7
- Dir.glob(File.join(__dir__, '**', '*_services_pb.rb')).each do |file|
8
- require file.sub(__dir__ + File::SEPARATOR, '')
9
- end
7
+ require 'kessel/inventory/v1'
8
+ require 'kessel/inventory/v1beta1'
9
+ require 'kessel/inventory/v1beta2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kessel-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Project Kessel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-08 00:00:00.000000000 Z
11
+ date: 2025-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -211,8 +211,11 @@ files:
211
211
  - lib/kessel-sdk.rb
212
212
  - lib/kessel/auth.rb
213
213
  - lib/kessel/grpc.rb
214
+ - lib/kessel/inventory.rb
215
+ - lib/kessel/inventory/v1.rb
214
216
  - lib/kessel/inventory/v1/health_pb.rb
215
217
  - lib/kessel/inventory/v1/health_services_pb.rb
218
+ - lib/kessel/inventory/v1beta1.rb
216
219
  - lib/kessel/inventory/v1beta1/authz/check_pb.rb
217
220
  - lib/kessel/inventory/v1beta1/authz/check_services_pb.rb
218
221
  - lib/kessel/inventory/v1beta1/authz/common_pb.rb
@@ -234,6 +237,7 @@ files:
234
237
  - lib/kessel/inventory/v1beta1/resources/metadata_pb.rb
235
238
  - lib/kessel/inventory/v1beta1/resources/reporter_data_pb.rb
236
239
  - lib/kessel/inventory/v1beta1/resources/resource_label_pb.rb
240
+ - lib/kessel/inventory/v1beta2.rb
237
241
  - lib/kessel/inventory/v1beta2/allowed_pb.rb
238
242
  - lib/kessel/inventory/v1beta2/check_for_update_request_pb.rb
239
243
  - lib/kessel/inventory/v1beta2/check_for_update_response_pb.rb