Changes since 1.4.0:
- COUCHDB-1781: The official documentation has been overhauled.
- New administration UI, included as an experimental preview.
- COUCHDB-1888: Fixed an issue where admin users would be restricted
by the public_fields feature.
- Fixed an issue with the JavaScript CLI test runner.
- COUCHDB-1867: An experimental plugin feature has been added.
- COUCHDB-1894: An experimental Node.js-based query server runtime added.
- COUCHDB-1901: Better retry mechanism for transferring attachments during
replication.
CouchDB 1.4.0
* We now support Erlang/OTP R16B and R16B01; the minimum required
version is R14B.
* User document role values must now be strings. Other types of values
will be refused when saving the user document.
* COUCHDB-1684: Support for server-wide changes feed reporting on
creation, updates and deletion of databases.
* COUCHDB-1139: it's possible to apply list functions to _all_docs view.
* Automatic loading of CouchDB plugins.
* COUCHDB-1634: Reduce PBKDF2 work factor.
* Allow storing pre-hashed admin passwords via _config API.
* COUCHDB-1772: Prevent invalid JSON output when using all_or_nothing
_bulk_docs API.
* Add a configurable whitelist of user document properties.
* COUCHDB-1852: Support Last-Event-ID header in EventSource changes
feeds.
* Much improved documentation, including an expanded description of
validate_doc_update functions and a description of how CouchDB handles
JSON number values.
* COUCHDB-1632: Ignore epilogues in multipart/related MIME attachments.
* Split up replicator_db tests into multiple independent tests.
CouchDB 1.3.1
* Tolerate missing source and target fields in _replicator docs (COUCHDB-1788).
* Don't log about missing .compact files.
* Fix bug in WARN level logging from 1.3.0 (COUCHDB-1794).
* Fix the -S option to couchjs to increase memory limits (COUCHDB-1792).
* Improve documentation: better structure, improve language, less duplication.
* Improvements to test suite and VPATH build system.
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
Version 1.3.0
-------------
HTTP Interface:
* No longer rewrites the X-CouchDB-Requested-Path during recursive calls to the
rewriter.
* Limit recursion depth in the URL rewriter. Defaults to a maximum of 100
invocations but is configurable.
* Fix _session for IE7.
* Added Server-Sent Events protocol to db changes API. See
http://www.w3.org/TR/eventsource/ for details.
* Make password hashing synchronous when using the /_config/admins API.
* Include user name in show/list ETags.
* Experimental support for Cross-Origin Resource Sharing (CORS). See
http://www.w3.org/TR/cors/ for details.
Replicator:
* The replicator will use a new server-wide UUID in checkpoint IDs to
improve the chances of an efficient resume.
Storage System:
* Fixed unnecessary conflict when deleting and creating a
document in the same batch.
View Server:
* Additional response headers may be varied prior to send().
* GetRow() is now side-effect free.
Futon:
* Disabled the link to the Futon test suite. These tests were causing problems
when run from a browser, and are now available via the CLI instead.
* Added view request duration to Futon.
* Disable buttons for actions that the user doesn't have permissions to.
Security:
* Passwords are now hashed using the PBKDF2 algorithm with a configurable work
factor.
Test Suite:
* Moved the JS test suite to the CLI.
* Improved tracebacks printed by the JS CLI tests.
* Improved the reliability of a number of tests.
UUID Algorithms:
* Added the utc_id algorithm.
URL Rewriter & Vhosts:
* Database name is encoded during rewriting (allowing embedded /'s, etc).
* Reset rewrite counter on new request, avoiding unnecessary request failures
due to bogus rewrite limit reports.
Build System:
* C/C++ compiler detection has been improved.
* Autoconf v2.63 is now required if building from Git checkout directly. See
DEVELOPERS file for more details.
* Fixed issue in couchdb script where stopped status returns before process
exits.
Version 1.2.2
-------------
HTTP Interface:
* Reset rewrite counter on new request, avoiding unnecessary request failures
due to bogus rewrite limit reports.
Build System:
* Fixed issue in couchdb script where stopped status returns before process
exits.
Changes in 1.2.1:
* Fixed CVE-2012-5641: Apache CouchDB Information disclosure via unescaped
backslashes in URLs on Windows
* Fixed CVE-2012-5649: Apache CouchDB JSONP arbitrary code execution with Adobe
Flash
* Fixed CVE-2012-5650: Apache CouchDB DOM based Cross-Site Scripting via Futon
UI
* Fix various bugs in the URL rewriter when recursion is involved.
* Fix couchdb start script.
* Futon: Disable buttons that aren't available for the logged-in user.
* Fix potential replication timeouts.
* Change use of signals to avoid broken view groups.
Changes in 1.2.0
* Updated bundled erlang_oauth library to the latest version.
* cURL is no longer required to build CouchDB as it is only
required by the command line JS test runner.
* Added a native JSON parser.
* Optional file compression (database and view index files). This feature
is enabled by default.
* Several performance improvements, especially regarding database
writes and view indexing.
* Added a 'data_size' property to database and view group
information URIs.
* Added support for automatic compaction. This feature is disabled
by default, but it can be enabled via the .ini configuration.
* A new replicator implementation that offers more performance
and configuration options.
* Added optional field 'since_seq' to replication objects/documents.
* Simpler replication cancelation.
* The _active_tasks API now exposes more granular fields for each
task type.
* Futon's 'Status' screen (active tasks) now displays two new task
status fields: 'Started on' and 'Updated on'.
* Added built-in changes feed filter '_view'.
* Fixed old index file descriptor leaks after a view cleanup.
* Performance improvements for the built-in changes feed filters
'_doc_ids' and '_design'.
* Fixes to the '_changes' feed heartbeat option when combined with
a filter. It affected continuous pull replications with a filter.
* Fix use of OAuth with VHosts and URL rewriting.
* OAuth secrets can now be stored in the users system database.
* Documents in the _users database can no longer be read by everyone.
* Confidential information in the _replication database can no longer
be read by everyone.
* Password hashes are now calculated by CouchDB instead of the client.
* Allow persistent authentication cookies.
* The requested_path property of query server request objects now has
the path requested by clients before VHosts and rewriting.
* Fixed incorrect reduce query results when using pagination parameters.
* Made icu_driver work with Erlang R15B and later.
* Improvements to the build system and etap test suite.
* Avoid invalidating view indexes when running out of file descriptors.
* Log correct stacktrace in all cases.
* Improvements to log messages for file-related errors.
Changes:
* Support SpiderMonkey 1.8.5
* Add configurable maximum to the number of bytes returned by _log.
* Allow CommonJS modules to be an empty string.
* Bump minimum Erlang version to R13B02.
* Do not run deleted validate_doc_update functions.
* ETags for views include current sequence if include_docs=true.
* Fix bug where duplicates can appear in _changes feed.
* Fix bug where update handlers break after conflict resolution.
* Fix bug with _replicator where include "filter" could crash couch.
* Fix crashes when compacting large views.
* Fix file descriptor leak in _log
* Fix missing revisions in _changes?style=all_docs.
* Improve handling of compaction at max_dbs_open limit.
* JSONP responses now send "text/javascript" for Content-Type.
* Link to ICU 4.2 on Windows.
* Permit forward slashes in path to update functions.
* Reap couchjs processes that hit reduce_overflow error.
* Status code can be specified in update handlers.
* Support provides() in show functions.
* _view_cleanup when ddoc has no views now removes all index files.
* max_replication_retry_count now supports "infinity".
* Fix replication crash when source database has a document with empty ID.
* Fix deadlock when assigning couchjs processes to serve requests.
* Fixes to the document multipart PUT API.
* Fixes regarding file descriptor leaks for databases with views.
Also fixed INSTALL_PROGRAM patch to not break install-sh.
Changes since 1.0.1
============================================================================
HTTP Interface:
* Native SSL support.
* Added support for HTTP range requests for attachments.
* Added built-in filters for '_changes': '_doc_ids' and '_design'.
* Added configuration option for TCP_NODELAY aka "Nagle".
* Allow POSTing arguments to '_changes'.
* Allow 'keys' parameter for GET requests to views.
* Allow wildcards in vhosts definitions.
* More granular ETag support for views.
* More flexible URL rewriter.
* Added support for recognizing "Q values" and media parameters in
HTTP Accept headers.
* Validate doc ids that come from a PUT to a URL.
Externals:
* Added OS Process module to manage daemons outside of CouchDB.
* Added HTTP Proxy handler for more scalable externals.
Replicator:
* Added '_replicator' database to manage replications.
* Fixed issues when an endpoint is a remote database accessible via SSL.
* Added support for continuous by-doc-IDs replication.
* Fix issue where revision info was omitted when replicating attachments.
* Integrity of attachment replication is now verified by MD5.
Storage System:
* Multiple micro-optimizations when reading data.
View Server:
* Added CommonJS support to map functions.
* Added 'stale=update_after' query option that triggers a view update after
returning a 'stale=ok' response.
* Warn about empty result caused by 'startkey' and 'endkey' limiting.
* Built-in reduce function '_sum' now accepts lists of integers as input.
* Added view query aliases start_key, end_key, start_key_doc_id and
end_key_doc_id.
Futon:
* Added a "change password"-feature to Futon.
URL Rewriter & Vhosts:
* Fix for variable substituion
Apache CouchDB is a distributed, fault-tolerant and schema-free document-
oriented database accessible via a RESTful HTTP/JSON API. Among other
features, it provides robust, incremental replication with bi-directional
conflict detection and resolution, and is queryable and indexable using
a table-oriented view engine with JavaScript acting as the default view
definition language.
CouchDB is written in Erlang, but can be easily accessed from any
environment that provides means to make HTTP requests. There are
a multitude of third-party client libraries that make this even easier
for a variety of programming languages and environments.
(Based on wip/couchdb.)