couchbase 4.6.1 → 4.7.0-dev.1

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 (312) hide show
  1. package/CMakeLists.txt +2 -1
  2. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.crt +23 -5
  3. package/deps/couchbase-cxx-cache/mozilla-ca-bundle.sha256 +1 -1
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +24 -11
  5. package/deps/couchbase-cxx-client/README.md +2 -2
  6. package/deps/couchbase-cxx-client/cmake/APKBUILD.in +17 -1
  7. package/deps/couchbase-cxx-client/cmake/Bundler.cmake +9 -1
  8. package/deps/couchbase-cxx-client/cmake/Cache.cmake +48 -19
  9. package/deps/couchbase-cxx-client/cmake/CompilerOptions.cmake +3 -1
  10. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +10 -2
  11. package/deps/couchbase-cxx-client/cmake/Packaging.cmake +48 -8
  12. package/deps/couchbase-cxx-client/cmake/ThirdPartyDependencies.cmake +41 -0
  13. package/deps/couchbase-cxx-client/cmake/build_config.hxx.in +2 -0
  14. package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +18 -0
  15. package/deps/couchbase-cxx-client/cmake/debian/control +6 -1
  16. package/deps/couchbase-cxx-client/cmake/debian/rules +1 -0
  17. package/deps/couchbase-cxx-client/cmake/tarball_glob.txt +10 -0
  18. package/deps/couchbase-cxx-client/core/app_telemetry_meter.cxx +1 -0
  19. package/deps/couchbase-cxx-client/core/app_telemetry_reporter.cxx +45 -43
  20. package/deps/couchbase-cxx-client/core/app_telemetry_reporter.hxx +4 -3
  21. package/deps/couchbase-cxx-client/core/bucket.cxx +128 -13
  22. package/deps/couchbase-cxx-client/core/bucket.hxx +12 -2
  23. package/deps/couchbase-cxx-client/core/cluster.cxx +304 -152
  24. package/deps/couchbase-cxx-client/core/cluster.hxx +32 -0
  25. package/deps/couchbase-cxx-client/core/cluster_credentials.cxx +25 -0
  26. package/deps/couchbase-cxx-client/core/cluster_credentials.hxx +5 -0
  27. package/deps/couchbase-cxx-client/core/cluster_label_listener.cxx +72 -0
  28. package/deps/couchbase-cxx-client/core/cluster_label_listener.hxx +46 -0
  29. package/deps/couchbase-cxx-client/core/cluster_options.hxx +4 -0
  30. package/deps/couchbase-cxx-client/core/deprecation_utils.hxx +26 -0
  31. package/deps/couchbase-cxx-client/core/error.hxx +27 -0
  32. package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +0 -2
  33. package/deps/couchbase-cxx-client/core/http_component.cxx +12 -48
  34. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +3 -2
  35. package/deps/couchbase-cxx-client/core/impl/analytics.hxx +2 -1
  36. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +249 -137
  37. package/deps/couchbase-cxx-client/core/impl/binary_collection.cxx +134 -58
  38. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +87 -35
  39. package/deps/couchbase-cxx-client/core/impl/collection.cxx +560 -245
  40. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +89 -49
  41. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +3 -3
  42. package/deps/couchbase-cxx-client/core/impl/error.cxx +20 -13
  43. package/deps/couchbase-cxx-client/core/impl/error.hxx +15 -10
  44. package/deps/couchbase-cxx-client/core/impl/get_all_replicas.hxx +1 -1
  45. package/deps/couchbase-cxx-client/core/impl/get_any_replica.hxx +2 -1
  46. package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
  47. package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +1 -1
  48. package/deps/couchbase-cxx-client/core/impl/observability_recorder.cxx +161 -0
  49. package/deps/couchbase-cxx-client/core/impl/observability_recorder.hxx +77 -0
  50. package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
  51. package/deps/couchbase-cxx-client/core/impl/public_bucket.cxx +31 -7
  52. package/deps/couchbase-cxx-client/core/impl/public_cluster.cxx +107 -19
  53. package/deps/couchbase-cxx-client/core/impl/query.cxx +6 -3
  54. package/deps/couchbase-cxx-client/core/impl/query.hxx +3 -1
  55. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +267 -102
  56. package/deps/couchbase-cxx-client/core/impl/scope.cxx +53 -11
  57. package/deps/couchbase-cxx-client/core/impl/search.cxx +8 -4
  58. package/deps/couchbase-cxx-client/core/impl/search.hxx +6 -2
  59. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +131 -41
  60. package/deps/couchbase-cxx-client/core/impl/with_cancellation.hxx +75 -0
  61. package/deps/couchbase-cxx-client/core/io/config_tracker.cxx +9 -9
  62. package/deps/couchbase-cxx-client/core/io/config_tracker.hxx +2 -1
  63. package/deps/couchbase-cxx-client/core/io/http_command.hxx +98 -49
  64. package/deps/couchbase-cxx-client/core/io/http_context.hxx +2 -0
  65. package/deps/couchbase-cxx-client/core/io/http_session.cxx +23 -10
  66. package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -9
  67. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +163 -228
  68. package/deps/couchbase-cxx-client/core/io/http_traits.hxx +0 -7
  69. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +123 -44
  70. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +251 -26
  71. package/deps/couchbase-cxx-client/core/io/mcbp_session.hxx +9 -1
  72. package/deps/couchbase-cxx-client/core/io/mcbp_traits.hxx +0 -8
  73. package/deps/couchbase-cxx-client/core/io/streams.cxx +3 -3
  74. package/deps/couchbase-cxx-client/core/io/streams.hxx +3 -2
  75. package/deps/couchbase-cxx-client/core/meta/features.hxx +15 -0
  76. package/deps/couchbase-cxx-client/core/meta/version.cxx +13 -0
  77. package/deps/couchbase-cxx-client/core/meta/version.hxx +3 -0
  78. package/deps/couchbase-cxx-client/core/metrics/constants.hxx +23 -0
  79. package/deps/couchbase-cxx-client/core/metrics/logging_meter.cxx +5 -5
  80. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +65 -63
  81. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +12 -10
  82. package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +0 -5
  83. package/deps/couchbase-cxx-client/core/operations/document_append.hxx +0 -4
  84. package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +0 -5
  85. package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +0 -7
  86. package/deps/couchbase-cxx-client/core/operations/document_get.hxx +0 -7
  87. package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +77 -27
  88. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +0 -9
  89. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +0 -9
  90. package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +83 -2
  91. package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +0 -9
  92. package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +0 -5
  93. package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +0 -4
  94. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +0 -9
  95. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +46 -4
  96. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +121 -43
  97. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +0 -5
  98. package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +0 -4
  99. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +0 -4
  100. package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +0 -4
  101. package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +0 -4
  102. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +0 -7
  103. package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +0 -7
  104. package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +0 -6
  105. package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +0 -4
  106. package/deps/couchbase-cxx-client/core/operations/document_view.cxx +2 -0
  107. package/deps/couchbase-cxx-client/core/operations/document_view.hxx +10 -13
  108. package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +2 -0
  110. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +2 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +2 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +2 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +2 -0
  114. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  115. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +2 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +2 -0
  117. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +2 -0
  118. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +2 -0
  119. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +2 -0
  120. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +2 -0
  121. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +2 -0
  122. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +2 -0
  123. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +2 -0
  124. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +2 -0
  125. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +2 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +2 -0
  127. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +2 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +2 -0
  129. package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +2 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +2 -0
  131. package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +2 -0
  132. package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
  134. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +2 -0
  136. package/deps/couchbase-cxx-client/core/operations/management/collection_update.hxx +2 -0
  137. package/deps/couchbase-cxx-client/core/operations/management/collections_manifest_get.hxx +2 -0
  138. package/deps/couchbase-cxx-client/core/operations/management/error_utils.cxx +4 -1
  139. package/deps/couchbase-cxx-client/core/operations/management/eventing_deploy_function.hxx +2 -0
  140. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +2 -0
  141. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +2 -0
  142. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +2 -0
  143. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +2 -0
  144. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +2 -0
  145. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +2 -0
  146. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +2 -0
  147. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +2 -0
  148. package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
  149. package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +2 -0
  150. package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +2 -0
  151. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +2 -0
  152. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +2 -0
  153. package/deps/couchbase-cxx-client/core/operations/management/query_index_build.hxx +2 -0
  154. package/deps/couchbase-cxx-client/core/operations/management/query_index_build_deferred.hxx +68 -30
  155. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +2 -0
  156. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +2 -0
  157. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +4 -3
  158. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +2 -1
  159. package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +2 -0
  160. package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +2 -0
  161. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +2 -0
  162. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +2 -0
  163. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +2 -0
  164. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +2 -0
  165. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +2 -0
  166. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
  167. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +2 -0
  168. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +2 -0
  169. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +2 -0
  170. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +2 -0
  171. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
  172. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +2 -0
  173. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +2 -0
  174. package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +2 -0
  175. package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +2 -0
  176. package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +2 -0
  177. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +2 -0
  178. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +2 -0
  179. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +2 -0
  180. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
  181. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +2 -0
  182. package/deps/couchbase-cxx-client/core/operations/operation_traits.hxx +6 -0
  183. package/deps/couchbase-cxx-client/core/operations.hxx +0 -1
  184. package/deps/couchbase-cxx-client/core/operations_fwd.hxx +8 -0
  185. package/deps/couchbase-cxx-client/core/origin.cxx +67 -12
  186. package/deps/couchbase-cxx-client/core/origin.hxx +13 -8
  187. package/deps/couchbase-cxx-client/core/orphan_reporter.cxx +164 -0
  188. package/deps/couchbase-cxx-client/core/orphan_reporter.hxx +65 -0
  189. package/deps/couchbase-cxx-client/core/sasl/CMakeLists.txt +1 -0
  190. package/deps/couchbase-cxx-client/core/sasl/client.cc +6 -0
  191. package/deps/couchbase-cxx-client/core/sasl/mechanism.cc +2 -1
  192. package/deps/couchbase-cxx-client/core/sasl/mechanism.h +2 -1
  193. package/deps/couchbase-cxx-client/core/sasl/oauthbearer/oauthbearer.cc +41 -0
  194. package/deps/couchbase-cxx-client/core/sasl/oauthbearer/oauthbearer.h +47 -0
  195. package/deps/couchbase-cxx-client/core/tls_context_provider.cxx +44 -0
  196. package/deps/couchbase-cxx-client/core/tls_context_provider.hxx +44 -0
  197. package/deps/couchbase-cxx-client/core/tracing/attribute_helpers.hxx +45 -0
  198. package/deps/couchbase-cxx-client/core/tracing/constants.hxx +148 -68
  199. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_options.hxx +0 -3
  200. package/deps/couchbase-cxx-client/core/tracing/threshold_logging_tracer.cxx +122 -170
  201. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +17 -24
  202. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +8 -10
  203. package/deps/couchbase-cxx-client/core/tracing/wrapper_sdk_tracer.cxx +114 -0
  204. package/deps/couchbase-cxx-client/core/tracing/wrapper_sdk_tracer.hxx +85 -0
  205. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +16 -14
  206. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +4 -4
  207. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +1 -1
  208. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +1 -2
  209. package/deps/couchbase-cxx-client/core/utils/byteswap.hxx +12 -0
  210. package/deps/couchbase-cxx-client/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
  211. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +2 -0
  212. package/deps/couchbase-cxx-client/couchbase/certificate_authenticator.hxx +1 -0
  213. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +47 -0
  214. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +16 -0
  215. package/deps/couchbase-cxx-client/couchbase/collection.hxx +60 -15
  216. package/deps/couchbase-cxx-client/couchbase/error_codes.hxx +48 -48
  217. package/deps/couchbase-cxx-client/couchbase/jwt_authenticator.hxx +52 -0
  218. package/deps/couchbase-cxx-client/couchbase/metrics/meter.hxx +2 -1
  219. package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +75 -80
  220. package/deps/couchbase-cxx-client/couchbase/network_options.hxx +19 -0
  221. package/deps/couchbase-cxx-client/couchbase/password_authenticator.hxx +1 -0
  222. package/deps/couchbase-cxx-client/couchbase/tracing/otel_tracer.hxx +15 -17
  223. package/deps/couchbase-cxx-client/couchbase/tracing/request_span.hxx +2 -2
  224. package/dist/analyticsexecutor.d.ts +15 -0
  225. package/dist/analyticsexecutor.js +79 -50
  226. package/dist/analyticsindexmanager.d.ts +66 -0
  227. package/dist/analyticsindexmanager.js +404 -277
  228. package/dist/analyticstypes.d.ts +5 -0
  229. package/dist/authenticators.d.ts +34 -1
  230. package/dist/authenticators.js +19 -1
  231. package/dist/binarycollection.d.ts +17 -0
  232. package/dist/binding.d.ts +245 -228
  233. package/dist/bindingutilities.js +1 -1
  234. package/dist/bucket.d.ts +8 -0
  235. package/dist/bucket.js +8 -0
  236. package/dist/bucketmanager.d.ts +30 -0
  237. package/dist/bucketmanager.js +128 -69
  238. package/dist/cluster.d.ts +45 -0
  239. package/dist/cluster.js +133 -21
  240. package/dist/collection.d.ts +75 -2
  241. package/dist/collection.js +772 -551
  242. package/dist/collectionmanager.d.ts +34 -0
  243. package/dist/collectionmanager.js +172 -89
  244. package/dist/couchbase.d.ts +5 -0
  245. package/dist/couchbase.js +5 -0
  246. package/dist/datastructures.js +310 -97
  247. package/dist/errors.d.ts +8 -0
  248. package/dist/errors.js +12 -1
  249. package/dist/eventingfunctionmanager.d.ts +42 -0
  250. package/dist/eventingfunctionmanager.js +172 -100
  251. package/dist/logger.d.ts +192 -0
  252. package/dist/logger.js +213 -0
  253. package/dist/loggingmeter.d.ts +120 -0
  254. package/dist/loggingmeter.js +226 -0
  255. package/dist/metrics.d.ts +33 -0
  256. package/dist/metrics.js +5 -0
  257. package/dist/observability.d.ts +60 -0
  258. package/dist/observability.js +86 -0
  259. package/dist/observabilityhandler.d.ts +176 -0
  260. package/dist/observabilityhandler.js +733 -0
  261. package/dist/observabilitytypes.d.ts +320 -0
  262. package/dist/observabilitytypes.js +362 -0
  263. package/dist/observabilityutilities.d.ts +60 -0
  264. package/dist/observabilityutilities.js +175 -0
  265. package/dist/otelmeter.d.ts +51 -0
  266. package/dist/otelmeter.js +100 -0
  267. package/dist/oteltracer.d.ts +69 -0
  268. package/dist/oteltracer.js +141 -0
  269. package/dist/queryexecutor.d.ts +16 -0
  270. package/dist/queryexecutor.js +128 -86
  271. package/dist/queryindexmanager.d.ts +29 -0
  272. package/dist/queryindexmanager.js +277 -150
  273. package/dist/querytypes.d.ts +5 -0
  274. package/dist/scope.js +2 -2
  275. package/dist/scopeeventingfunctionmanager.d.ts +5 -0
  276. package/dist/scopeeventingfunctionmanager.js +217 -119
  277. package/dist/scopesearchindexmanager.d.ts +5 -0
  278. package/dist/scopesearchindexmanager.js +295 -166
  279. package/dist/sdspecs.js +6 -1
  280. package/dist/searchexecutor.d.ts +15 -0
  281. package/dist/searchexecutor.js +54 -26
  282. package/dist/searchindexmanager.d.ts +54 -0
  283. package/dist/searchindexmanager.js +235 -142
  284. package/dist/searchtypes.d.ts +5 -0
  285. package/dist/thresholdlogging.d.ts +301 -0
  286. package/dist/thresholdlogging.js +657 -0
  287. package/dist/tracing.d.ts +55 -0
  288. package/dist/tracing.js +2 -0
  289. package/dist/usermanager.d.ts +46 -0
  290. package/dist/usermanager.js +199 -118
  291. package/dist/utilities.d.ts +4 -0
  292. package/dist/utilities.js +11 -1
  293. package/dist/version.d.ts +2 -0
  294. package/dist/version.js +7 -0
  295. package/dist/viewexecutor.d.ts +15 -0
  296. package/dist/viewexecutor.js +54 -29
  297. package/dist/viewindexmanager.d.ts +30 -0
  298. package/dist/viewindexmanager.js +129 -100
  299. package/dist/viewtypes.d.ts +5 -0
  300. package/package.json +19 -9
  301. package/scripts/prebuilds.js +1 -1
  302. package/scripts/updateVersion.js +26 -0
  303. package/src/connection.cpp +79 -98
  304. package/src/connection.hpp +46 -38
  305. package/src/connection_autogen.cpp +1236 -292
  306. package/src/jstocbpp_autogen.hpp +1117 -313
  307. package/src/jstocbpp_basic.hpp +73 -0
  308. package/src/jstocbpp_defs.hpp +37 -9
  309. package/src/jstocbpp_errors.hpp +37 -11
  310. package/tools/gen-bindings-js.js +100 -22
  311. package/tools/gen-bindings-json.py +40 -6
  312. package/src/transcoder.hpp +0 -96
