What's new in Couchbase Lite 1.3.1-8
Sep 13, 2016
- Performance Improvements:
- #1379 ForestDB update_seq on view query less than db's update_seq
- Enhancements:
- #1400 Support for _oidc_refresh response without ID token
- Bugs:
- #1369 PSWebSocket crash iOS 10
- #1379 ForestDB update_seq on view query less than db's update_seq
- #1387 TvOS Unit Test Build has a lot of warnings
- #1392 When OIDC Refresh token failed, there is no replication change notification sent.
- #1403 CBLSocketChangeTracker endless loop of JSON Parsing Errors
- #1406 Encryption is a no-op with the system libsqlite3 on macOS 12
New in Couchbase Lite 1.3.0 (Jul 15, 2016)
- Noteworthy changes:
- Support for OpenID Connect authentication, so you can log into Sync Gateway using a 3rd-party identity like a Google or Yahoo ID.
- Timed expiration of documents can help keep your database from growing indefinitely.
- Better performance with docs that have many revisions. Replication is faster, and older revisions are now automatically cleaned up in SQLite storage.
- Optimized redisplay of UITableViews when using CBLUITableController.
- Clearer error messages and better logging.
- And of course many smaller optimizations, and lots of bug fixes.
- Performance Improvements:
- #1114 LiveQuery shouldn't re-run query if view index didn't change
- #1150 Optimize & animate CBLUITableController by using the Levenshtein algorithm
- #1165 Incrementally purge oldest revisions in SQLite databases
- #1242 Fix inefficiencies replicating docs with many revisions
- #1340 Optimized multipart download performance
- Enhancements:
- #394 Start using NSURLSession in the replicator
- #984 Comparing CBLQuery objects
- #1100 External property on kCBLDatabaseChangeNotification when CBL is remote
- #1107 Logging overhaul
- #1117 Redact passwords/tokens in URLs in log messages
- #1118 API: Public method for inserting existing revisions (putExistingRevisionWithProperties:...)
- #1148 API: Make -[View updateIndex] public; add async version
- #1150 Optimize & animate CBLUITableController by using the Levenshtein algorithm
- #1165 Incrementally purge oldest revisions in SQLite databases
- #1181 API: Document expiration time (TTL)
- #1201 Replicator should immediately fail if URL path is invalid
- #1245 Expose server error messages in NSErrors from public API
- #1266 OpenID Connect authenticator
- #1271 Disable App Transport Security on Mac OSX LiteServ
- #1291 Allow configuring revs_limit in LiteServ
- #1334 Scope cookie storage by database, not by replication
- Bugs:
- #641 Enumerate sequence in descending order in CBForest not working
- #966 CBLIS : Data loss
- #1005 Replication fails without starting on wifi if network depends on a proxy
- #1015 Crash when [CBLRemoteRequest connection:didFailWithError:]
- #1045 POST _bulk_docs does not support HTTPBodyStream
- #1071 [Testfest] Items not showing up in offline mode
- #1085 CBLIS : NSIncrementalStore accessed by multiple context dispatch queues
- #1095 Obsolete rows left in view index when documentType is used (1.1.1)
- #1106 CBLListener readOnly property prevents pulls from updating the database
- #1120 Warn if map function calls emit(nil, ...)
- #1124 Multipart Uploader cannot upload the attachment when using basic auth
- #1128 Crash pushing docs with non-downloaded attachments
- #1129 CBLIS: NSSet was mutated while being enumerated.
- #1131 CBLVersion() incorrectly returns "(unofficial)" in official releases
- #1132 CBLReplicator.isDocumentPending is inaccurate when replicator is offline
- #1138 Continuous puller with WebSocket not responding with 401 error when changing password
- #1139 ChangeTracker POST request are incompatible with CouchDB
- #1143 Swift API glitches
- #1152 CBLRestReplicator does not properly end bgTask when app is foregrounded
- #1163 Fixed macOS 10.10 dependency & updated deployment version to 10.9
- #1180 Doc can be saved with missing attachment file, leading to errors
- #1188 CBForest bad memory access while purging doc
- #1191 Liteserv crashes with Forestdb option when creating local docs after delete operation
- #1192 Manual compaction returns error if auto-compact is already running
- #1200 Replication rejects attachments generated by PouchDB with revpos:0
- #1216 REST API: POST /_replicate can start/stop once, but not restart?
- #1228 One-shot push from empty db never stops
- #1233 Failure to encrypt SQLite database when using WAL journaling
- #1260 Inconsistent response when no conflicts are present and ?conflicts=true
- #1263 Incorrect "error" property in REST response for GET of deleted doc
- #1274 PendingDocumentIDs is incorrect
- #1279 Don't stop replicator if one doc gets an error
- #1292 _replicate between 2 dbs on same LiteServ fails
- #1323 Cannot push encrypted attachments when testing with ToDoLite
- #1325 LiteServ crash when delete dbs asyncronously
- #1327 Archive build is missing symbols in iOS frameworks
- #1335 Database upgrades from 1.1 not copying "content_type" of attachments
- #1348 OIDC tokens in Keychain should be per-database
New in Couchbase Lite 1.3.0 Pre (Jul 6, 2016)
- Noteworthy changes:
- Support for OpenID Connect authentication, so you can log into Sync Gateway using a 3rd-party identity like a Google or Yahoo ID.
- Timed expiration of documents can help keep your database from growing indefinitely.
- Better performance with docs that have many revisions. Replication is faster, and older revisions are now automatically cleaned up in SQLite storage.
- Optimized redisplay of UITableViews when using CBLUITableController.
- Clearer error messages and better logging.
- And of course many smaller optimizations, and lots of bug fixes.
- Performance Improvements:
- #1114 LiveQuery shouldn't re-run query if view index didn't change
- #1150 Optimize & animate CBLUITableController by using the Levenshtein algorithm
- #1165 Incrementally purge oldest revisions in SQLite databases
- #1242 Fix inefficiencies replicating docs with many revisions
- #1340 Optimized multipart download performance
- Enhancements:
- #394 Start using NSURLSession in the replicator
- #984 Comparing CBLQuery objects
- #1100 External property on kCBLDatabaseChangeNotification when CBL is remote
- #1107 Logging overhaul
- #1117 Redact passwords/tokens in URLs in log messages
- #1118 API: Public method for inserting existing revisions (putExistingRevisionWithProperties:...)
- #1148 API: Make -[View updateIndex] public; add async version
- #1150 Optimize & animate CBLUITableController by using the Levenshtein algorithm
- #1165 Incrementally purge oldest revisions in SQLite databases
- #1181 API: Document expiration time (TTL)
- #1201 Replicator should immediately fail if URL path is invalid
- #1245 Expose server error messages in NSErrors from public API
- #1266 OpenID Connect authenticator
- #1271 Disable App Transport Security on Mac OSX LiteServ
- #1291 Allow configuring revs_limit in LiteServ
- Bugs:
- #641 Enumerate sequence in descending order in CBForest not working
- #966 CBLIS : Data loss
- #1005 Replication fails without starting on wifi if network depends on a proxy
- #1015 Crash when [CBLRemoteRequest connection:didFailWithError:]
- #1045 POST _bulk_docs does not support HTTPBodyStream
- #1071 [Testfest] Items not showing up in offline mode
- #1085 CBLIS : NSIncrementalStore accessed by multiple context dispatch queues
- #1095 Obsolete rows left in view index when documentType is used (1.1.1)
- #1106 CBLListener readOnly property prevents pulls from updating the database
- #1120 Warn if map function calls emit(nil, ...)
- #1124 Multipart Uploader cannot upload the attachment when using basic auth
- #1128 Crash pushing docs with non-downloaded attachments
- #1129 CBLIS: NSSet was mutated while being enumerated.
- #1131 CBLVersion() incorrectly returns "(unofficial)" in official releases
- #1132 CBLReplicator.isDocumentPending is inaccurate when replicator is offline
- #1138 Continuous puller with WebSocket not responding with 401 error when changing password
- #1139 ChangeTracker POST request are incompatible with CouchDB
- #1143 Swift API glitches
- #1152 CBLRestReplicator does not properly end bgTask when app is foregrounded
- #1163 Fixed macOS 10.10 dependency & updated deployment version to 10.9
- #1188 CBForest bad memory access while purging doc
- #1192 Manual compaction returns error if auto-compact is already running
- #1200 Replication rejects attachments generated by PouchDB with revpos:0
- #1216 REST API: POST /_replicate can start/stop once, but not restart?
- #1228 One-shot push from empty db never stops
- #1260 Inconsistent response when no conflicts are present and ?conflicts=true
- #1263 Incorrect "error" property in REST response for GET of deleted doc
- #1279 Don't stop replicator if one doc gets an error
- #1292 _replicate between 2 dbs on same LiteServ fails
- #1323 Cannot push encrypted attachments when testing with ToDoLite
- #1327 Archive build is missing symbols in iOS frameworks
- #1335 Database upgrades from 1.1 not copying "content_type" of attachments
New in Couchbase Lite 1.1.0 (Jun 22, 2015)
- New features and enhancements including:
- Pluggable storage engines. Couchbase Lite can now support multiple data persistance libraries. By default, it will continue to use SQLite.
- [Experimental] Our new, super-fast ForestDB storage engine! Anyone who wants a preview of our future default storage engine can get started today by following these instructions for enabling the ForestDB storage engine.
- Page-level database encryption via SQLCipher.
- You can now query your database using NSPredicates thanks to CBLQueryBuilder, which provides an alternative to using map/reduce functions.
- Our newly overhauled Core Data adapter, CBLIncrementalStore. Add sync to your Core Data applications by using Couchbase Lite as your backing store.
- Improved replication and view indexing performance. Views are now stored more efficiently, which speeds up document indexing by roughly 10%.
- Features and Improvements:
- #684 iOS 8.2+ seems slower than 8.1 or lesser
- #677 Test performance improvement replicating docs with large revision trees
- #606 Inverse relation support for CBLModel
- #605 CBLIncrementalStore - Support query via abstract entity
- #571 Use CBLQueryBuilder in CBLIncrementalStore
- #569 Support to-many without inverse relationship in CBLIncrementalStore
- #526 Implement isStoredInExternalRecord support in CBLIncrementalStore
- #514 Support feed=eventsource in _changes feed
- #439 Support for encoding / decoding NSURL instances as properties of a CBLModel
- #358 userProperties method on CBLModel.
- #316 Can CBLModel define the "type" @property instead of making a subclass have to implement it?
- Bug fixes:
- #723 CBL 1.1 (iOS) Docs not syncing when I think they should
- #718 Crash when create a document with attachment in one single revision
- #712 CBLView updateIndex isn't public, but is in the API spec
- #711 Potential database upgrade error
- #709 CBLQuery fullTextRanking and fullTextSnippet properties were removed
- #705 ForestDB native lib missing dev preview package
- #701 Couchbase lite iOS memory consumption indexing views
- #700 ForestDB fails in 32-bit OS due to bug in get_memory_size fn
- #696 Start-restart replication problem in CBL 1.1.0
- #691 Thread-safety issue in CBLReplication cookie methods
- #687 Cannot get the database schema version while replace/upgrade a database
- #684 iOS 8.2+ seems slower than 8.1 or lesser
- #672 Pulled docs with a stub attachment failed to insert
- #665 Multipart streams cannot be reopened when retrying to send the request
- #662 ForestDB: fullTextSearch emmits wrong values
- #608 Pull replication missing documents from SG channel
- #592 CBL 1.0.4 - Rare/minor dealloc issue
- #578 View not indexing older revisions
- #576 New object notification not generated when using CBLIncrementalStore
- #574 Query with limit and postFilter may not return enough rows
- #566 save and lockForWriting issues
- #543 Replicators should have independent cookie storage
- #495 forestdb::RevTree:compact() causing crash
- #479 ForestDB: Emitting dictionary key causes error
- #390 Sync problem with Cloudant databases - puller or change tracker?
New in Couchbase Lite 1.0.4-2 (Apr 21, 2015)
- Features and Improvements:
- Limit puller memory use, by throttling ChangeTracker (090a279)
- Added CBL_Replicator option to pin to a specific SSL cert (2ac3a00)
- API: Added CBLReplication.serverCertificate (bd28768)
- Propagate changes in CBLJSONEncoding array to its parent model (658f622)
- Support log() function for JS map functions (3aa03f9)
- Return a Bonjour (.local) hostname instead of a raw IPv4 address when calling the CBLListener's URL method (4e930bf)
- Support for easily using an anonymous SSL identity in CBLListener (1db5f65)
- Bug fixes:
- Fix a crash found in CBLBatcher (18fa9e2)
- Fix WebSocket connecting to a wrong port when the HTTPS URL had no port number specified (1ccd928)
- Fix replicator overriding the cookies set in the request headers added to a replicator (1e0dc7f)
- Fix CBLJSONEncoding array not propagate changes to its parent model (658f622)
- Fix crash in CBLModel when setOnMutate is not defined in CBLJSONEncoding submodel (dd90db0)
- Fix failures when adding revisions to resolve conflicts (7b3fca5)
New in Couchbase Lite 1.0.3 (Nov 6, 2014)
- Unit tests: make certain databases are closed at end of each test
- CBJSONEncoder: Use 6 decimal places, not 16, for 32-bit floats
- API: Added CBLLiveQuery.updateInterval
- Improvements to runloop task scheduling & live queries
- Fixed insertion-speed regression with SQLite 3.8 (i.e. Yosemite)
- Fixed a typo in a doc-comment in CBLReplication.
- CBLJSViewCompiler target no longer links static JavaScriptCore framework
- Don't convert CoreData relation names to lowercase
- Tweaked LiveQuery unit test to avoid occasional timing-based failures
- Remove unused-but-confusing duplicate GCDAsyncSocket.m from project
- Change SSL settings to TLSv1, to avoid SSLv3 POODLE vulnerability
- Add link to CRM demo app
- Unit tests: More assertions around closing temp dbs
- Router: Fixed a hang handling DELETE /db
- Add a test to verify if the puller works correctly with DB Validation
- Rework error status when no matched selectors in CBLRouter
- Merge pull request #501 from couchbase/feature/issue_499
- When indexing a view group, skip views with no map block registered yet
- CBL_Shared fixes
- Restore the "no map block registered" assertion when it makes sense
- FMDB: Fixed locking calls to avoid a deadlock
- Add CreateIdenticalParentContentRevisions Test and reorganize conflic
- Added a constant for the "websocket" replicator option key
- Limit puller memory use, by throttling ChangeTracker
- Oops: Added an #import to fix iOS build break
- Renamed classes and ext. vars to avoid collisions.
- Speculative but harmless fix for crash in CBLBatcher
- Merge pull request #507 from olivierpascal/bug/issue_506
- Fixed: WebSocket connecting to wrong port if HTTPS URL had no port nu
- Workaround + speculative fix for messed-up db revision tree
- Fix conflict between function and class name in Swift
- Merge pull request #513 from couchbase/feature/issue_512
New in Couchbase Lite 1.0.1 (Sep 5, 2014)
- Fixed: Database-change notifications weren’t delivered on dispatch queues