couchbase 3.8.0 → 3.8.2

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.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/cache/extconf_include.rb +4 -4
  4. data/ext/cache/mozilla-ca-bundle.crt +96 -675
  5. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  6. data/ext/couchbase/CMakeLists.txt +3 -1
  7. data/ext/couchbase/core/error_context/base_error_context.hxx +32 -0
  8. data/ext/couchbase/core/error_context/key_value.cxx +1 -0
  9. data/ext/couchbase/core/error_context/key_value.hxx +23 -0
  10. data/ext/couchbase/core/error_context/key_value_error_context.hxx +35 -0
  11. data/ext/couchbase/core/error_context/subdocument_error_context.hxx +41 -0
  12. data/ext/couchbase/core/impl/binary_collection.cxx +123 -88
  13. data/ext/couchbase/core/impl/collection.cxx +416 -189
  14. data/ext/couchbase/core/impl/error.cxx +29 -4
  15. data/ext/couchbase/core/impl/invoke_with_node_id.hxx +44 -0
  16. data/ext/couchbase/core/impl/node_id.cxx +110 -0
  17. data/ext/couchbase/core/impl/node_id.hxx +40 -0
  18. data/ext/couchbase/core/impl/public_cluster.cxx +118 -5
  19. data/ext/couchbase/core/io/configuration_belongs_to_session.hxx +67 -0
  20. data/ext/couchbase/core/io/http_session_manager.hxx +97 -57
  21. data/ext/couchbase/core/io/mcbp_session.cxx +7 -16
  22. data/ext/couchbase/core/io/streams.cxx +143 -12
  23. data/ext/couchbase/core/io/streams.hxx +6 -0
  24. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +14 -4
  25. data/ext/couchbase/core/operations/document_get_projected.cxx +3 -4
  26. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +4 -0
  27. data/ext/couchbase/core/operations/document_query.cxx +12 -12
  28. data/ext/couchbase/core/operations/management/bucket_create.cxx +37 -38
  29. data/ext/couchbase/core/operations/management/bucket_update.cxx +26 -28
  30. data/ext/couchbase/core/operations/management/collection_create.cxx +11 -11
  31. data/ext/couchbase/core/operations/management/collection_drop.cxx +11 -11
  32. data/ext/couchbase/core/operations/management/collection_update.cxx +11 -11
  33. data/ext/couchbase/core/operations/management/error_utils.cxx +9 -6
  34. data/ext/couchbase/core/operations/management/query_index_create.cxx +5 -4
  35. data/ext/couchbase/core/operations/management/query_index_drop.cxx +7 -6
  36. data/ext/couchbase/core/operations/management/scope_create.cxx +12 -13
  37. data/ext/couchbase/core/operations/management/scope_drop.cxx +8 -9
  38. data/ext/couchbase/core/topology/configuration.cxx +21 -0
  39. data/ext/couchbase/core/topology/configuration.hxx +28 -0
  40. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +254 -178
  41. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +5 -1
  42. data/ext/couchbase/core/transactions/transactions_cleanup.cxx +42 -7
  43. data/ext/couchbase/core/transactions/waitable_op_list.hxx +13 -2
  44. data/ext/couchbase/core/utils/contains_string.cxx +61 -0
  45. data/ext/couchbase/core/utils/contains_string.hxx +26 -0
  46. data/ext/couchbase/couchbase/cluster.hxx +33 -0
  47. data/ext/couchbase/couchbase/collection.hxx +73 -0
  48. data/ext/couchbase/couchbase/error.hxx +16 -0
  49. data/ext/couchbase/couchbase/node_id.hxx +123 -0
  50. data/ext/couchbase/couchbase/node_id_for_options.hxx +61 -0
  51. data/ext/couchbase/couchbase/node_ids_options.hxx +62 -0
  52. data/ext/couchbase/couchbase/result.hxx +42 -0
  53. data/ext/rcb_crud.cxx +2 -0
  54. data/ext/rcb_logger.cxx +15 -17
  55. data/lib/couchbase/cluster.rb +16 -14
  56. data/lib/couchbase/datastructures/couchbase_list.rb +1 -0
  57. data/lib/couchbase/datastructures/couchbase_map.rb +1 -0
  58. data/lib/couchbase/datastructures/couchbase_queue.rb +1 -0
  59. data/lib/couchbase/datastructures/couchbase_set.rb +1 -0
  60. data/lib/couchbase/errors.rb +1 -1
  61. data/lib/couchbase/json_transcoder.rb +1 -1
  62. data/lib/couchbase/options.rb +9 -4
  63. data/lib/couchbase/protostellar/client.rb +0 -2
  64. data/lib/couchbase/protostellar/cluster.rb +4 -0
  65. data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_pb.rb +54 -0
  66. data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_services_pb.rb +51 -0
  67. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +5 -24
  68. data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +16 -0
  69. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +5 -24
  70. data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +16 -0
  71. data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +5 -24
  72. data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +18 -0
  73. data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +2 -23
  74. data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +23 -0
  75. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +4 -25
  76. data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +10 -0
  77. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +6 -25
  78. data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +18 -0
  79. data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_pb.rb +46 -0
  80. data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_services_pb.rb +56 -0
  81. data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +3 -26
  82. data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +47 -0
  83. data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +4 -26
  84. data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +10 -0
  85. data/lib/couchbase/protostellar/generated/routing/v2/routing_pb.rb +26 -0
  86. data/lib/couchbase/protostellar/generated/routing/v2/routing_services_pb.rb +43 -0
  87. data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +5 -26
  88. data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +11 -0
  89. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +2 -23
  90. data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +30 -0
  91. data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +2 -23
  92. data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +9 -0
  93. data/lib/couchbase/protostellar/request_generator/admin/collection.rb +4 -2
  94. data/lib/couchbase/protostellar/request_generator/admin/query.rb +2 -0
  95. data/lib/couchbase/protostellar/request_generator/kv.rb +1 -1
  96. data/lib/couchbase/protostellar/scope.rb +4 -0
  97. data/lib/couchbase/utils/observability.rb +10 -4
  98. data/lib/couchbase/version.rb +1 -1
  99. metadata +20 -7
  100. data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +0 -52
  101. data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +0 -30
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couchbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 3.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Avseyev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-31 00:00:00.000000000 Z
11
+ date: 2026-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -2486,6 +2486,7 @@ files:
2486
2486
  - ext/couchbase/core/impl/internal_search_row_locations.hxx
