Busabase

把 AirApp 发布成网站

用「网站」引擎把 AirApp 发布到一个一直在线的公开地址,并让网站用 Busabase API 读写工作区。

AirApp 的其他三种运行引擎(浏览器内、本机、云端沙箱)都是临时运行:有人打开应用时才跑起来。网站引擎不一样:上线后,应用会一直在线,有一个固定地址,不用登录就能打开。店铺、落地页、询盘表单这类要给外面的人看的页面,就用它。

网站可以有页面,也可以有自己的后端接口,跑在 Cloudflare Workers 上。

开始之前

  • 套餐: 云端版需要 Plus 及以上。免费版的下拉框里,「网站」会显示升级提示。
  • 自建版: 需要管理员先配置网站引擎,没配置时「网站」灰显,并写明原因。自建版不限套餐,但要有有效授权。
  • 应用本身: 应用的 airapp.json 要写明使用网站引擎。让你的 Agent 按 busabase-app-creator skill 写,它知道该怎么写。

预览和上线

  1. 运行: 打开应用。用网站引擎运行,得到的是预览:只有工作区成员能看,外面的人打不开。
  2. 上线: 预览没问题,点工具栏的上线。上线的是你刚才预览的那个版本,状态变成已上线。
  3. 改了文件: 文件改过以后,要先重新运行,看过新的预览,再点上线。否则会提示「预览之后文件又改过了。请重新运行,再上线。」,线上还是旧版本。

上线后,工具栏如果显示有未发布的修改,说明预览比线上新。

地址和公开开关

在应用的设置里可以看到网站的地址和公开开关:

  • 公开打开: 任何人打开这个地址都能访问。
  • 公开关闭: 立刻下线,这个地址显示找不到页面。再打开就恢复,不用重新上线。
  • 移到回收站: 网站自动下线。从回收站恢复后,可以再打开公开开关。
  • 永久删除: 网站和它的地址一起删除。

让网站读写 Base

网站的后端(Worker)用 Busabase API 读写工作区,跟 Agent、CLI、SDK 用的是同一套接口和权限。

网站拿到的密钥

每次运行或上线,Busabase 都会给网站生成一把 API 密钥:

  • 代表谁: 上线的版本代表点上线的那个人,预览代表运行预览的那位成员。网站能做的事,不会超过这个人自己在工作区里能做的。
  • 能做什么: 由应用 airapp.json 里写的级别决定:只读(默认)、提交变更请求、写入。点上线就生效,不需要另外批准。
  • 在哪有效: 只在这个工作区。拿它去访问这个人的其它工作区会被拒绝,也读不到他个人保险库里的值。
  • 在哪看: 它出现在这个人的 API 密钥列表里,名字是「Site: 应用名」,预览的是「Site preview: 应用名」。在列表里删掉它,网站就不能再读写,下次上线会重新生成。

预览用的是另一把同级别的密钥,读写的是工作区里的真实数据,跟其它运行引擎一样。

什么时候停

  • 关掉公开开关,或者把应用移到回收站: 上线版本的密钥立刻停用;再打开公开开关就恢复。
  • 永久删除应用: 密钥一起删除。
  • 上线那个人离开工作区: 密钥失效,请有权限的人重新运行,再上线。
  • 每次上线: 换一把新密钥,旧的作废。

网站做的修改和其它 API 写入一样走变更请求,历史里会显示是这把密钥做的。

网站代码决定陌生人能碰到什么

这把密钥能读写上线人在这个工作区里、按级别能读写的所有内容,不只是网站用到的那几张表。陌生人拿不到密钥,只能通过网站开放的接口间接用到它。所以请让 Agent 按 busabase-app-creator skill 写网站:只开放具体的接口,不把访客的请求原样转发给 API。用不到写入,就保持只读。公开表单还没有验证码,可能被人刷。

On this page