能力与安全

本页内容

沙盒插件默认是隔离的。要执行超出读写自身 KV 和存储的操作,插件必须在清单声明能力

声明能力

{
	"slug": "plugin-hello",
	"capabilities": ["content:read", "network:request"],
	"allowedHosts": ["api.example.com"]
}

能力参考

能力授予访问权限
content:readctx.content.get()ctx.content.list()
content:writectx.content.create()ctx.content.update()ctx.content.delete()
taxonomies:readctx.taxonomies.getAll()ctx.taxonomies.getTerms()
media:readctx.media.get()ctx.media.list()
media:writectx.media.getUploadUrl()ctx.media.upload()ctx.media.delete()
network:requestctx.http.fetch() — 限制为 allowedHosts
network:request:unrestrictedctx.http.fetch() 无主机限制
users:readctx.users.get()ctx.users.getByEmail()ctx.users.list()
email:sendctx.email.send()

沙盒强制执行的内容

  1. 能力门控。
  2. 存储和 KV 作用域。
  3. 网络隔离。
  4. 无宿主绑定。
  5. 资源限制。

沙盒不强制执行的内容

  • 授予能力内的行为。
  • Node.js 上的运营商信任。
  • 侧信道。

能力同意

安装时 EmDash 会显示同意对话框。

构建时验证

参见打包和发布