功能與安全

本頁內容

沙盒外掛預設是隔離的。要執行超出讀寫自身 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 會顯示同意對話方塊。

建置時驗證

參見打包和發佈