kessel-sdk 1.7.0 → 1.8.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/README.md +33 -18
- data/lib/kessel/inventory/v1beta2/check_for_update_bulk_request_pb.rb +22 -0
- data/lib/kessel/inventory/v1beta2/check_for_update_bulk_response_pb.rb +27 -0
- data/lib/kessel/inventory/v1beta2/inventory_service_pb.rb +3 -1
- data/lib/kessel/inventory/v1beta2/inventory_service_services_pb.rb +8 -0
- data/lib/kessel/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 81373567779a9dd8c588272da54dfe57497d254b0b031ec64ea4d4ae39847063
|
|
4
|
+
data.tar.gz: fde2a1a46df1ef25745e579e43f0bb1685f5ee49938eb3a868aa2254550f9563
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d3c7dc9fdef0bc16cbe30a34be7e6f6a191eaec26dd91bdec21044443b3ad7537a5b185231c8a7c67ec49d3b37a052dd412364efb5000ca01e51fa8cd0423212
|
|
7
|
+
data.tar.gz: e13000fdbee258e3a0f1d6689eea603f3c690a9b44b1f9840b0b74ac0d919668fc6075b260a852c95b3bbfb94f8d5c6de0fc69a884366a86f49fd5a3652514f1
|
data/README.md
CHANGED
|
@@ -221,10 +221,15 @@ rake install_local
|
|
|
221
221
|
|
|
222
222
|
The `examples/` directory contains working examples:
|
|
223
223
|
|
|
224
|
+
- `auth.rb` - OAuth 2.0 authentication
|
|
224
225
|
- `check.rb` - Permission checking
|
|
225
|
-
- `
|
|
226
|
-
- `delete_resource.rb` - Deleting resources
|
|
226
|
+
- `check_bulk.rb` - Bulk permission checks
|
|
227
227
|
- `check_for_update.rb` - Checking for updates
|
|
228
|
+
- `check_for_update_bulk.rb` - Bulk strongly consistent update checks
|
|
229
|
+
- `delete_resource.rb` - Deleting resources
|
|
230
|
+
- `fetch_workspaces.rb` - Fetching workspaces
|
|
231
|
+
- `list_workspaces.rb` - Listing workspaces
|
|
232
|
+
- `report_resource.rb` - Reporting resource state
|
|
228
233
|
- `streamed_list_objects.rb` - Streaming resource lists
|
|
229
234
|
|
|
230
235
|
Run examples:
|
|
@@ -269,12 +274,17 @@ This project follows [Semantic Versioning 2.0.0](https://semver.org/). Version n
|
|
|
269
274
|
|
|
270
275
|
1. **Update the Version**
|
|
271
276
|
```bash
|
|
272
|
-
# Edit lib/kessel/version.rb
|
|
273
|
-
# Update the VERSION constant to the new version number
|
|
277
|
+
# Edit lib/kessel/version.rb and update the VERSION constant
|
|
274
278
|
vim lib/kessel/version.rb
|
|
275
279
|
```
|
|
276
280
|
|
|
277
|
-
2. **
|
|
281
|
+
2. **Set the VERSION environment variable**
|
|
282
|
+
```bash
|
|
283
|
+
export VERSION=$(ruby -e "require_relative './lib/kessel/version.rb'; puts Kessel::Inventory::VERSION")
|
|
284
|
+
echo "Releasing version: v${VERSION}"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
3. **Update Dependencies**
|
|
278
288
|
```bash
|
|
279
289
|
# Generate gRPC code from Kessel Inventory API
|
|
280
290
|
buf generate
|
|
@@ -282,7 +292,7 @@ This project follows [Semantic Versioning 2.0.0](https://semver.org/). Version n
|
|
|
282
292
|
bundle install
|
|
283
293
|
```
|
|
284
294
|
|
|
285
|
-
|
|
295
|
+
4. **Run Quality Checks**
|
|
286
296
|
```bash
|
|
287
297
|
# Run the full test suite
|
|
288
298
|
bundle exec rspec
|
|
@@ -297,15 +307,14 @@ This project follows [Semantic Versioning 2.0.0](https://semver.org/). Version n
|
|
|
297
307
|
rake install_local
|
|
298
308
|
```
|
|
299
309
|
|
|
300
|
-
|
|
310
|
+
5. **Commit Changes**
|
|
301
311
|
```bash
|
|
302
|
-
export VERSION=$(ruby -e "require_relative './lib/kessel/version.rb'; puts Kessel::Inventory::VERSION")
|
|
303
312
|
git add lib/kessel/version.rb Gemfile.lock
|
|
304
313
|
git commit -m "Release version ${VERSION}"
|
|
305
314
|
git push origin main # or git push upstream main
|
|
306
315
|
```
|
|
307
316
|
|
|
308
|
-
|
|
317
|
+
6. **Build and Release the Gem**
|
|
309
318
|
```bash
|
|
310
319
|
# Build the gem
|
|
311
320
|
gem build kessel-sdk.gemspec
|
|
@@ -314,21 +323,27 @@ This project follows [Semantic Versioning 2.0.0](https://semver.org/). Version n
|
|
|
314
323
|
gem push kessel-sdk-${VERSION}.gem
|
|
315
324
|
```
|
|
316
325
|
|
|
317
|
-
|
|
326
|
+
7. **Tag the Release**
|
|
318
327
|
```bash
|
|
319
328
|
# Create and push a git tag
|
|
320
329
|
git tag -a v${VERSION} -m "Release version ${VERSION}"
|
|
321
330
|
git push origin v${VERSION} # or git push upstream v${VERSION}
|
|
322
331
|
```
|
|
323
332
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
333
|
+
8. **Create GitHub Release**
|
|
334
|
+
```bash
|
|
335
|
+
gh release create v${VERSION} --title "v${VERSION}" --generate-notes
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Or manually:
|
|
339
|
+
|
|
340
|
+
- Go to the [GitHub Releases page](https://github.com/project-kessel/kessel-sdk-ruby/releases)
|
|
341
|
+
- Click "Create a new release"
|
|
342
|
+
- Select the tag you just created
|
|
343
|
+
- Add release notes describing the changes
|
|
344
|
+
- Publish the release
|
|
330
345
|
|
|
331
|
-
|
|
346
|
+
9. **Clean Up**
|
|
332
347
|
```bash
|
|
333
348
|
# Remove the built gem file
|
|
334
349
|
rake clean
|
|
@@ -352,7 +367,7 @@ rake install
|
|
|
352
367
|
rake release
|
|
353
368
|
```
|
|
354
369
|
|
|
355
|
-
**Note**: The `rake release` command automates steps
|
|
370
|
+
**Note**: The `rake release` command automates steps 6-7 above but requires proper git and RubyGems credentials to be configured.
|
|
356
371
|
|
|
357
372
|
## Contributing
|
|
358
373
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: kessel/inventory/v1beta2/check_for_update_bulk_request.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'buf/validate/validate_pb'
|
|
8
|
+
require 'kessel/inventory/v1beta2/check_bulk_request_pb'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
descriptor_data = "\n<kessel/inventory/v1beta2/check_for_update_bulk_request.proto\x12\x18kessel.inventory.v1beta2\x1a\x1b\x62uf/validate/validate.proto\x1a\x31kessel/inventory/v1beta2/check_bulk_request.proto\"n\n\x19\x43heckForUpdateBulkRequest\x12Q\n\x05items\x18\x01 \x03(\x0b\x32..kessel.inventory.v1beta2.CheckBulkRequestItemB\x0b\xbaH\x08\x92\x01\x05\x08\x01\x10\xe8\x07R\x05itemsBr\n(org.project_kessel.api.inventory.v1beta2P\x01ZDgithub.com/project-kessel/inventory-api/api/kessel/inventory/v1beta2b\x06proto3"
|
|
12
|
+
|
|
13
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
14
|
+
pool.add_serialized_file(descriptor_data)
|
|
15
|
+
|
|
16
|
+
module Kessel
|
|
17
|
+
module Inventory
|
|
18
|
+
module V1beta2
|
|
19
|
+
CheckForUpdateBulkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("kessel.inventory.v1beta2.CheckForUpdateBulkRequest").msgclass
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# source: kessel/inventory/v1beta2/check_for_update_bulk_response.proto
|
|
4
|
+
|
|
5
|
+
require 'google/protobuf'
|
|
6
|
+
|
|
7
|
+
require 'kessel/inventory/v1beta2/check_bulk_request_pb'
|
|
8
|
+
require 'kessel/inventory/v1beta2/consistency_token_pb'
|
|
9
|
+
require 'kessel/inventory/v1beta2/allowed_pb'
|
|
10
|
+
require 'buf/validate/validate_pb'
|
|
11
|
+
require 'google/rpc/status_pb'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
descriptor_data = "\n=kessel/inventory/v1beta2/check_for_update_bulk_response.proto\x12\x18kessel.inventory.v1beta2\x1a\x31kessel/inventory/v1beta2/check_bulk_request.proto\x1a\x30kessel/inventory/v1beta2/consistency_token.proto\x1a&kessel/inventory/v1beta2/allowed.proto\x1a\x1b\x62uf/validate/validate.proto\x1a\x17google/rpc/status.proto\"]\n\x1e\x43heckForUpdateBulkResponseItem\x12;\n\x07\x61llowed\x18\x01 \x01(\x0e\x32!.kessel.inventory.v1beta2.AllowedR\x07\x61llowed\"\xf2\x01\n\x1e\x43heckForUpdateBulkResponsePair\x12H\n\x07request\x18\x01 \x01(\x0b\x32..kessel.inventory.v1beta2.CheckBulkRequestItemR\x07request\x12N\n\x04item\x18\x02 \x01(\x0b\x32\x38.kessel.inventory.v1beta2.CheckForUpdateBulkResponseItemH\x00R\x04item\x12*\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.google.rpc.StatusH\x00R\x05\x65rrorB\n\n\x08response\"\xcf\x01\n\x1a\x43heckForUpdateBulkResponse\x12X\n\x05pairs\x18\x01 \x03(\x0b\x32\x38.kessel.inventory.v1beta2.CheckForUpdateBulkResponsePairB\x08\xbaH\x05\x92\x01\x02\x08\x01R\x05pairs\x12W\n\x11\x63onsistency_token\x18\x02 \x01(\x0b\x32*.kessel.inventory.v1beta2.ConsistencyTokenR\x10\x63onsistencyTokenBr\n(org.project_kessel.api.inventory.v1beta2P\x01ZDgithub.com/project-kessel/inventory-api/api/kessel/inventory/v1beta2b\x06proto3"
|
|
15
|
+
|
|
16
|
+
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
17
|
+
pool.add_serialized_file(descriptor_data)
|
|
18
|
+
|
|
19
|
+
module Kessel
|
|
20
|
+
module Inventory
|
|
21
|
+
module V1beta2
|
|
22
|
+
CheckForUpdateBulkResponseItem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("kessel.inventory.v1beta2.CheckForUpdateBulkResponseItem").msgclass
|
|
23
|
+
CheckForUpdateBulkResponsePair = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("kessel.inventory.v1beta2.CheckForUpdateBulkResponsePair").msgclass
|
|
24
|
+
CheckForUpdateBulkResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("kessel.inventory.v1beta2.CheckForUpdateBulkResponse").msgclass
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -21,9 +21,11 @@ require 'kessel/inventory/v1beta2/check_self_request_pb'
|
|
|
21
21
|
require 'kessel/inventory/v1beta2/check_self_response_pb'
|
|
22
22
|
require 'kessel/inventory/v1beta2/check_self_bulk_request_pb'
|
|
23
23
|
require 'kessel/inventory/v1beta2/check_self_bulk_response_pb'
|
|
24
|
+
require 'kessel/inventory/v1beta2/check_for_update_bulk_request_pb'
|
|
25
|
+
require 'kessel/inventory/v1beta2/check_for_update_bulk_response_pb'
|
|
24
26
|
|
|
25
27
|
|
|
26
|
-
descriptor_data = "\n0kessel/inventory/v1beta2/inventory_service.proto\x12\x18kessel.inventory.v1beta2\x1a\x1cgoogle/api/annotations.proto\x1a,kessel/inventory/v1beta2/check_request.proto\x1a-kessel/inventory/v1beta2/check_response.proto\x1a\x37kessel/inventory/v1beta2/check_for_update_request.proto\x1a\x38kessel/inventory/v1beta2/check_for_update_response.proto\x1a\x36kessel/inventory/v1beta2/report_resource_request.proto\x1a\x37kessel/inventory/v1beta2/report_resource_response.proto\x1a\x36kessel/inventory/v1beta2/delete_resource_request.proto\x1a\x37kessel/inventory/v1beta2/delete_resource_response.proto\x1a<kessel/inventory/v1beta2/streamed_list_objects_request.proto\x1a=kessel/inventory/v1beta2/streamed_list_objects_response.proto\x1a\x31kessel/inventory/v1beta2/check_bulk_request.proto\x1a\x32kessel/inventory/v1beta2/check_bulk_response.proto\x1a\x31kessel/inventory/v1beta2/check_self_request.proto\x1a\x32kessel/inventory/v1beta2/check_self_response.proto\x1a\x36kessel/inventory/v1beta2/check_self_bulk_request.proto\x1a\x37kessel/inventory/v1beta2/check_self_bulk_response.proto2\
|
|
28
|
+
descriptor_data = "\n0kessel/inventory/v1beta2/inventory_service.proto\x12\x18kessel.inventory.v1beta2\x1a\x1cgoogle/api/annotations.proto\x1a,kessel/inventory/v1beta2/check_request.proto\x1a-kessel/inventory/v1beta2/check_response.proto\x1a\x37kessel/inventory/v1beta2/check_for_update_request.proto\x1a\x38kessel/inventory/v1beta2/check_for_update_response.proto\x1a\x36kessel/inventory/v1beta2/report_resource_request.proto\x1a\x37kessel/inventory/v1beta2/report_resource_response.proto\x1a\x36kessel/inventory/v1beta2/delete_resource_request.proto\x1a\x37kessel/inventory/v1beta2/delete_resource_response.proto\x1a<kessel/inventory/v1beta2/streamed_list_objects_request.proto\x1a=kessel/inventory/v1beta2/streamed_list_objects_response.proto\x1a\x31kessel/inventory/v1beta2/check_bulk_request.proto\x1a\x32kessel/inventory/v1beta2/check_bulk_response.proto\x1a\x31kessel/inventory/v1beta2/check_self_request.proto\x1a\x32kessel/inventory/v1beta2/check_self_response.proto\x1a\x36kessel/inventory/v1beta2/check_self_bulk_request.proto\x1a\x37kessel/inventory/v1beta2/check_self_bulk_response.proto\x1a<kessel/inventory/v1beta2/check_for_update_bulk_request.proto\x1a=kessel/inventory/v1beta2/check_for_update_bulk_response.proto2\xfc\n\n\x16KesselInventoryService\x12~\n\x05\x43heck\x12&.kessel.inventory.v1beta2.CheckRequest\x1a\'.kessel.inventory.v1beta2.CheckResponse\"$\x82\xd3\xe4\x93\x02\x1e\"\x19/api/kessel/v1beta2/check:\x01*\x12\x8e\x01\n\tCheckSelf\x12*.kessel.inventory.v1beta2.CheckSelfRequest\x1a+.kessel.inventory.v1beta2.CheckSelfResponse\"(\x82\xd3\xe4\x93\x02\"\"\x1d/api/kessel/v1beta2/checkself:\x01*\x12\xa2\x01\n\x0e\x43heckForUpdate\x12/.kessel.inventory.v1beta2.CheckForUpdateRequest\x1a\x30.kessel.inventory.v1beta2.CheckForUpdateResponse\"-\x82\xd3\xe4\x93\x02\'\"\"/api/kessel/v1beta2/checkforupdate:\x01*\x12\xb2\x01\n\x12\x43heckForUpdateBulk\x12\x33.kessel.inventory.v1beta2.CheckForUpdateBulkRequest\x1a\x34.kessel.inventory.v1beta2.CheckForUpdateBulkResponse\"1\x82\xd3\xe4\x93\x02+\"&/api/kessel/v1beta2/checkforupdatebulk:\x01*\x12\x8e\x01\n\tCheckBulk\x12*.kessel.inventory.v1beta2.CheckBulkRequest\x1a+.kessel.inventory.v1beta2.CheckBulkResponse\"(\x82\xd3\xe4\x93\x02\"\"\x1d/api/kessel/v1beta2/checkbulk:\x01*\x12\x9e\x01\n\rCheckSelfBulk\x12..kessel.inventory.v1beta2.CheckSelfBulkRequest\x1a/.kessel.inventory.v1beta2.CheckSelfBulkResponse\",\x82\xd3\xe4\x93\x02&\"!/api/kessel/v1beta2/checkselfbulk:\x01*\x12\x9d\x01\n\x0eReportResource\x12/.kessel.inventory.v1beta2.ReportResourceRequest\x1a\x30.kessel.inventory.v1beta2.ReportResourceResponse\"(\x82\xd3\xe4\x93\x02\"\"\x1d/api/kessel/v1beta2/resources:\x01*\x12\x9d\x01\n\x0e\x44\x65leteResource\x12/.kessel.inventory.v1beta2.DeleteResourceRequest\x1a\x30.kessel.inventory.v1beta2.DeleteResourceResponse\"(\x82\xd3\xe4\x93\x02\"*\x1d/api/kessel/v1beta2/resources:\x01*\x12\x84\x01\n\x13StreamedListObjects\x12\x34.kessel.inventory.v1beta2.StreamedListObjectsRequest\x1a\x35.kessel.inventory.v1beta2.StreamedListObjectsResponse0\x01\x42r\n(org.project_kessel.api.inventory.v1beta2P\x01ZDgithub.com/project-kessel/inventory-api/api/kessel/inventory/v1beta2b\x06proto3"
|
|
27
29
|
|
|
28
30
|
pool = ::Google::Protobuf::DescriptorPool.generated_pool
|
|
29
31
|
pool.add_serialized_file(descriptor_data)
|
|
@@ -48,6 +48,14 @@ module Kessel
|
|
|
48
48
|
# It is intended to be used just prior to sensitive operation (e.g., update, delete)
|
|
49
49
|
# which depend on the current state of the relationship.
|
|
50
50
|
rpc :CheckForUpdate, ::Kessel::Inventory::V1beta2::CheckForUpdateRequest, ::Kessel::Inventory::V1beta2::CheckForUpdateResponse
|
|
51
|
+
# Performs bulk strongly consistent "check for update" permission checks.
|
|
52
|
+
#
|
|
53
|
+
# This API is more efficient than making individual CheckForUpdate calls when verifying
|
|
54
|
+
# update permissions for multiple resource-subject-relation combinations. Each item
|
|
55
|
+
# is evaluated with strong consistency (same semantics as CheckForUpdate).
|
|
56
|
+
#
|
|
57
|
+
# Common use cases include batch pre-authorization before bulk update or delete operations.
|
|
58
|
+
rpc :CheckForUpdateBulk, ::Kessel::Inventory::V1beta2::CheckForUpdateBulkRequest, ::Kessel::Inventory::V1beta2::CheckForUpdateBulkResponse
|
|
51
59
|
# Performs bulk permission checks for multiple resource-subject-relation combinations.
|
|
52
60
|
#
|
|
53
61
|
# This API is more efficient than making individual Check calls when verifying permissions
|
data/lib/kessel/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kessel-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Project Kessel
|
|
@@ -238,6 +238,8 @@ files:
|
|
|
238
238
|
- lib/kessel/inventory/v1beta2/allowed_pb.rb
|
|
239
239
|
- lib/kessel/inventory/v1beta2/check_bulk_request_pb.rb
|
|
240
240
|
- lib/kessel/inventory/v1beta2/check_bulk_response_pb.rb
|
|
241
|
+
- lib/kessel/inventory/v1beta2/check_for_update_bulk_request_pb.rb
|
|
242
|
+
- lib/kessel/inventory/v1beta2/check_for_update_bulk_response_pb.rb
|
|
241
243
|
- lib/kessel/inventory/v1beta2/check_for_update_request_pb.rb
|
|
242
244
|
- lib/kessel/inventory/v1beta2/check_for_update_response_pb.rb
|
|
243
245
|
- lib/kessel/inventory/v1beta2/check_request_pb.rb
|