summaryrefslogtreecommitdiff
path: root/server
AgeCommit message (Collapse)Author
2017-02-09[test] add tests for server auth sessiondrebs
2017-02-09[test] add tests for server authdrebs
2017-02-09[refactor] remove twisted session persistencedrebs
The need for token caching in server is a matter of debate, as is the ideal way to do it. Twisted sessions store the session id in a cookie and use that session id to persist. It is not clear if that implementation is needed, works with future features (as multiple soledad servers) or represents a security problem in some way. Because of these, this commit removes it for now. The feature is left in git history so we can bring it back later if needed.
2017-02-09[bug] fix name of module on importdrebs
2017-02-09[refactor] separate url mapper, avoid hanging testsdrebs
Because the wsgi resource has its own threadpool, tests might get confused when shutting down and the reactor may get clogged waiting for the threadpool to be stopped. By refactoring the URLMapper to its own module, server tests can avoid loading the resource module, where the wsgi threadpool resides, so the threapool will not be started.
2017-02-09[feat] cache session data in serverdrebs
2017-02-09[feat] use twisted web http auth and credsdrebs
2017-02-09[feat] reuse the url mapper instead of creating it for every requestdrebs
2017-02-09[bug] disallow all requests to "user-{uuid}/"drebs
2016-12-17[pkg] use a twisted resource as server entrypointdrebs
2016-12-12[bug] enable batching againVictor Shyba
Something happened during rebase. This configuration is supposed to be True by default now.
2016-12-12[refactor] remove dead parameters, improve commentsVictor Shyba
received docs makes no sense for a single request download, plus all its comments and docstrings. Also updated docstrings for other methods. The method that tests if sqlcipher is encrypted can return a db handle that can be used right away. If we ignore it and reopen we can end up with a lost open cursor.
2016-12-12[style] explicit unlimited request sizeVictor Shyba
Request size on a stream can't be measured upfront and a limit doesn't make much sense. The real limit is user's Quota, to be implemented.
2016-12-12[refactor] simplify server insertVictor Shyba
Moved out magic numbers into a constant and simplified logic during doc upload.
2016-12-12[bug] remove print debug statementsKali Kaneko
2016-12-12[bug] fix bad merge in imports blockKali Kaneko
2016-12-12[tests] adapt testsKali Kaneko
2016-12-12[refactor] adapt fetcher to decryptorKali Kaneko
2016-12-12[feature] batch based on payload sizeVictor Shyba
batch is slower than usual insert for a single doc, so, if a document exceeds the buffer, commit the batch (if any) and put the huge load by traditional insert. refactor coming.
2016-12-12[feature] stream content in a separate lineVictor Shyba
This allow different paths for raw data and metadata, avoiding unnecessary json parsing.
2016-12-12[feature] make the test accept large uploadsVictor Shyba
We enabled chunking, which means that a use can upload his entire db on a single request. This commit makes server enable this and throttle download as Twisted cant control the payload producer code as its synchronous and blocking code.
2016-12-12[feature] upload streamingVictor Shyba
1) enable HTTP 1.1 chunked upload on server 2) make the client sync.py generate a list of function calls instead of a list of full docs 3) disable encryption pool 4) make the doc encryption a list of function calls 5) create a twisted protocol for sending 6) make a producer that calls the doc generation as necessary
2016-12-12[feature] streaming download protocolVictor Shyba
This commit finishes reversion into u1db original streaming protocol for downloads.
2016-12-12[feature] make reading attachments optionalVictor Shyba
Will put a file object on doc json string if read_content is False, otherwise it will fetch and fill as usual. This is useful for improving server througput on sync download stream by receiving a bulk-get without attachments and consume the file-objects as they come.
2016-12-12[bug] use an empty string to represent tumbstonesVictor Shyba
If a doc doesnt have a content it means it was deleted. Sync stream was unable to represent this state.
2016-12-12[feature] server download stream from file objectVictor Shyba
couchdb lib returns a file object representing the attachment. This commit dumps the read() call into the wsgi write() call. Doc representation uses 2 lines also, separating metadata from content.
2016-12-12[feature] revert sync download into straming (server)Victor Shyba
Instead of concurrent download, we are going to download a stream. This commit modifies server to support it.
2016-11-27[bug] fix import on create-user-dbVictor Shyba
2016-11-27[bug] delay couch state initializationdrebs
The couch state checks if all user databases have the correct schema version on initialization, and may log errors and raise exceptions if that is not the case. Because we are currently using `twistd web --wsgi`, if those errors are logged too early the reactor may have not been started and the twistd logging facilities may not have been initialized. This commit delays the state initialization until the reactor has been started, to make sure any errors raised and logged in that stage will actually reach the logfile.
2016-11-22[refactor] separate server application into another filedrebs
Conflicts: server/src/leap/soledad/server/__init__.py testing/tests/conftest.py
2016-11-09[pkg] update leap requirements files0.9.0rc10.9.0drebs
2016-10-21[tests] fix server importVictor Shyba
When importing server, couch_state will load itself against couch_db url configured on server. This fails when running on Docker as couchdb is in another node.
2016-10-21[tests] make check_schema_versions default to FalseVictor Shyba
CouchServerState is spread across test codebase and this option is intended to be used only on server startup. This commit makes it default to False and explicitly set it to True on where it's necessary.
2016-10-03[feature] check for user dbs couch schema versionsdrebs
2016-10-03[refactor] move configuration loading to its own moduledrebs
2016-09-22[feat] centralize logging and use twisted.logger by defaultdrebs
2016-09-06[style] pep8Kali Kaneko
2016-08-09[feat] log to syslog (#8286)drebs
2016-08-08[pkg] remove version pinning for couchdb and beakerdrebs
We will not maintain support for older versions of debian as that introduces some unneeded complexity for now. Also, the version pinned for couchdb python library has a bug that makes some requests slow. Because of those, we remove the pinning for now.
2016-08-01[test] remove traces of design docs from couch testsdrebs
2016-07-18[pkg] remove pixelated from requirements-latest.pipChristoph Kluenter
modifying original PR [0] by cristoph to account for the recent vendoring of l2db code, which means we no longer depend on u1db/dirspec. I expect the whole mess about the venv setup to be further simplified pretty soon, since we are going to merge most of the leap.* packages into a couple of repos. [0] https://github.com/leapcode/soledad/pull/327
2016-07-14[pkg] bump changelog to 0.8.10.8.1Kali Kaneko
2016-07-12[pkg] remove unneeded dirspec exceptionsdrebs
2016-07-12[refactor] remove u1db dep from support codedrebs
2016-07-12[refactor] make tests use l2db submoduleKali Kaneko
From this moment on, we embed a fork of u1db called l2db.
2016-06-08[bug] install pip from default locationdrebs
Old versions of pip do not accept the --trusted-host option and will complain when trying to upgrade pip from wheel. To fix that we upgrade pip from usual location instead of doing it from wheel.
2016-06-06[refactor] adapt create-user-db script to bypass auth for local testsKali Kaneko
2016-06-06[feature] debug-mode server with dummy authenticationKali Kaneko
to ease debugging of local servers w/o neededing the Token machinery in place. this needs still some extra changes to be fully functional: - adapt the create-userdb script to work with no auth info.
2016-05-18[pkg] update to new versioneer json formatKali Kaneko
2016-05-16[style] pep8Kali Kaneko