Releases: couchbase/sync_gateway
3.3.0 — July 2025
https://docs.couchbase.com/sync-gateway/3.3/whatsnew.html
What's Changed
- Switch main builds to 3.3.0 by @adamcfraser in #7013
- CBG-4108 acquire lock to prevent NewWaiter data race by @torcolvin in #7012
- CBG-4110: Flip defaultDbAuditEnabled by @bbrks in #7015
- CBG-4117: Add type checking to mandatory audit fields during event validation by @bbrks in #7011
- CBG-4101 add AuditIDChangesFeedStarted from blip by @torcolvin in #7010
- CBG-4067: do not release doc sequence upon timeout error by @gregns1 in #7016
- CBG-4116 skip successful auth on silent handlers by @torcolvin in #7017
- CBG-4111: Differentiate between
nil
set and empty set of enabled db audit events by @bbrks in #7024 - CBG-4087: remove configs from invalid tracking that are not found in config poll by @gregns1 in #7020
- CBG-4114 Fixes for db scoped audit enabled/disabled events by @adamcfraser in #7021
- CBG-4122 common func for getting file loggers by @torcolvin in #7022
- CBG-4101 avoid test flake by @torcolvin in #7032
- CBG-4088: If we error in removeCorruptConfigIfExists we don't unload/remove database by @gregns1 in #7014
- CBG-4023: Removal unmarshalled body on the rev cache by @gregns1 in #7030
- CBG-3713 use atomic pointers for loggers by @torcolvin in #7025
- CBG-4132 Enable sequence handling tests with xattrs=true by @torcolvin in #7031
- CBG-4017 Move to go-oidc v3.11.0, go-jose v4.0.2 by @adamcfraser in #7036
- CBG-4136: OpenAPI Specs: Limit db scopes to 1 and provide example by @bbrks in #7038
- CBG-4138: Enable log collation by default for audit logging by @bbrks in #7039
- CBG-3713 nil non console loggers in ResetGlobalLogging by @torcolvin in #7042
- CBG-4140: Cheaply clone additionalFields when producing audit event - avoids un… by @bbrks in #7041
- CBG-4132 wait for sequence id, not number of sequences by @torcolvin in #7045
- CBG-3818 Create and use GetChanges consistently (part 1) by @torcolvin in #7033
- CBG-3818 Create and use GetChanges consistently (part 2) by @torcolvin in #7034
- Add benchmark to get audit field overhead measurements by @bbrks in #7043
- CBG-4157: disable audit events bug/panic and fix by @bbrks in #7047
- CBG-3818 WaitForChanges before starting a Continuous:false replicator by @torcolvin in #7048
- CBG-4067 Only skip releasing sequences for timeouts by @adamcfraser in #7050
- CBG-3947 Do not remove loaded database on transient fetch error by @adamcfraser in #7035
- CBG-4125 use a non cancellable context for OIDC metadata by @torcolvin in #7055
- CBG-4147: Improve Audit performance (JSON marshalling / expandFields) by @bbrks in #7056
- CBG-4169 add 3.1.10 branch by @torcolvin in #7059
- CBG-4161 log the source of metadata ID by @torcolvin in #7051
- CBG-4121 improve logging for jwts by @torcolvin in #7064
- README.md: Replace coverage card with combined integration test coverage by @bbrks in #7068
- CBD-6003, build repo SHA changes to pickup GOPROXY change. by @mhocouchbase in #7077
- README refresh by @bbrks in #7075
- CBG-4135: new stat for rev cache capacity by @gregns1 in #7049
- CBG-4181: Bump third-party dependencies by @bbrks in #7078
- CBG-4143 add redocly targets for capella by @torcolvin in #7044
- CBG-4160: Replace base.WaitForStat with Assert/Require and fix missing stat incr by @bbrks in #7052
- CBG-3692: Improved logging for failed basic auth login by @bbrks in #7080
- CBG-3694: Improved logging for failed session auth by @bbrks in #7081
- CBG-3693: Improved logging for no-user/no auto-register case in JWT auth by @bbrks in #7082
- CBG-4188: Add audit logging metrics by @bbrks in #7083
- CBG-3933 allow console logs to be rotated by @torcolvin in #7058
- CBG-3933 correct docs for number of days audit logs are retained by @torcolvin in #7085
- CBG-4191 Switch version numbers to only show x.y by @torcolvin in #7086
- Set up 3.1.10.1 builds by @bbrks in #7089
- CBG-4167 add missing Stringer for SubChangesParams and ChangesOptions by @torcolvin in #7095
- CBG-4032: memory based rev cache implementation by @gregns1 in #7040
- CBG-4215 Move duplicate checks for pending sequences to read side by @adamcfraser in #7097
- CBG-4216 Don't increment high sequence cached for unused sequences on pendingLogs by @adamcfraser in #7098
- CBG-4227 Set up 3.1.11 builds by @adamcfraser in #7104
- CBG-4223 correct log message by @torcolvin in #7101
- CBG-4228 correct docs for /db/_config/audit by @torcolvin in #7108
- CBG-4226 remove allOf references by @torcolvin in #7103
- CBG-4134: link rev cache memory limit config option to rev cache by @gregns1 in #7084
- CBG-4234: clean up rev cache work by @gregns1 in #7113
- CBG-4241: Low risk refactoring in
_getOrAddDatabaseFromConfig
by @bbrks in #7115 - CBG-4179 check early for context cancellation by @torcolvin in #7079
- CBG3026 prereq: More low-risk cleanup/refactoring by @bbrks in #7120
- CBG-4268: Remove DBOnlineCallback by @bbrks in #7122
- [3.2.1] CBG-4262: Set up 3.2.1 builds by @bbrks in #7123
- speed up db/indextest by 5 minutes by @torcolvin in #6911
- remove use of primary index in tests by @torcolvin in #7124
- CBG-4273: Lower BLIP frame/message logging to trace level by @bbrks in #7126
- CBG-4277: Remove unused totalBytesForHistory from getHistory by @gregns1 in #7137
- CBG-4236: Create SG log files on startup with 0644 permission bits set by @bbrks in #7128
- CBG-4291 Fix mou.cas for resync by @adamcfraser in #7148
- CBG-4293 recognize alma/rocky and other rhel variants by @torcolvin in #7150
- DOC-12637 Fix redocly plugins by @osfameron in #7153
- CBG-3026: Use
DatabaseInitManager
in all GSI cases by @bbrks in #7121 - CBG-4282 silence non-constant format govet error by @torcolvin in #7140
- CBG-3834 Close connected websocket connections on database close by @adamcfraser in #7157
- diable TestReleaseSequenceOnDocWriteFailure pending CBG-4242 by @gregns1 in #7163
- Update schemas.yaml by @ElliotFrancisHunter in #7165
- CBG-2838: Rely on index 'IF NOT EXISTS' and idempotent deferred index builds fo… by @bbrks in #7161
- CBG-4308 fix test race condition by @torcolvin in #7159
- CBG-4242: TestReleaseSequenceOnDocWriteFailure flake by @gregns1 in #7172
- CBG-4323: fix for per shard memory based eviction by @gregns1 in https://github.com/couchbase/sync...
3.2.6 — July 2025
https://docs.couchbase.com/sync-gateway/3.2/whatsnew.html
Fixed Issues
- Improved sgcollect execution and output
3.2.5 — June 2025
https://docs.couchbase.com/sync-gateway/3.2/whatsnew.html
What's Changed
- [3.2.5 backport] CBG-4620: skip assigning nil body attachments to _attachments property if _attachments is uses as json value by @gregns1 in #7511
- [3.2.5 backport] openapi docs improvements by @torcolvin in #7517
- [3.2.5 Backport] CBG-4655: Make
MgmtRequest
tolerant to request failures and not panic by @bbrks in #7535 - [3.2.5 Backport] CBG-4657: fix example for /_all_dbs by @bbrks in #7537
- [3.2.5 Backport] CBG-4656: centralize blip correlation ids by @bbrks in #7536
- [3.2.5 Backport] CBG-4659: Uptake Otto stack depth limit with tests by @bbrks in #7541
- [3.2.5 Backport] CBG-4660: remove warnings for null document bodies by @bbrks in #7542
- [3.2.5 Backport] CBG-4663: Rescope log collection context to avoid deep context value nesting by @bbrks in #7549
Full Changelog: 3.2.4...3.2.5
3.2.4 — April 2025
https://docs.couchbase.com/sync-gateway/3.2/whatsnew.html
What's Changed
- [3.2.4 Backport] CBG-4551: Skip revcache insertion for all imports by @bbrks in #7440
- [3.2.4 Backport] CBG-4543: Clone byte slices coming over DCP by @bbrks in #7439
- [3.2.4 backport] Remove TestLowSequenceHandlingNoDuplicates by @torcolvin in #7447
- [3.2.4 backport] CBG-4382 do not redact profiles by @torcolvin in #7449
- [3.2.4 backport] CBG-4525 fix TestAttachmentDeleteOnExpiry flake by @torcolvin in #7443
- [3.2.4 backport] CBG-4588 use natural language for openapi by @torcolvin in #7450
- [3.2.4 backport] CBG-4325 use unique output files by @torcolvin in #7452
- [3.2.4 backport] CBG-4537 prevent status goroutine leak by @torcolvin in #7448
- [3.2.4 backport] CBG-4583 have maximum threshold for releasing sequences in nextSequenceGreaterThan by @torcolvin in #7451
- [3.2.4 backport] CBG-4189: Add stat to track number of assertion failures by @torcolvin in #7442
- CBG-4564 bump go.mod dependencies by @torcolvin in #7444
- [3.2.4 backport] CBG-4571: stop audit events logging when no audit config is provided at db level by @torcolvin in #7453
- [3.2.4 Backport] CBG-4585: Return Invalid JSON error via OIDC discovery by @bbrks in #7461
- [3.2.4 backport] close goroutines for multiframe messages by @torcolvin in #7454
- CBG-4596 use go 1.24.2 by @torcolvin in #7462
- [3.2.4 backport] CBG-4598 pass through network= parameters by @torcolvin in #7464
- [3.2.4] CBG-4564 update go deps post go 1.24 upgrade by @torcolvin in #7465
- [3.2.4 Backport] CBG-4590 - Add sequence value stats for last allocated and last reserved by @bbrks in #7469
- [3.2.4 Backport] CBG-4556: Detect loading non-xattr config document in xattr bootstrap mode by @bbrks in #7468
Full Changelog: 3.2.3...3.2.4
3.2.3 — March 2025
https://docs.couchbase.com/sync-gateway/3.2/whatsnew.html
What's Changed
- [3.2.3 backport] CBG-4326 improve metrics documentation by @torcolvin in #7354
- [3.2.3 Backport] CBG-4463: Avoid leaking ISGR StatsReporter goroutine underneath reconnecting replicator (#7355) by @bbrks in #7360
- CBG-4464: [3.2.3 backport] Retry index creation for longer by @gregns1 in #7362
- CBG-4516: [3.2.3 backport] Windows TestReplicationConfigUpdatedAt flake by @gregns1 in #7364
- CBG-4392: [3.2.3 backport] provide cluster UUID at top level endpoint by @gregns1 in #7363
- [3.2.3 Backport] CBG-4198: Put ISGR into an errored stopped state when a reconnect times out by @bbrks in #7365
- CBG-4393: [3.2.3 backport] bubble up errors from startup db process to db summaries by @gregns1 in #7366
- CBG-4515: [3.2.3 backport] observability errors for online process by @gregns1 in #7370
- CBG-4517: [3.2.3 backport] pick up gocb fix for bucket names with . in by @gregns1 in #7378
- [3.2.3 backport] CBG-4523 wait for stat to avoid test flake by @torcolvin in #7380
- CBG-4465: [3.2.3 backport] Add Database Init and Online fatal error stats by @gregns1 in #7381
Full Changelog: 3.2.2...3.2.3
3.2.0 — Feb 2025
https://docs.couchbase.com/sync-gateway/3.2/whatsnew.html
What's Changed
- [3.2.2 backport] go-blip module fix and python linter fix by @bbrks in #7324
- [3.2.2 backport] CBG-4436: Count scheduled compaction runs as idle KV/Query ops by @bbrks in #7325
- [3.2.2 backport] CBG-4310: update cbgt to address lack of janitor kic… by @torcolvin in #7329
- [3.2.2 Ports] CBG-4398: Restore pre 3.1.9 skipped sequence handling with later optimisations applied by @bbrks in #7330
- [3.2.2 Backport] CBG-4488: Avoid deadlock in revision cache between Get and on-demand import by @bbrks in #7331
- [3.2.2 backport] CBG-4482 switch database to offline if there is an error on synchronous reload by @adamcfraser in #7334
- [3.2.2] CBG-4500: Rollback unintentional transitive dependency module upgrades by @bbrks in #7339
- [3.2.2 Backport] CBG-4495: do not put documents into rev cache for an on demand import by @bbrks in #7346
Full Changelog: 3.2.1...3.2.2
3.1.11 — Sept 2024
What's Changed
- CBG-3983: [3.1.9 backport] sgcollect_info: Switch to runtime config endpoint to determine logFilePath by @gregns1 in #6923
- CBG-4057 Correct test asserts in TestAsyncOnlineOffline by @adamcfraser in #6928
- CBG-3966: [3.1.9 backport] fix incorrect runtime config after conflict error on collection update by @gregns1 in #6924
- CBG-4054: update 3.1.9 branch go version to 1.22.5 by @gregns1 in #6935
- CBG-3953: [3.1.9 backport] Avoid timeout on creating indexes asynchronously by @gregns1 in #6934
- CBG-4062: [3.1.9 Backport] update api docs for all_docs endpoint (#6929) by @gregns1 in #6945
- CBG-4035: [3.1.9 backport] Skipped Sequence Optimisations by @gregns1 in #6925
- [3.1.9 backport] CBG-4029 Revocation handling for deleted roles by @adamcfraser in #6958
- [3.1.9 backport] CBG-4004 Revocation handling for deleted roles by @adamcfraser in #6959
- [3.1.9 backport] CBG-4028 Treat on-demand import for GET errors as not found by @adamcfraser in #6966
- [3.1.9 backport] CBG-4016 Refresh sequence allocator before incr during nextSequenceGreaterThan by @adamcfraser in #6960
- CBG-4082 Uptake GOCBC-1640 by @adamcfraser in #6978
- [3.1.9 backport] CBG-4073: fix panic in CheckpointHash function by @adamcfraser in #6983
- [3.1.10 backport] CBG-4127 use a non cancellable context for OIDC metadata by @torcolvin in #7061
- [3.1.10 backport] CBG-4145 improve logging for jwts by @torcolvin in #7070
- [3.1.10 backport] CBG-4162 log the source of metadata ID by @torcolvin in #7072
- [3.1.10 backport] CBG-4107 CBG-4173 : remove database even if removeCorruptConfigIfExists fails by @torcolvin in #7060
- CBG-4192 Add stop gap option to send document for channel removal by @torcolvin in #7088
- CBG-4218 [3.1.11 backport] Move duplicate checks for pending sequence to read side by @adamcfraser in #7105
- CBG-4221 [3.1.11 backport] Don't increment high sequence cached for unused sequences on pendingLogs by @adamcfraser in #7106
Full Changelog: 3.1.8...3.1.11
3.2.0 — Sept 2024
https://docs.couchbase.com/sync-gateway/3.2/whatsnew.html
Eventing Support with Sync Gateway 3.2.0+ and Couchbase Server 7.6.3+
Sync Gateway 3.2.0 now supports improved interoperability with Eventing from Couchbase Server version 7.6.3+.
You can use Eventing to handle data changes that happen when applications interact and to integrate with other Couchbase services such as Data, Query and Full Text Search.
For more information, see Eventing — Server Compatibility
Audit Logging Support
Couchbase now provides Audit Logging support for Sync Gateway. Audit Logging provides tools for administrators to track operational irregularities and to support regulatory and security compliance standards, such as HIPAA
and SOC-2. For more information, see Audit Logging.
What's Changed
- Add 3.1 release manifest by @torcolvin in #6174
- Take a copy of UserData without pointer-hacks that get optimised away by @bbrks in #6175
- enable ineffassign by @torcolvin in #6102
- Make tests work with XATTRS=false by @torcolvin in #6178
- Create 3.0.6 branch by @torcolvin in #6180
- Rest API tweaks for docs by @osfameron in #6182
- CBG-2412: Leaking rest/replicator_test.go goroutines by @gregns1 in #6181
- CBG-2844 update gocb for CCCP polling failure by @torcolvin in #6184
- Fix wrong error being passed into log due to shadowing by @bbrks in #6187
- Don't log if pruneCacheAge didn't prune anything by @bbrks in #6186
- CBG-2842 Always return unauthorized for non authorized public API by @torcolvin in #6183
- CBG-2840 Use go 1.20.3 by @torcolvin in #6191
- CBG-2711 add 3 node cluster option to jenkins by @torcolvin in #6176
- CBG-2807: Allow databases to override CORS config by @torcolvin in #6179
- CBG-2686: fix for dcp resync flake by @gregns1 in #6177
- rename gh actions to standard names by @torcolvin in #6195
- remove spurious warnings by @torcolvin in #6202
- CBG-1971: TestReplicationConcurrentPush flaky test fix by @gregns1 in #6173
- Set up 3.0.7 manifest by @adamcfraser in #6209
- CBG-2877 allow options to contain db-scoped CORS by @torcolvin in #6205
- Always close bootstrap connections from ServerContext.Close() by @bbrks in #6215
- CBG-2901 Port 3.1.0 DCP failover enhancements to main by @adamcfraser in #6213
- Set default for MULTI_NODE to avoid unbound variable error by @bbrks in #6216
- Speed up tests by reducing sleep/wait loop by @torcolvin in #6198
- Correct default value of EnableStarChannel by @bbrks in #6218
- CBG-2911 allow /db/ if default collection is configured with other named collections by @torcolvin in #6222
- CBG-2912 Add release-3.1.1 by @torcolvin in #6220
- fix manifest path for 3.1.0.xml. by @mhocouchbase in #6227
- allow rbac tests to run by @torcolvin in #6225
- flip boolean so test runs only with CBS 7.1 by @torcolvin in #6228
- Sync optimizations for changes and proposeChanges by @snej in #6190
- Produce 3.2.0 from
main
branch by @bbrks in #6753 - CBG-3852: Implementation of single sequence entry for skipped sequence slice by @gregns1 in #6747
- add manifest/3.2.xml back to product-config.json as a disabled entry. by @mhocouchbase in #6760
- CBG-3869: Fix losing user xattr on import feed for docs with no sync data by @gregns1 in #6755
- show diagnostic interface only in internal API by @torcolvin in #6745
- CBG-3721: [Diagnostic API] Import filter and sync function dry run endpoints by @mohammed-madi in #6715
- remove manifest now that 3.2 is main by @torcolvin in #6763
- 3.1.5 branch setup by @adamcfraser in #6766
- CBG-3882 add Content-Length header by @torcolvin in #6767
- CBG-3883 Restore 3.1 handling for admin_channels, admin_roles by @adamcfraser in #6768
- CBG-3703 create a basic bucket to bucket rosmar implementation by @torcolvin in #6761
- CBG-3888 make sure we can write errors to log files by @torcolvin in #6771
- Fix API version from the 3.3 -> 3.2 branch switch by @bbrks in #6778
- CBG-3844 Ensure sequence update waits for callback invocation by @adamcfraser in #6773
- Bump golang.org/x/crypto from 0.21.0 to 0.22.0 by @dependabot in #6775
- Bump golang.org/x/net from 0.22.0 to 0.24.0 by @dependabot in #6774
- Bump to latest Go - 1.22.2 by @bbrks in #6780
- CBG-3891: fix for panic in TestUnmarshalDocFromImportFeed on anemone branch by @gregns1 in #6781
- add gocb bucket feature for multi xattr subdoc operations by @torcolvin in #6779
- CBG-3835 catch error in case there is a valid json but not a JSON object by @torcolvin in #6756
- CBG-3853: Implementation of range sequence entry for skipped sequence slice by @gregns1 in #6764
- CBD-5866, advance build repo SHA by @mhocouchbase in #6783
- CBG-3768 Update only metadata during import by @adamcfraser in #6782
- CBG-3823 log warning if released unused sequence count > 1 million by @torcolvin in #6724
- CBG-3854: Integration of the skipped sequence slice into the cache by @gregns1 in #6789
- Mark minimum version of CBS 7.6.2 for XDCR by @torcolvin in #6792
- Add
SkipTestMain
utility function for clearer output by @bbrks in #6794 - [3.1.6] CBG-3907 build setup by @bbrks in #6793
- Bump github.com/felixge/fgprof from 0.9.3 to 0.9.4 by @dependabot in #6788
- CBG-3905 scope message about searching for database config by @torcolvin in #6790
- Removed GraphQL support (sob!) by @snej in #6803
- CBG-3855: Sequence range removal support by @gregns1 in #6801
- Return correct cas from WriteUpdateWithXattrs by @torcolvin in #6808
- CBG-3912 do JSON comparison using JSONEq by @torcolvin in #6811
- CBG-3915 upgrade to gocb v2.8.1 by @torcolvin in #6813
- CBG-3911 Recreate collections after tearing down databases by @torcolvin in #6809
- CBG-3914 change timeout to wait for authentication failure by @torcolvin in #6814
- CBG-3916 Use DCP feed to purge documents in viewsAndGSIBucketReadier by @adamcfraser in #6817
- Add new tests for WriteUpdateWithXattrs,WriteTombstoneWithXattrs by @torcolvin in #6816
- CBG-3913 replace parseStreamWithXattr with sg-bucket function by @torcolvin in #6812
- Skip test in CE by @torcolvin in #6823
- CBG-3920 Use IsDocNotFoundError in purgeWithDCPFeed by @adamcfraser in #6824
- Bump golang.org/x/crypto from 0.22.0 to 0.23.0 by @dependabot in #6820
- Bump golang.org/x/oauth2 from 0.18.0 to 0.20.0 by @dependabot in https://github.com/couchbase/s...
3.1.10 — Aug 2024
What's Changed
- [3.1.10 backport] CBG-4127 use a non cancellable context for OIDC metadata by @torcolvin in #7061
- [3.1.10 backport] CBG-4145 improve logging for jwts by @torcolvin in #7070
- [3.1.10 backport] CBG-4162 log the source of metadata ID by @torcolvin in #7072
- [3.1.10 backport] CBG-4107 CBG-4173 : remove database even if removeCorruptConfigIfExists fails by @torcolvin in #7060
Full Changelog: 3.1.9...3.1.10
3.1.9 — July 2024
https://docs.couchbase.com/sync-gateway/current/release-notes.html#maint-latest
What's Changed
- CBG-3983: [3.1.9 backport] sgcollect_info: Switch to runtime config endpoint to determine logFilePath by @gregns1 in #6923
- CBG-4057 Correct test asserts in TestAsyncOnlineOffline by @adamcfraser in #6928
- CBG-3966: [3.1.9 backport] fix incorrect runtime config after conflict error on collection update by @gregns1 in #6924
- CBG-4054: update 3.1.9 branch go version to 1.22.5 by @gregns1 in #6935
- CBG-3953: [3.1.9 backport] Avoid timeout on creating indexes asynchronously by @gregns1 in #6934
- CBG-4062: [3.1.9 Backport] update api docs for all_docs endpoint (#6929) by @gregns1 in #6945
- CBG-4035: [3.1.9 backport] Skipped Sequence Optimisations by @gregns1 in #6925
- [3.1.9 backport] CBG-4029 Revocation handling for deleted roles by @adamcfraser in #6958
- [3.1.9 backport] CBG-4004 Revocation handling for deleted roles by @adamcfraser in #6959
- [3.1.9 backport] CBG-4028 Treat on-demand import for GET errors as not found by @adamcfraser in #6966
- [3.1.9 backport] CBG-4016 Refresh sequence allocator before incr during nextSequenceGreaterThan by @adamcfraser in #6960
- CBG-4082 Uptake GOCBC-1640 by @adamcfraser in #6978
- [3.1.9 backport] CBG-4073: fix panic in CheckpointHash function by @adamcfraser in #6983
Full Changelog: 3.1.8...3.1.9