샌드박스 플러그인은 기본적으로 격리됩니다. 자체 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는 동의 대화상자를 표시합니다.
빌드 시 검증
번들링과 배포를 참조하세요.