{
  "schema": "leumas.docs.page/1",
  "id": "pkg:@leumas/middleware",
  "slug": "engines/middleware",
  "kind": "capabilities",
  "bucket": "package",
  "title": "@leumas/middleware",
  "name": "@leumas/middleware",
  "eyebrow": null,
  "chip": null,
  "summary": "Adapter/connector engine — the BaseAdapter contract + loader + a libSQL adapter for schema-less dynamic collections (universal CRUD over the shared leumas.db).",
  "keywords": [
    "middleware",
    "baseadapter",
    "schema-less",
    "libsql",
    "loader",
    "leumas middleware",
    "middleware db",
    "connector"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "# @leumas/middleware\n\nThe adapter/connector engine (P1 slice). Provides the **schema-less dynamic CRUD** path that\ncomplements the typed core in [`@leumas/db`](../../packages/db) — both over the **same** `leumas.db`.\n\n- `BaseAdapter` — the one storage-adapter contract (harvested from legacy `leumas-middleware`).\n- `LibsqlAdapter` — stores each app-defined collection as `dyn_<name>` (id, data JSON, owner, public, timestamps), created on first write.\n- `createConnector(config)` — the loader (defaults to a single libSQL adapter).\n- `createDynamicCrudRouter({ adapter, requireAuth })` — Express CRUD at `/db/:collection`, ownership-gated. `requireAuth` is injected so this engine stays decoupled from `@leumas/auth`.\n\n```js\nimport { createConnector, createDynamicCrudRouter } from '@leumas/middleware';\nimport { requireAuth } from '@leumas/auth';\nconst connector = createConnector();\napp.use('/db', createDynamicCrudRouter({ adapter: connector.get(), requireAuth }));\n```\n\nThe full adapter loader/introspection engine + the `a.*`/`b.*` adapter packs land in **P3**; P1 ships\nonly the DB-connector slice needed for dynamic app data.\n",
  "source": {
    "path": "shared/engines/middleware/README.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 1322,
    "hash": "3c4c79ade857f822a06096154638fe720c6884b1"
  },
  "urls": {
    "html": "/p/engines/middleware",
    "json": "/docs/engines/middleware.json",
    "md": "/docs/engines/middleware.md"
  },
  "links": {
    "composes": [
      "pkg:@leumas/api-kit",
      "pkg:@leumas/db",
      "pkg:@leumas/schemas"
    ],
    "usedBy": [
      "pkg:@leumas/imperium-server"
    ],
    "product": [],
    "howTo": [],
    "skills": []
  },
  "exports": null
}
