Changelog ========= 0.10.8 - `master`_ ------------------- .. note:: This version is not yet released and is under active development. 0.10.7 - Tue 3 Jul, 2018 ------------------------- Misc ~~~~ - Fix errors in setup.py avoiding the package from being uploaded to pypi - Fix author in debian changelog 0.10.6 - Fri 29 Jun, 2018 ------------------------- Server ~~~~~~ - [feature] Improvements to the Blobs Filesystem backend Client ~~~~~~ - [feature] Add bandwidth throttling to the blobs client - [docs] Clarify offline use for tests 0.10.5 - Wed 22 Nov, 2017 ------------------------------- Server ~~~~~~ - [feature] add the SOLEDAD_COUCH_URL environment variable on server side - [bug] properly shutdown server if startup checks fail - [bug] fix and improve logging of server startup checks 0.10.4 - Wed 15 Nov, 2017 ------------------------------- Server ~~~~~~ - [feature] improve server entrypoint (several refactors and introduction of binary in debian package) - [feature] improve speed of server startup - [bug] wait for couch schema, configuration and environment checks before running servers. - [bug] debian package now reports the correct version - [pkg] improve user db creation script (fixes and man page) - [bug] limit concurrent blob writes in server Client ~~~~~~ - [feature] support unsynced local only blobs - [feature] add/fix blob deletion - [feature] add and control concurrency of blobs local and remote operations - [feature] add retries for blob transfers - [bug] fixes in blob download/upload pipeline - [bug] improve resilience of blobs concurrent access to sqlcipher - [bug] fix blobs preamble flakiness - [refactor] split blobs backend in many modules Misc ~~~~ - [doc] many documentation improvements - [doc] documentation was mirrored in https://leap.se/en/docs/design/soledad - [benchmarks] add server scalability tests - [benchmarks] add outlier detection - [test] add e2e test for incoming mail pipeline - [pkg] Add packages for debian buster. - [pkg] deb: Make soledad-client depend on soledad-common 0.10.3 - Mon 11 Sep, 2017 ---------------------------------- Server ~~~~~~ - [feat] Finished adding support for Incoming API - [feat] Get config file name from environment variable. - [bug] Add DELETE method to url mapper. - [bug] Use correct keyword argument for server state initialization. - `#8924 `_: [bug] FileBodyProducer consumer usage wasn't closing the file Client ~~~~~~ - [feat] Add columns for sync state of blobs inside sqlcipher - [bug] Several bugfixes for BlobManager initialization. - [bug] Fix usage of StringIO class in gzip middleware. - `#8924 `_: [bug] FileBodyProducer consumer usage wasn't closing the file Misc ~~~~ - Use latest version of pytest-benchmark. - Find correct twistd when outside tox envs - Build packages for zesty and stretch. - Add benchmark comparing legacy vs blobs sync. - Add reactor responsiveness tests. 0.10.2 - Mon 21 Aug, 2017 ---------------------------------- Server ~~~~~~ - Enforce namespace to default on server - Add path partitioning to namespaces Client ~~~~~~ - Add namespace to local blobs db table - Track namespace information on blobs client 0.10.1 - Mon 07 Aug, 2017 --------------------------------- Server ~~~~~~ - Fixes IncomingBox missing preamble separator (space) which causes client to fail parsing. Client ~~~~~~ - Adds IncomingBoxProcessLoop and implement the process flow for IncominBox specification. - Adds IIncomingBoxConsumer interface, which can be used by Soledad apps to implement consumers for IncomingBox feature. 0.10.0 - 18 July, 2017 ------------------------------- Server ~~~~~~ - Add an incoming API for email delivery. In the future, this may be used by external applications for message delivery. - Add namespace capability. - List incoming blobs in chronological order. - Finish minimal filesystem backend for blobs. - Update BlobManager to support new server features, such as: namespaces, incoming and listing. - Make the backend configurable for incoming API, so it can use CouchDB now and Blobs later. Client ~~~~~~ - Use OpenSSL backend for scrypt if OpenSSL >= 1.1 Misc ~~~~ - Refactor preamble to account for PGP encryption scheme - Removes scrypt dependency - Unification of Client, Server and Common in a Single python package. - Build soledad debian package with git-buildpackage. - Document deprecation policy. - Documentation is automatically uploaded to: https://soledad.readthedocs.io/ - Launch benchmarks website: https://benchmarks.leap.se/ 0.9.6 - 31 May, 2017 ------------------------------- Server ~~~~~~ - Minimal Filesystem BlobsBackend implementation, disabled by default. Client ~~~~~~ - Minimal Blobs manager implementation - Blobs API - Ability to generate recovery code. - Fix deprecated multibackend call (cryptography). Misc ~~~~~~ - Post benchmark results to elasticsearch - Build docker image and push it to registry every time the dockerfile used for tests is changed - Fix flaky tests - Cleanup old documentation. - Added dependency on treq. - Improve cpu/memory profiling. - Bumped version to upload wheels to pypi, to workaround for dbschema.sql not found after installation in virtualenv. 0.9.5 - 17 March, 2017 ------------------------------- Server ~~~~~~ - Make database creation appear in logs Client ~~~~~~ - `#8721 `_: Remove offline flag - Fix raising of invalid auth token error - Add default version when decrypting secrets - Secrets version defaults to v1 Misc ~~~~ - First steps porting soledad to python3 0.9.3 - 06 March, 2017 ------------------------------- Server ~~~~~~ - Refactor authentication code to use twisted credential system. - Announce server blobs capabilities - `#8764 `_: Allow unauthenticated users to retrieve the capabilties banner. - `#6178 `_: Add robots.txt - #8762: Add a systemd service file - Add script to deploy from git Client ~~~~~~~~ - `#8758 `_: Add blob size to the crypto preamble - Improve secrets generation and storage code - Add offline status to soledad client api. - Remove syncable property Misc ~~~~ - Improvements in performance benchmarks. 0.9.2 - 22 December, 2016 ------------------------- Performance improvements ~~~~~~~~~~~~~~~~~~~~~~~~ - use AES 256 GCM mode instead of CTR-HMAC. - streaming encryption/decryption and data transfer. Server ~~~~~~ - move server to a twisted resource entrypoint. Client ~~~~~~ - use twisted http agent in the client. - maintain backwards compatibility with old crypto scheme (AES 256 CTR-HMAC). No migration for now, only in 0.10. - remove the encryption/decryption pools, replace for inline streaming crypto. - use sqlcipher transactions on sync. 0.9.1 - 27 November, 2016 ------------------------- Server side bug fixes ~~~~~~~~~~~~~~~~~~~~~ - fix import on create-user-db script - patch twisted logger so it works with twistd --syslog - delay couch state initialization - improve missing couch config doc error logging - separate server application into another file 0.9.0 - 11 November, 2016 ------------------------- Main features ~~~~~~~~~~~~~ - Server-side changes in couch backend schema. - Use of tox and pytest to run tests. - Performance tests. Server ~~~~~~ *** Attention: Migration needed! *** This version of soledad uses a different database schema in the server couch backend. The difference from the old schema is that the use of design documents for storing and accessing soledad db metadata was removed because incurred in too much memory and time overhead for passing data to the javascript interpreter. Because of that, you need to run a migration script on your database. Check the `scripts/migration/0.9.0/` diretctory for instructions on how to run the migration script on your database. Don't forget to backup before running the script! Bugfixes ~~~~~~~~ - Fix order of multipart serialization when writing to couch. Features ~~~~~~~~ - Log to syslog. - Remove usage of design documents in couch backend. - Use _local couch docs for metadata storage. - Other small improvements in couch backend. 0.8.1 - 14 July, 2016 --------------------- Client ~~~~~~ Features ++++++++ - Add recovery document format version for future migrations. - Use DeferredLock instead of its locking cousin. - Use DeferredSemaphore instead of its locking cousin. Bugfixes ++++++++ - `#8180 `_: Initialize OpenSSL context just once. - Remove document content conversion to unicode. Users of API are responsible for only passing valid JSON to Soledad for storage. Misc ++++ - Add ability to get information about sync phases for profiling purposes. - Add script for setting up develop environment. - Refactor bootstrap to remove shared db lock. - Removed multiprocessing from encdecpool with some extra refactoring. - Remove user_id argument from Soledad init. Common ~~~~~~ Features ++++++++ - Embed l2db, forking u1db. Misc ++++ - Toxify tests. 0.8.0 - 18 Apr, 2016 -------------------- Client ~~~~~~ Features ++++++++ - `#7656 `_: Emit multi-user aware events. - Client will now send documents at a limited size batch due to changes on SyncTarget. The default limit is 500kB. Disabled by default. Bugfixes ++++++++ - `#7503 `_: Do not signal sync completion if sync failed. - Handle missing design doc at GET (get_sync_info). Soledad server can handle this during sync. Misc ++++ - `#7195 `_: Use cryptography instead of pycryptopp. Known Issues ++++++++++++ - Upload phase of client syncs is still quite slow. Enabling size limited batching can help, but you have to make sure that your server is compatible. Server ~~~~~~ Features ++++++++ - General performance improvements. - `#7509 `_: Moves config directory from /etc/leap to /etc/soledad. - Adds a new config parameter 'create_cmd', which allows sysadmin to specify which command will create a database. That command was added in pkg/create-user-db and debian package automates steps needed for sudo access. - Read netrc path from configuration file for create-user-db command. - 'create-user-db' script now can be configured from soledad-server.conf when generating the user's security document. - Migrating a user's database to newest design documents is now possible by using a parameter '--migrate-all' on 'create-user-db' script. - Remove tsafe monkeypatch from SSL lib, as it was needed for Twisted <12 - Added two methods to start and finish a batch on backend. They can be used to change database behaviour, allowing batch operations to be optimized. Common ~~~~~~ Features ++++++++ - Add a sanitized command executor for database creation and re-enable user database creation on CouchServerState via command line. Bugfixes ++++++++ - `#7626 `_: Subclass a leaky leap.common.couch exception to avoid depending on couch. .. _`master`: https://0xacab.org/leap/soledad