@x12i/memorix-retrieval 1.32.0 → 1.33.0
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 +1 -1
- package/dist/client/catalox-descriptor-provision.d.ts +5 -6
- package/dist/client/catalox-descriptor-provision.d.ts.map +1 -1
- package/dist/client/catalox-descriptor-provision.js +9 -287
- package/dist/client/catalox-descriptor-provision.js.map +1 -1
- package/dist/tests/catalox-descriptor-provision.test.js +11 -116
- package/dist/tests/catalox-descriptor-provision.test.js.map +1 -1
- package/docs/EXPLORER-HOST-APIS.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -488,7 +488,7 @@ npm run build
|
|
|
488
488
|
npm test
|
|
489
489
|
```
|
|
490
490
|
|
|
491
|
-
Live checks (require `.env` with `MONGO_URI` and Catalox
|
|
491
|
+
Live checks (require `.env` with `MONGO_URI` and Mongo Catalox credentials):
|
|
492
492
|
|
|
493
493
|
```bash
|
|
494
494
|
npm run mongo:check-collections
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Catalox } from "@x12i/catalox";
|
|
2
2
|
export type EnsureMemorixDescriptorsProvisionedOptions = {
|
|
3
3
|
appId: string;
|
|
4
4
|
catalox: Catalox;
|
|
5
5
|
processEnv?: NodeJS.ProcessEnv;
|
|
6
|
-
/** Skip
|
|
6
|
+
/** Skip readiness probe side effects (tests or explicit host control). */
|
|
7
7
|
skip?: boolean;
|
|
8
8
|
};
|
|
9
9
|
export type EnsureMemorixDescriptorsProvisionedResult = {
|
|
10
10
|
provisioned: boolean;
|
|
11
|
-
source: "mongo-existing" | "
|
|
11
|
+
source: "mongo-existing" | "unavailable";
|
|
12
12
|
entityDescriptorCount: number;
|
|
13
13
|
warnings: string[];
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* app, copies catalogs/bindings/items automatically (idempotent).
|
|
16
|
+
* Probes whether descriptor metadata is readable for `appId` on the Mongo Catalox store.
|
|
17
|
+
* Does not migrate from any other backend — publish descriptors via seed apply / Catalox Manager.
|
|
19
18
|
*/
|
|
20
19
|
export declare function ensureMemorixDescriptorsProvisioned(options: EnsureMemorixDescriptorsProvisionedOptions): Promise<EnsureMemorixDescriptorsProvisionedResult>;
|
|
21
20
|
//# sourceMappingURL=catalox-descriptor-provision.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalox-descriptor-provision.d.ts","sourceRoot":"","sources":["../../src/client/catalox-descriptor-provision.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"catalox-descriptor-provision.d.ts","sourceRoot":"","sources":["../../src/client/catalox-descriptor-provision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAM3D,MAAM,MAAM,0CAA0C,GAAG;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAC;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AA2FF;;;GAGG;AACH,wBAAsB,mCAAmC,CACvD,OAAO,EAAE,0CAA0C,GAClD,OAAO,CAAC,yCAAyC,CAAC,CA0BpD"}
|
|
@@ -1,160 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { DebugLogAbstract } from "@x12i/logxer";
|
|
4
|
-
import { fieldEvidence } from "@x12i/logxer/diagnostics";
|
|
5
|
-
import { LEGACY_LIST_DESCRIPTORS_CATALOG, MEMORIX_LEGACY_ENTITY_DESCRIPTORS_CATALOG, } from "../descriptors/catalog-ids.js";
|
|
6
|
-
import { memorixRetrievalLogger } from "../logging/logger.js";
|
|
1
|
+
import { MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG } from "@x12i/memorix-descriptors";
|
|
2
|
+
import { MEMORIX_LEGACY_ENTITY_DESCRIPTORS_CATALOG } from "../descriptors/catalog-ids.js";
|
|
7
3
|
const PROVISION_ACTOR = { type: "service", id: "memorix-retrieval-provision" };
|
|
8
|
-
const LEGACY_CATALOG_REMAP = {
|
|
9
|
-
[MEMORIX_LEGACY_ENTITY_DESCRIPTORS_CATALOG]: MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG,
|
|
10
|
-
[LEGACY_LIST_DESCRIPTORS_CATALOG]: MEMORIX_LIST_DESCRIPTORS_CATALOG,
|
|
11
|
-
};
|
|
12
|
-
const FIRESTORE_EXPORT_CATALOG_IDS = [
|
|
13
|
-
MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG,
|
|
14
|
-
MEMORIX_LEGACY_ENTITY_DESCRIPTORS_CATALOG,
|
|
15
|
-
MEMORIX_LIST_DESCRIPTORS_CATALOG,
|
|
16
|
-
LEGACY_LIST_DESCRIPTORS_CATALOG,
|
|
17
|
-
MEMORIX_ITEM_DESCRIPTORS_CATALOG,
|
|
18
|
-
MEMORIX_COMPLETION_MAPPINGS_CATALOG,
|
|
19
|
-
MEMORIX_INVENTORY_POLICIES_CATALOG,
|
|
20
|
-
MEMORIX_WRITE_DESCRIPTORS_CATALOG,
|
|
21
|
-
];
|
|
22
|
-
const NATIVE_CATALOG_DEFAULTS = {
|
|
23
|
-
[MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG]: {
|
|
24
|
-
catalogId: MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG,
|
|
25
|
-
name: "Memorix entity descriptors",
|
|
26
|
-
catalogType: "memorix",
|
|
27
|
-
sourceMode: "native",
|
|
28
|
-
native: { type: "native" },
|
|
29
|
-
},
|
|
30
|
-
[MEMORIX_LIST_DESCRIPTORS_CATALOG]: {
|
|
31
|
-
catalogId: MEMORIX_LIST_DESCRIPTORS_CATALOG,
|
|
32
|
-
name: "Memorix list descriptors",
|
|
33
|
-
catalogType: "memorix",
|
|
34
|
-
sourceMode: "native",
|
|
35
|
-
native: { type: "native" },
|
|
36
|
-
},
|
|
37
|
-
[MEMORIX_ITEM_DESCRIPTORS_CATALOG]: {
|
|
38
|
-
catalogId: MEMORIX_ITEM_DESCRIPTORS_CATALOG,
|
|
39
|
-
name: "Memorix item descriptors",
|
|
40
|
-
catalogType: "memorix",
|
|
41
|
-
sourceMode: "native",
|
|
42
|
-
native: { type: "native" },
|
|
43
|
-
},
|
|
44
|
-
[MEMORIX_COMPLETION_MAPPINGS_CATALOG]: {
|
|
45
|
-
catalogId: MEMORIX_COMPLETION_MAPPINGS_CATALOG,
|
|
46
|
-
name: "Memorix completion mappings",
|
|
47
|
-
catalogType: "memorix",
|
|
48
|
-
sourceMode: "native",
|
|
49
|
-
native: { type: "native" },
|
|
50
|
-
},
|
|
51
|
-
[MEMORIX_INVENTORY_POLICIES_CATALOG]: {
|
|
52
|
-
catalogId: MEMORIX_INVENTORY_POLICIES_CATALOG,
|
|
53
|
-
name: "Memorix inventory policies",
|
|
54
|
-
catalogType: "memorix",
|
|
55
|
-
sourceMode: "native",
|
|
56
|
-
native: { type: "native" },
|
|
57
|
-
},
|
|
58
|
-
[MEMORIX_WRITE_DESCRIPTORS_CATALOG]: {
|
|
59
|
-
catalogId: MEMORIX_WRITE_DESCRIPTORS_CATALOG,
|
|
60
|
-
name: "Memorix write descriptors",
|
|
61
|
-
catalogType: "memorix",
|
|
62
|
-
sourceMode: "native",
|
|
63
|
-
native: { type: "native" },
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
const PROVISION_CATALOG_DESCRIPTOR_SEEDS = {
|
|
67
|
-
[MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG]: {
|
|
68
|
-
itemIdField: "id",
|
|
69
|
-
titleField: "entityName",
|
|
70
|
-
queryableFields: [
|
|
71
|
-
{ key: "id", label: "Id" },
|
|
72
|
-
{ key: "entityName", label: "Entity name" },
|
|
73
|
-
{ key: "target", label: "Target" },
|
|
74
|
-
],
|
|
75
|
-
},
|
|
76
|
-
[MEMORIX_LIST_DESCRIPTORS_CATALOG]: {
|
|
77
|
-
itemIdField: "id",
|
|
78
|
-
titleField: "title",
|
|
79
|
-
queryableFields: [
|
|
80
|
-
{ key: "id", label: "Id" },
|
|
81
|
-
{ key: "entity", label: "Entity" },
|
|
82
|
-
{ key: "title", label: "Title" },
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
|
-
[MEMORIX_ITEM_DESCRIPTORS_CATALOG]: {
|
|
86
|
-
itemIdField: "id",
|
|
87
|
-
titleField: "title",
|
|
88
|
-
queryableFields: [
|
|
89
|
-
{ key: "id", label: "Id" },
|
|
90
|
-
{ key: "entity", label: "Entity" },
|
|
91
|
-
{ key: "title", label: "Title" },
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
|
-
[MEMORIX_COMPLETION_MAPPINGS_CATALOG]: {
|
|
95
|
-
itemIdField: "id",
|
|
96
|
-
titleField: "name",
|
|
97
|
-
queryableFields: [
|
|
98
|
-
{ key: "id", label: "Id" },
|
|
99
|
-
{ key: "name", label: "Name" },
|
|
100
|
-
{ key: "objectType", label: "Object type" },
|
|
101
|
-
],
|
|
102
|
-
},
|
|
103
|
-
[MEMORIX_INVENTORY_POLICIES_CATALOG]: {
|
|
104
|
-
itemIdField: "id",
|
|
105
|
-
titleField: "id",
|
|
106
|
-
queryableFields: [{ key: "id", label: "Id" }],
|
|
107
|
-
},
|
|
108
|
-
[MEMORIX_WRITE_DESCRIPTORS_CATALOG]: {
|
|
109
|
-
itemIdField: "id",
|
|
110
|
-
titleField: "title",
|
|
111
|
-
queryableFields: [
|
|
112
|
-
{ key: "id", label: "Id" },
|
|
113
|
-
{ key: "entity", label: "Entity" },
|
|
114
|
-
{ key: "title", label: "Title" },
|
|
115
|
-
],
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
const PROVISION_CATALOG_CAPABILITIES = {
|
|
119
|
-
canList: true,
|
|
120
|
-
canGet: true,
|
|
121
|
-
canCreate: true,
|
|
122
|
-
canEdit: true,
|
|
123
|
-
canDelete: true,
|
|
124
|
-
canImport: true,
|
|
125
|
-
canExport: true,
|
|
126
|
-
canSync: false,
|
|
127
|
-
canValidate: true,
|
|
128
|
-
canViewReferences: true,
|
|
129
|
-
};
|
|
130
|
-
function buildProvisionCatalogDescriptor(catalogId, label, seed) {
|
|
131
|
-
return {
|
|
132
|
-
catalogId,
|
|
133
|
-
descriptorVersion: "1",
|
|
134
|
-
mode: "replace",
|
|
135
|
-
descriptor: {
|
|
136
|
-
catalogId,
|
|
137
|
-
label,
|
|
138
|
-
sourceMode: "native",
|
|
139
|
-
status: "active",
|
|
140
|
-
capabilities: { ...PROVISION_CATALOG_CAPABILITIES },
|
|
141
|
-
queryableFields: seed.queryableFields.map((field) => ({
|
|
142
|
-
key: field.key,
|
|
143
|
-
label: field.label,
|
|
144
|
-
type: "string",
|
|
145
|
-
indexed: true,
|
|
146
|
-
filterable: true,
|
|
147
|
-
listVisible: true,
|
|
148
|
-
detailVisible: true,
|
|
149
|
-
})),
|
|
150
|
-
identity: {
|
|
151
|
-
itemIdStrategy: "natural",
|
|
152
|
-
itemIdField: seed.itemIdField,
|
|
153
|
-
titleField: seed.titleField,
|
|
154
|
-
},
|
|
155
|
-
},
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
4
|
function isCatalogAccessDenied(err) {
|
|
159
5
|
const message = err instanceof Error ? err.message : String(err);
|
|
160
6
|
const name = err instanceof Error ? err.name : "";
|
|
@@ -224,94 +70,14 @@ async function probeMongoDescriptorReadiness(catalox, appId) {
|
|
|
224
70
|
throw err;
|
|
225
71
|
}
|
|
226
72
|
}
|
|
227
|
-
async function exportLegacyFirestoreCatalogs(appId) {
|
|
228
|
-
const { createCataloxFromEnv } = await import("@x12i/catalox/firebase");
|
|
229
|
-
const { catalox } = createCataloxFromEnv();
|
|
230
|
-
const bound = catalox.withContext({
|
|
231
|
-
appId,
|
|
232
|
-
superAdmin: true,
|
|
233
|
-
actor: PROVISION_ACTOR,
|
|
234
|
-
});
|
|
235
|
-
const byTarget = new Map();
|
|
236
|
-
for (const sourceCatalogId of FIRESTORE_EXPORT_CATALOG_IDS) {
|
|
237
|
-
const items = await listAllCatalogItems(bound, sourceCatalogId);
|
|
238
|
-
if (items.length === 0)
|
|
239
|
-
continue;
|
|
240
|
-
const targetCatalogId = LEGACY_CATALOG_REMAP[sourceCatalogId] ?? sourceCatalogId;
|
|
241
|
-
const existing = byTarget.get(targetCatalogId) ?? [];
|
|
242
|
-
const seen = new Set(existing.map((item) => item.id));
|
|
243
|
-
for (const item of items) {
|
|
244
|
-
if (seen.has(item.id))
|
|
245
|
-
continue;
|
|
246
|
-
seen.add(item.id);
|
|
247
|
-
existing.push(item);
|
|
248
|
-
}
|
|
249
|
-
byTarget.set(targetCatalogId, existing);
|
|
250
|
-
}
|
|
251
|
-
return byTarget;
|
|
252
|
-
}
|
|
253
|
-
function buildProvisionManifest(appId, catalogsById) {
|
|
254
|
-
const catalogs = [];
|
|
255
|
-
const descriptors = [];
|
|
256
|
-
const items = [];
|
|
257
|
-
const bindings = [];
|
|
258
|
-
// Create + bind every descriptor catalog kind, even when the legacy export
|
|
259
|
-
// had zero items for it. Hosts frequently populate only a subset (e.g. only
|
|
260
|
-
// object-type descriptors); the sibling catalogs must still exist as valid,
|
|
261
|
-
// readable, empty native catalogs so `loadDescriptorSnapshot()` — which reads
|
|
262
|
-
// all of them — never hits a missing/unbound catalog.
|
|
263
|
-
for (const catalogId of Object.keys(NATIVE_CATALOG_DEFAULTS)) {
|
|
264
|
-
const catalogSpec = NATIVE_CATALOG_DEFAULTS[catalogId];
|
|
265
|
-
const descriptorSeed = PROVISION_CATALOG_DESCRIPTOR_SEEDS[catalogId];
|
|
266
|
-
if (!catalogSpec || !descriptorSeed)
|
|
267
|
-
continue;
|
|
268
|
-
catalogs.push(catalogSpec);
|
|
269
|
-
descriptors.push(buildProvisionCatalogDescriptor(catalogId, catalogSpec.name, descriptorSeed));
|
|
270
|
-
bindings.push({
|
|
271
|
-
appId,
|
|
272
|
-
catalogId,
|
|
273
|
-
access: { canRead: true, canWrite: true, canAdmin: true },
|
|
274
|
-
});
|
|
275
|
-
const catalogItems = catalogsById.get(catalogId) ?? [];
|
|
276
|
-
for (const item of catalogItems) {
|
|
277
|
-
const data = { ...item.data };
|
|
278
|
-
if (!data.id)
|
|
279
|
-
data.id = item.id;
|
|
280
|
-
items.push({
|
|
281
|
-
catalogId,
|
|
282
|
-
data: encodeCatalogItemDataForCatalox(catalogId, data),
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return {
|
|
287
|
-
presetVersion: 1,
|
|
288
|
-
id: `memorix-descriptor-provision-${appId}`,
|
|
289
|
-
name: "Memorix descriptor auto-provision",
|
|
290
|
-
description: "Auto-migrated Memorix descriptor catalogs from legacy Catalox storage into Mongo.",
|
|
291
|
-
catalogs,
|
|
292
|
-
descriptors,
|
|
293
|
-
bindings,
|
|
294
|
-
items,
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
73
|
/**
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
* app, copies catalogs/bindings/items automatically (idempotent).
|
|
74
|
+
* Probes whether descriptor metadata is readable for `appId` on the Mongo Catalox store.
|
|
75
|
+
* Does not migrate from any other backend — publish descriptors via seed apply / Catalox Manager.
|
|
301
76
|
*/
|
|
302
77
|
export async function ensureMemorixDescriptorsProvisioned(options) {
|
|
303
78
|
const warnings = [];
|
|
304
79
|
const { appId, catalox } = options;
|
|
305
|
-
|
|
306
|
-
const probe = await probeMongoDescriptorReadiness(catalox, appId);
|
|
307
|
-
return {
|
|
308
|
-
provisioned: probe.ready,
|
|
309
|
-
source: probe.ready ? "mongo-existing" : "unavailable",
|
|
310
|
-
entityDescriptorCount: probe.entityCount,
|
|
311
|
-
warnings,
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
let probe = await probeMongoDescriptorReadiness(catalox, appId);
|
|
80
|
+
const probe = await probeMongoDescriptorReadiness(catalox, appId);
|
|
315
81
|
if (probe.ready) {
|
|
316
82
|
return {
|
|
317
83
|
provisioned: true,
|
|
@@ -320,56 +86,12 @@ export async function ensureMemorixDescriptorsProvisioned(options) {
|
|
|
320
86
|
warnings,
|
|
321
87
|
};
|
|
322
88
|
}
|
|
323
|
-
|
|
324
|
-
appId
|
|
325
|
-
debugKind: DebugLogAbstract.EVENT,
|
|
326
|
-
});
|
|
327
|
-
let legacyCatalogs;
|
|
328
|
-
try {
|
|
329
|
-
legacyCatalogs = await exportLegacyFirestoreCatalogs(appId);
|
|
330
|
-
}
|
|
331
|
-
catch (err) {
|
|
332
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
333
|
-
warnings.push(`Legacy Catalox export unavailable: ${message}`);
|
|
334
|
-
memorixRetrievalLogger.warn("Legacy Catalox descriptor export failed", {
|
|
335
|
-
appId,
|
|
336
|
-
debugKind: DebugLogAbstract.EVENT,
|
|
337
|
-
evidence: [fieldEvidence("error", message)],
|
|
338
|
-
});
|
|
339
|
-
return {
|
|
340
|
-
provisioned: false,
|
|
341
|
-
source: "unavailable",
|
|
342
|
-
entityDescriptorCount: 0,
|
|
343
|
-
warnings,
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
const entityItems = legacyCatalogs.get(MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG) ?? [];
|
|
347
|
-
if (entityItems.length === 0) {
|
|
348
|
-
warnings.push("Legacy Catalox has no entity/object-type descriptors to migrate");
|
|
349
|
-
return {
|
|
350
|
-
provisioned: false,
|
|
351
|
-
source: "unavailable",
|
|
352
|
-
entityDescriptorCount: 0,
|
|
353
|
-
warnings,
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
const manifest = buildProvisionManifest(appId, legacyCatalogs);
|
|
357
|
-
await applyCataloxSeedPreset(catalox, { appId, superAdmin: true, actor: PROVISION_ACTOR }, {
|
|
358
|
-
manifest,
|
|
359
|
-
});
|
|
360
|
-
probe = await probeMongoDescriptorReadiness(catalox, appId);
|
|
361
|
-
if (!probe.ready) {
|
|
362
|
-
warnings.push("Descriptor auto-provision completed but Mongo still reports zero entity descriptors");
|
|
89
|
+
if (!options.skip) {
|
|
90
|
+
warnings.push("Mongo Catalox has no entity/object-type descriptors for this appId — apply descriptor seeds or publish via Catalox Manager");
|
|
363
91
|
}
|
|
364
|
-
memorixRetrievalLogger.info("Memorix descriptors auto-provisioned from legacy Catalox", {
|
|
365
|
-
appId,
|
|
366
|
-
entityDescriptorCount: probe.entityCount,
|
|
367
|
-
migratedCatalogs: manifest.catalogs.map((catalog) => catalog.catalogId),
|
|
368
|
-
debugKind: DebugLogAbstract.EVENT,
|
|
369
|
-
});
|
|
370
92
|
return {
|
|
371
|
-
provisioned:
|
|
372
|
-
source: "
|
|
93
|
+
provisioned: false,
|
|
94
|
+
source: "unavailable",
|
|
373
95
|
entityDescriptorCount: probe.entityCount,
|
|
374
96
|
warnings,
|
|
375
97
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalox-descriptor-provision.js","sourceRoot":"","sources":["../../src/client/catalox-descriptor-provision.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalox-descriptor-provision.js","sourceRoot":"","sources":["../../src/client/catalox-descriptor-provision.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +1,6 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
2
2
|
import { MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG } from "@x12i/memorix-descriptors";
|
|
3
3
|
import { ensureMemorixDescriptorsProvisioned } from "../client/catalox-descriptor-provision.js";
|
|
4
|
-
const applyCataloxSeedPreset = vi.fn();
|
|
5
|
-
const createCataloxFromEnv = vi.fn();
|
|
6
|
-
vi.mock("@x12i/catalox", async (importOriginal) => {
|
|
7
|
-
const actual = await importOriginal();
|
|
8
|
-
return {
|
|
9
|
-
...actual,
|
|
10
|
-
applyCataloxSeedPreset: (...args) => applyCataloxSeedPreset(...args),
|
|
11
|
-
};
|
|
12
|
-
});
|
|
13
|
-
vi.mock("@x12i/catalox/firebase", () => ({
|
|
14
|
-
createCataloxFromEnv: (...args) => createCataloxFromEnv(...args),
|
|
15
|
-
}));
|
|
16
|
-
const assetsEntityDescriptor = {
|
|
17
|
-
id: "assets",
|
|
18
|
-
entityName: "assets",
|
|
19
|
-
target: "entity",
|
|
20
|
-
defaultListDescriptorId: "assets-main-list",
|
|
21
|
-
defaultItemDescriptorId: "asset-detail-item",
|
|
22
|
-
collectionPrefix: "assets",
|
|
23
|
-
identity: {
|
|
24
|
-
allowedIdFields: ["entityId", "eventId"],
|
|
25
|
-
requiredExactlyOne: true,
|
|
26
|
-
defaultIdField: "entityId",
|
|
27
|
-
},
|
|
28
|
-
defaults: {
|
|
29
|
-
canonicalContentType: "snapshots",
|
|
30
|
-
dataRoot: "data",
|
|
31
|
-
effectiveDatePath: "capturedAt",
|
|
32
|
-
fallbackEffectiveDatePaths: [],
|
|
33
|
-
},
|
|
34
|
-
contentTypes: {
|
|
35
|
-
snapshots: {
|
|
36
|
-
postfix: "snapshots",
|
|
37
|
-
collection: "assets-snapshots",
|
|
38
|
-
isCanonical: true,
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
properties: {},
|
|
42
|
-
relations: {},
|
|
43
|
-
};
|
|
44
4
|
function mongoCataloxWithCounts(counts) {
|
|
45
5
|
return {
|
|
46
6
|
withContext: vi.fn(() => ({
|
|
@@ -55,29 +15,9 @@ function mongoCataloxWithCounts(counts) {
|
|
|
55
15
|
})),
|
|
56
16
|
};
|
|
57
17
|
}
|
|
58
|
-
function firestoreCataloxFixture() {
|
|
59
|
-
return {
|
|
60
|
-
withContext: vi.fn(() => ({
|
|
61
|
-
listCatalogItems: vi.fn(async (catalogId) => {
|
|
62
|
-
if (catalogId === MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG) {
|
|
63
|
-
return {
|
|
64
|
-
listOutcome: "ok",
|
|
65
|
-
items: [{ itemId: "assets", data: assetsEntityDescriptor }],
|
|
66
|
-
total: 1,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
return { listOutcome: "ok", items: [], total: 0 };
|
|
70
|
-
}),
|
|
71
|
-
})),
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
18
|
describe("ensureMemorixDescriptorsProvisioned", () => {
|
|
75
19
|
beforeEach(() => {
|
|
76
|
-
|
|
77
|
-
createCataloxFromEnv.mockReset();
|
|
78
|
-
applyCataloxSeedPreset.mockResolvedValue({
|
|
79
|
-
applied: { catalogsCreated: [], catalogsSkippedExisting: [], descriptors: [], bindings: [], items: [] },
|
|
80
|
-
});
|
|
20
|
+
vi.clearAllMocks();
|
|
81
21
|
});
|
|
82
22
|
it("returns mongo-existing when entity descriptors are already present", async () => {
|
|
83
23
|
const catalox = mongoCataloxWithCounts({
|
|
@@ -90,74 +30,29 @@ describe("ensureMemorixDescriptorsProvisioned", () => {
|
|
|
90
30
|
expect(result.source).toBe("mongo-existing");
|
|
91
31
|
expect(result.provisioned).toBe(true);
|
|
92
32
|
expect(result.entityDescriptorCount).toBe(3);
|
|
93
|
-
expect(
|
|
94
|
-
expect(applyCataloxSeedPreset).not.toHaveBeenCalled();
|
|
33
|
+
expect(result.warnings).toEqual([]);
|
|
95
34
|
});
|
|
96
|
-
it("
|
|
97
|
-
|
|
98
|
-
const catalox = {
|
|
99
|
-
withContext: vi.fn(() => ({
|
|
100
|
-
listCatalogItems: vi.fn(async (catalogId) => {
|
|
101
|
-
const count = catalogId === MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG ? mongoEntityCount : 0;
|
|
102
|
-
return {
|
|
103
|
-
listOutcome: "ok",
|
|
104
|
-
items: Array.from({ length: count }, () => ({
|
|
105
|
-
itemId: "assets",
|
|
106
|
-
data: assetsEntityDescriptor,
|
|
107
|
-
})),
|
|
108
|
-
total: count,
|
|
109
|
-
};
|
|
110
|
-
}),
|
|
111
|
-
})),
|
|
112
|
-
};
|
|
113
|
-
createCataloxFromEnv.mockReturnValue({ catalox: firestoreCataloxFixture() });
|
|
114
|
-
applyCataloxSeedPreset.mockImplementation(async () => {
|
|
115
|
-
mongoEntityCount = 1;
|
|
116
|
-
return {
|
|
117
|
-
applied: {
|
|
118
|
-
catalogsCreated: [MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG],
|
|
119
|
-
catalogsSkippedExisting: [],
|
|
120
|
-
descriptors: [],
|
|
121
|
-
bindings: [MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG],
|
|
122
|
-
items: ["assets"],
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
});
|
|
35
|
+
it("returns unavailable when Mongo has no entity descriptors", async () => {
|
|
36
|
+
const catalox = mongoCataloxWithCounts({});
|
|
126
37
|
const result = await ensureMemorixDescriptorsProvisioned({
|
|
127
38
|
appId: "graphs-studio",
|
|
128
39
|
catalox: catalox,
|
|
129
40
|
});
|
|
130
|
-
expect(result.source).toBe("
|
|
131
|
-
expect(result.provisioned).toBe(
|
|
132
|
-
expect(result.entityDescriptorCount).toBe(
|
|
133
|
-
expect(
|
|
134
|
-
expect(applyCataloxSeedPreset).toHaveBeenCalledOnce();
|
|
135
|
-
const manifest = applyCataloxSeedPreset.mock.calls[0]?.[2]?.manifest;
|
|
136
|
-
// Every descriptor catalog kind is created + bound, even the empty ones,
|
|
137
|
-
// so a sibling catalog with no items can't fail the snapshot load later.
|
|
138
|
-
expect(manifest.descriptors.length).toBeGreaterThanOrEqual(6);
|
|
139
|
-
expect(manifest.catalogs.length).toBe(manifest.bindings.length);
|
|
140
|
-
expect(manifest.catalogs.length).toBe(manifest.descriptors.length);
|
|
141
|
-
const objectTypeDescriptor = manifest.descriptors.find((entry) => entry.catalogId === MEMORIX_OBJECT_TYPE_DESCRIPTORS_CATALOG);
|
|
142
|
-
expect(objectTypeDescriptor?.descriptor.identity).toEqual({
|
|
143
|
-
itemIdStrategy: "natural",
|
|
144
|
-
itemIdField: "id",
|
|
145
|
-
titleField: "entityName",
|
|
146
|
-
});
|
|
147
|
-
expect(manifest.items.some((item) => item.data.id === "assets")).toBe(true);
|
|
41
|
+
expect(result.source).toBe("unavailable");
|
|
42
|
+
expect(result.provisioned).toBe(false);
|
|
43
|
+
expect(result.entityDescriptorCount).toBe(0);
|
|
44
|
+
expect(result.warnings[0]).toContain("no entity/object-type descriptors");
|
|
148
45
|
});
|
|
149
|
-
it("
|
|
46
|
+
it("still reports unavailable under skip when Mongo is empty", async () => {
|
|
150
47
|
const catalox = mongoCataloxWithCounts({});
|
|
151
|
-
createCataloxFromEnv.mockImplementation(() => {
|
|
152
|
-
throw new Error("Missing Firebase credentials");
|
|
153
|
-
});
|
|
154
48
|
const result = await ensureMemorixDescriptorsProvisioned({
|
|
155
49
|
appId: "graphs-studio",
|
|
156
50
|
catalox: catalox,
|
|
51
|
+
skip: true,
|
|
157
52
|
});
|
|
158
53
|
expect(result.source).toBe("unavailable");
|
|
159
54
|
expect(result.provisioned).toBe(false);
|
|
160
|
-
expect(result.warnings
|
|
55
|
+
expect(result.warnings).toEqual([]);
|
|
161
56
|
});
|
|
162
57
|
});
|
|
163
58
|
//# sourceMappingURL=catalox-descriptor-provision.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalox-descriptor-provision.test.js","sourceRoot":"","sources":["../../src/tests/catalox-descriptor-provision.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,uCAAuC,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAEhG,
|
|
1
|
+
{"version":3,"file":"catalox-descriptor-provision.test.js","sourceRoot":"","sources":["../../src/tests/catalox-descriptor-provision.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const { client, cataloxBound, appId } = await createMemorixRetrievalStackFromEnv
|
|
|
14
14
|
});
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
Uses `createMemorixCataloxFromEnv` + `ensureMemorixDescriptorsProvisioned` + `createCataloxAdapterFromBound` + `createMemorixRetrievalFromEnv` in one call. App id resolves from option → `CATALOX_APP_ID` → `MEMORIX_APP_ID` → `memorix`. Catalox metadata is stored in Mongo (`MEMORIX_CATALOX_DB`, default `memorix-catalox`) on `MONGO_URI`.
|
|
17
|
+
Uses `createMemorixCataloxFromEnv` + `ensureMemorixDescriptorsProvisioned` + `createCataloxAdapterFromBound` + `createMemorixRetrievalFromEnv` in one call. App id resolves from option → `CATALOX_APP_ID` → `MEMORIX_APP_ID` → `memorix`. Catalox metadata is stored in Mongo (`MEMORIX_CATALOX_DB`, default `memorix-catalox`) on `MONGO_URI`. `ensureMemorixDescriptorsProvisioned` only probes Mongo readiness — publish descriptors via seed apply or Catalox Manager. Firestore is not used for Memorix Catalox (FuncX may still use Firestore for its own catalogs).
|
|
18
18
|
|
|
19
19
|
## Entity discovery
|
|
20
20
|
|
package/package.json
CHANGED