Age | Commit message (Collapse) | Author |
|
Both deferred encryption and decryption rely on a special sync db. Previous to
this fix, the sync db was only initialized if a syncer was configured with
deferred encryption capabilities. This was a problem when the syncer was not
configured like so, but the actual sync method was initiated configured to do
deferred decryption.
This commit fixes this by always initializing the sync db, so we have the
option of doing all combinations of deferred encryption and decryption.
|
|
soledad-common versions before 0.6.5 do not contain the fix for #6833 and thus
will not work with most recent server. That is why we have to bump this
soledad-server dependency on soledad.common.
|
|
|
|
The database initialization on the client sync module is deferred to another
thread. As there is only one thread in the thread pool, this should not be a
problem for now, as operations will actually be queued in that thread. There
was some old code left from when we had to explicitelly wait for the db to be
initialize before using it. This commit removes that old code and introduces
some documentation so we remember to deal with deferred db init if we ever
change the number of threads in the thread pool.
|
|
|
|
Conversion of Twisted failures to string that rely on __str__ or __repr__
might not return all the information we would like to have, especially on sync
failures. This commit asks for a detailed traceback of such failures and logs
them both in Twisted and client logs.
|
|
This commit makes 2 changes that allow sync failures to raise exceptions that
can be caught by the api:
1. Remove try/except statements in sync.py level that would prevent an
exception to be caught by the soledad client api.
2. Ensure that if an asynchronous decrypting process fails the exception
will be re-raised to eventually reach the api.
Related: #6757.
|
|
With new soledad async api, we need to catch errors using errbacks instead of
catching exceptions explicitelly. This commit fixed the api sync() call to
intercept sync failures, log them, and do not propagate them down the callback
chain.
|
|
|
|
This commit removes some leftover code from a time when Soledad Server used to
check for permissions on certain databases when starting (i.e. shared and
tokens databases). This was later removed as correct permissions enforcement
was relayed to tapicero.
Closes: #6833.
|
|
With changes in soledad client api to make it async, the supporting scripts
also have to be updated. This commit also adds more functionalities as
exporting incoming mail and public or private keys.
|
|
because in OCD we trust.
|
|
In the past, we wanted dependency on leap.common to be optional, but now
because of the explicit use of the config path prefix and signaling, we want
to enforce dependency on leap.common.
|
|
Previous to this modification, leap.soledad.common.tests.u1db_tests was being
installed and its files were being included in the debian package. By
excluding *.tests and *.tests.* from find_packages() in setup.py, we make sure
that no test file will be installed not included in the final debian package.
|
|
Add dependency on twisted for Soledad Client. Also remove minimum twisted
version for Soledad Server because debian stable currently distributes 12.0.0
and pypi currently distributes 15.0.0.
Closes: #6797
|
|
Any solead release that includes this commit will be incompatible with LEAP
Platform < 0.6.1 because only from that version on the platform implements the
ephemeral monthly tokens databases.
Closes: #6785.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Fix arg passing to syncing failure method.
* Do not try to start sync loop which should be already running.
* Adapt to removal of old multiprocessing safe db, now accesses the
sqlcipher database directly.
|
|
* Add copy of SQLCipherOptions object to avoid modifying the options object
in place when instantiating the sync db.
* Add string representation of SQLCipherOptions for easiness of debugging.
* Make sync db always "ready".
* Fix passing options for sync db initialization.
* Fix typ0 that made SQLCipherU1DBSync._sync_loop be a tuple.
* Do not defer requests for stopping sync to a thread pool.
* Do not make pysqlcipher check if object is using in distinct threads.
* Reset the sync loop when stopping the syncer.
* Fix docstrings.
* Check for _db_handle attribute when closing the database.
|
|
* Remove check for HTTPS address.
* Remove creation of shared database.
* Fix docstrings.
|
|
* Adapt to removal of the old multiprocessing safe database, by directly
querying the sync database.
* Fix docstrings.
|
|
* Get replica uid upon U1DBConnectionPool initialization.
* Fix docstrings.
|
|
* Allow passing shared_db to Soledad constructor.
* Close syncers on Soledad close.
* Fix docstrings.
|
|
|
|
|
|
|
|
|
|
|
|
after drebs review
|
|
|
|
|
|
* Completed mapping of async dbpool
* Fixed shared db initialization.
Stuff To Be Fixed yet:
[ ] All inserts have to be done from the sync threadpool.
Right now we're reusing the connection from multiple
threads in the syncer. I'm assuming the writes are automatically
locking the file at the sqlite level, so this shouldn't pose a
problem.
[ ] Correctly handle the multiprocessing pool, and the callback
execution.
|
|
|
|
* Separate local storage, syncers and shared_db
* Comment out unused need_sync method
* Use twisted LoopingCall
* Create a threadpool for syncs
* Return deferred from sync method
* Do not pass crypto to SQLCipherDatabase
* Pass replica_uid to u1db_syncer
* Rename / reorganize some initialization methods
|
|
* add examples and benchmarks
* remove autocommit mode, allow wal disabling
* lock initialization
* make api use async calls
|
|
|
|
|
|
|
|
|
|
|