Capacità e sicurezza

In questa pagina

I plugin sandboxed sono isolati per impostazione predefinita. Per fare qualsiasi cosa oltre alla lettura e scrittura del proprio KV e storage, un plugin deve dichiarare una capacità nel suo manifesto.

Dichiarare le capacità

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

Riferimento delle capacità

CapacitàConcede accesso a
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() — limitato a allowedHosts
network:request:unrestrictedctx.http.fetch() senza restrizioni di host
users:readctx.users.get(), ctx.users.getByEmail(), ctx.users.list()
email:sendctx.email.send()

Cosa impone il sandbox

  1. Controllo delle capacità.
  2. Ambito di storage e KV.
  3. Isolamento di rete.
  4. Nessun binding host.
  5. Limiti delle risorse.

Cosa il sandbox non impone

  • Comportamento all’interno di una capacità concessa.
  • Fiducia dell’operatore su Node.js.
  • Canali laterali.

Consenso delle capacità

Al momento dell’installazione, EmDash mostra un dialogo di consenso.

Validazione in fase di build

Vedi Bundling e pubblicazione.