Skip to main content
← Back to list
01Issue
FeatureShippedSwamp Club
Assigneesstack72

Relationships

#1378 Docs: document extension runtime permissions and device I/O workaround in user manual

Opened by stack72 · 7/24/2026· Shipped 7/24/2026

Context

swamp-club/swamp#1350 documented that extension model methods cannot use Deno.open() on device nodes (e.g. /dev/ttyUSB0) because the compiled binary uses individual permission flags instead of --allow-all. Extensions should use Deno.Command for hardware I/O instead.

The internal design doc (design/extension.md) has been updated with a "Runtime Permissions" section.

What needs updating

Add a "Runtime Permissions" section to the user-facing extension model reference (content/manual/reference/extensions/model.md in swamp-club/swamp-club) covering:

  1. Permission model — extension methods run in-process with individually scoped Deno permissions (--allow-read, --allow-write, --allow-env, --allow-run, --allow-sys, --allow-net). --allow-all and --allow-ffi are deliberately not granted.

  2. Device node limitationDeno.open() on character/block device nodes does not work in the compiled binary. This is a Deno compiled-binary behavior, not a swamp restriction.

  3. Workaround — use Deno.Command to spawn subprocesses for device I/O (e.g. cat, dd, stty). Include concrete TypeScript examples.

  4. Docker exception — the Docker execution driver uses --allow-all, so Deno.open() on device nodes works when using Docker placement.

See design/extension.md in swamp-club/swamp for the full content to reference.


Automoved by swampadmin from https://github.com/swamp-club/swamp/issues/1949

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORENOTIFICATION_SKIPPED

Shipped

7/24/2026, 5:37:07 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack727/24/2026, 3:52:47 PM

Sign in to post a ripple.