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
Rename root-facing downstream services and files (#29)
Update compose/general to load root.scm and pin the merged sync-records root rename.
Rename gateway admin routes and configuration from /api/v1/control/* and CONTROL_* to /api/v1/root/* and ROOT_*.
Rename the file-system operational namespace from /control/pin to /root/pin, including the SMB projection, tests, and smoke script.
Refresh downstream docs and workbench examples so the root terminology matches the merged sync-records runtime layout.
Copy file name to clipboardExpand all lines: compose/general/README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,9 +27,9 @@ This compose stack runs one journal with gateway, explorer, workbench, router, a
27
27
28
28
Gateway note:
29
29
-`ALLOW_ADMIN_ROUTES` is enabled by default in `compose/general/docker-compose.yml`.
30
-
- Public/client-facing API traffic should go to `gateway` under `/api/v1/general/*` and `/api/v1/control/*`.
30
+
- Public/client-facing API traffic should go to `gateway` under `/api/v1/general/*` and `/api/v1/root/*`.
31
31
- The raw `/interface` endpoint is still present for direct journal transport use and bridge-oriented internals.
32
-
- The journal's periodic scheduler uses the raw control-step call `(*step* "<secret>")`, which depends on the merged `sync-records`control-step pipeline.
32
+
- The journal's periodic scheduler uses the raw root-step call `(*step* "<secret>")`, which depends on the merged `sync-records`root-step pipeline.
Copy file name to clipboardExpand all lines: services/file-system/README.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,11 +46,11 @@ The loader now supports journal-style entries for:
46
46
The projected namespace now exposes three top-level areas:
47
47
-`/stage`
48
48
-`/ledger`
49
-
-`/control`
49
+
-`/root`
50
50
51
-
The current control-plane feature is:
52
-
-`/control/pin`
53
-
- a single synthetic UTF-8 text control file
51
+
The current root-plane feature is:
52
+
-`/root/pin`
53
+
- a single synthetic UTF-8 text root file
54
54
- reads are discovery-based and render lines like `pinned /ledger/...` or `unpinned /ledger/...`
55
55
- writes accept explicit directives in the same form
56
56
- only `/ledger/...` paths are valid in this file
@@ -79,7 +79,7 @@ The fixture model now also supports symlink entries:
79
79
80
80
Directory metadata lives behind the scenes on hidden `*directory*` marker entries in the backing model. That marker is not exposed to filesystem users as a projected `.directory` file.
81
81
Projected writes are currently allowed only under `/stage`; `/ledger/...` is treated as read-only in the local mock model.
82
-
Pin/unpin is the current exception: it is exposed through `/control/pin`, not through file metadata or sidecars in the content tree.
82
+
Pin/unpin is the current exception: it is exposed through `/root/pin`, not through file metadata or sidecars in the content tree.
83
83
The current `json` backend now runs through a mock gateway abstraction shaped like `POST /api/v1/general/get` and `POST /api/v1/general/set`, so the SMB projection path already matches the real gateway contract more closely.
84
84
85
85
Try connecting with `smbclient` after the container starts:
@@ -111,7 +111,7 @@ Targeted local SMB integration checks:
- Any ledger peer view exposes exactly three structural children:
23
23
-`/state`: committed document tree for that ledger peer view
24
24
-`/peer/<name>`: related ledger peer
@@ -31,8 +31,8 @@ Expose journal-backed records as a network-mounted filesystem using a native SMB
31
31
- Everything under `/ledger` is immutable for content mutation.
32
32
- Immutable ledger paths may still expose first-class journal properties such as pin state where supported.
33
33
- Pin/unpin is in-scope for MVP as a first-class filesystem capability, but it must map directly to journal pin state rather than any synthetic metadata sidecar.
34
-
-Control namespace:
35
-
-`/control/pin` is a synthetic control file for pin/unpin.
34
+
-Root namespace:
35
+
-`/root/pin` is a synthetic root file for pin/unpin.
36
36
-`/stage` is never pinnable through the filesystem surface.
37
37
38
38
### Empty directory convention
@@ -66,7 +66,7 @@ Expose journal-backed records as a network-mounted filesystem using a native SMB
66
66
-`*file-system/file*` should only be introduced when non-default file metadata must be persisted.
67
67
68
68
### Content-kind derivation
69
-
-`content-kind` is not stored as separate filesystem control metadata.
69
+
-`content-kind` is not stored as separate filesystem root metadata.
70
70
- It is derived from the actual journal content representation:
71
71
- byte-vector payload => `bytes`
72
72
- any non-byte typed value => `expression`
@@ -149,13 +149,13 @@ Expose journal-backed records as a network-mounted filesystem using a native SMB
149
149
- Delete => `set!(..., ["nothing"])`.
150
150
-`mkdir` => create `*directory*` marker value.
151
151
- Pin/unpin, where exposed, must map directly to first-class journal pin/unpin behavior.
152
-
-`/control/pin` writes map to gateway `pin` / `unpin`, not `set!`.
152
+
-`/root/pin` writes map to gateway `pin` / `unpin`, not `set!`.
153
153
154
154
### Read-only rules
155
155
- Content mutation outside `/stage` => `EROFS`.
156
156
- First-class journal properties such as pin state are not mutated through any directory sidecar.
157
157
- Pin/unpin may still be supported on immutable ledger paths because it is not a content mutation.
158
-
-`/control/pin` is writable only as a whole-file control surface for replacing the desired pinned set.
158
+
-`/root/pin` is writable only as a whole-file root surface for replacing the desired pinned set.
159
159
160
160
### Write buffering
161
161
- Per-handle in-memory buffer for `/stage` writes.
@@ -210,32 +210,32 @@ Write rules:
210
210
## 6) Pin Control Namespace
211
211
212
212
### Namespace shape
213
-
-`/control/pin` is a single synthetic UTF-8 text file.
213
+
-`/root/pin` is a single synthetic UTF-8 text file.
214
214
- It is the only user-facing pin/unpin surface in the filesystem.
215
215
- The pin namespace must never mirror `/stage/...`.
216
216
217
217
### Read behavior
218
-
- Reading `/control/pin` returns newline-delimited pin-state records for ledger paths the filesystem has already discovered by reading those ledger entries.
218
+
- Reading `/root/pin` returns newline-delimited pin-state records for ledger paths the filesystem has already discovered by reading those ledger entries.
219
219
- Each line is one canonical projected ledger path prefixed by either `pinned` or `unpinned`.
220
220
- The file is discovery-based rather than globally complete:
221
221
- reading ledger files and directories may add entries to the current rendered view
222
-
- directory listing alone does not need to enumerate the full ledger into `/control/pin`
222
+
- directory listing alone does not need to enumerate the full ledger into `/root/pin`
223
223
- Blank lines are allowed but ignored on parse.
224
224
- The rendered file should be canonicalized:
225
225
- normalized projected `/ledger/...` paths only
226
226
- sorted deterministically
227
227
- duplicates removed
228
228
229
229
### Write behavior
230
-
- Writing `/control/pin` applies explicit pin-state directives rather than replacing a globally complete set.
230
+
- Writing `/root/pin` applies explicit pin-state directives rather than replacing a globally complete set.
231
231
- The file content is parsed as UTF-8 newline-delimited directives:
232
232
-`pinned /ledger/...`
233
233
-`unpinned /ledger/...`
234
234
- Only canonical `/ledger/...` paths are allowed.
235
235
-`/stage/...` paths are invalid in this file.
236
236
- Invalid lines reject the whole write with `EINVAL`.
237
237
- Repeated directives for the same path are resolved by last-line-wins within that write.
238
-
- Rename and sidecar control files are not part of the pin UX.
238
+
- Rename and sidecar root files are not part of the pin UX.
239
239
240
240
### Journal mapping
241
241
- Each listed projected `/ledger/...` path decompiles to the corresponding canonical ledger journal path.
@@ -266,8 +266,8 @@ Write rules:
266
266
- invalid path/envelope/value => `EINVAL`
267
267
- invalid hidden directory-marker data => `EINVAL`
268
268
- read-only content mutation => `EROFS`
269
-
- unsupported/disallowed control metadata op => `EOPNOTSUPP`
270
-
- unsupported operation inside `/control/pin/...` (for example rename or file-content write) => `EOPNOTSUPP`
269
+
- unsupported/disallowed root metadata op => `EOPNOTSUPP`
270
+
- unsupported operation inside `/root/pin/...` (for example rename or file-content write) => `EOPNOTSUPP`
271
271
- upstream timeout/transport failure => `EIO`
272
272
273
273
## 9) Deployment and Runtime
@@ -356,7 +356,7 @@ No secrets or full payload content by default.
356
356
357
357
### Interop expectations
358
358
-`/ledger/...` content remains read-only.
359
-
- Directory metadata is stored behind the scenes on hidden `*directory*` marker entries rather than projected control files.
359
+
- Directory metadata is stored behind the scenes on hidden `*directory*` marker entries rather than projected root files.
360
360
- Case sensitivity rules must avoid ambiguous collisions.
361
361
- Hidden directory markers do not mirror first-class journal properties like pin state or derived content classification.
362
362
- Hidden directory markers do not mirror metadata about child entries.
0 commit comments