2487
2487
  - ext/couchbase/core/impl/internal_term_facet_result.cxx
2488
2488
  - ext/couchbase/core/impl/internal_term_facet_result.hxx
2489
+ - ext/couchbase/core/impl/invoke_with_node_id.hxx
2489
2490
  - ext/couchbase/core/impl/key_value_error_category.cxx
2490
2491
  - ext/couchbase/core/impl/key_value_error_context.cxx
2491
2492
  - ext/couchbase/core/impl/lookup_in_all_replicas.hxx
@@ -2498,6 +2499,8 @@ files:
2498
2499
  - ext/couchbase/core/impl/match_phrase_query.cxx
2499
2500
  - ext/couchbase/core/impl/match_query.cxx
2500
2501
  - ext/couchbase/core/impl/network_error_category.cxx
2502
+ - ext/couchbase/core/impl/node_id.cxx
2503
+ - ext/couchbase/core/impl/node_id.hxx
2501
2504
  - ext/couchbase/core/impl/numeric_range.cxx
2502
2505
  - ext/couchbase/core/impl/numeric_range_facet.cxx
2503
2506
  - ext/couchbase/core/impl/numeric_range_facet_result.cxx
@@ -2581,6 +2584,7 @@ files:
2581
2584
  - ext/couchbase/core/impl/with_legacy_durability.hxx
2582
2585
  - ext/couchbase/core/io/config_tracker.cxx
2583
2586
  - ext/couchbase/core/io/config_tracker.hxx
2587
+ - ext/couchbase/core/io/configuration_belongs_to_session.hxx
2584
2588
  - ext/couchbase/core/io/dns_client.cxx
2585
2589
  - ext/couchbase/core/io/dns_client.hxx
2586
2590
  - ext/couchbase/core/io/dns_codec.hxx
@@ -3154,6 +3158,8 @@ files:
3154
3158
  - ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx
3155
3159
  - ext/couchbase/core/utils/connection_string.cxx
3156
3160
  - ext/couchbase/core/utils/connection_string.hxx
3161
+ - ext/couchbase/core/utils/contains_string.cxx
3162
+ - ext/couchbase/core/utils/contains_string.hxx
3157
3163
  - ext/couchbase/core/utils/crc32.hxx
3158
3164
  - ext/couchbase/core/utils/duration_parser.cxx
3159
3165
  - ext/couchbase/core/utils/duration_parser.hxx
@@ -3346,6 +3352,9 @@ files:
3346
3352
  - ext/couchbase/couchbase/mutation_state.hxx
