@pattern-js/mod-store
v0.2.2
Published
Generic persistence for Pattern apps: JSON document collections with declared indexes, a blob store, and CAS leases (with auto-release on run settle). SQLite or in-memory drivers; ops for visible canvas wiring; a Data browser in the admin.
Readme
@pattern-js/mod-store
The persistence brick for Pattern: document collections with declared-index queries, a blob store for bytes (images, files), and leases for cooperative concurrency. SQLite locally, behind drivers — a different persistence layer is an adapter, not a rewrite.
npm install @pattern-js/mod-storeWhen to use / when not
Reach for it when a workflow needs state that outlives a single run — records you'll read back and query (conversations, users, jobs), uploaded bytes you'll serve later, or a "only one of these at a time" lock across concurrent runs.
It is not a general SQL database and not a cache: no joins, no ad-hoc WHERE
(you query only declared indexes), no query language. For rich relational
queries, analytics, or full-text search, wrap a real database in your own mod. For
per-run scratch, just pass it along edges.
Config
The bare-string install gets sensible defaults (SQLite under ./.pattern-data/):
{ "mods": ["@pattern-js/mod-store"] }For custom paths or an in-memory store (tests), export a local wrapper mod:
import { storeMod } from "@pattern-js/mod-store";
export default storeMod({
storage: "./.pattern-data/store.db", // or "memory"
blobDir: "./.pattern-data/blobs",
maxBlobBytes: 25 * 1024 * 1024, // 25 MiB
blobRoute: true, // GET /store/blobs/:id (or { requireAuth } / false)
});Reach it on the canvas with store.get / store.put / store.patch /
store.delete / store.query, the blob ops, and store.lease.*; or from ops via
the storeService. The .pattern-data/ paths are gitignored.
Full documentation: the Store chapter at /docs (served by
@pattern-js/mod-docs), or the source.
