@x12i/memorix-data
Memorix data plane: scoped routing, record directory, V2 content writer / reader, sibling compose, abstract reverse-write, and relationship reads (expansion).
All subject mutations go through this plane (or Memory / relationship engines that call it). Never write domain documents with raw Mongo drivers.
Install
npm install @x12i/[email protected]
| Audience | Use this package? |
|---|---|
| Remote app | No — call memorix-service /api/data |
| Platform / service composition | Yes |
Write ops
add · upsert · patch · replace · remove
Each requires MemorixScope (orgId + agentIds[]) and a precondition (absent or exact revision). Stale revision → conflict.
Read ops
getContent · listContent · composeSubject · getAbstract · listAbstract
Counts: countLiveContent (one pair, logically deleted rows excluded), countDirectoryRecords (directory documents per object type), and countDirectoryRecordsWithoutContent (directory documents whose contentTypes is empty or only relationships).
Default reads return one logical V2 record (_id stripped). Pass relationship include options for virtual { source, relationships } expansion. Link mutation is not here — use @x12i/memorix-relationships.
Abstract reverse-write
patchAbstract → reverse mappings → one concrete writer patch. No abstract collections / abstract recordId.
Quick example
import { createMongoContentWriter, createMongoContentReader } from "@x12i/memorix-data";
const writer = createMongoContentWriter({ client, /* routing */ });
const reader = createMongoContentReader({ client, /* routing */ });
await writer.add(scope, {
draft: { /* MemorixRecordDraft V2 */ },
precondition: { kind: "absent" },
});
const record = await reader.getContent(scope, {
objectType: "work-items",
contentType: "snapshots",
recordId: "WI-100",
});
const composed = await reader.composeSubject(scope, { recordId: "WI-100" });
// composed.contents → { raw: [...], snapshots: [...], ... }
Related
| Need | Package / API |
|---|---|
| Envelope validate | @x12i/memorix-format |
| Four-field links | @x12i/memorix-relationships |
| HTTP | /api/data, /api/data/compose, /api/data/abstract |
Docs
documentation/data-model.md·documentation/http-api.md- Ebooks: Runtime Data Client · Access Patterns
- Hub: https://docs.memorix.x12i.com
npm test