Skip to content

Latest commit

 

History

History
238 lines (150 loc) · 11.2 KB

CHANGELOG.md

File metadata and controls

238 lines (150 loc) · 11.2 KB

更新日志

3.8.0

  • 添加对新的 Hook(onAuthData)的支持,这个 Hook 会在云存储处理第三方登录的 authData 时触发,开发者可以在这个 Hook 中进行对 authData 的校验。
  • 正式支持 JS SDK (leancloud-storage) 4.x,对于新的项目会自动安装 4.x 版本的 JS SDK(不影响既有项目)。

3.7.0

  • req.meta.remoteAddress 优先从 Forwarded 头获取客户端 IP,在线上的 Hook 中可以获取到触发 Hook 的客户端 IP。
  • AV.Cloud.HttpsRedirect 优先从 Forwarded 头判断协议,非 .leanapp.cn 域名的预备环境将被正确地重定向。
  • 添加新的实时通讯 Hook AV.Cloud.onIMMessageUpdate

3.6.0

添加对新的即时通讯 Hook 的支持:

  • AV.Cloud.onIMConversationAdded
  • AV.Cloud.onIMConversationRemoved
  • AV.Cloud.onIMClientOnline
  • AV.Cloud.onIMClientOffline
  • AV.Cloud.onIMClientSign

兼容 JS SDK (leancloud-storage) 4.5.0 及以上版本的初始化机制。

3.5.0

  • 添加对 Android Key 的支持。

3.4.0

  • Cloud.define 添加一个 internal 选项。
  • 跟进云队列的新版本,添加 Cloud.getTaskInfo

3.3.3

  • 修复 TypeScript 定义文件中的若干问题。

3.3.2

  • 修复 AV.Cloud.start

3.3.0

  • 添加 AV.Cloud.startAV.Cloud.stop

v3.2.0

  • 新增 AV.Cloud.enqueue,任务队列支持。

v3.1.1

  • 修复 AV.Cloud.HttpsRedirect 在 koa 中会出现循环重定向的问题。

v3.1.0

  • AV.Express() 添加 onError(全局云函数错误处理)和 ignoreInvalidSessionToken(忽略不正确的 Session Token 而不是返回错误)选项。
  • 修复改进 TypeScript 定义文件
  • 修复发出请求的 User Agent

v3.0.2

  • 修复 Promise 写法的 beforeHook 无法正确工作的问题。

v3.0.1

  • 默认加载 JavaScript 中的 LiveQuery 特性。
  • 修复 TypeScript 定义文件中的 AV.Object.

v3.0.0

  • 不兼容改动 指定 JavaScript SDK 为 peerDependency, 同时仅支持 leancloud-storage v3.0.0 以上版本。你需要运行 npm install leancloud-storage@3 --save 来额外安装 JS SDK,同时请检查 JS SDK 3.0 引入的其他不兼容改动。

新增 Koa2 支持(建议使用 Node 7.0 以上版本)

var app = new Koa();
app.use(AV.koa2());
app.use(AV.Cloud.HttpsRedirect({framework: 'koa2'}));

v2.0.4

  • 修复使用 remote 模式调用 Cloud.run 时,user 参数处理不正确的问题。

v2.0.3

  • 修复 Cloud.run 对 Promise 的支持。

v2.0.1

  • 补充 CORS 头,兼容最新版本的命令行工具的本地调试。

v2.0.0

  • 不兼容改动 升级 JavaScript SDK 到 leancloud-storage 2.1.0(请检查 JS SDK 2.0 引入的不兼容改动)。
  • 不兼容改动 仅兼容至 Node.js 4.4 以上版本。
  • 不兼容改动 重复定义云函数或 Hook 时会抛出一个异常。
  • 不兼容改动 移除 AV.Cloud.httpRequest(请改用 request 模块)。
  • 不兼容改动 移除 app.use(AV.Cloud) 的用法(请改用 app.use(AV.express()))。
  • 不兼容改动 移除基于 domain 的异常处理,开发者需要自行捕捉云函数异步代码中的异常。
  • 不兼容改动 AV.Cloud.run 不再支持 Backbone 风格的回调(successerror)、在运行失败时不再向标准输出打印日志,请从返回的 Promise 中获取错误。
  • 不兼容改动 AV.Insight.on 注册的回调函数改为只接受一个 result 参数(去掉了 err 参数,请从 result.status 判断成功或失败)。
  • 不兼容改动 一些错误提示被调整过,如果你依赖于对错误信息进行字符串匹配,请注意测试你的错误处理逻辑。
  • 新增 TypeScript 类型定义文件,位于 leanengine.d.ts
  • 新增 AV.Cloud.onIMMessageReceived 系列方法,用于更方便地定义实时通讯 Hook 函数。

新增云函数、Class Hook 和 User Hook 的 Promise 模式,会使用 Promise 的值作为响应内容。如果在 Promise 中抛了使用新增的 AV.Cloud.Error 构造的异常则作为错误返回给客户端,AV.Cloud.Error 的第二个参数可以指定 HTTP Status Code 和 Error Code(AV.Cloud.Error('posts is empty', {status: 422, code: 422}));如果抛出了其他错误类型则视作服务器端错误,返回 500 响应并打印错误到标准输出。

