1.7 KiB
Configuration storage layers
The following SQL tables have the same observed storage-row shape:
FileName, Creation, Modified, Attributes, DataSize, BinaryData,
PartNo.
| Layer | Role | Direct adapter writes |
|---|---|---|
Config |
Active base configuration | Forbidden |
ConfigSave |
Pending base configuration changes | Controlled upo_test only |
ConfigCAS |
Active extension content-addressed store | Forbidden |
ConfigCASSave |
Pending extension configuration overlay | Controlled upo_test only |
PartNo must be read and preserved. The currently proven writer handles a
single-part stream only; a multi-part stream is unsupported until a
table-aware round-trip codec exists.
Addressing rules
Base Config objects are commonly addressed by metadata GUID. Extension active
objects are reached through _ExtensionsInfo → extension root in ConfigCAS
→ root manifest → object part SHA-1 key. Do not infer a semantic role from a
suffix such as .0; inspect the payload and route evidence.
For normal content-addressed rows, ConfigCAS.FileName was observed to equal
SHA-1 of the stored bytes. Always compute and compare the hash rather than
trusting the name: an activation experiment left a legacy alias whose name was
an old key while its bytes had the new SHA-1.
Write sequence
- Resolve public object/form/module against live SQL.
- Read active bytes and any existing saved-state rows.
- Prepare only missing saved rows; never overwrite a user’s existing rows.
- Encode the changed stream losslessly.
- Update every proved companion index in the same SQL transaction.
- Read back and validate hashes and semantic exact-match count.
- Tell the human which Configurator scope to reload.