couchbase 4.4.2 → 4.4.4

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 (252) hide show
  1. package/BUILDING.md +182 -0
  2. package/CMakeLists.txt +13 -0
  3. package/CONTRIBUTING.md +1 -1
  4. package/README.md +4 -2
  5. package/deps/couchbase-cxx-cache/boringssl/e31ea00c1ea52052d2d78d44006cc88c80fa24a9/boringssl/src/BUILDING.md +206 -0
  6. package/deps/couchbase-cxx-client/CMakeLists.txt +18 -13
  7. package/deps/couchbase-cxx-client/README.md +2 -2
  8. package/deps/couchbase-cxx-client/cmake/APKBUILD.in +54 -0
  9. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +0 -5
  10. package/deps/couchbase-cxx-client/cmake/Packaging.cmake +177 -10
  11. package/deps/couchbase-cxx-client/cmake/RPath.cmake +10 -0
  12. package/deps/couchbase-cxx-client/cmake/Testing.cmake +1 -1
  13. package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +28 -2
  14. package/deps/couchbase-cxx-client/cmake/build_version.hxx.in +1 -0
  15. package/deps/couchbase-cxx-client/cmake/couchbase-cxx-client.spec.in +45 -6
  16. package/deps/couchbase-cxx-client/cmake/couchbase_cxx_client.pc.in +2 -2
  17. package/deps/couchbase-cxx-client/cmake/debian/changelog.in +5 -0
  18. package/deps/couchbase-cxx-client/cmake/debian/compat +1 -0
  19. package/deps/couchbase-cxx-client/cmake/debian/control +40 -0
  20. package/deps/couchbase-cxx-client/cmake/debian/rules +41 -0
  21. package/deps/couchbase-cxx-client/cmake/debian/source/format +1 -0
  22. package/deps/couchbase-cxx-client/core/agent_group.cxx +8 -0
  23. package/deps/couchbase-cxx-client/core/agent_group.hxx +4 -0
  24. package/deps/couchbase-cxx-client/core/bucket.cxx +16 -20
  25. package/deps/couchbase-cxx-client/core/bucket.hxx +12 -12
  26. package/deps/couchbase-cxx-client/core/cluster.cxx +44 -52
  27. package/deps/couchbase-cxx-client/core/cluster_agent.cxx +8 -0
  28. package/deps/couchbase-cxx-client/core/cluster_agent.hxx +4 -0
  29. package/deps/couchbase-cxx-client/core/collections_component.cxx +2 -2
  30. package/deps/couchbase-cxx-client/core/columnar/agent.cxx +2 -2
  31. package/deps/couchbase-cxx-client/core/columnar/agent.hxx +1 -1
  32. package/deps/couchbase-cxx-client/core/columnar/management_component.cxx +3 -3
  33. package/deps/couchbase-cxx-client/core/columnar/query_component.cxx +103 -45
  34. package/deps/couchbase-cxx-client/core/columnar/query_component.hxx +1 -0
  35. package/deps/couchbase-cxx-client/core/free_form_http_request.hxx +8 -0
  36. package/deps/couchbase-cxx-client/core/http_component.cxx +55 -24
  37. package/deps/couchbase-cxx-client/core/http_component.hxx +4 -0
  38. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +1 -0
  39. package/deps/couchbase-cxx-client/core/impl/analytics_index_manager.cxx +15 -15
  40. package/deps/couchbase-cxx-client/core/impl/bootstrap_error.hxx +10 -2
  41. package/deps/couchbase-cxx-client/core/impl/bucket.cxx +1 -1
  42. package/deps/couchbase-cxx-client/core/impl/bucket_manager.cxx +6 -6
  43. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +36 -40
  44. package/deps/couchbase-cxx-client/core/impl/collection.cxx +29 -5
  45. package/deps/couchbase-cxx-client/core/impl/collection_manager.cxx +5 -5
  46. package/deps/couchbase-cxx-client/core/impl/error.cxx +24 -3
  47. package/deps/couchbase-cxx-client/core/impl/get_replica.hxx +2 -0
  48. package/deps/couchbase-cxx-client/core/impl/lookup_in_replica.hxx +2 -0
  49. package/deps/couchbase-cxx-client/core/impl/observe_poll.cxx +13 -5
  50. package/deps/couchbase-cxx-client/core/impl/observe_poll.hxx +1 -3
  51. package/deps/couchbase-cxx-client/core/impl/observe_seqno.hxx +2 -0
  52. package/deps/couchbase-cxx-client/core/impl/query.cxx +1 -0
  53. package/deps/couchbase-cxx-client/core/impl/query_index_manager.cxx +6 -6
  54. package/deps/couchbase-cxx-client/core/impl/scan_result.cxx +1 -1
  55. package/deps/couchbase-cxx-client/core/impl/search.cxx +2 -0
  56. package/deps/couchbase-cxx-client/core/impl/search_index_manager.cxx +12 -12
  57. package/deps/couchbase-cxx-client/core/io/http_command.hxx +31 -20
  58. package/deps/couchbase-cxx-client/core/io/http_session.cxx +5 -0
  59. package/deps/couchbase-cxx-client/core/io/http_session.hxx +17 -4
  60. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +97 -49
  61. package/deps/couchbase-cxx-client/core/io/mcbp_command.hxx +15 -14
  62. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +48 -33
  63. package/deps/couchbase-cxx-client/core/io/streams.cxx +256 -0
  64. package/deps/couchbase-cxx-client/core/io/streams.hxx +31 -155
  65. package/deps/couchbase-cxx-client/core/logger/configuration.hxx +5 -0
  66. package/deps/couchbase-cxx-client/core/logger/custom_rotating_file_sink.cxx +2 -3
  67. package/deps/couchbase-cxx-client/core/logger/logger.cxx +39 -7
  68. package/deps/couchbase-cxx-client/core/logger/logger.hxx +7 -0
  69. package/deps/couchbase-cxx-client/core/meta/features.hxx +11 -0
  70. package/deps/couchbase-cxx-client/core/meta/version.cxx +47 -6
  71. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.cxx +188 -0
  72. package/deps/couchbase-cxx-client/core/metrics/meter_wrapper.hxx +73 -0
  73. package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +23 -17
  74. package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +1 -0
  75. package/deps/couchbase-cxx-client/core/operations/document_append.hxx +2 -0
  76. package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +2 -0
  77. package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +2 -0
  78. package/deps/couchbase-cxx-client/core/operations/document_get.hxx +2 -0
  79. package/deps/couchbase-cxx-client/core/operations/document_get_all_replicas.hxx +2 -0
  80. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +2 -0
  81. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +2 -0
  82. package/deps/couchbase-cxx-client/core/operations/document_get_any_replica.hxx +2 -0
  83. package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +2 -0
  84. package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +2 -0
  85. package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +2 -0
  86. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +2 -0
  87. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_all_replicas.hxx +2 -0
  88. package/deps/couchbase-cxx-client/core/operations/document_lookup_in_any_replica.hxx +2 -0
  89. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +2 -0
  90. package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +2 -0
  91. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +1 -0
  92. package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +2 -0
  93. package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +2 -0
  94. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +1 -0
  95. package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +2 -0
  96. package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +2 -0
  97. package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +2 -0
  98. package/deps/couchbase-cxx-client/core/operations/document_view.hxx +1 -0
  99. package/deps/couchbase-cxx-client/core/operations/http_noop.hxx +2 -0
  100. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_create.hxx +1 -0
  101. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_drop.hxx +1 -0
  102. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataset_get_all.hxx +1 -0
  103. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_create.hxx +1 -0
  104. package/deps/couchbase-cxx-client/core/operations/management/analytics_dataverse_drop.hxx +1 -0
  105. package/deps/couchbase-cxx-client/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  106. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_create.hxx +1 -0
  107. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_drop.hxx +1 -0
  108. package/deps/couchbase-cxx-client/core/operations/management/analytics_index_get_all.hxx +1 -0
  109. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_connect.hxx +1 -0
  110. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_create.hxx +1 -0
  111. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_disconnect.hxx +1 -0
  112. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_drop.hxx +1 -0
  113. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.cxx +23 -15
  114. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_get_all.hxx +4 -3
  115. package/deps/couchbase-cxx-client/core/operations/management/analytics_link_replace.hxx +1 -0
  116. package/deps/couchbase-cxx-client/core/operations/management/bucket_create.hxx +1 -0
  117. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.cxx +2 -1
  118. package/deps/couchbase-cxx-client/core/operations/management/bucket_describe.hxx +1 -0
  119. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.cxx +3 -1
  120. package/deps/couchbase-cxx-client/core/operations/management/bucket_drop.hxx +1 -0
  121. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.cxx +3 -1
  122. package/deps/couchbase-cxx-client/core/operations/management/bucket_flush.hxx +1 -0
  123. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.cxx +3 -1
  124. package/deps/couchbase-cxx-client/core/operations/management/bucket_get.hxx +1 -0
  125. package/deps/couchbase-cxx-client/core/operations/management/bucket_get_all.hxx +1 -0
  126. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.cxx +3 -1
  127. package/deps/couchbase-cxx-client/core/operations/management/bucket_update.hxx +1 -0
  128. package/deps/couchbase-cxx-client/core/operations/management/change_password.hxx +1 -0
  129. package/deps/couchbase-cxx-client/core/operations/management/cluster_describe.hxx +1 -0
  130. package/deps/couchbase-cxx-client/core/operations/management/cluster_developer_preview_enable.hxx +1 -0
  131. package/deps/couchbase-cxx-client/core/operations/management/collection_create.cxx +3 -2
  132. package/deps/couchbase-cxx-client/core/operations/management/collection_create.hxx +2 -0
  133. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.cxx +5 -2
  134. package/deps/couchbase-cxx-client/core/operations/management/collection_drop.hxx +1 -0
  135. package/deps/couchbase-cxx-client/core/operations/management/collection_update.cxx +4 -2
  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/eventing_deploy_function.hxx +3 -2
  139. package/deps/couchbase-cxx-client/core/operations/management/eventing_drop_function.hxx +3 -2
  140. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_all_functions.hxx +3 -2
  141. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_function.hxx +3 -2
  142. package/deps/couchbase-cxx-client/core/operations/management/eventing_get_status.hxx +3 -2
  143. package/deps/couchbase-cxx-client/core/operations/management/eventing_pause_function.hxx +3 -2
  144. package/deps/couchbase-cxx-client/core/operations/management/eventing_resume_function.hxx +3 -2
  145. package/deps/couchbase-cxx-client/core/operations/management/eventing_undeploy_function.hxx +3 -2
  146. package/deps/couchbase-cxx-client/core/operations/management/eventing_upsert_function.hxx +3 -2
  147. package/deps/couchbase-cxx-client/core/operations/management/freeform.hxx +2 -0
  148. package/deps/couchbase-cxx-client/core/operations/management/group_drop.hxx +1 -0
  149. package/deps/couchbase-cxx-client/core/operations/management/group_get.hxx +1 -0
  150. package/deps/couchbase-cxx-client/core/operations/management/group_get_all.hxx +1 -0
  151. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.cxx +3 -3
  152. package/deps/couchbase-cxx-client/core/operations/management/group_upsert.hxx +1 -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 +3 -0
  155. package/deps/couchbase-cxx-client/core/operations/management/query_index_create.hxx +1 -0
  156. package/deps/couchbase-cxx-client/core/operations/management/query_index_drop.hxx +1 -0
  157. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all.hxx +2 -0
  158. package/deps/couchbase-cxx-client/core/operations/management/query_index_get_all_deferred.hxx +3 -0
  159. package/deps/couchbase-cxx-client/core/operations/management/role_get_all.hxx +1 -0
  160. package/deps/couchbase-cxx-client/core/operations/management/scope_create.cxx +2 -1
  161. package/deps/couchbase-cxx-client/core/operations/management/scope_create.hxx +1 -0
  162. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.cxx +4 -1
  163. package/deps/couchbase-cxx-client/core/operations/management/scope_drop.hxx +1 -0
  164. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.cxx +3 -1
  165. package/deps/couchbase-cxx-client/core/operations/management/scope_get_all.hxx +1 -0
  166. package/deps/couchbase-cxx-client/core/operations/management/search_get_stats.hxx +1 -0
  167. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.cxx +3 -2
  168. package/deps/couchbase-cxx-client/core/operations/management/search_index_analyze_document.hxx +1 -0
  169. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.cxx +3 -2
  170. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_ingest.hxx +1 -0
  171. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.cxx +3 -2
  172. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_plan_freeze.hxx +1 -0
  173. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.cxx +3 -2
  174. package/deps/couchbase-cxx-client/core/operations/management/search_index_control_query.hxx +1 -0
  175. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.cxx +5 -2
  176. package/deps/couchbase-cxx-client/core/operations/management/search_index_drop.hxx +1 -0
  177. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.cxx +5 -2
  178. package/deps/couchbase-cxx-client/core/operations/management/search_index_get.hxx +1 -0
  179. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.cxx +4 -2
  180. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_all.hxx +1 -0
  181. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.cxx +3 -2
  182. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_documents_count.hxx +2 -0
  183. package/deps/couchbase-cxx-client/core/operations/management/search_index_get_stats.hxx +1 -0
  184. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.cxx +5 -2
  185. package/deps/couchbase-cxx-client/core/operations/management/search_index_upsert.hxx +1 -0
  186. package/deps/couchbase-cxx-client/core/operations/management/user_drop.hxx +1 -0
  187. package/deps/couchbase-cxx-client/core/operations/management/user_get.hxx +1 -0
  188. package/deps/couchbase-cxx-client/core/operations/management/user_get_all.hxx +1 -0
  189. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.cxx +3 -3
  190. package/deps/couchbase-cxx-client/core/operations/management/user_upsert.hxx +1 -0
  191. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.cxx +2 -1
  192. package/deps/couchbase-cxx-client/core/operations/management/view_index_drop.hxx +1 -0
  193. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.cxx +2 -1
  194. package/deps/couchbase-cxx-client/core/operations/management/view_index_get.hxx +1 -0
  195. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.cxx +3 -1
  196. package/deps/couchbase-cxx-client/core/operations/management/view_index_get_all.hxx +2 -0
  197. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.cxx +2 -1
  198. package/deps/couchbase-cxx-client/core/operations/management/view_index_upsert.hxx +1 -0
  199. package/deps/couchbase-cxx-client/core/origin.cxx +37 -17
  200. package/deps/couchbase-cxx-client/core/platform/base64.cc +1 -1
  201. package/deps/couchbase-cxx-client/core/platform/random.cc +2 -0
  202. package/deps/couchbase-cxx-client/core/platform/uuid.h +6 -6
  203. package/deps/couchbase-cxx-client/core/row_streamer.cxx +1 -1
  204. package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.cc +1 -1
  205. package/deps/couchbase-cxx-client/core/sasl/scram-sha/stringutils.h +4 -4
  206. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +2 -0
  207. package/deps/couchbase-cxx-client/core/topology/configuration_json.hxx +8 -0
  208. package/deps/couchbase-cxx-client/core/tracing/constants.hxx +3 -0
  209. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.cxx +87 -0
  210. package/deps/couchbase-cxx-client/core/tracing/tracer_wrapper.hxx +57 -0
  211. package/deps/couchbase-cxx-client/core/transactions/async_attempt_context.hxx +9 -21
  212. package/deps/couchbase-cxx-client/core/transactions/attempt_context.hxx +6 -33
  213. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +57 -56
  214. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +17 -18
  215. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +2 -2
  216. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +2 -2
  217. package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +0 -20
  218. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +2 -2
  219. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +128 -52
  220. package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +4 -3
  221. package/deps/couchbase-cxx-client/couchbase/codec/tao_json_serializer.hxx +1 -1
  222. package/deps/couchbase-cxx-client/couchbase/common_options.hxx +16 -1
  223. package/deps/couchbase-cxx-client/couchbase/metrics/otel_meter.hxx +16 -20
  224. package/deps/couchbase-cxx-client/couchbase/mutate_in_specs.hxx +2 -2
  225. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +4 -3
  226. package/deps/couchbase-cxx-client/couchbase/search_options.hxx +1 -1
  227. package/dist/analyticsindexmanager.d.ts +98 -14
  228. package/dist/analyticsindexmanager.js +452 -411
  229. package/dist/binding.d.ts +53 -4
  230. package/dist/bindingutilities.d.ts +26 -1
  231. package/dist/bindingutilities.js +108 -1
  232. package/dist/couchbase.d.ts +3 -1
  233. package/dist/couchbase.js +2 -0
  234. package/dist/rangeScan.d.ts +1 -1
  235. package/dist/rangeScan.js +1 -1
  236. package/dist/transactions.d.ts +34 -3
  237. package/dist/transactions.js +25 -18
  238. package/dist/transcoders.d.ts +68 -0
  239. package/dist/transcoders.js +194 -1
  240. package/dist/usermanager.d.ts +14 -14
  241. package/dist/usermanager.js +178 -228
  242. package/dist/utilities.js +4 -6
  243. package/dist/utilities_internal.js +1 -2
  244. package/package.json +9 -8
  245. package/src/binding.cpp +13 -13
  246. package/src/connection.cpp +22 -0
  247. package/src/connection.hpp +12 -0
  248. package/src/connection_autogen.cpp +100 -0
  249. package/src/jstocbpp_autogen.hpp +315 -8
  250. package/src/jstocbpp_transactions.hpp +1 -2
  251. package/tools/gen-bindings-js.js +38 -3
  252. package/tools/gen-bindings-json.py +575 -328
