paged.data — database publishing
The database-publishing plugin — a binding DSL, a sync engine, record-flow pagination, and batch automation over DuckDB-WASM, publishing datasets other plugins can consume.
In short paged.data turns data into pages — a binding-expression DSL, a
resolution/sync engine, record-flow lowering with grouping and per-group footers,
and end-to-end print automation, all over a vendored DuckDB-WASM. It also
publishes governed datasets that other plugins (e.g.
paged.sheet) consume.
What it does
- A publishing-grammar binding DSL (a registry-driven function library) and a binding/sync engine (Linked / Pinned / Overridden / Stale states).
- Record flow / pagination: nested grouping, multi-level per-group footers, parent-path on spill.
- Print automation: per-record / per-group / one-catalog batch plans, plus a CLI and a sandboxed Boa scripting path.
- A data-provider contract: register as a provider and publish a record set without knowing its consumers; governed extracts with column metadata.
How it's built
A Cargo workspace (data-core, data-expr, data-sources, data-query,
data-bind, data-lower, automation crates, data-js) plus a TS bundle, with
DuckDB-WASM vendored behind an Arrow seam.
Capability state
● shipped & verified · ◍ shipped, untested · ◐ partial · ✗ failing · · planned
Plugin · data 18 features · 100% green
| Feature | Shell | Data |
|---|---|---|
Print automation / batch generation (per-record / per-group / one catalog)data.automation.batch | ● | |
Barcode / QR symbologies — clean-room EAN-13/UPC-A, Code-128, QR encoders + binding + VECTOR lowering (§9.7)data.barcode.symbology | ● | |
Change-highlighting on refresh — per-binding "what changed since last sync" report (§8)data.bind.change-report | ● | |
Binding + synchronization engine — resolution graph, sync states, identity diffdata.bind.engine | ● | |
Field-mapping wizard — map source columns → variable bindings one-click (§9)data.bind.field-mapping | ● | |
Record-preview stepper — resolve a binding against a chosen record index N (§9)data.bind.preview-step | ● | |
Binding-expression DSL — lexer/parser/eval + 42 functions, registry-driven dispatchdata.expr.engine | ● | |
Governed-extract source (governed tables + optional metadata sidecar -> catalog)data.governed.extract | ● | |
Locale-aware display formatting (en/de v1)data.i18n.display | ● | |
Placeholder lowering — variable replacement + single-region dynamic tabledata.lower.content | ◐ | |
v43 lowering consumers — in-text variables (D-01), image place (D-14), live record-flow (D-12), rules (D-13)data.lower.v43-consumers | ◐ | |
Performance gates (§12.5) — engine-tier perf assertionsdata.perf.gates | ● | |
paged.data bundle (media.paged.data) — manifest + activate + 3 panels + DuckDB query gluedata.plugin.bundle | ◐ | |
Register as an SDK data provider (publish RecordSet to other consumers, e.g. sheets)data.provider.contract | ● | |
Query engine (DuckDB-WASM) + RecordSet shape/order/hash — the Arrow seamdata.query.seam | ◐ | |
Capability-gated data access + threat model (the suite's largest surface)data.security.gates | ◐ | |
Source adapters (inline + file at M0) + capability/consent gate + visible manifestdata.source.adapters | ◐ | |
D-11 DB attach (SQLite/Postgres/MySQL) + DuckDB-WASM first-class engine + refresh-policy + remotedata.source.db-attach | ◐ |
Recent activity
- 2026-06-22build(publish): publish plugin-data to npm (canary, wasm in CI)45cc0f2
- 2026-06-22ci(cla): allowlist the maintainer (drietsch)8d82dcb
- 2026-06-22ci(cla): add CLA Assistant check (sign once, org-wide)9f20234
- 2026-06-22chore(license): open plugin-data under AGPL-3.0 OR PMELc1a2a07
- 2026-06-19ci(nextest): add a `ci` profile emitting JUnitc23c79b
- 2026-06-18fix(barcode): emit the { v, data } metadata envelope the host validator requires (#1)17f6f07
- 2026-06-13docs(registry): record Arrow-shape seam (ADR-014) + locale-breadth follow-ups7312a6d
- 2026-06-13feat(source): refresh-policy shape + honest interactive-vs-automation splite8534ed
paged.sheet — spreadsheets
The spreadsheet plugin — a Rust/WASM calc engine with spill, structured tables, charts, and XLSX round-trip, lowered to native print-grade tables and editable in-frame.
plugin-template — the starter
The fork-and-go plugin starter — the SDK tutorial as a runnable repo that consumes only the published @paged-media packages.