@@ -23,6 +23,7 @@
23
23
  #include "core/io/retry_context.hxx"
24
24
  #include "core/protocol/client_request.hxx"
25
25
  #include "core/protocol/cmd_observe_seqno.hxx"
26
+ #include "core/public_fwd.hxx"
26
27
  #include "core/timeout_defaults.hxx"
27
28
 
28
29
  namespace couchbase::core::impl
@@ -59,6 +60,7 @@ struct observe_seqno_request {
59
60
  std::uint16_t partition{};
60
61
  std::uint32_t opaque{};
61
62
  io::retry_context<true> retries{};
63
+ std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
62
64
 
63
65
  [[nodiscard]] auto encode_to(encoded_request_type& encoded,
64
66
  core::mcbp_context&& context) const -> std::error_code;
@@ -18,7 +18,10 @@
18
18
  #include <couchbase/bucket.hxx>
19
19
 
20
20
  #include "core/cluster.hxx"
21
+ #include "core/tracing/constants.hxx"
22
+ #include "core/tracing/tracer_wrapper.hxx"
21
23
  #include "diagnostics.hxx"
24
+ #include "observability_recorder.hxx"
22
25
 
23
26
  #include <couchbase/collection.hxx>
24
27
  #include <couchbase/collection_manager.hxx>
@@ -63,16 +66,37 @@ public:
63
66
 
64
67
  void ping(const ping_options::built& options, ping_handler&& handler) const
65
68
  {
66
- return core_.ping(options.report_id,
67
- name_,
68
- core::impl::to_core_service_types(options.service_types),
69
- options.timeout,
70
- [handler = std::move(handler)](const auto& resp) mutable {
71
- return handler({}, core::impl::build_result(resp));
72
- });
69
+ auto obs_rec = create_observability_recorder(
70
+ core::tracing::operation::ping, std::nullopt, options.parent_span);
71
+ return core_.ping(
72
+ options.report_id,
73
+ name_,
74
+ core::impl::to_core_service_types(options.service_types),
75
+ options.timeout,
76
+ [obs_rec = std::move(obs_rec), handler = std::move(handler)](const auto& resp) mutable {
77
+ obs_rec->finish({});
78
+ return handler({}, core::impl::build_result(resp));
79
+ });
73
80
  }
74
81
 
75
82
  private:
83
+ [[nodiscard]] auto create_observability_recorder(
84
+ const std::string& operation_name,
85
+ const std::optional<core::service_type> service,
86
+ const std::shared_ptr<tracing::request_span>& parent_span) const
87
+ -> std::unique_ptr<core::impl::observability_recorder>
88
+ {
89
+ auto rec = core::impl::observability_recorder::create(
90
+ operation_name, parent_span, core_.tracer(), core_.meter());
91
+
92
+ rec->with_bucket_name(name_);
93
+ if (service.has_value()) {
94
+ rec->with_service(core::tracing::service_name_for_http_service(service.value()));
95
+ }
96
+
97
+ return rec;
98
+ }
99
+
76
100
  core::cluster core_;
77
101
  std::string name_;
78
102
  std::shared_ptr<crypto::manager> crypto_manager_;
@@ -25,12 +25,15 @@
25
25
  #include "core/io/ip_protocol.hxx"
26
26
  #include "core/origin.hxx"
27
27
  #include "core/tls_verify_mode.hxx"
28
+ #include "core/tracing/constants.hxx"
29
+ #include "core/tracing/tracer_wrapper.hxx"
28
30
  #include "core/transactions.hxx"
29
31
  #include "core/utils/connection_string.hxx"
30
32
  #include "core/utils/movable_function.hxx"
31
33
  #include "diagnostics.hxx"
32
34
  #include "error.hxx"
33
35
  #include "internal_search_result.hxx"
36
+ #include "observability_recorder.hxx"
34
37
  #include "query.hxx"
35
38
  #include "search.hxx"
36
39
 
@@ -87,6 +90,7 @@ options_to_origin(const std::string& connection_string, cluster_options::built o
87
90
  auth.password = std::move(opts.password);
88
91
  auth.certificate_path = std::move(opts.certificate_path);
89
92
  auth.key_path = std::move(opts.key_path);
93
+ auth.jwt_token = std::move(opts.jwt_token);
90
94
  auth.allowed_sasl_mechanisms = std::move(opts.allowed_sasl_mechanisms);
91
95
 
92
96
  core::cluster_options user_options;
@@ -146,6 +150,7 @@ options_to_origin(const std::string& connection_string, cluster_options::built o
146
150
  user_options.tcp_keep_alive_interval = opts.network.tcp_keep_alive_interval;
147
151
  user_options.config_poll_interval = opts.network.config_poll_interval;
148
152
  user_options.idle_http_connection_timeout = opts.network.idle_http_connection_timeout;
153
+ user_options.enable_lazy_connections = opts.network.enable_lazy_connections;
149
154
  if (opts.network.max_http_connections) {
150
155
  user_options.max_http_connections = opts.network.max_http_connections.value();
151
156
  }
@@ -178,8 +183,8 @@ options_to_origin(const std::string& connection_string, cluster_options::built o
178
183
  user_options.enable_tracing = opts.tracing.enabled;
179
184
  if (opts.tracing.enabled) {
180
185
  user_options.tracer = opts.tracing.tracer;
181
- user_options.tracing_options.orphaned_emit_interval = opts.tracing.orphaned_emit_interval;
182
- user_options.tracing_options.orphaned_sample_size = opts.tracing.orphaned_sample_size;
186
+ user_options.orphan_options.emit_interval = opts.tracing.orphaned_emit_interval;
187
+ user_options.orphan_options.sample_size = opts.tracing.orphaned_sample_size;
183
188
 
184
189
  user_options.tracing_options.threshold_emit_interval = opts.tracing.threshold_emit_interval;
185
190
  user_options.tracing_options.threshold_sample_size = opts.tracing.threshold_sample_size;
@@ -320,9 +325,16 @@ public:
320
325
 
321
326
  void query(std::string statement, query_options::built options, query_handler&& handler) const
322
327
  {
328
+ auto obs_rec = create_observability_recorder(
329
+ core::tracing::operation::query, core::service_type::query, options.parent_span);
330
+ obs_rec->with_query_statement(statement, options);
331
+
332
+ auto request = core::impl::build_query_request(
333
+ std::move(statement), {}, std::move(options), obs_rec->operation_span());
334
+
323
335
  return core_.execute(
324
- core::impl::build_query_request(std::move(statement), {}, std::move(options)),
325
- [handler = std::move(handler)](auto resp) {
336
+ std::move(request), [obs_rec = std::move(obs_rec), handler = std::move(handler)](auto resp) {
337
+ obs_rec->finish(resp.ctx.retry_attempts, resp.ctx.ec);
326
338
  return handler(core::impl::make_error(resp.ctx), core::impl::build_result(resp));
327
339
  });
328
340
  }
@@ -331,30 +343,45 @@ public:
331
343
  analytics_options::built options,
332
344
  analytics_handler&& handler) const
333
345
  {
346
+ auto obs_rec = create_observability_recorder(
347
+ core::tracing::operation::analytics, core::service_type::analytics, options.parent_span);
348
+ obs_rec->with_query_statement(statement, options);
349
+
350
+ auto request = core::impl::build_analytics_request(
351
+ std::move(statement), std::move(options), {}, {}, obs_rec->operation_span());
352
+
334
353
  return core_.execute(
335
- core::impl::build_analytics_request(std::move(statement), std::move(options), {}, {}),
336
- [handler = std::move(handler)](auto resp) {
354
+ std::move(request), [obs_rec = std::move(obs_rec), handler = std::move(handler)](auto resp) {
355
+ obs_rec->finish(resp.ctx.retry_attempts, resp.ctx.ec);
337
356
  return handler(core::impl::make_error(resp.ctx), core::impl::build_result(resp));
338
357
  });
339
358
  }
340
359
 
341
360
  void ping(const ping_options::built& options, ping_handler&& handler) const
342
361
  {
343
- return core_.ping(options.report_id,
344
- {},
345
- core::impl::to_core_service_types(options.service_types),
346
- options.timeout,
347
- [handler = std::move(handler)](const auto& resp) mutable {
348
- return handler({}, core::impl::build_result(resp));
349
- });
362
+ auto obs_rec = create_observability_recorder(
363
+ core::tracing::operation::ping, std::nullopt, options.parent_span);
364
+ return core_.ping(
365
+ options.report_id,
366
+ {},
367
+ core::impl::to_core_service_types(options.service_types),
368
+ options.timeout,
369
+ [obs_rec = std::move(obs_rec), handler = std::move(handler)](const auto& resp) mutable {
370
+ obs_rec->finish({});
371
+ return handler({}, core::impl::build_result(resp));
372
+ });
350
373
  };
351
374
 
352
375
  void diagnostics(const diagnostics_options::built& options, diagnostics_handler&& handler) const
353
376
  {
354
- return core_.diagnostics(options.report_id,
355
- [handler = std::move(handler)](const auto& resp) mutable {
356
- return handler({}, core::impl::build_result(resp));
357
- });
377
+ auto obs_rec = create_observability_recorder(
378
+ core::tracing::operation::diagnostics, std::nullopt, options.parent_span);
379
+ return core_.diagnostics(
380
+ options.report_id,
381
+ [obs_rec = std::move(obs_rec), handler = std::move(handler)](const auto& resp) mutable {
382
+ obs_rec->finish({});
383
+ return handler({}, core::impl::build_result(resp));
384
+ });
358
385
  }
359
386
 
360
387
  void search(std::string index_name,
@@ -362,14 +389,29 @@ public:
362
389
  const search_options::built& options,
363
390
  search_handler&& handler) const
364
391
  {
392
+ auto obs_rec = create_observability_recorder(
393
+ core::tracing::operation::search, core::service_type::search, options.parent_span);
394
+
395
+ auto core_req = core::impl::build_search_request(
396
+ std::move(index_name), std::move(request), options, {}, {}, obs_rec->operation_span());
365
397
  return core_.execute(
366
- core::impl::build_search_request(std::move(index_name), std::move(request), options, {}, {}),
367
- [handler = std::move(handler)](const auto& resp) mutable {
398
+ std::move(core_req),
399
+ [obs_rec = std::move(obs_rec), handler = std::move(handler)](const auto& resp) mutable {
400
+ obs_rec->finish(resp.ctx.retry_attempts, resp.ctx.ec);
368
401
  return handler(core::impl::make_error(resp.ctx),
369
402
  search_result{ internal_search_result{ resp } });
370
403
  });
371
404
  }
372
405
 
406
+ auto set_authenticator(const core::cluster_credentials& auth) const -> error
407
+ {
408
+ auto e = core_.update_credentials(auth);
409
+ if (e.ec) {
410
+ return core::impl::make_error(e);
411
+ }
412
+ return {};
413
+ }
414
+
373
415
  void notify_fork(fork_event event)
374
416
  {
375
417
  if (event == fork_event::prepare) {
@@ -427,6 +469,20 @@ private:
427
469
  }
428
470
  }
429
471
 
472
+ [[nodiscard]] auto create_observability_recorder(
473
+ const std::string& operation_name,
474
+ const std::optional<core::service_type> service,
475
+ const std::shared_ptr<tracing::request_span>& parent_span) const
476
+ -> std::unique_ptr<core::impl::observability_recorder>
477
+ {
478
+ auto rec = core::impl::observability_recorder::create(
479
+ operation_name, parent_span, core_.tracer(), core_.meter());
480
+ if (service.has_value()) {
481
+ rec->with_service(core::tracing::service_name_for_http_service(service.value()));
482
+ }
483
+ return rec;
484
+ }
485
+
430
486
  std::string connection_string_;
431
487
  cluster_options::built options_;
432
488
  asio::io_context io_{ ASIO_CONCURRENCY_HINT_SAFE };
@@ -633,6 +689,38 @@ cluster::close() -> std::future<void>
633
689
  return future;
634
690
  }
635
691
 
692
+ auto
693
+ cluster::set_authenticator(const password_authenticator& authenticator) -> couchbase::error
694
+ {
695
+ core::cluster_credentials auth;
696
+ auth.username = authenticator.username_;
697
+ auth.password = authenticator.password_;
698
+ if (authenticator.ldap_compatible_) {
699
+ auth.allowed_sasl_mechanisms = { { "PLAIN" } };
700
+ }
701
+
702
+ return impl_->set_authenticator(auth);
703
+ }
704
+
705
+ auto
706
+ cluster::set_authenticator(const certificate_authenticator& authenticator) -> couchbase::error
707
+ {
708
+ core::cluster_credentials auth;
709
+ auth.certificate_path = authenticator.certificate_path_;
710
+ auth.key_path = authenticator.key_path_;
711
+
712
+ return impl_->set_authenticator(auth);
713
+ }
714
+
715
+ auto
716
+ cluster::set_authenticator(const jwt_authenticator& authenticator) -> error
717
+ {
718
+ core::cluster_credentials auth;
719
+ auth.jwt_token = authenticator.token_;
720
+
721
+ return impl_->set_authenticator(auth);
722
+ }
723
+
636
724
  auto
637
725
  cluster::query_indexes() const -> query_index_manager
638
726
  {
@@ -167,7 +167,9 @@ build_result(operations::query_response& resp) -> query_result
167
167
  auto
168
168
  build_query_request(std::string statement,
169
169
  std::optional<std::string> query_context,
170
- query_options::built options) -> core::operations::query_request
170
+ query_options::built options,
171
+ std::shared_ptr<couchbase::tracing::request_span> op_span)
172
+ -> core::operations::query_request
171
173
  {
172
174
  operations::query_request request{
173
175
  std::move(statement), options.adhoc,
@@ -180,7 +182,7 @@ build_query_request(std::string statement,
180
182
  std::move(query_context), std::move(options.client_context_id),
181
183
  options.timeout, options.profile,
182
184
  };
183
- request.parent_span = options.parent_span;
185
+ request.parent_span = std::move(op_span);
184
186
  if (!options.raw.empty()) {
185
187
  for (auto& [name, value] : options.raw) {
186
188
  request.raw[name] = std::move(value);
@@ -232,6 +234,7 @@ build_transaction_query_result(operations::query_response resp,
232
234
  auto
233
235
  build_transaction_query_request(query_options::built opts) -> core::operations::query_request
234
236
  {
235
- return core::impl::build_query_request("", {}, std::move(opts));
237
+ auto parent_span_from_caller = opts.parent_span;
238
+ return core::impl::build_query_request("", {}, std::move(opts), parent_span_from_caller);
236
239
  }
237
240
  } // namespace couchbase::core::impl
@@ -26,7 +26,9 @@ namespace couchbase::core::impl
26
26
  auto
27
27
  build_query_request(std::string statement,
28
28
  std::optional<std::string> query_context,
29
- query_options::built options) -> core::operations::query_request;
29
+ query_options::built options,
30
+ std::shared_ptr<couchbase::tracing::request_span> op_span)
31
+ -> core::operations::query_request;
30
32
 
31
33
  auto
32
34
  build_result(operations::query_response& resp) -> query_result;