Issue 153 resolved: an assignment places a module's directories and its accesses
mesh-controller PR 176 and mesh-catalog PR 198. Designs 27 and 18 carry the words: places,
accesses, ${access:<id>}, the default a definition still holds while the catalogue converts.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
---
|
||||
status: open
|
||||
status: resolved
|
||||
opened: 2026-09-29
|
||||
located-in:
|
||||
- mesh-controller internal/catalogue/dir_into.go (dirsFor: a stated path or <data root>/<module>/<id>, nothing else)
|
||||
- mesh-controller (accesses: the path is the manifest's literal)
|
||||
fixed-by:
|
||||
amended-design:
|
||||
fixed-by: mesh-controller PR 176 (`places` and `accesses` on an assignment, `${access:<id>}`, an owner the data already has); mesh-catalog PR 198 (ten definitions name their accesses by id)
|
||||
amended-design: [03-DESIGN/01-to-be/27-a-module-requires-the-mesh-resolves.md, 03-DESIGN/01-to-be/18-building-a-module.md]
|
||||
---
|
||||
|
||||
# 153 — An adopted machine's data cannot be placed where it is
|
||||
@@ -55,3 +55,25 @@ The two assignment halves 0112 decided: a setting that places a declared directo
|
||||
path on this node, and a setting that says where an access's data is — both validated like
|
||||
`endpoints` (unknown ids refused), and an access placed by the assignment still never created,
|
||||
chowned or removed.
|
||||
|
||||
## Resolved, 2026-10-01
|
||||
|
||||
The two assignment halves ADR 0112 decided exist. On an assignment's settings, `places` puts a
|
||||
declared directory (by id) at a path on this node, with an owner where the data already has one —
|
||||
`{"config": "/where/it/is", "data": {"path": "…", "owner": "1001:2000"}}` — and `accesses` says where
|
||||
the operator's data is, by the access's id. Both are validated the way `endpoints` is: an id the
|
||||
definition does not declare is refused, naming what it does declare; a relative path and a
|
||||
non-numeric owner are refused; an access nothing places and whose definition carries no path is
|
||||
refused with the setting to write, rather than mounted as nothing. A placed directory is still the
|
||||
mesh's — created, owned as said, removed when empty and undeclared. A placed access is still the
|
||||
operator's — mounted, never created, owned or removed.
|
||||
|
||||
An access now has an **id**, and the definition's mounts name it as `${access:<id>}`, so a placement
|
||||
moves the mount with it. Ten catalogue definitions were given ids; each keeps its path as the default
|
||||
an assignment may replace, so the machine that said nothing received exactly the paths it had before
|
||||
(the path-preservation proof, extended to accesses). That default is still a host path in a
|
||||
definition, tolerated as the transition: the media modules on the control node hold it until their
|
||||
assignments say where the data is, and then the defaults go.
|
||||
|
||||
What the home server's assignments say next is the operator's: per media module, `places` for the
|
||||
configuration on the second disk and `accesses` for the pool, with the owner the predecessor ran as.
|
||||
|
||||
Reference in New Issue
Block a user