16.13. 0.11.x Branch

16.13.1. Upgrade Notes

Warning

Version 0.11.2 contains important security fixes. Previous _0.11.x_releases are not recommended for regular usage.

16.13.1.1. Changes Between 0.11.0 and 0.11.1

  • _log and _temp_views are now admin-only resources.
  • bulk_docs now requires a valid _Content-Type header ofapplication/json.
  • JSONP is disabled by default. An .ini option was added to selectivelyenable it.
  • The key, startkey and endkey properties of the request objectpassed to list and show functions nowcontain JSON objects representing the URL encoded string values in the querystring. Previously, these properties contained strings which needed to beconverted to JSON before using.

16.13.1.2. Changes Between 0.10.x and 0.11.0

16.13.1.2.1. show, list, update and validation functions

The req argument to show, list, update and validation functions now containsthe member method with the specified HTTP method of the current request.Previously, this member was called verb. method is following RFC 2616(HTTP 1.1) closer.

16.13.1.2.2. _admins -> _security

The /db/_admins handler has been removed and replaced with a/db/_security object. Any existing _admins will bedropped and need to be added to the security object again. The reason for thisis that the old system made no distinction between names and roles, while thenew one does, so there is no way to automatically upgrade the old admins list.

The security object has 2 special fields, admins and readers, whichcontain lists of names and roles which are admins or readers on that database.Anything else may be stored in other fields on the security object. The entireobject is made available to validation functions.

16.13.1.2.3. json2.js

JSON handling in the query server has been upgraded to use json2.js.This allows us to use faster native JSON serialization when it is available.

In previous versions, attempts to serialize undefined would throw an exception,causing the doc that emitted undefined to be dropped from the view index.The new behavior is to serialize undefined as null. Applications depending onthe old behavior will need to explicitly check for undefined.

Another change is that E4X’s XML objects will not automatically bestringified. XML users will need to call my_xml_object.toXMLString()to return a string value. #8d3b7ab3

16.13.1.2.4. WWW-Authenticate

The default configuration has been changed to avoid causing basic-auth popupswhich result from sending the WWW-Authenticate header. To enable basic-authpopups, uncomment the httpd/WWW-Authenticate line inlocal.ini.

16.13.1.2.5. Query server line protocol

The query server line protocol has changed for all functions exceptmap, reduce, andrereduce. This allows us to cache the entire designdocument in the query server process, which results in faster performance forcommon operations. It also gives more flexibility to query serverimplementators and shouldn’t require major changes in the future when addingnew query server features.

16.13.1.2.6. UTF8 JSON

JSON request bodies are validated for proper UTF-8 before saving, instead ofwaiting to fail on subsequent read requests.

16.13.1.2.7. _changes line format

Continuous changes are now newline delimited, instead of having each linefollowed by a comma.

16.13.2. Version 0.11.2

16.13.2.1. Authentication

  • User documents can now be deleted by admins or the user.

16.13.2.2. Futon

  • Add some Futon files that were missing from the Makefile.

16.13.2.3. HTTP Interface

  • Better error messages on invalid URL requests.

16.13.2.4. Replicator

  • Fix bug when pushing design docs by non-admins, which was hanging thereplicator for no good reason.
  • Fix bug when pulling design documents from a source that requiresbasic-auth.

16.13.2.5. Security

16.13.3. Version 0.11.1

16.13.3.1. Build and System Integration

  • Output of couchdb –help has been improved.
  • Fixed compatibility with the Erlang R14 series.
  • Fixed warnings on Linux builds.
  • Fixed build error when aclocal needs to be called during the build.
  • Require ICU 4.3.1.
  • Fixed compatibility with Solaris.

16.13.3.2. Configuration System

  • Fixed timeout with large .ini files.

16.13.3.3. Futon

  • Use “expando links” for over-long document values in Futon.
  • Added continuous replication option.
  • Added option to replicating test results anonymously to a communityCouchDB instance.
  • Allow creation and deletion of config entries.
  • Fixed display issues with doc ids that have escaped characters.
  • Fixed various UI issues.

16.13.3.4. HTTP Interface

  • Mask passwords in active tasks and logging.
  • Update mochijson2 to allow output of BigNums not in float form.
  • Added support for X-HTTP-METHOD-OVERRIDE.
  • Better error message for database names.
  • Disable jsonp by default.
  • Accept gzip encoded standalone attachments.
  • Made max_concurrent_connections configurable.
  • Made changes API more robust.
  • Send newly generated document rev to callers of an update function.

