Age | Commit message (Collapse) | Author |
|
|
|
The number of threads in the blobs databae thread pool can't be smaller
than the number of attemps to write concurrently to the database,
otherwise different kinds of concurrency problems may arise. By setting
the minimum and maximum number of threads to the same number, we make
sure there will always be that number of available threads for
interaction with the blobs db.
|
|
|
|
|
|
If the number of threads on the connection pool is small and the local
blobs db is stressed, different concurrent access problems may arise.
|
|
|
|
|
|
This value was hardcoded on client, but it's assumed to be default by
the server and there is no need for it to be hardcoded.
-- Resolves: #8882
|
|
A reported bug on namespace feature was that we couldn't delete a
namespaced blob after a cold start, since the client wasn't able to
check which namespace it belongs.
This commits completes the tracking of namespace over client site code,
making it possible to query and store namespce information on disk,
through sqlcipher.
-- Resolves: #8882
|
|
This column will keep track of namespace locally.
-- Related: #8882
|
|
|
|
|
|
|
|
Adds a IncomingBox implementation that can be used by the incoming loop
to interact with the server. Includes end to end test from message
creation on Incoming API to callback consumer.
-- Related: #8914
|
|
|
|
|
|
|
|
This class implements a process flow between the ones defined at #8881
and #8874. It uses a LoopingCall to keep running in a loop and accepts
IIncomingBoxConsumers defined by soledad users, such as leap mail.
- Resolves: #8874
|
|
This interface is intended to be used by Soledad users in order to
implement consumers for IncomingBox feature. This happens by declaring
how to process and save a incoming item, optionally decrypting if
Soledad isn't able to decrypt it (planned feature for asymmetric
encryption).
-- Resolves: #8875
|
|
Improves error handling, add missing header to __init__.py and remove
mkdirs from flags methods. This is a commit from code review on !117.
|
|
|
|
Using a parameter, just like the other methods are doing.
-- Resolves: #8873
|
|
IncomingBox spec has a flags feature for the processing flow of
messages. This commit adds it using a .flags file.
-- Resolves: #8869
|
|
Refactor suggested from !105 review.
|
|
|
|
- Resolves: #8839
|
|
'namespace' argument is supported by backend but not yet exposed on API
for clients. Since IncomingBox makes heavy usage of it, this commit
exposes the argument as a query string for clients to use it.
|
|
Listing by date is useful for listing newest/oldest documents on blobs
storage and should be used for listing new IncomingMessages as described
on specification.
-- Resolves: #8879
|
|
|
|
This move allows server to use it on #8868 as described in #8890
-- Relates: #8890
|
|
Extracted preamble code for making space to #8890 changes.
-- Related: #8890
|
|
|
|
there is a combination that was failing, with a recent-enough version of
cryptography coming from jessie-backports (>1.0), but still being linked
to openssl 1.0 which does not have a usable scrypt backend.
with this commit we fallback on doing scrypt using python's scrypt
package.
|
|
|
|
|
|
leap.common 0.6.0 renamed this method.
we should think about not using the factory directly, since we want to
deprecate leap.common.http
|
|
This needs OpenSSL >= 1.1, otherwise it will keep using the scrypt
dependency.
We should think about deprecating scrypt as a dependency when we can be
sure that the adoption of libssl 1.1 is wide enough. I think that at
some point (soledad 0.11 or so) we can drop the scrypt dependency, which
was being somehow problematic at times (the _scrypt.so was not appearing
when installing with pip, needed workarounds). From that moment on, we
can raise an error if an old libssl is found and no scrypt can be
imported - leaving that to the user/packager.
In debian stretch and afterwards, you can get that version by installing
libssl-dev
- Related: #8472
|
|
|
|
|
|
|
|
We have been discussing about this merge for a while.
Its main goal is to simplify things: code navigation, but also
packaging.
The rationale is that the code is more cohesive in this way, and there's
only one source package to install.
Dependencies that are only for the server or the client will not be
installed by default, and they are expected to be provided by the
environment. There are setuptools extras defined for the client and the
server.
Debianization is still expected to split the single source package into
3 binaries.
Another avantage is that the documentation can now install a single
package with a single step, and therefore include the docstrings into
the generated docs.
- Resolves: #8896
|