@@ -38,13 +38,14 @@ struct eventing_upsert_function_request {
38
38
  using encoded_response_type = io::http_response;
39
39
  using error_context_type = error_context::http;
40
40
 
41
+ static const inline service_type type = service_type::eventing;
42
+ static const inline std::string observability_identifier = "manager_eventing_upsert_function";
43
+
41
44
  couchbase::core::management::eventing::function function{};
42
45
 
43
46
  std::optional<std::string> bucket_name{};
44
47
  std::optional<std::string> scope_name{};
45
48
 
46
- static const inline service_type type = service_type::eventing;
47
-
48
49
  std::optional<std::string> client_context_id{};
49
50
  std::optional<std::chrono::milliseconds> timeout{};
50
51
 
@@ -39,6 +39,8 @@ struct freeform_request {
39
39
  using encoded_response_type = io::http_response;
40
40
  using error_context_type = error_context::http;
41
41
 
42
+ static const inline std::string observability_identifier = "freeform_http";
43
+
42
44
  service_type type{};
43
45
  std::string method;
44
46
  std::string path;
@@ -35,6 +35,7 @@ struct group_drop_request {
35
35
  using encoded_response_type = io::http_response;
36
36
  using error_context_type = error_context::http;
37
37
 
38
+ static const inline std::string observability_identifier = "manager_users_drop_group";
38
39
  static const inline service_type type = service_type::management;
39
40
 
40
41
  std::string name{};
@@ -37,6 +37,7 @@ struct group_get_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_get_group";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  std::string name{};
@@ -37,6 +37,7 @@ struct group_get_all_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_get_all_groups";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  std::optional<std::string> client_context_id{};
@@ -46,11 +46,11 @@ group_upsert_request::encode_to(encoded_request_type& encoded,
46
46
  for (const auto& role : group.roles) {
47
47
  std::string spec = role.name;
48
48
  if (role.bucket) {
49
- spec += fmt::format("[{}", role.bucket.value());
49
+ spec += fmt::format("[{}", utils::string_codec::v2::path_escape(role.bucket.value()));
50
50
  if (role.scope) {
51
- spec += fmt::format(":{}", role.scope.value());
51
+ spec += fmt::format(":{}", utils::string_codec::v2::path_escape(role.scope.value()));
52
52
  if (role.collection) {
53
- spec += fmt::format(":{}", role.collection.value());
53
+ spec += fmt::format(":{}", utils::string_codec::v2::path_escape(role.collection.value()));
54
54
  }
55
55
  }
56
56
  spec += "]";
@@ -37,6 +37,7 @@ struct group_upsert_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_upsert_group";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  couchbase::core::management::rbac::group group{};
@@ -43,6 +43,8 @@ struct query_index_build_request {
43
43
  using error_context_type = error_context::http;
44
44
 
45
45
  static const inline service_type type = service_type::query;
46
+ static const inline std::string observability_identifier = "manager_query_build_indexes";
47
+
46
48
  static constexpr auto namespace_id = "default";
47
49
 
48
50
  std::string bucket_name;
@@ -44,6 +44,9 @@ struct query_index_build_deferred_request {
44
44
  using encoded_response_type = io::http_response;
45
45
  using error_context_type = error_context::http;
46
46
 
47
+ static const inline service_type type = service_type::query;
48
+ static const inline std::string observability_identifier = "manager_query_build_deferred_indexes";
49
+
47
50
  static constexpr auto namespace_id = "default";
48
51
 
49
52
  std::string bucket_name;
@@ -43,6 +43,7 @@ struct query_index_create_request {
43
43
  using error_context_type = error_context::http;
44
44
 
45
45
  static const inline service_type type = service_type::query;
46
+ static const inline std::string observability_identifier = "manager_query_create_index";
46
47
 
47
48
  static constexpr auto namespace_id = "default";
48
49
  std::string bucket_name;
@@ -43,6 +43,7 @@ struct query_index_drop_request {
43
43
  using error_context_type = error_context::http;
44
44
 
45
45
  static const inline service_type type = service_type::query;
46
+ static const inline std::string observability_identifier = "manager_query_drop_index";
46
47
 
47
48
  static constexpr auto namespace_id = "default";
48
49
  std::string bucket_name;
@@ -40,6 +40,8 @@ struct query_index_get_all_request {
40
40
  using error_context_type = error_context::http;
41
41
 
42
42
  static const inline service_type type = service_type::query;
43
+ static const inline std::string observability_identifier = "manager_query_get_all_indexes";
44
+
43
45
  static constexpr auto namespace_id = "default";
44
46
 
45
47
  std::string bucket_name;
@@ -40,6 +40,9 @@ struct query_index_get_all_deferred_request {
40
40
  using error_context_type = error_context::http;
41
41
 
42
42
  static const inline service_type type = service_type::query;
43
+ static const inline std::string observability_identifier =
44
+ "manager_query_get_all_deferred_indexes";
45
+
43
46
  static constexpr auto namespace_id = "default";
44
47
 
45
48
  std::string bucket_name;
@@ -37,6 +37,7 @@ struct role_get_all_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_get_roles";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  std::optional<std::string> client_context_id{};
@@ -33,7 +33,8 @@ scope_create_request::encode_to(encoded_request_type& encoded,
33
33
  http_context& /* context */) const -> std::error_code
34
34
  {
35
35
  encoded.method = "POST";
36
- encoded.path = fmt::format("/pools/default/buckets/{}/scopes", bucket_name);
36
+ encoded.path = fmt::format("/pools/default/buckets/{}/scopes",
37
+ utils::string_codec::v2::path_escape(bucket_name));
37
38
  encoded.headers["content-type"] = "application/x-www-form-urlencoded";
38
39
  encoded.body = fmt::format("name={}", utils::string_codec::form_encode(scope_name));
39
40
  return {};
@@ -37,6 +37,7 @@ struct scope_create_request {
37
37
  using error_context_type = error_context::http;
38
38
 
39
39
  static const inline service_type type = service_type::management;
40
+ static const inline std::string observability_identifier = "manager_collections_create_scope";
40
41
 
41
42
  std::string bucket_name;
42
43
  std::string scope_name;
@@ -18,6 +18,7 @@
18
18
  #include "scope_drop.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -32,7 +33,9 @@ scope_drop_request::encode_to(encoded_request_type& encoded,
32
33
  http_context& /* context */) const -> std::error_code
33
34
  {
34
35
  encoded.method = "DELETE";
35
- encoded.path = fmt::format("/pools/default/buckets/{}/scopes/{}", bucket_name, scope_name);
36
+ encoded.path = fmt::format("/pools/default/buckets/{}/scopes/{}",
37
+ utils::string_codec::v2::path_escape(bucket_name),
38
+ utils::string_codec::v2::path_escape(scope_name));
36
39
  return {};
37
40
  }
38
41
 
@@ -37,6 +37,7 @@ struct scope_drop_request {
37
37
  using error_context_type = error_context::http;
38
38
 
39
39
  static const inline service_type type = service_type::management;
40
+ static const inline std::string observability_identifier = "manager_collections_drop_scope";
40
41
 
41
42
  std::string bucket_name;
42
43
  std::string scope_name;
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include "core/topology/collections_manifest_json.hxx"
21
21
  #include "core/utils/json.hxx"
22
+ #include "core/utils/url_codec.hxx"
22
23
  #include "error_utils.hxx"
23
24
 
24
25
  #include <fmt/core.h>
@@ -31,7 +32,8 @@ scope_get_all_request::encode_to(encoded_request_type& encoded,
31
32
  http_context& /* context */) const -> std::error_code
32
33
  {
33
34
  encoded.method = "GET";
34
- encoded.path = fmt::format("/pools/default/buckets/{}/scopes", bucket_name);
35
+ encoded.path = fmt::format("/pools/default/buckets/{}/scopes",
36
+ utils::string_codec::v2::path_escape(bucket_name));
35
37
  return {};
36
38
  }
37
39
 
@@ -38,6 +38,7 @@ struct scope_get_all_request {
38
38
  using error_context_type = error_context::http;
39
39
 
40
40
  static const inline service_type type = service_type::management;
41
+ static const inline std::string observability_identifier = "manager_collections_get_all_scopes";
41
42
 
42
43
  std::string bucket_name;
43
44
 
@@ -37,6 +37,7 @@ struct search_get_stats_request {
37
37
  using error_context_type = error_context::http;
38
38
 
39
39
  static const inline service_type type = service_type::search;
40
+ static const inline std::string observability_identifier = "manager_search_get_stats";
40
41
 
41
42
  std::optional<std::string> client_context_id{};
42
43
  std::optional<std::chrono::milliseconds> timeout{};
@@ -18,6 +18,7 @@
18
18
  #include "search_index_analyze_document.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -38,8 +39,8 @@ search_index_analyze_document_request::encode_to(encoded_request_type& encoded,
38
39
  encoded.headers["content-type"] = "application/json";
39
40
  if (bucket_name.has_value() && scope_name.has_value()) {
40
41
  encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}/analyzeDoc",
41
- bucket_name.value(),
42
- scope_name.value(),
42
+ utils::string_codec::v2::path_escape(bucket_name.value()),
43
+ utils::string_codec::v2::path_escape(scope_name.value()),
43
44
  index_name);
44
45
  } else {
45
46
  encoded.path = fmt::format("/api/index/{}/analyzeDoc", index_name);
@@ -39,6 +39,7 @@ struct search_index_analyze_document_request {
39
39
  using error_context_type = error_context::http;
40
40
 
41
41
  static const inline service_type type = service_type::search;
42
+ static const inline std::string observability_identifier = "manager_search_analyze_document";
42
43
 
43
44
  std::string index_name;
44
45
  std::string encoded_document;
@@ -18,6 +18,7 @@
18
18
  #include "search_index_control_ingest.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -35,8 +36,8 @@ search_index_control_ingest_request::encode_to(encoded_request_type& encoded,
35
36
  encoded.method = "POST";
36
37
  if (bucket_name.has_value() && scope_name.has_value()) {
37
38
  encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}/ingestControl/{}",
38
- bucket_name.value(),
39
- scope_name.value(),
39
+ utils::string_codec::v2::path_escape(bucket_name.value()),
40
+ utils::string_codec::v2::path_escape(scope_name.value()),
40
41
  index_name,
41
42
  pause ? "pause" : "resume");
42
43
  } else {
@@ -38,6 +38,7 @@ struct search_index_control_ingest_request {
38
38
  using error_context_type = error_context::http;
39
39
 
40
40
  static const inline service_type type = service_type::search;
41
+ static const inline std::string observability_identifier = "manager_search_control_ingest";
41
42
 
42
43
  std::string index_name;
43
44
  bool pause;
@@ -18,6 +18,7 @@
18
18
  #include "search_index_control_plan_freeze.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -36,8 +37,8 @@ search_index_control_plan_freeze_request::encode_to(encoded_request_type& encode
36
37
  encoded.method = "POST";
37
38
  if (bucket_name.has_value() && scope_name.has_value()) {
38
39
  encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}/planFreezeControl/{}",
39
- bucket_name.value(),
40
- scope_name.value(),
40
+ utils::string_codec::v2::path_escape(bucket_name.value()),
41
+ utils::string_codec::v2::path_escape(scope_name.value()),
41
42
  index_name,
42
43
  freeze ? "freeze" : "unfreeze");
43
44
  } else {
@@ -40,6 +40,7 @@ struct search_index_control_plan_freeze_request {
40
40
  using error_context_type = error_context::http;
41
41
 
42
42
  static const inline service_type type = service_type::search;
43
+ static const inline std::string observability_identifier = "manager_search_control_plan_freeze";
43
44
 
44
45
  std::string index_name;
45
46
  bool freeze;
@@ -18,6 +18,7 @@
18
18
  #include "search_index_control_query.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -35,8 +36,8 @@ search_index_control_query_request::encode_to(encoded_request_type& encoded,
35
36
  encoded.method = "POST";
36
37
  if (bucket_name.has_value() && scope_name.has_value()) {
37
38
  encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}/queryControl/{}",
38
- bucket_name.value(),
39
- scope_name.value(),
39
+ utils::string_codec::v2::path_escape(bucket_name.value()),
40
+ utils::string_codec::v2::path_escape(scope_name.value()),
40
41
  index_name,
41
42
  allow ? "allow" : "disallow");
42
43
  } else {
@@ -38,6 +38,7 @@ struct search_index_control_query_request {
38
38
  using error_context_type = error_context::http;
39
39
 
40
40
  static const inline service_type type = service_type::search;
41
+ static const inline std::string observability_identifier = "manager_search_control_querying";
41
42
 
42
43
  std::string index_name;
43
44
  bool allow;
@@ -18,6 +18,7 @@
18
18
  #include "search_index_drop.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -34,8 +35,10 @@ search_index_drop_request::encode_to(encoded_request_type& encoded,
34
35
  }
35
36
  encoded.method = "DELETE";
36
37
  if (bucket_name.has_value() && scope_name.has_value()) {
37
- encoded.path = fmt::format(
38
- "/api/bucket/{}/scope/{}/index/{}", bucket_name.value(), scope_name.value(), index_name);
38
+ encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}",
39
+ utils::string_codec::v2::path_escape(bucket_name.value()),
40
+ utils::string_codec::v2::path_escape(scope_name.value()),
41
+ index_name);
39
42
  } else {
40
43
  encoded.path = fmt::format("/api/index/{}", index_name);
41
44
  }
@@ -38,6 +38,7 @@ struct search_index_drop_request {
38
38
  using error_context_type = error_context::http;
39
39
 
40
40
  static const inline service_type type = service_type::search;
41
+ static const inline std::string observability_identifier = "manager_search_drop_index";
41
42
 
42
43
  std::string index_name;
43
44
 
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include "core/management/search_index_json.hxx"
21
21
  #include "core/utils/json.hxx"
22
+ #include "core/utils/url_codec.hxx"
22
23
  #include "error_utils.hxx"
23
24
 
24
25
  #include <fmt/core.h>
@@ -35,8 +36,10 @@ search_index_get_request::encode_to(encoded_request_type& encoded,
35
36
  }
36
37
  encoded.method = "GET";
37
38
  if (bucket_name.has_value() && scope_name.has_value()) {
38
- encoded.path = fmt::format(
39
- "/api/bucket/{}/scope/{}/index/{}", bucket_name.value(), scope_name.value(), index_name);
39
+ encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}",
40
+ utils::string_codec::v2::path_escape(bucket_name.value()),
41
+ utils::string_codec::v2::path_escape(scope_name.value()),
42
+ index_name);
40
43
  } else {
41
44
  encoded.path = fmt::format("/api/index/{}", index_name);
42
45
  }
@@ -40,6 +40,7 @@ struct search_index_get_request {
40
40
  using error_context_type = error_context::http;
41
41
 
42
42
  static const inline service_type type = service_type::search;
43
+ static const inline std::string observability_identifier = "manager_search_get_index";
43
44
 
44
45
  std::string index_name;
45
46
  std::optional<std::string> bucket_name;
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include "core/management/search_index_json.hxx"
21
21
  #include "core/utils/json.hxx"
22
+ #include "core/utils/url_codec.hxx"
22
23
  #include "error_utils.hxx"
23
24
 
24
25
  #include <fmt/core.h>
@@ -32,8 +33,9 @@ search_index_get_all_request::encode_to(encoded_request_type& encoded,
32
33
  {
33
34
  encoded.method = "GET";
34
35
  if (bucket_name.has_value() && scope_name.has_value()) {
35
- encoded.path =
36
- fmt::format("/api/bucket/{}/scope/{}/index", bucket_name.value(), scope_name.value());
36
+ encoded.path = fmt::format("/api/bucket/{}/scope/{}/index",
37
+ utils::string_codec::v2::path_escape(bucket_name.value()),
38
+ utils::string_codec::v2::path_escape(scope_name.value()));
37
39
  } else {
38
40
  encoded.path = "/api/index";
39
41
  }
@@ -40,6 +40,7 @@ struct search_index_get_all_request {
40
40
  using error_context_type = error_context::http;
41
41
 
42
42
  static const inline service_type type = service_type::search;
43
+ static const inline std::string observability_identifier = "manager_search_get_all_indexes";
43
44
 
44
45
  std::optional<std::string> bucket_name;
45
46
  std::optional<std::string> scope_name;
@@ -18,6 +18,7 @@
18
18
  #include "search_index_get_documents_count.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -33,8 +34,8 @@ search_index_get_documents_count_request::encode_to(encoded_request_type& encode
33
34
  encoded.method = "GET";
34
35
  if (bucket_name.has_value() && scope_name.has_value()) {
35
36
  encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}/count",
36
- bucket_name.value(),
37
- scope_name.value(),
37
+ utils::string_codec::v2::path_escape(bucket_name.value()),
38
+ utils::string_codec::v2::path_escape(scope_name.value()),
38
39
  index_name);
39
40
  } else {
40
41
  encoded.path = fmt::format("/api/index/{}/count", index_name);
@@ -39,6 +39,8 @@ struct search_index_get_documents_count_request {
39
39
  using error_context_type = error_context::http;
40
40
 
41
41
  static const inline service_type type = service_type::search;
42
+ static const inline std::string observability_identifier =
43
+ "manager_search_get_indexed_documents_count";
42
44
 
43
45
  std::string index_name;
44
46
 
@@ -39,6 +39,7 @@ struct search_index_get_stats_request {
39
39
  using error_context_type = error_context::http;
40
40
 
41
41
  static const inline service_type type = service_type::search;
42
+ static const inline std::string observability_identifier = "manager_search_get_stats";
42
43
 
43
44
  std::string index_name;
44
45
 
@@ -19,6 +19,7 @@
19
19
 
20
20
  #include "core/management/search_index_json.hxx"
21
21
  #include "core/utils/json.hxx"
22
+ #include "core/utils/url_codec.hxx"
22
23
  #include "error_utils.hxx"
23
24
 
24
25
  #include <fmt/core.h>
@@ -37,8 +38,10 @@ search_index_upsert_request::encode_to(encoded_request_type& encoded,
37
38
  encoded.headers["cache-control"] = "no-cache";
38
39
  encoded.headers["content-type"] = "application/json";
39
40
  if (bucket_name.has_value() && scope_name.has_value()) {
40
- encoded.path = fmt::format(
41
- "/api/bucket/{}/scope/{}/index/{}", bucket_name.value(), scope_name.value(), index.name);
41
+ encoded.path = fmt::format("/api/bucket/{}/scope/{}/index/{}",
42
+ utils::string_codec::v2::path_escape(bucket_name.value()),
43
+ utils::string_codec::v2::path_escape(scope_name.value()),
44
+ index.name);
42
45
  } else {
43
46
  encoded.path = fmt::format("/api/index/{}", index.name);
44
47
  }
@@ -41,6 +41,7 @@ struct search_index_upsert_request {
41
41
  using error_context_type = error_context::http;
42
42
 
43
43
  static const inline service_type type = service_type::search;
44
+ static const inline std::string observability_identifier = "manager_search_upsert_index";
44
45
 
45
46
  couchbase::core::management::search::index index;
46
47
 
@@ -36,6 +36,7 @@ struct user_drop_request {
36
36
  using encoded_response_type = io::http_response;
37
37
  using error_context_type = error_context::http;
38
38
 
39
+ static const inline std::string observability_identifier = "manager_users_drop_user";
39
40
  static const inline service_type type = service_type::management;
40
41
 
41
42
  std::string username{};
@@ -37,6 +37,7 @@ struct user_get_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_get_user";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  std::string username{};
@@ -37,6 +37,7 @@ struct user_get_all_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_get_all_users";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  couchbase::core::management::rbac::auth_domain domain{
@@ -51,11 +51,11 @@ user_upsert_request::encode_to(encoded_request_type& encoded,
51
51
  for (const auto& role : user.roles) {
52
52
  std::string spec = role.name;
53
53
  if (role.bucket) {
54
- spec += fmt::format("[{}", role.bucket.value());
54
+ spec += fmt::format("[{}", utils::string_codec::v2::path_escape(role.bucket.value()));
55
55
  if (role.scope) {
56
- spec += fmt::format(":{}", role.scope.value());
56
+ spec += fmt::format(":{}", utils::string_codec::v2::path_escape(role.scope.value()));
57
57
  if (role.collection) {
58
- spec += fmt::format(":{}", role.collection.value());
58
+ spec += fmt::format(":{}", utils::string_codec::v2::path_escape(role.collection.value()));
59
59
  }
60
60
  }
61
61
  spec += "]";
@@ -37,6 +37,7 @@ struct user_upsert_request {
37
37
  using encoded_response_type = io::http_response;
38
38
  using error_context_type = error_context::http;
39
39
 
40
+ static const inline std::string observability_identifier = "manager_users_upsert_user";
40
41
  static const inline service_type type = service_type::management;
41
42
 
42
43
  couchbase::core::management::rbac::auth_domain domain{
@@ -17,6 +17,7 @@
17
17
 
18
18
  #include "view_index_drop.hxx"
19
19
 
20
+ #include "core/utils/url_codec.hxx"
20
21
  #include "error_utils.hxx"
21
22
 
22
23
  #include <fmt/core.h>
@@ -30,7 +31,7 @@ view_index_drop_request::encode_to(encoded_request_type& encoded,
30
31
  {
31
32
  encoded.method = "DELETE";
32
33
  encoded.path = fmt::format("/{}/_design/{}{}",
33
- bucket_name,
34
+ utils::string_codec::v2::path_escape(bucket_name),
34
35
  ns == design_document_namespace::development ? "dev_" : "",
35
36
  document_name);
36
37
  return {};
@@ -37,6 +37,7 @@ struct view_index_drop_request {
37
37
  using error_context_type = error_context::http;
38
38
 
39
39
  static const inline service_type type = service_type::view;
40
+ static const inline std::string observability_identifier = "manager_views_drop_design_document";
40
41
 
41
42
  std::string bucket_name;
42
43
  std::string document_name;
@@ -18,6 +18,7 @@
18
18
  #include "view_index_get.hxx"
19
19
 
20
20
  #include "core/utils/json.hxx"
21
+ #include "core/utils/url_codec.hxx"
21
22
  #include "error_utils.hxx"
22
23
 
23
24
  #include <fmt/core.h>
@@ -31,7 +32,7 @@ view_index_get_request::encode_to(encoded_request_type& encoded,
31
32
  {
32
33
  encoded.method = "GET";
33
34
  encoded.path = fmt::format("/{}/_design/{}{}",
34
- bucket_name,
35
+ utils::string_codec::v2::path_escape(bucket_name),
35
36
  ns == design_document_namespace::development ? "dev_" : "",
36
37
  document_name);
37
38
  return {};
@@ -38,6 +38,7 @@ struct view_index_get_request {
38
38
  using error_context_type = error_context::http;
39
39
 
40
40
  static const inline service_type type = service_type::view;
41
+ static const inline std::string observability_identifier = "manager_views_get_design_document";
41
42
 
42
43
  std::string bucket_name;
43
44
  std::string document_name;