@x12i/catalox 4.2.1 → 5.0.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.
Files changed (49) hide show
  1. package/dist/src/catalox/catalox.d.ts +3 -4
  2. package/dist/src/catalox/catalox.d.ts.map +1 -1
  3. package/dist/src/catalox/catalox.js +108 -154
  4. package/dist/src/catalox/catalox.js.map +1 -1
  5. package/dist/src/catalox/item-scope-match.d.ts +39 -0
  6. package/dist/src/catalox/item-scope-match.d.ts.map +1 -0
  7. package/dist/src/catalox/item-scope-match.js +114 -0
  8. package/dist/src/catalox/item-scope-match.js.map +1 -0
  9. package/dist/src/catalox/item-scope.d.ts +36 -0
  10. package/dist/src/catalox/item-scope.d.ts.map +1 -0
  11. package/dist/src/catalox/item-scope.js +137 -0
  12. package/dist/src/catalox/item-scope.js.map +1 -0
  13. package/dist/src/catalox/native-catalog-merge.d.ts +7 -9
  14. package/dist/src/catalox/native-catalog-merge.d.ts.map +1 -1
  15. package/dist/src/catalox/native-catalog-merge.js +23 -106
  16. package/dist/src/catalox/native-catalog-merge.js.map +1 -1
  17. package/dist/src/catalox/scope-legacy-convert.d.ts +19 -0
  18. package/dist/src/catalox/scope-legacy-convert.d.ts.map +1 -0
  19. package/dist/src/catalox/scope-legacy-convert.js +177 -0
  20. package/dist/src/catalox/scope-legacy-convert.js.map +1 -0
  21. package/dist/src/cli/index.js +94 -2
  22. package/dist/src/cli/index.js.map +1 -1
  23. package/dist/src/contracts/catalogs.d.ts +21 -25
  24. package/dist/src/contracts/catalogs.d.ts.map +1 -1
  25. package/dist/src/contracts/catalogs.js.map +1 -1
  26. package/dist/src/contracts/context.d.ts +9 -4
  27. package/dist/src/contracts/context.d.ts.map +1 -1
  28. package/dist/src/contracts/index.d.ts +1 -1
  29. package/dist/src/contracts/index.d.ts.map +1 -1
  30. package/dist/src/contracts/index.js.map +1 -1
  31. package/dist/src/contracts/items.d.ts +8 -51
  32. package/dist/src/contracts/items.d.ts.map +1 -1
  33. package/dist/src/firebase/native-item-store.d.ts +2 -1
  34. package/dist/src/firebase/native-item-store.d.ts.map +1 -1
  35. package/dist/src/firebase/native-item-store.js +2 -5
  36. package/dist/src/firebase/native-item-store.js.map +1 -1
  37. package/dist/src/migrations/index.d.ts +1 -0
  38. package/dist/src/migrations/index.d.ts.map +1 -1
  39. package/dist/src/migrations/index.js +1 -0
  40. package/dist/src/migrations/index.js.map +1 -1
  41. package/dist/src/migrations/migrate-native-item-scope.d.ts +36 -0
  42. package/dist/src/migrations/migrate-native-item-scope.d.ts.map +1 -0
  43. package/dist/src/migrations/migrate-native-item-scope.js +204 -0
  44. package/dist/src/migrations/migrate-native-item-scope.js.map +1 -0
  45. package/package.json +1 -1
  46. package/dist/src/catalox/native-scope.d.ts +0 -29
  47. package/dist/src/catalox/native-scope.d.ts.map +0 -1
  48. package/dist/src/catalox/native-scope.js +0 -324
  49. package/dist/src/catalox/native-scope.js.map +0 -1
@@ -36,6 +36,7 @@ import type { RestoreFirestoreBackupFromGcsInput, RestoreFirestoreBackupFromGcsR
36
36
  import type { CataloxGcsBackupManifestV1, FirestoreGcsExportManifestV1 } from "../contracts/gcs-firestore-transfer.js";
37
37
  import { runDeleteCataloxGcsBackupRun } from "./restore-firestore-backup-from-gcs.js";
38
38
  import { type MigrateNativeCatalogLayoutInput, type MigrateNativeCatalogLayoutResult } from "../migrations/migrate-native-catalog-layout.js";
39
+ import { type MigrateNativeItemScopeInput, type MigrateNativeItemScopeResult } from "../migrations/migrate-native-item-scope.js";
39
40
  import { type NativeCatalogLayoutDiagnosticRow } from "./native-catalog-layout-diagnostics.js";
40
41
  import { CataloxBound } from "./catalox-bound.js";
41
42
  import { type RecordHistoryDeps } from "./record-history.js";
@@ -163,10 +164,7 @@ export declare class Catalox {
163
164
  }): Promise<CatalogItemRenderMap>;