3347
3353
  - ext/couchbase/couchbase/mutation_token.hxx
3348
3354
  - ext/couchbase/couchbase/network_options.hxx
3355
+ - ext/couchbase/couchbase/node_id.hxx
3356
+ - ext/couchbase/couchbase/node_id_for_options.hxx
3357
+ - ext/couchbase/couchbase/node_ids_options.hxx
3349
3358
  - ext/couchbase/couchbase/numeric_range.hxx
3350
3359
  - ext/couchbase/couchbase/numeric_range_facet.hxx
3351
3360
  - ext/couchbase/couchbase/numeric_range_facet_result.hxx
@@ -3570,6 +3579,8 @@ files:
3570
3579
  - lib/couchbase/protostellar/connect_options.rb
3571
3580
  - lib/couchbase/protostellar/error_handling.rb
3572
3581
  - lib/couchbase/protostellar/generated.rb
3582
+ - lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_pb.rb
3583
+ - lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_services_pb.rb
3573
3584
  - lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb
3574
3585
  - lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb
3575
3586
  - lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb
@@ -3582,12 +3593,14 @@ files:
3582
3593
  - lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb
3583
3594
  - lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb
3584
3595
  - lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb
3596
+ - lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_pb.rb
3597
+ - lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_services_pb.rb
3585
3598
  - lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb
3586
3599
  - lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb
3587
3600
  - lib/couchbase/protostellar/generated/query/v1/query_pb.rb
3588
3601
  - lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb
3589
- - lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb
3590
- - lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb
3602
+ - lib/couchbase/protostellar/generated/routing/v2/routing_pb.rb
3603
+ - lib/couchbase/protostellar/generated/routing/v2/routing_services_pb.rb
3591
3604
  - lib/couchbase/protostellar/generated/search/v1/search_pb.rb
3592
3605
  - lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb
3593
3606
  - lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb
@@ -3658,9 +3671,9 @@ metadata:
3658
3671
  homepage_uri: https://docs.couchbase.com/ruby-sdk/current/hello-world/start-using-sdk.html
3659
3672
  bug_tracker_uri: https://jira.issues.couchbase.com/browse/RCBC
3660
3673
  mailing_list_uri: https://www.couchbase.com/forums/c/ruby-sdk
3661
- source_code_uri: https://github.com/couchbase/couchbase-ruby-client/tree/3.8.0
3662
- changelog_uri: https://github.com/couchbase/couchbase-ruby-client/releases/tag/3.8.0
3663
- documentation_uri: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.8.0/index.html
3674
+ source_code_uri: https://github.com/couchbase/couchbase-ruby-client/tree/3.8.2
3675
+ changelog_uri: https://github.com/couchbase/couchbase-ruby-client/releases/tag/3.8.2
3676
+ documentation_uri: https://docs.couchbase.com/sdk-api/couchbase-ruby-client-3.8.2/index.html
3664
3677
  github_repo: https://github.com/couchbase/couchbase-ruby-client
3665
3678
  rubygems_mfa_required: 'true'
