サンドボックスプラグインはデフォルトで隔離されています。自身の KV とストレージの読み書き以上のことを行うには、プラグインはマニフェストで機能を宣言する必要があります。
機能の宣言
{
"slug": "plugin-hello",
"capabilities": ["content:read", "network:request"],
"allowedHosts": ["api.example.com"]
}
機能リファレンス
| 機能 | アクセス権限 |
|---|---|
content:read | ctx.content.get(), ctx.content.list() |
content:write | ctx.content.create(), ctx.content.update(), ctx.content.delete() |
taxonomies:read | ctx.taxonomies.getAll(), ctx.taxonomies.getTerms() |
media:read | ctx.media.get(), ctx.media.list() |
media:write | ctx.media.getUploadUrl(), ctx.media.upload(), ctx.media.delete() |
network:request | ctx.http.fetch() — allowedHosts に制限 |
network:request:unrestricted | ctx.http.fetch() ホスト制限なし |
users:read | ctx.users.get(), ctx.users.getByEmail(), ctx.users.list() |
email:send | ctx.email.send() |
サンドボックスが強制すること
- 機能のゲーティング。
- ストレージと KV のスコーピング。
- ネットワークの隔離。
- ホストバインディングなし。
- リソース制限。
サンドボックスが強制しないこと
- 付与された機能内の振る舞い。
- Node.js でのオペレーター信頼。
- サイドチャネル。
機能の同意
インストール時に EmDash は同意ダイアログを表示します。
ビルド時の検証
バンドルと公開を参照してください。