datagrid

Data grid over AG Grid Community's infinite row model — the fifth sandboxed heavy-JS plugin, and the first whose traffic is pages rather than one document. The framed CSP's connect-src 'none' means the frame can never fetch its own rows: every page crosses the postMessage bridge as a correlated requestRows/rowsResult event pair (the richtext requestUpload pattern), and sorting, filtering and paging all run in the host's Go rows source behind POST /rows. Canonical doc is VIEW STATE ONLY ({columns[], sort, filter, pageSize}, schema datagrid-v1) — rows are never part of it. Cell editing (requestCellWrite → POST /cell) and view-state saves gate on optional data:write; host-side CSV export (requestExport → POST /export, the download starts in the host page) gates on optional data:export — each granted exactly when the host wires the matching handler option, like pdf:export.

v0.1.0sandboxed iframe

Install and mount

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

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

app.RegisterPlugin(datagrid.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
data:read, theme:read
Optional capabilities
data:write, data:export
CSP additions
none
Route prefix
/__gofastr/plugin/datagrid
Entry
/__gofastr/plugin/datagrid/grid.html
Schema
datagrid-v1
Min height
480px

All plugins