Scope Atomic table rows by table parent and class instead of Store-wide class membership #51
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The shared React table needs backend-specific collection membership.
AtomicTablecurrently treats all loaded Resources of a Class in an Atomic Store as one table. A Store is a broader resource cache/client context, not a document or table boundary: it can contain rows from several tables using the same Class.In
shared/atomic/atomicTable.ts(verified on main atbe8938078d97a70519a991ade8b9207d07067c5f):storeandclassId, with no table/parent identity.records()scansstore.resourcesand filters only withresource.hasClasses(this.classId).create()setsisAbut does not sethttps://atomicdata.dev/properties/parent.save()rechecks class membership, but has no parent-membership check.This mixes same-class rows from different Atomic tables and creates rows with no table membership.
Expected membership semantics
NextGraph: the selected RDF graph is the document boundary. Any subject in that graph with the selected class belongs in the table. Do not introduce an Atomic parent/table-ownership requirement into the NextGraph path.
Atomic: select an actual table resource and its row Class, using Atomic's existing Table/collection conventions. Rows belong to that table through
parentand must also have the selected Class. The Atomic table documentation explicitly describes rows as sharing the same parent and class. Confirm the existing table-resource-to-row-Class metadata when implementing; do not invent a new ontology for this adapter. Parent membership should not be described as an independent permission grant.Reproduction
AtomicTable(store, classId).Requested change and acceptance
parenton newly created rows and preserve that membership during ordinary field edits.SchemaTableshould continue to consume columns, row values and save callbacks without depending ongraphor Atomicparent./atomic-reuseto demonstrate two tables sharing one Class in one Store, including correctly parented creation and external membership changes.Scanning the currently loaded Store cache also does not establish a complete server collection. The actual Atomic backend should use the existing collection query/paging mechanism rather than interpreting cache contents as all rows; coordinate that transport work with #45.
Related: #43 (shared table/Atomic reuse), #45 (actual Atomic backend).
michielbdejong referenced this issue2026-10-19 15:21:21 +02:00