16.13.3.5. JavaScript Clients

  • Added tests for couch.js and jquery.couch.js
  • Added changes handler to jquery.couch.js.
  • Added cache busting to jquery.couch.js if the user agent is msie.
  • Added support for multi-document-fetch (via _all_docs) to jquery.couch.js.
  • Added attachment versioning to jquery.couch.js.
  • Added option to control ensure_full_commit to jquery.couch.js.
  • Added list functionality to jquery.couch.js.
  • Fixed issues where bulkSave() wasn’t sending a POST body.

16.13.3.6. Log System

  • Log HEAD requests as HEAD, not GET.
  • Keep massive JSON blobs out of the error log.
  • Fixed a timeout issue.

16.13.3.7. Replication System

  • Refactored various internal APIs related to attachment streaming.
  • Fixed hanging replication.
  • Fixed keepalive issue.

16.13.3.8. Security

  • Added authentication redirect URL to log in clients.
  • Fixed query parameter encoding issue in oauth.js.
  • Made authentication timeout configurable.
  • Temporary views are now admin-only resources.

16.13.3.9. Storage System

  • Don’t require a revpos for attachment stubs.
  • Added checking to ensure when a revpos is sent with an attachment stub,it’s correct.
  • Make file deletions async to avoid pauses during compaction and dbdeletion.
  • Fixed for wrong offset when writing headers and converting them to blocks,only triggered when header is larger than 4k.
  • Preserve _revs_limit and instance_start_time after compaction.

16.13.3.10. Test Suite

  • Made the test suite overall more reliable.

16.13.3.11. View Server

  • Provide a UUID to update functions (and all other functions) that they canuse to create new docs.
  • Upgrade CommonJS modules support to 1.1.1.
  • Fixed erlang filter funs and normalize filter fun API.
  • Fixed hang in view shutdown.

16.13.3.12. URL Rewriter & Vhosts

  • Allow more complex keys in rewriter.
  • Allow global rewrites so system defaults are available in vhosts.
  • Allow isolation of databases with vhosts.
  • Fix issue with passing variables to query parameters.

16.13.4. Version 0.11.0

16.13.4.1. Build and System Integration

  • Updated and improved source documentation.
  • Fixed distribution preparation for building on Mac OS X.
  • Added support for building a Windows installer as part of ‘make dist’.
  • Bug fix for building couch.app’s module list.
  • ETap tests are now run during make distcheck. This included a number ofupdates to the build system to properly support VPATH builds.
  • Gavin McDonald set up a build-bot instance. More info can be found athttp://ci.apache.org/buildbot.html

16.13.4.2. Futon

  • Added a button for view compaction.
  • JSON strings are now displayed as-is in the document view, without theescaping of new-lines and quotes. That dramatically improves readability ofmulti-line strings.
  • Same goes for editing of JSON string values. When a change to a field value issubmitted, and the value is not valid JSON it is assumed to be a string. Thisimproves editing of multi-line strings a lot.
  • Hitting tab in textareas no longer moves focus to the next form field, butsimply inserts a tab character at the current caret position.
  • Fixed some font declarations.

16.13.4.3. HTTP Interface

  • Provide Content-MD5 header support for attachments.
  • Added URL Rewriter handler.
  • Added virtual host handling.

16.13.4.4. Replication

  • Added option to implicitly create replication target databases.
  • Avoid leaking file descriptors on automatic replication restarts.
  • Added option to replicate a list of documents by id.
  • Allow continuous replication to be cancelled.

16.13.4.5. Runtime Statistics

  • Statistics are now calculated for a moving window instead of non-overlappingtimeframes.
  • Fixed a problem with statistics timers and system sleep.
  • Moved statistic names to a term file in the priv directory.

16.13.4.6. Security

  • Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.
  • Added default cookie-authentication and users database.
  • Added Futon user interface for user signup and login.
  • Added per-database reader access control lists.
  • Added per-database security object for configuration data in validationfunctions.
  • Added proxy authentication handler

16.13.4.7. Storage System

  • Adds batching of multiple updating requests, to improve throughput with manywriters. Removed the now redundant couch_batch_save module.
  • Adds configurable compression of attachments.

16.13.4.8. View Server

  • Added optional ‘raw’ binary collation for faster view builds where Unicodecollation is not important.
  • Improved view index build time by reducing ICU collation callouts.
  • Improved view information objects.
  • Bug fix for partial updates during view builds.
  • Move query server to a design-doc based protocol.
  • Use json2.js for JSON serialization for compatiblity with native JSON.
  • Major refactoring of couchjs to lay the groundwork for disabling cURLsupport. The new HTTP interaction acts like a synchronous XHR. Example usageof the new system is in the JavaScript CLI test runner.

原文: http://docs.couchdb.org/en/stable/whatsnew/0.11.html