1
.. Licensed under the Apache License, Version 2.0 (the "License"); you may not
2
.. use this file except in compliance with the License. You may obtain a copy of
5
.. http://www.apache.org/licenses/LICENSE-2.0
7
.. Unless required by applicable law or agreed to in writing, software
8
.. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9
.. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10
.. License for the specific language governing permissions and limitations under
25
.. _release/0.11.x/upgrade:
32
:ref:`release/0.11.2` contains important security fixes. Previous `0.11.x`
33
releases are not recommended for regular usage.
35
Changes Between 0.11.0 and 0.11.1
36
---------------------------------
38
- ``_log`` and ``_temp_views`` are now admin-only resources.
39
- ``_bulk_docs`` now requires a valid `Content-Type` header of
41
- `JSONP` is disabled by default. An .ini option was added to selectively
43
- The ``key``, ``startkey`` and ``endkey`` properties of the request object
44
passed to :ref:`list <listfun>` and :ref:`show <showfun>` functions now
45
contain JSON objects representing the URL encoded string values in the query
46
string. Previously, these properties contained strings which needed to be
47
converted to JSON before using.
50
Changes Between 0.10.x and 0.11.0
51
---------------------------------
53
show, list, update and validation functions
54
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
56
The ``req`` argument to show, list, update and validation functions now contains
57
the member method with the specified HTTP method of the current request.
58
Previously, this member was called ``verb``. ``method`` is following :rfc:`2616`
64
The `/db/_admins` handler has been removed and replaced with a
65
:ref:`/db/_security <api/db/security>` object. Any existing `_admins` will be
66
dropped and need to be added to the security object again. The reason for this
67
is that the old system made no distinction between names and roles, while the
68
new one does, so there is no way to automatically upgrade the old admins list.
70
The security object has 2 special fields, ``admins`` and ``readers``, which
71
contain lists of names and roles which are admins or readers on that database.
72
Anything else may be stored in other fields on the security object. The entire
73
object is made available to validation functions.
78
JSON handling in the query server has been upgraded to use `json2.js`_.
79
This allows us to use faster native JSON serialization when it is available.
81
In previous versions, attempts to serialize undefined would throw an exception,
82
causing the doc that emitted undefined to be dropped from the view index.
83
The new behavior is to serialize undefined as null. Applications depending on
84
the old behavior will need to explicitly check for undefined.
86
Another change is that E4X's XML objects will not automatically be
87
stringified. XML users will need to call ``my_xml_object.toXMLString()``
88
to return a string value. :commit:`8d3b7ab3`
90
.. _json2.js: https://github.com/douglascrockford/JSON-js/blob/master/json2.js
96
The default configuration has been changed to avoid causing basic-auth popups
97
which result from sending the WWW-Authenticate header. To enable basic-auth
98
popups, uncomment the :config:option:`httpd/WWW-Authenticate` line in
101
Query server line protocol
102
^^^^^^^^^^^^^^^^^^^^^^^^^^
104
The query server line protocol has changed for all functions except
105
:ref:`map <qs/map_doc>`, :ref:`reduce <qs/reduce>`, and
106
:ref:`rereduce <qs/rereduce>`. This allows us to cache the entire design
107
document in the query server process, which results in faster performance for
108
common operations. It also gives more flexibility to query server
109
implementators and shouldn't require major changes in the future when adding
110
new query server features.
115
JSON request bodies are validated for proper UTF-8 before saving, instead of
116
waiting to fail on subsequent read requests.
121
Continuous changes are now newline delimited, instead of having each line
133
* User documents can now be deleted by admins or the user.
138
* Add some Futon files that were missing from the Makefile.
143
* Better error messages on invalid URL requests.
148
* Fix bug when pushing design docs by non-admins, which was hanging the
149
replicator for no good reason.
150
* Fix bug when pulling design documents from a source that requires
156
* Avoid potential DOS attack by guarding all creation of atoms.
157
* Fixed :ref:`cve/2010-2234`
165
Build and System Integration
166
----------------------------
168
* Output of `couchdb --help` has been improved.
169
* Fixed compatibility with the Erlang R14 series.
170
* Fixed warnings on Linux builds.
171
* Fixed build error when aclocal needs to be called during the build.
173
* Fixed compatibility with Solaris.
178
* Fixed timeout with large .ini files.
183
* Use "expando links" for over-long document values in Futon.
184
* Added continuous replication option.
185
* Added option to replicating test results anonymously to a community
187
* Allow creation and deletion of config entries.
188
* Fixed display issues with doc ids that have escaped characters.
189
* Fixed various UI issues.
194
* Mask passwords in active tasks and logging.
195
* Update mochijson2 to allow output of BigNums not in float form.
196
* Added support for X-HTTP-METHOD-OVERRIDE.
197
* Better error message for database names.
198
* Disable jsonp by default.
199
* Accept gzip encoded standalone attachments.
200
* Made max_concurrent_connections configurable.
201
* Made changes API more robust.
202
* Send newly generated document rev to callers of an update function.
207
* Added tests for couch.js and jquery.couch.js
208
* Added changes handler to jquery.couch.js.
209
* Added cache busting to jquery.couch.js if the user agent is msie.
210
* Added support for multi-document-fetch (via _all_docs) to jquery.couch.js.
211
* Added attachment versioning to jquery.couch.js.
212
* Added option to control ensure_full_commit to jquery.couch.js.
213
* Added list functionality to jquery.couch.js.
214
* Fixed issues where bulkSave() wasn't sending a POST body.
219
* Log HEAD requests as HEAD, not GET.
220
* Keep massive JSON blobs out of the error log.
221
* Fixed a timeout issue.
226
* Refactored various internal APIs related to attachment streaming.
227
* Fixed hanging replication.
228
* Fixed keepalive issue.
233
* Added authentication redirect URL to log in clients.
234
* Fixed query parameter encoding issue in oauth.js.
235
* Made authentication timeout configurable.
236
* Temporary views are now admin-only resources.
241
* Don't require a revpos for attachment stubs.
242
* Added checking to ensure when a revpos is sent with an attachment stub,
244
* Make file deletions async to avoid pauses during compaction and db
246
* Fixed for wrong offset when writing headers and converting them to blocks,
247
only triggered when header is larger than 4k.
248
* Preserve _revs_limit and instance_start_time after compaction.
253
* Made the test suite overall more reliable.
258
* Provide a UUID to update functions (and all other functions) that they can
259
use to create new docs.
260
* Upgrade CommonJS modules support to 1.1.1.
261
* Fixed erlang filter funs and normalize filter fun API.
262
* Fixed hang in view shutdown.
264
URL Rewriter & Vhosts
265
---------------------
267
* Allow more complex keys in rewriter.
268
* Allow global rewrites so system defaults are available in vhosts.
269
* Allow isolation of databases with vhosts.
270
* Fix issue with passing variables to query parameters.
278
Build and System Integration
279
----------------------------
281
* Updated and improved source documentation.
282
* Fixed distribution preparation for building on Mac OS X.
283
* Added support for building a Windows installer as part of 'make dist'.
284
* Bug fix for building couch.app's module list.
285
* ETap tests are now run during make distcheck. This included a number of
286
updates to the build system to properly support VPATH builds.
287
* Gavin McDonald setup a build-bot instance. More info can be found at
288
http://ci.apache.org/buildbot.html
293
* Added a button for view compaction.
294
* JSON strings are now displayed as-is in the document view, without the
295
escaping of new-lines and quotes. That dramatically improves readability of
297
* Same goes for editing of JSON string values. When a change to a field value is
298
submitted, and the value is not valid JSON it is assumed to be a string. This
299
improves editing of multi-line strings a lot.
300
* Hitting tab in textareas no longer moves focus to the next form field, but
301
simply inserts a tab character at the current caret position.
302
* Fixed some font declarations.
307
* Provide Content-MD5 header support for attachments.
308
* Added URL Rewriter handler.
309
* Added virtual host handling.
314
* Added option to implicitly create replication target databases.
315
* Avoid leaking file descriptors on automatic replication restarts.
316
* Added option to replicate a list of documents by id.
317
* Allow continuous replication to be cancelled.
322
* Statistics are now calculated for a moving window instead of non-overlapping
324
* Fixed a problem with statistics timers and system sleep.
325
* Moved statistic names to a term file in the priv directory.
330
* Fixed CVE-2010-0009: Apache CouchDB Timing Attack Vulnerability.
331
* Added default cookie-authentication and users database.
332
* Added Futon user interface for user signup and login.
333
* Added per-database reader access control lists.
334
* Added per-database security object for configuration data in validation
336
* Added proxy authentication handler
341
* Adds batching of multiple updating requests, to improve throughput with many
342
writers. Removed the now redundant couch_batch_save module.
343
* Adds configurable compression of attachments.
348
* Added optional 'raw' binary collation for faster view builds where Unicode
349
collation is not important.
350
* Improved view index build time by reducing ICU collation callouts.
351
* Improved view information objects.
352
* Bug fix for partial updates during view builds.
353
* Move query server to a design-doc based protocol.
354
* Use json2.js for JSON serialization for compatiblity with native JSON.
355
* Major refactoring of couchjs to lay the groundwork for disabling cURL
356
support. The new HTTP interaction acts like a synchronous XHR. Example usage
357
of the new system is in the JavaScript CLI test runner.