- [NEW] Added query support for the
$size
operator. - [FIX] Fixed issue where at least one index had to be created before a query would execute. You can now query for documents without the existence of any indexes.
- [FIX] Allow using encrypted datastores and FTS together.
- [CHANGE] Include
CloudantSyncEncryption.h
to access encryption features, in addition toCloudantSync.h
. We found the previous preprocessor approach didn't work in Swift. - [FIX] Pin SQLCipher version to one we've tested with.
- [FIX] Under some circumstances unneeded attachment blobs were not cleaned up.
- [FIX] Empty array fields we not indexed, which would cause some queries to unexpectedly fail.
- [NEW] Encryption of all data is now supported using 256-bit AES: JSON documents, Query indexes and attachments. See encryption documentation for details.
- [NEW] Added query text search support. See query documentation for details.
- [NEW] Query now supports the
$mod
operator. - [REMOVED] Legacy indexing code removed, replaced with Query. See doc/query-migration.md.
- [IMPROVED] Allow cancelling CDTFetchChanges operations.
- [FIXED] Some issues with creating remote URLs for attachments.
- [NEW] We've migrated the Cloudant Query for iOS code which used to live in the CloudantQueryObjc repository into CDTDatastore itself. Please be sure to remove references to the CloudantQueryObjc repository from your Podfiles. Including CloudantSync.h will include all necessary Cloudant Query code. See doc/query.md in this repo for documentation. We hope you enjoy using Query!
- [FIX] Both Query and the old indexing code had a bug where resolved conflicts could cause documents not to be indexed. This is now fixed.
- [PREVIEW] CloudKit-inspired changes fetcher, see commit 65fa9a63281c1fa4063f64e1df9dfe5b8d69384d or CDTFetchChanges.h.
- [FIX] Previously, we overwrote the
winner
field of CDT-notification emitted on datastore changes when translating from TouchDB's event. We now copy over thesource
field correctly to the new notification. - [NOTE] Bump CocoaLumberjack to 2.0.0
- [FIX] Accept CouchDB 2.0 and Cloudant Local's array-based sequence numbers.
- [FIX] Writing final remote checkpoint document during replication.
- [NEW] CDTDatastoreManager has an -allDatastores which returns the names of all the datastores in the folder it's manges.
- [NEW] Reading the _changes feed now uses NSURLConnection rather than CFNetworking calls. This hopefully starts to map our way forward to NSURLSession.
- [FIX] Passwords are now obscured in log messages during replication.
- [FIX] The behavior and documentation regarding the CDTReplicator's fire-and-forget it have been updated. At the moment, CDTReplicator is not fire-and-forget. Strong references to CDTReplicators must be retained in order for replication to complete. Premature deallocation will stop replication and call it's delegate's -replicatorDidError method. See the example application for details on using the CDTReplicator.
- [FIX] A crash during push replication if the local database disappears.
- [NOTE] CocoaLumberjack is bumped to 2.0.0-rc
- [FIX] Using CDTChangeLogLevel now sets log levels across the library correctly.
- [FIX] Calling -mutableCopy on CDTMutableDocumentRevision objects now works.
- [NEW] CDTDatastore gains a -compact function, run this to remove old revision content and attachments.
- [CHANGE] Each replication runs its own thread, rather than running all replications on a single thread. This removes the -start method from CDTReplicatorFactory: the class is now purely a factory for replicator objects.
- [FIX] Logging macros and constants now have a CDT-prefix to avoid naming collisions.
- [FIX] Incompatibility with CocoaLumberjack 2.0.0-beta4. Also pin to beta4.
- [FIX] Downloading attachments from HTTP endpoints in CDTSavedHTTPAttachment, where only the first one in a run of the app would be downloaded.
The following were actually released but not documented in the 0.10.1 release, overlooked in getting out a release to fix builds:
- [NEW] Allow setting custom HTTP headers for replications. Use the
CDTAbstractReplication's
optionalHeaders
property to add headers. See the help note for headers which can't be set (because the library overwrites them). - [FIX] Some build issues created in an attempt to have the library version defined in a single place.
- Pin CocoaLumberjack to 2.0.0-beta3 as our logging macros depend on deprecated macros. This should fix builds for anyone running pod install/update.
- [CHANGE] Index updates are deferred until query time. This avoids excessive indexing load during replication.
- [NEW] Logging now uses Cocoa Lumberjack.
- [FIX] Pushing resurrected documents.
- [FIX] Ensure replication callbacks are called.
- [FIX] Significant improvements to replication state machine management.
- [FIX] Issues building example app with newer cocoapods versions.
- [FIX] CDTReplicator object getting deallocated during callback to itself.
- [FIX] Fix indexes not updating correctly when using new CRUD API, introduced in 0.7.0.
- [NEW] Allow using NSPredicates when querying for documents.
- [NEW] Use CDTMutableDocumentRevision during conflict resolution (breaking change).
- [NEW] Removal of deprecated APIs. See doc/api-migration.md for the list of remove APIs and how to migrate away from them.
- [FIX] Several fixes to how CDTReplicator reports state changes.
- NEW CRUD and Attachments API. See doc/crud.md for docs on both CRUD and attachments, along with a cookbook on using the new API.
- DEPRECATED Existing attachments and CRUD APIs. These will be removed before 1.0.
- When a replication fails, the error message is properly propagated through the error callback on a CDTReplicator object.
- NEW Conflicts API, a developer can resolve a conflicted document by selecting one of the conflicts as the winner.
- NEW Filtered pull and push replication.
- NEW Datastores can now be deleted through the API.
- BETA Attachments support (see CDTDatastore+Attachments.h). The API for this is still in flux, right now you can't modify attachment content and JSON content at the same time.
- CHANGE Indexes now stay up to date as the datastore is modifed.
- CHANGE CDTDocumentBody objects can no longer be passed underscore prefixed fields, for example _id. They were inconsistently used, so ripe to cause bugs in applications.
- MISC Add example of how to use indexing and query to the sample application.
- MISC _replicator database removed for managing attachments. Should be transparent to users of CDTReplicator classes.
- FIX Replicating attachments with revpos > doc generation.
- FIX Recover from a certain subset of HTTP 412 errors when replicating.
- CHANGE Deleting a document now returns the new revision.
- FIX The rare queries that return deleted documents no longer crash an application.
- FIX Replicating a database with documents containing attachments no longer causes a crash. (No API for accessing attachments yet).
- FIX Executing a -compact works (update for newer FMDB API).
- FIX Make sure all accesses to CDTDatastore's internal TD_Database property cause the underlying database to be opened correctly.
- FIX Break out extensions directory into one per database. This will mean existing extensions (i.e., indexes) need to recreate their data.
- FIX Example application can now log replication success without crashing.
- Add ReplicationAcceptance project.
Initial release.