Release Notes
- Quicklinks
-
Release 2.8 | Release 2.7 | Release 2.6 | Release 2.5 | Release 2.1 | Release 2.0
Couchbase Sync Gateway
This content describes the key features and changes implemented by release 3.0.0 of Couchbase Sync Gateway
One Way Upgrade
The migration to 3.0 configuration is a ONE WAY process — see: Upgrading for more. |
3.0.9 — Oct 2023
Issues and Resolutions
Fixed Issues
-
CBG-3477 -- warning when client's maxHistory for a rev is exceeded on push
-
CBG-3415 -- Replicator will not reconnect when max_back_off != 0
-
CBG-3406 -- Hook up the reset resync code to a parameter that is passed into the resync endpoint
-
CBG-3239 -- Revocation feed errors cause MultiChangesFeed to close
3.0.5 — February 2023
Issues and Resolutions
Fixed Issues
-
CBG-2705 -- ISGR Sequence checkpointing maintains unnessesary entries
-
CBG-2707 -- Compact expected/processed when safe seq unchanged
-
CBG-2612 -- Performance decrease in Replicate and SGReplicate tests
-
CBG-2591 -- Inefficient sequence parsing during ISGR checkpointing
-
CBG-2601 -- ISGR processedSeqs/expectedSeq mismatch based on JSON string
-
CBG-2602 -- Anonymous read-only access should support pull replications
3.0.4 — October 2022
Issues and Resolutions
Fixed Issues
-
CBG-2448 [3.0.4 Backport] Background manager cluster aware terminator race condition
-
CBG-2231 [3.0.4 Backport] SGW panics on startup with mutual TLS enabled and invalid bootstrap config
-
CBG-2209 [3.0.4 backport] Index compaction failing due to not found handling
-
CBG-2186 [3.0.4 Backport] Revocation of non-existent role causes replication panic
-
CBG-2179 [3.0.4 Backport] Periodic high response times on REST API due to persistent config polling
3.0.3 — June 2022
Version 3.0.3 of sync gateway delivers a number of fixes and enhancements. .Version 3.0.3 replaces v3.0.0
This version of sync gateway includes fixes for several critical issues from v3.0.0. Therefore v3.0.0 is replaced by v3.0.3. If you are using v3.0.0 we strongly recommend upgrading to v3.0.3. |
Issues and Resolutions
Fixed Issues
-
CBG-1953 Console logging not being enabled when only a log key set
-
CBG-1996 Implementation for supporting top-level properties with an underscore prefix
-
CBG-1999 Unable to upsert replication config username or password independently
-
CBG-2011 CBL revpos handling causes attachment fetch per write for docs with attachments
-
CBG-2072 crc32c values with leading zeros trigger unnecessary import
Release 3.0.0 — February 2022
- Quicklinks
-
New Features | Enhancements | Issues and Resolutions | Support Notices
Replaced by v3.0.3
Version 3.0.3 includes fixes for several critical issues found in 3.0.0. Therefore v3.0.0 is replaced by v3.0.3. We strongly encourage upgrading to v3.0.3. |
New Features
Centralized Persistent Modular Configuration
Centralized Persistent Modular Configuration is a core enhancement that makes it simpler for administrators to configure and manage the Sync Gateway.
This enhancement removes reliance on monolithic JSON configuration files whilst providing a modular and cluster-aware approach to Sync Gateway node configuration.
Basic startup configuration settings bootstrap your Sync Gateway nodes and securely connect them to a Couchbase Server. Configuration of cluster-wide Sync Gateway databases, access control policies and inter-Sync Gateway replications is then provided using the Admin REST API.
Secure Administration
This major enhancement complements the introduction of the centralized persistent configuration by introducing secure administration of a cluster through the Admin REST API.
The Admin REST API now enforces authentication and role-based access control by default.
TLS Encryption Enabled by Default
The default enabling of secure TLS connections for all Couchbase Server,side communication ensures that all such communication is encrypted; enforcing and encouraging security best practices.
User Defined Extended Attributes(XAttrs) for Access Control
Use extended attributes (metadata) to avoid the need to embed sensitive access grant information such as channels and roles within document bodies.
This key architectural enhancement enforces separation of concerns by providing you the option to use Extended Attributes (XATTRs) to specify channel access grants outside of your document bodies.
Auto-Purge on Channel Access Revocation in Inter-Sync Gateway Replication
This enhancement to inter-Sync Gateway replication technology helps with the enforcement of data privacy and governance in complex workflows.
Enhancements
Compacting
Attachments added post 3.0 are automatically removed from the bucket upon reference removal, document delete or document purge.
The {db}/_compact API includes an option to remove any redundant pre-3.0 attachments — see:
Revisions — Compacting.
Resync
The _resync
process has been enhanced to better handle large datasets, minimizing timeout and out-of-memory issues.
The process now runs asynchronously, uses query pagination and supports sequence regeneration.
Other Enhancements
-
CBG-1760 — Error upfront when the configured logFilePath is not writable
-
CBG-1672 — Return 422 status for unprocessible deltas instead of 404 to use non-delta retry handling
-
CBG-1664 — Validate javascript syntax in DbConfig.validate()
-
CBG-1643 — Add additional context for gocb errors when using self-signed cert
-
CBG-1590 — Retrieve existing doc metadata prior to calling downloadOrVerifyAttachments
-
CBG-1558 — panic after failed unmarshal in GetDeepMutableBody
-
CBG-1424 — discoverInterfaceName should resolve hostnames before trying to find network interface stats using IP addresses
-
CBG-1390 — Add warning threshold for excessively large number of channels per user
-
CBG-1343 — Increase initial wait time for index creation retry
-
CBG-1342 — Avoid retry on 'duplicate index name' index creation error
-
CBG-1326 — Log if channels expand to a smaller set than requested
-
CBG-1217 — Ensure change listener goroutines terminates (both Tap and DCP feeds) before the server is stopped
-
CBG-1127 — Treat resurrected tombstones as non-conflict when no shared history
-
CBG-949 — Improve error when non-upgradable HTTP request is sent to _blipsync endpoint
-
CBG-841 — Force users to opt in to accepting unsigned tokens from providers in SG’s provider config.
-
CBG-715 — High CPU usage in high volume basic auth scenarios
-
CBG-551 — Avoid storing _removed:true revision bodies in the revision cache
Issues and Resolutions
Fixed Issues
-
CBG-1438 — SgwIntStat.SetIfMax incorrectly sums old and new values
-
CBG-1428 — ISGR should ignore _removed:true bodies when purgeOnRemoval is disabled
-
CBG-1427 — ISGR should not try sending a delta when deltaSrc is a tombstone
-
CBG-1412 — JSON strings in some responses not being correctly escaped
-
CBG-1388 — sg_collect does not package archived log files (*.log.gz)
-
CBG-1376 — Some Delta Sync errors logged at WARN level should be DEBUG
-
CBG-1339 — Creating mobile tombstone for existing CBS tombstone causes loop
-
CBG-1335 — Mutating _rev on localDocument in conflict resolver results in merge error
-
CBG-1304 — ISGR: Pull replications incompatible with active-side allow_conflicts=false
-
CBG-1246 — Changes limit incorrectly applied in case of CBG-946
-
CBG-1200 — Calling DELETE on a non-existent document creates a tombstone with empty body
-
CBG-1172 — ISGR credentials with characters requiring URL encoding cause blipsync to fail
-
CBG-1161 — DefaultPurgeInterval specified in days and used as though in hours
-
CBG-1113 — CBL1.x/Websocket based changes feeds leak goroutine on disconnect
-
CBG-789 — Updating a blob with new data does not update SG’s metadata on sync
API and Configuration Changes
This release introduces significant configuration and persistent API changes; some of which may be breaking changes if they impact a feature you rely on — see the items identified in:attribute: value Table 1 | Table 2 | Table 3.
Breaks compatibility
Feature | Link |
---|---|
enable_shared_bucket_access — enabled by default The change ought to be transparent to the user, if:
Old documents are automatically migrated to the |
|
Enforce TLS by default |
Deprecated
Feature | Link |
---|---|
allow_conflicts confg |
|
enable_shared_bucket_access — disabled option |
|
Facebook User Auth Config |
|
Google User Auth Config |
|
Logging API |
Dropped or removed
Feature | Link |
---|---|
admin UI |
|
configServer property |
|
databases.this_db.cache.channel_cache_expiry |
|
databases.this_db.feed_type |
|
logging.default config section |
|
databases.this_db.cache.channel_cache_max_length |
|
databases.this_db.cache.channel_cache_min_length |
|
databases.this_db.cache.enable_star_channel |
|
databases.this_db.cache.max_num_pending |
|
databases.this_db.cache.max_wait_pending |
|
databases.this_db.cache.max_wait_skipped |
|
old cache config values: databases.this_db.rev_cache_size |
|
SG-Replicate |
|
walrus mode |
Support Notices
This section documents any support-related notes, constraints and changes
Deprecation Notices
Items (features and-or functionality) are marked as deprecated when a more current, and usually enhanced, alternative is available.
Whilst the deprecated item will remain usable, it is no longer supported, and will be removed in a future release. You should plan to move to an alternative, supported, solution as soon as practical.