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.
|
|
|
|
|
|
Schema was using a default value instead of using the one passed as a
parameter. Additional test for formatter is also included.
-- Related: #8867
|
|
Incoming API is supposed to be able to, given a valid service token,
write a incoming document into any user database. Leaving the parameter
as 'uuid' triggers defensive code against unauthorized accesses between
users. This commit renames the parameter so this isn't checked.
-- Related: #8867
|
|
-- Related: #8867
|
|
-- Related: #8867
|
|
-- Related: #8867
|
|
This way the file gets copied during package install.
-- Related: #8867
|
|
-- Related: #8867
|
|
-- Related: #8867
|
|
-- Related: #8867
|
|
For tests, we may want to configure the server with non-default options,
and the easiest way to do this is by creating a configuration file in
a temporary directory and passing the file name by means of an
environment variable.
This commit changes the server config file loading scheme to account for
a variable called SOLEDAD_SERVER_CONFIG_FILE. If that variable is set,
the configuration is read from the file pointed by it. Otherwise,
/etc/soledad/soledad-server.conf is used.
|
|
|
|
If the number of threads on the connection pool is small and the local
blobs db is stressed, different concurrent access problems may arise.
|
|
We do not want to enable blobs on any server that, by mistake, deploys
from master or from a released version in the 0.10.x series.
for testing it's more sensible to allow instantiating the server with a
custom config file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
This commit is complementary to the previous one. It adds a test for the
reported bug (listing default namespace was listing others) and fixes
it.
-- Related: #8882
|
|
All blobs were being stored in a single folder when using namespaces,
this commits adds path partitioning as discussed on #8882, which should
help with a large number of files (each folder will hold a smaller
subset, allowing the use of better filesystem walk strategies).
Also, the default empty namespace is now called 'default' to prevent it
from listing other namespaces contents. So everything will always use
namespaces, with the option to use it explicitly or just fall to the
default one.
-- Related: #8882
|
|
IIncomingBoxBackend holds backend specific methods used for IncomingBox
implementation.
- Resolves: #8888
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Clients will query for blobs flagged PENDING so they can start
processing. This commit adds flagging, but still in a hacky way as the
backend requires the flags as a json string inside a request. A refactor
to separate request handling from the backend itself will solve it in
the near future.
-- Related: #8874
|
|
|
|
|
|
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.
|
|
Improve test naming, creates a "count" method and filter flags files
properly.
|
|
|
|
filter_flag parameter can now be used to filter listing blobs by a
specific flags. Eg: I can ask for blobs on incoming namespace flagged as pending.
-- Resolves: #8913
|
|
Using a parameter, just like the other methods are doing.
-- Resolves: #8873
|
|
By using `only_count=True` parameter, instead of returning a full list,
server just count the amount of blobs.
-- Resolves: #8871
|
|
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.
|
|
|
|
|