You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3670cf9
Browse filesBrowse the repository at this point in the historyBrowse files
feat(metadata-core, objectql): machine-readable provenance for injected system columns (#7865) (#8115)
Direction B per the 2026-08-12 maintainer ruling: applySystemFields keeps
injecting the platform anchors into external (ADR-0015) objects, and the
anchors it registers without provisioning storage now carry a machine-readable
provenance marker — spelled as an exported derivation
(resolveInjectedColumnProvenance / unprovisionedInjectedColumns /
platformProvisionsStorage in @objectstack/metadata-core, re-exported by
@objectstack/objectql) rather than a provisioned key on the field defs, so no
document byte changes anywhere: FieldSchema is strict (a data key would stamp
_diagnostics invalidity on every served federated object, or become an
authorable forgeable wall-off switch), and the #7859 Layer-0 guard plus the
#4326 round-trip strip read the anchor defs by exact key-count identity.
The three existing consumer guards (#7833 engine, #7859 plugin-security,
#7858 plugin-sharing) are deliberately untouched — opportunistic convergence
per the ruling. Proofs: unit matrix in metadata-core, marker-vs-live-injection
parity in objectql, and a real showcase boot pinning the before-picture
(7 anchors on showcase_ext_customer, byte-identical), the marker verdicts,
behavioural parity with the live Layer-0 guard, and /meta serving an unchanged,
valid post-injection document.
Claude-Session: https://claude.ai/code/session_014C8pAprWdmtecFsEprZax4
Co-authored-by: Claude <noreply@anthropic.com>
feat(metadata-core, objectql): machine-readable provenance for injected system columns — one authoritative answer to "is this column actually provisioned by the platform?" (#7865)
7
+
8
+
`applySystemFields` injects the platform anchors (`organization_id`,
9
+
`owner_id`, `owning_business_unit_id`, the audit family) into every object that
10
+
has not opted out — **including federated ones** (ADR-0015 `external`), for
11
+
which the platform provisions no storage: `Engine.syncObjectSchema` returns
12
+
early and issues no DDL. On such an object those anchors exist in the
13
+
registered schema and nowhere else, and a predicate over one degrades silently
0 commit comments