1.16. 0.11.x分支¶
1.16.1. 升级说明¶
警告
0.11.2版本 包含重要的安全修复。上一个 0.11.x 不建议定期使用发行版。
1.16.1.1. 0.11.0和0.11.1之间的变化¶
1.16.1.2. 在0.10.x和0.11.0之间更改¶
1.16.1.2.1. 显示、列出、更新和验证功能¶
这个 req
show、list、update和validation函数的参数现在包含具有当前请求的指定HTTP方法的成员方法。以前,此成员被调用 verb
. method
正在跟踪 RFC 2616 (HTTP 1.1)关闭。
1.16.1.2.2. _安全管理员¶
这个 /db/_admins handler has been removed and replaced with a /db/_security object. Any existing `_ admins`将被删除,需要重新添加到安全对象中。其原因是旧系统没有区分名称和角色,而新系统则有区别,因此无法自动升级旧的管理员列表。
安全对象有两个特殊字段, admins
和 readers
,其中包含该数据库的管理员或读者的名称和角色列表。其他任何内容都可以存储在安全对象的其他字段中。整个对象可供验证函数使用。
1.16.1.2.3. json2.js¶
查询服务器中的JSON处理已升级为使用 json2.js . 这使我们能够在本地JSON序列化可用时使用更快。
在以前的版本中,尝试序列化undefined将引发异常,导致发出undefined的文档从视图索引中删除。新的行为是将undefined序列化为null。依赖于旧行为的应用程序将需要显式检查未定义的。
另一个变化是E4X的XML对象不会自动被字符串化。XML用户需要调用 my_xml_object.toXMLString()
返回字符串值。 #8d3b7ab3
1.16.1.2.4. WWW认证¶
默认配置已更改,以避免由于发送WWW Authenticate报头而导致的基本身份验证弹出窗口。要启用基本身份验证弹出窗口,请取消对config选项的注释 httpd/WWW-Authenticate
行在 local.ini .
1.16.1.2.5. 查询服务器线路协议¶
除了 map , reduce 和 rereduce . 这使我们能够在查询服务器进程中缓存整个设计文档,从而提高常见操作的性能。它还为查询服务器实现者提供了更大的灵活性,并且在将来添加新的查询服务器特性时不需要进行重大更改。
1.16.1.2.6. UTF8 JSON¶
在保存之前,JSON请求体验证UTF-8是否正确,而不是等待后续读取请求失败。
1.16.1.2.7. _更改行格式¶
连续更改现在用换行符分隔,而不是每行后面都有逗号。
1.16.2. 0.11.2版本¶
1.16.2.1. 认证¶
- 用户文档现在可以被管理员或用户删除。
1.16.2.2. 蒲团¶
- 添加Makefile中缺少的一些Futon文件。
1.16.2.3. HTTP接口¶
- 对无效的URL请求提供更好的错误消息。
1.16.2.4. 复制因子¶
- 修正了非管理员推送设计文档时的错误,这是因为没有好的理由而挂起了复制器。
- 修复从需要基本身份验证的源中提取设计文档时的错误。
1.16.2.5. 安全性¶
- 通过保护所有产生的原子来避免潜在的DOS攻击。
- 固定的 CVE-2010-2234:Apache CouchDB跨站点请求伪造攻击
1.16.3. 0.11版本¶
1.16.3.1. 构建和系统集成¶
- 产量 couchdb --help 已经改进了。
- 修正了与Erlang R14系列的兼容性。
- 修复了Linux版本上的警告。
- 修复了在生成期间需要调用aclocal时的生成错误。
- 需要重症监护病房4.3.1。
- 修复了与Solaris的兼容性。
1.16.3.2. 配置系统¶
- 修正了大.ini文件超时的问题。
1.16.3.3. 蒲团¶
- 在Futon中使用“expando links”来处理过长的文档值。
- 添加了连续复制选项。
- 添加了将测试结果匿名复制到社区CouchDB实例的选项。
- 允许创建和删除配置项。
- 修复了包含转义字符的文档ID的显示问题。
- 修复了各种UI问题。
1.16.3.4. HTTP接口¶
- 在活动任务和日志中屏蔽密码。
- 更新mochijson2以允许bignum的输出不是浮点形式。
- 添加了对X-HTTP-METHOD-OVERRIDE的支持。
- 更好的数据库名称错误消息。
- 默认情况下禁用jsonp。
- 接受gzip编码的独立附件。
- 使最大并发连接可配置。
- 使更改API更加健壮。
- 将新生成的文档版本发送给更新函数的调用方。
1.16.3.5. JavaScript客户端¶
- 添加的测试沙发.js以及jquery.couch.js
- 已将更改处理程序添加到jquery.couch.js.
- 添加缓存破坏到jquery.couch.js如果用户代理是msie。
- 增加了对多文档获取的支持(通过“所有文档”)到jquery.couch.js.
- 已将附件版本控制添加到jquery.couch.js.
- 添加了控制选项,以确保“完全”提交到jquery.couch.js.
- 将列表功能添加到jquery.couch.js.
- 修正了bulkSave()没有发送POST主体的问题。
1.16.3.6. 日志系统¶
- 将HEAD请求记录为HEAD,而不是GET。
- 将大量JSON blob从错误日志中排除。
- 修正了超时问题。
1.16.3.7. 复制系统¶
- 重构了与附件流相关的各种内部API。
- 修复了挂起复制。
- 修正了keepalive问题。
1.16.3.8. 安全性¶
- 添加了登录客户端的身份验证重定向URL。
- 修正了查询参数编码问题oauth.js版.
- 使身份验证超时可配置。
- 临时视图现在是仅供管理员使用的资源。
1.16.3.9. 存储系统¶
- 附件存根不需要revpos。
- 添加了检查功能,以确保在发送带有附件存根的revpos时,它是正确的。
- 使文件删除异步,以避免压缩和数据库删除期间的暂停。
- 修正了写入头并将其转换为块时的错误偏移,仅当头大于4k时触发。
- 压缩后保留_revs_limit和实例启动时间。
1.16.3.10. 测试套件¶
- 使测试套件整体上更加可靠。
1.16.3.11. 查看服务器¶
- 提供一个UUID来更新函数(以及所有其他函数),这些函数可以用来创建新文档。
- 升级CommonJS-modules-support至1.1.1版本。
- 修正了erlang过滤器函数和规范化过滤器函数API。
- 修正了挂起视图关闭。
1.16.3.12. URL重写器和Vhosts¶
- 允许在重写器中使用更复杂的键。
- 允许全局重写,以便vhost中的系统默认值可用。
- 允许使用VHOST隔离数据库。
- 修正了将变量传递给查询参数的问题。
1.16.4. 版本0.11.0¶
1.16.4.1. 构建和系统集成¶
- 更新和改进源文档。
- 在macosx上构建的固定分发准备。
- 添加了作为“make dist”的一部分来构建Windows安装程序的支持。
- 建筑缺陷修复沙发应用程序的模块列表。
- ETap测试现在在makedistcheck期间运行。这包括对构建系统的一些更新,以正确地支持VPATH构建。
- gavinmcdonald设置了一个buildbot实例。更多信息请访问http://ci.apache.org/buildbot.html
1.16.4.2. 蒲团¶
- 添加了视图压缩按钮。
- JSON字符串现在在document视图中按原样显示,没有换行和引号。这大大提高了多行字符串的可读性。
- JSON字符串值的编辑也是如此。当提交对字段值的更改时,如果该值不是有效的JSON,则假定该值为字符串。这大大改进了多行字符串的编辑。
- 在textareas中点击tab键不再将焦点移动到下一个表单域,而是在当前插入符号位置插入一个制表符字符。
- 修正了一些字体声明。
1.16.4.3. HTTP接口¶
- 为附件提供Content-MD5头支持。
- 添加了URL重写器处理程序。
- 添加了虚拟主机处理。
1.16.4.4. 复制¶
- 添加了隐式创建复制目标数据库的选项。
- 避免在自动复制重新启动时泄漏文件描述符。
- 添加了按id复制文档列表的选项。
- 允许取消连续复制。
1.16.4.5. 运行时统计¶
- 统计信息现在是针对移动窗口而不是非重叠时间段计算的。
- 修正了统计计时器和系统睡眠的问题。
- 已将统计名称移动到priv目录中的术语文件。
1.16.4.6. 安全性¶
- 修复了CVE-2010-0009:Apache CouchDB定时攻击漏洞。
- 添加了默认的cookie身份验证和用户数据库。
- 增加了用户注册和登录的Futon用户界面。
- 添加了每个数据库读取器访问控制列表。
- 为验证函数中的配置数据添加了每个数据库安全对象。
- 添加了代理身份验证处理程序
1.16.4.7. 存储系统¶
- 通过更新多个写入程序,可以提高多个写入程序的吞吐量。删除了现在冗余的couch_batch_save模块。
- 添加附件的可配置压缩。
1.16.4.8. 查看服务器¶
- 添加了可选的“raw”二进制排序规则,以便在Unicode排序规则不重要的情况下更快地生成视图。
- 通过减少ICU排序规则标注,改进了视图索引生成时间。
- 改进了视图信息对象。
- 修复了视图生成期间部分更新的错误。
- 将查询服务器移动到基于设计文档的协议。
- 使用json2.js进行JSON序列化,以与本机JSON兼容。
- couchjs的主要重构为禁用cURL支持打下基础。新的HTTP交互作用类似于同步XHR。新系统的示例用法在JavaScript CLI测试运行器中。