3666
3679
  post_install_message:
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: couchbase/routing/v1/routing.proto
4
-
5
- require 'google/protobuf'
6
-
7
-
8
- descriptor_data = "\n\"couchbase/routing/v1/routing.proto\x12\x14\x63ouchbase.routing.v1\"D\n\x0fRoutingEndpoint\x12\n\n\x02id\x18\x01 \x01(\t\x12\x14\n\x0cserver_group\x18\x02 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\"[\n\x13\x44\x61taRoutingEndpoint\x12\x14\n\x0c\x65ndpoint_idx\x18\x01 \x01(\r\x12\x16\n\x0elocal_vbuckets\x18\x02 \x03(\r\x12\x16\n\x0egroup_vbuckets\x18\x03 \x03(\r\"p\n\x1aVbucketDataRoutingStrategy\x12<\n\tendpoints\x18\x01 \x03(\x0b\x32).couchbase.routing.v1.DataRoutingEndpoint\x12\x14\n\x0cnum_vbuckets\x18\x03 \x01(\r\",\n\x14QueryRoutingEndpoint\x12\x14\n\x0c\x65ndpoint_idx\x18\x01 \x01(\r\"M\n\x0cQueryRouting\x12=\n\tendpoints\x18\x01 \x03(\x0b\x32*.couchbase.routing.v1.QueryRoutingEndpoint\",\n\x14ViewsRoutingEndpoint\x12\x14\n\x0c\x65ndpoint_idx\x18\x01 \x01(\r\"M\n\x0cViewsRouting\x12=\n\tendpoints\x18\x01 \x03(\x0b\x32*.couchbase.routing.v1.ViewsRoutingEndpoint\"?\n\x13WatchRoutingRequest\x12\x18\n\x0b\x62ucket_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_bucket_name\"\xe8\x02\n\x14WatchRoutingResponse\x12\x10\n\x08revision\x18\x01 \x03(\x04\x12\x38\n\tendpoints\x18\x02 \x03(\x0b\x32%.couchbase.routing.v1.RoutingEndpoint\x12P\n\x14vbucket_data_routing\x18\x03 \x01(\x0b\x32\x30.couchbase.routing.v1.VbucketDataRoutingStrategyH\x00\x12>\n\rquery_routing\x18\x04 \x01(\x0b\x32\".couchbase.routing.v1.QueryRoutingH\x01\x88\x01\x01\x12>\n\rviews_routing\x18\x05 \x01(\x0b\x32\".couchbase.routing.v1.ViewsRoutingH\x02\x88\x01\x01\x42\x0e\n\x0c\x64\x61ta_routingB\x10\n\x0e_query_routingB\x10\n\x0e_views_routing2{\n\x0eRoutingService\x12i\n\x0cWatchRouting\x12).couchbase.routing.v1.WatchRoutingRequest\x1a*.couchbase.routing.v1.WatchRoutingResponse\"\x00\x30\x01\x42\xf8\x01\n,com.couchbase.client.protostellar.routing.v1P\x01ZBgithub.com/couchbase/goprotostellar/genproto/routing_v1;routing_v1\xaa\x02!Couchbase.Protostellar.Routing.V1\xca\x02+Couchbase\\Protostellar\\Generated\\Routing\\V1\xea\x02/Couchbase::Protostellar::Generated::Routing::V1b\x06proto3"
9
-
10
- pool = Google::Protobuf::DescriptorPool.generated_pool
11
-
12
- begin
13
- pool.add_serialized_file(descriptor_data)
14
- rescue TypeError => e
15
- # Compatibility code: will be removed in the next major version.
16
- require 'google/protobuf/descriptor_pb'
17
- parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
18
- parsed.clear_dependency
19
- serialized = parsed.class.encode(parsed)
20
- file = pool.add_serialized_file(serialized)
21
- warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
22
- imports = [
23
- ]
24
- imports.each do |type_name, expected_filename|
25
- import_file = pool.lookup(type_name).file_descriptor
26
- if import_file.name != expected_filename
27
- warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
28
- end
29
- end
30
- warn "Each proto file must use a consistent fully-qualified name."
31
- warn "This will become an error in the next major version."
32
- end
33
-
34
- module Couchbase
35
- module Protostellar
36
- module Generated
37
- module Routing
38
- module V1
39
- RoutingEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.RoutingEndpoint").msgclass
40
- DataRoutingEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.DataRoutingEndpoint").msgclass
41
- VbucketDataRoutingStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.VbucketDataRoutingStrategy").msgclass
42
- QueryRoutingEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.QueryRoutingEndpoint").msgclass
43
- QueryRouting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.QueryRouting").msgclass
44
- ViewsRoutingEndpoint = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.ViewsRoutingEndpoint").msgclass
45
- ViewsRouting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.ViewsRouting").msgclass
46
- WatchRoutingRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.WatchRoutingRequest").msgclass
47
- WatchRoutingResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("couchbase.routing.v1.WatchRoutingResponse").msgclass
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,30 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # Source: couchbase/routing/v1/routing.proto for package 'Couchbase.Protostellar.Generated.Routing.V1'
3
-
4
- require 'grpc'
5
- require 'couchbase/protostellar/generated/routing/v1/routing_pb'
6
-
7
- module Couchbase
8
- module Protostellar
9
- module Generated
10
- module Routing
11
- module V1
12
- module RoutingService
13
- class Service
14
-
15
- include ::GRPC::GenericService
16
-
17
- self.marshal_class_method = :encode
18
- self.unmarshal_class_method = :decode
19
- self.service_name = 'couchbase.routing.v1.RoutingService'
20
-
21
- rpc :WatchRouting, ::Couchbase::Protostellar::Generated::Routing::V1::WatchRoutingRequest, stream(::Couchbase::Protostellar::Generated::Routing::V1::WatchRoutingResponse)
22
- end
23
-
24
- Stub = Service.rpc_stub_class
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end