Releases: couchbase/couchbase-cxx-client
1.0.0-dp.4
API documentation: https://docs.couchbase.com/sdk-api/couchbase-cxx-client-1.0.0-dp.4
-
CXXCBC-275: Update implementation query context fields passed to the server. In future versions of the server versions it will become mandatory to specify context of the statement (bucket, scope and collection). This change ensures that both future and current server releases supported transparently.
-
CXXCBC-296: Force PLAIN SASL auth if TLS enabled. Using SCRAM SASL mechanisms over TLS protocol is unnecesary complication, that slows down initial connection bootstrap and potentially limits server ability to improve security and evolve credentials management.
-
CXXCBC-295: The
get with projections
opration should not fail if one of the the paths is missing in the document, because the semantics is "get the partial document" and not "get individual fields" like inlookup_in
operation. -
CXXCBC-294: In the Public API, if
get
operation requested to return expiry time, zero expiry should not be interpreted as absolute expiry timestamp (zero seconds from UNIX epoch), but rather as absense of the expiry. -
CXXCBC-291: Allow to disable mutation tokens for Key/Value mutations (use
enable_mutation_tokens
in connection string or cluster options). -
CXXCBC-188: Implement ChangePassword in user management API.
-
Resource management and performance improvements:
- Fix tracer and meter ref-counting (#370)
- Replace
minstd_rand
withmt19937_64
, as it gives less collisions (#356) - CXXCBC-285: Write to sockets from IO threads, to eliminate potential race conditions. (#348)
- Eliminate looping transform in
mcbp_parser::next
(#347) - CXXCBC-205: Use thread-local UUID generator (#340)
- CXXCBC-293: Performance improvements:
-
Build system fixes:
-
CLI tools:
-
Enhancements:
- Allow to get list of available configuration profiles. Useful for validation and UX. (#362)
- Add more fmt helpers:
query_scan_consistency
,query_status
, and changecas
representation into fixed length base-16 number. (#361) - Include bucketless KV service when ping is requested. (#339)
- CXXCBC-290: add header with feature macros (#355)
- Include OS name in SDK identifier (#349)
- Expose more functions to get version info (#353)
- Add function to generate semantic version from git-describe (#354)
- CXXCBC-286: Decode value of
user_agent_extra
argument when it is URL-encoded and passed through connection string. (#350)
-
Transactions:
- CXXCBC-289: Refactor transactions logging to match rest of C++ SDK.
1.0.0-dp.3
-
CXXCBC-275: Update query_context handling in query management calls. Known issue: query management operations will fail with
1065: Unrecognized parameter in request: query_context
error on server version 6.6. -
Build system fixes:
- Update badges (#330)
-
Enhancements:
- CXXCBC-276: Use interval from the options for config poll, which previous was hard-coded to 2.5 seconds. (#336)
-
Transactions:
- CXXCBC-259: Transactions public API expects bucket already open, so the library will automatically open buckets inside transaction logic. (#334)
- CXXCBC-197: Add support for ExtInsertExisting. (#332)
- TXNCXX-260: Fixed ExtBinaryMetadata bug. (#333)
- CXXCBC-261: Query error handling issues. (#324)
-
Preview features:
- Key/Value range scan:
- CXXCBC-257: Support for FIT testing of kv range scan (#329)
- CXXCBC-257: Fix stream completion for range scan (#327, #326, #325)
- Key/Value range scan:
1.0.0-dp.2
-
CXXCBC-270: Rename logging macros, adding
CB_
prefix (e.g.LOG_DEBUG
->CB_LOG_DEBUG
) (#323) -
CXXCBC-242: Drain waiting commands list on MCBP session close (#321)
-
CXXCBC-271: Fix
get_all_replicas
behaviour: do not propagate error if result set is not empty, while the last response has failed. (#322) -
Build system fixes:
-
Transactions:
- Check for expiry in begin work (#318)
- Small updates to txn query opts, query opts and txn cleanup config. (#305)
- TXNCXX-268: ASAN issue in FIT tests (#313, #311)
- TXNCXX-254: Updates for FIT performer. (#307, #306)
-
Preview features:
- Key/Value range scan:
- CXXCBC-242: Core API for KV range scan (#312)
- CXXCBC-242: Move batch time limit to scan_continue options (#320)
- CXXCBC-242: Refactor core API to prepare for range scan implementation (#309)
- Key/Value range scan:
1.0.0-dp.1
First developer preview of the C++ Couchbase client. Other than additions, we expect to make as few (if any) changes to the current interface as we move towards a general release. Please check out the /examples
directory for some example usage of the API, both the synchronous and asynchronous versions. Also, the tests in /test
should provide more examples, as well.
The API documentation will be fleshed out more thoroughly in coming DP releases, as will the examples and tests.
Like any Developer Preview, this should not be used in production.
This docs/stability.hxx describes our API stability tags. We don't expect changes to the classes and methods that are marked with the @committed
tag, although other interfaces might be changed or removed. Please open tickets at https://issues.couchbase.com/projects/CXXCBC if something is missing, or with general questions. We are also available in Discord and Forums (more details at CONTRIBUTING.md).
- CXXCBC-142: Update SRV resolution for Windows (#303)
- CXXCBC-172: Refresh DNS SRV when cluster uncontactable (#275, #290)
- CXXCBC-234: Error message for bucket hibernation and update error message for authentication_failure. (#280, #285)
- CXXCBC-235: Load system CAs when the trust certificate is not provided and do not fail if trust certificate is not specified (#283, #281)
- CXXCBC-245: Fix encoding of durability frame (#277)
- CXXCBC-246: Convert
not_stored
code todocument_exists
(#278) - CXXCBC-251: Fix snappy decompression for
get_replica
(#296) - CXXCBC-253:
query_options
not settingscope_qualifier
(#300) - SDKQE-2761: Fix failures in serverless mode (#274)
- Don't log expected warnings in DNS resolver (#294)
Public API:
- CXXCBC-238: expose query methods in public API (#284)
- CXXCBC-237: expose get_with_lock, unlock and exists to public API (#276)
- CXXCBC-255: allow to override retry strategy using public API (#302)
- CXXCBC-242, CXXCBC-244: Expose KV transactions as Public API (#279)
Resource management and performance fixes:
- CXXCBC-225: don't throw exceptions when socket options cannot be set (#270)
Build system fixes:
- Move away from
reinterpret_pointer_cast<>
for MacOS build issue (#288) - Improve OpenSSL detection on Windows (#272)
- CXXCBC-226: ensure that moving from
movable_function
will clear the source (#271)
Enhancements:
- Update ASIO to get most recent channels (#299)
- CXXCBC-235: update code comment about default root CA (#282)
- CXXCBC-221: Update
"wan_development"
config profile (#269) - CXXCBC-249: allow to construct cluster object using public API (#291)
Transactions:
- CXXCBC-56: Consolidate transactions and C++ SDK (#251)
- CXXCBC-256: Async transactions example (#304)
- CXXCBC-254: Update transactions example (#301)
- TXNCXX-265: ExtSDKIntegration (#293)
- TXNCXX-266: Transaction config/option rework (#295)
- TXNCXX-267: Expose query in transactions public api (#297)
- CXXCBC-232: Update transactions API (#273)
- Transaction issue noticed in python (#289)
- Add forward compat information to client metadata (#298)
1.0.0-beta.3
- CXXCBC-221: Support for configuration profiles (#268)
- CXXCBC-218: allow to check if subdoc result field has value (#263)
- CXXCBC-199: Always set kv_collection_outdated retry reason on unknown collection error (#223)
- CXXCBC-203: disable clustermap nofication by default (#233)
- CXXCBC-159: Increment/decrement should not have
preserve_expiry
(#201) - CXXCBC-55: External Tracing and Metrics support with OpenTelemetry support (#228, #231)
- CXXCBC-54: Add log forwarding (#206)
Public API:
- Split private/public API and update namespaces (#230)
- Expose
lookup_in
as public API (#248) - Expose touch and
get_and_touch
in public API (#245) - Improve usability of
mutate_in
API (#244) - CXXCBC-53: expose
get
and mutation operations to public API (#240) - Move error codes to public API (#232)
- CXXCBC-88: Set
production
as default namespace for view query (#209) - CXXCBC-52: Implement replica read operations (#221, #253, #234)
- CXXCBC-151: Add support for raw to view request (#177)
- CXXCBC-170: use hostname to detect Capella suffix (#198)
- CXXCBC-152: Add on error option to view request (#178)
Bug fixes:
- CXXCBC-134: Close http_session before conecting to next endpoint (#213)
- CXXCBC-179: fix parsing responses with chunked meta trailer (#191)
- CXXCBC-170: add extra check for missing CA for TLS connections (#197)
- CXXCBC-182: add extra check for keywords in query index fields (#196)
- CXXCBC-173: complete streaming lexer even if pointer didn't match (#195)
- CXXCBC-212: reprepare and retry query on 4040, 4050 and 4070 (#257)
- CXXCBC-174: reduce scope of the http request lock (#259)
- CXXCBC-176: ignore 'is_primary' for named primary indexes when dropping (#202)
- return subdocument error context from future-based subdoc methods (#258)
Enhancements:
- CXXCBC-198: Implement build deferred indexes per RFC-54 (#238)
- CXXCBC-220:
query_index_build_deferred
(#267) - CXXCBC-219: compound operation for build deferred indexes (#264)
- Add missing includes to
query_index_build_deferred
(#266) - CXXCBC-53: implement legacy durability for mutation operations (#252, #241)
- Fixed insert ops incorrectly encoding durability framing extras. (#217)
- use movable_function for observe poller (#265)
- [CXXCBC-217]: allow to get
tao::json:(https://issues.couchbase.com/browse/CXXCBC-217):value
from transcoder (#261) - CXXCBC-215: hide subdoc implementation details (#256)
- CXXCBC-216: allow to use movable_function for replica callbacks (#260)
- CXXCBC-156: use vector of bytes instead of string for binary data (#216)
- CXXCBC-161, CXXCBC-94: update ping implementation (#211)
- CXXCBC-93: Use an enum for analytics metadata status (#225)