AV.Cloud.define(function(request) {
  return new AV.Query('Post').find().then( posts => {
    if (posts.length > 0) {
      return posts[0];
    } else {
      throw new AV.Cloud.Error('posts is empty');
    }
  });
});

对于原本不需要响应的 after 类 Hook(还包括 onVerified),现在也会按照同样的方式等待 Promise 完成再发送响应、结束链接,如果你希望收到请求后立刻结束链接,请不要在这类 Hook 中返回 Promise(或提前返回一个已经 resolve 的 Promise)。

如果传入 AV.Cloud.define 的函数有两个参数(requestresponse)则继续兼容原定义方式,需要使用 response.success() 发送响应。我们会继续兼容这种用法到下一个大版本,希望开发者尽快迁移到 Promise 风格的云函数上。

新增了 LeanCloudHeaders 中间件,用于在 Express 或 Koa 应用中解析 X-LC 开头的头,获取 Session Token 等信息:

// 注册中间件
app.use(AV.Cloud.LeanCloudHeaders());

// 获取 Session Token
app.get('/', (req, res) => {
  res.json({
    sessionToken: req.AV.sessionToken
  })
});

v1.2.4

暂时地锁定 leancloud-storage 的版本,控制 1.5.5 中 disableCurrentUser 变动的影响。

  • 锁定 leancloud-storage 的版本到 1.5.4

v1.2.3

v1.2.2

v1.2.1 (2016-08-08)

v1.2.0 (2016-07-26)

v1.1.0 (2016-06-23)

  • 可能存在细微不兼容 升级 JavaScript SDK 到 leancloud-storage 1.0.0
  • 存在细微不兼容 强制检查 Class Hook、User Hook、实时通讯 Hook 的签名信息,确保请求来自 LeanCloud(签名错误的请求会打印一条日志)
  • 使用 AV.Cloud.run 运行云函数时,被运行的云函数将会得到和 HTTP 调用时结构一致的 request

v1.0.1 (2016-06-15)

  • 添加对 X-LC-UA 头的跨域支持(适用 JavaScript SDK 1.x)

v1.0.0 (2016/05/31)

  • 支持新的初始化方式。
  • 更新至 JavaScript SDK 1.0.0-rc9.1.
  • 彻底废弃了 currentUser.
  • 默认启用与 Promise/A+ 兼容的错误处理逻辑。
  • 将中间件拆分到了单独的文件。
  • AV.Cloud.run 支持 remote 参数。
  • AV.Cloud.define 支持 fetchUser 参数。

详见文档 升级到云引擎 Node.js SDK 1.0

v0.4.0 (2016/02/01)

Bug Fixes

  • disableHook API 增加签名机制 (d942c4d)

Features

  • Cloud 函数和 Hook 函数增加 15 秒超时时间限制 (dfcd1a8)
  • 调整请求正文大小的限制为 20MB (1d2e26b)

v0.3.0 (2015/12/31)

  • 增加 disableHook 的 API : 为了防止 Hook 函数死循环调用,增加相关 API。默认情况下 request.object 会自动设置,如果用户自行创建了对象(比如对象重新 fetch 或者 createWithoutData 创建对象),为了避免循环调用,需要明确的调用该 API。
  • 修复 cookieSession 获取用户信息方式:不应该使用 fetch 接口,因为这样总是使用 id 而忽略 sessionToken。改为使用 become 接口。

v0.2.0 (2015/10/22)

  • 支持 beforeUpdate: 可以通过该 hook 了解发生变更的字段,并且可以通过 error 回调拒绝本次修改请求。
  • 支持 RPC 调用,接受和返回 AVObject:和之前的 run 方法不同,现在可以在 Client 端调用云引擎的 Cloud 函数,直接返回 AVObject,具体 API 详见各 SDK。

v0.1.6 (2015/08/28)

  • 修改 Cloud 函数的未捕获异常处理器: 出现未捕获异常时,如果还没有发出 response 响应,才发出 500 响应,否则直接忽略。
  • 支持短 header 请求: 为了缩短请求的长度,我们更改了 header 中关于 appId 等 key 的长度,比如 x-avoscloud-application-id 改为 x-lc-id
  • AV.BigQuery 更名为 AV.Insight: 配合产品更名,如果仍然使用 AV.BigQuery 将会收到一条警告日志 AV.BigQuery is deprecated, please use AV.Insight instead.

v0.1.5 (2015/07/31)

  • #19 Bugfix: 修正 AV.Cloud.httpRequest 提示 qs 没有定义的错误。
  • #20 Bugfix: cookieSession 中间件在 sessionToken 失效时能正确处理。

v0.1.4 (2015/06/03)

  • bed2fdd Bugfix: hook 函数 AV.User.current() 方法未能正确获取 User 对象
  • a64c7c1 Bugfix: hook 函数可能造成死循环

v0.1.3 (2015/05/30)

  • ecc0014 Bugfix: hook 函数返回对象的格式有误

v0.1.2 (2015/05/29)

  • 999472b Bugfix: 简单跨域请求没有设置 Access-Control-Allow-Origin
  • 425cf2a Bugfix: AV.Cloud.run 方法返回一个 promise

v0.1.1 (2015/05/28)

  • #2 增加 Hook: BigQuery job on complete
  • #3 CookieSession 变量会泄露到全局

v0.1.0 (2015/05/22)

  • 正式 release。