{"push_id":2375457532,"size":3,"distinct_size":2,"ref":"refs/heads/replicator-pluggable-auth-module","head":"6a7d69d9c75de799af36a34313b0cc65440003ee","before":"cbe0e5f765f51b64983460e8af12e15dd856870e","commits":[{"sha":"fdc7a26471d8bbcb40db23c3d7b81514f56cba35","author":{"name":"Paul J. Davis","email":"e274f6071861d17da11dfe9509a7868159185ece@gmail.com"},"message":"Increase timeout for storage engine tests\n\nThe compaction test takes quite a long time on purpose to show that we\ncan run a compaction that has many batches. On resource constrained\nbuild machines like Jenkins and TravisCI this can end up taking longer\nthan the default 5s timeout.","distinct":false,"url":"https://api.github.com/repos/cloudant/couchdb/commits/fdc7a26471d8bbcb40db23c3d7b81514f56cba35"},{"sha":"51cb6aecc42eaa12058113003a3b4af7234250a8","author":{"name":"Joan Touzet","email":"c36de2af7a547caf4fe585b7cb420fd6fc182167@atypical.net"},"message":"Eliminate \"default\" Erlang platform from Jenkins CI\n\nCurrently, we run Jenkins CI builds on 11 platforms:\n\nErlang 18.3 + [centos6|centos7|debian8|debian9|ubuntu1404|ubuntu1604]\n\"Default\" (ships-with-the-distro) Erlang + [same list but not centos6]\n\nThe intent was ensure that CouchDB ran fine both with our preferred\nErlang version (right now, 18.3) as well as the Erlang that ships with\nvarious common distributions. This would help ease consumption of\nCouchDB by end users, we thought.\n\nWith CouchDB 2.1.0 we started providing convenience binary packages,\nbuilt with Erlang 18.3. This (along with Docker) has become the most\ncommon way people consume CouchDB today. Those binaries are generated\ndirectly from the Jenkins builds.\n\nFurther, Travis CI already runs our test suite against a variety of\nErlang distributions, from 16B03 right through 20.1 (as of today).\n\nThere is little value in the extra Jenkins runs at this point, beyond\ncatching any vagaries of distro-specific Erlang weirdness that we\nwould probably wash our hands of anyway.\n\nThis change removes 5 of our 11 platform builds. This will be valuable\nas we move towards regression testing other platforms (ppc64le, arm).\nIt also lightens our load on the ASF Jenkins infrastructure.\n\nNOTE that we will still need to maintain the Docker image for\nubuntu1404erlangdefault, as this contains 16B03, the earliest version\nof Erlang that we support. The initial \"Build\" step in our Jenkins\nrun uses this to build the couchdb.tar.gz dist tarball, which is then\ncompiled and tested on each platform during the \"Test\" step.","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/51cb6aecc42eaa12058113003a3b4af7234250a8"},{"sha":"6a7d69d9c75de799af36a34313b0cc65440003ee","author":{"name":"Nick Vatamaniuc","email":"5792ed18be5c9b9e7eec30eee82b412fc044ffa1@apache.org"},"message":"Implement pluggable authentication and session support for replicator\n\nPreviously replicator used only basic authentication. It was simple and\nstraightforward. However, with PBKDF2 hashing becoming the default it would be\nnice not to do all the password verification work with every single request,\nand instead take advantage of session (cookie) based authentication.\n\nThis commit implements session based authentication via a plugin mechanism.\nThe list of available replicator auth modules is configurable. For example:\n\n```\n[replicator]\nauth_plugins = couch_replicator_auth_session,couch_replicator_auth_basic\n```\n\nThe plugins will be tried in order. The first one to successfully initialize\nwill end up being used for that endpoint (source or target).\n\nDuring the initialization callback, a plugin could decide it cannot be used in\nthe current context. In that case it signals to be \"ignored\". The plugin\nframework will then skip over it and try to initialize the next on in the list.\n\n`couch_replicator_auth_basic` effectively implements the old behavior. This\nplugin should normally be used as a default catch-all at the end of the plugin\nlist. In some cases, it might be useful to enforce exclusive use of\nsession-based auth and fail replication jobs if it is not available.\n\n`couch_replicator_auth_session` does most of the work of handling session based\nauthentication. On initialization, it strips away basic auth credentials from\nheaders and url to avoid basic auth being used on the server. Then it is in\ncharge of periodically issuing POST requests to `_session`, updating the\nheaders of each request with the latest cookie value, and possibly picking up\nnew session cookie if the server can issue them along with reglar responses.\n\nCurrently session based auth plugin is not enabled by default and is an opt-in\nfeature. That is, users would have to explicitly add the session module to the\nlist of auth_plugins. In a future, session might be used by default.\n\nAs discussed in #1153 this work also removes OAuth 1.0 support. After\nserver-side support was removed, it had stopped working anyway since the main\noauth app was removed. However, with the plugin framework in place it would be\npossible for someone to implement it as a separate module not entangled with\nthe rest of the replicator code.\n\nFixes #1153","distinct":true,"url":"https://api.github.com/repos/cloudant/couchdb/commits/6a7d69d9c75de799af36a34313b0cc65440003ee"}]}
{"actor":{"display_login":"nickva"}}