imageedit

Crop / annotate / redact image editor, and the proof that the pdf plugin's bytes-over-the-bridge design generalizes: the frame has connect-src 'none' and receives the image as an ArrayBuffer over postMessage, the canonical doc is an OPERATION LIST (imageedit-v1: src, crop, rotate, annotations[], redactions[] in image coordinates — never pixels), and every export is re-rendered by Go from that list using only the standard library. EXIF is stripped by full re-encode, 16 MiB / 24 MP / 8192px caps are enforced at the header stage before decode, and redactions are verified against the produced bytes — a region must be gone, not painted over, or the export fails closed.

v0.1.0sandboxed iframe

Install and mount

go get github.com/DonaldMurillo/gofastr-plugins@v0.5.0

import "github.com/DonaldMurillo/gofastr-plugins/imageedit"

app.RegisterPlugin(imageedit.New())

Isolation

Runs in an opaque-origin iframe

The frame never gets allow-same-origin, so it cannot reach host cookies, the database, or the host DOM. It talks to the host only over the versioned postMessage bridge, limited to the capabilities listed below.

Manifest

Plugin version
0.1.0
Framework compat
>=0.28.0
Isolation
sandbox-iframe-opaque
Sandbox tokens
allow-scripts
Capabilities
document:read, document:write, theme:read
Optional capabilities
upload:images
CSP additions
none
Route prefix
/__gofastr/plugin/imageedit
Entry
/__gofastr/plugin/imageedit/editor.html
Schema
imageedit-v1
Min height
520px

All plugins