@x12i/memorix-retrieval 1.6.2 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/client/create-xronox-from-env.d.ts.map +1 -1
- package/dist/client/create-xronox-from-env.js +2 -0
- package/dist/client/create-xronox-from-env.js.map +1 -1
- package/dist/descriptors/content-type-labels.d.ts +3 -0
- package/dist/descriptors/content-type-labels.d.ts.map +1 -1
- package/dist/descriptors/content-type-labels.js +5 -0
- package/dist/descriptors/content-type-labels.js.map +1 -1
- package/dist/explorer/entity-graph.d.ts +5 -0
- package/dist/explorer/entity-graph.d.ts.map +1 -1
- package/dist/explorer/entity-graph.js +8 -1
- package/dist/explorer/entity-graph.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/mongo/env.d.ts +14 -0
- package/dist/mongo/env.d.ts.map +1 -1
- package/dist/mongo/env.js +52 -0
- package/dist/mongo/env.js.map +1 -1
- package/dist/tests/env.test.js +22 -1
- package/dist/tests/env.test.js.map +1 -1
- package/dist/tests/fetch-list.test.js +9 -0
- package/dist/tests/fetch-list.test.js.map +1 -1
- package/docs/EXPLORER-HOST-APIS.md +48 -1
- package/docs/MEMORIX-DATABASE-CONVENTIONS.md +13 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -99,7 +99,7 @@ const client = await createMemorixRetrievalFromEnv({
|
|
|
99
99
|
|
|
100
100
|
| Option / env | Purpose |
|
|
101
101
|
|--------------|---------|
|
|
102
|
-
| `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` | Non-default database names |
|
|
102
|
+
| `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` | Non-default database names (bridged to Xronox on bootstrap) |
|
|
103
103
|
| `MEMORIX_ENTITIES_COLLECTION_*` / `MEMORIX_EVENTS_COLLECTION_*` | Per-type collection overrides |
|
|
104
104
|
| `CATALOX_APP_ID` / `MEMORIX_APP_ID` | Catalox app namespace (default: `memorix`) |
|
|
105
105
|
| `memorixDb` | Code overrides for entity/event DB names |
|
|
@@ -116,6 +116,8 @@ Entity descriptors declare `target: "entity" | "event"` (default `entity`):
|
|
|
116
116
|
|
|
117
117
|
Each entity descriptor must define `defaultListDescriptorId` and `defaultItemDescriptorId` (Option A wiring).
|
|
118
118
|
|
|
119
|
+
Explorer **record counts** use the entity's **snapshots** collection when that content type is declared (e.g. `assets-snapshots`). Set `MEMORIX_ENTITIES_DB` / `MEMORIX_EVENTS_DB` when data is not in the default DB names — see [EXPLORER-HOST-APIS.md](docs/EXPLORER-HOST-APIS.md#snapshot-record-counts-explorer-records).
|
|
120
|
+
|
|
119
121
|
## Catalox seeds
|
|
120
122
|
|
|
121
123
|
Source of truth: `catalox-seeds/inputs/`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-xronox-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-xronox-from-env.d.ts","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,iCAAiC,GAAG;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E,CAAC;AAEF;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,oBAAoB,CAAC,CAY/B"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { createXronox } from "@x12i/xronox";
|
|
2
|
+
import { applyMemorixEnvBridgeToProcess } from "../mongo/env.js";
|
|
2
3
|
import { createMemorixXronoxAdapter } from "./xronox-adapter.js";
|
|
3
4
|
/**
|
|
4
5
|
* Bootstrap Xronox from process env (`MONGO_URI`, role DB vars, etc.).
|
|
5
6
|
* Uses zero-config mode — same pattern as other x12i data-tier hosts.
|
|
6
7
|
*/
|
|
7
8
|
export async function createMemorixXronoxFromEnv(options = {}) {
|
|
9
|
+
applyMemorixEnvBridgeToProcess(options.processEnv ?? process.env);
|
|
8
10
|
const xronox = createXronox();
|
|
9
11
|
await xronox.init({
|
|
10
12
|
engine: "nxMongo",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-xronox-from-env.js","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAYjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAA6C,EAAE;IAE/C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
|
1
|
+
{"version":3,"file":"create-xronox-from-env.js","sourceRoot":"","sources":["../../src/client/create-xronox-from-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAYjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAA6C,EAAE;IAE/C,8BAA8B,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAElE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,IAAI,CAAC;QAChB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -4,4 +4,7 @@ export declare function memorixContentTypeLabel(contentType: string): string;
|
|
|
4
4
|
export declare function listEntityContentTypeKeys(entity: import("./descriptor-types.js").MemorixEntityDescriptor): string[];
|
|
5
5
|
/** Primary badge count slice: scoped when defined, otherwise canonical. */
|
|
6
6
|
export declare function primaryEntityContentType(entity: import("./descriptor-types.js").MemorixEntityDescriptor): string;
|
|
7
|
+
/** Snapshot slice key when the entity descriptor declares `contentTypes.snapshots`. */
|
|
8
|
+
export declare const MEMORIX_SNAPSHOTS_CONTENT_TYPE = "snapshots";
|
|
9
|
+
export declare function entityDeclaresSnapshotsContentType(entity: import("./descriptor-types.js").MemorixEntityDescriptor): boolean;
|
|
7
10
|
//# sourceMappingURL=content-type-labels.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type-labels.d.ts","sourceRoot":"","sources":["../../src/descriptors/content-type-labels.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW9D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,MAAM,EAAE,CAEV;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,MAAM,CAGR"}
|
|
1
|
+
{"version":3,"file":"content-type-labels.d.ts","sourceRoot":"","sources":["../../src/descriptors/content-type-labels.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW9D,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,MAAM,EAAE,CAEV;AAED,2EAA2E;AAC3E,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,MAAM,CAGR;AAED,uFAAuF;AACvF,eAAO,MAAM,8BAA8B,cAAc,CAAC;AAE1D,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,OAAO,uBAAuB,EAAE,uBAAuB,GAC9D,OAAO,CAET"}
|
|
@@ -23,4 +23,9 @@ export function primaryEntityContentType(entity) {
|
|
|
23
23
|
return "scoped";
|
|
24
24
|
return entity.defaults.canonicalContentType;
|
|
25
25
|
}
|
|
26
|
+
/** Snapshot slice key when the entity descriptor declares `contentTypes.snapshots`. */
|
|
27
|
+
export const MEMORIX_SNAPSHOTS_CONTENT_TYPE = "snapshots";
|
|
28
|
+
export function entityDeclaresSnapshotsContentType(entity) {
|
|
29
|
+
return Boolean(entity.contentTypes[MEMORIX_SNAPSHOTS_CONTENT_TYPE]);
|
|
30
|
+
}
|
|
26
31
|
//# sourceMappingURL=content-type-labels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type-labels.js","sourceRoot":"","sources":["../../src/descriptors/content-type-labels.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,YAAY,EAAE,cAAc;IAC5B,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAO,2BAA2B,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAA+D;IAE/D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CACtC,MAA+D;IAE/D,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"content-type-labels.js","sourceRoot":"","sources":["../../src/descriptors/content-type-labels.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,YAAY,EAAE,cAAc;IAC5B,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAO,2BAA2B,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAA+D;IAE/D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,wBAAwB,CACtC,MAA+D;IAE/D,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AAC9C,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,8BAA8B,GAAG,WAAW,CAAC;AAE1D,MAAM,UAAU,kCAAkC,CAChD,MAA+D;IAE/D,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -25,7 +25,10 @@ export type MemorixEntityGraphEntity = {
|
|
|
25
25
|
memorixDatabase: string;
|
|
26
26
|
defaultListDescriptorId: string;
|
|
27
27
|
defaultItemDescriptorId: string;
|
|
28
|
+
/** Primary slice count (scoped when declared, else canonical — e.g. snapshots for assets). */
|
|
28
29
|
count: number;
|
|
30
|
+
/** Count in the snapshots collection when the descriptor declares `contentTypes.snapshots`. */
|
|
31
|
+
snapshotsCount?: number;
|
|
29
32
|
narratives: Array<{
|
|
30
33
|
id: string;
|
|
31
34
|
title: string;
|
|
@@ -79,6 +82,8 @@ export type MemorixEntitySlicesResult = {
|
|
|
79
82
|
error: string;
|
|
80
83
|
}>;
|
|
81
84
|
};
|
|
85
|
+
/** Read a content-type slice count from a built entity graph node. */
|
|
86
|
+
export declare function memorixEntityGraphContentTypeCount(entity: MemorixEntityGraphEntity, contentType: string): number;
|
|
82
87
|
export declare function buildMemorixEntityGraph(client: MemorixRetrievalClient, options?: BuildMemorixEntityGraphOptions): Promise<MemorixEntityGraphResult>;
|
|
83
88
|
export declare function buildMemorixEntitySlices(client: MemorixRetrievalClient, entityName: string): Promise<MemorixEntitySlicesResult>;
|
|
84
89
|
//# sourceMappingURL=entity-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-graph.d.ts","sourceRoot":"","sources":["../../src/explorer/entity-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-graph.d.ts","sourceRoot":"","sources":["../../src/explorer/entity-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { discoverMemorixEntities, entityDescriptorConnections, loadMemorixEntityDescriptorByName, } from "../descriptors/discover-entities.js";
|
|
2
|
-
import { listEntityContentTypeKeys, memorixContentTypeLabel, primaryEntityContentType, } from "../descriptors/content-type-labels.js";
|
|
2
|
+
import { MEMORIX_SNAPSHOTS_CONTENT_TYPE, listEntityContentTypeKeys, memorixContentTypeLabel, primaryEntityContentType, } from "../descriptors/content-type-labels.js";
|
|
3
3
|
import { resolveMemorixCollectionName } from "../data/collection-name.js";
|
|
4
4
|
import { resolveMemorixDbName } from "../mongo/env.js";
|
|
5
5
|
import { resolveEntityTarget, resolveMemorixDbNameForEntity, } from "../mongo/resolve-db.js";
|
|
@@ -16,6 +16,10 @@ function resolveScopedNamespace(client, override) {
|
|
|
16
16
|
function errMsg(error) {
|
|
17
17
|
return error instanceof Error ? error.message : String(error);
|
|
18
18
|
}
|
|
19
|
+
/** Read a content-type slice count from a built entity graph node. */
|
|
20
|
+
export function memorixEntityGraphContentTypeCount(entity, contentType) {
|
|
21
|
+
return entity.contentTypes.find((slice) => slice.key === contentType)?.count ?? 0;
|
|
22
|
+
}
|
|
19
23
|
function resolveMemorixDatabaseNames(client) {
|
|
20
24
|
const entity = resolveMemorixDbName("entity", client.processEnv);
|
|
21
25
|
const event = resolveMemorixDbName("event", client.processEnv);
|
|
@@ -119,8 +123,10 @@ export async function buildMemorixEntityGraph(client, options = {}) {
|
|
|
119
123
|
}
|
|
120
124
|
const primary = primaryEntityContentType(entity);
|
|
121
125
|
const primarySlice = contentTypes.find((c) => c.key === primary);
|
|
126
|
+
const snapshotsSlice = contentTypes.find((c) => c.key === MEMORIX_SNAPSHOTS_CONTENT_TYPE);
|
|
122
127
|
const narrativesSlice = contentTypes.find((c) => c.key === "narratives");
|
|
123
128
|
const primaryCount = primarySlice?.count ?? 0;
|
|
129
|
+
const snapshotsCount = snapshotsSlice?.count;
|
|
124
130
|
const narrativeRefs = (narrativesSlice?.count ?? 0) > 0
|
|
125
131
|
? [{ id: "memorix:narratives", title: "Memorix narratives collection" }]
|
|
126
132
|
: [];
|
|
@@ -133,6 +139,7 @@ export async function buildMemorixEntityGraph(client, options = {}) {
|
|
|
133
139
|
defaultListDescriptorId: summary.defaultListDescriptorId,
|
|
134
140
|
defaultItemDescriptorId: summary.defaultItemDescriptorId,
|
|
135
141
|
count: primaryCount,
|
|
142
|
+
...(snapshotsSlice !== undefined ? { snapshotsCount } : {}),
|
|
136
143
|
narratives: narrativeRefs,
|
|
137
144
|
connections,
|
|
138
145
|
connectedEntityTypes: new Set(connections.map((c) => c.targetEntityName)).size,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-graph.js","sourceRoot":"","sources":["../../src/explorer/entity-graph.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-graph.js","sourceRoot":"","sources":["../../src/explorer/entity-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,10 +13,10 @@ export { loadMemorixListDescriptor, loadMemorixEntityListDescriptor, loadMemorix
|
|
|
13
13
|
export { loadMemorixItemDescriptor } from "./descriptors/load-item-descriptor.js";
|
|
14
14
|
export { discoverMemorixEntities, loadMemorixEntityDescriptorByName, entityDescriptorConnections, type DiscoverMemorixEntitiesResult, type MemorixEntityDescriptorSummary, } from "./descriptors/discover-entities.js";
|
|
15
15
|
export { resolveDefaultListDescriptorForEntity, resolveDefaultItemDescriptorForEntity, } from "./descriptors/resolve-default-descriptors.js";
|
|
16
|
-
export { MEMORIX_CONTENT_TYPE_LABELS, memorixContentTypeLabel, primaryEntityContentType, listEntityContentTypeKeys, } from "./descriptors/content-type-labels.js";
|
|
16
|
+
export { MEMORIX_CONTENT_TYPE_LABELS, MEMORIX_SNAPSHOTS_CONTENT_TYPE, entityDeclaresSnapshotsContentType, memorixContentTypeLabel, primaryEntityContentType, listEntityContentTypeKeys, } from "./descriptors/content-type-labels.js";
|
|
17
17
|
export { MEMORIX_APP_ID, MEMORIX_ENTITY_DESCRIPTORS_CATALOG, MEMORIX_LIST_DESCRIPTORS_CATALOG, MEMORIX_ITEM_DESCRIPTORS_CATALOG, } from "./descriptors/catalog-ids.js";
|
|
18
18
|
export { resolveMemorixCollectionName } from "./data/collection-name.js";
|
|
19
|
-
export { buildMemorixEntityGraph, buildMemorixEntitySlices, type BuildMemorixEntityGraphOptions, type EntityContentTypeStatus, type MemorixEntityGraphConnection, type MemorixEntityGraphContentType, type MemorixEntityGraphDiscovery, type MemorixEntityGraphEntity, type MemorixEntityGraphResult, type MemorixEntitySlice, type MemorixEntitySlicesResult, } from "./explorer/entity-graph.js";
|
|
19
|
+
export { buildMemorixEntityGraph, buildMemorixEntitySlices, memorixEntityGraphContentTypeCount, type BuildMemorixEntityGraphOptions, type EntityContentTypeStatus, type MemorixEntityGraphConnection, type MemorixEntityGraphContentType, type MemorixEntityGraphDiscovery, type MemorixEntityGraphEntity, type MemorixEntityGraphResult, type MemorixEntitySlice, type MemorixEntitySlicesResult, } from "./explorer/entity-graph.js";
|
|
20
20
|
export { buildMemorixCollectionInventory, orphanNodesFromInventory, parseOrphanCollection, type BuildMemorixCollectionInventoryOptions, type CollectionInventoryEntry, type CollectionInventoryTargetSummary, type CollectionMatchConfidence, type CollectionMatchStatus, type MemorixCollectionInventoryResult, type MemorixOrphanGraphNode, } from "./explorer/collection-inventory.js";
|
|
21
21
|
export { getMemorixRetrievalHealth, type MemorixRetrievalHealth } from "./explorer/health.js";
|
|
22
22
|
export { countMemorixEntityContentTypeDocuments, getMemorixEntityContentTypeDocument, listMemorixEntityContentTypeDocuments, type RawMemorixEntityListResult, type RawMemorixEntityReadParams, } from "./explorer/raw-reads.js";
|
|
@@ -25,7 +25,7 @@ export { resolveMemorixAppId } from "./descriptors/resolve-app-id.js";
|
|
|
25
25
|
export { mergeListDescriptorFilters } from "./retrieval/resolve-filters.js";
|
|
26
26
|
export { memorixRead, memorixXronoxRead, resolveMemorixXronoxRole, DEFAULT_MEMORIX_XRONOX_ROLES, } from "./data/memorix-read.js";
|
|
27
27
|
export { memorixCount, type MemorixCountParams } from "./data/memorix-count.js";
|
|
28
|
-
export { resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, targetCollectionEnvKey, } from "./mongo/env.js";
|
|
28
|
+
export { applyMemorixEnvBridgeToProcess, resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, syncMemorixEnvToXronox, targetCollectionEnvKey, } from "./mongo/env.js";
|
|
29
29
|
export { connectMemorixMongo } from "./mongo/connection.js";
|
|
30
30
|
export { countMemorixCollection } from "./mongo/read-collection.js";
|
|
31
31
|
export { readMemorixCollection } from "./mongo/read-collection.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,10 +13,10 @@ export { loadMemorixListDescriptor, loadMemorixEntityListDescriptor, loadMemorix
|
|
|
13
13
|
export { loadMemorixItemDescriptor } from "./descriptors/load-item-descriptor.js";
|
|
14
14
|
export { discoverMemorixEntities, loadMemorixEntityDescriptorByName, entityDescriptorConnections, } from "./descriptors/discover-entities.js";
|
|
15
15
|
export { resolveDefaultListDescriptorForEntity, resolveDefaultItemDescriptorForEntity, } from "./descriptors/resolve-default-descriptors.js";
|
|
16
|
-
export { MEMORIX_CONTENT_TYPE_LABELS, memorixContentTypeLabel, primaryEntityContentType, listEntityContentTypeKeys, } from "./descriptors/content-type-labels.js";
|
|
16
|
+
export { MEMORIX_CONTENT_TYPE_LABELS, MEMORIX_SNAPSHOTS_CONTENT_TYPE, entityDeclaresSnapshotsContentType, memorixContentTypeLabel, primaryEntityContentType, listEntityContentTypeKeys, } from "./descriptors/content-type-labels.js";
|
|
17
17
|
export { MEMORIX_APP_ID, MEMORIX_ENTITY_DESCRIPTORS_CATALOG, MEMORIX_LIST_DESCRIPTORS_CATALOG, MEMORIX_ITEM_DESCRIPTORS_CATALOG, } from "./descriptors/catalog-ids.js";
|
|
18
18
|
export { resolveMemorixCollectionName } from "./data/collection-name.js";
|
|
19
|
-
export { buildMemorixEntityGraph, buildMemorixEntitySlices, } from "./explorer/entity-graph.js";
|
|
19
|
+
export { buildMemorixEntityGraph, buildMemorixEntitySlices, memorixEntityGraphContentTypeCount, } from "./explorer/entity-graph.js";
|
|
20
20
|
export { buildMemorixCollectionInventory, orphanNodesFromInventory, parseOrphanCollection, } from "./explorer/collection-inventory.js";
|
|
21
21
|
export { getMemorixRetrievalHealth } from "./explorer/health.js";
|
|
22
22
|
export { countMemorixEntityContentTypeDocuments, getMemorixEntityContentTypeDocument, listMemorixEntityContentTypeDocuments, } from "./explorer/raw-reads.js";
|
|
@@ -25,7 +25,7 @@ export { resolveMemorixAppId } from "./descriptors/resolve-app-id.js";
|
|
|
25
25
|
export { mergeListDescriptorFilters } from "./retrieval/resolve-filters.js";
|
|
26
26
|
export { memorixRead, memorixXronoxRead, resolveMemorixXronoxRole, DEFAULT_MEMORIX_XRONOX_ROLES, } from "./data/memorix-read.js";
|
|
27
27
|
export { memorixCount } from "./data/memorix-count.js";
|
|
28
|
-
export { resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, targetCollectionEnvKey, } from "./mongo/env.js";
|
|
28
|
+
export { applyMemorixEnvBridgeToProcess, resolveMemorixDbName, resolveDefaultSourceDbName, resolveMongoUri, syncMemorixEnvToXronox, targetCollectionEnvKey, } from "./mongo/env.js";
|
|
29
29
|
export { connectMemorixMongo } from "./mongo/connection.js";
|
|
30
30
|
export { countMemorixCollection } from "./mongo/read-collection.js";
|
|
31
31
|
export { readMemorixCollection } from "./mongo/read-collection.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,0BAA0B,GAG3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACL,kCAAkC,GAGnC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAG1B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,kCAAkC,EAClC,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,GAG5B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,qCAAqC,EACrC,qCAAqC,GACtC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,kCAAkC,EAClC,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,uBAAuB,EACvB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mongo/env.d.ts
CHANGED
|
@@ -3,4 +3,18 @@ export declare function resolveMongoUri(env?: NodeJS.ProcessEnv): string;
|
|
|
3
3
|
export declare function resolveMemorixDbName(target: MemorixTarget, env?: NodeJS.ProcessEnv): string;
|
|
4
4
|
export declare function resolveDefaultSourceDbName(env?: NodeJS.ProcessEnv): string | undefined;
|
|
5
5
|
export declare function targetCollectionEnvKey(target: MemorixTarget, entityType: string): string;
|
|
6
|
+
/** Env keys Xronox reads for Memorix entity/event roles (see @x12i/xronox `mongoRoleDatabaseEnvKeys`). */
|
|
7
|
+
export declare const MEMORIX_XRONOX_ENTITY_DB_ENV_KEYS: readonly ["MONGO_MEMORY_ENTITIES_DB", "MONGO_ENTITIES_DB"];
|
|
8
|
+
export declare const MEMORIX_XRONOX_EVENT_DB_ENV_KEYS: readonly ["MONGO_MEMORY_EVENTS_DB", "MONGO_EVENTS_DB"];
|
|
9
|
+
/**
|
|
10
|
+
* Bridge Memorix DB env (`MEMORIX_ENTITIES_DB`, …) into Xronox role DB vars
|
|
11
|
+
* before `createXronox().init({ zeroConfig: true })`.
|
|
12
|
+
*
|
|
13
|
+
* Xronox role `memorix_entities` resolves `memory.entities` from
|
|
14
|
+
* `MONGO_MEMORY_ENTITIES_DB` / `MONGO_ENTITIES_DB`, not `MEMORIX_ENTITIES_DB`.
|
|
15
|
+
* Hosts that only set Memorix vars must call this (or use `createMemorixXronoxFromEnv`).
|
|
16
|
+
*/
|
|
17
|
+
export declare function syncMemorixEnvToXronox(env?: NodeJS.ProcessEnv): void;
|
|
18
|
+
/** Copy bridged Memorix→Xronox DB vars onto `process.env` for zero-config init. */
|
|
19
|
+
export declare function applyMemorixEnvBridgeToProcess(env?: NodeJS.ProcessEnv): void;
|
|
6
20
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/mongo/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAM5E;AAKD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAoBR;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAM5E;AAKD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAoBR;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAQpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAKR;AAED,0GAA0G;AAC1G,eAAO,MAAM,iCAAiC,4DAGpC,CAAC;AAEX,eAAO,MAAM,gCAAgC,wDAGnC,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,IAAI,CAmBjF;AAUD,mFAAmF;AACnF,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAMN"}
|
package/dist/mongo/env.js
CHANGED
|
@@ -30,4 +30,56 @@ export function targetCollectionEnvKey(target, entityType) {
|
|
|
30
30
|
? `MEMORIX_ENTITIES_COLLECTION_${normalized}`
|
|
31
31
|
: `MEMORIX_EVENTS_COLLECTION_${normalized}`;
|
|
32
32
|
}
|
|
33
|
+
/** Env keys Xronox reads for Memorix entity/event roles (see @x12i/xronox `mongoRoleDatabaseEnvKeys`). */
|
|
34
|
+
export const MEMORIX_XRONOX_ENTITY_DB_ENV_KEYS = [
|
|
35
|
+
"MONGO_MEMORY_ENTITIES_DB",
|
|
36
|
+
"MONGO_ENTITIES_DB",
|
|
37
|
+
];
|
|
38
|
+
export const MEMORIX_XRONOX_EVENT_DB_ENV_KEYS = [
|
|
39
|
+
"MONGO_MEMORY_EVENTS_DB",
|
|
40
|
+
"MONGO_EVENTS_DB",
|
|
41
|
+
];
|
|
42
|
+
/**
|
|
43
|
+
* Bridge Memorix DB env (`MEMORIX_ENTITIES_DB`, …) into Xronox role DB vars
|
|
44
|
+
* before `createXronox().init({ zeroConfig: true })`.
|
|
45
|
+
*
|
|
46
|
+
* Xronox role `memorix_entities` resolves `memory.entities` from
|
|
47
|
+
* `MONGO_MEMORY_ENTITIES_DB` / `MONGO_ENTITIES_DB`, not `MEMORIX_ENTITIES_DB`.
|
|
48
|
+
* Hosts that only set Memorix vars must call this (or use `createMemorixXronoxFromEnv`).
|
|
49
|
+
*/
|
|
50
|
+
export function syncMemorixEnvToXronox(env = process.env) {
|
|
51
|
+
const entitiesDb = resolveMemorixDbName("entity", env);
|
|
52
|
+
const eventsDb = resolveMemorixDbName("event", env);
|
|
53
|
+
if (!firstNonEmpty(...MEMORIX_XRONOX_ENTITY_DB_ENV_KEYS.map((k) => env[k]))) {
|
|
54
|
+
env.MONGO_MEMORY_ENTITIES_DB = entitiesDb;
|
|
55
|
+
}
|
|
56
|
+
if (!firstNonEmpty(...MEMORIX_XRONOX_EVENT_DB_ENV_KEYS.map((k) => env[k]))) {
|
|
57
|
+
env.MONGO_MEMORY_EVENTS_DB = eventsDb;
|
|
58
|
+
}
|
|
59
|
+
if (!env.MONGO_OPERATIONAL_DB?.trim()) {
|
|
60
|
+
env.MONGO_OPERATIONAL_DB = entitiesDb;
|
|
61
|
+
}
|
|
62
|
+
if (!env.MONGO_LOGS_DB?.trim()) {
|
|
63
|
+
env.MONGO_LOGS_DB = eventsDb;
|
|
64
|
+
}
|
|
65
|
+
if (!env.MONGO_MEMORIX_DB?.trim()) {
|
|
66
|
+
env.MONGO_MEMORIX_DB = entitiesDb;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const XRONOX_MEMORIX_DB_BRIDGE_KEYS = [
|
|
70
|
+
"MONGO_MEMORY_ENTITIES_DB",
|
|
71
|
+
"MONGO_MEMORY_EVENTS_DB",
|
|
72
|
+
"MONGO_OPERATIONAL_DB",
|
|
73
|
+
"MONGO_LOGS_DB",
|
|
74
|
+
"MONGO_MEMORIX_DB",
|
|
75
|
+
];
|
|
76
|
+
/** Copy bridged Memorix→Xronox DB vars onto `process.env` for zero-config init. */
|
|
77
|
+
export function applyMemorixEnvBridgeToProcess(env = process.env) {
|
|
78
|
+
syncMemorixEnvToXronox(env);
|
|
79
|
+
for (const key of XRONOX_MEMORIX_DB_BRIDGE_KEYS) {
|
|
80
|
+
const value = env[key]?.trim();
|
|
81
|
+
if (value)
|
|
82
|
+
process.env[key] = value;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
33
85
|
//# sourceMappingURL=env.js.map
|
package/dist/mongo/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,GAAG,IAA4B;IACpD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACtE,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AACvD,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CACL,aAAa,CACX,GAAG,CAAC,mBAAmB,EACvB,GAAG,CAAC,mBAAmB,EACvB,GAAG,CAAC,mBAAmB,EACvB,GAAG,CAAC,UAAU,CACf,IAAI,2BAA2B,CACjC,CAAC;IACJ,CAAC;IAED,OAAO,CACL,aAAa,CACX,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,UAAU,CACf,IAAI,yBAAyB,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,aAAa,CAClB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,kBAAkB,EACtB,GAAG,CAAC,kBAAkB,EACtB,GAAG,CAAC,oBAAoB,CACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,UAAkB;IAElB,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,+BAA+B,UAAU,EAAE;QAC7C,CAAC,CAAC,6BAA6B,UAAU,EAAE,CAAC;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/mongo/env.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/env.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { resolveMemorixDbName } from "../mongo/env.js";
|
|
2
|
+
import { resolveMemorixDbName, syncMemorixEnvToXronox, } from "../mongo/env.js";
|
|
3
3
|
describe("resolveMemorixDbName", () => {
|
|
4
4
|
it("defaults entity target to memorix-entities", () => {
|
|
5
5
|
expect(resolveMemorixDbName("entity", {})).toBe("memorix-entities");
|
|
@@ -14,4 +14,25 @@ describe("resolveMemorixDbName", () => {
|
|
|
14
14
|
expect(resolveMemorixDbName("event", { MEMORIX_EVENTS_DB: "custom-events" })).toBe("custom-events");
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
+
describe("syncMemorixEnvToXronox", () => {
|
|
18
|
+
it("bridges MEMORIX_*_DB into Xronox memory role env keys", () => {
|
|
19
|
+
const env = {
|
|
20
|
+
MEMORIX_ENTITIES_DB: "memorix-neo-entities",
|
|
21
|
+
MEMORIX_EVENTS_DB: "memorix-neo-events",
|
|
22
|
+
};
|
|
23
|
+
syncMemorixEnvToXronox(env);
|
|
24
|
+
expect(env.MONGO_MEMORY_ENTITIES_DB).toBe("memorix-neo-entities");
|
|
25
|
+
expect(env.MONGO_MEMORY_EVENTS_DB).toBe("memorix-neo-events");
|
|
26
|
+
expect(env.MONGO_OPERATIONAL_DB).toBe("memorix-neo-entities");
|
|
27
|
+
expect(env.MONGO_LOGS_DB).toBe("memorix-neo-events");
|
|
28
|
+
});
|
|
29
|
+
it("does not override explicit Xronox role DB env", () => {
|
|
30
|
+
const env = {
|
|
31
|
+
MEMORIX_ENTITIES_DB: "memorix-neo-entities",
|
|
32
|
+
MONGO_MEMORY_ENTITIES_DB: "custom-entities",
|
|
33
|
+
};
|
|
34
|
+
syncMemorixEnvToXronox(env);
|
|
35
|
+
expect(env.MONGO_MEMORY_ENTITIES_DB).toBe("custom-entities");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
17
38
|
//# sourceMappingURL=env.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../src/tests/env.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"env.test.js","sourceRoot":"","sources":["../../src/tests/env.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CACJ,oBAAoB,CAAC,QAAQ,EAAE,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC,CAC3E,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CACJ,oBAAoB,CAAC,OAAO,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,CACtE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,GAAG,GAAsB;YAC7B,mBAAmB,EAAE,sBAAsB;YAC3C,iBAAiB,EAAE,oBAAoB;SACxC,CAAC;QACF,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,GAAG,GAAsB;YAC7B,mBAAmB,EAAE,sBAAsB;YAC3C,wBAAwB,EAAE,iBAAiB;SAC5C,CAAC;QACF,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -66,6 +66,15 @@ describe("fetchMemorixList", () => {
|
|
|
66
66
|
metadata: { words: 5 },
|
|
67
67
|
});
|
|
68
68
|
expect(res.rows[0]).not.toHaveProperty("content");
|
|
69
|
+
const snapshotRead = xronoxRead.mock.calls.find((c) => c[0]?.source === "assets-snapshots");
|
|
70
|
+
expect(snapshotRead?.[0]?.project).toEqual([
|
|
71
|
+
"entityId",
|
|
72
|
+
"eventId",
|
|
73
|
+
"data.ip_address",
|
|
74
|
+
"data.xdr.host_name",
|
|
75
|
+
"data.investigationReport",
|
|
76
|
+
]);
|
|
77
|
+
expect(snapshotRead?.[0]?.project).not.toContain("data");
|
|
69
78
|
});
|
|
70
79
|
it("rejects disallowed sort property", async () => {
|
|
71
80
|
const client = createMemorixRetrieval({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-list.test.js","sourceRoot":"","sources":["../../src/tests/fetch-list.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,kCAAkC,EAClC,gCAAgC,GACjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE7D,SAAS,WAAW;IAClB,OAAO;QACL,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,SAAiB,EAAE,MAAc,EAAE,EAAE;YACtE,IACE,SAAS,KAAK,gCAAgC;gBAC9C,MAAM,KAAK,kBAAkB,EAC7B,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,OAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;YACvE,CAAC;YACD,IACE,SAAS,KAAK,kCAAkC;gBAChD,MAAM,KAAK,QAAQ,EACnB,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,OAAgB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;YACrE,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,WAAoB,EAAE,CAAC;QAC3C,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch-list.test.js","sourceRoot":"","sources":["../../src/tests/fetch-list.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ Uses `createCataloxFromEnv` + `createCataloxAdapterFromBound` + `createMemorixRe
|
|
|
19
19
|
## Entity discovery
|
|
20
20
|
|
|
21
21
|
- `discoverMemorixEntities(client)` — lists `memorix-entity-descriptors` via Catalox only (`source: "catalox" | "none"`). No env entity list fallback.
|
|
22
|
-
- `buildMemorixEntityGraph(client)` — discovery + per–content-type counts + **relations from entity descriptors**. Each entity includes `target`, `memorixDatabase`, and `contentTypes[]` (collection, database, count, status). `discovery.memorixDatabases` names both entity and event stores.
|
|
22
|
+
- `buildMemorixEntityGraph(client)` — discovery + per–content-type counts + **relations from entity descriptors**. Each entity includes `target`, `memorixDatabase`, `count` (primary slice), optional `snapshotsCount`, and `contentTypes[]` (collection, database, count, status). `discovery.memorixDatabases` names both entity and event stores.
|
|
23
23
|
- `buildMemorixEntitySlices(client, entityName)` — slice counts for canvas drill-down; includes **all** declared content types (zero counts use `status: "empty"`).
|
|
24
24
|
- `buildMemorixCollectionInventory(client, options?)` — bidirectional Mongo ↔ Catalox inventory across both databases (`matched`, `empty`, `orphan`, `unresolved`). Options: `includeExactCounts`, `scopedNamespace`.
|
|
25
25
|
- `orphanNodesFromInventory(entries)` — group orphan inventory rows into graph nodes for Explorer entities canvas.
|
|
@@ -36,6 +36,53 @@ Smoke: `npm run smoke:retrieval -- --inventory`
|
|
|
36
36
|
|
|
37
37
|
Response: `entries`, `summary.byTarget`, `discovery`.
|
|
38
38
|
|
|
39
|
+
## Snapshot record counts (Explorer “Records”)
|
|
40
|
+
|
|
41
|
+
For entities like **assets**, list/item APIs and the default entity card count read the **snapshots** content type — collection `assets-snapshots` in the entity database (`memorix-entities` by default).
|
|
42
|
+
|
|
43
|
+
| API | What it counts |
|
|
44
|
+
|-----|----------------|
|
|
45
|
+
| `buildMemorixEntityGraph` → `entities[].snapshotsCount` | Explicit snapshots slice (when declared on the descriptor) |
|
|
46
|
+
| `buildMemorixEntityGraph` → `entities[].count` | Primary slice: `scoped` when declared, otherwise canonical (`snapshots` for assets) |
|
|
47
|
+
| `buildMemorixEntityGraph` → `entities[].contentTypes[]` | Per-type counts; find `key: "snapshots"` |
|
|
48
|
+
| `countMemorixEntityContentTypeDocuments(client, { entityName, contentType: "snapshots" })` | Direct count for one entity |
|
|
49
|
+
| `buildMemorixCollectionInventory` | Declared vs orphan collections across both DBs (debug mismatches) |
|
|
50
|
+
|
|
51
|
+
Example — assets snapshots on a **neo** deployment (data lives in `memorix-neo-entities`, not default `memorix-entities`):
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
MONGO_URI=mongodb://…
|
|
55
|
+
MEMORIX_ENTITIES_DB=memorix-neo-entities
|
|
56
|
+
MEMORIX_EVENTS_DB=memorix-neo-events
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`createMemorixRetrievalStackFromEnv` / `createMemorixXronoxFromEnv` bridge `MEMORIX_*_DB` into Xronox role vars (`MONGO_MEMORY_ENTITIES_DB`, …) automatically. You do **not** need to duplicate `MONGO_OPERATIONAL_DB` unless you want a different override.
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import {
|
|
63
|
+
buildMemorixEntityGraph,
|
|
64
|
+
countMemorixEntityContentTypeDocuments,
|
|
65
|
+
createMemorixRetrievalStackFromEnv,
|
|
66
|
+
} from "@x12i/memorix-retrieval";
|
|
67
|
+
|
|
68
|
+
const { client } = await createMemorixRetrievalStackFromEnv({ /* cataloxContext */ });
|
|
69
|
+
|
|
70
|
+
const graph = await buildMemorixEntityGraph(client);
|
|
71
|
+
const assets = graph.entities.find((e) => e.entityName === "assets");
|
|
72
|
+
// Card / “Records” badge for assets (canonical = snapshots):
|
|
73
|
+
const records = assets?.snapshotsCount ?? assets?.count ?? 0;
|
|
74
|
+
|
|
75
|
+
// Or explicit count API:
|
|
76
|
+
const snapshots = await countMemorixEntityContentTypeDocuments(client, {
|
|
77
|
+
entityName: "assets",
|
|
78
|
+
contentType: "snapshots",
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
await client.close?.();
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
If counts stay **0** while Mongo has data, run inventory smoke (`npm run smoke:retrieval -- --inventory`) or `buildMemorixCollectionInventory(client)` — orphan rows with data usually mean the host env points at the wrong database name.
|
|
85
|
+
|
|
39
86
|
## Raw collection reads (Explorer compatibility)
|
|
40
87
|
|
|
41
88
|
Descriptor-resolved reads by **entity name + content type** (not arbitrary collection names):
|
|
@@ -87,6 +87,19 @@ Resolution order matters: **first non-empty value wins**.
|
|
|
87
87
|
|
|
88
88
|
> **Peer rule:** Prefer `MEMORIX_ENTITIES_DB` and `MEMORIX_EVENTS_DB`. Treat `MEMORIX_DB` as a legacy single-database override only.
|
|
89
89
|
|
|
90
|
+
#### Neo / non-default deployments
|
|
91
|
+
|
|
92
|
+
Some clusters store Memorix data under non-default database names (for example `memorix-neo-entities` / `memorix-neo-events` instead of `memorix-entities` / `memorix-events`). Set:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
MEMORIX_ENTITIES_DB=memorix-neo-entities
|
|
96
|
+
MEMORIX_EVENTS_DB=memorix-neo-events
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`@x12i/memorix-retrieval` bridges these into Xronox role DB vars on bootstrap (`MONGO_MEMORY_ENTITIES_DB`, `MONGO_MEMORY_EVENTS_DB`, …) via `syncMemorixEnvToXronox` / `createMemorixXronoxFromEnv`. Host apps only need the Memorix vars unless they intentionally override Xronox role env directly.
|
|
100
|
+
|
|
101
|
+
**Record counts** for entities like `assets` come from the **snapshots** content type (`assets-snapshots` collection). See [EXPLORER-HOST-APIS.md](./EXPLORER-HOST-APIS.md#snapshot-record-counts-explorer-records).
|
|
102
|
+
|
|
90
103
|
### Source databases
|
|
91
104
|
|
|
92
105
|
Source databases hold upstream data that Memorix tools use to **fill in or extend** entity/event `data` fields. They are never the write target for completion pipelines.
|