164
165
  private deriveIndexed;
165
166
  private stripReservedWriteFields;
166
- private normalizeListFetchScope;
167
- private buildAppliedScope;
168
- private fetchGlobalPhysicalRows;
169
- private fetchScopedPhysicalRows;
167
+ private filterNativeCatalogRows;
170
168
  private decorateItem;
171
169
  listAppCatalogs(context: CataloxContext, input?: ListAppCatalogsInput): Promise<AppCatalogEntry[]>;
172
170
  private identityBindingMatches;
@@ -310,6 +308,7 @@ export declare class Catalox {
310
308
  appId?: string;
311
309
  }): Promise<NativeCatalogLayoutDiagnosticRow[]>;
312
310
  migrateNativeCatalogLayout(_context: CataloxContext, input: MigrateNativeCatalogLayoutInput): Promise<MigrateNativeCatalogLayoutResult>;
311
+ migrateNativeItemScope(_context: CataloxContext, input: MigrateNativeItemScopeInput): Promise<MigrateNativeItemScopeResult>;
313
312
  /**
314
313
  * Export one Firestore collection (slash path) to a GCS object as NDJSON (`{ id, data }` per line).
315
314
  * Auth: uses Admin Firestore only; bucket IAM must allow the runtime credential.
@@ -1 +1 @@
1
- {"version":3,"file":"catalox.d.ts","sourceRoot":"","sources":["../../../src/catalox/catalox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalox.d.ts","sourceRoot":"","sources":["../../../src/catalox/catalox.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import { ApiCatalogAdapter } from "../adapters/api/api-adapter.js";
8
8
  import { MongoCatalogAdapter } from "../adapters/mongo/mongo-adapter.js";
9
9
  import { AuthorizationService } from "./authorization.js";
10
10
  import { resolveCatalogItemId } from "./identity.js";
11
- import { assertSuperAdminForNonGlobalScope, encodeNativeItemStorageDocId, indexedScopeFields, isGlobalPhysicalRow, normalizeStoredScope, parseWriteScopeInput, scopeFromRecordField, } from "./native-scope.js";
12
- import { filterPhysicalForTenantFetch, mergeNativePhysicalRows, pickWinningPhysicalRow, } from "./native-catalog-merge.js";
11
+ import { assertWriteScopeAllowed, indexedScopeFields, isGenericScope, metadataFromScope, normalizeItemScope, parseWriteScopeInput, scopeFromRecordField, } from "./item-scope.js";
12
+ import { isUnrestrictedScopeContext, mergeEffectiveScope, resolveCatalogScopeFetchMode, shouldIncludeItemInList, tokenScopeFromContext, } from "./item-scope-match.js";
13
+ import { mergeNativePhysicalRows, pickWinningPhysicalRow, toUnifiedNativeItem } from "./native-catalog-merge.js";
13
14
  import { parseJson, toJson } from "./json-io.js";
14
15
  import { buildCataloxExportV1, filterCatalogEntries, listAllCatalogItemsForExport, stripItemData, } from "./catalog-snapshot-export.js";
15
16
  import { createHash, randomUUID } from "node:crypto";
@@ -43,6 +44,7 @@ import { runUndoFirestoreRestore } from "./restore-firestore-backup.js";
43
44
  import { runRestoreFirestoreBackupFromGcs, runDeleteCataloxGcsBackupRun } from "./restore-firestore-backup-from-gcs.js";
44
45
  import { cataloxGcsBackupManifestToFirestoreExportManifest } from "./catalox-gcs-backup-export-manifest.js";
45
46
  import { migrateNativeCatalogLayout as runMigrateNativeCatalogLayout, } from "../migrations/migrate-native-catalog-layout.js";
47
+ import { migrateNativeItemScope as runMigrateNativeItemScope, } from "../migrations/migrate-native-item-scope.js";
46
48
  import { reportNativeCatalogLayoutDiagnostics as runReportNativeCatalogLayoutDiagnostics, } from "./native-catalog-layout-diagnostics.js";
47
49
  import { exportAllFirestoreCollectionsToGcs, exportFirestoreCollectionToGcs, restoreAllFirestoreCollectionsFromGcsManifest, restoreFirestoreCollectionFromGcs, } from "./firestore-gcs-transfer.js";
48
50
  import { compareAllFirestoreCollectionsWithGcsManifest, compareFirestoreCollectionWithGcsNdjson, } from "./firestore-gcs-compare.js";
@@ -651,94 +653,45 @@ export class Catalox {
651
653
  ...(parsedRelations.length ? { relations: parsedRelations } : {}),
652
654
  };
653
655
  }
654
- normalizeListFetchScope(scope) {
655
- if (!scope)
656
- return undefined;
657
- const hasCoords = Boolean(scope.accountId) ||
658
- Boolean(scope.groupId) ||
659
- Boolean(scope.userId) ||
660
- Boolean(scope.channelId) ||
661
- Boolean(scope.visitorId) ||
662
- Boolean(scope.domainId) ||
663
- Boolean(scope.agentId);
664
- if (!hasCoords && scope.superAdmin !== true)
665
- return undefined;
666
- return scope;
667
- }
668
- buildAppliedScope(scope, effectiveSuperList) {
656
+ filterNativeCatalogRows(context, records, fetchOpts) {
657
+ const wantsSuperList = fetchOpts?.superAdmin === true && context.superAdmin === true;
658
+ if (wantsSuperList) {
659
+ return {
660
+ rows: records,
661
+ applied: {
662
+ effectiveScope: {},
663
+ includeGeneric: true,
664
+ genericOnly: false,
665
+ scopedOnly: false,
666
+ scopedAccessAllowed: true,
667
+ superAdmin: true,
668
+ },
669
+ };
670
+ }
671
+ const fetchMode = resolveCatalogScopeFetchMode(fetchOpts);
672
+ const unrestricted = isUnrestrictedScopeContext(context);
673
+ const token = tokenScopeFromContext(context);
674
+ const { effectiveScope, scopedAccessAllowed } = mergeEffectiveScope(token, fetchOpts?.scope, {
675
+ unrestricted,
676
+ });
677
+ const filtered = records.filter((r) => shouldIncludeItemInList({
678
+ itemScope: scopeFromRecordField(r.scope),
679
+ effectiveScope,
680
+ scopedAccessAllowed: unrestricted || scopedAccessAllowed,
681
+ fetchMode,
682
+ }));
669
683
  return {
670
- ...(scope?.accountId != null ? { accountId: scope.accountId } : {}),
671
- ...(scope?.groupId != null ? { groupId: scope.groupId } : {}),
672
- ...(scope?.agentId != null ? { agentId: scope.agentId } : {}),
673
- ...(scope?.domainId != null ? { domainId: scope.domainId } : {}),
674
- ...(scope?.userId != null ? { userId: scope.userId } : {}),
675
- ...(scope?.channelId != null ? { channelId: scope.channelId } : {}),
676
- ...(scope?.visitorId != null ? { visitorId: scope.visitorId } : {}),
677
- superAdmin: effectiveSuperList,
684
+ rows: filtered,
685
+ applied: {
686
+ effectiveScope,
687
+ includeGeneric: fetchMode.includeGeneric,
688
+ genericOnly: fetchMode.genericOnly,
689
+ scopedOnly: fetchMode.scopedOnly,
690
+ scopedAccessAllowed: unrestricted || scopedAccessAllowed,
691
+ superAdmin: false,
692
+ },
678
693
  };
679
694
  }
680
- async fetchGlobalPhysicalRows(catalogId, listOpts) {
681
- const userFe = { ...(listOpts.filterEq ?? {}) };
682
- const withGlobal = { ...userFe, scopeLayer: "global" };
683
- let recs = await this.deps.nativeItems.list(catalogId, { ...listOpts, filterEq: withGlobal });
684
- if (recs.length === 0 && Object.keys(userFe).length === 0) {
685
- const broad = await this.deps.nativeItems.list(catalogId, { ...listOpts, filterEq: {} });
686
- recs = broad.filter((r) => isGlobalPhysicalRow(r));
687
- }
688
- return recs;
689
- }
690
- async fetchScopedPhysicalRows(catalogId, fetch, listOpts) {
691
- const userFe = { ...(listOpts.filterEq ?? {}) };
692
- const cap = { ...listOpts, limit: 500, offset: 0 };
693
- const seen = new Set();
694
- const out = [];
695
- const take = (rows) => {
696
- for (const r of rows) {
697
- const id = storageDocIdForNativeRecord(r);
698
- if (seen.has(id))
699
- continue;
700
- seen.add(id);
701
- out.push(r);
702
- }
703
- };
704
- take(await this.deps.nativeItems.list(catalogId, { ...cap, filterEq: { ...userFe, scopeLayer: "global" } }));
705
- // Legacy v1 scopes (still queried for back-compat)
706
- if (fetch.accountId) {
707
- take(await this.deps.nativeItems.list(catalogId, { ...cap, filterEq: { ...userFe, scopeLayer: "account", scopeAccountId: fetch.accountId } }));
708
- if (fetch.agentId) {
709
- take(await this.deps.nativeItems.list(catalogId, { ...cap, filterEq: { ...userFe, scopeLayer: "agent", scopeAccountId: fetch.accountId, scopeAgentId: fetch.agentId } }));
710
- }
711
- if (fetch.userId) {
712
- take(await this.deps.nativeItems.list(catalogId, { ...cap, filterEq: { ...userFe, scopeLayer: "user", scopeAccountId: fetch.accountId, scopeUserId: fetch.userId } }));
713
- }
714
- }
715
- // v2 scoped rows: best-effort prefilter by available indexed coordinates.
716
- const scopedQueries = [];
717
- if (fetch.accountId)
718
- scopedQueries.push({ scopeLayer: "scoped", scopeAccountId: fetch.accountId });
719
- if (fetch.userId)
720
- scopedQueries.push({ scopeLayer: "scoped", scopeUserId: fetch.userId });
721
- if (fetch.channelId)
722
- scopedQueries.push({ scopeLayer: "scoped", scopeChannelId: fetch.channelId });
723
- if (fetch.visitorId)
724
- scopedQueries.push({ scopeLayer: "scoped", scopeVisitorId: fetch.visitorId });
725
- if (fetch.domainId)
726
- scopedQueries.push({ scopeLayer: "scoped", scopeDomainId: fetch.domainId });
727
- if (fetch.agentId)
728
- scopedQueries.push({ scopeLayer: "scoped", scopeAgentId: fetch.agentId });
729
- if (fetch.groupId)
730
- scopedQueries.push({ scopeLayer: "scoped", scopeGroupId: fetch.groupId });
731
- if (scopedQueries.length) {
732
- for (const q of scopedQueries) {
733
- take(await this.deps.nativeItems.list(catalogId, { ...cap, filterEq: { ...userFe, ...q } }));
734
- }
735
- }
736
- else {
737
- // Fallback: if caller provided coordinates but none mapped to a queryable indexed field, list scoped broadly.
738
- take(await this.deps.nativeItems.list(catalogId, { ...cap, filterEq: { ...userFe, scopeLayer: "scoped" } }));
739
- }
740
- return filterPhysicalForTenantFetch(out, fetch);
741
- }
742
695
  async decorateItem(catalogId, item) {
743
696
  const descriptor = await this.deps.descriptors.get(catalogId);
744
697
  if (!descriptor)
@@ -978,19 +931,16 @@ export class Catalox {
978
931
  ...(Object.keys(filterEq).length ? { filterEq } : {}),
979
932
  ...(listQueryOptions?.sort ? { sort: listQueryOptions.sort } : {}),
980
933
  };
981
- const rawScope = this.normalizeListFetchScope(listQueryOptions?.scope);
982
- const wantsSuperList = rawScope?.superAdmin === true && context.superAdmin === true;
983
- let physical = [];
984
- if (wantsSuperList) {
985
- physical = await this.deps.nativeItems.list(catalogId, baseListOpts);
986
- }
987
- else if (!rawScope || (!rawScope.accountId && !rawScope.groupId && !rawScope.userId && !rawScope.channelId && !rawScope.visitorId && !rawScope.domainId && !rawScope.agentId)) {
988
- physical = await this.fetchGlobalPhysicalRows(catalogId, baseListOpts);
989
- }
990
- else {
991
- physical = await this.fetchScopedPhysicalRows(catalogId, rawScope, baseListOpts);
992
- }
993
- const merged = mergeNativePhysicalRows(physical, descRec.descriptor.identity, String(appId), wantsSuperList);
934
+ const fetchOpts = listQueryOptions?.scope;
935
+ const includeScopeInResponse = fetchOpts?.includeScopeInResponse !== false;
936
+ const poolLimit = Math.min(5000, Math.max((listQueryOptions?.limit ?? 100) + (listQueryOptions?.offset ?? 0), 500));
937
+ const physical = await this.deps.nativeItems.list(catalogId, {
938
+ ...baseListOpts,
939
+ limit: poolLimit,
940
+ offset: 0,
941
+ });
942
+ const { rows: filtered, applied } = this.filterNativeCatalogRows(context, physical, fetchOpts);
943
+ const merged = mergeNativePhysicalRows(filtered, descRec.descriptor.identity, String(appId), includeScopeInResponse);
994
944
  const off = listQueryOptions?.offset ?? 0;
995
945
  const lim = listQueryOptions?.limit ?? 100;
996
946
  const sliced = merged.slice(off, off + lim);
@@ -998,7 +948,7 @@ export class Catalox {
998
948
  return {
999
949
  listOutcome: "ok",
1000
950
  items: decorated,
1001
- appliedScope: this.buildAppliedScope(rawScope, wantsSuperList),
951
+ appliedScope: applied,
1002
952
  };
1003
953
  }
1004
954
  const def = await this.deps.definitions.get(catalogId);
@@ -1088,24 +1038,13 @@ export class Catalox {
1088
1038
  const rec = await this.deps.nativeItems.get(catalogId, options.storageDocId);
1089
1039
  if (!rec)
1090
1040
  return { outcome: "not_found" };
1091
- const meta = {
1092
- ...(rec.metadata && typeof rec.metadata === "object" ? rec.metadata : {}),
1093
- scope: rec.scope ?? { kind: "global" },
1094
- };
1095
- const base = {
1096
- itemId: rec.itemId,
1097
- catalogId: rec.catalogId,
1098
- appId,
1099
- sourceMode: "native",
1100
- sourceType: "firebase",
1101
- data: rec.data,
1102
- metadata: meta,
1103
- };
1041
+ const { rows } = this.filterNativeCatalogRows(context, [rec], options?.scope);
1042
+ if (!rows.length)
1043
+ return { outcome: "not_found" };
1044
+ const includeScope = options?.scope?.includeScopeInResponse !== false;
1045
+ const base = toUnifiedNativeItem(rows[0], String(appId), includeScope);
1104
1046
  return { outcome: "found", item: await this.decorateItem(catalogId, base) };
1105
1047
  }
1106
- const descRec = await this.deps.descriptors.get(catalogId);
1107
- if (!descRec)
1108
- throw new CatalogAdapterError({ catalogId, reason: "missing_descriptor" });
1109
1048
  let rows = await this.deps.nativeItems.findByLogicalItemId(catalogId, itemId);
1110
1049
  if (!rows.length) {
1111
1050
  const legacy = await this.deps.nativeItems.get(catalogId, itemId);
@@ -1114,15 +1053,12 @@ export class Catalox {
1114
1053
  }
1115
1054
  if (!rows.length)
1116
1055
  return { outcome: "not_found" };
1117
- const scope = options?.scope;
1118
- const filtered = scope?.accountId || scope?.groupId || scope?.userId || scope?.channelId || scope?.visitorId || scope?.domainId || scope?.agentId
1119
- ? filterPhysicalForTenantFetch(rows, scope)
1120
- : rows.filter((r) => isGlobalPhysicalRow(r));
1121
- const merged = mergeNativePhysicalRows(filtered, descRec.descriptor.identity, String(appId), false);
1122
- const hit = merged.find((m) => m.itemId === itemId) ?? merged[0];
1123
- if (!hit)
1056
+ const { rows: filtered } = this.filterNativeCatalogRows(context, rows, options?.scope);
1057
+ if (!filtered.length)
1124
1058
  return { outcome: "not_found" };
1125
- return { outcome: "found", item: await this.decorateItem(catalogId, hit) };
1059
+ const includeScope = options?.scope?.includeScopeInResponse !== false;
1060
+ const base = toUnifiedNativeItem(filtered[0], String(appId), includeScope);
1061
+ return { outcome: "found", item: await this.decorateItem(catalogId, base) };
1126
1062
  }
1127
1063
  // For mapped catalogs, use list path with filter if adapter supports.
1128
1064
  const result = await this.listCatalogItems(context, catalogId, {
@@ -1743,15 +1679,15 @@ export class Catalox {
1743
1679
  if (legacy)
1744
1680
  rows = [legacy];
1745
1681
  }
1746
- existing = pickWinningPhysicalRow(rows, _options?.scope);
1682
+ existing = pickWinningPhysicalRow(rows);
1747
1683
  }
1748
1684
  if (!existing)
1749
1685
  throw new CatalogNotFoundError({ catalogId: _catalogId, itemId: _itemId });
1750
1686
  const { data: patchData, indexed: patchIndexed, scope: patchScope, relations: patchRelations } = this.stripReservedWriteFields(_patch);
1751
- let nextScope = normalizeStoredScope(scopeFromRecordField(existing.scope));
1687
+ let nextScope = scopeFromRecordField(existing.scope);
1752
1688
  if (patchScope != null) {
1753
- nextScope = normalizeStoredScope(patchScope);
1754
- assertSuperAdminForNonGlobalScope(_context.superAdmin, nextScope);
1689
+ nextScope = normalizeItemScope(patchScope);
1690
+ assertWriteScopeAllowed(_context, nextScope);
1755
1691
  }
1756
1692
  // Validate relation rules using existing + provided relations (if any).
1757
1693
  const descriptorRec = await this.deps.descriptors.get(_catalogId);
@@ -1793,17 +1729,18 @@ export class Catalox {
1793
1729
  };
1794
1730
  const oldDocId = storageDocIdForNativeRecord(existing);
1795
1731
  const { scope: _dropScope, ...existingRest } = existing;
1732
+ const scopeMeta = metadataFromScope(nextScope);
1796
1733
  const nextRec = {
1797
1734
  ...existingRest,
1798
1735
  data: mergedData,
1799
1736
  indexed: idx,
1800
- ...(nextScope.kind !== "global" ? { scope: nextScope } : {}),
1737
+ scope: nextScope,
1801
1738
  metadata: {
1802
1739
  ...(existing.metadata ?? {}),
1803
1740
  createdAt: String(existing.metadata?.createdAt ?? updatedAt),
1804
1741
  lastUpdate: updatedAt,
1805
- domainIds: Array.isArray(existing.metadata?.domainIds) ? existing.metadata.domainIds : [],
1806
- agentIds: Array.isArray(existing.metadata?.agentIds) ? existing.metadata.agentIds : [],
1742
+ domainIds: scopeMeta.domainIds,
1743
+ agentIds: scopeMeta.agentIds,
1807
1744
  },
1808
1745
  version: (existing.version ?? 0) + 1,
1809
1746
  ...(this.resolveActorId(_context) ? { updatedBy: this.resolveActorId(_context) } : {}),
@@ -1828,11 +1765,12 @@ export class Catalox {
1828
1765
  sourceMode: "native",
1829
1766
  sourceType: "firebase",
1830
1767
  data: mergedData,
1768
+ scope: nextScope,
1831
1769
  metadata: {
1832
1770
  createdAt: String(existing.metadata?.createdAt ?? updatedAt),
1833
1771
  lastUpdate: updatedAt,
1834
- domainIds: Array.isArray(existing.metadata?.domainIds) ? existing.metadata.domainIds : [],
1835
- agentIds: Array.isArray(existing.metadata?.agentIds) ? existing.metadata.agentIds : [],
1772
+ domainIds: scopeMeta.domainIds,
1773
+ agentIds: scopeMeta.agentIds,
1836
1774
  },
1837
1775
  };
1838
1776
  // Upsert any provided relations after the item is persisted.
@@ -1860,7 +1798,7 @@ export class Catalox {
1860
1798
  if (legacy)
1861
1799
  rows = [legacy];
1862
1800
  }
1863
- const winner = pickWinningPhysicalRow(rows, _options?.scope);
1801
+ const winner = pickWinningPhysicalRow(rows);
1864
1802
  if (!winner)
1865
1803
  throw new CatalogNotFoundError({ catalogId: _catalogId, itemId: _itemId });
1866
1804
  docId = storageDocIdForNativeRecord(winner);
@@ -1884,18 +1822,23 @@ export class Catalox {
1884
1822
  }
1885
1823
  const appId = await this.resolveAppIdForCatalogAccess({ context, catalogId, required: "write" });
1886
1824
  await this.deps.authz.requireBindingAccess(context, appId, catalogId, "write");
1887
- const fromDoc = input.fromStorageDocId ??
1888
- encodeNativeItemStorageDocId(String(itemId), normalizeStoredScope(input.fromScope ?? { kind: "global" }));
1825
+ const fromDoc = input.fromStorageDocId ?? storageDocIdForNativeRecord({ itemId: String(itemId) });
1889
1826
  const rec = await this.deps.nativeItems.get(catalogId, fromDoc);
1890
1827
  if (!rec)
1891
1828
  throw new CatalogNotFoundError({ catalogId, itemId });
1892
- const toScope = normalizeStoredScope(input.toScope);
1893
- const { scope: _dropScope, ...recRest } = rec;
1829
+ const toScope = normalizeItemScope(input.toScope);
1830
+ assertWriteScopeAllowed(context, toScope);
1831
+ const scopeMeta = metadataFromScope(toScope);
1894
1832
  const nextRec = {
1895
- ...recRest,
1896
- ...(toScope.kind !== "global" ? { scope: toScope } : {}),
1833
+ ...rec,
1834
+ scope: toScope,
1897
1835
  indexed: { ...(rec.indexed ?? {}), ...indexedScopeFields(toScope) },
1898
- updatedAt: new Date().toISOString(),
1836
+ metadata: {
1837
+ ...(rec.metadata ?? {}),
1838
+ domainIds: scopeMeta.domainIds,
1839
+ agentIds: scopeMeta.agentIds,
1840
+ lastUpdate: new Date().toISOString(),
1841
+ },
1899
1842
  };
1900
1843
  const toDoc = storageDocIdForNativeRecord(nextRec);
1901
1844
  await this.deps.nativeItems.upsert(catalogId, nextRec);
@@ -1918,15 +1861,16 @@ export class Catalox {
1918
1861
  if (!descriptor)
1919
1862
  throw new CatalogAdapterError({ catalogId, reason: "missing_descriptor" });
1920
1863
  const { data, indexed: callerIndexed, scope: inputScope, relations: inputRelations } = this.stripReservedWriteFields(input);
1921
- const storedScope = normalizeStoredScope(inputScope ?? { kind: "global" });
1922
- assertSuperAdminForNonGlobalScope(context.superAdmin, storedScope);
1864
+ const storedScope = normalizeItemScope(inputScope ?? {});
1865
+ assertWriteScopeAllowed(context, storedScope);
1923
1866
  const logicalItemIdEarly = resolveCatalogItemId({ identity: descriptor.descriptor.identity, data });
1924
1867
  await this.assertNativeItemPayloadValid(context, catalogId, data, String(logicalItemIdEarly));
1925
1868
  const derived = this.deriveIndexed(descriptor.descriptor, data);
1926
1869
  const scopeIdx = indexedScopeFields(storedScope);
1927
1870
  const indexed = derived != null ? { ...derived, ...scopeIdx } : (Object.keys(scopeIdx).length ? scopeIdx : undefined);
1928
1871
  const logicalItemId = resolveCatalogItemId({ identity: descriptor.descriptor.identity, data });
1929
- const storageDocId = encodeNativeItemStorageDocId(String(logicalItemId), storedScope);
1872
+ const storageDocId = storageDocIdForNativeRecord({ itemId: String(logicalItemId) });
1873
+ const scopeMeta = metadataFromScope(storedScope);
1930
1874
  const now = new Date().toISOString();
1931
1875
  const existing = await this.deps.nativeItems.get(catalogId, storageDocId);
1932
1876
  const actorId = this.resolveActorId(context);
@@ -1963,15 +1907,15 @@ export class Catalox {
1963
1907
  await this.deps.nativeItems.upsert(catalogId, {
1964
1908
  itemId: logicalItemId,
1965
1909
  catalogId,
1966
- ...(storedScope.kind !== "global" ? { scope: storedScope } : {}),
1910
+ scope: storedScope,
1967
1911
  appScopedOwnerId: appId,
1968
1912
  ...(indexed != null ? { indexed } : {}),
1969
1913
  data,
1970
1914
  metadata: {
1971
1915
  createdAt: String(existing?.metadata?.createdAt ?? now),
1972
1916
  lastUpdate: now,
1973
- domainIds: Array.isArray(existing?.metadata?.domainIds) ? (existing?.metadata).domainIds : [],
1974
- agentIds: Array.isArray(existing?.metadata?.agentIds) ? (existing?.metadata).agentIds : [],
1917
+ domainIds: scopeMeta.domainIds,
1918
+ agentIds: scopeMeta.agentIds,
1975
1919
  },
1976
1920
  version: (existing?.version ?? 0) + 1,
1977
1921
  ...(existing?.createdBy ? { createdBy: existing.createdBy } : actorId ? { createdBy: actorId } : {}),
@@ -2005,11 +1949,12 @@ export class Catalox {
2005
1949
  sourceMode: "native",
2006
1950
  sourceType: "firebase",
2007
1951
  data,
1952
+ scope: storedScope,
2008
1953
  metadata: {
2009
1954
  createdAt: String(existing?.metadata?.createdAt ?? now),
2010
1955
  lastUpdate: now,
2011
- domainIds: Array.isArray(existing?.metadata?.domainIds) ? (existing?.metadata).domainIds : [],
2012
- agentIds: Array.isArray(existing?.metadata?.agentIds) ? (existing?.metadata).agentIds : [],
1956
+ domainIds: scopeMeta.domainIds,
1957
+ agentIds: scopeMeta.agentIds,
2013
1958
  },
2014
1959
  };
2015
1960
  }
@@ -2025,8 +1970,9 @@ export class Catalox {
2025
1970
  const typeRegistry = catalog ? await this.resolveCatalogTypeRegistry(context) : null;
2026
1971
  const records = items.map((row) => {
2027
1972
  const stripped = this.stripReservedWriteFields(row);
2028
- const storedScope = normalizeStoredScope(stripped.scope ?? { kind: "global" });
2029
- assertSuperAdminForNonGlobalScope(context.superAdmin, storedScope);
1973
+ const storedScope = normalizeItemScope(stripped.scope ?? {});
1974
+ assertWriteScopeAllowed(context, storedScope);
1975
+ const scopeMeta = metadataFromScope(storedScope);
2030
1976
  if (catalog) {
2031
1977
  const report = this.validateNativeItemData(stripped.data, catalog, typeRegistry);
2032
1978
  if (!report.isValid) {
@@ -2049,11 +1995,11 @@ export class Catalox {
2049
1995
  return {
2050
1996
  itemId: logicalItemId,
2051
1997
  catalogId,
2052
- ...(storedScope.kind !== "global" ? { scope: storedScope } : {}),
1998
+ scope: storedScope,
2053
1999
  appScopedOwnerId: appId,
2054
2000
  ...(indexed != null ? { indexed } : {}),
2055
2001
  data: stripped.data,
2056
- metadata: { createdAt: now, lastUpdate: now, domainIds: [], agentIds: [] },
2002
+ metadata: { createdAt: now, lastUpdate: now, domainIds: scopeMeta.domainIds, agentIds: scopeMeta.agentIds },
2057
2003
  ...(actorId ? { updatedBy: actorId } : {}),
2058
2004
  };
2059
2005
  });
@@ -2428,6 +2374,14 @@ export class Catalox {
2428
2374
  definitions: this.deps.definitions,
2429
2375
  }, input);
2430
2376
  }
2377
+ async migrateNativeItemScope(_context, input) {
2378
+ return runMigrateNativeItemScope({
2379
+ firestoreStore: this.deps.firestoreStore,
2380
+ catalogs: this.deps.catalogs,
2381
+ bindings: this.deps.bindings,
2382
+ nativeItems: this.deps.nativeItems,
2383
+ }, input);
2384
+ }
2431
2385
  /**
2432
2386
  * Export one Firestore collection (slash path) to a GCS object as NDJSON (`{ id, data }` per line).
2433
2387
  * Auth: uses Admin Firestore only; bucket IAM must allow the runtime credential.