This is an automated email from the ASF dual-hosted git repository. rnewson pushed a change to branch couch-keywrap in repository https://gitbox.apache.org/repos/asf/couchdb.git.
discard 13b613d Implement AES KW algorithm* omit e22b5ab Merge pull request #2703 from dottorblaster/port-view-pagination-test-to-elixir omit e26d99e Port view_pagination integration test to elixir test suite omit 49dbb6a Port purge.js into elixir test suite omit 2b95500 Merge pull request #2714 from atrauzzi/jwt-couchdb-specific-roles-claim omit 3523c81 Rename the claim used for roles to be more CouchDB specific. omit 1890168 Add support for roles to be obtained from JWTs. (#2694) omit 5c52904 Ensure clean PATH for Windows couchdb.cmd (#2708) omit c38a2c2 Merge pull request #2698 from dottorblaster/fix-missing-apexes omit 8a5f48b Fix missing apexes in test/elixir/README.md omit 55f704d Merge pull request #2687 from apache/jwt-enhancements omit 16b3c8d base64 the symmetric jwt keys omit dc88e36 throw Reason directly so we send good http error responses omit c1e7c5a Create in-memory cache of JWT keys omit 623ae9a add EC tests omit db21eda support RSA for JWT auth omit 5c77ef0 test all variants of jwt hmac omit bb86d04 generate JWT token ourselves omit 8074a32 no need to deduplicate this list omit f6a4f8e Fix ported to elixir tag omit 3248ebc Port http, method_override and jsonp tests into elixir test suite (#2646) omit f8ffde2 Merge pull request #2688 from dottorblaster/fix-utf8-elixir-test-warning omit 11dee52 Ignore unused string variable inside utf8 test case omit fc950c5 Merge pull request #2686 from dottorblaster/upgrade-credo-1.3.1 omit 996587d Upgrade Credo to 1.3.1 omit cb3c772 Port design_docs tests from js to elixir (#2641) omit 032934f Feature - Add JWT support (#2648) omit f7bdc8c Merge pull request #2668 from apache/jwtf-unknown-checks omit ff6cef6 Throw if an unknown check is passed to jwtf:decode omit 1f54b14 Port elixir proxyauth tests from js to elixir (#2660) omit da7f648 Merge pull request #2661 from apache/jwtf-enhance-alg-check omit 39b9cc7 Enhance alg check omit b14ec65 Merge pull request #2658 from apache/import-jwtf omit 919f75c add jwtf to release omit 087f727 merged jwtf into src/jwtf omit 99101dc Merge pull request #2657 from apache/cookie-domain-delete omit af2eb04 Set cookie domain when DELETE'ing omit f2ddedd Merge pull request #2654 from apache/fix-filter-changes-feed-rewinds omit 27abf0e Send correct seq values for filtered changes omit 588eade Merge pull request #12 from cloudant/handle-malformed-token omit 8c7e825 Merge pull request #2652 from dottorblaster/upgrade-credo-1.3.0 omit 1794e14 Handle malformed tokens with jiffy 1.x omit ddeb2d1 Add new rules to .credo.exs omit c9a9bf0 Upgrade Credo to 1.3.0 omit b00814e Enable code coverage omit 640e39c Create LICENSE omit d0c30f2 Merge pull request #2645 from danielbarbarito/users-db-security-editable-ini-fix omit 528e02f move "users_db_security_editable" to the correct location omit db3aa0f Improve mango markdown omit 6ec8c71 Add coverage to Mango eunit tests omit deca868 Clean up mango test user docs omit ec3cf20 Clean up mango test dbs omit 86ec2f3 Port _design_docs tests, design_options and design_paths from js to elixir (#2596) omit b4abcda Merge pull request #11 from cloudant/separate-test-module omit 8e937f2 Separate tests into dedicated module omit d4f4aee Merge pull request #10 from cloudant/move-key-cache omit 3d6c294 Move key cache to epep application omit bb1744e Suppress compiler warnings omit 845226c Merge pull request #3 from jaydoane/simplify-tests omit a01cb0f Make time explicitly in future omit 53c254f Remove unnecessary props omit c6e58c4 get_keyset needs ssl started omit 8100be3 remove dependency on openssl commands omit f9c1f33 throw errors that chttpd:error_info can understand omit a3b6661 move error wrapping to decode function omit 768732a Return error from update_cache omit 382229e Ensure error reason is convertable to JSON omit 280376f Merge pull request #6 from cloudant/implement-encode omit d9a718b Support JWT encoding omit b396a1d Generate rsa private keys and keypairs omit 094489f Merge pull request #5 from jaydoane/improve-restart-strategy omit 80d4a64 Improve restart strategy omit 5b31b0d Improve pubkey not found error handling (#4) omit ceeb019 require alg+kid for key lookup omit 9d60fa2 add ibrowse as dep omit e083b22 provide caching of JWKS keys omit 6cc182d IAT validation requires it to be a number, any number omit e80c3d1 add tests for HS384 and HS512 omit e180555 fix test omit e0d61d0 test EC omit ae0e0f4 return a public key tuple omit 373a367 update alg list omit 61f47b3 support P-256 in JWKS omit bf7a2ed expand algorithm support omit acbaa37 slightly improve readme omit 31999f4 allow iss to be optional omit 25bfdc3 make jwks simpler, caching can happen elsewhere omit 69e1ce2 Add stats, don't wipe cache on error omit a18a2e5 some documentation omit e60fa50 kid belongs in the header omit 3cb8b7d 98% coverage omit 8077258 use public url omit d7bd8d1 Make typ and alg optional omit 5b9dad7 Add JKWS cache omit 02ecf5b add more tests omit 5f93661 unused var omit 3888d18 Moar Functional omit f2e1085 validate nbf omit 2c3f968 Initial commit omit 9a671b6 Initial commit add fff07ba Update build system for FoundationDB add 95cb955 Disable eunit test suite in fabric add fb8f2a0 Initial fabric2 implementation on FoundationDB add b0814d0 Initial test suite for the fabric2 implementation add 14984e8 Update ddoc_cache to use fabric2 add 3b8baaf Start switching chttpd HTTP endpoints to fabric2 add 814088c Remove debug logging add 5dbd566 Implement attachment compression add 2359dab Fix fabric2_txids:terminate/2 add 1ca8398 Fix revision generation on attachment upload add ed567a2 Convert attachment info to disk terms correctly add d15377c Allow for previously configured filters add fab340e Fix validate_doc_update when recreating a document add eaec8ac Database config changes should bump the db version add f07ed76 Implement `_users` db authentication add e372594 Update get security to use fabric2 add 1797619 Fix arity in changes timeout callback add 1269278 Fix exception in cache auth doc update add f10b554 CouchDB background jobs add 65b6fe3 Remove tests for deprecated features. add c9eee15 Implement _all_dbs/_all_docs API parameters add 5c75761 Fix bulk docs error reporting add 333cb3e Fix `COPY` method add fbb7a29 Fix revision tree extensions add 169ee08 Implement `POST /_dbs_info` add 9ec2435 Fix formatting of all_docs_test.exs add 67139d1 Reinitialize chttpd_auth_cache on config change add 8095648 Disable broken couch_att tests add 112f598 Expose ICU ucol_getSortKey add daa2d5e Fix more elixir tests add ba3e405 Make fabric2.hrl public add 0db221e Expose the is_replicator_db and is_user_db logic add 2c0154a Fix default key ranges for fold_range add 769e191 CouchDB map indexes on FDB add 90a27db Fix job handling to halt on errors add 77018c9 Update to use new fold_range_future/wait functions add 1b6998c Write large documents in chunks add 67ee47c Remember to remove old doc bodies add 9e7ba39 Configurable FDB directory prefixes for CouchDB instances add d333a2e only fetch 1 query server for indexing add 56d7f56 Add timeout for 'fold_docs-with_different_keys' test add 11eda33 add trace test for couch_views add a234b18 Implement fabric2_db EPI plugin add bf216d3 Fix DB reopen behavior add 6a0e07a Open dbs with admin privileges in couch_views_indexer add 6f5b432 Implement update_seq for couch_views add 3310a81 Move fabric2_dir_prefix_tests to test directory add fd5b1c8 Fix couch_views encoding test add fdc52e6 Skip before_doc_update processing for local docs add 4da3595 Remove debug logging in fabric2_db_plugin add 175da5f Fix starkey_docid, endkey_docid and inclusive_end=false for _all_docs add 2fd4cbc Implement _all_docs/queries add 3f5ae3a Implement _design_docs and _local_docs add ee1ec0f Add a max db name length config option add abf97c3 Handle update_seq for _local_docs add 15aff7a Handle _changes since=now param add 4e4b1a8 Fetch docs in parallel for view indexing add 3b9a0e3 Fix _changes heartbeat option add 95ae5ba Implement setting and getting _revs_limit add 9e1317f Make get_security and get_revs_limit calls consistent add f37b6d5 Check members after db is opened add f920172 Add revision stemming for interactive docs add e6fb78b Fix doc counts for replicated deletions add a71fc30 Add more deleted docs replication cases to integration test add 3ccec82 Add couch_eval abstraction layer add 36945e7 Initial creation of couch_js application add 6574a4d Implement couch_js callbacks for couch_eval add 8805234 Add tests for couch_js application add 388c114 Update couch_views to use couch_eval add 31dd2b7 Fix mango index validation add 8a972dd Fix timeout in couch_views add 831555f DRY out CouchDB FDB prefix fetching add 168126b Use a shorter name for create_or_open_couchdb_dir add b5c4468 Enable FDB transaction tracing add dd7a382 Take better advantage of metadata version key feature add 7e881e2 Remove compiler warning add e6f24ac Chunkify local docs add 253a48b Add a special error for an invalid legacy local doc revsion add a1425f0 add test to prove we can view swap add 31f88cf Use "\xFF/metadataVersion" key for checking metadata add eb4d0d8 Abandon a view job if the db or ddoc is deleted add 7815e80 Pass contexts to fabric2_db functions add c6f5d82 Ensure we can create partitioned design docs with FDB add 3344638 Check security properties in the main transaction add 3b45489 Before starting a db transanction, refresh the db handle from the cache add da0318f Update fabric2_fdb's set_config to take un-encoding values add 1420756 Assert Db handle field existence in `load_config/1` in fabric2_fdb add 7eaab66 Check membership when calling get_security/1 in fabric2_db add 6c11319 Support regexp based blacklist in config add 555d28c Implement fabric2_server:fdb_cluster/0 add b49ca70 Add ctrace application add 0521bca Trace http endpoints add 8232be8 Trace fdb transactions add 8163d99 Implement node types add 6ff0a11 Add operation names for all HTTP endpoints add 5aeb21c Change end-point /_up to check fdb connectivity add f943ac1 Optimize view read latency when the view ready add b971493 Retry for failed indexes builds add a59c953 Normalize fabric2 test suite add ebe14ec Delete attachments when no longer referenced add 4e8b200 Expiring cache add f358971 Improve transaction name setting when tracing FDB transactions add e6c4ca3 Add `external` tag to opentrace events add 9785ea5 Change map indexes to be stored in one row add 2fb578d Delete unused ets table creation add f62ac8e reserve search namespace add 98a9d80 Support jaeger http reporter add b4a7f6d fix b3 - Headers suppose to be strings add 8bcf566 Add basic test case for b3 fix add 712fe04 Encode startkey/endkey for all_docs (#2538) add e7ed6e9 Fix doc attachment tests add 1511b6d Track a database level view size rollup add 1b79e11 Implement async API for `fabric2_fdb:get_info/1` add bd69a01 Implement `fabric2_db:list_dbs_info/1,2,3` add 4248ef7 Support `GET /_dbs_info` endpoint add f297fe3 Implement mult-transactional iterators for _changes feeds add cad91ad Use {restart_tx, false} option in view index builder changes feed add f4a9e60 Remove attachment headers field add 53518b6 Track the size of data stored in a database add 9cad194 Add tests for database size tracking add 86d87cd Convert versionstamps to binaries add 193c342 Test coverage: list_dbs and list_dbs_info add 8ebebcf Test coverage: get_full_doc_info add e946ed3 Test coverage: validate_dbname, validate_docid add 78d7a9f Test coverage: apply_open_doc_opts add 293d3d5 Re-use changes feed main transaction when including docs add e0bdb7e Handle spurious 1009 (future_version) errors in couch_jobs pending add bab3566 Let couch_jobs use its own metadata key add c95d8c1 Improve validate_dbname test add aa3b738 Add 410 status code to stats_descriptions add 2e13cff Support setting base_url in Couch test helper (take 2) add 47b6b33 Do not use the ddoc cache to load _changes filter design documents add 42062b6 Add fdb_to_revinfo compatibility with 5-tuple Val add d2a670b Fix bug in fdb_to_revinfo compatibility clauses add a35af0f Add fdb_to_revinfo version compatibility unit test add f30c83c Fix catching of Jiffy error exceptions add bdd0578 Temporary shortcut to running the fdb test suite add c9175af Fix couch_views type in wait_for_job add ee150f4 standardize couch_views_indexer_tests add 4bd68d1 Add Key/Value size limit for map indexes add 735b3f6 Enable fdb feature add 2fe1666 Clean up view size limit enforcement add 377a3d3 Refactor view index layout add 69fc02b Fix handling of duplicate keys add e6f6e2d Don't store `{0,0,[]}` for views with new results add 97458c3 Test size calculations for view rows add 17ce741 Optimize resubmitting pending jobs add 02ca72b Implement a simple index auto-updater add 132cf7a Enable index auto-updating for couch_views add 6b5985f Fix bug in reverse folding with startkey_docid add 1457c28 couch_jobs resubmit updates job data (#2649) add 258ec66 Fix _changes with a _view filter add bf989eb Handle spurious erlfdb future add 0db143a Handle transaction timeouts in list_dbs and list_dbs_info add 0cd9c26 Refactor some of the "tx_too_old" tests add f28a1ad A few minor cleanups in fabric2_db_crud_tests add 3bac804 add _conflicts field to docs for views add 0cafb17 Handle transaction cancelled errors in list_dbs_info/3 add 28ffba4 Handle transaction timeouts in _all_docs add 301db96 Reformat and simplify couch_views_indexer_test module add 41be92b Add additional get_doc spans add 15509f2 Merge pull request #2681 from apache/prototype/fdb-layer-get-doc-spans add e520294 Fix database re-creation add a008c6d Add a fabric doc fold test when db is re-created add 3fba9ff Fix couch_jobs after recent db re-creation commit add f81f117 add info endpoint for fdb stored views (#2706) add 2c704ac set DbPrefix with value allocated with erlfdb_hca add ed83bf9 Implement fabric2_db:get_design_docs/1 add 0f27bf5 Improve fabric2_events add e06c5f3 Handle db re-creation in view indexing add f05b3ad Fix db prefix checks in fabric2_fdb add d67f507 Make sure to clear db metadata flag before each transaction add df367a4 Implement AES KW algorithm* This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (13b613d) \ N -- N -- N refs/heads/couch-keywrap (df367a4) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: .credo.exs | 7 +- .gitignore | 8 + FDB_NOTES.md | 57 + Makefile | 14 +- dev/run | 36 +- mix.exs | 4 +- mix.lock | 4 +- rebar.config.script | 18 +- rel/apps/couch_epi.config | 1 + rel/files/couchdb.cmd.in | 2 +- rel/files/eunit.config | 3 +- rel/files/eunit.ini | 6 +- rel/overlay/etc/default.ini | 141 +- rel/reltool.config | 10 +- src/chttpd/src/chttpd.app.src | 1 + src/chttpd/src/chttpd.erl | 149 +- src/chttpd/src/chttpd_app.erl | 4 +- src/chttpd/src/chttpd_auth.erl | 4 - src/chttpd/src/chttpd_auth_cache.erl | 86 +- src/chttpd/src/chttpd_auth_request.erl | 8 +- .../src/chttpd_changes.erl} | 340 ++-- src/chttpd/src/chttpd_db.erl | 670 +++---- src/chttpd/src/chttpd_external.erl | 35 +- src/chttpd/src/chttpd_handlers.erl | 23 +- src/chttpd/src/chttpd_httpd_handlers.erl | 442 ++++- src/chttpd/src/chttpd_misc.erl | 118 +- src/chttpd/src/chttpd_show.erl | 5 +- src/chttpd/src/chttpd_sup.erl | 16 +- src/chttpd/src/chttpd_view.erl | 5 +- src/{smoosh => chttpd}/test/exunit/test_helper.exs | 0 src/chttpd/test/exunit/tracing_test.exs | 101 ++ src/couch/priv/icu_driver/couch_icu_driver.c | 74 +- src/couch/priv/stats_descriptions.cfg | 4 + src/couch/src/couch_att.erl | 1077 +++++------ src/couch/src/couch_doc.erl | 11 + src/couch/src/couch_httpd_auth.erl | 30 +- src/couch/src/couch_util.erl | 50 +- src/couch/test/eunit/couch_util_tests.erl | 140 ++ .../test/eunit/couchdb_cookie_domain_tests.erl | 13 +- src/couch_eval/README.md | 5 + src/{fabric => couch_eval}/rebar.config | 0 .../src/couch_eval.app.src} | 11 +- src/couch_eval/src/couch_eval.erl | 97 + src/couch_expiring_cache/README.md | 71 + .../include/couch_expiring_cache.hrl} | 10 +- src/{fabric => couch_expiring_cache}/rebar.config | 0 .../src/couch_expiring_cache.app.src} | 12 +- .../src/couch_expiring_cache.erl | 56 + .../src/couch_expiring_cache_fdb.erl | 116 ++ .../src/couch_expiring_cache_server.erl | 117 ++ .../test/couch_expiring_cache_tests.erl | 95 + src/couch_jobs/.gitignore | 4 + src/couch_jobs/README.md | 62 + src/{fabric => couch_jobs}/rebar.config | 0 .../src/couch_jobs.app.src} | 21 +- src/couch_jobs/src/couch_jobs.erl | 391 ++++ src/couch_jobs/src/couch_jobs.hrl | 52 + src/couch_jobs/src/couch_jobs_activity_monitor.erl | 133 ++ .../src/couch_jobs_activity_monitor_sup.erl} | 51 +- .../src/couch_jobs_app.erl} | 15 +- src/couch_jobs/src/couch_jobs_fdb.erl | 720 ++++++++ src/couch_jobs/src/couch_jobs_notifier.erl | 285 +++ .../src/couch_jobs_notifier_sup.erl} | 51 +- src/couch_jobs/src/couch_jobs_pending.erl | 143 ++ src/couch_jobs/src/couch_jobs_server.erl | 193 ++ src/couch_jobs/src/couch_jobs_sup.erl | 66 + src/couch_jobs/src/couch_jobs_type_monitor.erl | 84 + src/couch_jobs/test/couch_jobs_tests.erl | 700 ++++++++ src/couch_js/README.md | 6 + .../rexi.app.src => couch_js/src/couch_js.app.src} | 17 +- src/couch_js/src/couch_js.erl | 51 + .../src/couch_js_app.erl} | 12 +- .../src/couch_js_io_logger.erl} | 2 +- .../src/couch_js_native_process.erl} | 8 +- .../src/couch_js_os_process.erl} | 16 +- .../src/couch_js_proc_manager.erl} | 23 +- .../src/couch_js_query_servers.erl} | 10 +- .../src/couch_js_sup.erl} | 30 +- src/couch_js/test/couch_js_proc_manager_tests.erl | 373 ++++ .../test/couch_js_query_servers_tests.erl} | 47 +- src/couch_mrview/src/couch_mrview.erl | 26 +- src/couch_mrview/src/couch_mrview_util.erl | 2 +- src/couch_views/.gitignore | 19 + src/couch_views/README.md | 15 + .../include/couch_views.hrl} | 24 +- src/{fabric => couch_views}/rebar.config | 0 .../src/couch_views.app.src} | 22 +- src/couch_views/src/couch_views.erl | 213 +++ .../src/couch_views_app.erl} | 10 +- src/couch_views/src/couch_views_encoding.erl | 105 ++ src/couch_views/src/couch_views_fdb.erl | 361 ++++ src/couch_views/src/couch_views_indexer.erl | 488 +++++ src/couch_views/src/couch_views_jobs.erl | 123 ++ src/couch_views/src/couch_views_reader.erl | 216 +++ src/couch_views/src/couch_views_server.erl | 103 ++ src/couch_views/src/couch_views_sup.erl | 66 + src/couch_views/src/couch_views_util.erl | 221 +++ src/couch_views/test/couch_views_encoding_test.erl | 117 ++ src/couch_views/test/couch_views_indexer_test.erl | 591 ++++++ src/couch_views/test/couch_views_info_test.erl | 154 ++ src/couch_views/test/couch_views_map_test.erl | 522 ++++++ src/couch_views/test/couch_views_size_test.erl | 564 ++++++ .../test/couch_views_trace_index_test.erl | 140 ++ src/ctrace/README.md | 308 ++++ src/{fabric => ctrace}/rebar.config | 0 .../src/rexi.app.src => ctrace/src/ctrace.app.src} | 15 +- src/ctrace/src/ctrace.erl | 361 ++++ .../eunit.config => src/ctrace/src/ctrace.hrl | 7 +- .../src/ctrace_app.erl} | 9 +- src/ctrace/src/ctrace_config.erl | 153 ++ src/ctrace/src/ctrace_dsl.erl | 106 ++ .../src/ctrace_sup.erl} | 35 +- src/ctrace/test/ctrace_config_test.erl | 153 ++ src/ctrace/test/ctrace_dsl_test.erl | 123 ++ src/ctrace/test/ctrace_test.erl | 412 +++++ src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl | 2 +- src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl | 2 +- src/fabric/include/fabric2.hrl | 75 + src/fabric/src/fabric.app.src | 10 +- src/fabric/src/fabric.erl | 100 +- .../rexi_app.erl => fabric/src/fabric2_app.erl} | 16 +- src/fabric/src/fabric2_db.erl | 1880 +++++++++++++++++++ .../src/fabric2_db_plugin.erl} | 31 +- .../mango_epi.erl => fabric/src/fabric2_epi.erl} | 12 +- src/fabric/src/fabric2_events.erl | 102 ++ src/fabric/src/fabric2_fdb.erl | 1883 ++++++++++++++++++++ src/fabric/src/fabric2_index.erl | 222 +++ src/fabric/src/fabric2_node_types.erl | 52 + src/fabric/src/fabric2_server.erl | 144 ++ src/fabric/src/fabric2_sup.erl | 61 + src/fabric/src/fabric2_txids.erl | 140 ++ .../src/fabric2_users_db.erl} | 61 +- src/fabric/src/fabric2_util.erl | 347 ++++ src/fabric/src/fabric_db_create.erl | 82 +- src/fabric/src/fabric_db_info.erl | 62 +- src/fabric/src/fabric_doc_open.erl | 852 ++++----- src/fabric/src/fabric_doc_open_revs.erl | 968 +++++----- src/fabric/src/fabric_doc_purge.erl | 690 +++---- src/fabric/src/fabric_doc_update.erl | 310 ++-- src/fabric/src/fabric_rpc.erl | 41 +- src/fabric/src/fabric_streams.erl | 157 +- src/fabric/src/fabric_util.erl | 48 +- src/fabric/src/fabric_view.erl | 126 +- src/fabric/src/fabric_view_changes.erl | 362 ++-- src/fabric/test/eunit/fabric_rpc_purge_tests.erl | 307 ---- src/fabric/test/fabric2_changes_fold_tests.erl | 241 +++ src/fabric/test/fabric2_db_crud_tests.erl | 384 ++++ src/fabric/test/fabric2_db_misc_tests.erl | 393 ++++ src/fabric/test/fabric2_db_security_tests.erl | 186 ++ src/fabric/test/fabric2_db_size_tests.erl | 918 ++++++++++ src/fabric/test/fabric2_dir_prefix_tests.erl | 71 + src/fabric/test/fabric2_doc_att_tests.erl | 285 +++ src/fabric/test/fabric2_doc_count_tests.erl | 278 +++ src/fabric/test/fabric2_doc_crud_tests.erl | 1010 +++++++++++ src/fabric/test/fabric2_doc_fold_tests.erl | 378 ++++ src/fabric/test/fabric2_doc_size_tests.erl | 320 ++++ src/fabric/test/fabric2_fdb_tx_retry_tests.erl | 176 ++ src/fabric/test/fabric2_get_design_docs_tests.erl | 138 ++ src/fabric/test/fabric2_index_tests.erl | 304 ++++ src/fabric/test/fabric2_local_doc_fold_tests.erl | 295 +++ src/fabric/test/fabric2_node_types_tests.erl | 66 + src/fabric/test/fabric2_rev_stemming.erl | 205 +++ src/fabric/test/fabric2_test.hrl | 33 + src/fabric/test/fabric2_test_util.erl | 76 + .../test/fabric2_trace_db_create_tests.erl} | 47 +- .../test/fabric2_trace_db_delete_tests.erl} | 50 +- .../test/fabric2_trace_db_open_tests.erl} | 51 +- src/fabric/test/fabric2_trace_doc_create_tests.erl | 87 + .../src/global_changes_httpd_handlers.erl | 8 +- src/jwtf/.gitignore | 4 - src/jwtf/LICENSE | 176 -- src/jwtf/README.md | 18 - src/jwtf/rebar.config | 2 - src/jwtf/src/jwtf.app.src | 32 - src/jwtf/src/jwtf.erl | 336 ---- src/jwtf/src/jwtf_app.erl | 28 - src/jwtf/src/jwtf_keystore.erl | 118 -- src/jwtf/src/jwtf_sup.erl | 38 - src/jwtf/test/jwtf_tests.erl | 319 ---- src/mango/README.md | 328 +--- src/mango/TODO.md | 19 +- src/mango/rebar.config | 2 - src/mango/src/mango_httpd_handlers.erl | 31 +- src/mango/src/mango_native_proc.erl | 7 +- src/mango/test/README.md | 17 +- src/mango/test/mango.py | 8 - src/mango/test/user_docs.py | 4 - src/mem3/src/mem3_httpd_handlers.erl | 38 +- src/setup/src/setup_httpd_handlers.erl | 12 +- test/elixir/README.md | 23 +- test/elixir/lib/couch.ex | 48 +- test/elixir/lib/couch/db_test.ex | 4 +- .../test/elixir/run => test/elixir/run-only | 3 +- test/elixir/test/all_docs_test.exs | 52 +- test/elixir/test/auth_cache_test.exs | 2 +- test/elixir/test/basics_test.exs | 227 ++- test/elixir/test/config/test-config.ini | 2 - test/elixir/test/design_docs_query_test.exs | 273 --- test/elixir/test/design_docs_test.exs | 507 +----- test/elixir/test/design_options_test.exs | 74 - test/elixir/test/design_paths_test.exs | 76 - test/elixir/test/http_test.exs | 81 - test/elixir/test/jsonp_test.exs | 116 -- test/elixir/test/jwtauth_test.exs | 124 -- test/elixir/test/map_test.exs | 600 +++++++ test/elixir/test/method_override_test.exs | 55 - test/elixir/test/partition_all_docs_test.exs | 204 --- test/elixir/test/partition_crud_test.exs | 369 ---- test/elixir/test/partition_ddoc_test.exs | 179 -- test/elixir/test/partition_design_docs_test.exs | 16 - test/elixir/test/partition_helpers.exs | 76 - test/elixir/test/partition_mango_test.exs | 683 ------- test/elixir/test/partition_size_limit_test.exs | 305 ---- test/elixir/test/partition_size_test.exs | 361 ---- test/elixir/test/partition_view_test.exs | 374 ---- test/elixir/test/partition_view_update_test.exs | 160 -- test/elixir/test/proxyauth_test.exs | 163 -- test/elixir/test/purge_test.exs | 168 -- test/elixir/test/replication_test.exs | 127 +- test/elixir/test/reshard_all_docs_test.exs | 79 - test/elixir/test/reshard_basic_test.exs | 174 -- test/elixir/test/reshard_changes_feed.exs | 81 - test/elixir/test/reshard_helpers.exs | 114 -- test/elixir/test/security_validation_test.exs | 4 +- test/elixir/test/test_helper.exs | 2 - test/elixir/test/users_db_test.exs | 3 +- test/elixir/test/utf8_test.exs | 2 +- test/elixir/test/view_collation_test.exs | 28 +- test/elixir/test/view_pagination_test.exs | 189 -- test/javascript/tests/changes.js | 6 +- test/javascript/tests/design_docs.js | 2 - test/javascript/tests/design_docs_query.js | 4 +- test/javascript/tests/design_options.js | 5 +- test/javascript/tests/design_paths.js | 3 +- test/javascript/tests/erlang_views.js | 2 +- test/javascript/tests/form_submit.js | 1 - test/javascript/tests/http.js | 3 +- test/javascript/tests/jsonp.js | 2 - test/javascript/tests/method_override.js | 2 - test/javascript/tests/proxyauth.js | 51 +- test/javascript/tests/purge.js | 2 +- test/javascript/tests/view_pagination.js | 2 - 242 files changed, 26234 insertions(+), 10318 deletions(-) create mode 100644 FDB_NOTES.md copy src/{couch/src/couch_changes.erl => chttpd/src/chttpd_changes.erl} (70%) copy src/{smoosh => chttpd}/test/exunit/test_helper.exs (100%) create mode 100644 src/chttpd/test/exunit/tracing_test.exs create mode 100644 src/couch_eval/README.md copy src/{fabric => couch_eval}/rebar.config (100%) copy src/{couch_pse_tests/src/couch_pse_tests.app.src => couch_eval/src/couch_eval.app.src} (80%) create mode 100644 src/couch_eval/src/couch_eval.erl create mode 100644 src/couch_expiring_cache/README.md copy src/{ddoc_cache/test/eunit/ddoc_cache_ev.erl => couch_expiring_cache/include/couch_expiring_cache.hrl} (78%) copy src/{fabric => couch_expiring_cache}/rebar.config (100%) copy src/{fabric/src/fabric.app.src => couch_expiring_cache/src/couch_expiring_cache.app.src} (81%) create mode 100644 src/couch_expiring_cache/src/couch_expiring_cache.erl create mode 100644 src/couch_expiring_cache/src/couch_expiring_cache_fdb.erl create mode 100644 src/couch_expiring_cache/src/couch_expiring_cache_server.erl create mode 100644 src/couch_expiring_cache/test/couch_expiring_cache_tests.erl create mode 100644 src/couch_jobs/.gitignore create mode 100644 src/couch_jobs/README.md copy src/{fabric => couch_jobs}/rebar.config (100%) copy src/{ddoc_cache/src/ddoc_cache.app.src => couch_jobs/src/couch_jobs.app.src} (74%) create mode 100644 src/couch_jobs/src/couch_jobs.erl create mode 100644 src/couch_jobs/src/couch_jobs.hrl create mode 100644 src/couch_jobs/src/couch_jobs_activity_monitor.erl copy src/{mem3/src/mem3_reshard_job_sup.erl => couch_jobs/src/couch_jobs_activity_monitor_sup.erl} (54%) copy src/{couch_replicator/src/couch_replicator_app.erl => couch_jobs/src/couch_jobs_app.erl} (80%) create mode 100644 src/couch_jobs/src/couch_jobs_fdb.erl create mode 100644 src/couch_jobs/src/couch_jobs_notifier.erl copy src/{mem3/src/mem3_reshard_job_sup.erl => couch_jobs/src/couch_jobs_notifier_sup.erl} (54%) create mode 100644 src/couch_jobs/src/couch_jobs_pending.erl create mode 100644 src/couch_jobs/src/couch_jobs_server.erl create mode 100644 src/couch_jobs/src/couch_jobs_sup.erl create mode 100644 src/couch_jobs/src/couch_jobs_type_monitor.erl create mode 100644 src/couch_jobs/test/couch_jobs_tests.erl create mode 100644 src/couch_js/README.md copy src/{rexi/src/rexi.app.src => couch_js/src/couch_js.app.src} (78%) create mode 100644 src/couch_js/src/couch_js.erl copy src/{couch_event/src/couch_event_app.erl => couch_js/src/couch_js_app.erl} (87%) copy src/{couch/src/couch_io_logger.erl => couch_js/src/couch_js_io_logger.erl} (98%) copy src/{couch/src/couch_native_process.erl => couch_js/src/couch_js_native_process.erl} (99%) copy src/{couch/src/couch_os_process.erl => couch_js/src/couch_js_os_process.erl} (95%) copy src/{couch/src/couch_proc_manager.erl => couch_js/src/couch_js_proc_manager.erl} (97%) copy src/{couch/src/couch_query_servers.erl => couch_js/src/couch_js_query_servers.erl} (98%) copy src/{couch_stats/src/couch_stats_sup.erl => couch_js/src/couch_js_sup.erl} (62%) create mode 100644 src/couch_js/test/couch_js_proc_manager_tests.erl copy src/{couch/test/eunit/couch_query_servers_tests.erl => couch_js/test/couch_js_query_servers_tests.erl} (76%) create mode 100644 src/couch_views/.gitignore create mode 100644 src/couch_views/README.md copy src/{couch/src/couch_rand.erl => couch_views/include/couch_views.hrl} (65%) copy src/{fabric => couch_views}/rebar.config (100%) copy src/{ddoc_cache/src/ddoc_cache.app.src => couch_views/src/couch_views.app.src} (74%) create mode 100644 src/couch_views/src/couch_views.erl copy src/{couch_event/src/couch_event_app.erl => couch_views/src/couch_views_app.erl} (87%) create mode 100644 src/couch_views/src/couch_views_encoding.erl create mode 100644 src/couch_views/src/couch_views_fdb.erl create mode 100644 src/couch_views/src/couch_views_indexer.erl create mode 100644 src/couch_views/src/couch_views_jobs.erl create mode 100644 src/couch_views/src/couch_views_reader.erl create mode 100644 src/couch_views/src/couch_views_server.erl create mode 100644 src/couch_views/src/couch_views_sup.erl create mode 100644 src/couch_views/src/couch_views_util.erl create mode 100644 src/couch_views/test/couch_views_encoding_test.erl create mode 100644 src/couch_views/test/couch_views_indexer_test.erl create mode 100644 src/couch_views/test/couch_views_info_test.erl create mode 100644 src/couch_views/test/couch_views_map_test.erl create mode 100644 src/couch_views/test/couch_views_size_test.erl create mode 100644 src/couch_views/test/couch_views_trace_index_test.erl create mode 100644 src/ctrace/README.md copy src/{fabric => ctrace}/rebar.config (100%) copy src/{rexi/src/rexi.app.src => ctrace/src/ctrace.app.src} (77%) create mode 100644 src/ctrace/src/ctrace.erl copy rel/files/eunit.config => src/ctrace/src/ctrace.hrl (80%) copy src/{couch_event/src/couch_event_app.erl => ctrace/src/ctrace_app.erl} (88%) create mode 100644 src/ctrace/src/ctrace_config.erl create mode 100644 src/ctrace/src/ctrace_dsl.erl copy src/{ddoc_cache/src/ddoc_cache_sup.erl => ctrace/src/ctrace_sup.erl} (62%) create mode 100644 src/ctrace/test/ctrace_config_test.erl create mode 100644 src/ctrace/test/ctrace_dsl_test.erl create mode 100644 src/ctrace/test/ctrace_test.erl create mode 100644 src/fabric/include/fabric2.hrl copy src/{rexi/src/rexi_app.erl => fabric/src/fabric2_app.erl} (73%) create mode 100644 src/fabric/src/fabric2_db.erl copy src/{couch/src/couch_db_plugin.erl => fabric/src/fabric2_db_plugin.erl} (84%) copy src/{mango/src/mango_epi.erl => fabric/src/fabric2_epi.erl} (91%) create mode 100644 src/fabric/src/fabric2_events.erl create mode 100644 src/fabric/src/fabric2_fdb.erl create mode 100644 src/fabric/src/fabric2_index.erl create mode 100644 src/fabric/src/fabric2_node_types.erl create mode 100644 src/fabric/src/fabric2_server.erl create mode 100644 src/fabric/src/fabric2_sup.erl create mode 100644 src/fabric/src/fabric2_txids.erl copy src/{couch/src/couch_users_db.erl => fabric/src/fabric2_users_db.erl} (79%) create mode 100644 src/fabric/src/fabric2_util.erl delete mode 100644 src/fabric/test/eunit/fabric_rpc_purge_tests.erl create mode 100644 src/fabric/test/fabric2_changes_fold_tests.erl create mode 100644 src/fabric/test/fabric2_db_crud_tests.erl create mode 100644 src/fabric/test/fabric2_db_misc_tests.erl create mode 100644 src/fabric/test/fabric2_db_security_tests.erl create mode 100644 src/fabric/test/fabric2_db_size_tests.erl create mode 100644 src/fabric/test/fabric2_dir_prefix_tests.erl create mode 100644 src/fabric/test/fabric2_doc_att_tests.erl create mode 100644 src/fabric/test/fabric2_doc_count_tests.erl create mode 100644 src/fabric/test/fabric2_doc_crud_tests.erl create mode 100644 src/fabric/test/fabric2_doc_fold_tests.erl create mode 100644 src/fabric/test/fabric2_doc_size_tests.erl create mode 100644 src/fabric/test/fabric2_fdb_tx_retry_tests.erl create mode 100644 src/fabric/test/fabric2_get_design_docs_tests.erl create mode 100644 src/fabric/test/fabric2_index_tests.erl create mode 100644 src/fabric/test/fabric2_local_doc_fold_tests.erl create mode 100644 src/fabric/test/fabric2_node_types_tests.erl create mode 100644 src/fabric/test/fabric2_rev_stemming.erl create mode 100644 src/fabric/test/fabric2_test.hrl create mode 100644 src/fabric/test/fabric2_test_util.erl copy src/{mem3/test/eunit/mem3_sync_security_test.erl => fabric/test/fabric2_trace_db_create_tests.erl} (52%) copy src/{mem3/test/eunit/mem3_sync_security_test.erl => fabric/test/fabric2_trace_db_delete_tests.erl} (52%) copy src/{mem3/test/eunit/mem3_sync_security_test.erl => fabric/test/fabric2_trace_db_open_tests.erl} (52%) create mode 100644 src/fabric/test/fabric2_trace_doc_create_tests.erl delete mode 100644 src/jwtf/.gitignore delete mode 100644 src/jwtf/LICENSE delete mode 100644 src/jwtf/README.md delete mode 100644 src/jwtf/rebar.config delete mode 100644 src/jwtf/src/jwtf.app.src delete mode 100644 src/jwtf/src/jwtf.erl delete mode 100644 src/jwtf/src/jwtf_app.erl delete mode 100644 src/jwtf/src/jwtf_keystore.erl delete mode 100644 src/jwtf/src/jwtf_sup.erl delete mode 100644 src/jwtf/test/jwtf_tests.erl delete mode 100644 src/mango/rebar.config copy src/dreyfus/test/elixir/run => test/elixir/run-only (54%) delete mode 100644 test/elixir/test/config/test-config.ini delete mode 100644 test/elixir/test/design_docs_query_test.exs delete mode 100644 test/elixir/test/design_options_test.exs delete mode 100644 test/elixir/test/design_paths_test.exs delete mode 100644 test/elixir/test/http_test.exs delete mode 100644 test/elixir/test/jsonp_test.exs delete mode 100644 test/elixir/test/jwtauth_test.exs create mode 100644 test/elixir/test/map_test.exs delete mode 100644 test/elixir/test/method_override_test.exs delete mode 100644 test/elixir/test/partition_all_docs_test.exs delete mode 100644 test/elixir/test/partition_crud_test.exs delete mode 100644 test/elixir/test/partition_ddoc_test.exs delete mode 100644 test/elixir/test/partition_design_docs_test.exs delete mode 100644 test/elixir/test/partition_helpers.exs delete mode 100644 test/elixir/test/partition_mango_test.exs delete mode 100644 test/elixir/test/partition_size_limit_test.exs delete mode 100644 test/elixir/test/partition_size_test.exs delete mode 100644 test/elixir/test/partition_view_test.exs delete mode 100644 test/elixir/test/partition_view_update_test.exs delete mode 100644 test/elixir/test/proxyauth_test.exs delete mode 100644 test/elixir/test/purge_test.exs delete mode 100644 test/elixir/test/reshard_all_docs_test.exs delete mode 100644 test/elixir/test/reshard_basic_test.exs delete mode 100644 test/elixir/test/reshard_changes_feed.exs delete mode 100644 test/elixir/test/reshard_helpers.exs delete mode 100644 test/elixir/test/view_pagination_test.exs