couchbase 3.7.0 → 3.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 +3 -3
- data/ext/CMakeLists.txt +4 -1
- data/ext/cache/extconf_include.rb +4 -3
- data/ext/cache/mozilla-ca-bundle.crt +66 -93
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +24 -11
- data/ext/couchbase/cmake/APKBUILD.in +17 -1
- data/ext/couchbase/cmake/Bundler.cmake +9 -1
- data/ext/couchbase/cmake/Cache.cmake +48 -19
- data/ext/couchbase/cmake/CompilerOptions.cmake +3 -1
- data/ext/couchbase/cmake/OpenSSL.cmake +10 -2
- data/ext/couchbase/cmake/Packaging.cmake +48 -8
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +43 -1
- data/ext/couchbase/cmake/build_config.hxx.in +2 -0
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +18 -0
- data/ext/couchbase/cmake/tarball_glob.txt +10 -0
- data/ext/couchbase/core/app_telemetry_meter.cxx +1 -0
- data/ext/couchbase/core/app_telemetry_reporter.cxx +45 -43
- data/ext/couchbase/core/app_telemetry_reporter.hxx +4 -3
- data/ext/couchbase/core/bucket.cxx +128 -13
- data/ext/couchbase/core/bucket.hxx +12 -2
- data/ext/couchbase/core/cluster.cxx +304 -152
- data/ext/couchbase/core/cluster.hxx +32 -0
- data/ext/couchbase/core/cluster_credentials.cxx +25 -0
- data/ext/couchbase/core/cluster_credentials.hxx +5 -0
- data/ext/couchbase/core/cluster_label_listener.cxx +72 -0
- data/ext/couchbase/core/cluster_label_listener.hxx +46 -0
- data/ext/couchbase/core/cluster_options.hxx +4 -0
- data/ext/couchbase/core/deprecation_utils.hxx +26 -0
- data/ext/couchbase/core/error.hxx +27 -0
- data/ext/couchbase/core/free_form_http_request.hxx +0 -2
- data/ext/couchbase/core/http_component.cxx +12 -48
- data/ext/couchbase/core/impl/analytics.cxx +3 -2
- data/ext/couchbase/core/impl/analytics.hxx +2 -1
- data/ext/couchbase/core/impl/analytics_index_manager.cxx +249 -137
- data/ext/couchbase/core/impl/binary_collection.cxx +134 -58
- data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
- data/ext/couchbase/core/impl/collection.cxx +560 -245
- data/ext/couchbase/core/impl/collection_manager.cxx +89 -49
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +4 -4
- data/ext/couchbase/core/impl/error.cxx +20 -13
- data/ext/couchbase/core/impl/error.hxx +15 -10
- data/ext/couchbase/core/impl/get_all_replicas.hxx +1 -1
- data/ext/couchbase/core/impl/get_any_replica.hxx +2 -1
- data/ext/couchbase/core/impl/get_replica.hxx +2 -0
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
- data/ext/couchbase/core/impl/observability_recorder.cxx +161 -0
- data/ext/couchbase/core/impl/observability_recorder.hxx +77 -0
- data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
- data/ext/couchbase/core/impl/public_bucket.cxx +31 -7
- data/ext/couchbase/core/impl/public_cluster.cxx +107 -19
- data/ext/couchbase/core/impl/query.cxx +6 -3
- data/ext/couchbase/core/impl/query.hxx +3 -1
- data/ext/couchbase/core/impl/query_index_manager.cxx +267 -102
- data/ext/couchbase/core/impl/scope.cxx +53 -11
- data/ext/couchbase/core/impl/search.cxx +8 -4
- data/ext/couchbase/core/impl/search.hxx +6 -2
- data/ext/couchbase/core/impl/search_index_manager.cxx +131 -41
- data/ext/couchbase/core/impl/with_cancellation.hxx +75 -0
- data/ext/couchbase/core/io/config_tracker.cxx +9 -9
- data/ext/couchbase/core/io/config_tracker.hxx +2 -1
- data/ext/couchbase/core/io/http_command.hxx +98 -49
- data/ext/couchbase/core/io/http_context.hxx +2 -0
- data/ext/couchbase/core/io/http_session.cxx +23 -10
- data/ext/couchbase/core/io/http_session.hxx +17 -9
- data/ext/couchbase/core/io/http_session_manager.hxx +163 -228
- data/ext/couchbase/core/io/http_traits.hxx +0 -7
- data/ext/couchbase/core/io/mcbp_command.hxx +123 -44
- data/ext/couchbase/core/io/mcbp_session.cxx +251 -26
- data/ext/couchbase/core/io/mcbp_session.hxx +9 -1
- data/ext/couchbase/core/io/mcbp_traits.hxx +0 -8
- data/ext/couchbase/core/io/streams.cxx +3 -3
- data/ext/couchbase/core/io/streams.hxx +3 -2
- data/ext/couchbase/core/meta/features.hxx +15 -0
- data/ext/couchbase/core/meta/version.cxx +13 -0
- data/ext/couchbase/core/meta/version.hxx +3 -0
- data/ext/couchbase/core/metrics/constants.hxx +23 -0
- data/ext/couchbase/core/metrics/logging_meter.cxx +5 -5
- data/ext/couchbase/core/metrics/meter_wrapper.cxx +65 -63
- data/ext/couchbase/core/metrics/meter_wrapper.hxx +12 -10
- data/ext/couchbase/core/operations/document_analytics.hxx +0 -5
- data/ext/couchbase/core/operations/document_append.hxx +0 -4
- data/ext/couchbase/core/operations/document_decrement.hxx +0 -5
- data/ext/couchbase/core/operations/document_exists.hxx +0 -7
- data/ext/couchbase/core/operations/document_get.hxx +0 -7
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +77 -27
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +83 -2
- data/ext/couchbase/core/operations/document_get_projected.hxx +0 -9
- data/ext/couchbase/core/operations/document_increment.hxx +0 -5
- data/ext/couchbase/core/operations/document_insert.hxx +0 -4
- data/ext/couchbase/core/operations/document_lookup_in.hxx +0 -9
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +46 -4
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +121 -43
- data/ext/couchbase/core/operations/document_mutate_in.hxx +0 -5
- data/ext/couchbase/core/operations/document_prepend.hxx +0 -4
- data/ext/couchbase/core/operations/document_query.hxx +0 -4
- data/ext/couchbase/core/operations/document_remove.hxx +0 -4
- data/ext/couchbase/core/operations/document_replace.hxx +0 -4
- data/ext/couchbase/core/operations/document_search.hxx +0 -7
- data/ext/couchbase/core/operations/document_touch.hxx +0 -7
- data/ext/couchbase/core/operations/document_unlock.hxx +0 -6
- data/ext/couchbase/core/operations/document_upsert.hxx +0 -4
- data/ext/couchbase/core/operations/document_view.cxx +2 -0
- data/ext/couchbase/core/operations/document_view.hxx +10 -13
- data/ext/couchbase/core/operations/http_noop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/change_password.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/error_utils.cxx +4 -1
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +68 -30
- data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +4 -3
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +2 -1
- data/ext/couchbase/core/operations/management/role_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/operation_traits.hxx +6 -0
- data/ext/couchbase/core/operations.hxx +0 -1
- data/ext/couchbase/core/operations_fwd.hxx +8 -0
- data/ext/couchbase/core/origin.cxx +67 -12
- data/ext/couchbase/core/origin.hxx +13 -8
- data/ext/couchbase/core/orphan_reporter.cxx +164 -0
- data/ext/couchbase/core/orphan_reporter.hxx +65 -0
- data/ext/couchbase/core/sasl/CMakeLists.txt +1 -0
- data/ext/couchbase/core/sasl/client.cc +6 -0
- data/ext/couchbase/core/sasl/mechanism.cc +2 -1
- data/ext/couchbase/core/sasl/mechanism.h +2 -1
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.cc +41 -0
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.h +47 -0
- data/ext/couchbase/core/tls_context_provider.cxx +44 -0
- data/ext/couchbase/core/tls_context_provider.hxx +44 -0
- data/ext/couchbase/core/tracing/attribute_helpers.hxx +45 -0
- data/ext/couchbase/core/tracing/constants.hxx +148 -68
- data/ext/couchbase/core/tracing/threshold_logging_options.hxx +0 -3
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +122 -170
- data/ext/couchbase/core/tracing/tracer_wrapper.cxx +17 -24
- data/ext/couchbase/core/tracing/tracer_wrapper.hxx +8 -10
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.cxx +114 -0
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.hxx +85 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +16 -14
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +4 -4
- data/ext/couchbase/core/transactions/transactions.cxx +1 -1
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +1 -2
- data/ext/couchbase/core/utils/byteswap.hxx +12 -0
- data/ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
- data/ext/couchbase/core/utils/connection_string.cxx +2 -0
- data/ext/couchbase/couchbase/certificate_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/cluster.hxx +47 -0
- data/ext/couchbase/couchbase/cluster_options.hxx +16 -0
- data/ext/couchbase/couchbase/collection.hxx +60 -15
- data/ext/couchbase/couchbase/error_codes.hxx +48 -48
- data/ext/couchbase/couchbase/jwt_authenticator.hxx +52 -0
- data/ext/couchbase/couchbase/metrics/meter.hxx +2 -1
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +75 -80
- data/ext/couchbase/couchbase/network_options.hxx +19 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +15 -17
- data/ext/couchbase/couchbase/tracing/request_span.hxx +2 -2
- data/ext/couchbase.cxx +4 -0
- data/ext/extconf.rb +1 -0
- data/ext/rcb_analytics.cxx +157 -47
- data/ext/rcb_backend.cxx +118 -71
- data/ext/rcb_buckets.cxx +39 -16
- data/ext/rcb_collections.cxx +36 -12
- data/ext/rcb_crud.cxx +587 -294
- data/ext/rcb_hdr_histogram.cxx +219 -0
- data/ext/rcb_hdr_histogram.hxx +28 -0
- data/ext/rcb_multi.cxx +142 -59
- data/ext/rcb_observability.cxx +132 -0
- data/ext/rcb_observability.hxx +49 -0
- data/ext/rcb_query.cxx +77 -27
- data/ext/rcb_search.cxx +92 -31
- data/ext/rcb_users.cxx +69 -26
- data/ext/rcb_utils.cxx +91 -0
- data/ext/rcb_utils.hxx +141 -168
- data/ext/rcb_views.cxx +36 -12
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase/authenticator.rb +14 -0
- data/lib/couchbase/binary_collection.rb +37 -22
- data/lib/couchbase/bucket.rb +46 -31
- data/lib/couchbase/cluster.rb +146 -61
- data/lib/couchbase/collection.rb +257 -186
- data/lib/couchbase/datastructures/couchbase_list.rb +81 -50
- data/lib/couchbase/datastructures/couchbase_map.rb +86 -50
- data/lib/couchbase/datastructures/couchbase_queue.rb +64 -38
- data/lib/couchbase/datastructures/couchbase_set.rb +57 -41
- data/lib/couchbase/deprecations.rb +1 -1
- data/lib/couchbase/diagnostics.rb +8 -8
- data/lib/couchbase/errors.rb +6 -0
- data/lib/couchbase/management/analytics_index_manager.rb +90 -59
- data/lib/couchbase/management/bucket_manager.rb +73 -45
- data/lib/couchbase/management/collection_manager.rb +86 -43
- data/lib/couchbase/management/collection_query_index_manager.rb +56 -33
- data/lib/couchbase/management/query_index_manager.rb +88 -36
- data/lib/couchbase/management/scope_search_index_manager.rb +119 -52
- data/lib/couchbase/management/search_index_manager.rb +401 -178
- data/lib/couchbase/management/user_manager.rb +343 -174
- data/lib/couchbase/management/view_index_manager.rb +166 -73
- data/lib/couchbase/metrics/logging_meter.rb +108 -0
- data/lib/couchbase/metrics/logging_value_recorder.rb +50 -0
- data/lib/couchbase/metrics/meter.rb +27 -0
- data/lib/couchbase/metrics/noop_meter.rb +30 -0
- data/lib/couchbase/metrics/noop_value_recorder.rb +27 -0
- data/lib/couchbase/metrics/value_recorder.rb +25 -0
- data/lib/couchbase/options.rb +69 -3
- data/lib/couchbase/protostellar/cluster.rb +3 -0
- data/lib/couchbase/scope.rb +62 -48
- data/lib/couchbase/search_options.rb +18 -18
- data/lib/couchbase/tracing/noop_span.rb +29 -0
- data/lib/couchbase/tracing/noop_tracer.rb +29 -0
- data/lib/couchbase/tracing/request_span.rb +34 -0
- data/lib/couchbase/tracing/request_tracer.rb +28 -0
- data/lib/couchbase/tracing/threshold_logging_span.rb +112 -0
- data/lib/couchbase/tracing/threshold_logging_tracer.rb +231 -0
- data/lib/couchbase/utils/hdr_histogram.rb +55 -0
- data/lib/couchbase/utils/observability.rb +257 -0
- data/lib/couchbase/utils/observability_constants.rb +200 -0
- data/lib/couchbase/utils/stdlib_logger_adapter.rb +1 -3
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase.rb +2 -2
- metadata +58 -6
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/timeout_defaults.hxx"
|
|
25
26
|
|
|
26
27
|
namespace couchbase::core::operations::management
|
|
@@ -47,6 +48,7 @@ struct search_index_drop_request {
|
|
|
47
48
|
|
|
48
49
|
std::optional<std::string> client_context_id{};
|
|
49
50
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
51
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
50
52
|
|
|
51
53
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
52
54
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/search_index.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -48,6 +49,7 @@ struct search_index_get_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/search_index.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -47,6 +48,7 @@ struct search_index_get_all_request {
|
|
|
47
48
|
|
|
48
49
|
std::optional<std::string> client_context_id{};
|
|
49
50
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
51
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
50
52
|
|
|
51
53
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
52
54
|
http_context& context) const;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/timeout_defaults.hxx"
|
|
25
26
|
|
|
26
27
|
namespace couchbase::core::operations::management
|
|
@@ -49,6 +50,7 @@ struct search_index_get_documents_count_request {
|
|
|
49
50
|
|
|
50
51
|
std::optional<std::string> client_context_id{};
|
|
51
52
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
53
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
52
54
|
|
|
53
55
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
54
56
|
http_context& context) const;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/timeout_defaults.hxx"
|
|
25
26
|
|
|
26
27
|
namespace couchbase::core::operations::management
|
|
@@ -45,6 +46,7 @@ struct search_index_get_stats_request {
|
|
|
45
46
|
|
|
46
47
|
std::optional<std::string> client_context_id{};
|
|
47
48
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
49
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
48
50
|
|
|
49
51
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
50
52
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/search_index.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -50,6 +51,7 @@ struct search_index_upsert_request {
|
|
|
50
51
|
|
|
51
52
|
std::optional<std::string> client_context_id{};
|
|
52
53
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
54
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
53
55
|
|
|
54
56
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
55
57
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -46,6 +47,7 @@ struct user_drop_request {
|
|
|
46
47
|
|
|
47
48
|
std::optional<std::string> client_context_id{};
|
|
48
49
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
50
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
49
51
|
|
|
50
52
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
51
53
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -47,6 +48,7 @@ struct user_get_request {
|
|
|
47
48
|
|
|
48
49
|
std::optional<std::string> client_context_id{};
|
|
49
50
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
51
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
50
52
|
|
|
51
53
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
52
54
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -46,6 +47,7 @@ struct user_get_all_request {
|
|
|
46
47
|
|
|
47
48
|
std::optional<std::string> client_context_id{};
|
|
48
49
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
50
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
49
51
|
|
|
50
52
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
51
53
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -47,6 +48,7 @@ struct user_upsert_request {
|
|
|
47
48
|
|
|
48
49
|
std::optional<std::string> client_context_id{};
|
|
49
50
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
51
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
50
52
|
|
|
51
53
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
52
54
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_context.hxx"
|
|
23
23
|
#include "core/io/http_message.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -45,6 +46,7 @@ struct view_index_drop_request {
|
|
|
45
46
|
|
|
46
47
|
std::optional<std::string> client_context_id{};
|
|
47
48
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
49
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
48
50
|
|
|
49
51
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
50
52
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/design_document.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -46,6 +47,7 @@ struct view_index_get_request {
|
|
|
46
47
|
|
|
47
48
|
std::optional<std::string> client_context_id{};
|
|
48
49
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
50
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
49
51
|
|
|
50
52
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
51
53
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/design_document.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -46,6 +47,7 @@ struct view_index_get_all_request {
|
|
|
46
47
|
|
|
47
48
|
std::optional<std::string> client_context_id{};
|
|
48
49
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
50
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
49
51
|
|
|
50
52
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
51
53
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/design_document.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -44,6 +45,7 @@ struct view_index_upsert_request {
|
|
|
44
45
|
|
|
45
46
|
std::optional<std::string> client_context_id{};
|
|
46
47
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
48
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
47
49
|
|
|
48
50
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
49
51
|
http_context& context) const;
|
|
@@ -28,4 +28,10 @@ struct is_compound_operation : public std::false_type {
|
|
|
28
28
|
template<typename T>
|
|
29
29
|
inline constexpr bool is_compound_operation_v = is_compound_operation<T>::value;
|
|
30
30
|
|
|
31
|
+
template<typename T>
|
|
32
|
+
struct is_cancellable_operation : public std::false_type {
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
template<typename T>
|
|
36
|
+
inline constexpr bool is_cancellable_operation_v = is_cancellable_operation<T>::value;
|
|
31
37
|
} // namespace couchbase::core::operations
|
|
@@ -36,6 +36,8 @@ struct observe_seqno_request;
|
|
|
36
36
|
struct observe_seqno_response;
|
|
37
37
|
template<typename mutation_request>
|
|
38
38
|
struct with_legacy_durability;
|
|
39
|
+
template<typename kv_request>
|
|
40
|
+
struct with_cancellation;
|
|
39
41
|
} // namespace impl
|
|
40
42
|
|
|
41
43
|
namespace operations
|
|
@@ -103,6 +105,12 @@ using remove_request_with_legacy_durability = impl::with_legacy_durability<remov
|
|
|
103
105
|
using replace_request_with_legacy_durability = impl::with_legacy_durability<replace_request>;
|
|
104
106
|
using upsert_request_with_legacy_durability = impl::with_legacy_durability<upsert_request>;
|
|
105
107
|
|
|
108
|
+
using get_request_with_cancellation = impl::with_cancellation<get_request>;
|
|
109
|
+
using get_replica_request_with_cancellation = impl::with_cancellation<impl::get_replica_request>;
|
|
110
|
+
using lookup_in_request_with_cancellation = impl::with_cancellation<lookup_in_request>;
|
|
111
|
+
using lookup_in_replica_request_with_cancellation =
|
|
112
|
+
impl::with_cancellation<impl::lookup_in_replica_request>;
|
|
113
|
+
|
|
106
114
|
namespace management
|
|
107
115
|
{
|
|
108
116
|
struct analytics_dataset_create_request;
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
#include <tao/json.hpp>
|
|
28
28
|
|
|
29
|
+
#include <mutex>
|
|
29
30
|
#include <random>
|
|
30
31
|
#include <utility>
|
|
31
32
|
|
|
@@ -99,6 +100,19 @@ struct traits<couchbase::core::io::dns::dns_config> {
|
|
|
99
100
|
}
|
|
100
101
|
};
|
|
101
102
|
|
|
103
|
+
template<>
|
|
104
|
+
struct traits<couchbase::core::orphan_reporter_options> {
|
|
105
|
+
template<template<typename...> class Traits>
|
|
106
|
+
static void assign(tao::json::basic_value<Traits>& v,
|
|
107
|
+
const couchbase::core::orphan_reporter_options& o)
|
|
108
|
+
{
|
|
109
|
+
v = {
|
|
110
|
+
{ "emit_interval", o.emit_interval },
|
|
111
|
+
{ "sample_size", o.sample_size },
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
102
116
|
template<>
|
|
103
117
|
struct traits<couchbase::core::tracing::threshold_logging_options> {
|
|
104
118
|
template<template<typename...> class Traits>
|
|
@@ -106,8 +120,6 @@ struct traits<couchbase::core::tracing::threshold_logging_options> {
|
|
|
106
120
|
const couchbase::core::tracing::threshold_logging_options& o)
|
|
107
121
|
{
|
|
108
122
|
v = {
|
|
109
|
-
{ "orphaned_emit_interval", o.orphaned_emit_interval },
|
|
110
|
-
{ "orphaned_sample_size", o.orphaned_sample_size },
|
|
111
123
|
{ "threshold_emit_interval", o.threshold_emit_interval },
|
|
112
124
|
{ "threshold_sample_size", o.threshold_sample_size },
|
|
113
125
|
{ "key_value_threshold", o.key_value_threshold },
|
|
@@ -275,12 +287,14 @@ origin::to_json() const -> std::string
|
|
|
275
287
|
{ "enable_compression", options_.enable_compression },
|
|
276
288
|
{ "enable_tracing", options_.enable_tracing },
|
|
277
289
|
{ "enable_metrics", options_.enable_metrics },
|
|
290
|
+
{ "enable_orphan_reporting", options_.enable_orphan_reporting },
|
|
278
291
|
{ "tcp_keep_alive_interval", options_.tcp_keep_alive_interval },
|
|
279
292
|
{ "config_idle_redial_timeout", options_.config_idle_redial_timeout },
|
|
280
293
|
{ "max_http_connections", options_.max_http_connections },
|
|
281
294
|
{ "idle_http_connection_timeout", options_.idle_http_connection_timeout },
|
|
282
295
|
{ "metrics_options", options_.metrics_options },
|
|
283
296
|
{ "tracing_options", options_.tracing_options },
|
|
297
|
+
{ "orphan_reporter_options", options_.orphan_options },
|
|
284
298
|
{ "transactions_options", options_.transactions },
|
|
285
299
|
{ "server_group", options_.server_group },
|
|
286
300
|
#endif
|
|
@@ -302,12 +316,36 @@ origin::to_json() const -> std::string
|
|
|
302
316
|
|
|
303
317
|
} // namespace couchbase::core
|
|
304
318
|
|
|
319
|
+
couchbase::core::origin::origin(origin&& other) noexcept
|
|
320
|
+
: options_(std::move(other.options_))
|
|
321
|
+
, nodes_(std::move(other.nodes_))
|
|
322
|
+
, next_node_(other.next_node_)
|
|
323
|
+
, exhausted_(other.exhausted_)
|
|
324
|
+
, connection_string_(std::move(other.connection_string_))
|
|
325
|
+
, credentials_(std::move(other.credentials_))
|
|
326
|
+
{
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
auto
|
|
330
|
+
couchbase::core::origin::operator=(origin&& other) noexcept -> origin&
|
|
331
|
+
{
|
|
332
|
+
if (this != &other) {
|
|
333
|
+
options_ = std::move(other.options_);
|
|
334
|
+
nodes_ = std::move(other.nodes_);
|
|
335
|
+
next_node_ = other.next_node_;
|
|
336
|
+
exhausted_ = other.exhausted_;
|
|
337
|
+
connection_string_ = std::move(other.connection_string_);
|
|
338
|
+
credentials_ = std::move(other.credentials_);
|
|
339
|
+
}
|
|
340
|
+
return *this;
|
|
341
|
+
}
|
|
342
|
+
|
|
305
343
|
couchbase::core::origin::origin(const couchbase::core::origin& other)
|
|
306
344
|
: options_(other.options_)
|
|
307
|
-
, credentials_(other.credentials_)
|
|
308
345
|
, nodes_(other.nodes_)
|
|
309
346
|
, next_node_(nodes_.begin())
|
|
310
347
|
{
|
|
348
|
+
update_credentials(other.credentials());
|
|
311
349
|
}
|
|
312
350
|
|
|
313
351
|
couchbase::core::origin::origin(origin other, const topology::configuration& config)
|
|
@@ -321,9 +359,9 @@ couchbase::core::origin::origin(couchbase::core::cluster_credentials auth,
|
|
|
321
359
|
std::uint16_t port,
|
|
322
360
|
couchbase::core::cluster_options options)
|
|
323
361
|
: options_(std::move(options))
|
|
324
|
-
, credentials_(std::move(auth))
|
|
325
362
|
, nodes_{ { hostname, std::to_string(port) } }
|
|
326
363
|
, next_node_(nodes_.begin())
|
|
364
|
+
, credentials_(std::move(auth))
|
|
327
365
|
{
|
|
328
366
|
}
|
|
329
367
|
couchbase::core::origin::origin(couchbase::core::cluster_credentials auth,
|
|
@@ -331,16 +369,16 @@ couchbase::core::origin::origin(couchbase::core::cluster_credentials auth,
|
|
|
331
369
|
const std::string& port,
|
|
332
370
|
couchbase::core::cluster_options options)
|
|
333
371
|
: options_(std::move(options))
|
|
334
|
-
, credentials_(std::move(auth))
|
|
335
372
|
, nodes_{ { hostname, port } }
|
|
336
373
|
, next_node_(nodes_.begin())
|
|
374
|
+
, credentials_(std::move(auth))
|
|
337
375
|
{
|
|
338
376
|
}
|
|
339
377
|
couchbase::core::origin::origin(couchbase::core::cluster_credentials auth,
|
|
340
378
|
const couchbase::core::utils::connection_string& connstr)
|
|
341
379
|
: options_(connstr.options)
|
|
342
|
-
, credentials_(std::move(auth))
|
|
343
380
|
, connection_string_(connstr.input)
|
|
381
|
+
, credentials_(std::move(auth))
|
|
344
382
|
{
|
|
345
383
|
nodes_.reserve(connstr.bootstrap_nodes.size());
|
|
346
384
|
for (const auto& node : connstr.bootstrap_nodes) {
|
|
@@ -358,7 +396,7 @@ couchbase::core::origin::operator=(const couchbase::core::origin& other) -> couc
|
|
|
358
396
|
{
|
|
359
397
|
if (this != &other) {
|
|
360
398
|
options_ = other.options_;
|
|
361
|
-
|
|
399
|
+
update_credentials(other.credentials());
|
|
362
400
|
nodes_ = other.nodes_;
|
|
363
401
|
next_node_ = nodes_.begin();
|
|
364
402
|
exhausted_ = false;
|
|
@@ -371,26 +409,36 @@ couchbase::core::origin::connection_string() const -> const std::string&
|
|
|
371
409
|
return connection_string_;
|
|
372
410
|
}
|
|
373
411
|
auto
|
|
374
|
-
couchbase::core::origin::username() const ->
|
|
412
|
+
couchbase::core::origin::username() const -> std::string
|
|
375
413
|
{
|
|
414
|
+
const std::shared_lock lock(credentials_mutex_);
|
|
376
415
|
return credentials_.username;
|
|
377
416
|
}
|
|
378
417
|
auto
|
|
379
|
-
couchbase::core::origin::password() const ->
|
|
418
|
+
couchbase::core::origin::password() const -> std::string
|
|
380
419
|
{
|
|
420
|
+
const std::shared_lock lock(credentials_mutex_);
|
|
381
421
|
return credentials_.password;
|
|
382
422
|
}
|
|
383
423
|
auto
|
|
384
|
-
couchbase::core::origin::certificate_path() const ->
|
|
424
|
+
couchbase::core::origin::certificate_path() const -> std::string
|
|
385
425
|
{
|
|
426
|
+
const std::shared_lock lock(credentials_mutex_);
|
|
386
427
|
return credentials_.certificate_path;
|
|
387
428
|
}
|
|
388
429
|
auto
|
|
389
|
-
couchbase::core::origin::key_path() const ->
|
|
430
|
+
couchbase::core::origin::key_path() const -> std::string
|
|
390
431
|
{
|
|
432
|
+
const std::shared_lock lock(credentials_mutex_);
|
|
391
433
|
return credentials_.key_path;
|
|
392
434
|
}
|
|
393
435
|
auto
|
|
436
|
+
couchbase::core::origin::jwt_token() const -> std::string
|
|
437
|
+
{
|
|
438
|
+
const std::shared_lock lock(credentials_mutex_);
|
|
439
|
+
return credentials_.jwt_token;
|
|
440
|
+
}
|
|
441
|
+
auto
|
|
394
442
|
couchbase::core::origin::get_hostnames() const -> std::vector<std::string>
|
|
395
443
|
{
|
|
396
444
|
std::vector<std::string> res;
|
|
@@ -455,6 +503,12 @@ couchbase::core::origin::set_nodes_from_config(const topology::configuration& co
|
|
|
455
503
|
}
|
|
456
504
|
next_node_ = nodes_.begin();
|
|
457
505
|
}
|
|
506
|
+
void
|
|
507
|
+
couchbase::core::origin::update_credentials(cluster_credentials auth)
|
|
508
|
+
{
|
|
509
|
+
const std::unique_lock lock(credentials_mutex_);
|
|
510
|
+
credentials_ = std::move(auth);
|
|
511
|
+
}
|
|
458
512
|
auto
|
|
459
513
|
couchbase::core::origin::next_address() -> std::pair<std::string, std::string>
|
|
460
514
|
{
|
|
@@ -490,7 +544,8 @@ couchbase::core::origin::options() -> couchbase::core::cluster_options&
|
|
|
490
544
|
return options_;
|
|
491
545
|
}
|
|
492
546
|
auto
|
|
493
|
-
couchbase::core::origin::credentials() const ->
|
|
547
|
+
couchbase::core::origin::credentials() const -> couchbase::core::cluster_credentials
|
|
494
548
|
{
|
|
549
|
+
const std::shared_lock lock(credentials_mutex_);
|
|
495
550
|
return credentials_;
|
|
496
551
|
}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
#include "cluster_credentials.hxx"
|
|
21
21
|
#include "cluster_options.hxx"
|
|
22
22
|
|
|
23
|
+
#include <shared_mutex>
|
|
23
24
|
#include <string>
|
|
24
25
|
#include <utility>
|
|
25
26
|
#include <vector>
|
|
@@ -43,7 +44,7 @@ struct origin {
|
|
|
43
44
|
origin() = default;
|
|
44
45
|
~origin() = default;
|
|
45
46
|
|
|
46
|
-
origin(origin&& other)
|
|
47
|
+
origin(origin&& other) noexcept;
|
|
47
48
|
origin(const origin& other);
|
|
48
49
|
origin(origin other, const topology::configuration& config);
|
|
49
50
|
origin(cluster_credentials auth,
|
|
@@ -55,14 +56,15 @@ struct origin {
|
|
|
55
56
|
const std::string& port,
|
|
56
57
|
cluster_options options);
|
|
57
58
|
origin(cluster_credentials auth, const utils::connection_string& connstr);
|
|
58
|
-
auto operator=(origin&& other) -> origin
|
|
59
|
+
auto operator=(origin&& other) noexcept -> origin&;
|
|
59
60
|
auto operator=(const origin& other) -> origin&;
|
|
60
61
|
|
|
61
62
|
[[nodiscard]] auto connection_string() const -> const std::string&;
|
|
62
|
-
[[nodiscard]] auto username() const ->
|
|
63
|
-
[[nodiscard]] auto password() const ->
|
|
64
|
-
[[nodiscard]] auto certificate_path() const ->
|
|
65
|
-
[[nodiscard]] auto key_path() const ->
|
|
63
|
+
[[nodiscard]] auto username() const -> std::string;
|
|
64
|
+
[[nodiscard]] auto password() const -> std::string;
|
|
65
|
+
[[nodiscard]] auto certificate_path() const -> std::string;
|
|
66
|
+
[[nodiscard]] auto key_path() const -> std::string;
|
|
67
|
+
[[nodiscard]] auto jwt_token() const -> std::string;
|
|
66
68
|
|
|
67
69
|
[[nodiscard]] auto get_hostnames() const -> std::vector<std::string>;
|
|
68
70
|
[[nodiscard]] auto get_nodes() const -> std::vector<std::string>;
|
|
@@ -71,6 +73,8 @@ struct origin {
|
|
|
71
73
|
void set_nodes(node_list nodes);
|
|
72
74
|
void set_nodes_from_config(const topology::configuration& config);
|
|
73
75
|
|
|
76
|
+
void update_credentials(cluster_credentials auth);
|
|
77
|
+
|
|
74
78
|
[[nodiscard]] auto next_address() -> std::pair<std::string, std::string>;
|
|
75
79
|
|
|
76
80
|
[[nodiscard]] auto exhausted() const -> bool;
|
|
@@ -79,16 +83,17 @@ struct origin {
|
|
|
79
83
|
|
|
80
84
|
[[nodiscard]] auto options() const -> const couchbase::core::cluster_options&;
|
|
81
85
|
[[nodiscard]] auto options() -> couchbase::core::cluster_options&;
|
|
82
|
-
[[nodiscard]] auto credentials() const ->
|
|
86
|
+
[[nodiscard]] auto credentials() const -> couchbase::core::cluster_credentials;
|
|
83
87
|
[[nodiscard]] auto to_json() const -> std::string;
|
|
84
88
|
|
|
85
89
|
private:
|
|
86
90
|
couchbase::core::cluster_options options_{};
|
|
87
|
-
cluster_credentials credentials_{};
|
|
88
91
|
node_list nodes_{};
|
|
89
92
|
node_list::iterator next_node_{};
|
|
90
93
|
bool exhausted_{ false };
|
|
91
94
|
std::string connection_string_{};
|
|
95
|
+
cluster_credentials credentials_{};
|
|
96
|
+
mutable std::shared_mutex credentials_mutex_{};
|
|
92
97
|
};
|
|
93
98
|
|
|
94
99
|
} // namespace couchbase::core
|